Лекция 6. Нормализация.pptx
- Количество слайдов: 72
Функциональные зависимости Нормализация отношений
Пример плохого отношения Название фирмы Адрес Телефон Товар Цена (руб. ) Чижиков & 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 Продажи
Недостатки • • Избыточность Аномалии изменения Аномалии удаления Аномалии добавления
Решение - декомпозиция Название фирмы Адрес Телефон Чижиков & Co Уткин проезд, 5 999 -99 -99 Винты-гайки Ул. Ленина, 1 333 -33 -33 Стройтовары Стройбаза № 1 444 -44 -44 Название фирмы Товар Цена (руб. ) Чижиков & Co Винт большой 3 Чижиков & Co Винт маленький 5 Винты-гайки Винт 4 Чижиков & Co Гайка 1 Стройтовары Саморез 2 Чижиков & Co Саморез 3 Фирма Товар
Декомпозиция R {A 1, A 2, … An} S {B 1, B 2, … Bm} T {C 1, C 2, … Ck} 1) {A 1, A 2, … An}= {B 1, B 2, … Bm} {C 1, C 2, … Ck} 2) {B 1, B 2, … Bm} {C 1, C 2, … Ck} 3) S= B 1, B 2, … Bm (R) 4) T= C 1, C 2, … Ck (R)
Ограничения на значения: • семантические, т. е. корректность отдельных значений (год рождения больше нуля); • ссылочная целостность - ограничения на значения, которые зависят только от равенства или неравенства значений (совпадают ли компоненты двух кортежей); • наиболее важные ограничения называются функциональной зависимостью.
Функциональные зависимости • R {A 1, A 2, … An} • X, Y {A 1, A 2, … An} • X Y если любому значению X соответствует в точности одно значение Y ЛЧ зависимости — детерминант, ПЧ — зависимой частью • X Y | Y( X=x(R))| 1 • Название фирмы Адрес, телефон. • Название фирмы, товар Цена
A 1, A 2, … An B 1, B 2, … Bm ФЗ бывают: • Тривиальные {B 1, B 2, … Bm } {A 1, A 2, … An } • Нетривиальные {B 1, B 2, … Bm } {A 1, A 2, … An } {B 1, B 2, … Bm } • Полностью нетривиальные {A 1, A 2, … An } {B 1, B 2, … Bm } =
Ключ • Ключ – набор атрибутов, который функционально определяет все остальные Минимальность ключа: • R {A 1, A 2, … An}, X {A 1, A 2, … An} • X A 1, A 2, … An для Y X Y A 1, A 2, … An • Ключ – набор атрибутов, который функционально определяет все остальные
Транзитивные зависимости • F – множество функциональных зависимостей, заданных на отношении R • A C называется транзитивной, если существует такой атрибут B, что имеются функциональные зависимости A B и B C и отсутствует функциональная зависимость C A
Замыкание множества атрибутов • • R {A 1, A 2, … An} {B 1, B 2, … Bm } {A 1, A 2, … An } F – множество ФЗ Z={B 1, B 2, … Bm }+ ØZ 0 : = {B 1, B 2, … Bm } ØBi. Bj C ØZ 1: =Z 0 C • {B 1, B 2, … Bm } += {A 1, A 2, … An } {B 1, B 2, … Bm } - ключ
Пример • R {A, B, C, D, E, F} • S = {A D, AB E, BF E, CD F, E C} • {AE}+ ?
Пример • R {A, B, C, D, E, F} • S = {A D, AB E, BF E, CD F, E C} • {AE}+ = ACDEF
Аксиомы Армстронга • если B A, то A B рефлексивность; • если A B, то AC BC пополнение; • если A B и B C, то A C транзитивность.
Правила вывода (из аксиом Армстронга) 1. Объединение Если X Y и X Z, то X YZ. X Y + А 2 = X XY, X Z + A 2 = YX YZ + A 3 = X YZ 2. Псевдотранзитивность X Y и WY Z, то WX Z. X Y +A 2 = WX WY. WY Z + A 3 = WX Z. 3. Декомпозиция Если X Y и Z Y, то X Z. А 1 + А 3.
Замыкание множества функциональных зависимостей • F+ - множество всех зависимостей, которые можно вывести из F, называют замыканием множества ФЗ F • Любое множество функциональных зависимостей, из которого можно вывести все остальные ФЗ, называется базисом • Если ни одно из подмножеств базиса базисом не является, то такой базис минимален
Замыкание множества функциональных зависимостей • • R {A 1, A 2, … An} F – мн-во ФЗ B 1, B 2, … Bm C (B 1, B 2, … Bm C) F+ , if C {B 1, B 2, … Bm }+
Пример: R (A, B, C, D) AB C, C D, D A • Найти все нетривиальные ФЗ, которые следуют из заданных • Возможные ключи
Покрытие множества функциональных зависимостей • Множество ФЗ F 2 называется покрытием множества ФЗ F 1, если любая ФЗ, выводимая из F 1, выводится также из F 2. • F 1+ F 2+ • F 1 и F 2 называются эквивалентными, если F 1+ = F 2+.
Минимальное покрытие множества функциональных зависимостей • правая часть любой ФЗ из F является множеством из одного атрибута (простым атрибутом); • удаление любого атрибута из левой части любой ФЗ приводит к изменению замыкания F+; • удаление любой ФЗ из F приводит к изменению F+.
ДЕКОМПОЗИЦИЯ • Декомпозиция – это разбиение на множества, может быть пересекающиеся, такие, что их объединение – это исходное отношение. • Восстановить исходное отношение можно только естественным соединением. • Говорят, что декомпозиция обладает свойством соединения без потерь, если для любого отношения r = R 1(r) R 2(r) . . . Rn(r).
Терема Хита Пусть задано отношение r {A, B, C} (A, B и C, в общем случае, являются составными атрибутами) и выполняется FD A->B. Тогда r = (r PROJECT {A, B}) NATURAL JOIN (r PROJECT {A, C}).
Терема Хита - доказательство Докажем, что в теле результата естественного соединения (r 1) содержатся все кортежи тела отношения r. Пусть кортеж {a, b, c} r. Тогда по определению операции взятия проекции {a, b} (r PROJECT {A, B}) и {a, с} (r PROJECT {A, С}). Следовательно, {a, b, c} r 1.
Терема Хита - доказательство Докажем, что в r 1 нет лишних кортежей, т. е. что если кортеж {a, b, c} r 1, то {a, b, c} r. Если {a, b, c} r 1, то существуют {a, b} (r PROJECT {A, B}) и {a, с} (r PROJECT {A, С}). Последнее условие может выполняться в том и только в том случае, когда существует кортеж {a, b*, c} r. Т. к FD A->>B, то b = b* => {a, b, c} = {a, b*, c}.
А что происходит с зависимостями при декомпозиции? • Можно определить Z(F): X Y XY Z • Декомпозиция сохраняет множество зависимостей, если из объединения всех проекций зависимостей логически следует F.
Проектирование реляционных отношений • Приводим отношения к нормальным формам
1 НФ • 1 нормальная форма (НФ)– значения не являются множествами и кортежами. • Фирма, (Город, Улица, Дом), Товар • Имя, (Телефон 1, Телефон 2…)
2 НФ • Атрибут называется первичным, если входит в состав любого возможного ключа. • 2 нормальная форма – 1 НФ + любой атрибут, не являющийся первичным, полностью зависит от любого его ключа, но не от подмножества ключа. • Фирма, Адрес, Телефон, Товар, Цена
3 НФ • Транзитивная зависимость: пусть A, B, C – атрибуты, A B, B C, A не зависит от B и B не зависит от C. Тогда говорят, что C транзитивно зависит от A. • 3 нормальная форма – если отношение находится во 2 нормальной форме и любой атрибут, не являющийся первичным, нетранзитивно зависит от любого возможного ключа. • Отношение находится в третьей нормальной форме (3 НФ) тогда и только тогда, когда отношение находится в 2 НФ и все неключевые атрибуты взаимно независимы.
Примеры: • (Город , Индекс , Адрес) • (Универмаг , Товар , Номер отдела , Заведующий)
Примеры: • 3 нормальная форма – (Город, Индекс, Адрес) • 2 нормальная форма, но не 3 нормальная форма – (Универмаг, Товар, Номер отдела, Заведующий) • УТ Н, УН З, ключ – УТ.
НФ Бойса-Кодда • Нормальная форма Бойса–Кодда – если X A, A X, то X ключ R. • (Город, Индекс, Адрес). • НФ? • Зависимости? • Ключ?
НФ Бойса-Кодда • (Город, Индекс, Адрес) – 3 нормальная форма, но не форма Бойса–Кодда. Если разобьем на две (Город, Индекс), (Индекс, Адрес), пропадает зависимость Город, Адрес Индекс.
НФ Бойса-Кодда • (Город, Индекс, Адрес) – 3 нормальная форма, но не форма Бойса–Кодда. Если разобьем на две (Город, Индекс), (Индекс, Адрес), пропадает зависимость Город, Адрес Индекс.
Вывод: • Каждая схема отношений может быть приведена к форме Бойса–Кодда, так что декомпозиция обладает свойством соединения без потерь. • Любая схема может быть приведена к 3 нормальной форме с соединением без потерь и с сохранением функциональной зависимости. • Но не всегда можно привести к форме Бойса– Кодда с сохранением функциональных зависимостей.
Шаги при декомпозиции 1. Находим минимальное покрытие множества функциональных зависимостей 2. Выделяем зависимость, нарушающую НФ X Y (и нет атрибутов, зависящих от Y). 3. Находим зависимости с такой же левой частью. X W, X Z 4. Выделяем в отдельное отношение XYWZ 5. Из исходного отношения удаляем YWZ
Многозначные зависимости • Пусть А и B - два атрибута отношения R. Между этими атрибутами существует многозначная зависимость (МЗ), обозначаемая А->>B, если значению а атрибута А, соответствует множество значений {b 1, b 2, …, bk} атрибута B. • Это множество устойчиво, т. е. сохраняется при любом вхождении многозначной зависимости в отношение.
• Каждый служащий может участвовать в нескольких проектах, но в каждом проекте, в котором он участвует, им должны выполняться одни и те же задания.
IF ({сн, пн 1, сз 1} B AND {сн, пн 2, сз 2} B) THEN ({сн, пн 1, сз 2} B AND {сн, пн 2, сз 1} B) № гр Фамилия Предмет Преподаватель 3 гр Сидоров Мат. анализ Голузина 3 гр Петрова Геометрия Нецветаев
• В отношении R с атрибутами A, B, C (в общем случае, составными) имеется многозначная зависимость B от A (A->>B) в том и только в том случае, когда множество значений атрибута B, соответствующее паре значений атрибутов A и C, зависит от значения A и не зависит от значения C.
Разбиваем отношение на два: СН, ПН и СН, СЗ
Многозначные зависимости • Отношение R (X, Y, Z) удовлетворяет МФЗ X->>Y, если IF ({x, y 1, z 1} R and {x, y 2, z 2} R ) THEN ({x, y 2, z 1} R and ({x, y 1, z 2} R )
Лемма Фейджина • В отношении R {A, B, C} выполняется MVD A B в том и только в том случае, когда выполняется MVD A C. • А →→В|С
Лемма Фейджина Пусть MVD A->>B. Пусть есть удовлетворяющее этой зависимости значение r переменной отношения R, a - значение атрибута A в некотором кортеже тела Br, а {b} – множество значений атрибута B, взятых из всех кортежей Br, в которых значением атрибута A является a. Пусть Предположим, что для этого значения a MVD A->>C не выполняется. Это означает, что существуют такое допустимое значение c атрибута C и такое значение b {b}, что кортеж {a, b, c} Br. Но это противоречит MVD A->>B.
Многозначные зависимости • Говорят, что в отношении R(A, B, C) между атрибутами А и В существует многозначная зависимость А->>B, если оно может быть представлено в виде соединения своих проекций: • R(A, B, C) = R 1(A, B) R 2(A, C). • Т. к. эквисоединение симметрично относительно В и С, то, следовательно, в R имеет место также многозначная зависимость АC.
Тривиальные и нетривиальные МЗ X->>Y Многозначная зависимость тривиальная, если: • атрибут Y является подмножеством атрибута X • или X ∪ Y = AR
Теорема Фейджина • Пусть А, В и С являются множествами атрибутов переменной-отношения R{А, В, С}. • Переменная-отношение R будет равна соединению ее проекций [А, В] и [А, С] тогда и только тогда, когда для переменнойотношения R выполняется многозначная зависимость А →→В|С
Теорема Фейджина - достаточность Пусть r - значение переменной отношения R. Пусть a - значение атрибута A в некотором кортеже тела Br, {b} – множество значений атрибута B из всех кортежей тела Br, в которых значением атрибута A является a, и {c} – множество значений атрибута C, взятых из всех кортежей тела Br, в которых значением атрибута A является a. Тогда очевидно, что в тело значения r PROJECT {A, B} будут входить все кортежи вида {a, bi}, где bi{b}, и если некоторый кортеж {a, bj} входит в тело значения отношения r PROJECT {A, B}, то bj{b}. Аналогичные рассуждения применимы к r PROJECT {A, C}. Очевидно, что из этого следует, что при наличии многозначной зависимости A B | C в переменной отношения ^ R{A, B, C} декомпозиция r на проекции r PROJECT {A, B} и r PROJECT {A, C} является декомпозицией без потерь.
Теорема Фейджина – необходимость Предположим, что декомпозиция переменной отношения R {A, B, C} на проекции R PROJECT {A, B} и R PROJECT {A, C} является декомпозицией без потерь для любого допустимого значения r переменной отношения R. Мы должны показать, что в теле Br значенияотношения r поддерживается ограничение IF ({a, b 1, с1} Br AND {a, b 2, с2} Br) THEN ({a, b 1, с2} Br AND {a, b 2, с1} Br) пусть в Br входят кортежи {a, b 1, c 1} и {a, b 2, c 2}. Предположим, что {a, b 1, c 2} Br OR {a, b 2, c 1} Br. Но в тело значения отношения r PROJECT {A, B} входят кортежи {a, b 1} и {a, b 2}, а в тело значения переменной отношения r PROJECT {A, C} – {a, c 1} и {a, c 2}.
Теорема Фейджина – необходимость Очевидно, что в тело значения естественного соединения r PROJECT {A, B} NATURAL JOIN r PROJECT {A, C} войдут кортежи {a, b 1, c 2} и {a, b 2, c 1}, и наше предположение об отсутствии по крайней мере одного из этих кортежей в Br противоречит исходному предположению о том, что декомпозиция r на проекции r PROJECT {A, B} и r PROJECT {A, C} является декомпозицией без потерь.
4 НФ • Отношение R(AR) находится в четвертой нормальной форме, если в структуре МЗ, определенной на множестве атрибутов AR, имеются только тривиальные МЗ зависимости и/или такие нетривиальные МЗ, что левая часть любой из них является ключом R.
№ гр Фамилия Предмет Преподаватель 3 гр Сидоров Мат. анализ Голузина 3 гр Петрова Геометрия Нецветаев 3 гр Сидоров Геометрия Нецветаев 3 гр Петрова Мат. анализ Голузина
№ гр Фамилия 3 гр Сидоров 3 гр Петрова № гр Предмет Преподаватель 3 гр Мат. анализ Голузина 3 гр Геометрия Нецветаев
№ гр Фамилия Предмет Преподаватель 3 гр Сидоров Мат. анализ Голузина 3 гр Петрова Геометрия Нецветаев 5 гр Николаев Мат. анализ Кохась № гр Фамилия Предмет Преподаватель Оценка 3 гр Сидоров Мат. анализ Голузина 3 3 гр Петрова Геометрия Нецветаев 5 5 гр Николаев Мат. анализ Кохась 3
Свойство 3 НФ НФ БК 4 НФ Отсутствие избыточности из-за ФЗ В большинстве случаев + + Отсутствие избыточности из-за МЗ - - + Сохранение условий ФЗ + Не всегда Сохранение условий МЗ Не всегда
Зависимость соединения • Пусть R — переменная отношения, а A, B, . . . , Z — некоторые подмножества ее атрибутов. • Если декомпозиция любого допустимого значения R на отношения, состоящие из множеств атрибутов A, B, . . . , Z, является декомпозицией без потерь, говорят, что переменная отношения R удовлетворяет зависимости соединения *{А, В, . . . , Z}.
Зависимость соединения • Пусть R — переменная отношения, а A, B, . . . , Z — некоторые подмножества ее атрибутов. • Переменная отношения R удовлетворяет зависимости соединения *{А, В, . . . , Z} тогда и только тогда, когда любое допустимое значение переменной отношения R эквивалентно соединению ее проекций по подмножествам A, B, . . . , Z множества атрибутов.
• В переменной отношения R зависимость проекции/соединения *(A, B, …, Z) называется тривиальной, если хотя бы один из составных атрибутов A, B, …, Z совпадает с заголовком R.
5 НФ • Отношение находится в пятой нормальной форме тогда и только тогда, когда каждая нетривиальная зависимость соединения в ней определяется потенциальным ключом (ключами) этого отношения.
• Определение пятой нормальной формы: • Отношение находится в 5 НФ тогда и только тогда, когда любая зависимость по соединению в нем определяется только его возможными ключами. • Другими словами, каждая проекция такого отношения содержит не менее одного возможного ключа и не менее одного неключевого атрибута.
5 НФ • Зависимость соединения *{A, B, . . . , Z} определяется потенциальным ключом (ключами) тогда и только тогда, когда каждое из подмножеств A, B, . . . , Z множества атрибутов является супер ключом отношения. • Каждое из подмножеств A, B, . . . , Z множества атрибутов включает некоторый потенциальный ключ отношения.
Пример Продавец Иванов Петров Сидоров Сидоров Фирма Рога и Копыта Безенчук&Ко Безенчук&Ко Рога и Копыта Геркулес Товар Пылесос Хлебница Сучкорез Пылесос Хлебница Зонт Пылесос Телескоп Пылесос Лампа Вешалка
Ограничение • каждый продавец сотрудничает ограниченным списком фирм • каждый продавец имеет в своём ассортименте ограниченный список типов товаров • каждый продавец предлагает товары из списка товаров, производимые фирмами из списка фирм
• Отношение не находится в 5 NF, поскольку в нём есть нетривиальная зависимость соединения *{{Продавец, Фирма}, {Фирма, Товар}, {Продавец, Товар}}, однако подмножества {Продавец, Фирма}, {Фирма, Товар}, {Продавец, Товар} не являются суперключами исходного отношения. • В данном случае для приведения к 5 NF отношение должно быть разбито на три: {Продавец, Фирма}, {Фирма, Товар}, {Продавец, Товар}
Пример • • • S Студент G Группа H Время R Аудитория C Предмет T Преподаватель
Задачи: Процесс проектирования реляционной базы на основе метода нормализации преследует две основных цели: • избежать избыточности хранения данных; • устранить аномалии обновления отношений.
В современных условиях: • объемы доступных носителей внешней памяти непрерывно возрастают, стоимость их падает, • современные серверы реляционных баз данных способны автоматически поддерживать целостность баз данных.
2 типа приложений • On-Line Transaction Processing – OLTP • On-Line Analytical Processing – OLAP
OLTP On-Line Transaction Processing • Информационные системы оперативной обработки транзакций. • Характерные примеры таких систем : – банковские системы, – системы резервирования билетов, – системы резервирования мест в гостиницах.
OLTP On-Line Transaction Processing • Информационные системы оперативной обработки транзакций. • Системам категории OLTP свойственны частые обновления базы данных, поэтому аномалии обновлений, даже если их корректировка производится СУБД автоматически, могут заметно снижать эффективность приложения.
OLAP On-Line Analytical Processing • Системы оперативной аналитической обработки. • В подобных системах, в частности, системах поддержки принятия решений, базы данных в основном используются для выборки данных, поэтому аномалиями обновлений можно пренебречь, а объем этих баз настолько огромен, что можно пренебречь и избыточностью хранения.


