
- •Информация и данные
- •Основные понятия систем с базами данных
- •Пользователи информационной системы с БД
- •Требования к информационным системам с базами данных
- •Основные компоненты ИС с базами данных
- •Архитектура систем с базами данных. Понятие модели данных
- •Сущности и их свойства
- •Связи (отношения) между сущностями
- •Виды связей между сущностями
- •Еще о сущностях, их свойствах и связях между ними
- •Модели данных. Ранние подходы к организации баз данных
- •Основные понятия реляционной модели данных
- •Структуры данных реляционной модели. Реляционные отношения
- •Свойства отношений
- •Отсутствие в отношении одинаковых кортежей
- •Кортежи отношения не упорядочены (сверху вниз)
- •Атрибуты отношения не упорядочены (слева направо)
- •Значения всех атрибутов являются атомарными
- •Виды отношений
- •Реляционная база данных
- •Реляционная модель. Операции над данными
- •Реляционная алгебра
- •Пересечение отношений
- •Вычитание отношений
- •Декартово произведение отношений
- •Проекция
- •Выборка (ограничение)
- •Естественное соединение отношений
- •Деление
- •Реляционное исчисление
- •Примеры правильно построенных формул
- •Язык SQL
- •Отличие SQL от процедурных языков программирования
- •Формы и составные части SQL
- •Условия и терминология
- •Простейшие SELECT-запросы
- •Ограничения целостности в реляционной модели
- •Ограничения целостности уровня атрибута
- •Домены отношений
- •Отсутствующая информация или NULL-значения.
- •Ограничения целостности уровня кортежа
- •Ограничения целостности уровня отношения
- •Потенциальные, первичные, альтернативные ключи отношения
- •Потенциальные ключи и NULL-значения
- •Ограничения целостности уровня базы данных
- •Внешние ключи и NULL-значения
- •Правила ссылочной целостности
- •При обновлении кортежа в родительском отношении
- •При удалении кортежа в родительском отношении
- •При вставке кортежа в дочернее отношение
- •При обновлении кортежа в дочернем отношении
- •Средства обеспечения целостности данных в СУБД
- •Поддержка декларативных ограничений целостности в языке SQL
- •Проектирование базы данных
- •Функциональная зависимость
- •Нормализация отношений базы данных
- •Нормальные формы
- •Декомпозиция без потерь и функциональные зависимости
- •Первая и вторая нормальные формы.
- •Третья нормальная форма.
- •Многозначные зависимости и четвертая нормальная форма
- •Зависимости соединения и пятая нормальная форма
- •Итоговая схема процедуры нормализации
- •Структуры хранения данных и методы доступа
- •Хранение отношений и доступ к хранимым данным
- •Индексирование
- •Управление транзакциями и целостность баз данных
- •Транзакции и параллелизм
- •Проблемы, возникающие при параллельном выполнении транзакций
- •Проблема потери результатов обновления
- •Проблемы несовместимого анализа
- •Несовместимый анализ – неповторяемое считывание
- •Несовместимый анализ – фиктивные элементы (фантомы)
- •Собственно несовместимый анализ
- •Конфликты между транзакциями
- •Методы сериализации транзакций
- •Решение проблем параллелизма при помощи блокировок
- •Проблема потери результатов обновления
- •Проблема несовместимого анализа. Неповторяемое считывание
- •Фиктивные элементы (фантомы)
- •Собственно несовместимый анализ
- •Уровни изоляции. Объекты синхронизационных блокировок
- •Предикатные синхронизационные блокировки
- •Метод временных меток
- •Уровни изоляции.
- •Синтаксис операторов SQL, определяющих уровни изоляции

