- •Проектирование баз данных. Лекция 1. Введение. Банки и базы данных. Архитектура субд.
- •Хранимая база данных (Внутренняя модель)
- •Понятие проектирования баз данных. Различные подходы к проектированию бд.
- •Различные подходы к проектированию данных.
- •Сетевая модель данных.
- •Лекция 2.
- •Реляционные операции над отношениями.
- •Лекция 3. Аномалии хранения данных.
- •Концептуальное проектирование данных. Нормализация. Понятие функциональной зависимости. Теорема Хита.
- •Функциональная зависимость.
- •Теорема Хита.
- •Лекция 4. Пятая нф. Универсальное отношение. I и II нф.
- •Первая нормальная форма.
- •Вторая нормальная форма.
- •Третья нормальная форма. Транзитивные зависимости.
- •Лекция 5. Нормальная форма Бойса-Кодда. Четвертая нормальная форма. «Перенормализованные» модели данных.
- •Четвертая нормальная форма.
- •«Перенормализованные» модели данных.
- •Пример проектирования бд.
- •Отношение “Аптека”
- •Отношение “Лекарство”
- •Отношение “Наличие лекарств”
- •Отношение “Поставщик”
- •Отношение “Лицензия поставщика”
- •Отношение “Запрос на поставку”
- •Лекция 6. Проектирование в терминах «Сущность – связь»
- •Сущности и связи.
- •Классификация связей
- •Предварительные отношения для бинарных связей степени 1:1.
- •Лекция 7. Предварительные отношения для степени связи 1:n и m:n.
- •Предварительные отношения для степени связи m:n.
- •Лекция 14. Предварительные отношения для связей высших порядков. Использование ролевых отношений.
- •Студент
- •Использование ролевых отношений.
- •Рабочий
- •Подчиненный
- •Лекция 8. Развитой пример применения e-r проектирования.
- •Сопоставление методик нормализации и e-r проектирования. Физическое проектирование.
- •Физическое проектирование.
- •Ограничения целостности.
- •Заключение.
Лекция 5. Нормальная форма Бойса-Кодда. Четвертая нормальная форма. «Перенормализованные» модели данных.
Следующим шагом по сравнению с третьей нормальной формой является нормальная форма Бойса – Кодда (НФБК).
Отношение находится в нормальной форме Бойса – Кодда, если каждый детерминант является возможным ключом.
Некоторые авторы, например сам Кодд, а следом за ним и Дейт [1], рассматривали эту нормальную форму как модификацию определения IIIНФ. Однако, в [3] приводится пример отношения, которое находится в IIIНФ, но не находится в НФБК. В настоящее время принято выделять ее как самостоятельный этап декомпозиции. Во многих практически важных случаях, построение набора отношений в НФБК означает, что проектирование почти закончено – такая модель данных практически свободна от аномалий. Достаточно часто (исключения будут рассмотрены ниже) отношение, приведенное к НФБК, получает сразу и пятую нормальную форму.
Доказажем, что отношение, не находящееся в нормальной форме Бойса – Кодда, не находится и в пятой нормальной форме. Обозначим рассматриваемое отношение как Пусть K – набор атрибутов этого отношения, связанный полной функциональной зависимостью с другим набором атрибутов J. Как и прежде, атрибуты, не вошедшие в K или J, обозначим как H. Согласно теореме Хита, такая функциональная зависимость влечет тождество:
= proj H,J () join proj J,K ()
В правой части тождества проекции не имеют общего ключа – кандидата, так как в данном случае J не является детерминантом H. Следовательно, не находится в пятой нормальной форме.
Четвертая нормальная форма.
Еще раз обратимся к определению нормальной формы Бойса – Кодда. Это определение означает, что каждой функциональной зависимости соответствует отдельное отношение, и его ключом является детерминант этой зависимости. Казалось бы, возможные причины избыточности данных и, соответственно, аномалий обработки данных устранены. Почему же не совпадают НФБК и пятая нормальная форма?
В качестве примера рассмотрим отношение «Курсы – Преподаватели – Учебники», каждый кортеж abc которого означает, что курс a читает преподаватель b с использованием учебника с (для упрощения опустим второстепенные атрибуты, а приведенные будем считать ключевыми). В примере рассмотрим только один курс (Физика), который может преподавать либо профессор Александров либо профессор Борисов, а в качестве учебников по этому курсу используются книги «Общая физика» и «Геометрическая оптика».
Отношение «Курсы – Преподаватели - Учебники»
-
Курс
Преподаватель
Учебник
Физика
Александров
Общая физика
Физика
Александров
Геометрическая оптика
Физика
Борисов
Общая физика
Физика
Борисов
Геометрическая оптика
Рис.14. Пример отношения, находящегося в НФБК, но не в VНФ.
Это отношение находится в НФБК, поскольку все его атрибуты являются первичным ключом. Тем не менее, оно не свободно от избыточности, которая влечет за собой проблемы обработки данных. Например, при появлении нового учебника может возникнуть ситуация, когда для хранения информации о нем придется создавать несколько кортежей. Применительно к отношению «Курсы – Преподаватели – Учебники» интуитивно ясно, что эти проблемы вызваны взаимной логической независимостью преподавателей и учебников. Более того, легко видеть, что положение может улучшиться, если заменить это отношение его декомпозициями «Курс – Преподаватель» и «Курс – Учебник».
Атрибут «Курс» не связан с единственным значением поля «Преподаватель», т.е. зависимость Курс -> Преподаватель не является функциональной. Однако, каждое значение атрибута «Курс» имеет хорошо определенное множество соответствующих преподавателей. Более того, можно утверждать, что множество значений поля «Преподаватель» для каждой пары значений «Курс» и «Учебник» зависит только от конкретного значения «Курс», значение же атрибута «Учебник» несущественно.
Если атрибут А определяет множество значений атрибута В, то говорят, что эти атрибуты связаны многозначной зависимостью.
Стоит заметить, что в приведенном примере атрибуты «Курс» и «Учебник» также связаны многозначной функциональной зависимостью.
Ранее определенная функциональная зависимость является частным случаем многозначной зависимости. Проблемы, возникающие при обработке отношений в НФБК, описанные в начале этого раздела вызываются существованием многозначных зависимостей, которые не являются функциональными зависимостями. В этом случае неприменима теорема Хита, вернее, требуется расширение условий этой теоремы (здесь расширенная теорема Хита не приводится, поскольку для доказательства требует привлечения достаточно объемного материала). Примем без доказательства, что если H,J и K являются атрибутами отношения , и K многозначно зависит от J, то
= proj H,J () join proj J,K ()
Теперь можно ввести определение четвертой нормальной формы.
Отношение находится в четвертой нормальной форме, если при существовании многозначной зависимости, скажем, атрибута b от атрибута a, все атрибуты также функционально зависят от a.
Таким образом, алгоритм приведения данных к пятой нормальной форме можно представить следующим образом: на основании технического задания на разработку составляется универсальное отношение, находящееся в первой нормальной форме. Затем, после анализа предметной области, выделяются атрибуты, входящие в первичный ключ, и функциональные зависимости атрибутов от компонент первичного ключа на предмет полноты зависимости. Затем проводится декомпозиция универсального отношения, в результате которой информационная модель предметной области представляется в виде набора отношений во II НФ. После этого проводится анализ транзитивных зависимостей и их устранение при помощи все того же приема – декомпозиции. Каждое из полученных отношений, находящихся уже в третьей нормальной форме, проверяется на соответствие нормальной форме Бойса – Кодда, и, при необходимости, декомпозиция повторяется. После поиска и устранения многозначных зависимостей, можно говорить, что модель данных представлена отношениями в IV НФ. Остается провести анализ на предмет удовлетворения полученных отношений пятой нормальной форме. После приведения информационной модели к набору отношений в V НФ можно говорить, что этап концептуального проектирования данных завершен. К сожалению, не для всех стадий этого процесса сейчас предложены четкие алгоритмы (и критерии) декомпозиции. Если еще вспомнить, что само понятие функциональной зависимости опирается на специфику предметной области, а точнее – на понимание программистом этой специфики, то утверждение, что «проектирование – больше искусство, чем наука» представляется вполне обоснованным.
