A RELÁCIÓS ADATMODELL
A relációs adatmodell definíciója, főbb jellemzői
A relációs adatmodell tulajdonképpen táblázatokkal, táblákkal dolgozik.
A táblázat oszlopai a tulajdonságok, vagy attribútumok.
A reláció definíciója az adatbázis szempontjából:
Legyenek adottak az alábbi halmazok:
Vezetéknév =
Keresztnév =
Dátum =
Település =
a vezetéknév halmaz az ö 17217t1924r sszes vezetéknevet, a keresztnév halmaz az összes keresztnevet, a dátum halmaz a dátumokat, a település halmaz a magyarországi településeket tartalmazza,
Minden halmazból vegyünk egy elemet, és írjuk ezeket egy meghatározott sorrendben egymás mellé:
Aba Tamás 70.01.01 Sarkad
Varga Péter 27.01.03 Pécs
Varga Károly 88.01.18 Battonya
Nagy Ferenc 76.10.12 Budapest
ha a négy halmazból az adatokat valamilyen előre meghatározott szempont szerint válogatjuk össze (pl. egy iskola tanulói), akkor így egy relációt hoztunk létre,
a relációnak adhatjuk pl. a Nyilvántartás nevet, az adatokhoz pedig oszlopnévnek írhatjuk a halmazok neveit; ezek lesznek a tulajdonságok,
a tulajdonságokat egy adott reláció esetén el kell látni konkrét tartalommal (pl. a dátum oszlop a születési dátumokat jelentheti, de jelenthet mást is),
A reláció halmazelméleti definíciója:
Legyenek D1, D2, ..., Dn halmazok:
A halmazok Descartes - szorzatán (direkt - szorzatán) azt a D halmazt értjük, amelynek elemei az összes (v1, v2, ..., vn) "érték n-esek", ahol: v1 D1, v2 D2, ..., vn Dn
Ekkor a szorzathalmaz minden eleme maga is egy halmaz, azaz a szorzathalmaz egy halmazrendszer.
Az adott halmazok elemeit minden lehetséges módon kombinálni kell, ekkor kapjuk a direkt - szorzatot.
A Descartes - szorzat egy R részhalmazát relációnak nevezzük.
A D1, D2, ..., Dn halmazokat a reláció tartományainak (domain), a reláció egy elemét "n-esnek" (tuple) nevezzük.
Szokás a reláció elemeit rekordnak is hívni.
A tartományokból képezzük egy adatbázis konkrét attribútumait, tulajdonságait.
A megfelelő tartomány egy attribútum értékkészlete.
A továbbiakban az attribútumokat a következőképpen jelölhetjük: A = .
Az attribútumok (oszlopok) számát az R reláció fokának, a rekordok (sorok) számát a reláció számosságának hívjuk.
Az adatbázis rövidített jelölése: R(A1, ..., An),
tehát pl. Nyilvántartás(Vezetéknév,
Keresztnév, Születési dátum, Lakóhely).
A fenti jelölési formát a reláció sémájának, a kitöltött adattáblát az adott séma egy értékének nevezzük.
Reláció, tábla, adatbázis:
A relációs adatbázisok általában nem egyetlen relációból (táblából) állnak, hanem több tábla alkot egy adatbázist.
Azt, hogy egy adatbázist hány táblára bontunk szét már tervezéskor el kell dönteni.
A táblák kialakításánál az attribútumok közötti kapcsolat jelentősen befolyásolja, hogy milyen oszlopok kerülnek egy-egy táblába, hiszen ha egy adatbázis egymástól független táblákból áll, akkor nem tudunk vele műveleteket végezni.
Például legyen az alábbi két tábla:
DOLGOZÓ |
PRÉMIUM | ||||
Azonosító |
Név |
Fizetés |
Összeg |
Dátum |
|
Kovács Péter |
38 000 Ft |
|
17 200 Ft | ||
Nagy József |
52 000 Ft |
22 000 Ft | |||
Kiss Antal |
45 600 Ft |
9 600 Ft | |||
35 500 Ft | |||||
ekkor a második tábla semmilyen konkrét információval nem szolgál.
Ha a második táblát kiegészítjük a dolgozó azonosítójával, akkor már megtudhatjuk, hogy egy adott dolgozó mennyi prémiumot kapott.
Ekkor a táblák a következő mezőket tartalmazzák:
DOLGOZÓ |
PRÉMIUM |
|
Azonosító |
Azonosító |
|
Név |
Összeg |
|
Fizetés |
Dátum |
a két tábla tehát a dolgozó azonosítóján keresztül kapcsolódik egymáshoz.
A két reláció a következő:
DOLGOZÓ(Azonosító, Név, Fizetés), PRÉMIUM(Azonosító,
Összeg, Dátum).
A különböző táblákat tehát az azonos attribútumokkal kötjük össze; az ilyen attribútumokat kulcsmezőnek vagy kapcsolómezőnek hívjuk.
Egyedtípus, reláció:
A korábbiak alapján tudjuk, hogy egy egyedet a tulajdonságaival adunk meg.
Ha adott szempontok szerint létrehozunk egy relációt akkor ez éppen egy egyedtípust ad meg, illetve az egyedtípus egy relációt jelent.
A hálós és hierarchikus modellben settípusnak hívtunk két egyedtípust a köztük lévő kapcsolattal együtt, azaz pontosan rögzítettük az egyes egyedelőfordulások közötti kapcsolatot.
A relációs modellben is kapcsolatot definiálunk két tábla között, de a táblák egyes soraihoz nem rendeljük hozzá konkrétan egy másik tábla sorait.
Más megfogalmazásban a hálós adatmodellben ún. statikus, míg a relációs modellben dinamikus kapcsolat van.
A relációs adatbázis belső szerkezete
A reláció tulajdonképpen egy adatok közötti struktúra.
Az attribútumok vizsgálatakor megállapíthatjuk, hogy lesznek olyanok, amelyek kitüntetett szerepet kapnak.
Az attribútumok között lehet valamilyen kapcsolat is.
A reláció kulcsai:
Az A attribútumhalmaz egy K részhalmazát kulcsnak nevezzük, ha:
a K értékei az R reláció minden egyes sorát egyértelműen meghatározzák,
és ha egyetlen attribútumot is elhagyunk K-ból, akkor ez már nem teljesül.
A kulcs tehát egy olyan attribútum csoport, amelyen az attribútumok együtt tekintett értékei egymástól különböznek, azaz nincs olyan két sor, amelyekben a kulcsban szereplő attribútumok értékei azonosak volnának.
Szokás ezt a K halmazt minimális kulcsnak, illetve egy olyan K' halmazt amelynek a K részhalmaza és K' is kulcs szuperkulcsnak nevezni.
Ha a kulcs egyetlen attribútumból áll, akkor egyszerűnek nevezzük, ha nem akkor összetettnek.
Nyilvánvaló, hogy egy relációban mindig van kulcs; szélsőséges esetben ez lehet a teljes attribútumhalmaz is.
Egy relációnak több kulcsa is lehet.
Azokat az attribútumokat, amelyek legalább egy kulcsban szerepelnek, elsődlegesnek, a többieket másodlagosnak hívjuk.
A külső kulcs:
Külső kulcsnak, vagy idegen kulcsnak nevezzük azokat az attribútumokat, amelyek egy másik relációban kulcsot alkotnak, de a vizsgáltban nem.
Külső kulcs ugyanabban a táblában:
A relációs adatmodellben megengedjük, hogy egy külső kulcs ugyanabban a táblában szerepeljen amelyben ő a kulcs.
Például, ha egy Dolgozók nevű táblában a dolgozókat egy azonosító jelöli és a dolgozó főnökét is feltüntetjük, ugyanazzal az azonosítóval hivatkozva rá. Ekkor az Azonosító mező kulcsként és külső kulcsként is szerepel.
Külső kulcs párhuzamos kapcsolatban:
A külső kulcs egy táblázatban többféle értelmezésben is jelen lehet.
Például egy Gépjárműveket tartalmazó táblában egy személy Azonosító jelentheti a tulajdonost, valamint az üzemben tartót is.
Külső kulcs több táblából:
Egy tábla külső kulcsai több táblából is származhatnak, ha az adatbázis kettőnél több táblából áll.
Ekkor minden egyes külső kulcs egy-egy másik táblával létesített kapcsolatot jelenti.
Funkcionális függőség:
Legyen R(A1, ..., An) reláció és legyenek P és Q az A attribútumhalmaz részhalmazai:
P funkcionálisan meghatározza Q-t (P Q), vagy másképp Q funkcionálisan függ P-től ha abból, hogy a reláció valamely két sora megegyezik P halmazon következik, hogy a két sor értéke megegyezik Q halmazon is.
Ez a függőség nem feltétlenül létezik minden relációban, viszont ha létezik akkor nincs két olyan sor a relációban, amelyek értékei P-n megegyeznek, de Q-n akár csak egy értékben is különböznének.
A definíció értelmezhető a következőképpen is:
A P attribútum részhalmaz funkcionálisan meghatározza a Q attribútumhalmazt, ha minden P-hez tartozó értékhez pontosan egy Q-hoz tartozó értéket tudunk hozzárendelni.
Ebben az értelmezésben belátható, hogy a reláció kulcsa és a reláció többi attribútuma között funkcionális függőség áll fenn.
Tekintsük az alábbi adatbázist:
Légijárat(Repülőtársaság, Járatszám, Dátum, Géptípus, Indulási időpont, Érkezési időpont, Indulási hely, Érkezési hely, Étkezés típusa, Ülőhely sorszáma, Osztály).
Ekkor fennállnak az alábbi függőségek:
(Repülőtárs., Járatsz., Dátum) (Géptípus, Indulási i.p., Érkezési i.p.)
(Repülőtárs., Járatsz.) (Indulási h., Érkezési h., Étkezés típusa)
(Géptípus, Ülőhely) (Osztály)
Ugyanis a repülőtársaság neve, a járatszám és a dátum meghatározza a géptípust, valamint az indulási és érkezési időpontokat.
Ha a repülőtársaság és a járatszám megegyezik, akkor az indulási és érkezési hely, továbbá az étkezés típusa is meghatározott.
Ha megmondjuk a géptípust és az ülőhelyet, akkor az osztály is adott.
Megjegyzések:
A kulcs fogalmát definiálhatjuk a funkcionális függőség fogalmával:
Az A attribútumhalmaz K részhalmaza kulcsa az R(A) relációnak, ha K A és nincs olyan Y részhalmaza K-nak, hogy Y A teljesül.
A funkcionális függőség tehát a valóságos világban meglévő függőségeket fejez ki.
|