
- •Тема 3 Проектирование баз данных
- •3.1. Элементы теории нормальных форм реляционных баз данных.
- •3.2. 1-Я нормальная форма (1нф).
- •3.3. 2-Я нормальная форма (2нф).
- •3.4. 3-Я нормальная форма (3нф).
- •Нормальная форма Бойса-Кодда.
- •3.5.2. Алгоритм проектирования отношений, находящихся в нфбк.
- •3.6. Корректные и некорректные декомпозиции отношений.
- •3.6.1. Аналитическое условие отсутствия потерь при соединении.
- •3.6.2. Метод табло.
- •Раздел 1.
- •Раздел 2.
- •Раздел 3.
- •3.7.Замыкание множества заданных функциональных зависимостей.
- •3.7.1. Алгоритм satisfies.
- •3.7.2. Правила вывода функциональных зависимостей.
- •Правило-f11.Рефлекторность.
- •Правило f12.Пополнение.
- •Правило f13. Транзитивность.
- •Минимальное покрытие множества функциональных зависимостей.
- •3.8. Mv–зависимости.
- •Определение mv-зависимостей.
- •3.9. 4-Я нормальная форма (4нф).
- •3.10. Алгоритм проектирования баз данных методом анализа функциональных и множественных зависимостей.
- •3.11.Проектирование баз данных. Методом “сущность-связь” (er-диаграмм, entity-relationship).
- •Получение отношений из er- диаграмм для бинарных связей.
3.4. 3-Я нормальная форма (3нф).
Определение 3НФ: отношение находится в 3НФ если оно находится во 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
Следующий шаг нормализации – это 3 нормальная форма отношений.
На этом шаге отношекние во 2НФ преобразуется в 3НФ путем ликвидации транзитивной зависимости.
Транзитивная зависимость.
Пусть А, В, С – три атрибута или три набора атрибутов отношения R.
Зависимости между ними изобразим на диаграмме.
Если А → В и В → С В !→ А (В не является ключом), то А → С. В этом случае С транзитивно зависит от А. Преобразование в 3НФ состоит в декомпозиции исходного отношения на 2.
R1 |
R2 |
|
|
Пусть имеется отношение служащий (номер_служ, фамилия, зарплата, номер_проекта, дата_оконч).
Аномалии отношения служащий.
Включения. До момента привлечения конкретгого служащего к конкретной работе над данным проектом дату окончания проекта записывать некуда.
Удаления. Если проект был приостановлен для привлечения новых сотрудников, т.е. все кортежи были удалены, то в базе уничтожены все записи с датой окончания проекта.
Модификации. Изменение даты окончания проекта ведет к необходимости поиска всех кортежей содержащих данную дату и их модификация.
Разложим отношение на 2:
R1 (номер_служ, фамилия, зарплата, номер_проекта)
R2 (номер_проекта, дата_оконч)
Мы получим отношение в 3НФ. Аномалии уже не будет в R1 иR2.
Нормальная форма Бойса-Кодда.
Алгоритм декомпозиции отношений в НФБК.
Если отношение находится в 3Нф, то в некоторых случаях у этих отношений могут быть аномалии обновления. Эта ситуация относится к редким случаям, когда отношение имеет несколько возможных сложных ключей (т.е. состоящих из нескольких атрибутов) и части этих ключей содежрат общие атрибуты. Проблему решает усиленная 3НФ или нормальная форма Бойса-Кодда.
Нормальная форма Бойса-Кодда. (НФБК )
Отношение находится в НФБК, если и только если каждый детерминант отношения является возможным ключом.
Возможный ключ (термин). Возможный ключ представляет собой атрибут или набор атрибутов, который может быть использован для данного отношения в качестве первичного (основного) ключа. Однако не исключено наличие других возможных ключей, которые могли бы быть, но не были использованы в качестве первичного ключа.
Детерминант (термин). Если А → В есть функциональная зависимость и В не зависит функционально от любого подмножества А, то говорят, что А представляет собой детерминант R.
3.5.2. Алгоритм проектирования отношений, находящихся в нфбк.
Пусть задано отношение R(A,B,C,D,E) с набором функциональных зависимостейF.
Выделим в наборе функциональных зависимостей F, присущих заданному отношениюR, функциональные зависимости, имеющие детерминанты не являющиеся возможным ключом.
Создадим 2 новых отношения R1 иR2 таким образом: ЕслиR(A,B,C,D,E) исходное отношение иC→Dвыделенная функциональная зависимость, то схемаR1 будет иметь вид:R1 (A,B,C,E) и схемаR2 будет иметь вид:R2 (C,D).R2 находится в НФБК и называется проекциейR.
Проверим находится ли в НФБК отношение R1.
Если да, то декомпозиция заканчивается, если нет, то возвращается к 1-ому шагу анализируем отношение R1.
Пример 1.на применение алгоритма проектирования отношений, находящихся в НФБК.
|
A |
B |
E |
C |
D |
служащий |
(номер_служ, |
фамилия, |
зарплата, |
номер_проекта, |
дата_оконч) |
Функциональные зависимости F:
{номер_служ → фамилия
номер_служ → зарплата
номер_служ → номер_проекта
номер_служ → дата_оконч
номер_проекта → дата_оконч}
номер_служ – возможный ключ
Выделим номер_проекта → дата_оконч
R2 (номер_проекта, дата_оконч)
R1 (номер_служ, фамилия,
зарплата, номер_проекта)
Пример 2.
R(А, В, С,D, Е)
F={
}
Т.е. B->C
B->D
По правилам вывода ФЗ B->СD
и R2 (B,C,D)
a R1 (A,B,E)
В этом примере мы использовали правило вывода ФЗ. Этих правил всего 6.
Три основных – их называют правилами Армстронга, и 3 дополнительных.