- •Ис поддержки принятия решений.
- •Общая характеристика реляционной модели данных.
- •Типы данных
- •Типы данных, используемые в реляционной модели
- •Отношения, атрибуты, кортежи отношений.
- •Тема: Первая нормальная формула
- •Базовые концепции реляционных бд db2.
- •Объекты db2, используемые для хранения бд.
- •Контейнер Контейнер — это физическое хранилище. Имя контейнера — это имя папки (или имя устройства) или имя файла (для dms).
- •Буферный пул
- •Расчет физического пространства для таблиц.
- •Объекты системы
- •Целостность данных
- •Потенциальные ключи
- •Внешние ключи.
- •Целостность внешних ключей.
- •Операции, в результате которых нарушается ссылочная целостность:
- •Стратегии поддержания ссылочной целостности.
- •Дополнительные стратегии поддержки ссылочной целостности.
- •Нормальная форма отношений.
- •Критерий оценки качества логической модели данных.
- •Нормализация таблиц
- •Замкнутость реляционной алгебры
- •Зависимые реляционные операторы.
- •Запросы, невыразимые средствами реляционной алгебры.
- •Элементы языка sql.
- •Синтаксис языка sql с использованием языка Бэкуса-Наура.
- •Замечание
- •Замечание
- •Синтаксис условных выражений (из раздела where)
- •Порядок выполнения оператора select
- •Выражение средствами sql операторов реляционной алгебры
Целостность данных
Целостность данных определяется двумя ограничениями:
целостность сущностей
целостность внешних ключей
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-значений. Это утверждение определяет правило целостности сущности.