- •Часть I. Теория баз данных
- •Глава I. Системы файлов и базы данных
- •Оценка системы файлов
- •1.2. Понятие базы данных и системы управления базами данных.
- •1.3 Архитектура бд
- •Концептуальная модель
- •Внутренняя модель
- •Физическая модель
- •1.4 Модели баз данных
- •1.4.1 Иерархическая модель данных
- •1.4.2 Сетевая модель данных
- •1.4.3 Реляционная модель данных
- •Нормализация отношений
- •Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Нормальная форма Бойса-Кодда
- •Четвертая нормальная форма
- •Пятая нормальная форма
- •Денормализация
- •Методы реализации денормализации
- •1.4.4. Объектно-ориентированная модель данных
- •1.4.4.1. Атрибуты
- •1.4.4.2. Состояние объекта. Сообщения и методы
- •1.4.4.3. Классы
- •1.4.4.4. Протокол
- •1.4.4.5. Суперклассы, подклассы, наследование
- •1.4.4.6. Единичное наследование. Множественное наследование.
- •1.4.4.7. Переопределение методов и полиморфизм
- •1.4.4.8. Абстрактные типы данных
- •1.4.4.9. Классификация объектов
- •1.4.4.10. Свойства объектно-ориентированных моделей данных
- •1.5.1 Сущности
- •1.5.2 Атрибуты
- •1.5.3. Связи
- •1.5.4. Сравнение обозначений в er-моделировании
- •1.5.5. Разработка er-диаграмм
Нормальная форма Бойса-Кодда
Нормальная форма Бойса-Кодда устанавливает дополнительное правило: все транзитивные зависимости должны быть удалены.
Таблица R находится в нормальной форме Бойса-Кодда, если для каждой нетривиальной функциональной зависимости Х->А, где Х – суперключ.
Предположим, что экипаж судна разделен на группы, отвечающие за разные виды работ. Член экипажа может входить в несколько групп, но в каждую группу входит только 1 руководитель. Группа, в свою очередь, может иметь несколько руководителей. Член экипажа может руководить только одной группой. Это очень сложный сценарий.
Таблица 1. Распределение экипажа
Член экипажа |
Название группы |
ФИО руководителей |
Иванов Иванов Петров Сидоров Козлов Козлов Баранов |
Наблюдение Питание Наблюдение Наблюдение Питание Обслуживание Обслуживание |
ФИО1 ФИО2 ФИО3 ФИО4 ФИО5 ФИО6 ФИО7 |
Таблица находится в третьей нормальной форме, но противоречит нормальной форме Бойса-Кодда.
Если Петрова убрать, то теряется информация о руководителе ФИО3. Когда в группу наблюдения будет взят новый член экипажа, и мы возьмем список руководителей групп, то ФИО3 будет отсутствовать. То есть, хотя эта таблица находится в третьей нормальной форме, но имеет место аномалия удаления.
В предыдущих нормальных формах мы могли разбить таблицу без создания избыточности. Здесь мы вынуждены хранить избыточную информацию, иначе эту задачу не разрешить. Дополним таблицу руководителей групп:
Название групп |
ФИО руководителей |
Наблюдение Питание Наблюдение Питание Обслуживание |
ФИО1 ФИО2 ФИО3 ФИО4 ФИО5 |
Теперь, если Петрова уволят, мы все равно знаем, что ФИО3 руководит группой наблюдения (число членов данной группы равно нулю).
Четвертая нормальная форма
Оперирует многозначными зависимостями. Решает проблему, вызванную наличием более одной многозначной зависимостью.
Рассмотрим таблицу, содержащую сведения о кораблях, совершаемых ими рейсах капитанами, управляющими кораблями в этих рейсах.
ER – диаграмма:
Рис 9.
В сущности ‘Route’ регистрируется слишком много подробностей. Если создать таблицу, то она будет соответствовать нормальной форме Бойса-Кодда. Тем не менее, аномалия удаления сохранилась.
Эта проблема решается путем разбиения данной таблицы на две: в одной будут столбцы Ship и Voyage, в другой – Caption и Voyage.
Пятая нормальная форма
Пятая нормальная форма называется нормальной формой с проецированием соединений.
Она используется при разрешении трех и более сущностей, которые связаны друг с другом отношениями m:n.
Разрешение этих отношений при помощи связующей сущности может привести к получению дефектной модели, в которой могут появиться несуществующие отношения (аномалия проецирования соединений).
Рис
10.
Нарушение пятой нормальной формы.
