3URMHNWRZDQLHVFKHPDWyZ UHODF\MQ\FKED]GDQ\FK± 1RUPDOL]DFMD =E\V]NR.UyOLNRZVNL,QVW\WXW,QIRUPDW\NL3ROLWHFKQLNL3R]QDVNLHM 3R]QDXO3LRWURZR HPDLO=E\V]NR.UyOLNRZVNL#FVSXWSR]QDSO
1LHZáDFLZH]DSURMHNWRZDQLHVFKHPDWyZ UHODFMLPR*HE\üSU]\F]\QUHGXQGDQFML GDQ\FKLFKQLHVSyMQRFLLDQRPDOLLSRGF]DV LFKDNWXDOL]RZDQLD Relacja: PRACOWNICY,GBSUDF 1D]ZLVNR $GUHV 1XPHUB G]LDáX 1D]ZDB G]LDáX.RZDOVNL 3R]QD ']LDá VSU]HGD*\ 0DOLQRZVNL 3R]QD ']LDá 6SU]HGD*\
Podczas eksploatacji bazy danych PRJZ\VWSLüQDVWSXMFH anomalie: Anomalia wstawiania Anomalia usuwania Anomalia modyfikacji
Anomalia wstawiania Wprowadzenie pracownika zatrudnionego, np. w dziale 5 Z\PDJD]DGEDQLDRVSyMQRüQD]Z\G]LDáX]ZDUWRFLDPLZ innych krotkach 1LHPR*QDZSURZDG]LüLQIRUPDFMLRG]LDOHNWyU\QLH zatrudnia jeszcze pracowników,gbsudf 1D]ZLVNR $GUHV 1XPHUB G]LDáX 1D]ZDB G]LDáX.RZDOVNL 3R]QD ']LDá VSU]HGD*\ 0DOLQRZVNL 3R]QD ']LDá 6SU]HGD*\
Anomalia usuwania 8VXZDMFNURWN]RVWDWQLPSUDFRZQLNLHP GDQHJRG]LDáXWUDFLP\LQIRUPDFM*HWDNL G]LDáZRJyOHLVWQLHMH,GBSUDF 1D]ZLVNR $GUHV 1XPHUB G]LDáX 1D]ZDB G]LDáX.RZDOVNL 3R]QD ']LDá VSU]HGD*\ 0DOLQRZVNL 3R]QD ']LDá 6SU]HGD*\
Anomalia modyfikacji =PLDQDQD]Z\G]LDáXZ\PDJDDNWXDOL]DFMLNURWHN wszystkich pracowników zatrudnionych w tym G]LDOHZFHOX]DFKRZDQLDVSyMQRFL,GBSUDF 1D]ZLVNR $GUHV 1XPHUB G]LDáX 1D]ZDB G]LDáX ']LDá Marketingu.RZDOVNL 3R]QD ']LDá VSU]HGD*\ 0DOLQRZVNL 3R]QD ']LDá ']LDáGV Marketingu 6SU]HGD*\
W ramach projektowania schematów bazy danych QDMLVWRWQLHMV]NRFRZF]\QQRFLMHVWSURFHV normalizacji relacji, czyli doprowadzanie relacji do odpowiedniej postaci normalnej (ang. Normal Form NF). :XSURV]F]HQLXSURFHVQRUPDOL]DFMLUHODFMLPR*QD WUDNWRZDüMDNRSURFHVSRGF]DVNWyUHJRVFKHPDW\ UHODFMLSRVLDGDMFHSHZQHQLHSR*GDQHFHFK\V dekomponowane na mniejsze schematy o SR*GDQ\FKZáDVQRFLDFK Dekompozycja VSURZDG]DVLGRSRG]LDáXDWU\EXWyZ relacji R PLG]\VFKHPDW\QRZ\FKUHODFML5HJXáD GHNRPSR]\FMLREHMPXMHUyZQLH*SRG]LDáNURWHN UHODFMLZHMFLRZHMR PLG]\QRZHUHODFMHG]LNL operacji projekcji krotek R.
Postacie normalne relacji Wszystkie relacje (znormalizowane i nieznormalizowane) Relacje w 1NF (znormalizowane relacje) Relacje w 2NF Relacje w 3NF Relacje w postaci BCNF Relacje w 4NF Relacje w 5NF
Relacja nieznormalizowana: Nr_ zamówienia Id_ dostawcy Nazwa_ dostawcy Adres_ dostawcy Id_ czfl Nazwa_ czfl Iloü Magazyn Adres_ magazynu 001 300 Nissan Liege 53 Pompa 100 5 Warszawa 57 Filtr 50 5 Warszawa 59 BáRWQLN 500 6 Szczecin 002 400 HONDA Glasgow 54 Pompa 500 5 Warszawa 32 KoáR 100 6 Szczecin 003 500 TOYOTA Tokyo 88 Silnik 15 7 Pozna 004 600 HONDA London 59 BáRWQLN 400 6 Szczecin 21 Lampa 50 7 Pozna
3LHUZV]DSRVWDüQRUPDOQDUHODFML Proces normalizacji polega w tym przypadku na doprowadzeniu zbioru danych do postaci relacji Relacja jest w pierwszej postaci normalnej MHOL ND*GDZDUWRüDWU\EXWXZND*GHMNURWFHWHMUHODFML MHVW ZDUWRFL HOHPHQWDUQ F]\OL QLHUR]NáDGDOQ DWRPRZ Z definicje pierwszej postaci normalnej relacji Z\QLND*HND*GHPXHOHPHQWRZLUHODFML ]QDMGXMFHPXVLQDSU]HFLFLXGRZROQHMNURWNLL dowolnego atrybutu odpowiada pojedyncza ZDUWRüDQLH]ELyUZDUWRFL
Relacja ZAMÓWIENIA W 1NF Nr_ zamówienia Id_ dostawcy Nazwa_ dostawcy Adres_ dostawcy Id_ czfl Nazwa_ czfl Iloü Magazyn Adres_ magazynu 001 300 NISSAN Liege 53 Pompa 100 5 Warszawa 001 300 NISSAN Liege 57 Filtr 50 5 Warszawa 001 300 NISSAN Liege 59 BáRWQLN 500 6 Szczecin 002 400 HONDA Glasgow 54 Pompa 500 5 Warszawa 002 400 HONDA Glasgow 32 KoáR 100 6 Szczecin 003 500 TOYOTA Tokyo 88 Silnik 15 7 Pozna 004 600 HONDA London 59 BáRWQLN 400 6 Szczecin 004 600 HONDA London 21 Lampa 50 7 Pozna
3U]\NáDGRZDG]LHG]LQDU]HF]\ZLVWRFL Relacja ZAMÓWIENIA zawiera informacje o ]DPyZLHQLDFK F]FL X GRVWDZF\ L VNLHURZDQLX LFK GR odpowiednich magazynów. -HGQR ]DPyZLHQLH PR*H GRW\F]\ü ZLHOX F]FL GRVWDUF]DQ\FKSU]H]WHJRVDPHJRGRVWDZF 5y*QH]DPyZLHQLDPRJGRW\F]\üWHJRVDPHJRGRVWDZF\L W\FKVDP\FKF]FL 7D VDPD F]ü PR*H E\ü GRVWDUF]DQD SU]H] Uy*Q\FK dostawców. 7H VDPH F]FL V VNáDGRZDQH ]DZV]H Z W\P VDP\P magazynie. W zamówieniach jest podawany identyfikator dostawcy i QD]ZDGRVWDZF\JG\*Uy*QLGRVWDZF\PRJQRVLüWVDP QD]ZHonda).
&]\SLHUZV]DSRVWDüQRUPDOQDUHODFML wystarczy? NIE! Dlaczego? Dublowanie danych Anomalie eksploatacyjne 'RGDWNRZHSUREOHP\Z\QLNDMFH]1): QLH PR*QD ]DSDPLWDü DGUHVX GRVWDZF\ GR NWyUHJR QLH ]ár*rqr zamówienia XVXZDMF LQIRUPDFM R ]DPyZLHQLX VNLHURZDQ\P GR GRVWDZF\ WUDFLP\LQIRUPDFMRMHJRDGUHVLH
3RMFLDSRGVWDZRZH.D*G\ SRG]ELyU SK atrybutów relacji R, WDNL *H GOD ND*G\FK GZyFK NURWHN UHODFML SUDZGMHVW*H t 1 [ SK ] t 2 [ SK ], jest nazywany nadkluczem (superklucz) (ang. superkey) relacji R..D*GDUHODFMDPDFRQDMPQLHMMHGHQ superklucz schemat relacji. Kluczem K schematu relacji R nazywamy minimalny nadklucz, W]Q WDNL *H QLH LVWQLHMH K K EGF\ nadkluczem schematu relacji R -H*HOLUHODFMD]DZLHUDZLFHMQL*MHGHQNOXF]WRVRQHQD]\ZDQe kluczami potencjalnymi NDQG\GXMF\PL (ang. candidate key). -HGHQ]QLFKPR*HSHáQLüURONOXF]DJáyZQHJR (ang. primary key) relacji. Atrybut X w schemacie relacji R EG]LHP\ QD]\ZDü atrybutem wtórnym MH*HOL QLH QDOH*\ RQ GR *DGQHJR ] NOXF]\ VFKHPDWX relacji R.
3RMFLDSRGVWDZRZH- cd. Klucz potencjalny Nr_ zamówienia Id_ czfl Id_ dostawcy Nazwa_ dostawcy Adres_ dostawcy Nazwa_ czfl Iloü Magazyn Adres_ magazynu 001 53 300 NISSAN Liege Pompa 100 5 Warszawa 001 57 300 NISSAN Liege Filtr 50 5 Warszawa 001 59 300 NISSAN Liege BáRWQLN 500 6 Szczecin 002 54 400 HONDA Glasgow Pompa 500 5 Warszawa 002 32 400 HONDA Glasgow KoáR 100 6 Szczecin 003 88 500 TOYOTA Tokyo Silnik 15 7 Pozna 004 59 600 HONDA London BáRWQLN 400 6 Szczecin 004 21 600 HONDA London Lampa 50 7 Pozna
3RMFLDSRGVWDZRZH- cd. 'HILQLFMD]DOH*QRFLIXQNF\MQHM-FD Atrybut Y relacji R jest IXQNF\MQLH]DOH*Q\ od DWU\EXWX;MHOL]DZV]HND*GHMZDUWRFL[DWU\EXWX ;RGSRZLDGDQLHZLFHMQL*MHGQDZDUWRü\ atrybutu Y. 6WZLHUG]HQLH*H<MHVWIXQNF\MQLH]DOH*QHRG; MHVWUyZQRZD*QHVWZLHUG]HQLX*H;identyfikuje (wyznacza) Y (X Y).
=DOH*QRFLIXQNF\MQHZUHODFML ZAMÓWIENIA 1UB]DPyZLHQLD,GBGRVWDZF\ 1D]ZDBGRVWDZF\ $GUHVBGRVWDZF\,GBF]FL 1D]ZDBF]FL,ORF 0DJD]\Q $GUHVBPDJD]\QX
'HILQLFMDSHáQHMLF]FLRZHM]DOH*QRFL funkcyjnej Zbiór atrybutów Y MHVWZSHáQLIXQNF\MQLH ]DOH*Q\RG]ELRUXDWU\EXWyZX w schemacie R, MH*HOLX Y i nie istnieje podzbiór X X tdnl*hx Y. Zbiór atrybutów Y MHVWF]FLRZRIXQNF\MQLH ]DOH*Q\RG]ELRUXDWU\EXWyZX w schemacie R, MH*HOLX Y i istnieje podzbiór X X taki, *HX Y.
Definicja drugiej postaci normalnej - 2NF Relacja R o danym schemacie jest w drugiej postaci QRUPDOQHM1)MH*HOL*DGHQDWU\EXWZWyUQ\WHM UHODFMLQLHMHVWF]FLRZRIXQNF\MQLH]DOH*Q\RG *DGQHJR]NOXF]\UHODFMLR. Relacja R o danym schemacie jest w drugiej postaci QRUPDOQHM1)MH*HOLND*G\DWU\EXWZWyUQ\WHM UHODFMLMHVWZSHáQLIXQNF\MQLH]DOH*Q\RGNOXF]D podstawowego relacji R.
Relacja zamówienia nie jest w drugiej postaci normalnej Dlaczego? Klucz: 1UB]DPyZLHQLD,GBF]FL 1UB]DPyZLHQLD,GBGRVWDZF\ 1D]ZDBGRVWDZF\ $GUHVBGRVWDZF\,GBF]FL 1D]ZDBF]FL,ORF 0DJD]\Q $GUHVBPDJD]\QX
&RQDOH*\]URELü" =GHNRPSRQRZDü UHODFMZAMÓWIENIA na zbiór WDNLFKUHODFMLNWyU\FKZV]\VWNLHDWU\EXW\EGZ SHáQLIXQNF\MQLH]DOH*QHRGNOXF]\ Zawiera te atrybuty, które VIXQNF\MQLH]DOH*QHRG atrybutu Nr-zamówienia DOSTAWCA_NA_ZAMÓWIENIU Nr_ zamówienia Id_ dostawcy Nazwa_ dostawcy Adres_ dostawcy 001 300 NISSAN Liege 002 400 HONDA Glasgow 003 500 TOYOTA Tokyo 004 600 HONDA London
Zawiera te atrybuty, które VIXQNF\MQLH]DOH*QHRG atrybutu Id-F]FL &= &,B:B0$*$=<1,(,GBF]FL 1D]ZDBF]FL0DJD]\Q Adres_ magazynu 53 Pompa 5 Warszawa 57 Filtr 5 Warszawa 59 %árwqln 6 Szczecin 54 Pompa 5 Warszawa 32.RáR 6 Szczecin 88 Silnik 7 3R]QD 59 %árwqln 6 Szczecin 21 Lampa 7 3R]QD
8WZRU]RQD]HZ]JOGXQD atrybut,orü, który MHVWIXQNF\MQLH]DOH*Q\ od atrybutów: Nr_zamówienia, Id-F]FL '267$:<B&= &, Nr_zamówienia,GBF]FL,ORü 001 53 100 001 57 50 001 59 500 002 54 500 002 32 100 003 88 15 004 59 400 004 21 50
Relacje w 2NF - ZV]\VWNLH]DOH*QRFLIXQNF\MQH Z]JOGHPNOXF]DVSHáQ\PL]DOH*QRFLDPLIXQNF\MQ\PL 1UB]DPyZLHQLD,GBF]FL,GBGRVWDZF\ 1D]ZDBGRVWDZF\ 0DJD]\Q $GUHVBGRVWDZF\ 1UB]DPyZLHQLD,GBF]FL,ORF =DOH*QRFLIXQNF\MQHZUHODFMDFK'267$:&$B1$B=$0Ï:,(1,8 &=(6&,B:B0$*$=<1,(L'267$:<B&= &,
Relacja &= &,B:B0$*$=<1,( w 2NF nadal zawiera redundantne dane &= &,B:B0$*$=<1,(,GBF]FL 1D]ZDBF]FL Magazyn Adres_magazynu 53 Pompa 5 Warszawa 57 Filtr 5 Warszawa 59 %árwqln 6 Szczecin 54 Pompa wodna 5 Warszawa............ Co jest tego SU]\F]\Q" Przechodnie ]DOH*QRFLIXQNF\MQH
'HILQLFMDSU]HFKRGQLHM]DOH*QRFL funkcyjnej Zbiór atrybutów Y jest przechodnio funkcyjnie ]DOH*Q\ od zbioru atrybutów X w schemacie relacji RMH*HOLX Y i istnieje zbiór atrybutów Z, QLHEGF\SRG]ELRUHP*DGQHJRNOXF]D schematu relacji R WDNL*H]DFKRG]LX Z i Z Y.
'LDJUDP]DOH*QRFLIXQNF\MQ\FKLSU]HFKRGQLFK]DOH*QRFL funkcyjnych w relacji DOSTAWCA_NA_ ZAMÓWIENIU i &= &,B:B0$*$=<1,(,GBGRVWDZF\ 1D]ZDBGRVWDZF\ $GUHVBGRVWDZF\
Definicja trzeciej postaci normalnej Relacja R o danym schemacie jest w trzeciej postaci normalnej (3NF), MH*HOL MHVWZGUXJLHMSRVWDFLQRUPDOQHML*DGHQ atrybut wtórny tej relacji nie jest SU]HFKRGQLR]DOH*Q\RGNOXF]DJáyZQHJR tej relacji.
&RQDOH*\]URELü]UHODFMDPLZ1) ]DZLHUDMF\PL]DOH*QRFLSU]HFKRGQLH" 'HNRPSRQRZDü Jak? $ % & $ % % &
DOSTAWCA_NA_ZAMÓWIENIU (2NF) ZAMÓWIENIE_DO_DOSTAWCY DOSTAWCY Nr_zamówienia Id_dostawcy Id_dostawcy Nazwa Adres 001 300 300 Nissan Liege 002 400 400 Honda Glasgow 003 500 500 Toyota Tokyo...............
&= &,B:B0$*$=<1,( &= &, &= ûb:b0$*$=<1,( MAGAZYNY,GBF]FL 1D]ZDBF]FL,GBF]FL Magazyn Magazyn Adres_magazynu 53 Pompa 57 Filtr 54 Pompa 32.RáR 88 Silnik 59 %árwqln 53 5 57 5 59 6 54 5 32 6 88 7 59 6 5 Warszawa 6 Szczecin 7 3R]QD
'ODF]HJRUHODFM&= &,B:B0$*$=<1,( QDOH*DáRSRG]LHOLüQDUHODFMH" =HZ]JOGXQDIDNWZ\VWSRZDQLD)'DWU\EXWX1D]ZDBF]FL od atrybutu,gbf]fl, oprócz przechodniej FD,GBF]FL Adres_magazynu 1UB]DPyZLHQLD,GBF]FL,GBGRVWDZF\ =$0Ï:,(1,(B'2B'267$:&<,GBGRVWDZF\ 1D]ZDBGRVWDZF\ &= &,,GBF]FL 0DJD]\Q $GUHVBGRVWDZF\ '267$:&< 0DJD]\Q 0$*$=<1<
Z\PLDURZH.OXF].OXF] $ % & $ % & ' 3U]HNV]WDáFHQLH GRSLHUZV]HM SRVWDFL QRUPDOQHM 3U]HNV]WDáFHQLH GRGUXJLHM SRVWDFL QRUPDOQHM 3U]HNV]WDáFHQLH GRWU]HFLHM SRVWDFL QRUPDOQHM 5HODFMD5 $ % & ' $.OXF] % &.OXF] $ % % & $ '
=ELyUUy*Q\FK]DOH*QRFLIXQNF\MQ\FK Z\VWSXMF\FKZUHODFMDFKPR*HE\üEDUG]RGX*\ 'ODF]HJRSRZLQQRQDP]DOH*HüQDUHGXNFML ]ELRUX]DOH*QRFL" -HGQ\P]SRZRGyZMHVWWR*H]DOH*QRFL IXQNF\MQHUHSUH]HQWXMZL]\LQWHJUDOQRFLD zatem V\VWHP]DU]G]DQLDED]GDQ\FK (SZBD) PXVLMHVSUDZG]DüZFKZLOLSU]HSURZDG]DQLD aktualizacji. -DNWR]URELü"
-H*HOLMHVWGDQ\]HVWDZ]DOH*QRFLRQD]ZLHS, ZDUWRE\áRE\]QDOH(üLQQ\]ELyUTNWyU\E\áE\ ]QDF]QLHPQLHMV]\RG6LPLDáWZáDVQRü*H ND*GD]DOH*QRüIXQNF\MQD]S Z\QLNDáDE\] ]DOH*QRFL]DZDUW\FKZT. -HOLXGDáRE\VL]QDOH(üWDNL]ELyUT, to Z\VWDUF]DáRE\DE\SZBD Z\PXV]DáVSHáQLHQLH ]DOH*QRFLIXQNF\MQ\FKZT, a tym samym ]DOH*QRFL]H]ELRUXS E\á\E\VSHáQLRQH automatycznie.
-HGQ\P ]H VSRVREyZ UHGXNFML ZLHONRFL ]ELRUX ]DOH*QRFL IXQNF\MQ\FK MHVW HOLPLQDFMD WDN ]ZDQ\FK ]DOH*QRFL WU\ZLDOQ\FK. : RJyOQRFL ]DOH*QRü MHVW WU\ZLDOQD MH*HOL QLH PR*H E\ü QLHVSHáQLRQD =DOH*QRü MHVW WU\ZLDOQD ZWHG\ L W\ONR ZWHG\ JG\ SUDZDVWURQD]DOH*QRFLMHVWSRG]ELRUHPOHZHM;< X) lub odwrotnie lewa strona jest nadzbiorem prawej. Definicja postaci normalnej BCNF 5HODFMD]QDMGXMHVLZpostaci BCNF wtedy i tylko ZWHG\JG\MHG\Q\PLHOHPHQWDPLGHWHUPLQXMF\PLV NOXF]HNDQG\GXMFHSU]\F]\P]DNáDGDP\*H ZV]\VWNLH]DOH*QRFLIXQNF\MQHV nietrywialne.
-DNWRVLPDGRGLDJUDPyZ]DOH*QRFL funkcyjnych? -HG\Q\PLVWU]DáNDPLZ\FKRG]F\PLQDGLDJUDPLH ]DOH*QRFLVVWU]DáNLZ\FKRG]FH]NOXF]\ SRWHQFMDOQ\FKNDQG\GXMF\FK $.OXF] % & $ ' $ % & 'HILQLFMDSRVWDFL%&1)VWZLHUG]D*HÄQLHPR*HE\ü *DGQ\FKLQQ\FKVWU]DáHN QLHPDZLFVWU]DáHN V\PEROL]XMF\FK]DOH*QRFLNWyUHPRJá\E\E\ü eliminowane w procedurze normalizacji.
Przy projektowaniu schematów relacyjnych F]DVDPLRND]XMHVL*HVFKHPDWPDSRVWDü %&1)DOHZ\VWSXMHZQLPUHGXQGDQFMD GDQ\FKNWyUDQLHPD]ZL]NX] ]DOH*QRFLDPLIXQNF\MQ\PL. 6NGVLELRUWHUHGXQGDQFMH"
3U]\NáDG 1D]ZLVNRBSUDFRZQLND-]\NBSURJUDPRZDQLD-]\NBREF\ Kowalski C angielski C++ francuski Java Malinowski Smalltalk angielski Java ZáRVNL KLV]SDVNL Nowak C angielski SQL PL/M rosyjski,qirupdfmhrm]\ndfksurjudprzdqldlm]\ndfk REF\FK]QDQ\FKSU]H]SUDFRZQLNDVZ]DMHPQLH QLH]DOH*QH
Nazwisko_pracownika -]\NBSURJUDPRZDQLD -]\NBREF\ Kowalski C angielski Kowalski C francuski Kowalski C++ angielski Kowalski C++ francuski Kowalski Java angielski Kowalski Java francuski......... :W\FKGDQ\FKQLHPD*DGQ\FK]DOH*QRFLIXQNF\MQ\FK Atrybut Y relacji R jest IXQNF\MQLH]DOH*Q\ RGDWU\EXWX;MHOL ]DZV]HND*GHMZDUWRFL[DWU\EXWX;RGSRZLDGDQLHZLFHMQL* MHGQDZDUWRü\DWU\EXWX< 5HODFMDWDMHVWMHGQDNZ1)L%&1)SRQLHZD*MHVW typu all-key, tj. ma same klucze.
Co to oznacza? 3RMFLDLGHILQLFMHZSURZDG]RQH ZF]HQLHMQLHGRVWDUF]IRUPDOQ\FK podstaw do dekompozycji tej relacji na mniejsze.
1D]ZLVNRBSUDFRZQLND-]\NBSURJUDPRZDQLD-]\NBREF\ Kowalski C angielski Kowalski C francuski Kowalski C++ angielski Kowalski C++ francuski Kowalski Java angielski Kowalski Java francuski......... 3U]\F]\QGXEORZDQLDVLGDQ\FKVW\PUD]HPwielowarto- FLRZH ]DOH*QRFLIXQNF\MQH (ang. multivalued functional dependency MVD). -HGQHMZDUWRFLDWU\EXWXNazwisko_pracownika (np. Kowalski) w RJyOQRFLRGSRZLDGD]ELyUZDUWRFLDWU\EXWX-]\NBSURJUDPRZDQLD ^&&-DYD`RUD]]ELyUZDUWRFLDWU\EXWX-]\NBREF\ {angielski, francuski}.
3U]\NáDG 'ZLHZLHORZDUWRFLRZH]DOH*QRFLIXQNF\MQH Nazwisko_ pracownika -]\NBSURJUDPRZDQLD i Nazwisko_ pracownika -]\NBREF\ 'HILQLFMDZLHORZDUWRFLRZHM]DOH*QRFLIXQNF\MQHM 1LHFKEG]LHGDQDUHODFMDR o danym schemacie oraz niech X i Y R]QDF]DM SRG]ELRU\ DWU\EXWyZ VFKHPDWX UHODFML 5 0yZLP\ *H SRG]ELyU DWU\EXWyZ Y jest ZLHORZDUWRFLRZR IXQNF\MQLH ]DOH*Q\ od podzbioru X MH*HOL GOD GRZROQHM instancji relacji R o takim schemacie i dla dowolnej pary krotek t 1 i t 2 z relacji R WDNLFK*Ht 1 [X] = t 2 [X], istnieje para krotek t 3 i t 4 w relacji R*H t 3 [X] = t 4 [X] = t 1 [X] = t 2 [X] oraz t 3 [Y] = t 1 [Y] i t 3 [R-X-Y] = t 2 [R-X-Y] oraz t 4 [Y] = t 2 [Y] i t 4 [R-X-Y] = t 1 [R-X-Y].
W relacji PRACOWNICY podzbiór X = {Nazwisko_ SUDFRZQLND` < ^-]\NBSURJUDPRZDQLD` 5-X-Y = ^-]\NBREF\`. Parze krotek t 1 = (Kowalski, C, angielski) t 2 = (Kowalski, C++, francuski) odpowiada para krotek t 3 = (Kowalski, C, francuski) t 4 = (Kowalski, C++, angielski XWZRU]RQ\FKSU]H]]DPLDQZDUWRFLDWU\EXWX-]\NBREF\.
Definicja czwartej postaci normalnej - 4NF 1LHFK EG]LH GDQD UHODFMD R o danym schemacie oraz WU]\SDUDPLUR]áF]QHQLHSXVWHSRG]ELRU\DWU\EXWyZX, Y, Z WHJRVFKHPDWXWDNLH*HX Y Z = R i podzbiór Y MHVW QLHWU\ZLDOQLH ZLHORZDUWRFLRZR ]DOH*Q\ RG podzbioru X. Dana relacja jest w czwartej postaci normalnej (4NF) wtedy i tylko wtedy, gdy jest w trzeciej postaci QRUPDOQHM L MH*HOL Z GDQHM UHODFML Z\VWSXMH nietrywialna ZLHORZDUWRFLRZD ]DOH*QRü IXQNF\MQD zbioru atrybutów Y od dowolnego podzbioru atrybutów X, to podzbiór X PXVL]DZLHUDüNOXF]WHMUHODFML
Czy relacja PRACOWNICY jest w 4NF? NIE Dlaczego? Relacja PRACOWNICY QLHMHVWZ1)SRQLHZD* Z\VWSXMHZQLHM nietrywialna ZLHORZDUWRFLRZD]DOH*QRü IXQNF\MQDPLG]\X = {Nazwisko_pracownika} a Y = {-]\NBSURJUDPRZDQLD} i podzbiór X = {Nazwisko_ pracownika} nie zawiera klucza tej relacji, którym jest zbiór wszystkich atrybutów {Nazwisko_pracownika, -]\NBSURJUDPRZDQLD-]\NBREF\}.
&RQDOH*\]URELü" 'HNRPSRQRZDü Jak? 8VXZDMFZLHORNURWQHZLHORZDUWRFLRZH]DOH*QRFL funkcyjne $ % & 3U]HNV]WDáFHQLH GRF]ZDUWHM SRVWDFL QRUPDOQHM $ $ % & 8VXQLFLHZLHORNURWQ\FKZLHORZDUWRFLRZ\FK]DOH*QRFLIXQNF\MQ\FK
PRACOWNICY - =<.,B352*5$02:$1,$ - =<.,B2%&( 1D]ZLVNR-]\NBSURJUDPRZDQLD Kowalski C Kowalski C++ Kowalski Java...... 1D]ZLVNR-]\NBREF\ Kowalski angielski Kowalski frnacuski...... W relacji - =<.,B352*5$02:$1,$ Z\VWSXMH WU\ZLDOQDZLHORZDUWRFLRZD]DOH*QRüIXQNF\MQDPLG]\ X = {Nazwisko_pracownika} a Y = {-]\NBprogramowania}.
3LWDSRVWDüQRUPDOQDUHODFML 'HILQLFMD]DOH*QRFLSRáF]HQLRZHM -JD (od ang. join dependency) Niech R EG]LH UHODFM ]D A, B,..., Z EG dowolnymi podzbiorami zbiory atrybutów R. 0yZLP\*HR VSHáQLD-' * ( A, B,... Z ) wtedy i tylko wtedy, gdy R MHVWUyZQHSRáF]HQLX swoich projekcji na A, B,..., Z.
'HILQLFMDSLWHMSRVWDFLQRUPDOQHM - 5NF Dana relacja R MHVWZSLWHMSRVWDFLQRUPDOQHM 1)ZWHG\LW\ONRZWHG\JG\ND*GD ]DOH*QRüSRáF]HQLRZDMHVWLPSOLNRZDQD NOXF]DPLNDQG\GXMF\PLR
Podsumowanie: Proces normalizacji relacji, tj. bezstratnej dekompozycji MDNRQDU]G]LDSURMHNWRZDQLDED]GDQ\FK Dana jest pewna relacja R w pierwszej postaci QRUPDOQHMRUD]OLVWD]DOH*QRFLZL]yZFD, MVD, JDRGQRV]F\FKVLGRWHMUHODFML Systematycznie redukujemy R do zestawu mniejszych UHODFMLUyZQRZD*Q\FKZRNUHORQ\PVHQVLHUHODFMLR, MHGQDNZSHZLHQVSRVyEEDUG]LHMSR*GDQ\FKQL* R.
Podsumowanie - cd: Kolejny krok procesu redukcji (dekompozycji) polega na wykonaniu operacji projekcji relacji Z\QLNDMF\FK]SRSU]HGQLHJRNURNX :ND*G\PNURNXNRU]\VWDP\]RNUHORQ\FK ]DOH*QRFLZL]yZSU]\Z\ERU]HURG]DMX projekcji
Podsumowanie - zasady normalizacji :\NRQDMWDNLHSURMHNFMHZ\MFLRZHMUHODFMLZ1)DE\ Z\HOLPLQRZDüZV]\VWNLHQLHSHáQH]DOH*QRFLIXQNF\MQH 7HQNURNGD]HVWDZUHODFMLEGF\FKZGUXJLHMSRVWDFL normalnej - 2NF Wykonaj takie projekcje tych relacji w 2NF, które XVXQZV]HONLHSU]HFKRGQLH]DOH*QRFLIXQNF\MQH.URN ten da zestaw relacji w 3NF :\NRQDMWDNLHSURMHNFMHUHODFMLZ\MFLRZHMNWyUH Z\HOLPLQXMZV]\VWNLH]DOH*QRFLIXQNF\MQHNWyUHQLH Z\FKRG]]NOXF]DSRWHQFMDOQHJR.URNWHQGD]HVWDZ relacji postaci BCNF.
Podsumowanie - zasady normalizacji -cd Wykonaj takie projekcje tych relacji w BCNF, aby Z\HOLPLQRZDü ZV]\VWNLH ]DOH*QRFL wielowarto- FLRZH QLH EGFH MHGQRF]HQLH ]DOH*QRFLDPL IXQNF\MQ\PL OXE LQDF]HM NWyUH XVXQ ZV]HONLH ZLHORNURWQH ZLHORZDUWRFLRZH ]DOH*QRFL IXQNF\MQH Ten krok prowadzi do zestawu relacji w 4NF. :\NRQDMWDNLHSURMHNFMHW\FKUHODFMLZ1)NWyUHXVXQ ZV]\VWNLH]DOH*QRFLSRáF]HQLRZHQLHLPSOLNRZDQH kluczami potencjalnymi. Krok ten da zestaw relacji w 5NF.
Podsumowanie - cd: 0LG]\GHILQLFMDPL%&1)1)L1)Z\VWSXMH FLHNDZHSRGRELHVWZR Relacja R jest w postaci BCNF wtedy i tylko ZWHG\ JG\ ND*GD )' Z WHM UHODFML MHVW implikowana kluczami potencjalnymi z relacji R. Relacja R jest w postaci 4NF wtedy i tylko wtedy, JG\ ND*GD 09' Z WHM UHODFML MHVW LPSOLNRZDQD kluczami potencjalnymi z relacji R. Relacja R jest w postaci 5NF wtedy i tylko wtedy, JG\ ND*GD -' Z WHM UHODFML MHVW LPSOLNRZDQD kluczami potencjalnymi z relacji R.
Podsumowanie - cd: $QRPDOLH]ZL]DQH]DNWXDOL]DFMVZáDQLHW\PL WUXGQRFLDPLMDNLHVSUDZLDM]DOH*QRFLIXQNF\MQH ]DOH*QRFLZLHORZDUWRFLRZHF]\]DOH*QRFL SRáF]HQLRZHQLHLPSOLNRZDQHNOXF]DPLSRWHQFMDOQ\PL 2JyOQHFHOHSURFHVXQRUPDOL]DFMLVQDVWSXMFH eliminacja pewnych rodzajów redundancji, XQLNQLFLH QLHNWyU\FK DQRPDOLL ]ZL]DQ\FK ] DNWXDOL]DFM VNRQVWUXRZDQLH SURMHNWX EGFHJR ³GREU UHSUH]HQWDFMZLDWDU]HF]\ZLVWHJR XSURV]F]HQLH Z\PXV]DQLD SHZQ\FK ZL]yZ LQWHJUDOQRFL
Projektowanie schematów relacyjnych baz danych Normalizacja Zbyszko Królikowski Instytut Informatyki Politechniki 3R]QDVNLHM 60-3R]QDXO3LRWURZR e-mail: Zbyszko.Królikowski@cs.put.SR]QD.pl