138
Отношение R{А, В, С}, удовлетворяющее функциональным зависимостям А→В, следует разбивать на проекции {А, В} и {А, С}.
То же самое можно утверждать и для многозначных зависимостей А→ В, то есть
Отношение R{А, В, С}, удовлетворяющее многозначным зависимостям А→В|С, следует разбивать на проекции {А, В} и {А, С}.
10.8.Зависимости соединения и пятая нормальная форма
Впредыдущих разделах, посвященных вопросам нормализации отношений, рассматриваются случаи, когда единственно необходимой и допустимой операцией для устранения имеющих место в отношениях проблем является декомпозиция без потерь отношения на две его проекции. Такая декомпозиция решала проблемы, связанные с наличием в отношении многозначной зависимости и ее частного случая – функциональной зависимости и на такой декомпозиции основывается последовательная нормализация отношений от первой нормальной формы до четвертой.
Однако, возможны случаи, когда устранение в отношении аномалий не может быть достигнуто путем декомпозиции отношения на две его проекции без потерь, в то время как декомпозиция его на три и более проекций обеспечивает отсутствие потерь информации и устранение аномалий. Другими словами, для некоторых отношений возможна декомпозиция без потерь на n проекций, а на меньшее число проекций декомпозиция без потерь невозможна.
Рассмотрим в качестве примера отношение, имеющее следующий набор
атрибутов {СТУДЕНТ, ДИСЦИПЛИНА, ПРЕПОДАВАТЕЛЬ}.
СТУД_ДИСЦ_ПРЕП
СТУДЕНТ |
ДИСЦИПЛИНА |
ПРЕПОДАВАТЕЛЬ |
Иванов |
Физика |
Кузнецов |
Иванов |
Математика |
Степанов |
Петров |
Физика |
Степанов |
Иванов |
Физика |
Степанов |
Рис.10.25. Отношение СТУД_ДИСЦ_ПРЕП
139
В этом отношении представлена информация о студентах, изучающих конкретные дисциплины у конкретных преподавателей. Для удобства представим это отношение в более компактной форме
СДП
С |
Д |
П |
И |
Ф |
К |
И |
М |
С |
П |
Ф |
С |
И |
Ф |
С |
Рис.10.26. Компактная форма отношения СТУД_ДИСЦ_ПРЕП
Ключом отношения СДП является составной атрибут {С, Д, П}, то есть весь кортеж отношения. Это отношение не содержит нетривиальных функциональных и многозначных зависимостей и поэтому полностью удовлетворяет требованиям четвертой нормальной формы. Кроме этого, допустим, что на это отношение еще наложено следующее ограничение целостности.
Если в каких-либо кортежах отношения имеется пара значений атрибутов С1,Д1, а также пара Д1,П1, и пара П1,С1, то в отношении обязательно должен присутствовать кортеж {С1, Д1, П1}.
Это ограничение можно представить еще иначе следующим образом.
Если в отношении присутствуют кортежи {С1, Д1, П2}, {С2, Д1, П1} и {С1, Д2, П1}, то в нем обязательно также должен быть кортеж вида {С1,
Д1, П1}.
Такого вида ограничение называют циклическим или 3Д-ограничением. Если вернуться к полной записи отношения СДП, представленной на
рис.10.26, то циклическое ограничение означает, что, если в рассматриваемой предметной области имеют место следующие три факта:
•студент Иванов изучает Физику;
•преподаватель Степанов преподает Физику;
•преподаватель Степанов обучает студента Иванова, то является истинным и следующий факт:
•преподаватель Степанов преподает Физику студенту Иванову.
При этом, вообще говоря, Степанову не запрещено преподавать другие дисциплины, а студенту Иванову изучать другие дисциплины.
Можно заметить, что следствием рассматриваемого циклического или
3Д-ограничения является то, что каждая пара значений атрибутов обязательно должна встречаться в двух экземплярах в разных кортежах.
140
Необходимость обеспечения выполнения данного ограничения, очевидно, приводит к появлению проблем при операциях обновления данных INSERT, DELETE и UPDATE. Каждая из этих операций, из-за необходимости выполнения требований 3Д-ограничения, может затрагивать не один, а большее число кортежей.
Например, если в отношение
СДП
С |
Д |
П |
И |
Ф |
К |
И |
М |
С |
вставить кортеж {П, Ф, С}, то также должен быть вставлен и кортеж {И, Ф, С}, так как к уже имеющимся в отношении парам (И, Ф) и (И, С) добавляется третья пара (Ф, С).
Еще пример. Пусть из отношения
СДП
С |
Д |
П |
И |
Ф |
К |
И |
М |
С |
П |
Ф |
С |
И |
Ф |
С |
требуется удалить кортеж {П,Ф,С}. Этот кортеж содержит пары значений (П,Ф), (Ф,С) и (П,С). В оставшихся после удаления кортежах отсутствует дубликат пары (П,Ф), следовательно удаляемый кортеж не выводится из остающихся, его удаление не нарушит требования 3Д-ограничения.
Если же требуется удалить кортеж {И,Ф,С}, то для каждой его пары (И,Ф), (Ф,С) и (П,С) имеются двойники в других кортежах, следовательно, для того, чтобы требования 3Д-ограничения не нарушились, вместе с кортежем {И,Ф,С}должен быть удален и какой-либо из кортежей с парой-двойником. Возникает только вопрос, какой из трех кортежей должен быть также удален.
Указанные проблемы операций обновления, обусловленные наличием 3Д- ограничения, могут быть решены путем замены рассматриваемого отношения СДП (рис.10.25, 10.26) тремя его бинарными проекциями СД, ДП и ПС, как это показано на рис. 10.27.

