250 likes | 403 Views
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ő
E N D
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 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 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. Az első normálformára hozás úgy is megoldható, hogy a SZAKKÉ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_kelt Vevő_név Szla_szám Vevő_cím Term_kód Szla_össz Term_név mennyiség Term_érték Egys_ár Forrás: Szelezsán J: Adatbázisok
A 2NF elérése a tábla szétdarabolásával Szla_szám Szla_össz Vevő_név Szla_szám Term_kód Szla_kelt Vevő_cím mennyiség Term_kód Term_név Egys_ár Term_érté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
A 3NF elérése a tábla szétdarabolásával Szla_szám Szla_szám Szla_kelt Szla_össz Vevő_név Szla_kelt Szla_össz Vevő_név Vevő_név Vevő_cím Vevő_cím