48
Adatbáziskezelés Adatbáziskezelés Normálformák Normálformák

Adatbáziskezelés

Embed Size (px)

DESCRIPTION

Adatbáziskezelés. Normálformák. Normálformák. Normálforma: az egyed szerkezeti állapota. Normálformák. Normálformák: 0.normáforma (0NF vagy N1NF) 1.normálforma (1NF) 2.normálforma (2NF) 3.normálforma (3NF). 0. normálforma. - PowerPoint PPT Presentation

Citation preview

Page 1: Adatbáziskezelés

Adatbáziskezelés Adatbáziskezelés

Normálformák Normálformák

Page 2: Adatbáziskezelés

Normálformák Normálformák

Normálforma: az egyed szerkezeti állapotaNormálforma: az egyed szerkezeti állapota

NÉVNÉV SZAKKÉPZETTSÉSZAKKÉPZETTSÉGG

SZÜLETÉSSZÜLETÉSI DÁTUMI DÁTUM

Nagy Nagy ZsoltZsolt

Gépészmérnők Gépészmérnők

közgazdászközgazdász52.02.1652.02.16

Kiss PálKiss Pál Lakatos Lakatos 58.08.0858.08.08

Page 3: Adatbáziskezelés

Normálformák Normálformák

Normálformák:Normálformák: 0.normáforma (0NF vagy N1NF)0.normáforma (0NF vagy N1NF) 1.normálforma (1NF)1.normálforma (1NF) 2.normálforma (2NF)2.normálforma (2NF) 3.normálforma (3NF)3.normálforma (3NF)

Page 4: Adatbáziskezelés

0. normálforma0. normálforma R reláció 0. normálformában van, ha létezik olyan R reláció 0. normálformában van, ha létezik olyan

másodlagos attribútum, amely a kulcstól funkcionálisan másodlagos attribútum, amely a kulcstól funkcionálisan függetlenfüggetlen

A táblázat ismétlödő ismereteket tartalmazA táblázat ismétlödő ismereteket tartalmaz

NÉVNÉV SZAKKÉPZETTSÉSZAKKÉPZETTSÉGG

SZÜLETÉSI SZÜLETÉSI DÁTUMDÁTUM

Nagy Nagy ZsoltZsolt

Gépészmérnők Gépészmérnők

közgazdászközgazdász52.02.1652.02.16

Kiss PálKiss Pál Lakatos Lakatos 58.08.0858.08.08

Page 5: Adatbáziskezelés

1. normálforma1. normálforma

R reláció 1. normálformájú, ha R reláció 1. normálformájú, ha minden másodlagos tulajdonság minden másodlagos tulajdonság funkiconálisan függ a kulcstólfunkiconálisan függ a kulcstól

A táblázat minden sorában pontosan A táblázat minden sorában pontosan egy attribútumérték vanegy attribútumérték van

Page 6: Adatbáziskezelés

Az előző példa 1NF-ben:Az előző példa 1NF-ben:

NÉVNÉV SZAKKÉPZETTSÉSZAKKÉPZETTSÉGG

SZÜLETÉSI SZÜLETÉSI DÁTUMDÁTUM

Nagy Nagy ZsoltZsolt

Gépészmérnők Gépészmérnők 52.02.1652.02.16

Nagy Nagy ZsoltZsolt

Közgazdász Közgazdász 52.02.1652.02.16

Kiss PálKiss Pál Lakatos Lakatos 58.08.0858.08.08

Page 7: Adatbáziskezelés

2. normálforma2. normálforma

R reláció 2. normálformájú, ha 1-es R reláció 2. normálformájú, ha 1-es normálformában van, és minden normálformában van, és minden másodlagos attribútuma a reláció másodlagos attribútuma a reláció bármely kulcsától teljesen függbármely kulcsától teljesen függ

Megjegyzések Megjegyzések Ha sz R kulcsa egyetlen attribútumból Ha sz R kulcsa egyetlen attribútumból

áll, akkor 2NF típusúáll, akkor 2NF típusú Ha nincsen R-ben másodlagos Ha nincsen R-ben másodlagos

