Структура реляционной базы данных в Access задается схемой данных, которая имеет иерархическую структуру и называется канонической реляционной моделью предметной области. Схема данных графически отображается в отдельном окне, в котором таблицы представлены списками полей, а связи – линиями между полями разных таблиц. При построении схемы данных Access автоматически определяет по выбранному полю тип связи между таблицами. Если поле, по которому нужно установить связь, является уникальным ключом как в главной таблице, так и в подчиненной, Access устанавливает связь типа один к одному. Если поле связи является уникальным ключом в главной таблице, а в подчиненной таблице является не ключевым или входит в составной ключ, Access устанавливает связь типа один ко многим от главной таблицы к подчиненной. Кроме указанных типов связей в Access существуют связи — объединения, обеспечивающие объединение записей таблиц не по ключевому полю, а в следующих случаях: − связываемые записи в обеих таблицах совпадают (связи устанавливаются по умолчанию); − для всех записей первой таблицы, для которых отсутствуют связи со второй таблицей, устанавливаются связи с пустой записью второй таблицы; − для всех записей второй таблицы, для которых отсутствуют вязи с первой таблицей, устанавливаются связи с пустой записью первой таблицы. При создании схемы данных пользователь включает в нее таблицы и устанавливает связи между ними. Причем для связей типов один к одному и один ко многим можно задать параметр, обеспечивающий целостность данных, а также автоматическое каскадное обновление или удаление связанных записей. Обеспечение целостности данных означает выполнение для взаимосвязанных таблиц следующих условий корректировки базы данных: − в подчиненную таблицу не может быть добавлена запись, для которой не существует в главной таблице ключа связи; − в главной таблице нельзя удалить запись, если не удалены вязанные с ней записи в подчиненной таблице; − изменение значений ключа связи главной таблицы должно приводить к изменению соответствующих значений в записях подчиненной таблицы, В случае если пользователь нарушил эти условия в операциях обновления или удаления данных в связанных таблицах, Access выводит соответствующее сообщение и не допускает выполнения операции. Access автоматически отслеживает целостность данных, ели между таблицами в схеме данных установлена связь с параметрами обеспечения целостности. При вводе некорректных данных в связанные таблицы выводится соответствующее сообщение, Аccess не позволяет создавать связи с параметрами обеспечения целостности в схеме данных, если ранее введенные в таблицы данные не отвечают требованиям целостности. Отметим, что установление между двумя таблицами связи типа один к одному или один ко многим и задание параметров целостности данных возможно только при следующих условиях: − связываемые поля имеют одинаковый тип данных, причем имена полей могут быть различными; − обе таблицы сохраняются в одной базе данных Access; − главная таблица связывается с подчиненной по первичному простому или составному ключу (уникальному индексу) главной таблицы. Если для выбранной связи обеспечивается поддержание целостности, то можно задать режимы каскадного обновления и удаления связанных записей. В режиме каскадного обновления связанных записей при изменении значения в поле связи главной таблицы Access автоматически изменит значения в соответствующем поле в подчиненных записях. |