Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы_данных_Access.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.16 Mб
Скачать

12. Установление связей между таблицами

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

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

1. Выберите команду Сервис > Схема данных.

2. Используя команду Связи > Добавить таблицу, укажите имена таблиц, которые должны быть связаны. Названия каждой из таблиц со списками полей появятся в соответствующем окне.

3. Установите курсор в любую из таблиц на поле, по которому будет установлена связь, и «перетащите» это поле на связующее поле другой таблицы.

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

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

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

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

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

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

1. Отношение «один-к-одному» (1:1) означает, что каждая запись одной таблицы соответствует только одной записи в другой таблице.

Отношение «один-к-одному» (1:1) создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы.

2. Отношение «один-ко-многим» означает, что каждая запись одной таблицы соответствует более одной записи в другой таблице.

Отношение «один-ко-многим» (1:М) создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс. В отношении «один-ко-многим» главной таблицей является таблица, которая содержит первичный ключ и составляет часть «один» в этом отношении. Таблица со стороны «много» является подчиненной таблицей. Связующее поле (или поля) в ней с таким же типом информации, как в первичном ключе главной таблицы, является полем внешнего ключа.

3. Отношение «многие-ко-многим» (М:М) возникает между двумя таблицами в тех случаях, когда одна запись из первой таблице соответствует более одной записи во второй таблице, а одна запись из второй таблице соответствует более одной записи в первой таблице.

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

В случае, если для какой-то из таблиц не было определено ключевое поле, то в поле Тип отношения отображается текст: «Hе определено».

Для удаления связи: в окне Схема данных выделите ненужную связь и нажмите клавишу <Delete> или в контекстном меню команда Удалить.

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