Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД.docx
Скачиваний:
2
Добавлен:
07.09.2019
Размер:
2.33 Mб
Скачать

Парадоксы:

  1. Null-значение не равно самому себе.

  2. Null-значение не неравно самому себе.

  3. Выражение а or not(a) не обязательно является истинной.

Потенциальные ключи.

Пусть дано отношение R, подмножество атрибутов «к» отношения R будем называть потенциальным ключом если «к» обладает следующими свойствами:

  1. Свойство уникальности. В отношении не может быть 2х различных значений с одинаковым значение «К».

  2. Свойство неизбыточности. Никакое подмножество «к» не обладает свойством уникальности.

Отношение может иметь несколько потенциальных ключей. Первичный(ЗНАЧЕНИЕ НЕ ДОЛЖНО ПОВТОРЯТСЯ)и альтернативный ключ.

Замечание: Первичный ключ служит средством идентификации, по нему мы можем однозначно определить объект, а так же потенциальный ключ служит единственным средством адресации на уровне картежей.

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

Внешние ключи.

№ пост

Наименование пост

№ детали

Наименование детали

Количество

1

Макаров

1

Болт

100

1

Макаров

2

Гайка

200

1

Макаров

3

Винт

300

2

Маринкин

1

Болт

150

2

Маринкин

2

Гайка

250

3

Черкасов

1

болт

1000

К лючевые поля-№ поставщика и № детали.

Пусть дано отношение R, подмножество «FK» отношения R будет называться внешним ключом если:

  1. Существует отношение S с потенциальным ключом «k».

  2. Каждое значение «FK» в отношении R всегда совпадает со значением «К» для некоторого картежа из S либо является null-значением. Отношение S называют родительским, отношение R-дочерним.

Замечания:

  1. Внешний ключ может быть простым и составным.

  2. Внешний ключ должен быть определён на тех же доменах что и соответствующий первичный ключ родительского отношения.

  3. Внешний ключ не обладает свойством уникальности.

  4. Если внешний ключ всё-таки обладает свойством уникальности, то связь между отношениями имеет тип один к одному.

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

  6. Для внешнего ключа не требуется чтобы он был компонентом некоторого потенциального.

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

Операции нарушающие целостность по ссылкам.

  1. Вставка.

  2. Обновление.

  3. Удаление.

Для родительского отношения:

  1. Вставка кортежа в родительское отношение. Целостность не нарушает.

  2. Обновление кортежа в родительском отношении. Целостность нарушается.

  3. Удаление кортежа в родительском отношении. Целостность нарушается

Для дочернего отношения:

  1. Вставка. Целостность нарушается.

  2. Обновление. Целостность нарушается.

  3. Удаление. Целостность не нарушает.

Стратегии:

  1. Restrict (ограничить). Не разрешает применять операции приводящие к нарушению целостности по ссылке.

  2. Cascade(каскадировать). Разрешить выполнение требуемой операции, но вносит при этом поправки в другие отношения так, чтобы не допустить нарушение целостности по ссылкам и сохранить имеющие связи.

  3. Set null(установить в null). Разрешает выполнение требуемой операции, но все возникающие некорректные значения внешнего ключа меняет на null.

  4. Set default(установить по умолчанию).

  5. Ignore. Разрешает все операции, все до одной и не ебёт на целостность.

Применение стратегий в поддержании целостности по ссылкам:

  1. Обновление кортежей в родительском отношении.(допустимые все кроме cascade)

  2. Удаление кортежей в родительском отношении.

  3. Вставка кортежа в дочернее отношение.(допустимые restrict, set null, set default,ignore).