Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsia_po_Bazam_dannykh.doc
Скачиваний:
12
Добавлен:
25.09.2019
Размер:
1.51 Mб
Скачать

7.6.3. Установление связей между таблицами Реляционные базы данных состоят из нескольких таблиц.

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

Существует три типа возможных отношений между таблицами. Отношение «один-к-одному» означает, что в любой момент времени каждая записи в Таблице 1 соответствует не более одной записи в Таблице 2 и наоборот – каждой записи в Таблице 2 соответствует не более одной записи в Таблице 1. Отношения этого типа используются нечасто, поскольку обычно сведения, связанные таким образом, хранятся в одной таблице. Например, одному гражданину страны соответствует только один номер паспорта, в то же время один номер паспорта соответствует только одному человеку.

Рис. 7.6.3.1 Связь «один-к-одному»

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

Рис. 7.6.3.2. Связь «один-ко-многим»

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

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

Рис. 7.6.3.3. Связь «многие-к-одному»

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

Рис. 7.6.3.4. Связь «многие-ко-многим»

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

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

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

2. Связанные поля имеют один тип данных.

3. Обе таблицы принадлежат одной БД Access.

Установив целостность данных, необходимо действовать в соответствии со следующими правилами.

1. Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы.

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

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

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

Рис. 7.6.3.5. Создание связей между таблицами

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]