Relációs adatmodell

A Wikipédiából, a szabad enciklopédiából

A relációs adatmodell egy olyan adatmodell, amelynek legfontosabb eleme a matematikai reláció fogalma. Mint minden adatmodell, ez is egyrészt definiálja azokat a jellemző adatszerkezeteket, amelyeken dolgozik, illetve azokat a műveleteket, amelyek rajta értelmezettek. Fontos kiemelni, hogy a relációs adatmodell a logikai adatbázis (vagy fogalmi adatbázis) kereteit határozza meg, azaz nem foglalkozik azzal a problémával, hogy adatokat ténylegesen hogyan kell tárolni a háttértáron, hogyan kell módosítani, illetve a memóriába betölteni a felhasználó által igényelt adatokat.

A matematikai felépítésről[szerkesztés | forrásszöveg szerkesztése]

A hagyományos relációs adatmodell kulcsfogalma a reláció, amely – a matematika legtöbb területével azonos módon -– Descartes-szorzat részhalmazát jelenti. A Descartes-szorzat (vagy régiesen: a kartéziánus szorzat, ritkábban, inkább a matematika más területein: direktszorzatnak is hívják) lényegében elemi egységekként kezelt entitásokat rendel egymás mellé. Hasonlóan például a térbeli koordináta-rendszerhez, ahol történetesen három valós szám egymás mellé helyezésével egy térbeli pontot határozunk meg; formálisan itt is a független koordinátákat jelölő számokat Descartes-szorozzuk. A reláció fogalma csak annyit mond – a koordinátás példával élve –, hogy az a térkoordináták egy véges, szélsőségesen akár üres halmazát jelöli.

A Descartes-szorzat egyes műveleti tényezői egy-egy halmazból, értékkészletből veszik fel értéküket, amelyeket végesnek tételezünk fel. Az azonos típusú és szerepű elemek halmazát jellemzőknek (attribútumoknak) nevezzük. A jellemzők egy névvel ellátott rendezett halmaza pedig a séma. A séma-attribútum-reláció hármas voltaképpen egyfajta táblázatot írnak le, ahol az attribútumok az oszlopokat jelölik, a reláció a ténylegesen előforduló, kitöltött sorok összességét jelenti, míg a séma nem más, mint a táblázat alapszerkezetének, az oszlopfejlécek sorrendjének elnevezése.

Az oszlopok, illetve a sémák konkrét elnevezése általában lényegtelen, de szem előtt kell tartanunk, hogy egy sémára illeszkedni egy reláció akkor és csak akkor tud, ha az a sémában szereplő jellemzők, attribútumok értékkészletéből veszik a reláció sorai az elemeiket. Tehát ha például az életkor nevű jellemző kizárólag 0 és 1000 közé eső egész számokból áll, akkor a SZEMÉLY( név, életkor ) sémára nem illeszkedhet a { { 'Gipsz Jakab', -4 } } egyelemű reláció.

A relációs algebra[szerkesztés | forrásszöveg szerkesztése]

A relációs algebrai alapműveletek[szerkesztés | forrásszöveg szerkesztése]

A relációs adatmodell műveletei között pontos öt alapműveletet és számos származtatott műveletet definiálhatunk. Az alapműveletek rendre a következők:

Minden művelet kizárólag relációkon értelmezett (ezért relációs az adatmodell neve), azaz minden művelet csak relációkon végez műveleteket. A Descartes-szorzatról már volt korábban szó, a műveletet a × jel szimbolizálja. Az alábbi két sémára illeszkedő reláció Descartes-szorzata a harmadik reláció (r3 = r1 × r2).

r1 Vezetéknév
1 Kovács
2 Szabó
r2 Keresztnév
1 János
2 István
3 Mihály
r3 Vezetéknév Keresztnév
1 Kovács János
2 Kovács István
3 Kovács Mihály
4 Szabó János
5 Szabó István
6 Szabó Mihály
r5 Vezetéknév Keresztnév
1 Kovács János
2 Szabó János
r6 Vezetéknév
1 Kovács
2 Szabó
r4 Eredmény
1 Kovács
2 Szabó
3 János
4 István
5 Mihály

