- •Проектирование реляционных баз данных
- •Введение
- •Понятие базы данных
- •Проблемы проектирования баз данных. Жизненный цикл базы данных
- •Основные модели данных
- •3.1. Иерархическая модель данных
- •3.2. Сетевая модель данных
- •3.3. Реляционная модель данных
- •Нормализация реляционных баз данных
- •4.1. Некоторые операции над отношениями
- •4.3. Первая нормальная форма
- •4.4. Вторая нормальная форма
- •4.5. Третья нормальная форма
- •4.6. Четвертая нормальная форма
- •4.7. Пятая нормальная форма
- •4.8. Связь нормальных форм
- •Индексирование
- •5.1. Устройство индексов
- •5.2. Практика индексирования
- •Поддержка целостности
- •Оглавление
4.6. Четвертая нормальная форма
Первые три нормальные формы и связанные с ними составные атрибуты, неполные функциональные и транзитивные зависимости выявил автор реляционной модели Э.Кодд. Дальнейшие исследования и, в частности, работы Фейджина (Fagin) выявили многозначные зависимости и связанную с ними четвертую нормальную форму.
Четвертая нормальная форма исследует связи «многие ко многим» или «многие ко одному». Отношение в четвертой нормальной форме не должно содержать двух и более не связанных многозначных фактов. Кроме того, это отношение должно находиться в третьей нормальной форме. Если в отношении есть несвязанные многозначные факты, возникают проблемы неоднозначности формирования таблиц, возможны также избыточность, аномалии удаления и включения.
Пусть имеются два несвязанных многозначных факта:
Служащий Проекты
Служащий Друзья
Один служащий может участвовать в работе над различными проектами, один проект может выполняться коллективом служащих.
Один служащий может иметь нескольких друзей, один друг может дружить с несколькими служащими.
Если объединить данные о служащих, проектах и друзьях в одну таблицу, возможны различные варианты ее формирования.
Расчлененный формат.
Служащий |
Проекты |
Друзья |
Иванов И.И. |
Проект 1 |
|
Иванов И.И. |
Проект 2 |
|
Иванов И.И. |
Проект 3 |
|
Иванов И.И. |
|
Друг 1 |
Иванов И.И. |
|
Друг 2 |
Этот вариант для больших таблиц, содержащих многозначные факты с существенной разницей в мощности множества значений, может быть неоправданно затратным из-за большого количества пустых полей.
Смешанный формат возможен в нескольких вариантах:
а) минимум записей с пустыми значениями
Служащий |
Проекты |
Друзья |
Иванов И.И. |
Проект 1 |
Друг 1 |
Иванов И.И. |
Проект 2 |
Друг 2 |
Иванов И.И. |
Проект 3 |
|
б) минимум записей с повторами
Служащий |
Проекты |
Друзья |
Иванов И.И. |
Проект 1 |
Друг 1 |
Иванов И.И. |
Проект 2 |
Друг 2 |
Иванов И.И. |
Проект 3 |
Друг 2 |
в) без ограничений
Служащий |
Проекты |
Друзья |
Иванов И.И. |
Проект 1 |
Друг 1 |
Иванов И.И. |
Проект 2 |
Друг 2 |
Иванов И.И. |
Проект 3 |
|
Иванов И.И. |
|
Друг 2 |
При рассмотрении таблиц возникают вопросы. Почему в варианте а) пустым является значение в третьей строке, а не в какой-либо другой? Почему в варианте б) повтор сделан для значения «Друг 2», а не «Друг 1»? Почему именно таким образом расположены повторы и пустые значения в варианте в)? Налицо неоднозначность, произвольность в формировании строк таблицы
“Гибрид” всех вариантов.
Служащий |
Проекты |
Друзья |
Иванов И.И. |
Проект 1 |
Друг 1 |
Иванов И.И. |
Проект 1 |
Друг 2 |
Иванов И.И. |
Проект 2 |
Друг 2 |
Иванов И.И. |
Проект 2 |
Друг 1 |
Иванов И.И. |
Проект 3 |
Друг 1 |
Иванов И.И. |
Проект 3 |
Друг 2 |
Здесь также неясно, по какому принципу составлены кортежи, почему именно данный проект и друг оказались в одной строке.
Возможны также аномалии удаления и включения. Если, например, был принят смешанный формат в любом из вариантов, удаление информации о первом проекте повлечет утрату о первом друге. Добавление информации в поле «Проекты» («Друзья») порождает вопрос, что заносить в поле «Друзья» («Проекты»).
Таким образом, наличие в одной таблице несвязанных многозначных фактов порождает серьезные проблемы вне зависимости от выбранного варианта формирования кортежей.
Определение. Четвертой нормальной формой называется либо данное отношение, если оно в третьей нормальной форме и при существовании многозначной зависимости, например, атрибутов В от атрибутов А, все остальные атрибуты отношения R зависят от множества атрибутов А только функционально (т.е. многозначная зависимость единственная). Если это не выполняется, то отношением в четвертой нормальной форме называется набор проекций отношения R, обладающий вышеуказанными свойствами.
Нарушение четвертой нормальной формы возможно только в случае, если многозначные факты не связаны между собой. Иначе проблема произвольного формирования кортежей не возникает. Если, например, работу над проектом служащий получил по рекомендации друга, принцип формирования кортежей очевиден.