Автор работы: Пользователь скрыл имя, 13 Мая 2013 в 19:29, реферат
Целостная часть описывает ограничения специального вида, которые должны выполняться для любых отношений в любых реляционных базах данных. Это целостность сущностей и целостность внешних ключей.
Манипуляционная часть описывает два эквивалентных способа манипулирования реляционными данными - реляционную алгебру и реляционное исчисление.
Цель данной работы рассмотреть структурную и целостную часть реляционной модели базы данных.
1. Введение……………………………………………………………………3
2. Типы данных…………………………………………………………….....5
3. Домены……………………………………………………………………..9
4. Отношения, атрибуты, кортежи отношения………………………......11
5. Целостность реляционных данных……………………………………...15
6. Null-значения……………………………………………………………...16
7. Потенциальные ключи и целостность сущностей…………………..….18
8. Внешние ключи и их целостность……………………………………….20
9. Операции, могущие нарушить ссылочную целостность…………..….25
10. Заключение………………………………………………………………..31
11. Список литературы…………………………………………………….....34
Далее, как отразить факт, что некоторый
поставщик, например Петров, временно
прекратил поставки деталей? Если мы
удалим все кортежи, в которых
хранится информация о поставках
этого поставщика, то мы потеряем данные
о самом Петрове как
Подобные проблемы возникают потому, что мы смешали в одном отношении различные объекты предметной области - и данные о поставщиках, и данные о деталях, и данные о поставках деталей. Говорят, что это отношение плохо нормализовано (просто нормализованным оно является хотя бы потому, что оно есть отношение и, следовательно, автоматически находится в 1НФ).
О том, как правильно нормализовать отношения, будет сказано в следующих главах, сейчас же предложим разнести данные по трем отношениям - "Поставщики", "Детали", "Поставки". Для нас важно выяснить, каким образом данные, хранящиеся в этих отношениях взаимосвязаны друг с другом. Эта связь определяется семантикой предметной области и описывается фразами: "Поставщики выполняют Поставки", "Детали поставляются через Поставки". Эти две взаимосвязи косвенно определяют новую взаимосвязь между "Поставщиками" и "Деталями": "Детали поставляются Поставщиками".
Эти фразы отражают различные типы взаимосвязей. Чтобы более точно отразить предметную область, можно иначе переформулировать фразы: "Один Поставщик может выполнять несколько Поставок", "Одна Деталь может поставляться несколькими Поставками". Это пример взаимосвязи типа "один-ко-многим". Взаимосвязь между "Поставщиками" и "Деталями" можно переформулировать так: "Несколько Деталей может поставляться несколькими Поставщиками". Это пример взаимосвязи типа "много-ко-многим".
В реляционных базах данных основными являются взаимосвязи типа "один-ко-многим". Взаимосвязи типа "много-ко-многим" реализуются использованием нескольких взаимосвязей типа "один-ко-многим". Отношение, входящее в связь со стороны "один" (например, "Поставщики"), называют родительским отношением. Отношение, входящее в связь со стороны "много" (например, "Поставки"), называется дочернем отношением.
Механизм реализации взаимосвязи "один-ко-многим" состоит в том, что в дочернее отношение добавляются атрибуты, являющиеся ссылками на ключевые атрибуты родительского отношения. Эти атрибуты и являются внешними ключами, определяющими, с какими кортежами родительского отношения связаны кортежи дочернего отношения. Такие атрибуты еще называют мигрирующими из родительского отношения.
Пусть дано отношение. Подмножество атрибутов отношения будем называть внешним ключом, если:
Существует отношение (и не обязательно различны) с потенциальным ключом.
Каждое значение в отношении всегда совпадает со значением для некоторого кортежа из, либо является null-значением.
Отношение называется родительским отношением, отношение называется дочерним отношением.
Внешний ключ, также как и потенциальный, может быть простым и составным. Внешний ключ должен быть определен на тех же доменах, что и соответствующий первичный ключ родительского отношения.
Внешний ключ, как правило, не обладает свойством уникальности. Так и должно быть, т.к. в дочернем отношении может быть несколько кортежей, ссылающихся на один и тот же кортеж родительского отношения. Это, собственно, и дает тип отношения "один-ко-многим".
Если внешний ключ все-таки обладает свойством уникальности, то связь между отношениями имеет тип "один-к-одному". Чаще всего такие отношения объединяются в одно отношение, хотя это и не обязательно.
Хотя каждое значение внешнего ключа
обязано совпадать со значениями
потенциального ключа в некотором
кортеже родительского
Null-значения для атрибутов
Правило целостности внешних ключей. Внешние ключи не должны быть несогласованными, т.е. для каждого значения внешнего ключа должно существовать соответствующее значение первичного ключа в родительском отношении.
На самом деле приведенные правила
целостности сущностей и
Действительно, в определении потенциального
ключа требуется, чтобы потенциальный
ключ обладал свойством
Для внешних ключей правило целостности фактически входит в определение. Таким образом, с точки зрения реляционной теории, явная формулировка правил целостности является излишней - они автоматически вытекают из определений понятий ключа и внешнего ключа.
Тем не менее, явная формулировка правил целостности имеет определенный практический смысл. В большинстве серьезных СУБД за выполнением этих ограничений следит сама СУБД, если, конечно, пользователь явно объявил потенциальные и внешние ключи. Но, во-первых, для некоторых систем можно допустить, чтобы эти ограничения не выполнялись, а во-вторых, некоторые системы просто не поддерживают понятия целостности, например, некоторые "настольные" СУБД типа FoxPro 2.5. В этих случаях за целостностью данных должен следить сам пользователь, или программист, разрабатывающий приложение для пользователя.
Явная формулировка правил целостности помогает четко понять, какие опасности несет в себе пренебрежение этими правилами.
Операции, могущие нарушить ссылочную целостность
Ссылочная целостность может нарушиться
в результате операций, изменяющих
состояние базы данных. Таких операций
три - вставка, обновление и удаление
кортежей в отношениях. Т.к. в определении
ссылочной целостности
Для родительского отношения
Вставка кортежа в родительском
отношении. При вставке кортежа
в родительское отношение возникает
новое значение потенциального ключа.
Т.к. допустимо существование
Обновление кортежа в
Удаление кортежа в
Для дочернего отношения
Вставка кортежа в дочернее отношение. Нельзя вставить кортеж в дочернее отношение, если вставляемое значение внешнего ключа некорректно. Вставка кортежа в дочернее отношение привести к нарушению ссылочной целостности.
Обновление кортежа в дочернем отношении. При обновлении кортежа в дочернем отношении можно попытаться некорректно изменить значение внешнего ключа. Обновление кортежа в дочернем отношении может привести к нарушению ссылочной целостности.
Удаление кортежа в дочернем отношении. При удалении кортежа в дочернем отношении ссылочная целостность не нарушается.
Таким образом, ссылочная целостность в принципе может быть нарушена при выполнении одной из четырех операций:
Существуют две основные стратегии
поддержания ссылочной
Можно рассмотреть дополнительные
стратегии поддержания
SET NULL (УСТАНОВИТЬ В NULL) - разрешить
выполнение требуемой операции,
но все возникающие
SET DEFAULT (УСТАНОВИТЬ ПО УМОЛЧАНИЮ)
- разрешить выполнение
В некоторых реализация СУБД рассматривается еще одна стратегия поддержания ссылочной целостности:
IGNORE (ИГНОРИРОВАТЬ) - выполнять операции,
не обращая внимания на
Конечно, это не стратегия, а отказ
от поддержки ссылочной
Рассмотрим, как применяются стратегии
поддержания ссылочной
При обновлении кортежа в родительском отношении допустимые стратегии:
Информация о работе Модели представления данных. Реляционная модель