Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 Базы данных.doc
Скачиваний:
20
Добавлен:
18.02.2016
Размер:
258.05 Кб
Скачать
  1. Обеспечение ссылочной целостности баз данных и каскадные операции.

Для поддержания ссылочной целостности данных во многих СУБД имеется механизм так называемых внешних ключей. Смысл этого механизма состоит в том, что некоему атрибуту одного отношения назначается ссылка на первичный ключ другого отношения; тем самым закрепляются связи подчиненности между этими отношениями. При этом отношение, на первичный ключ которого ссылается внешний ключ другого отношения, называется master-отношением, или главным отношением; а отношение, от которого исходит ссылка, называется detail-отношением, или подчиненным отношением. После назначения такой ссылки СУБД имеет возможность автоматически отслеживать вопросы “не нарушения“ связей между отношениями, а именно:

  • если Вы попытаетесь вставить в подчиненную таблицу запись, для внешнего ключа которой не существует соответствия в главной таблице, СУБД сгенерирует ошибку;

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

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

Ссылочная целостность – это особый механизм, способствующий поддержанию непротиворечивых сведений в таблицах БД, связанных реляционными отношениями.

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

  • запрещается изменение поля связи или удаление записи главной таблицы, если для нее имеются записи в подчиненной таблице;

  • при удалении записи в главной таблице автоматически удаляются соответствующие ей записи в подчиненной таблице (каскадное удаление).

Обеспечение целостности БД необходимое условие успешного функционирования БД.

Целостность БД — свойство БД, означающее, что база данных содержит полную и непротиворечивую информацию, необходимую и достаточную для корректного функционирования приложений.Обеспечение целостности БД означает выполнение ряда ограничений, соблюдение которых необходимо для поддержания непротиворечивости хранимых данных. Среди ограничений целостности можно выделить ограничения диапазонов значений атрибутов отношений и структурные ограничения на кортежи отношений.

Структурные ограничения фиксируют два требования целостности, которые должны поддерживаться реляционными СУБД: требование целостности сущностей и целостности ссылок. Каждому экземпляру сущности, соответствует только один его элемент. Первое требование состоит в том, что любой элемент строки отношения должен быть отличим от любого другого элемента этого отношения, иными словами, любое отношение должно обладать первичным ключом. Формулировка второго требования тесно связана с понятием внешнего ключа. Для поддержания ссылочной целостности данных во многих СУБД имеется механизм так называемых внешних ключей. Напомним, что внешние ключи служат для связи отношений между собой. При этом атрибут одной таблицы, назовем ее родительской, служащий для связи ее с другой таблицей — дочерней, в которой он является первичным ключом — называется внешним ключом данного отношения. Отношение, в котором определен внешний ключ, ссылается на отношение, в котором этот же атрибут является первичным ключом.

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