2. fejezet: relációs adatmodell, normálformák
DESCRIPTION
2. fejezet: Relációs adatmodell, normálformák. Kilián Imre ( Markó Tamás ) PTE, 200 8. Történeti adalékok. A relációs adatmodell elméletét Codd cikke alapozta meg (1970) Elterjedésében nagy szerepet játszott az Ashton-Tate nevű cég által PC-kre kifejlesztett dBase nevű adatbáziskezelő - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/1.jpg)
2. fejezet:Relációs adatmodell,
normálformák
Kilián Imre (Markó Tamás)
PTE, 2008.
![Page 2: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/2.jpg)
Történeti adalékok
• A relációs adatmodell elméletét Codd cikke alapozta meg (1970)
• Elterjedésében nagy szerepet játszott az Ashton-Tate nevű cég által PC-kre kifejlesztett dBase nevű adatbáziskezelő
• Jelenleg gyakorlatilag egyeduralkodó
![Page 3: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/3.jpg)
Relációs adatmodell
• Az egyedek kapcsolata nem épül bele az adatmodellbe
• A hangsúly a tulajdonságok megadásán van
• Az egyedet táblázattal adjuk meg– az oszlopok a tulajdonságok (attribútumok)– a sorok az egyed előfordulásai (rekordok)
![Page 4: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/4.jpg)
Példa a relációs adatmodellre
NÉV KÉPZETTSÉG FIZETÉSKovács Pál esztergályos 80.000Nagy Jenő raktáros 120.000Tóth Edit titkárnő 95.000Varga István könyvelő 157.000
A DOLGOZÓ tábla:
![Page 5: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/5.jpg)
A relációs adatmodell előnyei
• Egyszerűség– a felhasználó számára könnyen érthető– egyszerűen programozható
• Precíz matematikai háttérrel rendelkezik
![Page 6: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/6.jpg)
A relációs adatmodell hátrányai
• Körülményes a táblák sorainak egymáshoz való hasonlítása– Ilyen az időben változó adatok kezelése (pl. a
dolgozók egyes időszakokban állandó alapfizetése).
• A különböző táblákban lévő, de összetartozó adatokat minden egyes felhasználáskor össze kell kapcsolni
![Page 7: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/7.jpg)
A Descartes-szorzat
• Direkt szorzatnak is hívják
• A1, A2, … An adott halmazok
• A1A2 … An = = {(a1, a2, … an)a1A1, a2A2, … anAn}
• A Descartes-szorzat rendezett elem-n-esek halmaza: A1A2A2A1
• Az elem-n-esek neve angolul tuple
![Page 8: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/8.jpg)
A reláció 1.
• R A1A2 … An reláció
• n változós, n elemű, n-ed fokú reláció a reláció minden eleme különböző a reláció elemeinek nincs meghatározott
sorrendje (nincs egy elem után következő elem)
![Page 9: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/9.jpg)
A reláció 2.
• Az A1, A2, … An halmazok a reláció tartományai (domain)
• R elemeinek száma (a tábla sorainak száma) a reláció számossága
• reláció = tábla = egyedtípus• domain = oszlop = mező = tulajdonság
(attribútum)• a reláció eleme = sor = egyed-előfordulás = rekord
![Page 10: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/10.jpg)
A kapcsolat lehetősége relációs adatbázisban: közös oszlopok
FO_KÓD FO_NÉV FO_KOD O_KOD O_NÉV. . . . . .
GFO GazdaságiFőosztály
GFO PÜ Pénzügy
KER KereskedelmiFőosztály
. . .
. . . GFO KÖ Könyvelés
. . .
A kapcsolat maga nem tárolódik, azt minden lekérdezésnél külön meg kell adni!
![Page 11: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/11.jpg)
Kulcs• Az attribútumok egy részhalmaza (egy vagy több
tulajdonság), ami – egyértelműen meghatározza az egyed egy előfordulását– ha bármelyik tulajdonságot elhagyjuk belőle, az
egyértelműség már nem teljesül
• A kulcs a tábla minden sorára különböző• Egy táblának több kulcsa is lehet• Egyszerű kulcs: egy tulajdonságból áll• Összetett kulcs: több tulajdonságból áll• Elsődleges kulcsnak is hívják (primary key,
Primärschlüssel)
![Page 12: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/12.jpg)
Elsődleges és másodlagos attribútumok
• Elsődleges attribútum: szerepel a kulcsban (része a kulcsnak)
• Másodlagos attribútum: nem szerepel kulcsban (nem része a kulcsnak)
![Page 13: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/13.jpg)
Külső kulcs• Az attribútumok egy részhalmaza (egy vagy több
tulajdonság), ami egy másik táblában kulcsot alkot• Alapvetően táblák összekapcsolására szolgál• A külső kulcs értéke lehet azonos is a tábla különböző
soraiban• Egy táblának több másik táblához is lehet külső kulcsa• Egy táblának egy másik táblához több külső kulcsa is
lehet• Egy táblának saját magához is lehet külső kulcsa• Idegen kulcsnak is hívják (foreign key, Fremdschlüssel)
![Page 14: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/14.jpg)
Funkcionális függőség
• Az R reláció B1, …, Bm attribútumai funkcionálisan függenek a C1, …, Ck attribútumoktól, ha valahányszor megegyezik két sor a C1, …, Ck helyeken (oszlopokban), mindannyiszor megegyezik a B1, …, Bm helyeken is.
• Jelölése: C1, …, Ck B1, …, Bm
• A kulcstól a másodlagos attribútumok funkcionálisan függenek
![Page 15: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/15.jpg)
Teljes függőség• Az R reláció B1, …, Bm attribútumai
teljesen függenek a C1, …, Ck attribútumoktól, ha – funkcionálisan függenek tőlük
– de ha csak egyet is elhagyunk a C1, …, Ck attribútumok közül, a funkcionális függőség már nem teljesül
• Részleges függőség: olyan funkcionális függőség, amely nem teljes.
![Page 16: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/16.jpg)
Normálformák
• Az adatbázis szerkezetének “tisztaságát”, szabályosságát adják meg
• Többfajta normálforma is létezik– A következőkben felsorolt normálformákon
kívül is vannak egyéb normálformák
• Nem biztos, hogy a magasabb rendű normálformának eleget tevő adatbázis jobban használható!
![Page 17: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/17.jpg)
Az első normálforma 1.
• Az R reláció első normálformában (1NF) van, ha minden oszlopában pontosan egy attribútumérték áll.– Másként: egy mező sem tartalmaz két,
önmagában is értelmes értéket
• A relációs adatbáziskezelő programokkal nem is lehet olyan adatbázist definiálni, ami megsértené az első normálformát
![Page 18: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/18.jpg)
Az első normálforma 2.Nincs első normálformában:NÉV SZAKKÉPZETTSÉGKovács János tanár, közgazdász
Első normálformában van:NÉV SZAKKÉPZETTSÉGKovács János tanárKovács János közgazdász
Az első normálformára hozás úgy is megoldható, hogy aSZAKKÉPZETTSÉG oszlop helyett egy külön táblát használunk, ami 1:N kapcsolatban van az eredetivel.
![Page 19: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/19.jpg)
A második normálforma
• Az R reláció második normálformában (2NF) van, ha– első normálformában van és– minden másodlagos attribútum teljesen függ a
kulcstól
• Ha egy reláció első normálformában van és a kulcs egyszerű, akkor a reláció második normálformában is van.
![Page 20: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/20.jpg)
Problémák a 2NF hiánya esetén
• Közös néven: változtatási anomáliák• Gyakorlati szempontból ezek rejtett hibalehetőségek• Törlési anomália: olyan információt is
elveszíthetünk, amit nem akartunk törölni• Módosítási anomália: bizonyos adatmódosításokat
több rekordban is el kell végezni• Beírási anomália: nem lehet új rekordot létrehozni,
ha abban bizonyos mezőknek még nincs értéke
![Page 21: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/21.jpg)
Példa: függőségi viszonyok az ELADÁS táblában (nem 2NF)
Szla_szám
Term_kód
Term_értékmennyiség
Term_név
Egys_ár
Szla_össz
Szla_keltVevő_név
Vevő_cím
Forrás: Szelezsán J: Adatbázisok
![Page 22: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/22.jpg)
A 2NF elérése a tábla szétdarabolásával
Szla_szám
Term_kód
Term_érték
mennyiségTerm_név Egys_ár
Szla_össz
Szla_kelt
Vevő_név
Vevő_cím
Term_kód
Szla_szám
![Page 23: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/23.jpg)
A harmadik normálforma
• Az R reláció harmadik normálformában (3NF) van, ha– második normálformában van és– a másodlagos attribútumok között nincs
funkcionális függés
![Page 24: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/24.jpg)
A 3NF elérése a tábla szétdarabolásával
Szla_össz
Szla_kelt
Vevő_név
Vevő_cím
Szla_szám
Szla_összSzla_kelt Vevő_névSzla_szám
Vevő_név Vevő_cím
![Page 25: 2. fejezet: Relációs adatmodell, normálformák](https://reader036.vdocuments.mx/reader036/viewer/2022062519/56814d4f550346895dba7fce/html5/thumbnails/25.jpg)
VÉGE