
Упражнение 5. Связь таблиц
В предыдущем упражнении с помощью мастера подстановок была сформирована связь между двумя таблицами. Такая связь позволяет установить правила взаимодействия между таблицами. Список подстановок можно было организовать и без связи. Но представьте, что вы удалите из таблицы Контакт запись, на которую ссылаются некоторые записи таблицы Список. В такой ситуации останутся описания контактов, фамилии людей в которых потеряны. Наличие правильно организованной связи позволяет избежать подобных неприятностей.
Перейдите на вкладку Работа с базами данных (Database Tools) и щелкните на кнопке Схема данных (Relationships) в группе Показать или скрыть (Show/Hide). Откроется окно, схематически изображающее связи базы данных (рис. 11). На рисунке видно, что линия связи соединяет поле Код таблицы Контакт с полем Контакт таблицы Список.
Рис. 11. Схема данных
ПРИМЕЧАНИЕ__________________________________________________
Данная связь соединяет ключевое и обычное поля. Это связь типа «один ко многим», когда одной записи таблицы Контакт может соответствовать несколько записей таблицы Список, но не наоборот.
_______________________________________________________________
Для тренировки давайте удалим связь, а затем создадим ее заново.
2. Щелчком выделите линию связи.
3. Нажмите клавишу Delete. В ответ на появившийся запрос щелкните на кнопке Да (Yes). Связь исчезнет.
4. Наведите указатель мыши на пункт Код таблицы Контакт.
Рис. 12. Параметры связи
5. Нажмите кнопку мыши и перетащите указатель на поле Контакт таблицы Список.
6. В открывшемся диалоговом окне щелкните на кнопке Создать (Create). Связь появится вновь. Осталось настроить параметры связи.
7. Дважды щелкните на линии связи. Откроется диалоговое окно, показанное на рис.12.
СОВЕТ ______________________________________________________
Если таблицы, между которыми нужно организовать связь, в открывшемся окне отсутствуют, щелкните в окне Схема данных (Relationships) правой кнопкой мыши и выберите команду Добавить таблицу (Show Table). В открывшемся диалоговом окне выделяйте таблицы, которые нужно разместить в окне Схема данных (Relationships), и щелкайте на кнопке Добавить (Add). Получив все необходимые таблицы, закройте диалоговое окно щелчком на кнопке Закрыть (Close).
8. Установите флажок Обеспечение целостности данных (Enforce Referential Integrity). Это не позволит Access оставлять в таблице Список записи, для которых нельзя подобрать запись таблицы Контакт с подходящим значением поля Код.
9. Установите флажок Каскадное удаление связанных записей (Cascade Delete Related Records). В результате при удалении записи таблицы Контакт (то есть удалении информации о конкретном человеке) будут удалены все соответствующие записи из таблицы Список (то есть все описания контактов с этим человеком). Если указанный флажок сброшен, удаление тех записей таблицы Контакт, на которые ссылается хотя бы одна запись таблицы Список, будет запрещено.
ПРИМЕЧАНИЕ _______________________________________________________________Установка флажка Каскадное обновление связанных полей (Cascade Update Related Fields) приведет к тому, что при обновлении поля Код таблицы Контакт будут автоматически обновляться одноименные поля в соответствующих записях таблицы Список.
_______________________________________________________________
10. Щелкните на кнопке ОК.
11. Закройте окно Схема данных (Relationships).
12. В области переходов дважды щелкните на значке таблицы Контакт. В открыв- окне таблицы будут видны небольшие знаки «плюс», расположенные в левой части записей. Их присутствие говорит о наличии связи ключевого поля таблицы с другой таблицей.
13. Щелкните на знаке «плюс» записи для Романа Боброва. Откроется вложенная таблица, содержащая те записи таблицы Список, значение поля Контакт которых равно величине одноименного поля записи для Романа Боброва (рис. 13).
Рис. 13. Выборка данных из связанной таблицы
СОВЕТ-----------------------------------------------------------------------------------------------
При раскрытии фрагмента связанной таблицы знак «плюс» превращается в знак «минус». Чтобы скрыть дополнительную таблицу, щелкните на нем еще раз.
14. Щелкните еще на каком-нибудь знаке «плюс», и вы увидите описание всех контактов еще с одним человеком. Таким образом, с помощью созданной связи вы можете быстро просматривать в окне таблицы Список описания всех контактов с определенным человеком или группой лиц.