Создание схемы данных


Упражнение 6. Включение таблиц в схему данных и определение связей между ними
Упражнение 7. Проверка поддержания связной целостности

Схема данных является не только удобным и наглядным средством графического отображения логических связей таблиц базы данных. Связи, заданные в схеме данных, автоматически используются для объединения записей связанных таблиц при любой обработке. Это упрощает процесс конструирования многотабличных форм, запросов и отчетов.

По заданному для связи параметру объединения определяется, как должно происходить объединение записей связываемых таблиц. По умолчанию происходит объединение только тех записей связанных таблиц, в которых значения поля связи совпадают.

Установление связи между двумя таблицами возможно только при выполнении следующих условий:

1.связываемые таблицы имеют поля с одинаковым типом данных, причем имена полей могут быть различными;

2.обе таблицы сохраняются в одной базе данных Access.

Если главная таблица связывается с подчиненной по первичному простому или составному ключу (уникальному индексу) главной таблицы, то Access определяет, что таблицы находятся в отношении 1:М или 1:1. Для таблиц, находящихся в этих отношениях, в схеме данных можно установить параметры поддержания связной целостности данных.

Поддержка связной целостности данных означает, что Access при корректировке базы данных обеспечивает для связанных таблиц контроль за соблюнием следующих условий:

1) в подчиненную таблицу не может быть добавлена запись со значением ключа связи, не существующим в главной таблице;

2) в главной таблице нельзя удалить запись, если не удалены связанные с ней записи в подчиненной таблице;

3) изменение значений ключа связи в записи главной таблицы невозможно, если в подчиненной таблице имеются записи, связанные с ней.

Если для связи обеспечивается поддержание целостности, то можно задать режимы, перечисленные ниже.

1.Каскадное обновление связанных полей обеспечивает при изменении значения ключа связи в записи главной таблицы автоматическое изменение значения в связанных полях в подчиненных записях.

2. Каскадное удаление связанных записей обеспечивает при удалении записи из главной таблицы автоматическое удаление всех связанных записей в подчиненной таблице. Каскадное удаление подчиненных записей выполняется на всех уровнях, если этот режим задан на каждом уровне.


Упражнение 6. Включение таблиц в схему данных и определение связей между ними

Рассмотрим процесс создания схемы данных, соответствующей логической структуре базы данных.

1. Откройте окно Схема данных . Для этого при активном окне базы данных нажмите кнопку Схема данных на панели инструментов.

2. В диалоговом окне Добавление таблицы (рис. 3.1) выберите вкладку Таблицы и, нажимая кнопку Добавить, разместите в окне Схема данных все ранее созданные таблицы базы данных, список которых отображен в диалоговом окне.

Рис.3.1
Добавление таблицы в схему данных

3. Нажмите кнопку Закрыть. В результате в окне Схема данных будут представлены все таблицы созданной базы данных со списками своих полей.

4. Установите связь между таблицами ГРУППА и СТУДЕНТ по простому ключу НГ. Для этого в окне Схемы данных установите курсор мыши на ключевом поле НГ главной таблицы ГРУППА и перетащите это поле на поле НГ в подчиненной таблице СТУДЕНТ.

5. В открывшемся окне (рис. 3.2) Изменение связей в строке Тип отношения установится один-ко-многим . Отметьте доступный для этого типа отношений параметр Обеспечение целостности данных. Если таблицы ГРУППА и СТУДЕНТ пустые или ранее были заполнены данными, отвечающими требованиям целостности, между таблицами будет установлена связь, один ко многим . В противном случае появится сообщение о невозможности установить связь с проверкой целостности.

Рис.3.2
Окно выбора параметров связи

6. Установите флажки каскадное обновление связанных полей и каскадное удаление связанных записей , тогда будет обеспечена автоматическая корректировка данных для сохранения целостности во взаимосвязанных таблицах.

7. Установите связи по простому ключу для других пар таблиц: КАФЕДРА ->ПРЕПОДАВАТЕЛЬ (ключ ККАФ), ПРЕДМЕТ-> ИЗУЧЕНИЕ (ключ КП), ПРЕПОДАВАТЕЛЬ -> ИЗУЧЕНИЕ (ключ ТАБН), ГРУППА -> ИЗУЧЕНИЕ (ключ НГ).

