- •31. Интернет и базы данных. Часть 02. Нормализация базы данных.
- •32. Схема данных. Виды связей между таблицами базы данных.
- •Введение
- •Типы связей между таблицами
- •Зачем создавать связи между таблицами?
- •Понятие о целостности данных
- •Просмотр связей между таблицами
- •Вызов окна "Схема данных"
- •Создание связи между таблицами с помощью окна "Схема данных"
- •Создание связи между таблицами
- •Создание связи между таблицами с помощью области "Список полей"
- •Открытие таблицы в режиме таблицы
- •Открытие области "Список полей"
- •Добавление поля и создание связи из области "Список полей"
- •Удаление связи между таблицами
- •Изменение связи между таблицами
- •Внесите изменения в диалоговом окне Изменение связей.
- •Указание типа соединения
- •Указание типа соединения
- •Изменения в диалоговом окне Параметры соединения
- •Обеспечение целостности данных
- •Включение и отключение обеспечения целостности данных
- •Задание каскадных параметров
- •Включение и отключение каскадного обновления и каскадного удаления
- •33. Объекты базы данных Access (запросы, формы, отчеты).
- •Основные сведения о базе данных Access
- •Файлы баз данных Microsoft Access
- •Запросы
- •Просмотр подробных сведений об объектах в базе данных
- •Изучение таблицы в режиме конструктора
- •Просмотр связей между таблицами
- •Просмотр взаимодействия объектов
- •Использование области Зависимости объектов
- •34. Перспективные направления развития технологий баз данных. Базы данных в грид-технологиях
- •Сверхбольшие базы данных
- •Управление потоками данных
Зачем создавать связи между таблицами?
Связи между таблицами можно создать непосредственно с помощью окна "Схема данных" или путем перетаскивания поля из области Список полей. В приложении Access связи между таблицами позволяют соединять таблицы для их использования в объекте базы данных. По ряду причин связи между таблицами следует создавать до создания других объектов базы данных (форм, запросов и отчетов).
Связи между таблицами предоставляют сведения для структурирования запросов
Для работы с записями из нескольких таблиц часто приходится создавать запросы, соединяющие таблицы. Запрос сопоставляет значения в поле первичного ключа первой таблицы с полем внешнего ключа второй таблицы. Например, чтобы получить строки, в которых перечисляются все заказы для каждого из клиентов, можно создать запрос, соединяющий таблицу "Клиенты" с таблицей "Заказы" на основе поля "Код клиента". В окне "Схема данных" можно вручную указать поля для соединения. Но если связь между таблицами уже существует, Access использует соединение по умолчанию на основе существующей связи между таблицами. Кроме того, при использовании одного из мастеров запросов Access использует сведения об уже определенных связях между таблицами, чтобы предоставить пользователю выбор и подставить в параметры свойств соответствующие значения по умолчанию.
Связи между таблицами предоставляют сведения для структурирования форм и отчетов
При создании формы или отчета Access использует сведения об уже определенных связях между таблицами, чтобы предоставить пользователю выбор и подставить в параметры свойств соответствующие значения по умолчанию.
Связи между таблицами — это та основа, с помощью которой можно обеспечить целостность данных, чтобы в базе данных не было потерянных записей. Потерянная запись — это запись со ссылкой на несуществующую запись (например, запись заказа со ссылкой на отсутствующую запись клиента).
При создании базы данных сведения распределяются по таблицам, в каждой из которых есть первичный ключ. После этого к связанным таблицам добавляются внешние ключи, имеющие ссылки на первичные ключи. Эти пары из внешнего и первичного ключей формируют основу для связей между таблицами и многотабличных запросов. Поэтому важно, чтобы ссылки "внешний ключ — первичный ключ" оставались синхронизированными. Целостность данных гарантирует, что ссылки остаются синхронизированными, и зависит от связей между таблицами.
К началу страницы
Понятие о целостности данных
При создании базы данных сведения распределяются по множеству тематически организованных таблиц, чтобы свести к минимуму избыточность данных. После этого задается порядок совместного использования распределенных данных, для чего в связанных таблицах создаются общие поля. Например, чтобы создать связь "один-ко-многим", добавьте первичный ключ из таблицы на стороне "один" как дополнительное поле в таблицу на стороне "многие". Чтобы соединить данные, Access подставляет значение из таблицы на стороне "многие" в соответствующее поле таблицы на стороне "один". Таким образом, значения таблицы на стороне "многие" связаны с соответствующими значениями на стороне "один".
Предположим, между таблицами "Грузоотправители" и "Заказы" существует связь "один-ко-многим", и нужно удалить грузоотправителя. Если у грузоотправителя, которого нужно удалить, есть заказы в таблице "Заказы, они станут потерянными записями после удаления записи грузоотправителя. В таблице "Заказы" останется код грузоотправителя, но он будет недействителен, поскольку запись, на которую он ссылается, уже не существует.
Задача сохранения целостности данных состоит в предотвращении появления потерянных записей и поддержании ссылок в синхронизированном состоянии, чтобы описанная выше гипотетическая ситуация никогда не возникла.
Целостности данных можно добиться, если включить ее при создании связи между таблицами (см. пошаговые инструкции в разделе Обеспечение целостности данных). В результате приложение Access запрещает для этой связи все действия, которые могут нарушить целостность данных. Это значит, что Access будет запрещать обновления, изменяющие целевой объект ссылки, и операции удаления, которые его удаляют. Однако может возникнуть ситуация, когда потребуется изменить первичный ключ для грузоотправителя, имеющего заказы в таблице "Заказы". В таких случаях нужно, чтобы приложение Access автоматически обновило все задействованные строки в рамках одной операции. Так Access гарантирует, что обновление полностью завершено и база данных не осталась в несогласованном состоянии (одни строки обновлены, а другие — нет). Для этого в Access предусмотрен параметр "Каскадное обновление связанных полей". Если при включении целостности данных был выбран этот параметр, то при последующем обновлении первичного ключа будут автоматически обновлены все связанные с ним поля.
Может потребоваться удалить строку и все связанные записи — например, запись грузоотправителя и все связанные с ним заказы. Для этого в приложении Access предусмотрен параметр "Каскадное удаление связанных записей". Если при включении целостности данных выбрать его, а затем удалить запись на стороне первичного ключа в связи, Access автоматически удалит все записи со ссылкой на первичный ключ.
К началу страницы
