Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 2002.doc
Скачиваний:
44
Добавлен:
15.06.2014
Размер:
335.36 Кб
Скачать

Целостность данных

Целостность данных определяется двумя ограничениями:

  1. целостность сущностей

  2. целостность внешних ключей

NULL-значения

При проектировании БД, некоторые строки в таблице могут быть не полностью заполнены. NULL-значение — это маркер, показывающий, что значение неизвестно. Когда возникает ситуация, что возможно появление неопределенного значения, разработчик может использовать два варианта:

  • использовать NULL-значение

  • использовать значение по умолчанию

На разработчика ложится ответственность за правильную трактовку данных. Отсюда усложнение разработки и сопровождения приложения.

Трехзначная логика

NULL-значения обозначают тот факт, что значение неизвестно, следовательно любые алгебраические операции (сложение, конкатенация строк,…) должны так же давать неизвестные значения, т.е. множество возможных результатов должно содержать NULL-значение. При сравнении выражений, содержащих NULL-значения результат так же может быть неизвестен.

Трехзначная логика базируется на следующих таблицах истинности:

F — false

T — true

U — unknown

AND

F

T

U

F

F

F

F

T

F

T

U

U

F

U

U

NOT

F

T

T

F

U

U

OR

F

T

U

F

F

T

U

T

T

T

T

U

U

T

U

Следствие 1:

NULL-значение не равно самому себе. Выражение NULL =NULL дает значение не известно, а не истинно.

Следствие 2:

Не верно то, что NULL-значение не равно самому себе. Результат операции не известен.

Следствие 3:

В трехзначной логике не работает принцип исключения третьего (АА). NULL-значение поддерживают все СУБД.

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

По определению тело отношения — есть множество кортежей, поэтому отношения не могут содержать одинаковые кортежи. Каждый кортеж должен обладать свойством уникальности. На самом же деле свойством уникальности в пределах отношения могут обладать отдельные атрибуты кортежей или группы атрибутов. Такие уникальные атрибуты используют для идентификации кортежей.

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

  • уникальность, т.е. в отношении не может быть двух различных кортежей с одинаковым значением К.

  • не избыточность, т.е. никакое подмножество в К не обладает свойством уникальности.

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

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

Отношение может включать несколько потенциальных ключей. Один из них объявляется первичным, остальные — альтернативные (в DB2 — Candidat), но различия между ними нет.

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

Замечание:

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

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