attribútum, akkor 2NF típusúattribútum, akkor 2NF típusú

Page 8: Adatbáziskezelés

3. normálforma3. normálforma

R reláció 3. normálformájú, ha 2-es R reláció 3. normálformájú, ha 2-es normáformában van, és egyetlen normáformában van, és egyetlen másodlagos attribútuma sem függ másodlagos attribútuma sem függ tranzitíven valamely kulcstóltranzitíven valamely kulcstól

Page 9: Adatbáziskezelés

Az 1. normálformájú reláció Boyce-Az 1. normálformájú reláció Boyce-Codd normálformájú (BCNF típusú), Codd normálformájú (BCNF típusú), ha minden generátora egyben kulcs isha minden generátora egyben kulcs is

MegyjegyzésekMegyjegyzések Csupakulcs eseteCsupakulcs esete

ÜGYELET {ÜGYELET {ki,mikorki,mikor} } Több kulcsjelölt eseteTöbb kulcsjelölt esete

SZÁMLATÉTEL SZÁMLATÉTEL {{szlaszám,sorszámszlaszám,sorszám,cikkszám,mennyi},cikkszám,mennyi}

Page 10: Adatbáziskezelés

Normalizálás Normalizálás

Cél: a tárolási és karbantartási káosz Cél: a tárolási és karbantartási káosz megszüntetése – veszteségmentesenmegszüntetése – veszteségmentesen

Normalizálás – normálforma Normalizálás – normálforma dekompozíciódekompozíció A kedvezőtlen normálformájú egyedet A kedvezőtlen normálformájú egyedet

lebontjuk több kívánt normálformájú lebontjuk több kívánt normálformájú egyedre.egyedre.

Page 11: Adatbáziskezelés

Autósbolt Autósbolt

DátuDátum m

Alkatrész Alkatrész név név

AlkatrésAlkatrész kódz kód

Egységár Egységár DaraDarab b

88.02.088.02.033

KuplungKuplung TX5TX5 15001500 22

ElosztófejElosztófej XB-3XB-3 150150 66

KondenzátKondenzátoror

ET-2ET-2 3030 44

Fékhenger Fékhenger F-6F-6 120120 11

ÖszzértéÖszzértékk

41404140

Befizetés Befizetés 31403140

Page 12: Adatbáziskezelés

0. lépés0. lépés

Legyenek a tulajdonságok :Legyenek a tulajdonságok : DÁTDÁT ANÉVANÉV AKÓDAKÓD EÁREÁR DBDB ÖÉRTÖÉRT BEFIZBEFIZ

A következő relációt állítjuk össze:A következő relációt állítjuk össze: AUTÓSBOLT {DÁT,ANÉV,AKÓD,EÁR,DB,ÖÉRT,BEFIZ}AUTÓSBOLT {DÁT,ANÉV,AKÓD,EÁR,DB,ÖÉRT,BEFIZ}

Page 13: Adatbáziskezelés

Írjuk fel az adatbázist Írjuk fel az adatbázist 1NF-ben1NF-ben

DÁTDÁT ANÉVANÉV AKÓDAKÓD EÁREÁR DBDB ÖÉRTÖÉRT BEFIZBEFIZ

88.02.088.02.033

KuplungKuplung TX-5TX-5 15001500 22 41404140 31403140

88.02.088.02.033

ElosztófejElosztófej XB-3XB-3 150150 66 41404140 31403140

88.02.088.02.033

KondenzátoKondenzátorr

ET-2ET-2 3030 44 41404140 31403140

88.02.088.02.033

FékhengerFékhenger F-6F-6 120120 11 41404140 31403140

88.02.088.02.044

FékhengerFékhenger F-6F-6 120120 11 46204620 36203620

88.02.088.02.044

KuplungKuplung TX-5TX-5 15001500 33 46204620 36203620

88.02.088.02.055

ElosztófejElosztófej XB-3XB-3 150150 22 36003600 26002600

88.02.088.02.055

VízpumpaVízpumpa P-12P-12 11001100 33 36003600 26002600

Page 14: Adatbáziskezelés

Az AUTÓSBOLT –ban fennálló Az AUTÓSBOLT –ban fennálló anomáliákanomáliák

