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
VÉGE