3URMHNWRZDQLHVFKHPDWyZ UHODF\MQ\FKED]GDQ\FK± 1RUPDOL]DFMD. =E\V]NR.UyOLNRZVNL ,QVW\WXW,QIRUPDW\NL3ROLWHFKQLNL3R]QDVNLHM 3R]QDXO3LRWURZR

Podobne dokumenty
Pożyczkobiorcy. Anomalia modyfikacji: Anomalia usuwania: Konta_pożyczkowe. Anomalia wstawiania: Przykłady anomalii. Pożyczki.

Jak wiernie odzwierciedlić świat i zachować występujące w nim zależności? Jak implementacja fizyczna zmienia model logiczny?

PLAN WYKŁADU BAZY DANYCH ZALEŻNOŚCI FUNKCYJNE

Normalizacja baz danych

Normalizacja schematów logicznych relacji

WYKŁAD 1. Wprowadzenie do problematyki baz danych

BAZY DANYCH. Anomalie. Rozkład relacji i normalizacja. Wady redundancji

Pojęcie zależności funkcyjnej

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

Projektowanie relacyjnych baz danych

Bazy danych i usługi sieciowe

Normalizacja. Pojęcie klucza. Cel normalizacji

Normalizacja relacyjnych baz danych. Sebastian Ernst

Bazy Danych i Usługi Sieciowe

Pierwsza postać normalna

Cel normalizacji. Tadeusz Pankowski

Postać normalna Boyce-Codd (BCNF)

BAZY DANYCH NORMALIZACJA BAZ DANYCH. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Plan wykładu. Problemy w bazie danych. Problemy w bazie danych BAZY DANYCH. Problemy w bazie danych Przykład sprowadzenia nieznormalizowanej SQL

Pierwsza postać normalna

Systemy baz danych. Notatki z wykładu

BAZY DANYCH NORMALIZACJA BAZ DANYCH. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Bazy danych 3. Normalizacja baz danych

Bazy danych 3. Normalizacja baz danych (c.d.)

Wykład II Encja, atrybuty, klucze Związki encji. Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Technologie baz danych

BAZY DANYCH model relacyjny. Opracował: dr inż. Piotr Suchomski

Zależności funkcyjne

Bazy danych. Andrzej Łachwa, UJ, /15

Projektowanie baz danych

Plan wykładu. Problemy w bazie danych. Problemy w bazie danych BAZY DANYCH

1 Przygotował: mgr inż. Maciej Lasota

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.

Tadeusz Pankowski Definicja. Definicja

Zależności funkcyjne c.d.

Bazy danych Teoria projektowania relacyjnych baz danych. Wykła. Wykład dla studentów matematyki

Normalizacja. Wzorce projektowe semantyka atrybutów relacji. Ocena poprawności schematu

Relacyjny model baz danych, model związków encji, normalizacje

Relacyjne bazy danych. Normalizacja i problem nadmierności danych.

Projektowanie Systemów Informacyjnych

Bazy danych. Andrzej Łachwa, UJ, /15

Normalizacja relacji

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Technologia informacyjna

KaŜdemu atrybutowi A przyporządkowana jest dziedzina Dom(A), czyli zbiór dopuszczalnych wartości.

Zależności funkcyjne pierwotne i wtórne

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

1 Wstęp do modelu relacyjnego

Relacyjny model danych

Normalizacja baz danych

Bazy danych 2. Zależności funkcyjne Normalizacja baz danych

Konstruowanie Baz Danych Wprowadzenie do projektowania. Normalizacja

Przykłady normalizacji

Związki pomiędzy tabelami

Bazy danych 3. Zależności funkcyjne Normalizacja relacyjnych baz danych

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

SQL Structured Query Language

Normalizacja 1NF, 2NF, 3NF, BCNF, 4NF, 5NF

Literatura. Bazy danych s.1-1

Bazy Danych i Usługi Sieciowe

o partnerstwie publiczno-prywatnym.

Normalizacja schematu bazy danych. Radosław Fijołek Paweł Romanowski Paweł Trzos

Relacyjne Bazy Danych Andrzej M. Borzyszkowski. Projekt bazy danych normalizacja. PJATK/ Gdańsk. Dwie metodologie. Formalne zasady projektowe

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Teoretyczne podstawy informatyki

Bazy danych Projektowanie i implementacja relacyjnych baz danych

Program nauczania. Systemy baz danych. technik informatyk

Baza danych. Baza danych to:

Bazy danych 1. Wykład 6 Metodologia projektowania baz danych. (projektowanie logiczne - Normalizacja)

Bazy danych. Algebra relacji

Normalizacja tabel POSTACIE NORMALNE TABEL

Normalizacja Projektowanie Diagramy encji. Bazy Danych i Systemy informacyjne Wykład 7. Piotr Syga

Teoretyczne podstawy informatyki

S y s t e m y. B a z D a n y c h

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Model relacyjny. Wykład II

Utwórz klucz podstawowy relacji na podstawie unikalnego identyfikatora encji. podstawie kluczy podstawowych wiązanych relacji.

Projektowanie bazy danych przykład

Chemoinformatyczne bazy danych - Wprowadzenie do technologii baz danych. Andrzej Bąk

Relacyjny model danych

W poniŝszej tabeli zestawiono charakterystyki poszczególnych postaci normalnych bazy.

Baza danych. Modele danych

Piotr 7U\EDáD. Leasing 3RUDGQLN3U]HGVLELRU \

PODSTAWY BAZ DANYCH 2009/ / Notatki do wykładu "Podstawy baz danych"

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

Autor: Joanna Karwowska

Wykład 2. Relacyjny model danych

Normalizacja schematów relacji

Bazy danych. Plan wykáadu. Zale*noci funkcyjne. Wykáad 4: Relacyjny model danych - zale*noci funkcyjne. A B

Wstęp do relacyjnych baz danych. Jan Bartoszek

Bazy danych w sterowaniu

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

Bazy danych wykład trzeci. trzeci Modelowanie schematu bazy danych 1 / 40

Transformacja modelu EER do postaci relacyjnego modelu danych. Zbyszko Królikowski

Wykład XII. optymalizacja w relacyjnych bazach danych

1. PARAMETRY TECHNICZNE WAG NAJAZDOWYCH.

Technologia Informacyjna

Transkrypt:

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