DÁTDÁT ANÉVANÉV AKÓDAKÓD EÁREÁR DBDB ÖÉRTÖÉRT BEFIZBEFIZ

88.02.088.02.033

KuplungKuplung TX-5TX-5 15001500 22 41404140 31403140

88.02.088.02.033

ElosztófejElosztófej XB-3XB-3 150150 66 41404140 31403140

88.02.088.02.033

KondenzátoKondenzátorr

ET-2ET-2 3030 44 41404140 31403140

88.02.088.02.033

FékhengerFékhenger F-6F-6 120120 11 41404140 31403140

88.02.088.02.044

FékhengerFékhenger F-6F-6 120120 11 46204620 36203620

88.02.088.02.044

KuplungKuplung TX-5TX-5 15001500 33 46204620 36203620

88.02.088.02.055

ElosztófejElosztófej XB-3XB-3 150150 22 36003600 26002600

88.02.088.02.055

VízpumpaVízpumpa P-12P-12 11001100 33 36003600 26002600

bővités

módosítás

tőrlés

Page 15: Adatbáziskezelés

Kulcs = {DÁT,AKÓD}Kulcs = {DÁT,AKÓD}

DÁT AKÓD

ÖÉRT BEFIZ ANÉV EÁR

DB

Page 16: Adatbáziskezelés

Tehát:Tehát:

A másodlagos attribútumok nemcsak A másodlagos attribútumok nemcsak a kulcstól függnek, hanem annak a kulcstól függnek, hanem annak részhalmazaitól is (részleges részhalmazaitól is (részleges függőségek)függőségek)

Van benne tranzitív függőségVan benne tranzitív függőség Az 1000 FT a függésAz 1000 FT a függés

Page 17: Adatbáziskezelés

A felbontás sémájaA felbontás sémája

DÁT AKÓD

DB

ÖÉRTBEFIZ

ANÉVEÁR

Page 18: Adatbáziskezelés

Felbontás Felbontás

DÁT

ÖÉRTBEFIZ

NAPIFORG

DÁTAKÓD

DB

ELADÁS

AKÓD

ANÉVEÁR

ALKATRÉSZ

Page 19: Adatbáziskezelés

NAPIFORG{NAPIFORG{DÁTDÁT,ÖÉRT,BEF,ÖÉRT,BEFIZ}IZ}

DÁTDÁT ÖÉRTÖÉRT BEFIZBEFIZ

88.02.0388.02.03 41404140 31403140

88.02.0488.02.04 46204620 36203620

88.02.0588.02.05 36003600 26002600

88.02.0688.02.06 46204620 36203620

Ez a táblázat 2NF-ben van, de nincsen 3NF-ben

Page 20: Adatbáziskezelés

Bontsuk fel két Bontsuk fel két táblázatratáblázatra

DÁT

ÖÉRT

ÁRBEVÉTEL

ÖÉRT

BEFIZ

BEFIZETÉS

Page 21: Adatbáziskezelés

ÁRBEVÉTEL{ÁRBEVÉTEL{DÁTDÁT,ÖÉRT},ÖÉRT}

DÁTDÁT ÖÉRTÖÉRT

88.02.0388.02.03 41404140

88.02.0488.02.04 46204620

88.02.0588.02.05 36003600

88.02.0688.02.06 46204620

Page 22: Adatbáziskezelés

BEFIZETÉS{BEFIZETÉS{ÖÉRTÖÉRT,BEFIZ,BEFIZ}}

ÖÉRTÖÉRT BEFIZBEFIZ

41404140 31403140

46204620 36203620

36003600 26002600

Page 23: Adatbáziskezelés

ALKATRÉSZ{ALKATRÉSZ{AKÓDAKÓD,ANÉV,E,ANÉV,EÁR}ÁR}

AKÓDAKÓD ANÉVANÉV EÁREÁR

TX-5TX-5 KUPLUNGKUPLUNG 15001500

XB-3XB-3 ELOSZTÓFEJELOSZTÓFEJ 150150

ET-2ET-2 KONDENZÁTOKONDENZÁTORR

