Access позволяет строить реляционные базы данных,
отдельные таблицы которых могут быть связаны между собой.
Простейшей и наиболее редкой формой связи между
таблицами является связь «один к одному», при которой для каждой записи в одной
таблице существует одна связанная с ней запись в другой таблице. Примером
такой ситуации может служить связь ЯВЛЯЮТСЯ_РОДИТЕЛЯМИ
между таблицами «Сведения о студентах» и «Сведения о родителях».
Гораздо чаще встречается связь «один ко многим», при
которой для каждой записи в одной таблице существует одна, несколько или ни
одной записи в другой таблице. Примером такой ситуации может служить связь
ГОДОВЫЕ_ОЦЕНКИ_УЧЕНИКА между таблицами «Сведения
о студентах» и «Годовая успеваемость
группы».
Нередко приходится иметь дело также со связью «многие
ко многим», при которой отсутствуют ограничения на множества пар записей,
принадлежащих связи. Такая связь в Access не используется. Ее необходимо представить
в виде двух связей «один ко многим».
При установке связи одна из таблиц является главной, а
другая - подчиненной.
Ясно, что заполняя таблицу «Сведения о студентах», мы можем указать в ней фамилии студентов, для
которых в таблице «Сведения о родителях»
пока нет записей. Обратное неверно: не имеет
смысла включать в таблицу «Сведения о
родителях» данные о родителях того студента, для которого нет записи и
таблице «Сведения о студентах». Поэтому в паре Сведения о студентах - Сведения о родителях первая таблица является
главной, а вторая - подчиненной.
Как правило, связывают ключевое поле одной таблицы с
соответствующим ему полем другой таблицы, которое называют полем ключа.
Связанные поля могут иметь разные имена, однако у них должны быть одинаковые
типы данных и одинаковые значения свойств.
При наличии связи между таблицами Access будет
автоматически выбирать связанные данные из таблиц в отчетах, запросах и
формах.
Для каждой связи в Access обязательно должен быть
выбран один из параметров объединения, который задается в окне Параметры
объединения.
Если пользователь не укажет параметр объединения, то
программа автоматически установит один из параметров. В зависимости от того, какой
принцип объединения выбран, меняется объем выводимых из таблиц данных при их
совместном использовании.
Помимо определения параметра объединения, пользователь
должен позаботиться о дополнительных средствах контроля связанных данных, вводимых
в разные таблицы.
Механизм, который обеспечивает согласованность данных
между двумя связанными таблицами, называется поддержка целостности данных.
Целостность данных означает:
в связанное поле
подчиненной таблицы можно вводить только те значения, которые имеются в
связанном поле главной таблицы;
из главной
таблицы нельзя удалить запись, у которой значение связанного поля совпадает хотя
бы с одним значением того же поля в подчиненной таблице.
Включив механизм поддержки целостности данных,
пользователь может потребовать, чтобы при модификации данных система запускала
следующие процессы:
каскадное
обновление связанных полей;
каскадное
удаление связанных записей.
Если при определении связи установить флажок Каскадное
обновление связанных полей, любое изменение значения в ключевом поле
главной таблицы приведет к автоматическому обновлению соответствующих значений
во всех связанных записях. Например, при изменении кода ученика в таблице Сведения об учениках будет
автоматически обновлено поле Код ученика
во всех записях таблицы Годовая успеваемость
класса, поэтому целостность данных не будет нарушена. Microsoft
Access выполнит каскадное обновление без ввода предупреждающих сообщений.
Если при определении связи установить флажок Каскадное
удаление связанных записей, любое удаление записи в главной таблице
приводит к автоматическому удалению связанных записей в подчиненной таблице.
Задание 1.
Установить
связь между таблицами «Сведения о
студентах» и «Сведения о родителях».
1) Из меню Сервис выберем команду Схема
данных. На экране появится окно Схема данных, в котором можно
создавать, просматривать или удалять связи между таблицами базы данных. При
работе с базой данных мы обращаемся к этой команде первый раз, поэтому окно
должно быть пустым. Если это не так, то предварительно очистим его, выбрав
команду Очистить макет из меню Правка
или нажав кнопку Очистить макет на панели инструментов;
2) Чтобы добавить таблицы в окно Схема данных, выберем
опцию Добавить таблицу в меню Связи
или нажмем кнопку Добавить на панели инструментов;
3) Укажем системе те таблицы, между которыми
устанавливаем связь. В списке таблиц, находящемся на вкладке Таблицы
окна Добавление
таблицы, маркируем таблицу Сведения
о студентах и нажмем кнопку Добавить.
Проделав ту же операцию с таблицей Сведения
о родителях, щелкнем на кнопке Закрыть;
Рис. 21. Окно
добавление таблицы.
4) Переместим используемое для связи поле (в данном
случае – Код студента) таблицы «Сведения о студентах» к
соответствующему полю (Код студента)
«Сведения о родителях» с помощью
мыши;
5) На экране появится диалоговое окно Связи, в котором будет предложена связь
между таблицами «Сведения о студентах» и «Сведения о родителях» через поле Код студента;
6) Теперь путем установления типа отношений между
таблицами определим параметры связи. Щелкнем на кнопке Объединение и в раскрывшемся
окне выберем параметр объединения. Затем активизируем опцию Обеспечение
целостности данных;
7) После нажатия кнопки Создать
в окне Связи созданная связь между таблицами «Сведения о студентах» и
«Сведения о родителях» отображается графически.
Самостоятельная работа № 1
1) Свяжите таблицы «Сведения
о студентах» и «Годовая успеваемость группы» по полю Код студента.
2) Свяжите таблицы «Сведения
о студентах» и «Сведения о родителях»
по полю Код студента.