30
Функциональные зависимости Нормализация отношений

Функциональные зависимости Нормализация отношений

Embed Size (px)

DESCRIPTION

Функциональные зависимости Нормализация отношений. Пример плохого отношения. Фирма-товар. Недостатки. Избыточность Аномалии изменения Аномалии удаления Аномалии добавления. Решение - декомпозиция. Фирма. Товар. Декомпозиция. R {A 1 , A 2 , … A n } - PowerPoint PPT Presentation

Citation preview

Page 1: Функциональные зависимости Нормализация отношений

Функциональные зависимостиНормализация отношений

Page 2: Функциональные зависимости Нормализация отношений

Пример плохого отношенияНазвание фирмы

Адрес Телефон Товар Цена(руб.)

Чижиков & Co Уткин проезд, 5 999-99-99 Винт большой 3

Чижиков & Co Уткин проезд, 5 999-99-99 Винт маленький 5

Винты-гайки Ул.Ленина, 1 333-33-33 Винт 4

Чижиков & Co Уткин проезд, 5 999-99-99 Гайка 1

Стройтовары Стройбаза № 1 444-44-44 Саморез 2

Чижиков & Co Уткин проезд, 5 999-99-99 Саморез 3

Фирма-товар

Page 3: Функциональные зависимости Нормализация отношений

Недостатки

• Избыточность• Аномалии изменения• Аномалии удаления• Аномалии добавления

Page 4: Функциональные зависимости Нормализация отношений

Решение - декомпозицияНазвание фирмы Адрес Телефон

Чижиков & Co Уткин проезд, 5 999-99-99

Винты-гайки Ул.Ленина, 1 333-33-33

Стройтовары Стройбаза № 1 444-44-44

Название фирмы Товар Цена (руб.)

Чижиков & Co Винт большой 3

Чижиков & Co Винт маленький 5

Винты-гайки Винт 4

Чижиков & Co Гайка 1

Стройтовары Саморез 2

Чижиков & Co Саморез 3

Фирма

Товар

Page 5: Функциональные зависимости Нормализация отношений

ДекомпозицияR {A1, A2, … An}

S {B1, B2, … Bm} T {C1, C2, … Ck}

1) {A1, A2, … An}= {B1, B2, … Bm} {C1, C2, … Ck}

2) S= B1, B2, … Bm (R)

3) T= C1, C2, … Ck (R)

Page 6: Функциональные зависимости Нормализация отношений

Ограничения на значения:

• семантические, т.е. корректность отдельных значений (год рождения больше нуля);

• ограничения на значения, которые зависят только от равенства или неравенства значений (совпадают ли компоненты двух кортежей); наиболее важные ограничения называются функциональной зависимостью.

Page 7: Функциональные зависимости Нормализация отношений

Функциональные зависимости

• R {A1, A2, … An}

• X, Y {A1, A2, … An}

• X Y если любому значению X соответствует в точности одно значение Y

• X Y |Y(X=x(R))|1

• Название фирмы Адрес, телефон.• Название фирмы, товар Цена

Page 8: Функциональные зависимости Нормализация отношений

A1, A2, … An B1, B2, … Bm ФЗ бывают:

• Тривиальные {B1, B2, … Bm } {A1, A2, … An }

• Нетривиальные {B1, B2, … Bm } {A1, A2, … An } {A1, A2, … An } {B1, B2, … Bm }

• Полностью нетривиальные {A1, A2, … An } {B1, B2, … Bm } =

Page 9: Функциональные зависимости Нормализация отношений

Ключ• Ключ – набор атрибутов, который

функционально определяет все остальные

• F – множество функциональных зависимостей, заданных на отношении R

• AC называется транзитивной, если существует такой атрибут B, что имеются функциональные зависимости AB и BC и отсутствует функциональная зависимость CA

Page 10: Функциональные зависимости Нормализация отношений

Замыкание множества атрибутов

• R {A1, A2, … An}• {B1, B2, … Bm } {A1, A2, … An }• F – мн-во ФЗ• Z={B1, B2, … Bm }+ – Z0 := {B1, B2, … Bm }– BiBj C– Z1:=Z0C

• {B1, B2, … Bm } += {A1, A2, … An } {B1, B2, … Bm } - ключ

Page 11: Функциональные зависимости Нормализация отношений

Пример

• R {A, B, C, D, E, F} • S = {AD, ABE, BFE, CDF, EC}• {AE}+ ?

Page 12: Функциональные зависимости Нормализация отношений

Пример

• R {A, B, C, D, E, F} • S = {AD, ABE, BFE, CDF, EC}• {AE}+ = ACDEF

Page 13: Функциональные зависимости Нормализация отношений

Аксиомы Армстронга

• если BA, то AB рефлексивность;

• если AB, то ACBC пополнение;

• если AB и BC, то AC транзитивность.

Page 14: Функциональные зависимости Нормализация отношений

Правила вывода(из аксиом Армстронга)

• 1. ОбъединениеЕсли XY и XZ, то XYZ.XY + А2 = XXY, XZ + A2 = YXYZ + A3 = XYZ

• 2. Псевдотранзитивность XY и WYZ, то WXZ.XY +A2 = WXWY. WYZ + A3 = WXZ.

• 3. ДекомпозицияЕсли XY и ZY, то XZ.А1 + А3.

