- •Тема 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.7.1. Алгоритм satisfies.
Пусть задано отношение График(Пилот, Рейс, Дата, Время вылета)
|
Пилот |
Рейс |
Дата |
Время вылета |
|
1 1 2 2 2 3 3 4 4 4
|
83 116 281 301 83 83 116 281 281 412 |
9Августа 10 Августа 8 Августа 12 Августа 11 Августа 12 Августа 13 Августа 9 Августа 13 Августа 15 Августа
|
10:15 13:25 5:50 18:35 10:15 10:15 13:25 5:50 5:50 13:25
|
|
Куминг-1 Кларк-2 Чин-3 Коул-4 |
|
|
|
Для этого отношения иметься следующая семантика:
F={Рейс → Время вылета,
Пилот, Дата, Время вылета → Рейс,
Рейс, Дата → Пилот}
Имея это множество Fмы можем задаться вопросом о том, а существует ли зависимость, например, такого типа: Время вылета → Рейс или другие, более сложные зависимости.
Ответ на этот вопрос можно получить используя следующий алгоритм:
Пусть задано отношение RиF- зависимостьx→y.
1.Пересортируем отношение Rпоx- столбцам так, чтобы собрать кортежи с равнымиx- значениями вместе.
2.Если каждая совокупность кортежей с равными x-значениями имеет так же равныеy-значения, то существует зависимостьx→y. В противном случае нет.
Этот алгоритм можно применить к множеству Fфункциональных зависимостей, заданных семантикой отношения, а также к предполагаемым зависимостям.
Проверим зависимость: Рейс → Время вылета.
XY
|
Пилот |
Рейс |
Дата |
Время вылета |
|
1 2 3 |
|
9Августа 11 Августа 13 Августа |
= |
|
1 3 |
|
10 Августа 12 Августа |
= |
|
2 4 4 |
|
8 Августа 9 Августа 13 Августа |
= |
|
2 |
301 |
12 Августа |
18:35 |
|
4 |
412 |
15 Августа |
13:25 |
Вторая часть алгоритма выполняется, значит x→y.
Проверим зависимость: Время вылета → Рейс.
|
Пилот |
Рейс |
Дата |
Время вылета |
|
2 4 4 |
281 281 281 |
8Августа 9 Августа 13 Августа |
5:50 5:50 5:50 |
|
1 2 3 |
83 83 83 |
9 Августа 11 Августа 13 Августа |
10:15 10:15 10:15 |
|
1 3 4 |
|
10 Августа 12 Августа 15 Августа |
13:25 13:25 13:25 |
|
2 |
301 |
12 Августа |
18:35 |
Для времени 13:25 второе условие алгоритма не выполняется, следовательно зависимость Время вылета → Рейс не существует.
С помощью приведенного алгоритма можно получить полное множество функциональных зависимостей F+, соответствующих заданному отношению и его семантике, т.е.F≤F+
Пример получения F+ изF.
Дано: R(A,B,C) иF= {AB→C,C→B}
Множество F+будет состоять из следующих элементов:
F

+=
{A→AB→BC→C
AB→AAB→BAC→C
AC→ABC→BBC→C
ABC→AABC→BABC→C


AB→ABAC→ACBC→BCABC→ABC
ABC→ABABC→ACABC→BC
1
ABC→C2C→BAC→B
AB→ACC→BCAC→AB}
AB→BC
AB→ABC
3.7.2. Правила вывода функциональных зависимостей.
Пусть U– универсально множество атрибутов, т.е. полный набор атрибутов отношенияR.
А1,…..,An– атрибуты отношенияR, тогда:U={A1,A2,…,An} схема отношенияR{A1,A2,A3,….,An}.
Задано множество функциональных зависимостей F={F1,F2,F3,…,Fk}.