3030

F-6F-6 FÉKHENGERFÉKHENGER 120120

P-12P-12 VÍZPUMPAVÍZPUMPA 11001100

Page 24: Adatbáziskezelés

ELADÁS{ELADÁS{DÁT,AKÓDDÁT,AKÓD,DB},DB}

DÁTDÁT AKÓDAKÓD DBDB

88.02.0388.02.03 TX-5TX-5 22

88.02.0388.02.03 XB-3XB-3 66

88.02.0388.02.03 ET-2ET-2 44

88.02.0388.02.03 F-6F-6 11

88.02.0488.02.04 F-6F-6 11

88.02.0488.02.04 TX-5TX-5 33

88.02.0588.02.05 XB-3XB-3 22

88.02.0588.02.05 P-12P-12 33

Page 25: Adatbáziskezelés

A négy táblázat mindegyike A négy táblázat mindegyike 3NF-ben van 3NF-ben van

Megmaradtak a funkcionális Megmaradtak a funkcionális függőségekfüggőségek

Megszüntettük a redundás Megszüntettük a redundás adattárolástadattárolást

Eltüntettük a karbantartási Eltüntettük a karbantartási anomáliákatanomáliákat

Page 26: Adatbáziskezelés

Az adatmodell Az adatmodell dokumentálásadokumentálása

Adatbázis neve, célja, környezeteAdatbázis neve, célja, környezete Diagram (a kapcsolatok ábrázolása )Diagram (a kapcsolatok ábrázolása ) Egyedek listája (miben mit tárolok)Egyedek listája (miben mit tárolok) Kapcsolatok felsorolásaKapcsolatok felsorolása RekordleírásRekordleírás

Minden tulajdonság szerepeMinden tulajdonság szerepe Opcionalitás, egyediségOpcionalitás, egyediség Értékek,korlátozásokÉrtékek,korlátozások

Tulajdonságok (származtatás)Tulajdonságok (származtatás)

Page 27: Adatbáziskezelés

Az ÉTTEREM adatbázis Az ÉTTEREM adatbázis normalizálásanormalizálása

A rendszer ismertetése:A rendszer ismertetése: Az étteremben különféle ételeket és Az étteremben különféle ételeket és

italokat rendelhetünk, amelyeket italokat rendelhetünk, amelyeket bizonyos nyersanyagokból recept bizonyos nyersanyagokból recept szerint készítenek elszerint készítenek el

A fogyasztás végén számla szerint A fogyasztás végén számla szerint fizetünkfizetünk

Page 28: Adatbáziskezelés

Az adatbázis létrehozásaAz adatbázis létrehozása

RECEPT{RECEPT{azonosítóazonosító,elnevezés,ár,tipu,elnevezés,ár,tipus, tipnév,s, tipnév,akódakód,név,egysár,mértegys, ,név,egysár,mértegys, szüksmenny}szüksmenny}

SZÁMLA{SZÁMLA{szlaszámszlaszám,dátum,,dátum,azonosítóazonosító, , elnevezés,ár,rendmenny,érték,végöselnevezés,ár,rendmenny,érték,végösszeg}szeg}

Page 29: Adatbáziskezelés

Lépések Lépések

Mintasorok készítéseMintasorok készítése Kulcsok meghatározásaKulcsok meghatározása normalizálásnormalizálás

Page 30: Adatbáziskezelés

RECEPT kulcsa =RECEPT kulcsa ={azonositó,akód}{azonositó,akód}

Igazak az alábbi funkcionális Igazak az alábbi funkcionális függőségekfüggőségek {azonosító,akód}{azonosító,akód}{szüksmenny}{szüksmenny} {azonosító}{azonosító}{elnevezés,ár,tipus,tipnév{elnevezés,ár,tipus,tipnév

}} {akód}{akód}{név,egysár,mértegys}{név,egysár,mértegys}

Page 31: Adatbáziskezelés

SZÁMLA kulcsa =SZÁMLA kulcsa ={szlaszám, azonosító}{szlaszám, azonosító}

