You are on page 1of 94

Бази податоци

Нормализација

© Prof. Margita Kon-Popovska 2014


Што да се прочита за нормализација

· Chap. 7 Relational-database Design (256-300)


Silberschatz−Korth−Sudarshan: Database System
Concepts, Fourth Edition, The McGraw−Hill Companies,
2001
· Part VI Database Design and Tutoring (603-642),
Database management Systems, Raghu Ramakrishnan,
Johannes Gehrke, McGraw Hill, Third edition 2003

© Prof. Margita Kon-Popovska 2014


Процес на дизајнирањење на
релациска база податоци

Чекор 1. Трансформација E-R во


релациски модел
Чекор 2. Нормализација како
“поправка” на логички дизајн

Нормализација како
единствен чекор
© Prof. Margita Kon-Popovska 2014 (Normalization)
Релација во 1НФ

Дефиниција:
· Релација е именувана дво-димензионална табела на податоци која
исполнува определени услови
· Табела е составена од редици (rows, records, tuple) и колони (columns,
fields, attributes)
· Услови:
- Секоја релација има единствено име,
- Секоја редица е единствена (не постојат две редици со потполно еднакви
врености во сите нивни полиња),
- Секоја колона (атрибут) во табелата има единствено име (нема повторување
на колони),
- Секоја вредност на келија е атомична (atomic) (нема повеќевредносни или
композитни атрибут),
- Редоследот на колони не е битен
- Редоследот на редици не е битен
- Дефиниција: Табела/релација за кои се исполнети горните услови е во
1ва Нормална форма (1НФ)

© Prof. Margita Kon-Popovska 2014


Пример

Прашање – Дали табелата е релација? Одговор – не поради


повторувачки групи

Прашање – Кој е примарен клуч? Одговор – Emp_ID

© Prof. Margita Kon-Popovska 2014


Прашање – Дали табелата е релација? Одговор : Да, единствени
редици, нема повеќекратни
Дали е во 1-ва NF?
вредности

Прашање – Кој е примарен клуч? Одговор: Композитен клуч


Emp_ID, Course_Title
© Prof. Margita Kon-Popovska 2014
Принципи на дизајнирање

· Релациите треба да имаат семантичко единство


· Треба да се избегне повторување на податоци
- aномалии: вметнување, бришење, модификација
· Колку што е можно повеќе да се избегнат нул вредности поради
тешкотии
- при интерпретацијата: незнаење, негрижа, познато
неизводливо итн.
- спецификација и изведување на придружување (join)
· Да се избегнат лажни (неточни) придружувања

© Prof. Margita Kon-Popovska 2014


Проблеми (грешки)на ажурирање

Примарен
клуч?

Претпоставка: Атрибут position одредува атрибут salary


· Редундантно складирање (waste of space),
· Компликации на ажурирање (complication of updating),
· Компликации на ажурирање (potential lost of data due to
deletions),
· Проблеми на вметнување нови редици (problems of insertions).
© Prof. Margita Kon-Popovska 2014
Потреба од декомпозиција

© Prof. Margita Kon-Popovska 2014

Со декомпозиција на две
релации се отклонети
position  salary
наведените проблеми на
ажурирање
Добро структурирани релации

· Се релации кои соддржат минимална редунданција и


дозволува корисници да вметнуваат, бришат и ажурираат
редици без да се случат неконзистентности
· Целта е избегнување на неправилности
- Неправилност на вметнување (Insertion Anomaly) –
додавање на нова редица предизвикува корисник да креира
дупликати на податоци или потреба од вметнување редица со
примарен клуч со null вредности
- Неправилност на бришење (Deletion Anomaly) – бришење на
редици е причина за губиток на податоци, потребни во база
податоци како и за натамошни ажурирања
- Неправилност на модификација (Modification Anomaly) –
промена на податоци во една редица предизвикува промени во
други редици или доведува до неконсистентни податоци
Генерално интуитивно правило: табелата треба да соддржи
податоци на само еден тип ентитет
© Prof. Margita Kon-Popovska 2014
Грешки на вметнување

· Кои се неправилности на вметнување?


- Не е можно вметнување на нов вработен без тој да се
определи за курс,
- Дуплицирање на податоци во случај работник да се определи
за повеќе курсеви

© Prof. Margita Kon-Popovska 2014


Грешки на бришење

· Кои се неправилности на бришење?


- Ако се брише вработен со EMP-ID 140, губиме информација
за Tax Acc курс

© Prof. Margita Kon-Popovska 2014


Кои се грешки на модификација?

· Кои се грешки на модификација?


- Ако зголемиме плата на работникот со EMP-ID 100 со работно
место маркетинг потребно а ажурирање на плати за сите
работници менаџери

© Prof. Margita Kon-Popovska 2014


Можни неконзистентности на
ажурирањето
Дупликати

Null примарен клуч


Потенцијална
Неправилност на вметнување
Неправилност на неправилност на
ажурирање бришење

© Prof. Margita Kon-Popovska 2014


Зошто неправилности

· Зошто се појавуваат неправилности?


- Во примеров комбинираме атрибути на два ентитети:
вработени и курсеви. Дел од атрибутите се однесуваат
само на вработени (позиција, плата) додека дел на
атрибутите (дата на комплетирање на курс) се однесува
на двата ентитети.
- Резултат се дупликати и наведените неправилности
© Prof. Margita Kon-Popovska 2014
Што треба да се направи

· Се пристапува кон дизајнирање од горе кон долу или обратно од