Az unió és a különbség pontosan úgy viselkedik, ahogyan azt a halmazelmélet kapcsán már megszokhattuk. Az r1 és r2 reláció uniója például az r4 reláció. Hangsúlyozni kell azonban, hogy az unió és a különbség csak és kizárólag olyan relációk között értelmezhető, amelyeknek az attribútumszámuk és -típusuk megegyezik. Tehát például az r2 ∪ r3 értelmezhetetlen művelet!

A kiválasztás és a vetítés két teljesen máshogy viselkedő művelet. Mindkettőhöz egy (logikai) segédkifejezést illik megadni. A kiválasztás feladata elsősorban az, hogy a reláció mint halmaz elemei közül emelje ki azokat, amelyek egy megadott logikai feltételt teljesítenek, kielégítenek. Példának okáért, ha valaki egy reláció elemei között csak a János nevűekre kíváncsi, akkor a kiválasztás (jelöljük K-val) feltételei között adjuk meg, hogy például keresztnév = 'János', azaz K{keresztnév = 'János'}(r3), amelynek eredményét az r5 reláció mutatja.

A vetítés ezzel szemben nem a reláció elemeinek számát, hanem a jellemzők, attribútumok számát csökkentik. A vetítés (jelölése legyen V) paramétere tehát a megtartandó attribútumok megnevezése, míg argumentuma egyetlen relációból áll. Így például V{Vezetéknév}(r5) eredményrelációja r6.

A relációs algebrai származtatott műveletek[szerkesztés | forrásszöveg szerkesztése]

Természetesen, a relációs adatmodell egyéb műveleteket is megenged. Ezek tárháza szinte korlátlan, itt csak a legfontosabbakat érdemes megemlíteni, amelyek

  • metszet
  • természetes illesztés (angolul: natural join)
  • általános (vagy Theta) illesztés

A metszet azért tekinthető származtatott műveletnek, mert előáll kizárólag a különbség segítségével is; hiszen az A \ ( A \ B ) az megegyezik A ∩ B-vel.

A természetes illesztés (jelölje JOIN) már nem ennyire egyszerű dolog. A lényege tulajdonképpen az, hogy két relációban, az azonos nevű attribútumokon megegyező értékkel rendelkező sorokat összekapcsolja. Ez olyankor lehet érdekes, amikor két különböző relációban tárolt információt szeretnénk valamilyen oknál fogva összekötni. Például: ha egy Szerzők által Könyvekre van szükségünk, akkor a szerzők adatai és a könyvek adatai tipikusan más helyen, más relációban találhatók meg. Ha bővebb információt akarunk megtudni egy könyv szerzőiről vagy a szerzők könyveiről, akkor a két relációt érdemes valahogyan összekapcsolni. Mivel az ilyen jellegű művelet nagyon tipikus az adatbázisok világában, ezt külön névvel szoktuk jelölni; ez a természetes illesztés.

Származtatott művelet lévén az alapműveletek segítségével a természetes illesztés kifejezhető, de még a körülírásánál is nehézkesebb a megfogalmazása. Természetes illesztés definíció szerint két reláció Descartes-szorzatából az azonos nevű attribútumokon megegyező értékkel bíró elemek kiválasztásával, illetve az azonos nevű attribútumok közül az ismétlődések elhagyásával nyert relációt eredményezi. Példával élve, az r7 reláció azonos a Szerzők JOIN Könyvek relációval.

Szerzők Szerző Született
1 Gipsz Jakab 1909
2 Ency Klopédia 1773
Könyvek Könyv Szerző
1 Zab- és kásahegyezés Gipsz Jakab
2 Válogatott sötétségek Gipsz Jakab
3 Éticsiga és az eperfagyi Ency Klopédia
r7 Szerző Született Könyv
1 Gipsz Jakab 1909 Zab- és kásahegyezés
2 Gipsz Jakab 1909 Válogatott sötétségek
3 Ency Klopédia 1773 Éticsiga és az eperfagyi

A természetes illesztés kiterjesztése az általános illesztés. Az általános illesztésnél nem kötjük meg, hogy milyen logikai feltételnek kell megfelelni az összekötendő relációknak (például akár a Született attribútumot is megpróbálhatjuk összekötni a Könyvvel), és azt sem, hogy ezek közül melyeket kell elhagynunk. Értelemszerűen ezeket paraméterként kell megadni az általános illesztésre vonatkozóan.