Многотабличные БД

 

Связывание таблиц в Access

 

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

Простейшей и наиболее редкой формой связи между таблицами является связь «один к одному», при которой для каждой записи в одной таблице суще­ствует одна связанная с ней запись в другой таблице. Приме­ром такой ситуации может служить связь ЯВЛЯЮТСЯ_РОДИТЕЛЯМИ между таблицами «Сведения о студентах» и «Сведения о родителях».

Гораздо чаще встречается связь «один ко многим», при которой для каж­дой записи в одной таблице существует одна, несколько или ни одной записи в другой таблице. Примером такой ситуации может служить связь ГОДОВЫЕ_ОЦЕНКИ_УЧЕНИКА между таблицами «Сведения о студентах» и «Годовая успеваемость группы».

Нередко приходится иметь дело также со связью «многие ко многим», при которой отсутствуют ограничения на множества пар записей, принадлежа­щих связи. Такая связь в Access не используется. Ее необходимо представить в виде двух связей «один ко многим».

При установке связи одна из таблиц является главной, а другая - подчи­ненной.

Ясно, что заполняя таблицу «Сведения о студентах», мы можем указать в ней фамилии студентов, для которых в таблице «Сведения о родителях» пока нет записей. Обратное неверно: не имеет смысла включать в таблицу «Сведения о родителях» данные о родителях того студента, для которого нет записи и табли­це «Сведения о студентах». Поэтому в паре Сведения о студентах - Сведения о родителях первая таблица является главной, а вторая - подчиненной.

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

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

Для каждой связи в Access обязательно должен быть выбран один из па­раметров объединения, который задается в окне Параметры объединения.

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

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

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

Целостность данных означает:

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

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

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

­       каскадное обновление связанных полей;

­       каскадное удаление связанных записей.

Если при определении связи установить флажок Каскадное обновление связанных полей, любое изменение значения в ключевом поле главной табли­цы приведет к автоматическому обновлению соответствующих значений во всех связанных записях. Например, при изменении кода ученика в таблице Сведения об учениках будет автоматически обновлено поле Код ученика во всех записях таблицы Годовая успеваемость класса, поэтому целостность данных не будет нарушена. Microsoft Access выполнит каскадное обновление без ввода предупреждающих сообщений.

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

 

Задание 1.

Установить связь между таблицами «Сведения о студентах» и «Сведения о родителях».

1)      Из меню Сервис выберем команду Схема данных. На экране появится окно Схема данных, в котором можно создавать, просматривать или удалять связи между таблицами базы данных. При работе с базой дан­ных мы обращаемся к этой команде первый раз, поэтому окно должно быть пустым. Если это не так, то предварительно очистим его, выбрав команду Очистить макет из меню Правка или нажав кнопку Очистить макет на панели инструментов;

2)      Чтобы добавить таблицы в окно Схема данных, выберем опцию Добавить таблицу в меню Связи или нажмем кнопку Добавить на панели инструментов;

3)      Укажем системе те таблицы, между которыми устанавливаем связь. В списке таблиц, находящемся на вкладке Таблицы окна Добавление таблицы, маркируем таблицу Сведения о студентах и нажмем кноп­ку Добавить. Проделав ту же операцию с таблицей Сведения о роди­телях, щелкнем на кнопке Закрыть;

Рис. 21. Окно добавление таблицы.

 

4)      Переместим используемое для связи поле (в данном случае – Код студента) таблицы «Сведения о студентах» к соответствующему полю (Код студента) «Сведения о родителях» с помощью мыши;

5)      На экране появится диалоговое окно Связи, в котором будет предло­жена связь между таблицами «Сведения о студентах» и «Сведения о родителях» через поле Код студента;

6)      Теперь путем установления типа отношений между таблицами опреде­лим параметры связи. Щелкнем на кнопке Объединение и в раскрывшемся окне выберем параметр объединения. Затем активизируем оп­цию Обеспечение целостности данных;

7)      После нажатия кнопки Создать в окне Связи созданная связь между таблицами «Сведения о студентах» и «Сведения о родителях» отобра­жается графически.

 

Самостоятельная работа № 1

1)      Свяжите таблицы «Сведения о студентах» и «Годовая успеваемость группы» по полю Код студента.

2)      Свяжите таблицы «Сведения о студентах» и «Сведения о родителях» по полю Код студента.

 

Hosted by uCoz