25
2. fejezet: Relációs adatmodell, normálformák Kilián Imre (Markó Tamás) PTE, 2008.

2. fejezet: Relációs adatmodell, normálformák

  • Upload
    kuri

  • View
    29

  • Download
    0

Embed Size (px)

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 Presentation

Citation preview

Page 1: 2. fejezet: Relációs adatmodell, normálformák

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VÉGE