
- •Часть 2. Создание подстановок и связей
- •1. Создание подстановок
- •1.1. Подстановка для внешнего ключа
- •1.2. Подстановка ранее введенных значений
- •2. Создание связей
- •2.1. Определение связи «один ко многим»
- •2.2. Параметры связи
- •2.2.1. Обеспечение целостности данных
- •2.2.2. Параметры объединения
- •2.3. Определение связи «один к одному»
- •3. Редактирование записей таблицы
- •4. Редактирование схемы базы данных
- •4.1. Редактирование полей таблицы
- •4.2. Редактирование связей
2.1. Определение связи «один ко многим»
Напомним, что в реляционной модели связь «многие ко многим» моделируется с помощью дополнительной таблицы и двух связей «один ко многим». Поэтому в данном разделе, по сути, рассмотрены способы реализации двух типов связей.
Рассмотрим
способ определения связи «один ко
многим». Делается это в специальном
окне «Схема данных». Для выхода в это
окно нажмите кнопку
.
Если схема еще не задавалась, то появится
окно «Добавление таблицы» (рис.14).
Выберите из перечня те таблицы, которые
будут входить в схему. Обычно выбирают
все таблицы. Нажмите последовательно
кнопки «Добавить» и «Закрыть». Появится
окно схемы данных (рис.15).
Рисунок 14. Диалог «Добавление таблицы»
Рисунок 15. Окно «Схема данных» с таблицами, но без связей
В выбранных таблицах все подготовлено для создания связи – имеются первичные ключи (выделены жирным шрифтом) и внешний ключ. Остается явно указать, что внешний ключ «Операции.[Код клиента]» ссылается на первичный ключ «Клиенты.[Код клиента]». Для этого в Access используется классический способ «перетаскивания» с помощью мышки (Drag & Drop). «Возьмите» поле «Операции.[Код клиента]» и «сбросьте» его над полем «Клиенты.[Код клиента]». Можно наоборот, «взять» поле «Клиенты.[Код клиента]» и «сбросить» его над полем «Операции.[Код клиента]». Появится диалог «Изменение связей» (рис. 16). Диалог уже заполнен, поэтому для определения новой связи достаточно нажать кнопку «Создать».
Рисунок 16. Диалог «Изменение связей»
После этого в окне «Схема данных» (рис. 17) созданная связь отобразится графически.
Рисунок 17. Окно «Схема данных» с созданной связью
В нашем примере используется только две таблицы с одной связью. Для иллюстрации ниже на рисунке 18 приведен пример схемы данных с несколькими таблицами и связями.
Рисунок 18. Окно «Схема данных» со связями между разными таблицами
2.2. Параметры связи
Обратите внимание на то, что графические изображения связей отличаются. На рисунке 18 можно выделить три вида связей. Разберемся, чем они отличаются.
Дополнительные параметры связи позволяют определить некоторые полезные детали. Это обеспечение целостности данных и способ объединения записей.
2.2.1. Обеспечение целостности данных
Условиями целостности данных называют набор правил, которые Access использует для поддержания допустимых межтабличных связей и запрета на случайное изменение или удаление связанных данных.
Установка флажка «Обеспечение целостности данных» (рис. 16) заставляет Access контролировать соответствие значений первичного и внешнего ключей так, чтобы любому значению внешнего ключа нашлась запись с точно таким же значением первичного ключа. Благодаря этому всегда можно найти соответствующую запись в главной таблице. Детали этого процесса определяют флажки «Каскадное обновление связанных полей» и флажка «Каскадное удаление связанных записей».
Установка флажка «Каскадное обновление связанных полей» (рис. 16) заставляет Access при изменении первичного ключа изменять внешние ключи во всех связанных записях. Если этот флажок не установлен, то изменение первичного ключа будет запрещено. Если первичный ключ не имеет собственной семантики (например, если это счетчик – номер по порядку), то целесообразно запретить его изменение. Если такая семантика имеется (например, если ключом является номер счета, содержащий код региона, код учреждения, код валюты и т.п.) и значение ключа может в будущем меняться, то целесообразно установить флажок «Каскадное обновление связанных полей».
Установка флажка «Каскадное удаление связанных записей» (рис. 16) означает, что при удалении записи из главной таблицы будут удалены все связанные записи подчиненной таблицы. Когда этот флажок не установлен, то удаление записи из главной таблицы будет запрещено, если имеются связанные записи в подчиненной таблице.