Relációs Adatbázis
A relációs adatmodell (Codd, 1970) az egyedeket, tulajdonságokat és kapcsolatokat egyaránt táblázatok (relációk) segítségével adja meg.
Az adattábla sorokból és oszlopokból áll. Egy sorát rekordnak nevezzük, amely annyi mezőből áll, ahány oszlopa van a táblának.
A reláció tehát nem más, mint egy táblázat, a táblázat soraiban tárolt adatokkal együtt. Az egyes relációkat egyedi névvel látjuk el. A relációk
oszlopai adott reláción belül egyedi névvel rendelkeznek.
A reláció soraiban tároljuk a logikailag összetartozó, egy-egy egyedet leíró adatokat (attribútumokat). Egy sor és oszlop metszésében található
táblázat elemet mezőnek nevezzük, a mezők tartalmazzák az adatokat. A mezőkben oszloponként különböző típusú (numerikus, szöveges stb.)
mennyiségek tárolhatók.
Relációs adatbázisnak nevezzük a relációs adatmodell (matematikai reláció elemi műveleteivel + relációs algebrai származtatott műveletek) elvén
létrehozott adatok összességét.
Relációs adatbázisokat relációs adatbázis-kezelőkkel hozhatjuk létre, szerkeszthetjük és törölhetjük.
A relációs adatmodellben a reláció halmaz, ennek megfelelően a reláció minden eleme (sora) egyedi.
Kulcsok
A reláció kulcs a reláció egy sorát azonosítja egyértelműen. A reláció - definíció szerint - nem
tartalmazhat két azonos sort, ezért minden relációban létezik kulcs. A reláció kulcsnak a következő
feltételeket kell teljesítenie (Siki Z. 1995):
- az attribútumok egy olyan csoportja, melyek csak egy sort azonosítanak (egyértelműség)
- a kulcsban szereplő attribútumok egyetlen részhalmaza sem alkot kulcsot
- a kulcsban szereplő attribútumok értéke nem lehet definiálatlan (NULL).
Indexek
(http://www.agt.bme.hu/szakm/adatb/db3.htm#p3.6.1)
Az index olyan kiegészítő adatstruktúra, amelyet egy-egy táblához lehet generálni a keresések
és a rendezési műveletek meggyorsítására. Az indexet a tábla attribútumainak valamely
részhalmazához generáljuk, amit így indexkulcsnak nevezzük. Az indexet is táblaként lehet elképzelni,
amelynek első oszlopa az indexkulcsot, a második a megfelelő rekord fizikai sorszámát tartalmazza.
Index létrehozása viszonylag lassú, hiszen ekkor végig kell menni a teljes táblán. Egy táblához egyszerre
több index is létrehozható. A rekordokat különböző indexek alapján rendezhetjük a képernyőn, de a
rekordok fizikai sorrendje mindvégig változatlan marad.
Relációs műveletek
(http://www.agt.bme.hu/szakm/adatb/db4.htm#p4.2)
Az adatbázis lekérdezések matematikai alapját relációs algebrai műveletek képezik, melyekben
az adattáblát sorok halmazaként értelmezzük. A legfontosabb kapcsolódó műveleteket az alábbiakban
foglaljuk össze vázlatosan (Katona E., 2013.)
- Halmazműveletek
- Unió: két kompatibilis tábla egyesítését (unio) a
táblák egymás után írásával és az ismétlődő sorok
kiszűrésével végezzük el. - Metszés: két kompatibilis tábla metszete (intersection) csak azokat a sorokat tartalmazza, melyek
mindkét táblában megtalálhatóak. - Különbség: A T1 és T2 kompatibilis táblák halmazelméleti különbsége azokat a sorokat tartalmazza,
amelyek T1-ben szerepelnek, de T2-ben nem. - Redukciós műveletek
- Projekció: Adott oszlopok kiválasztását jelenti a táblából. Az új tábla sémája a megfelelő attribútumok
kiválasztásával adódik. Ha az attribútumlista nem tartalmazza a kulcsot, akkor a rekordok száma
csökkenhet. - Szelekció: Adott feltételnek eleget tevő sorok kiválasztását jelenti a táblából. A feltétel általában
attribútumokból és konstansokból felépülő logikai kifejezés. Az eredménytábla sémája megegyezik
(vagy kompatibilis) az eredetivel. - Kombinációs műveletek
- Descartes-szorzat: Tetszőleges T1 és T2 táblák Descartes-szorzatát úgy kapjuk, hogy T1 minden sorát
párosítjuk T2 minden sorával. Ha T1 és T2 sorainak száma r1 ill. r2, oszlopainak száma c1 és c2, akkor a T
táblában r1*r2 sor és c1+c2 oszlop van. A gyakorlatban nem alkalmazzák, hiszen az adathalmaz
redundanciáját növeli. - Természetes összekapcsolás (Natural join): Két tábla Descartes-szorzatából kiválasztjuk azokat a
sorokat, amelyek az R1.X és R2.X attribútumokon megegyeznek (ahol X ált. külső kulcs / kulcs), majd a
projekcióval a duplán szereplő X-beli attribútumokat csak egy példányban tartjuk meg. - Külső összekapcsolás (Outer join): A természetes összekapcsolás eredmény táblájában nem
feltétlenül szerepel a kapcsolt táblák nem minden sora. A nem párosítható sorokat lógó sornak
nevezzük. Külső összekapcsolással az összekapcsolt két tábla egyikénél vagy mindkettőnél valamennyi
rekord megőrzése garantálható a (+) jelölés alapján.- Bal oldali külső összekapcsolás: T1 (+)* T2
- Jobb oldali külső összekapcsolás: T1 *(+) T2
- Teljes külső összekapcsolás: T1 (+)*(+) T2
- Theta-összekapcsolás (Theta-join): A táblák Descartes-szorzatából tetszőleges feltétel szerint
választunk ki sorokat.
Normalizálás
(http://www.agt.bme.hu/szakm/adatb/db3.htm#p3.5)
A redundancia fogalma:
Redundanciáról akkor beszélünk, ha valamely tényt vagy a többi adatból levezethető
mennyiséget ismételten (többszörösen) tároljuk az adatbázisban. A redundancia, a szükségtelen tároló
terület lefoglalása mellett, komplikált adatbázis frissítési és karbantartási műveletekhez vezet, melyek
könnyen az adatbázis inkonzisztenciáját okozhatják. Egy adatbázis akkor inkonzisztens, ha egymásnak
ellentmondó tényeket tartalmaz. A redundanciát meg kell különböztetni az értékek duplikált
(többszörös) tárolásától. A duplikált adattárolásra szükségünk lehet a relációkban, míg a redundanciát
el kell kerülni. A redundancia fordul elő akkor is, ha levezett vagy levezethető mennyiségeket tárolunk
a relációkban (Siki Z. 1995).
Funkcionális függőség ....
Ajánlott irodalom