Обеспечение целостности данных
В Microsoft Access обеспечивается возможность автоматической проверки целостности данных в связанных полях. Целостность данных — это система правил, используемых для поддержания связей между записями в связанных таблицах и защиты от случайного удаления или изменения данных. Установить проверку целостности данных можно, если выполнены следующие условия:
- Связанное поле главной таблицы является ключевым полем или имеет уникальный индекс.
- Связанные поля имеют один тип данных, за исключением случаев, когда:
- Поле счетчика может быть связано с числовым полем, если в последнем поле в свойстве Размер поля (FieldSize) указано значение Длинное целое (Long Integer).
- В обоих полях свойство Размер поля (FieldSize) имеет значение Код репликации (Replication ID).
- Обе таблицы принадлежат одной базе данных Microsoft Access.
Замечание
Таблицы одного приложения могут содержаться в нескольких файлах базы данных (см. также глава 3).
Чтобы обеспечить целостность, работа с данными должна производиться с учетом следующих правил:
- Невозможно ввести в связанное поле подчиненной таблицы значение, отсутствующее в связанном поле главной таблицы. Однако можно ввести пустое значение, указывающее, что связь для данной записи отсутствует.
- Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице.
- Невозможно изменить значение ключевого поля в главной таблице, если существуют связанные записи.
Чтобы эти правила контролировались, при создании связи следует установить флажок Обеспечение целостности данных (Enforce Referential Integrity). Если попытка выполнить действие, нарушающее одно из правил, то появится предупреждение, а действие выполнено не будет.
Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя целостность данных, следует установить флажки:
- Каскадное обновление связанных полей (Cascade Update Related Fields) — при изменении ключевого поля главной таблицы автоматически обновляются соответствующие значения связанных записей.
- Каскадное удаление связанных записей (Cascade Delete Related Records) — при удалении записи в главной таблице удаляются и все связанные записи в подчиненной таблице.