Igazak az alábbi funkcionális Igazak az alábbi funkcionális függőségekfüggőségek {szlaszám,azonosító}{szlaszám,azonosító}{rendmenny}{rendmenny} {szlaszám}{szlaszám}{dátum,végösszeg}{dátum,végösszeg} {azonosító}{azonosító}{elnevezés,ár}{elnevezés,ár}

Page 32: Adatbáziskezelés

Megjegyzések Megjegyzések

érték = ár * rendmennyérték = ár * rendmenny Számolható, nem tároljukSzámolható, nem tároljuk

végösszeg =végösszeg =ΣΣ érték érték Számlaszámra összegezveSzámlaszámra összegezve Számolható, de kerekítve tároljuk a Számolható, de kerekítve tároljuk a

pénzügyi mozgásokatpénzügyi mozgásokat

Page 33: Adatbáziskezelés

A teljes függőségek A teljes függőségek alapjánalapján

A RECEPT 3 relációra bomlikA RECEPT 3 relációra bomlik

A SZÁMLA 3 relációra bomlikA SZÁMLA 3 relációra bomlik

1 reláció közös, hoszen 1:1 1 reláció közös, hoszen 1:1 kapcsolatban állnak egymássalkapcsolatban állnak egymással

Page 34: Adatbáziskezelés

A relációkA relációk

ÉTLAP{ÉTLAP{azonosítóazonosító,elnevezés,ár,tipus, ,elnevezés,ár,tipus, tipnév}tipnév}

ANYAG{ANYAG{akódakód,név,egysár,mértegys},név,egysár,mértegys} RECEPT{RECEPT{azonosító,akódazonosító,akód,szüksmenny},szüksmenny} SZÁMLAFEJ{SZÁMLAFEJ{szlaszámszlaszám,dátum,végösszeg,dátum,végösszeg

}} ÉTLAP{ÉTLAP{aznosítóaznosító,elnevezés,ár},elnevezés,ár} SZÁMLATÉTEL{SZÁMLATÉTEL{szlaszám,azonosítószlaszám,azonosító, ,

rendmenny}rendmenny}

Page 35: Adatbáziskezelés

Ezzel 2NF –ra hoztunk mindegyik táblátEzzel 2NF –ra hoztunk mindegyik táblát De van tranzitív függés az ÉTLAP –ban:De van tranzitív függés az ÉTLAP –ban:

{azonosító}{azonosító}{tipus} és {tipus} és {tipus}{tipus}{tipusnév}{tipusnév}

{azonosító}{azonosító}{tipnév}{tipnév} A többi tábla 3NF –ban van.A többi tábla 3NF –ban van.

Page 36: Adatbáziskezelés

A tranzitív függőség A tranzitív függőség megszüntetésemegszüntetése

ÉTLAP {ÉTLAP {azonosítóazonosító, elnevezés, ár, , elnevezés, ár, tipus}tipus}

FAJTA {FAJTA {tipustipus,tipnév},tipnév}

Szótárfájl

Page 37: Adatbáziskezelés

Kapcsolati ábraKapcsolati ábra

Minden nyíl az N:1 Minden nyíl az N:1 kapcsolatot jelentikapcsolatot jelenti

Page 38: Adatbáziskezelés

tipus

FAJTA

tipnév

akód

ANYAG

névegysár

mértegys

azonosítóakód

RECEPT

szüksmenny

szlaszámazonosító

SZÁMLATÉTEL

rendmenny

azonosító

ÉTLAP

elnevezésár

tipus

szlaszám

SZÁMLAFEJ

dátumvégösszeg

Page 39: Adatbáziskezelés

Technikai adatokTechnikai adatok

Az ÉTLAP Az ÉTLAP vanvan logikai tipusú logikai tipusú tulajdonságatulajdonsága

A SZÁMLAFEJ A SZÁMLAFEJ kifizetkifizet logikai tipusú logikai tipusú tulajdonságatulajdonsága

Page 40: Adatbáziskezelés

Bővithetőség Bővithetőség

BESZERZÉS{BESZERZÉS{akód,dátumakód,dátum,beár,menn,beár,menny}y}

ANYAG{ANYAG{akódakód,név,egysár,mértegys, ,név,egysár,mértegys, készlet}készlet}

