
- •Тема 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- диаграмм для бинарных связей.
Правило-f11.Рефлекторность.
Если x≤U,y≤U,y≤x, то функциональная зависимостьx→yследует изF.
Имея исходную функциональную зависимость можно:
В состав левой части вводить любые атрибуты из U, при этом функциональная зависимость нарушаться не будет.
Добавлять атрибуты из Uв состав атрибутов правой части, при этом нужно следить, чтобы добавленный атрибут уже находился в левой части выражения функциональной зависимости.
Удалять атрибуты из правой части, при этом зависимость будет сохраняться,
Удалять атрибуты из левой части, при этом необходимо следить за тем, что бы удаляемый атрибут отсутствовал и в правой части.
Пример:
Если A→B
То из A2 →B, следует
A→B
Если присутствуют две зависимости A2→B
и A→B, то
A→B
Правило f12.Пополнение.
Если x≤U,y≤U,z≤Uи задана зависимостьx→y, которая либо принадлежитF, либо получена изFс использованием правил ввода, то
XUZ→YUZ
U– объединение.
Для правила П2 не существенно, перекрываться множества x,yили я или нет. Используя это правило, можно любые атрибуты из множестваUпредставлять(но одновременно) и в правую и в левую часть функциональной зависимости, при этом функциональная зависимость сохраняется, т.е.
Если
То
Если существует в наборе функциональных зависимостей x→yиx2 →y2, то зависимостьx2 →y2 является избыточной.
Правило f13. Транзитивность.
Если x≤U,y≤U,z≤Uи заданы зависимостиx→y,y→z, которые либо принадлежат множествуF, либо получены изFс помощью правил вывода, тоx→z.
Если существует набор функциональных зависимостей x→y,y→z,x→z, то зависимостьx→zявляется избыточной.
Правила:F11 – рефлективность
F12 – пополнение
F13 – транзитивность - известны, как правила Армстронга.
П4 .Правило объединения.
Если x≤U,y≤U,z≤Uи заданы функциональные зависимостиx→yиx→z, то имеет место функциональная зависимостьx→yUz(U– объединение).
Вывод: т.к. задано x→yто по правилуF2 запишемxUx→yUx, т.к.xUx=x, тоx→yUx. Используя зависимостьx→zи правилоF2 заменяемxUy→zUy.На основании правилаF3 т.к.x→yUxиxUy→zUyтоx→zUy.
Правило в графическом виде:
Если
то
Если используются зависимости x→y,x→z,x→yz, тоx→yzявляется избыточной.
П5. Правило декомпозиции.
Первая формулировка:
Если x≤U,y≤U,z≤Uиz≤yи задана функциональная зависимостьx→y, то будет иметь смысл функциональная зависимостьx→z.
Вывод: т.к. задано z≤y, то используя правилоF1 запишем:y→2 т.к.x→yиy→zто поF3x→z.
Вторая формулировка:
Если x→yz, тоx→yиx→z
Или
Если
То
П6. Правило псевдотранзитивности.
Если x≤U,y≤U,w≤U,z≤Uи заданы функциональные зависимостиx→yиyUw→z(U- объединение), то имеет место функциональная зависимостьxUw→z.
Т.к. задано x→y, то используя правилоF2 запишем:xUw→yUw, т.к.xUw→yUwиyUw→zтоxUw→z.
В графическом виде:
Если имеются зависимости x→y,yUw→zиxUw→z, то зависимостьxUw→zизбыточная.
3.7.3. Множество X+.
Множество F+даже для небольшого числа зависимостей вFможет быть очень большим и его вычисление трудоемко. Однако принадлежность функциональной зависимости в множествеF+нам необходимо всегда проверять, так как правильность отношенияRпроверяется по двум условиям:
R1
R
на условие естественного соединенияR1 иR2,
R2 восстанавливающегоR.
На условие принадлежности полученных функциональных зависимостей к множеству F+.
Задача принадлежности функциональной зависимости к F+была решена с помощью простого алгоритма. Вместо вычисленияF+можно вычислить другое множество, которое будет называтьсяX+и функциональная зависимостьx→yпринадлежитF+, еслиy≤x+.
Алгоритм получения X+.
Рассмотрим на примере:
Дано: U={A,B,C,D,E,G} и R(A,B,C,D,E,G).
Пусть Fсостоит из следующих восьми зависимостей:
F={AB→CD→EG
C→ABE→C
BC→DCG→BD
ABCD→BCE→AG}
Проверим, принадлежит ли BD→EкF+.
Положим X(0)=BD.
1.Вычислим значение X(1). Для его вычисления найдем зависимости, которые имеют в левой частиB,DилиBD. Такой зависимостью является:D→EG.
Присоединим к X(0) EG(правую часть зависимости), тогдаX(1)=BDEG.
2.Ищем зависимости, которые в левой части имеют B,D,E,Gили их комбинации.
D→EG,BE→C. ТогдаX(2)=BCDEG
.Выписываем зависимости, имеющие в левых частях B,C,D,E,G.
C→A,BC→D,CG→,BD,CE→AG.X(3)=ABCDEG– мы получили множество всех атрибутов отношенияR. Значит следующие шаги не принесут никаких новых результатов. Итеративный процесс на этом заканчивается.
X+=ABCDEG(BD)+=ABCDEG
Проверим теперь: Принадлежит ли зависимость BD→EзависимостиF+.
Т.к. Е ≥X+, то зависимостьBD→EпринадлежитF+замыканию множества функциональных зависимостейF.