141
СД |
|
|
ДП |
|
|
ПС |
|
С |
Д |
|
Д |
П |
|
П |
С |
И |
Ф |
|
Ф |
К |
|
К |
И |
И |
М |
|
М |
С |
|
С |
И |
П |
Ф |
|
Ф |
С |
|
С |
П |
Рис.10.27. Декомпозиция отношения СТУД_ДИСЦ_ПРЕП (СДП)
Возникает вопрос, почему необходима декомпозиция на три, а не на два отношения. Можно, однако, увидеть, что соединение любых двух из этих отношений не обеспечивает восстановления исходного отношения. Например, результатом соединения отношений СД и ДП по атрибуту Д будет отношение
СД-ДП |
|
|
|
С |
Д |
П |
|
И |
Ф |
К |
|
И |
Ф |
С |
|
И |
М |
С |
|
П |
Ф |
К |
← лишний кортеж |
П |
Ф |
С |
|
Рис.10.28. Соединение отношений СД и ДП
Видно, что это отношение не совпадает с исходным отношением СДП (рис.10.26). В нем имеется лишний кортеж {П, Ф, К}, которого не было в отношении СДП. Если же еще выполнить соединение этого отношения СД-ДП (рис.10.28) с третьим отношением ПС (рис.10.27) по атрибутам П и С, то нетрудно увидеть, что лишний кортеж будет исключен и исходное отношение СДП будет полностью восстановлено.
Поскольку рассматриваемое 3Д-ограничение удовлетворяется тогда и только тогда, когда отношение равносильно соединению трех его проекций,
такое ограничение еще называют зависимостью соединения (или зависимостью проекции-соединения).
Зависимость соединения (join dependency) является таким же семантическим ограничением данного отношения, как многозначная и функциональная зависимости. Определение зависимости соединения имеет следующий вид.
Пусть R является отношением, а А, В, …, Z – произвольным подмножеством множества атрибутов отношения R. Отношение R удовлетворяет зависимости соединения *(А, В, …, Z) тогда и только тогда, когда оно равносильно соединению своих проекций с подмножествами атрибутов А, В, …, Z.

142
Таким образом, для рассматриваемого в этом разделе отношения СДП (рис.10.26) можно записать, что оно удовлетворяет зависимости соединения *(СД, ДП, ПС) и для устранения аномалий операций обновления может быть представлено своими тремя проекциями {С, Д}, {Д, П} и {П, С}.
Сравним приведенные определения зависимости соединения с рассмотренной выше теоремой Фейгина. Напомним ее:
Отношение R{А, В, С} может быть декомпозировано без потерь на проекции с атрибутами {А, В} и {А, С} тогда и только тогда, когда для отношения R выполняются многозначные зависимости А→В (и А→С).
Можно видеть, что фактически многозначная зависимость А→ В эквивалентна (является частным случаем) зависимости соединения *(АВ, АС).
Другими словами, зависимость соединения является обобщением
многозначной зависимости, так же, как ранее многозначная зависимость оказалась обобщением функциональной зависимости. И, наоборот,
многозначная зависимость является частным случаем зависимости соединения, а функциональная зависимость – частным случаем многозначной зависимости.
Таким образом, мы выяснили, что отношение может находиться в четвертой нормальной форме, но, тем не менее, у него могут быть проблемы операций обновления, связанные с наличием в нем зависимости соединения, не являющейся многозначной зависимостью (в четвертой нормальной форме многозначные зависимости отсутствуют). Эти проблемы могут быть решены путем декомпозиции отношения на три или большее число его проекций. Тем самым отношение приводится к, так называемой, пятой нормальной форме. Дадим ее определение.
Определение пятой нормальной формы.
Отношение R находится в пятой нормальной форме (5НФ), которая также называется проекционно-соединительной нормальной формой,
тогда и только тогда, когда каждая зависимость соединения в отношении R подразумевается потенциальными ключами отношения R.
Другими словами, в отношении присутствуют только функциональные зависимости атрибутов от потенциальных ключей.
Пятая нормальная форма является окончательной нормальной формой по отношению к операциям проекции и соединения.