доле кон горе
· За таа цел се групираат атрибути во релации по одредени
критериуми при што се добиваат подобри и послаби групирања
· Добар дизајн се добива со интуициа и знаење на дизајнерот
· Почнување од семантички побогат модел (Е-Р) и со
трансформација во релационен модел
· Со помош на теорија на нормализација. Се зема секоја релација
поединечно и се подобрува во рамки на саканите карактеристики
- нормални форми (нормализација)

© Prof. Margita Kon-Popovska 2014


· Со нормализацијата релациите се декомпонираат во помали
релации (по степен на релацијата и кардиналност) со цел
- да се отклонат грешки на оддржувањето
- минимизира потреба од реорганизација при додавање нови
релации
- ефикасно користење на базата
· При тоа треба да е исполнето
- да нема губење на информации
- можна е реконструкција (нема лажни поврзувања)
- нема непожелни особини
· Можно е да се зголеми времето на извршување на прашања па
подоцна може да има потреба од денормализација

© Prof. Margita Kon-Popovska 2014


Нормализација

Процес на валидација и подобрување на логички дизајн, така


што задоволува одредени ограничувања

· Обезбедува отстранување непотребни повторувања на


податоци, намалува редунданција (avoid unnecessary
duplication of data, i.e. reduce redundancy)
· Обезбедува високо флексибилен дизајн (highly flexible design)
· Обезбедува дизајн без аномалии на ажурирање, вметнување
и бришење (design is free of update, insertion and deletion
anomalies)
· Оддржува конзистентна база при ажурирањето (keep database
consistent under updates)

· Нормализација е процес на декомпозиција на релации со цел


отстранување неправилности, за да се дибијат поедноставни
добро структурирани релации (well-structured relations) без
неправилности

© Prof. Margita Kon-Popovska 2014


Нормализација/ Normalizationоn

“The process of decomposing complex data structures into


simple relations according to a set of dependency rules.”

McFadden and Hoffer

© Prof. Margita Kon-Popovska 2014


Типови на нормализација

· Разликуваме два основни типа на нормализација


