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

Контроль ссылочной целостности



Контроль ссылочной целостности обычно заключается в анализе содержимого ключевых полей связанных таблиц при выполнении операций ведения БД.

При создании связи 1:М таблица, находящееся на стороне 1, считается главной (родительской) или мастер - таблицей, а таблица, находящаяся на стороне М – подчиненной (дочерней). Каждой записи мастер-таблицы может соответствовать нуль или более записей подчиненной таблицы. Поле внешнего ключа подчиненной таблицы должен содержать только те значения, которые уже имеются среди значений первичного ключа мастер-таблицы. Это значит, что в подчиненной таблице не могут присутствовать записи, не имеющие родительских записей в мастер-таблице.

Ссылочная целостность контролируется:

- при вводе записей в подчиненную таблицу;

- при удалении записи из родительской таблицы;

- при модификации (изменении значения) первичного ключа в мастер-таблице и внешнего ключа подчиненной таблицы.

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

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

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

При любых манипуляциях с записями мастер-таблицы необходим контроль уникальности значений их первичного ключа.

В СУБД последних поколений контроль ссылочной целостности осуществляется системой. При выполнении некорректных манипуляций с записями система блокирует операцию и генерирует соответствующее сообщение.





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



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