Использование взаимосвязей
Различные типы связей
В предыдущем разделе была представлена новая концепция связи типа "один-множество", установленной между таблицами Растения и Каталоги. Всего существует три типа связей, подробное описание которых выходит за рамки данной книги, поэтому ограничимся лишь поверхностным знакомством с ними.
- Отношение "один-к-одному" – в обеих таблицах связана только одна запись. Связи такого рода встречаются нечасто.
- Отношение "один-ко-многим" – наиболее популярный тип связей. Каждая запись в таблице первичного ключа может быть соединена со множеством записей во взаимосвязанной таблице. Например, каждый каталог может быть связан с несколькими записями в таблице Растения, однако каждое растение при этом будет связано только с одним каталогом.
- Отношение "множество-множество" – в обеих таблицах существует несколько взаимосвязанных записей. К примеру, для описания цвета каждого растения можно добавить таблицу цветов. Каждый цвет будет связан с несколькими растениями, в то время как каждое растение может иметь несколько цветов.
Пока что не стоит задумываться о различиях типов связей, ведь Access проделывает немалую работу для автоматической обработки связей между таблицами.
Изменение связи
Мы уже умеем создавать связь, а теперь попробуем ее изменить. При этом мы воспользуемся принципом целостности данных для обеспечения связи между таблицами Растения и Типы. Под целостностью данных будем подразумевать набор правил, защищающих данные от бессмысленных изменений. Возьмем, к примеру, связь между растениями и типами. Что, если удалить первую строку из таблицы Типы? Мы не сможем просмотреть описание растений с номером типа, равным 1. Именно здесь "придет на помощь" функция целостности связей, которая сейчас будет использоваться с уже существующей связью.
Откройте диалоговое окно Изменение связей, дважды щелкнув на связи между таблицами Растения и Типы. Установите флажок Обеспечение целостности данных и щелкните на кнопке ОК (а не на кнопке Создать, как это делалось нами ранее – см. рис. 6.13).
В результате изменения связи между таблицами Растения и Типы соответствующим образом изменится и внешний вид соединительной линии (рис. 6.15). Как видите, связь между таблицами представляет собой отношение "один-ко-многим" с поддержкой функции целостности связи.
Рис. 6.15. Обновленная соединительная линия между таблицами Растения и Типы
В диалоговом окне Изменение связей имеется еще несколько элементов управления (см. рис. 6.13). Рассмотрим их предназначение.
- В списке Таблица/запрос – всегда указывается первичный ключ связи. С его помощью можно указать соответствующее поле(я) ключа в ячейках, расположенных ниже списка. Как правило, Access самостоятельно определяет корректные значения.
- В списке Связанная таблица/запрос – всегда указывается внешний ключ связи. С его помощью можно определить соответствующее поле(я) в ячейках ниже списка. Как правило, Access также самостоятельно определяет корректные значения.
- Кнопка Объединение – щелчок на ней выводит на экран еще одно диалоговое окно, в котором можно изменить тип соединения. Эта операция нами применяться не будет.
- Кнопка Новое – позволяет связать несколько ключей полей (более подробная информация о первичных и внешних ключах представлена в главе 4).
- Флажок каскадное обновление связанных полей – обеспечивает целостность данных, возможную только при условии установки соответствующего флажка. Позволяет автоматически обновить все значения связанного внешнего ключа при изменении значения главного первичного ключа. Лишь в случае крайней необходимости рекомендуется использовать эту функцию.
- Флажок каскадное удаление связанных полей – обеспечивает целостность данных, возможную только при условии установления флажка Обеспечение целостности данных. Позволяет автоматически удалить все записи связанного внешнего ключа при удалении записи первичного ключа. Рекомендуется использовать лишь в случае необходимости.
- Поле Тип отношения – определяет тип связи между таблицами.
Закройте окно Схема данных и щелкните на кнопке Да, чтобы подтвердить корректность внесенных изменений.