- Вертикална нормализација, се трансформира релациона
шема со операции проекција и природно придружување (тест
за немање губиток на информации)
- може да се изведе со декомпозиција (во чекори постепен
премин од една во друга Н.Ф или
- со синтеза, директно во барана Н.Ф. со студиј на атрибути и
зависности
· Хоризонтална нормализација
- Декомпозиција на релации на подмножества со операција
селекција, со задоволување одреден услов (дистрибуирани
бази)

© Prof. Margita Kon-Popovska 2014


Вертикална нормализација

1NF
1NF

Прогресивно
2NF
2NF трансформирање на
релации во повисока
3NF
3NF нормална форма за да
се добијат добро
BCNF
BCNF структурирани релации

4NF
4NF

5NF
5NF
*Domain.Key NF DK/NF
© Prof. Margita Kon-Popovska 2014
Нормални Форми

· Нормалните форми може да се дефинираат според клучевите и


зависности
- функциски зависности
примарен клуч (1NF, 2NF, 3NF)
сите кандидати клучеви (2NF, 3NF, BCNF)
- повеќевредностни зависности - multi-valued dependences (4NF)
- зависности на проекција и поврзување – project join dependences
(5NF)

© Prof. Margita Kon-Popovska 2014


Функциски зависности

Нека се X, Y  U, каде X, Y се атрибути или множество атрибути

· Функционални зависности (ФЗ)


XY
за дадена вредност на X, постои една и само една вредност на Y;
· Повеќевредносни зависности (ПВЗ) multi valued dependences
X Y (X—>>Y)
за дадена вредност на X, постои множество од вредности на Y;
· Зависност на проекција-придружување
projection-join dependency
*((X,Y),(Y,Z));
придружувањето на (X,Y)⋈(Y,Z) ја дава оригиналната релација
(X,Y, Z)

© Prof. Margita Kon-Popovska 2014


Чекори во
нормализација

© Prof. Margita Kon-Popovska 2014


Потсетување на дефиниција за ф.з.

· Дадена е релација r дефинирана над релациската шема


R={A1,A2,...,An} каде
X R,Y R. Ако, за сите парови од терки t1 и t2 во секое
појавување на релациска шема r(R)
t1[X]=t2[X]  t1[Y]=t2[Y]
тогаш на релациската шема R постои функциска
зависност XY.
· Пример r(A,B )
1 4
1 5
3 7
· A  B не држи, но B  A држи.

© Prof. Margita Kon-Popovska 2014


Primer

- Во релацијата PROJECT(PNO,PNAME,BUDGET,MGR)
PNO  (PNAME,BUDGET,MGR)
- Во релацијата
EMPLOYEE(ENO,ENAME,TITLE,SALARY,APT#,STREET,
CITY,PNO, DURATION, RESP)
(ENO,PNO)  (ENAME,TITLE,SALARY,APT#,
STREET, CITY,DURATION,RESP)
ENO  (ENAME,TITLE,SALARY,APT#,STREEY,CITY)
TITLE  SAL
 Забелешка: функциски зависности на релациска шеми повлекува и
функциски зависности на инстанци

© Prof. Margita Kon-Popovska 2014


Користење функциски зависности

· Определување кандидат клуч


· Тестирање релации дали тие задоволуваат одредено
моножество функциски зависности F т.е велиме релацијата
r задоволува F
· Специфицираме ограничувања на релации
Велиме F е валидно на r

Специфична инстанца на релациска шема може да


задоволува функциски зависности F но тоа не значи дека
секоја инстанца на релациска шема задоволува функциски
зависности

© Prof. Margita Kon-Popovska 2014


Примери на функциски зависности

#S,#P  #S, #S,#P  #P (шифри снабдувач, производ )

STUDENT(#IN,IME,ADRESA,GRAD)

#IN  IME,
#IN  ADRESA
#IN  GRAD

ISPIT(#IN, #P,OCENKA)
#IN,#P  OCENKA

© Prof. Margita Kon-Popovska 2014


Заклучување во однос на функциски
зависности

· Би сакале да можеме да изведуваме заклучоци во однос на


дадено множество функциски зависности
Пример
ENO  (ENAME,TITLE,SALARY,APT#,STREET,CITY) 
ENO ENAME
· Ова бара одредено множество на правила за изведување
- Правила (аксиоми) на Армстронг;
- Додатни правила.

© Prof. Margita Kon-Popovska 2014


Пример

A1 A2 …..A r  B1 B2 …..B p 

A1 A2 …..A r  B1
A1 A2 …..A r  B2
…..
A1 A2 …..A r  B p
customer_name, loan_number 
customer_name
и тривијално
customer_name  customer_name
A1 A2 …..A r  Aj
j =1,2,…r Општо, A  B е тривиајално ако B  A
* Подетално понатаму

© Prof. Margita Kon-Popovska 2014


Клуч

* К, е супер клуч за релациска шема R акко Aj K  Aj R, K  Aj


(Aj е функциски зависен од K)
(К R)
· К e kандидат клучи ako е минимално множество со тоа својство.
KR и
за ниту едно K’  K, K’  R

· Функциски зависности дозволуваат дефинирање на


ограничувања. На пр. Број на штеден влог одредува износот на
штеден влог. Обратно не важи, исзносот на штеде влог не
одредува број на ѓтеден влог

© Prof. Margita Kon-Popovska 2014


Термини

· Во секоја релација постои најмалку еден кандидат клуч:


· Секундарен клуч во релација е примарен клуч во некоја
друга релација,
· Примарен клуч, е еден избран кандидат клуч,
· Примарен атрибут, е атрибут на примарен клуч,
· Клучен атрибут, атрибут на произволен кандидат клуч,
· Непримарен атрибут не е член на ниту еден кандидат клуч,
· Детерминанта, атрибут од кој друг атрибут е функциски
зависен

© Prof. Margita Kon-Popovska 2014


STUDENT(#IN,#EMBG, IME,ADRESA,GRAD, ADRESAP,GRADP)

#IN,#EMBG,
Кандидати клучеви, детерминанти, клучни атрибути

#IN
Примарен клуч, примарен атрибут

IME,ADRESA,GRAD, ADRESAP, GRADP


Непримарни атрибути

#EMBG, IME,ADRESA,GRAD, ADRESAP, GRADP


Комплемент на примарен клуч

© Prof. Margita Kon-Popovska 2014


ISPIT(#IN, IME, #P, NAZIVP, OCENKA)

#IN, #P #IN, NAZIVP Кандидати клучеви

#IN, #P, NAZIVP Клучни атрибути

#IN, #P Примарен клуч, примарни атрибути

#IN, #P #IN, NAZIVP Детерминанти

IME, OCENKA Непримарни атрибути

IME, NAZIVP, OCENKA Комплемент на примарен клуч

© Prof. Margita Kon-Popovska 2014


Декомпозиција без губиток на
информации

Пример:
u(X,Y,Z) PXYu= u1(XY) PXZu= u2(XZ)
x1 y1 z1 x1 y1 x1 z1
x2 y1 z2 x2 y1 x2 z2
x3 y2 z2 x3 y2 x3 z2

u1 ⋈ u2 = u
PXYu= u1(XY) PYZu= u3(YZ)
u1 ⋈ u3  u

© Prof. Margita Kon-Popovska 2014


Декомпозиција без губиток на
информации(1) (lossless decomposition)

Која од двете
декомпозиции е без
губиток на
информација?

A B

© Prof. Margita Kon-Popovska 2014


Иредуцибилност

Релацијата е иредуцибилна ако со операција проекција не може да


ја поделиме на повеќе релации, а потоа со операција
придружување да ја добиеме првобитна релација

Пример: ISPIT(S#, P#, OCENKA)


R1(S#,P#), R2(P#, OCENKA)
R1⋈ R2  ISPIT
Иредуцибилни релации се елементарни

© Prof. Margita Kon-Popovska 2014


Декомпозиција на релации

Релацијата
R(K1, K2 ,…, Km , A1 ,A2 ,…, An), каде важи K  A
R(K,A)
е редуцибилна и важи R1(K,A1)|x| R2(K,A2)|x|…… Rn(K,An)=R(K,A)

Пример:
DOBAVUVAC(D#,IME, P#, IMEP,KOLIC)
K= D# P# кандидат клуч  IME, IMEP,KOLIC
R1(D# P# , IME), R2(D# P# , IMEP), R3(D# P# , KOLIC)
R1|x| R2|x|R3=DOBAVUVAC
D#  IME, P# IMEP
R4(D# , IME), R5(P# , IMEP) R3|x| R4|x|R5=DOBAVUVAC
R3, R4, R5 се елементарни (иредуцибилни)

© Prof. Margita Kon-Popovska 2014


Декомпозиција без губитоци

· Нека R е релација и Ф множество функциски* зависности во R


Тогаш R = R1  R2 е декомпозиција без губиток ако

R1  R2  R1 или
R1  R2  R2

· *Забелешка некоја функциска зависност не мора да биде во Ф


туку во Ф+ (затварач/покривка на Ф)

© Prof. Margita Kon-Popovska 2014


Потполна функциска зависност

· Функциска зависност X  Y е потполна функциска


зависност, ако X е минимално множество атрибути за кое важи
X  Y или
- Y е функциски зависно од X , а не е функциски зависно од
ниту едно негово право подмножество или
- ако отстраниме било кој атрибут А од X , значи дека зависноста
повеќе на постои.
f
- формално: X  Y (X  Y) акко за секој А X, (X –[А])  Y;
· Парцијална функциска зависност (или само функциска зависност)

- Формално: X  Y ако постои А  X , (X –[А])  Y.

· Забелешка: Ако X се состои од еден сам атрибут функциска


зависност е воедно и потполна функциска зависност

© Prof. Margita Kon-Popovska 2014


Декомпозиција на релации

R(K,A,B)

K=K1K2,…,Km
A=A1A2,…,An
B=B1B2,…,Bp

Нека е К кандидат клуч,


K A, K  B i K’K : K’  B следи

KA
KB
K’  B

Декомпозиција
R1(K,A1)⋈…⋈Rn(K,An)⋈Rn+1(K’,B1)⋈…⋈Rn+p(K’,Bp) =R(K,A,B)

© Prof. Margita Kon-Popovska 2014


Примери

JAZIK(S#,JAZIK,OCENKA)
Декомпозиција на релации
S# JAZIK OCENKA
S# OCENKA JAZIK(S#,JAZIK,OCENKA)
JAZIK OCENKA Релацијата е иредуцибилна
S# JAZIK  OCENKA
ISPIT(S#,IME, P#, IMEP,OCENKA)
ISPIT(S#,IME, P#, IMEP,OCENKA) STUDENT(S#,IME)
Кандидати клучеви PREDMET(P#, IMEP)
S# P#, S#, IMEP OCENKI(S#, P#, OCENKA)_
При избор S# P# примарен клуч
важи
S# P#  OCENKA, IME, IMEP STUDENT|x|PREDMET|x|
S#  IME, P#  IMEP OCENKI= ISPIT
S# P#  OCENKA

© Prof. Margita Kon-Popovska 2014


Повеќевредносни зависности
(multi valued dependences)

Некои зависности можат да бидат покомплицирани

Група работници изработува одредени производи на одделни машини,


но така да одделни групи работници секогаш работаат на исти машина

IZRABOTKA(P#,M#,R#) P#<<>>M#, M# <  >- > R#, P# <<  >> R#


P1 M1 R1
P1 M1 R2
P1 M1 R3 Кандидат клуч е P# M# R#
P1 M2 R4 Бидејќи на секоја машина работи
P1 M2 R5 одредена група работници (и
P2 M1 R1 произведува различни производи) постои
P2 M1 R2 повеќевредносна зависност
P2 M1 R3 M#  >-> R#
P3 M2 R4
P3 M2 R5
© Prof. Margita Kon-Popovska 2014
Нека во R(X) A X, B X
И не мора да е исполнето A B= и C=X-(A B)

A  >-> B
Акко множество вредности на B се појави за дадена вредност на A за
секоја комбинација на A и C
Декомпозиција

R1(P#M#) R2(M#,R#) R1 |x| R2 = IZRABOTKA

P1 M1 M1 R1
P1 M2 M1 R 2
P2 M1 M1 R 3
P3 M2 M2 R 4
M2 R 5

P# <<  >>M#, M# <<  >> R#, P# <<  >> R# не е можна


декмомпозиција
P# <<  >M#, M# <<  >> R#, P# <<  > R#
R1(P#M#) |x| R2(P#,R#)=IZRAB3
© Prof. Margita Kon-Popovska 2014
Пример

· Било кој професор има повеќе студенти во група


· Студент може да е во група на повеќе професори
· Професор може да биде во повеќе тела на факултетот

Profesor Student Telo Profesor Student Telo


123 222 NNS
232 IZD 123 222 NNS

456 111 NNS 123 232 NNS


232 123 222 IZD
444 123 232 IZD
444 333 NNS 456 111 NNS
456 232 NNS
…. …. ….
© Prof. Margita Kon-Popovska 2014
Проблеми и констатации

· Ажурирање. Ако се промени членство во тела за професор


потребни се повеќекратни ажурирања
· Додавање. Како ќе се внесе нов професор ако во моментов
нема студенти a има задолженија или обратно
· Бришење. Ако студентот 333 дипломира се бришат податоците
за професор
· Забелешки: професори се асоцирани со студенти независно од
членување во телата и се задолжува со членување во телата
независно асоцираност со студенти. Професор не членува во
различни тела во однос на различни студенти.
Професор  >-> Тело
Професор  >-> Студент

© Prof. Margita Kon-Popovska 2014


Транзитивни зависности

R(A,B,C) A B B  C B A тогаш A C

© Prof. Margita Kon-Popovska 2014


R(A,B,C) A B B  C B A тогаш A C

Строга транзитивна зависност


C B C B

A A

B B

C C

Разбивање
Строга Т.З. R1(A,B) R2(B,C) R1 |x| R2

Т.З R1(A,B) R2(B,C) R1 |x| R2


R3(A,C) R4(C,B) R3 |x| R4
© Prof. Margita Kon-Popovska 2014
Нормални форми базирани на
функциски зависности

НФ елимира релации внатре релации, повторувачки групи


· Прва нормална форма (1НФ)
елиминирање парцијални функционални зависност на
непримарните атрибути од клучните атрибути
· Втора нормална форма (2НФ)
елиминирање транзитивни функционални зависности на
непримарните атрибути спрема клучните атрибути
· Трета нормална форма (3НФ)
елиминирање парцијални и транзитивни
функционални зависности на примарните атрибути
спрема кандидати клучеви
· Boyce-cod нормална форма (БЦНФ)
елиминирање повеќевредносни функционални зависности
· Четврта нормална форма (4 НФ)

© Prof. Margita Kon-Popovska 2014


Целите на нормализација

· Ако некоја релациска шема “не е добра” ја декомпонираме


во низа релациски шеми {R1,R2,….Rn} така што
- декомпозиција е без губиток lossless-join decomposition

· Резултат од декомпозиција се “добри релации”


- Нема аномалии на ажурирање, бришење и вметнување

© Prof. Margita Kon-Popovska 2014


Резултат од декомпозиција

Нови релации каде за секоја важи дека е составена од

· Само клучни атрибути


· Кандидат клуч и непримарни атрибути кои не се
транзитивно зависни од тој кандидаи клуч
· Нема повеќекратни зависности

© Prof. Margita Kon-Popovska 2014


Концептуален модел

· Постапката на декомпозиција е завршена ако резултирачки


релации се состојат само од клуч или клуч и атрибут потполно
функциски зависен од клуч
· Во спротивнпо се бира еден од кандидати клучеви за примарен и
се формираат нови релации кои соддржат клуч и евентуелно еден
атрибут потполно функционално зависен од клуч
· Ваков модел има следните особини
- нема редунданции
- независен е од машинска и ипрограмска околина, како и начини на
скадирање
- независен од промените во реалниот свет
- е неефикасен во смисла на добивање брзи одговори
· Поради последново не се користи како модел за градење реални
Б.П.

© Prof. Margita Kon-Popovska 2014


Пример

· STUDENT-PRIJAVA(#IN,#PRBROJ, GODRADJANJE,
IME,ADRESA,GRAD, POL, PREDMETIME,
KREDITI,SEMESTAR,OCENKA, DATUM)
· STUDENT-Gr(#IN, GODRADJANJE),
STUDENT-I(#IN, IME)
STUDENT-A(#IN, ADRESA)
STUDENT-G(#IN, GRAD)
STUDE-P(#IN, POL)

· PREDMET-I(#PRBROJ, PREDMETIME)
PREDMET-K(#PRBROJ, KREDITI)
PREDMET-S(#PRBROJ, SEMESTAR)

· STUDENT-O(#IN,#PRBROJ,OCENKA)
STUDENT-D(#IN,#PRBROJ, DATUM)
© Prof. Margita Kon-Popovska 2014
Прва нормална форма (1 НФ)

· Сите атрибути треба да бидат атомски (елементарни)


· Релација во 1НФ не може да има атрибут чија вредност е
- множество од вредности;
- терки вредности (вгнездени релации)
· Ова е стандардна претпоставка кај системите за управувањ со
бази податоци (ДБМС)
· Кај објектно ориентираните ДБМС оваа претпоставка е
релаксирана

© Prof. Margita Kon-Popovska 2014


Пример

STUDENT(S#,IME,PRIJAVA)
STUDENT(S#,IME,(P#,NAZIV))
s1 AA p1 математика
p2 физика
s2 BB p1 математика

STUDENT(S#,IME,P#,NAZIV)
s1 AA p1 математика
s1 AA p2 физика
s2 BB p1 математика

© Prof. Margita Kon-Popovska 2014


Пример ненормализирана релација

Patient # Surgeon # Surg. date Patient Name Patient Addr Surgeon Surgery Postop drug
Drug side effects

Gallstone
s removal;
Jan 1, 15 New St. Beth Little Kidney
145 1995; June New York, Michael stones Penicillin, rash
1111 311 12, 1995 John White NY Diamond removal none- none

Eye
Charles Cataract
Apr 5, Field removal
243 1994 May 10 Main St. Patricia Thrombos Tetracyclin Fever
1234 467 10, 1995 Mary Jones Rye, NY Gold is removal e none none
Dogwood
Lane Open
Jan 8, Harrison, David Heart Cephalosp
2345 189 1996 Charles Brown NY Rosen Surgery orin none
55 Boston
Post Road,
Nov 5, Chester, Cholecyst
4876 145 1995 Hal Kane CN Beth Little ectomy Demicillin none
Blind Brook Gallstone
May 10, Mamaronec s
5123 145 1995 Paul Kosher k, NY Beth Little Removal none none
Eye
Cornea
Replacem
Apr 5, Hilton Road ent Eye
1994 Dec
© Prof. Margita Kon-Popovska 2014
Larchmont, Charles cataract Tetracyclin
6845 243 15, 1984 Ann Hood NY Field removal e Fever
Пример 1НФ

Patient # Surgeon # Surgery DatePatient Name Patient Addr Surgeon Name Surgery Drug adminSide Effects

15 New St.
New York, Gallstone
1111 145 01-Jan-95 John White NY Beth Little s removal Penicillin rash
15 New St. Kidney
New York, Michael stones
1111 311 12-Jun-95 John White NY Diamond removal none none
Eye
10 Main St. Cataract Tetracyclin
1234 243 05-Apr-94 Mary Jones Rye, NY Charles Field removal e Fever

10 Main St. Thrombos


1234 467 10-May-95 Mary Jones Rye, NY Patricia Gold is removal none none
Dogwood
Lane Open
Charles Harrison, Heart Cephalosp
2345 189 08-Jan-96 Brown NY David Rosen Surgery orin none

55 Boston
Post Road,
Chester, Cholecyst
4876 145 05-Nov-95 Hal Kane CN Beth Little ectomy Demicillin none

Blind Brook Gallstone


Mamaronec s
5123 145 10-May-95 Paul Kosher k, NY Beth Little Removal none none
Eye
Hilton Road Cornea
Larchmont, Replacem Tetracyclin
6845 243 05-Apr-94 Ann Hood NY Charles Field ent e Fever

Hilton Road Eye


Larchmont, cataract
6845 243 15-Dec-84 Ann Hood NY Charles Field removal none none

© Prof. Margita Kon-Popovska 2014


Втора нормална форма (2НФ)

Две можни дефиниции:

· Релацијата R е во 2НФ акко е во 1НФ и секој непримарен


атрибут во R е потполно функциски зависни од секој
кандидат клуч (Codd)
· Секој атрибут од комплемент на кандидат клуч е во
потполна функциска зависност од тој кандидат клуч (Kent)

© Prof. Margita Kon-Popovska 2014


Пример

· EMP-PROJ е во 1NF, но не во 2NF


поради fd1,fd2 и fd4. Се декомпонира
во

EMP(ENO,ENAME, TITLE,SALARY,APT#,
STREET,CITY)
PROJECT(PJNO,PNAME,BUDGET,MGR)
ASSIGN(ENO,PJNO,DURATION,RESP)

© Prof. Margita Kon-Popovska 2014


Пример 2НФ

Patient # Patient Name Patient Address Surgeon # Surgeon Name


15 New St. New
1111 John White York, NY 145 Beth Little
10 Main St. Rye,
1234 Mary Jones NY 189 David Rosen
Charles Dogwood Lane
2345 Brown Harrison, NY 243 Charles Field
55 Boston Post
4876 Hal Kane Road, Chester,
311 Michael Diamond
Blind Brook
5123 Paul Kosher Mamaroneck, NY
Hilton Road
467 Patricia Gold
6845 Ann Hood Larchmont, NY

© Prof. Margita Kon-Popovska 2014


Patient # Surgeon # Surgery Date Surgery Drug Admin Side Effects
Gallstones
1111 145 01-Jan-95 removal
Kidney Penicillin rash
stones
1111 311 12-Jun-95 removal none none
Eye Cataract
1234 243 05-Apr-94 removal Tetracycline Fever
Thrombosis
1234 467 10-May-95 removal none none
Open Heart Cephalospori
2345 189 08-Jan-96 Surgery n none
Cholecystect
4876 145 05-Nov-95 omy Demicillin none
Gallstones
5123 145 10-May-95 Removal none none
Eye cataract
6845 243 15-Dec-84 removal none none
Eye Cornea
6845 243 05-Apr-94 Replacement Tetracycline Fever

© Prof. Margita Kon-Popovska 2014


Пример

STUDENT(S#,IME,P#,NAZIV)
s1 AA p1 математика
s1 AA p2 физика
s2 BB p1 математика
S1(S#,IME)
S2(P#, NAZIV)
S3(S#,P#)

S1(S#,IME) |x| S2(P#, NAZIV) |x| S3(S#,P#)= STUDENT

© Prof. Margita Kon-Popovska 2014


Оптимална 2НФ

Колекцијата R2={Ri} е во оптимална 2НФ со оглед на почетната


рекација R ако
· сите Ri се во 2НФ
· R=R1|x|….|x|Rn
· {Ri} e минимално таково множество

Пример: STUDENT(S#,P#,IME,NAZIV, POL, OCENKA, DATA)


S3a(S#,P#,OCENKA), S3b(S#,P#,DATA), S1a(S#,IME), S1b(S#,POL)
S2(P#,NAZIV) не е оптимална 2НФ (е концептуален модел)

S1(S#,IME, POL)|x|S2(P#, NAZIV)|x|S3(S#,P#,OCENKA, DATA)=


STUDENT

© Prof. Margita Kon-Popovska 2014


Пример

IZRABOTKA(P#, M#, R#)


(строга транзитивна зависност) аномалии
P1 M1 R1  внесување, не може да се додели
P2 M2 R3 работник на машина ако не произвел
производ
P3 M1 R1  бршење, ако се бришат производи
P4 M1 R1 изработени на една машина се губи
информација за работник-машина P6
P5 M3 R2  ажурирање, ако се премести работник
P6 M4 R1 од една машина на друга треба да се
менуваат повеќе терки
P#  M#  нарушување моделот, внес терка
P#  R# <P7, M4, R2>

M# R#
I1A(P#, M#) |x| I2(M#, R#)=IZRABOTKA
© Prof. Margita Kon-Popovska 2014
Трета нормална форма 3НФ

· Релација Р е во 3НФ ако е во 2НФ


· Ниту еден непримарен атрибут од Р не е транзитивно зависен од
примарниот клуч (Codd)
· Ниту еден атрибут од комплемент на кандидат клуч не е
транзитивно зависен од тој кандидат клуч (Kent)

© Prof. Margita Kon-Popovska 2014


Пример

· EMP не е во 3НФ поради fd2


- TITLE SALARY (TITLE не е суперклуч и SALARY не е клучен
атрибут)
- Проблемот е во тоа што ENO транзитивно ја одредува SALARY
(исто како што и директно ја одредува

© Prof. Margita Kon-Popovska 2014


Пример 3НФ

Patient # Surgeon # Surgery Date Surgery Drug Admin

1111 145 01-Jan-95 Gallstones removal Penicillin


Kidney stones
1111 311 12-Jun-95 removal none

1234 243 05-Apr-94 Eye Cataract removal Tetracycline

1234 467 10-May-95 Thrombosis removal none

2345 189 08-Jan-96 Open Heart Surgery Cephalosporin

4876 145 05-Nov-95 Cholecystectomy Demicillin


Drug Admin Side Effects
5123 145 10-May-95 Gallstones Removal none Cephalosporin none
6845 243 15-Dec-84 Eye cataract removal none Demicillin none
Eye Cornea
6845 243 05-Apr-94 Replacement Tetracycline none none
Penicillin rash
Tetracycline Fever

© Prof. Margita Kon-Popovska 2014


BOYCE-CODD Нормална форма

· Повеќето релации во 3НФ се релации и во т.н. BCNF


· 3НФ релација најчесто не е и во BCNF ако:
- Кандидати клучеви се сложени (не соддржат еден атрибут)
- Има повеќе кандидати клучеви
- Кандидати клучеви не се дисјунктни
- Постојат зависности од примарни атрибути од непримарни
атрибути

© Prof. Margita Kon-Popovska 2014


Пример 3НФ е и во БЦНФ

Patient # Patient Name Patient Address


15 New St. New
1111 John White York, NY
10 Main St. Rye,
1234 Mary Jones NY
Charles Dogwood Lane
2345 Brown Harrison, NY
55 Boston Post
4876 Hal Kane Road, Chester,
Blind Brook
5123 Paul Kosher Mamaroneck, NY
Hilton Road
6845 Ann Hood Larchmont, NY

© Prof. Margita Kon-Popovska 2014


БЦНФ (BCNF)

· Се уште може да постојат транзитивни зависности во 3НФ


ако зависните атрибути се примарни атрибути.
· Релацијата R која што е 1НФ е во БЦНФ ако за секоја
нетривиална функциска зависност (за секоја
детерминанта) XY, X е супер клуч (множество
атрибути што на единствен начин определува други
атрибути, а при тоа не треба да е минимално таково
множество).
· Карактеристики на БЦНФ
- Сите непримарни атрибути се потполно ф. зависни од секој клуч.
- Сите примарни атрибути се потполно ф. зависни од клучевите на
кои што не им припаѓаат
- Нема атрибут што е потполно функциски зависен од било кое
множество на непримарни атрибути.

© Prof. Margita Kon-Popovska 2014


· Формално:

Релациска шема R дефинирана на R={A1,A2,...,An} e во


BCNF ако за секоја функциска зависност XY во однос
на функциски зависности во R и X R иY  R барем
едно е исполнето
XY е тривиална функциска зависност (Y  X) или
X е супер клуч
· Во однос на транзитивни зависности:
- БЦНФ е построга форма на нормализација :
- БЦНФ  3НФ (обратно не мора да важи)

© Prof. Margita Kon-Popovska 2014


Декомпозиција

· Нека X Y во релациска шема R која нарушува


BCNF. Декомпонираме R во
(X,Y) и (R-(Y-X))

(C,B) , {A,B,C,D}-({B}-{C})={ACD}
R1(CB), R2(ACD)
© Prof. Margita Kon-Popovska 2014
Пример
KOLEGIJ(P#,N#, U#)
1. Еден наставник за еден предмет користи еден учебник
2. Еден предмет според еден учебник предаваат повеќе наставници
3. Еден учебник еден наставник користи за еден предмет

е во 3 НФ бидејќи нема непримарни атрибути транзитивно зависни


е во 3 БЦНФ бидејќи сите ФЗ се од кандидати клучеви

3. замениме со: Еден учебник се користи само за еден предмет


(U#  P#)
KOLEGIJ(P#,N#, U#)

не е во БЦНФ бидејќи P# зависи од не кандидат клуч


Не е можно разбивање со сочувување на функциски зависности*
Можно е разбивање без губиток на информации
(U#,P#) и (N#,U#)
© Prof. Margita Kon-Popovska 2014
(X,Y) и (R-(Y-X)) (UP), {PNU}-({P}-{U})=(NU)
SOVETNIK(IN#,MAJOR,IME-SOV)

IN# MAJOR  IME-SOV


IN# IME-SOV  MAJOR
IME-SOV  MAJOR (детерминанта)

· Е во 1 НФ и во 2 НФ (бидејќи сите не примарни атрибути се


зависни од целосен клуч, без оглед кој кандидат избереме за
примарен клуч, немаме непримарни атрибути)
· Сепак има аномалии на модификација не е во БЦНФ. Ако се
избрише некој студент се губи на пример врска кој професор е
советник за одреден предмет
· Можна е декомпозиција

STUD-ADV(IN#,IME-SOV) MAJOR-ADV(MAJOR,IME-SOV)
(X,Y) и (R-(Y-X))
© Prof. Margita Kon-Popovska 2014
Пример 1

· Декомпозиција за да имаме БЦНФ

© Prof. Margita Kon-Popovska 2014


Пример 2

· Декомпозиција за да имаме БЦНФ

© Prof. Margita Kon-Popovska 2014


Сочувување на функциски зависности

· Проверка дали некока функциска зависност е сочувана на


декомпонирани релации чини доста освен ако останува во
рамките на една релација
· Велиме дека декомпозиција ги сочувува функциските
зависнопсти, aко тестирањето се сведува само функциските
зависности на индивидуални релации покажува дека важат сите
функциски зависности.
· Не е секогаш можно да се добие БЦНФ и да се сочуваат
функциските зависности. Затоа некогаш се задоволуваме со
3НФ
Пример: Еден учебник се користи само за еден предмет
(U#  P#) Декомпозиција, проверка P#,N# -> U#) ?
KOLEGIJ(P#,N#, U#) (U#,P#) и (N#,U#)

© Prof. Margita Kon-Popovska 2014


Оптимална 3НФ

Дефинирана во однос на колекција релации Z2={Ri}

· Нека е Z2 колекција релации во 2НФ


· Нека е Z3 колекција релации изведени од Z2 и сите
релации се во 3НФ
· Со природно придружување на релации од Z3 се
добива Z2 (без губиток на информации)
· Z3 е минимално таково множество

© Prof. Margita Kon-Popovska 2014


Четврта нормална форма (4НФ)

Група работници изработува одредени производи на


одделни машини, но така да подделни групи работници
секогаш работат на исти машина
IZRABOTKA(P#,M#,R#) P#<<—>>M#,M#<— —>>R#, P#<<— >>R#
P1 M1 R1
P1 M1 R2
P1 M1 R3
P1 M2 R4
P1 M2 R5 Kandidat klu~ e P# M# R#
P2 M1 R1 Bidej}i na sekoja ma{ina raboti odredena grupa
P2 M1 R2 rabotnici (i proizveduva razli~ni proizvodi) postoi
P2 M1 R3 pove}evrednosna zavisnost
P3 M2 R4 M# < — >> R#
P3 M2 R5
© Prof. Margita Kon-Popovska 2014
Аномалии

· Не е можно воспоставување релација машина производ без да


се знае кој работник работи на машина
· Не е можно чување информација за група работници која работи
на одделна машина без да се знаат производи кои при тоа се
изработуваат
· Додавање нов работник треба да се ажурира во повеќе терки
· Со бришење сите производи кои се изработуваат на една
машина се губи информација за работници кои работаат на таа
машина. Слично важи за работници.
· Нарушување концептуален модел со додавање <P3,M2,R6>

© Prof. Margita Kon-Popovska 2014


4НФ

Во дадена релација се елиминираат повеќекратни зависности


(M#->>R#)
R1(P#,M#) R2(M#,R#)

Оптимална IV НФ се добива во процесот на нормализација вез


губиток на информации и со минимална колекција релации

© Prof. Margita Kon-Popovska 2014


Зависности на придружување

Релациска шема R е дефинирана над R={A1,A2,…,An} и R1,R2,


…,Rm се декомпозиција на R (t.e. R=  Ri, i=1,m).
· Релацијата r од R ја задоволува зависноста на придружување,
означена како ZP(R1,R2,…,Rm) или *(R1,R2,…,Rm), ако за секоја
правилна инстанца r од R

(<R1>(R )|x|… |x|<Rm>(R )) = R

© Prof. Margita Kon-Popovska 2014


Пример
A B B C A C A B C
a1 b1 b1 c2 a1 c2 a1 b1 c2
a2 b1 b1 c1 a2 c1 a1 b1 c1
a1 b2 b2 c1 a1 c1 a2 b1 c1
a1 b2 c1

A B B C A B C
a1 b1 b1 c2 a1 b1 c2
a2 b1 b1 c1 a1 b1 c1
· *((A,B),(BC),(A,C)) важи.
· Но не важи *((A,B),(B,C)). a1 b2 b2 c1 a2 b1 c2
a2 b1 c1
© Prof. Margita Kon-Popovska 2014
a1 b2 c1
Петта нормална форма

· Петта нормална форма


· Една релација е во петта нормална форма 5НФ, наречена
нормална форма на проекција-придружување (projection-join
normal form PJNM), ако секоја зависност на придружување
дефинирана за релацијата е овозможена од кандидат
клучевите на R.
· Соодветна проекцијата се прави според кандидат клучот.
· Формално: Релациска шема U={A1,A2,…,An} е во 5НФ во
однос на множеството Ф, каде Ф е множество на ФЗ, МВЗ и
ZP ако за множеството на сите ZP во Ф + од облик *(R1,R2,
…,Rm) каде Ri  U i  Ri=R, i=1 до m, барем еден од
следните услови е исполнет:
- (R1,R2,…,Rm) е тривијална ZP;
- Секој Ri е суперклуч за R.

© Prof. Margita Kon-Popovska 2014


Резиме нормализација

· Нормализацијата е процес на концептуално разделување која се


изведува со методологијата top-down за да се добие шема со
последователно подобрување и декомпозиции.

· 1NF во 2NF во 3NF; 1NF во 2NF во BCNF

Прашања на кои треба да се внимава:


· Како ја декомпонираме шемата во саканиот нормален облик?
· Кој критериум декомпонираните шеми треба да го задоволуваат
за да ја задржат семантиката на оргиналната шема?
· Дали може да се гарантира квалитет на декомпозицијата.

© Prof. Margita Kon-Popovska 2014


Пример

EMPLOYEE (EmpId, Name, Dept, Salary, Course1, DateTook1, Fee1,


Course2, DateTook2, Fee2, …)
© Prof. Margita Kon-Popovska 2014
1НФ Отстранување на повторувачки групи

EMPLOYEE (EmpId, Name, Dept, Salary, Course, DateTook, Fee)

© Prof. Margita Kon-Popovska 2014


2НФ Отстранување на парцијални зависности

EmpId -> Name, Dept, Salary


Course -> Fee
EmpId, Course -> DateTook

© Prof. Margita Kon-Popovska 2014


2НФ

If employees can take a course more than once: TOOK_COURSE ( EmpId, Course, DateTook

© Prof. Margita Kon-Popovska 2014


3НФ Отстранување на транзитивна зависност

Забелешка: Salesperson,
CustNo -> Name, Salesperson, Region неклучен атрибут го определува
Region, друг неклучен атрибут.
Salesperson -> Region

© Prof. Margita Kon-Popovska 2014


3НФ

© Prof. Margita Kon-Popovska 2014


Пример

© Prof. Margita Kon-Popovska 2014


4 НФ

Отстранување на
МВЗ

© Prof. Margita Kon-Popovska 2014


Денормализација

За да се подобрат перформансите не се сведува на 3НФ

© Prof. Margita Kon-Popovska 2014

You might also like