Page 15: Функциональные зависимости Нормализация отношений

Замыкание множества функциональных зависимостей

F+ - множество всех зависимостей, которые можно вывести из F, называют замыканием множества ФЗ F

Любое множество функциональных зависимостей, из которого можно вывести все остальные ФЗ, называется базисом

Если ни одно из подмножеств базиса базисом не является, то такой базис минимален

Page 16: Функциональные зависимости Нормализация отношений

Замыкание множества функциональных зависимостей

• R {A1, A2, … An}

• F – мн-во ФЗ• B1, B2, … Bm C

• (B1, B2, … Bm C) F+ , ifC{B1, B2, … Bm }+

Page 17: Функциональные зависимости Нормализация отношений

Пример:

R (A, B, C, D)AB C, C D, DA• Найти все нетривиальные ФЗ, которые

следуют из заданных• Возможные ключи

Page 18: Функциональные зависимости Нормализация отношений

Покрытие множества функциональных зависимостей

• Множество ФЗ F2 называется покрытием множества ФЗ F1, если любая ФЗ, выводимая из F1, выводится также из F2.

• F1+F2

+

• F1 и F2 называются эквивалентными, если F1

+ = F2+.

Page 19: Функциональные зависимости Нормализация отношений

Минимальное покрытие множества функциональных зависимостей

• правая часть любой ФЗ из F является множеством из одного атрибута (простым атрибутом);

• удаление любого атрибута из левой части любой ФЗ приводит к изменению замыкания F+;

• удаление любой ФЗ из F приводит к изменению F+.

Page 20: Функциональные зависимости Нормализация отношений

ДЕКОМПОЗИЦИЯ

• Декомпозиция – это разбиение на множества, может быть пересекающиеся, такие, что их объединение – это исходное отношение.

• Восстановить исходное отношение можно только естественным соединением.

• Говорят, что декомпозиция обладает свойством соединения без потерь, если для любого отношенияr = R1(r) R2(r) ... Rn(r).

Page 21: Функциональные зависимости Нормализация отношений

А что происходит с зависимостями при декомпозиции?

• Можно определить Z(F): XY XYZ

• Декомпозиция сохраняет множество зависимостей, если из объединения всех проекций зависимостей логически следует F.

Page 22: Функциональные зависимости Нормализация отношений

Проектирование реляционных отношений

• 1 нормальная форма (НФ)– значения не являются множествами и кортежами.

• Атрибут называется первичным, если входит в состав любого возможного ключа.

• 2 нормальная форма – 1 НФ + любой атрибут, не являющийся первичным, полностью зависит от любого его ключа, но не от подмножества ключа.

• Фирма, Адрес, Телефон, Товар, Цена

Page 23: Функциональные зависимости Нормализация отношений

3 НФ

• Транзитивная зависимость: пусть A, B, C – атрибуты, AB, BC, A не зависит от B и B не зависит от C. Тогда говорят, что C транзитивно зависит от A.

• 3 нормальная форма – если отношение находится во 2 нормальной форме и любой атрибут, не являющийся первичным, нетранзитивно зависит от любого возможного ключа.

Page 24: Функциональные зависимости Нормализация отношений

Примеры:

• Универмаг, Товар, Номер отдела, Заведующий

• Город, Индекс, Адрес

Page 25: Функциональные зависимости Нормализация отношений

Примеры:

• 3 нормальная форма – (Город, Индекс, Адрес)

• 2 нормальная форма, но не 3 нормальная форма – (Универмаг, Товар, Номер отдела, Заведующий)

• УТН, УНЗ, ключ – УТ.

Page 26: Функциональные зависимости Нормализация отношений

НФ Бойса-Кодда

• Нормальная форма Бойса–Кодда – если XA, AX, то Xключ R.

• (Город, Индекс, Адрес) – 3 нормальная форма, но не форма Бойса–Кодда. Если разобьем на две (Город, Индекс), (Индекс, Адрес), пропадает зависимость Город, АдресИндекс.

Page 27: Функциональные зависимости Нормализация отношений

НФ Бойса-Кодда

• (Город, Индекс, Адрес) – 3 нормальная форма, но не форма Бойса–Кодда. Если разобьем на две (Город, Индекс), (Индекс, Адрес), пропадает зависимость Город, АдресИндекс.

Page 28: Функциональные зависимости Нормализация отношений

Вывод:• Каждая схема отношений может быть

приведена к форме Бойса–Кодда, так что декомпозиция обладает свойством соединения без потерь.

• Любая схема может быть приведена к 3 нормальной форме с соединением без потерь и с сохранением функциональной зависимости.

• Но не всегда можно привести к форме Бойса–Кодда с сохранением функциональных зависимостей.

Page 29: Функциональные зависимости Нормализация отношений

Шаги при декомпозиции

1. Находим минимальное покрытие множества функциональных зависимостей

2. Выделяем зависимость, нарушающую НФX Y (и нет атрибутов, зависящих от Y).

3. Находим зависимости с такой же левой частью. X W, X Z

4. Выделяем в отдельное отношение XYWZ5. Из исходного отношения удаляем YWZ

Page 30: Функциональные зависимости Нормализация отношений

Пример

• S Студент • G Группа• H Время• R Аудитория• C Предмет• T Преподаватель