
- •4 Основы проектирования баз данных
- •4.1 Основные цели и этапы проектирования баз данных
- •4.2 Подходы к проектированию и проблемы определения структур данных
- •4.2.1 Подходы к проектированию бд
- •4.2.2Избыточное дублирование данных
- •4.2.3 Аномалии обновления отношений
- •4.2.4 Формирование исходного отношения
- •4.3 Основы теории функциональных зависимостей
- •4.3.1 Общие положения и определение понятия функциональной зависимости данных
- •4.3.2 Виды функциональных зависимостей
- •4.3.3 Аксиомы Армстронга
- •4.4 Метод нормальных форм
- •4.4.1 Цели и порядок проведения нормализации отношений
- •4.4.2 Первая нормальная форма и основная операция нормализации
- •4.4.3 Вторая нормальная форма
- •4.4.4 Третья нормальная форма
- •4.4.5 Нормальная форма Бойса-Кодда
- •4.5 Рекомендации по разработке структур данных
4.4.4 Третья нормальная форма
Основная причина недостатков БД во второй нормальной форме – наличие транзитивных зависимостей, которые порождают избыточное дублированиеинформации в отношении.
Таблица находится в третьей нормальной форме(3НФ), если она находится в 2НФ (а значит, и в 1НФ) и не содержит транзитивных зависимостей.
Примечание – Если таблица содержит только один неключевой атрибут или вообще не содержит неключевых атрибутов, то она всегда находится в 3НФ, так как в ней не может быть транзитивных зависимостей.
Чтобы привести к 3НФ таблицу, содержащую транзитивную зависимость A→B→C, требуется выделить атрибутыBиCв отдельную таблицу, гдеBстановится ключевым атрибутом. Другими словами, для приведения к 3НФ таблица разбивается на две: в одну из них помещаютсявсеатрибуты,кромеатрибутаC, в другую - атрибутыBиC.
Примечание – Если таблица содержит “длинную” транзитивную зависимость, например, A → B → C → D → E (где A – ключ, B, C, D, E – неключевые атрибуты), то сначала в отдельную таблицу выделяются атрибуты D и E, затем в другую отдельную таблицу – атрибуты C и D, затем – B и C.
Альтернативные определения ЗНФ отношений.
Определение 1. Отношение находится в ЗНФ, если оно находится в 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
Определение 2. Отношение находится в ЗНФ в том и только в том случае, если все неключевые атрибуты отношения взаимно независимы и полностью зависят от первичного ключа.
Доказать справедливость этого утверждения несложно. Действительно, то, что неключевые атрибуты полностью зависят от первичного ключа, означает, что данное отношение находится в форме 2НФ. Взаимная независимость атрибутов (определение приведено выше в п. 4.3.2) означает отсутствие всякой зависимости между атрибутами отношения, в том числе и транзитивной зависимости между ними. Таким образом, второе определение ЗНФ сводится к первомуопределению.
Рассмотрим наш пример. Если в отношении R1 транзитивные зависимости отсутствуют, то в отношении R2 они есть:
ФИО—>Должн—>Оклад,
ФИО—>Оклад—>Должн,
ФИО—>Стаж—>Д_Стаж
Устраним их. Для этого используя операцию проекции на атрибуты, являющиеся причиной транзитивных зависимостей,преобразуем отношение R2, получив при этом отношения R3, R4 и R5, каждое из которых находится в ЗНФ (рис. 4.7а). Графически эти отношения представлены на рис. 4.7б. Заметим, что отношение R2 можно преобразовать по-другому, а именно: в отношении R3 вместо атрибута Должн взять атрибут Оклад.
На практике построение ЗНФ схем отношений в большинстве случаев является достаточным и приведением к ним процесс проектирования реляционной БД заканчивается.
В нашем примере вся БД деканата приведена к 3НФ. Эта БД состоит из четырех таблиц:R1,R3,R4 иR5. Сопоставив эти таблицы с исходными данными, приведенными в подразделе 4.2.4 на рис. 4.4, легко убедиться, что в процессе нормализации никакие данные не потеряны.Построенные таблицы не имеют недостатков, указанных в подразделах 4.4.2 и 4.4.3.В полученной БД имеет место необходимое дублирование данных, но отсутствует избыточное.
а) б)
Построенные таблицы также не имеют недостатков, требующих приведения к нормальным формам более высоких порядков (одна из них будет рассмотрена в п. 4.4.5).
Таким образом, проектирование БД деканата завершено.