8. Установите связь по составному ключу НГ+НС между таблицами СТУДЕНТ -> УСПЕВАЕМОСТЬ. Для этого в главной таблице СТУДЕНТ выделите оба этих поля, удерживая клавишу , и перетащите оба поля на поле НГ в подчиненной таблице УСПЕВАЕМОСТЬ.

9. В окне Изменение связи для поля НС главной таблицы Таблица | запросвыберите соответствующее поле подчиненной таблицы Связанная таблица | запрос. В этом же окне установите режим Обеспечение целостности данных и другие параметры связи.

10. Аналогично по составному ключу НГ + КП + ТАБН + ВИДЗ установите связи между парой таблиц ИЗУЧЕНИЕ -> УСПЕВАЕМОСТЬ.

11. Разместите таблицы в окне схемы данных в соответствии с их относительной подчиненностью, перемещая и изменяя их размеры, как показано на рис. 3.3.


Рис.3.3
Схема данных базы данных

Назад


Упражнение 7. Проверка поддержания связной целостности

Проверим, как влияют установленные ранее параметры поддержания целостности при внесении изменений в таблицы ГРУППА, СТУДЕНТ, связанные одно-многозначными отношениями.

1. Откройте таблицы ГРУППА и СТУДЕНТ в режиме таблицы.

2. Измените значение ключевого поля НГ (номер группы) в записи главной таблицы ГРУППА, которая имеет подчиненные записи. Для завершения режима редактирования перейдите к другой записи. Убедитесь, что в записях подчиненной таблицы СТУДЕНТ автоматически изменилось значение поля НГ для студентов, обучающихся в этой группе. Происходит изменение, поскольку был установлен параметр, задающий каскадное обновление связанных полей. Открывая другие подчиненные таблицы, убедитесь, что каскадное обновление распространяется также на подчиненные таблицы следующих уровней: ИЗУЧЕНИЕ и УСПЕВАЕМОСТЬ.

3. Подготовьте новую запись в подчиненной таблице СТУДЕНТ со значением ключа связи НГ, не представленным в главной таблице ГРУППА. Убедитесь, что включить такую запись в подчиненную таблицу невозможно.

4. В главной таблице ГРУППА выделите запись, у которой есть подчиненные, и выполните команду Правка | Удалить. Убедитесь, что вместе с удалением записи в главной таблице ГРУППА удаляются все подчиненные записи, так как был установлен параметр каскадного удаления связанных записей.

Назад


Ввод и корректировка данных во взаимосвязанных таблицах

Если для одно-многозначных связей, установленных в схеме данных, не задан параметр обеспечения целостности данных, то пользователь при добавлении, удалении записей и изменении значений ключевых полей должен сам отслеживать непротиворечивость данных и целостность связей.

Если установлен только флажок Обеспечение целостности данных, то Access разрешает пользователю:

1. добавить запись в таблицу, которая не подчинена никакой другой таблице в схеме данных (находится на верхнем уровне иерархии);

2. добавить запись в подчиненную таблицу, когда в главной имеется запись с вводимым значением ключа связи;

3. удалить запись в таблице, если нет связанных с ней записей в подчиненных таблицах.

Если наряду с флажком Обеспечение целостности данных установлен флажок каскадное удаление связанных записей , то пользователь может удалить запись. При этом автоматически будут удалены и все подчиненные записи.

Если наряду с параметром Обеспечение целостности данных задан параметр каскадное обновление связанных полей, то пользователь может изменять значение ключевого поля. При этом автоматически будут обновлены значения внешних ключей и во всех связанных подчиненных записях.

Таким образом, при загрузке таблиц базы данных при установленных параметрах целостности система отслеживает корректность связей для вводимых записей.

В Access 2000 имеется возможность при просмотре таблицы отображать записи подчиненных таблиц. Поэтому пользователь может контролировать корректность связей в отображаемой цепочке таблиц при добавлении, удалении и корректировке записей.