Relációs adatmodell

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, 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

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 a reláció elemei (sorai) a sémában szereplő jellemzők, attribútumok értékkészletéből veszik a megfelelő komponenseiket. 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

A relációs algebrai alapműveletek

A relációs adatmodell műveletei között öt alapműveletet definiálunk, ezekre épülnek majd a származtatott műveletek. Az alapműveletek 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).

r1Vezetéknév
1Kovács
2Szabó
r2Keresztnév
1János
2István
3Mihály
r3VezetéknévKeresztnév
1KovácsJános
2KovácsIstván
3KovácsMihály
4SzabóJános
5SzabóIstván
6Szabó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ó:

r4Eredmény
1Kovács
2Szabó
3János
4István
5Mihály


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:

r5VezetéknévKeresztnév
1KovácsJános
2SzabóJános


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:

r6Vezetéknév
1Kovács
2Szabó


A relációs algebrai származtatott műveletek

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. Amikor például könyvek adataira szerzőjükkel együtt 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őkSzerzőSzületett
1Gipsz Jakab1909
2Ency Klopédia1773
KönyvekKönyvSzerző
1Zab- és kásahegyezésGipsz Jakab
2Válogatott sötétségekGipsz Jakab
3Éticsiga és az eperfagyiEncy Klopédia
r7SzerzőSzületettKönyv
1Gipsz Jakab1909Zab- és kásahegyezés
2Gipsz Jakab1909Válogatott sötétségek
3Ency Klopédia1773É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.