Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая работа / bd / базы данных2222.rtf
Скачиваний:
237
Добавлен:
17.02.2014
Размер:
19.41 Mб
Скачать

1.7.4. Ссылочная целостность

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

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

Существующие в БД ссылочные ограничения могут быть представлены ссылочной диаграммой

Поставщики ¬ Поставки ® Товар

Поставщик Код_поставщика Код_товара

Поставщики ¬ Поставки ® Товар

Начало стрелки указывает на внешний ключ отношения. Конец стрелки – на первичный ключ отношения.

База данных не должна содержать несогласованных значений внешних ключей, т.е. если B ссылается на A, тогда A должно существовать.

Понятия «внешний ключ» и «ссылочная целостность» определены в терминах друг друга. То есть невозможно объяснить, что такое внешний ключ, без упоминания понятия ссылочной целостности и наоборот.

Таким образом, понятия «поддержка ссылочной целостности» и «поддержка внешних ключей» означают в точности одно и то же.

1.7.5. Правила внешних ключей

Любое состояние БД, не удовлетворяющее правилу целостности, некорректно. В правиле целостности нет указаний на то, как избежать некорректного состояния БД.

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

Например, если пользователь пытается удалить поставщика S1 из отношения Поставщики, система сама может удалить поставки поставщика S1 из отношения Поставки без каких-либо действий со стороны пользователя (предполагается каскадное удаление).

Для каждого внешнего ключа необходимо ответить на два вопроса:

1. Что должно случиться при попытке удалить объект ссылки внешнего ключа? Например, удалить поставщика, для которого есть, по крайней мере, одна поставка. Имеется два решения:

  • ограничить – «ограничить» операцию удаления до момента, когда не будет существовать соответствующих поставок (в противном случае операция запрещается);

  • каскадировать – «каскадировать» операцию удаления, удаляя также соответствующие поставки.

2. Что должно случиться при попытке обновить потенциальный ключ, на который ссылается внешний ключ? Например, при попытке обновить номер поставщика, для которого существует, по крайней мере, одна соответствующая поставка. Здесь также имеется два решения:

  • ограничить – «ограничить» операцию удаления до момента, когда не будет существовать соответствующих поставок (в противном случае операция запрещается);

  • каскадировать – «каскадировать» операцию удаления, обновляя также внешний ключ в соответствующих поставках.

Глава 2. Модели данных

Процесс проектирования баз данных начинается с анализа предметной области. Информация о предметной области структурируется и представляется в виде взаимосввязанных элементов. Структурирование предметной области производится средствами разлиичных языков или систем специальных обозначений.

Мы рассмотрим несколько систем описания проектов баз данных. В частности, изучим наиболее популярные модели "сущность-связь" (entity-relationship) и подходи к моделированию, основанный на концепции "полуструктурированных" данных. Эта концепция позволяет моделированть данные в виде иерархически структурированных документов, используя "тэги", которые определяют функции текстовых элементов. В качестве средства практического воплощения "полуструктурированных данных" используются конструкци языка XML.

Процесс проектирования баз данных с использованием технологии "сущность-связь" (ER-диаграммы) можно схематически представить в следующем виде (Рис. 2.1.):

Рис. 2.1. Процесс моделирования и реализации базы данных

Соседние файлы в папке bd