При создании схемы данных пользователь включает в нее таблицы и устанавливает связи между таблицами. Причем для связей типа «один к одному» и «один ко многим» можно задать параметр обеспечение целостности данных, а также автоматическое каскадное обновление и удаление связанных записей.
Обеспечение целостности данных означает выполнение для взаимосвязанных таблиц следующих условий корректировки базы данных:
• в подчиненную таблицу не может быть добавлена запись, для которой не существует в главной таблице ключа связи;
« в главной таблице нельзя удалить запись, если не удалены связанные с ней записи в подчиненной таблице;
• значения ключа связи главной таблицы должно приводить к изменению соответствующих значений в записях подчиненной таблицы,
В случае если пользователь нарушил эти условия в операциях обновления или удаления данных в связанных таблицах, Access выводит соответствующее сообщение и не допускает выполнения операции.
Access автоматически отслеживает целостность данных, если между таблицами в схеме данных установлена связь с параметрами обеспечения целостности. При вводе некорректных данных в связанные таблицы выводится сообщение. Access не позволяет создавать связи с параметрами целостности в схеме данных, если ранее введенные в таблицы данные не отвечают требованиям целостности.
Отметим, что установление между двумя таблицами связи типа «один к одному» или «один ко многим» и задание параметров целостности данных возможно только при следующих условиях:
• связываемые поля имеют одинаковый тип данных, причем имена полей могут быть различными;
• обе таблицы сохраняются в одной базе данных Access;
• главная таблица связывается с подчиненной по первичному простому или составному ключу (уникальному индексу) главной таблицы.
Если для выбранной связи обеспечивается поддержание целостности, то можно задать режим каскадного обновления и удаления связанных записей. В режиме каскадного обновления связанных записей при изменении значения в поле связи главной таблицы Access автоматически изменит значения в соответствующем поле в подчиненных записях.
В режиме каскадного удаления связанных записей при удалении записи из главной таблицы Access выполняет каскадное удаление подчиненных записей на всех уровнях.
|