SZEMÉLY{SZEMÉLY{kódszámkódszám,neve,poszt},neve,poszt} BEOSZTÁS{BEOSZTÁS{posztposzt,jelentés},jelentés} CSAPAT{CSAPAT{dátum,kódszámdátum,kódszám}}

Page 41: Adatbáziskezelés

BővithetőségBővithetőség

{dátum,sorszám}{dátum,sorszám}{kódszám}{kódszám} Ahol a sorszám az asztal egyedi Ahol a sorszám az asztal egyedi

azonosítójaazonosítója

Nem igaz viszont, hogy a dátum és a Nem igaz viszont, hogy a dátum és a kódszám meghatározná a sorszámotkódszám meghatározná a sorszámot

Page 42: Adatbáziskezelés

Az új egyedekAz új egyedek

ASZTAL{ASZTAL{sorszámsorszám,hányfős},hányfős} KISZOLGÁL{KISZOLGÁL{dátum,sorszámdátum,sorszám,kódszá,kódszá

m}m}

Ezért a számlafej így módosulEzért a számlafej így módosul SZÁMLAFEJ{SZÁMLAFEJ{szlaszámszlaszám,dátum,végöss,dátum,végöss

zeg,sorszám}zeg,sorszám}

Page 43: Adatbáziskezelés

Áttekintő kapcsolati ábraÁttekintő kapcsolati ábraFAJTA

BEOSZTSZEMÉLYSZFEJSZTÉTEL

CSAPATKISZOLGASZTAL

ÉTLAP RECEPT ANYAG BESZEREZ

Page 44: Adatbáziskezelés

A RELÁCIÓS A RELÁCIÓS ALGEBRAALGEBRA

Page 45: Adatbáziskezelés

A relációs adatbázis kezelő nyelvek A relációs adatbázis kezelő nyelvek lekérdezési lehetőségelekérdezési lehetősége

A relációs algebra műveletein alapszikA relációs algebra műveletein alapszik Unió Unió KülönbségKülönbség Descartes szorzatDescartes szorzat ProjekcióProjekció Szelekció Szelekció HányadosHányados MetszetMetszet ÖsszekapcsolásÖsszekapcsolás Természetes összekapcsolásTermészetes összekapcsolás

Page 46: Adatbáziskezelés

MűveletekMűveletek Unió Unió (jele : (jele : )) Legyen R és S két n-ed fokú reláció Legyen R és S két n-ed fokú reláció uniójuk az R uniójuk az R S szintén n-ed fokú reláció S szintén n-ed fokú reláció Sorai vagy az R –nek vagy az S –nek vagy Sorai vagy az R –nek vagy az S –nek vagy

mindkettőnek elemeimindkettőnek elemei

R A B Ca b cb d ef c b

S D E Fb d e

RS .a b cb d ef c b

=

Page 47: Adatbáziskezelés

MűveletekMűveletek Külünbség Külünbség (jele : - )(jele : - ) Legyen R és S két n-ed fokú reláció Legyen R és S két n-ed fokú reláció R - S különbsége szintén n-ed fokú relációR - S különbsége szintén n-ed fokú reláció Sorai vagy az R –nek elemei de az S –nek nemSorai vagy az R –nek elemei de az S –nek nem

R A B Ca b cb d ef c b

S D E Fb d e

R-S .a b cf c b

- =

Page 48: Adatbáziskezelés

MűveletekMűveletek Descartes –szorzat Descartes –szorzat (jele: x )(jele: x ) Legyen R n –ed , S m –ed fokú relációLegyen R n –ed , S m –ed fokú reláció Descartes-szorzatuk az az (n+m) –ed fokú RxSDescartes-szorzatuk az az (n+m) –ed fokú RxS Minden elem első részét az R –ből, második Minden elem első részét az R –ből, második

részét pedig az S –ből vesszükrészét pedig az S –ből vesszük

R A B Ca b cb d ef c a

S D E Fb d eF c b

RxS A B C D E F a b c b d e a b c f c b b d e b d eb d e f c bf c a b d ef c a f c b

x =