Adatbáziskezelés
-
Upload
ivory-conner -
Category
Documents
-
view
37 -
download
2
description
Transcript of Adatbáziskezelés
Adatbáziskezelés Adatbáziskezelés
Normálformák Normálformák
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
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)
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
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
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
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ú
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
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}
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.
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
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}
Í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
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
Kulcs = {DÁT,AKÓD}Kulcs = {DÁT,AKÓD}
DÁT AKÓD
ÖÉRT BEFIZ ANÉV EÁR
DB
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
A felbontás sémájaA felbontás sémája
DÁT AKÓD
DB
ÖÉRTBEFIZ
ANÉVEÁR
Felbontás Felbontás
DÁT
ÖÉRTBEFIZ
NAPIFORG
DÁTAKÓD
DB
ELADÁS
AKÓD
ANÉVEÁR
ALKATRÉSZ
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
Bontsuk fel két Bontsuk fel két táblázatratáblázatra
DÁT
ÖÉRT
ÁRBEVÉTEL
ÖÉRT
BEFIZ
BEFIZETÉ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
BEFIZETÉS{BEFIZETÉS{ÖÉRTÖÉRT,BEFIZ,BEFIZ}}
ÖÉRTÖÉRT BEFIZBEFIZ
41404140 31403140
46204620 36203620
36003600 26002600
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
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
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
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)
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
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}
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
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}
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}
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
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
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}
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.
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
Kapcsolati ábraKapcsolati ábra
Minden nyíl az N:1 Minden nyíl az N:1 kapcsolatot jelentikapcsolatot jelenti
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
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
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}}
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
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}
Áttekintő kapcsolati ábraÁttekintő kapcsolati ábraFAJTA
BEOSZTSZEMÉLYSZFEJSZTÉTEL
CSAPATKISZOLGASZTAL
ÉTLAP RECEPT ANYAG BESZEREZ
A RELÁCIÓS A RELÁCIÓS ALGEBRAALGEBRA
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
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
=
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
- =
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 =