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
2. fejezet:Relációs adatmodell,
normálformák
Kilián Imre (Markó Tamás)
PTE, 2008.
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ó
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)
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:
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
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
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
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)
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
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!
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)
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)
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)
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
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.
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ó!
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
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.
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.
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
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
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
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
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
VÉGE