Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Поддержание целостности данных



При поддержании ссылочной целостности между главной и подчиненной таблицами часто используются следующие правила:

- подчиненная строка не может быть вставлена, пока не существует главная строка; однако в поле внешнего ключа возможен ввод пустых значений, показывающих, что записи только подготавливаются и пока не являются связанными;

- главная строка не может быть удалена до удаления всех подчиненных строк;

- если значение первичного ключа в главной строке изменено, все значения внешнего ключа, которые обращаются к этому значению первичного ключа, должны быть также обновлены, и, наоборот, нельзя изменить значение ключевого поля в главной таблице, если существуют связанные записи.

Чтобы наложить эти правила на конкретную связь, при ее создании следует установить флажок Обеспечение целостности данных в окне Изменение (Relationships) (рисунок 5.3). Если данный флажок установлен, то любая попытка выполнить действие, нарушающее одно из перечисленных выше правил, приведет к выводу на экран предупреждения, а само действие выполнено не будет.

Каскадное обновление и каскадное удаление

Если для связей, определена целостность данных, пользователь имеет возможность указать, следует ли автоматически выполнять для связанных записей операции каскадного обновления и каскадного удаления. Если включить данные параметры, станут возможными операции удаления и обновления, в противном случае запрещенные условиями целостности данных. Чтобы обеспечить целостность данных при удалении записей или изменении значения ключевого поля в главной таблице, автоматически вносятся необходимые изменения в связанные таблицы.

Если при определении связи в окне Изменение связей (Relationships) установить флажок Каскадное обновление связанных полей (Cascade Update Related Fields), любое изменение значения в ключевом поле главной таблицы приведет к автоматическому обновлению соответствующих значений во всех связанных записях. Например, при изменении кода города в таблице "Город" будет автоматически обновлено поле "Код Города" во всех записях таблицы "Разговор" для каждого разговора абонента с этим городом, поэтому целостность данных не будет нарушена. Access выполнит каскадное обновление без ввода предупреждающих сообщений.

Примечание: Если в главной таблице ключевым полем является поле счетчика, то установление флажка Каскадное обновление связанных полей (Cascade Update Related Fields) не приведет к каким-либо результатам, так как изменить значение поля счетчика невозможно.

Если при определении связи установить флажок Каскадное удаление связанных записей (Cascade Delete Related Records), любое удаление записи в главной таблице приведет к автоматическому удалению связанных записей в подчиненной таблице. Например, при удалении из таблицы "Абонент" записи конкретного абонента будут автоматически удалены все связанные записи в таблице "Разговор". Если записи удаляются из формы или таблицы при установленном флажке Каскадное удаление связанных записей (Cascade Delete Related Records), Access выводит предупреждение о возможности удаления связанных записей. Если же записи удаляются с помощью запроса на удаление записей, то удаление осуществляется автоматически без вывода предупреждения.





Дата публикования: 2015-03-29; Прочитано: 337 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...