Relációs adatbáziskezelés

Matematikai alapok

Codd halmazelméleti, relációs algebrai alapokra helyezte az adatbáziskezelés elméletét egy történelmi pillanatban. Nagy előnye, hogy aránylag egyszerű és problémamentes, „letisztult” matematikai alapozást jelent.

A kulcsfogalom az értéktartomány. Értéktartománynak egy tulajdonságtípus általánosan felvehető értékeinek a halmazát nevezzük, függetlenül attól, hogy az adatbázisban pillanatnyilag található-e példa (előfordulás) minden lehetséges értékre, avagy sem.

A reláció formális matematikai meghatározását véve: az S1, S2, ..., Sn - nem feltétlenül különböző - halmazokon (értéktartományokon) R egy reláció, ha ez egy halmaza azon rendezett n-eseknek, amelyek első eleme az S1, második eleme az S2, n-edik eleme az Sn halmaz eleme. Másképpen mondva az S1, S2, ..., Sn fölötti R reláció egy részhalmaza az S1xS2x...xSn Descartes-szorzatnak.

Úgy is mondhatjuk, hogy a reláció nem más, mint egy kétdimenziós tábla (táblázat), melynek csak elemi értékei lehetnek.

Az értéktartomány (domain) alapvető jelentőségű - lenne - a relációs adatbáziskezelésben. Ismét Coddot idézem, amikoris arról ír, hogy az értéktartományok jelentősége még az elsődleges és az idegen kulcsokénál is nagyobb: „A relációs modell számos tulajdonságának teljes támogatása az értéktartományok fogalmának teljeskörű támogatásától függ. Az értéktartományok teljes támogatásának néhány előnye következik. (...) az értéktartományok a ragasztó, amely egyben tartja az adatbázist. Jegyezzék meg: értéktartományról beszélek, nem elsődleges és idegen kulcsokról. A relációs modellben a kulcsok fogalma fontos további és szakosított ragasztót jelent.”

A táblázat oszlopainak nevei felelnek meg a modellezett jelenség tulajdonságainak, sorai pedig a nyilvántartásban szereplő tényleges előfordulásoknak. L. bővebben: Adatmodellezés, alapfogalmak.

HALMAZELMÉLETI ALAPMűVELETEK

Az R és S halmazok uniója tartalmazza mindazon elemeket, amelyek akár az R-ben, akár az S-ben szerepeltek. Egy elem csak egyszer szerepel az egyesítésben, akkor is, ha mind R-ben, mind S-ben szerepelt.

Az R és S halmazok metszete azon elemeket tartalmazza, amelyek az R-ben és az S-ben is szerepelnek.

Az R és S halmazok különbsége azon elemek halmaza, melyek benne vannak az R halmazban, de nincsenek benne az S-ben.

RELÁCIÓS ALAPMűVELETEK

Descartes-szorzat (összekapcsolás)

Halmazunió

Halmazkülönbség

Kiválasztás (szelekció)

Vetítés (projekció)

A Descartes-szorzatot fennebb már bemutattuk. Az unió és a különbség pont úgy működik, ahogyan azt a halmazelméletben megismertük (megszoktuk?).

Relációkra alkalmazva a halmazelméleti (alap)műveleteket avval a megszorítással kell élnünk, hogy az operandusok azonos szerkezetűek kell legyenek, azaz oszlopaik neve (jelentése) és sorrendje azonos kell, hogy legyen.

A kiválasztás operátor egy új relációt hoz létre, mely az eredeti sorainak egy részhalmazát tartalmazza, azokat, amelyek teljesítenek egy, az eredeti relációra megfogalmazott feltételt. A részhalmaz nyilván lehet üres, illetve megegyezhet az eredeti halmazzal is, azaz nem szükségképpen valódi részhalmazról van szó.

A vetítés operátor egy új relációt hoz létre, mely az eredeti oszlopainak egy részhalmazát tartalmazza.

LEKÉRDEZÉSEK

Ha csak egy vagy két relációra alkalmazhatnánk a műveleteket, elég szegényes helyzetben lennénk. Érezzük azonban, hogy ha az alapműveletek eredménye újabb reláció, akkor ezen műveletekből bonyolultabb, sőt akár nagyon bonyolult kifejezéseket is lehet alkotni (mint minden algebrában, így az általunk megszokott, vagy legalábbis valamennyire megismert, és teljesen talán még nem elfelejtett elemi algebrában is;).

A lekérdezések több relációra is vonatkozhatnak, sőt többnyire vonatkoznak is. Részletek és példák az SQL c. részben. Itt a több relációra végrehajtandó művelet egy érdekességét ismertetem, Ullman és Widom példáján keresztül.

A from záradék sorváltozói tartozzanak az R1, R2, ..., Rn relációkhoz. Ekkor a több relációra vonatkozó lekérdezés általános algoritmusa a következő:

MINDEN t1 sorra az R1 relációban

   MINDEN t2 sorra az R2 relációban

      ...

         MINDEN tn sorra az Rn relációban

            HA a where záradék igaz, amikor az attribútumokban

                 t1, t2, ..., tn megfelelő értékei találhatóak

            AKKOR t1, t2, ..., tn-nek megfelelően kiértékeljük

                  a select záradék attribútumait és az értékekből

                  alkotott sort az eredményhez adjuk.

Tegyük fel (ahogy a matematikusok szokták kezdeni;), hogy R, S és T egyoszlopos (unáris) relációk, és mindegyikük egyedüli attribútuma A. Keressük meg azokat az elemeket, amelyek az R-ben és vagy az S-ben, vagy a T-ben (esetleg mindkettőben) megtalálhatóak, azaz az R metszet (S unió T) halmazt szeretnénk meghatározni. Azt hihetnénk, hogy a

SELECT R.A

FROM R, S, T

WHERE R.A=S.A OR R.A=T.A

lekérdezés a megfelelő választ eredményezi. Jó esetben igen.

Ha T üres, akkor az R.A=T.A egyenlőség nem teljesülhet. Azt várnánk az OR művelet tulajdonságai és egyéb programnyelvekbeli megszokásaink, valamint halmazelméleti megfontolások alapján, hogy eredményként ekkor az R.A=S.A feltétel mentén az R metszet S eredményt kapjuk (hiszen ha az OR első fele igaz, akkor az egész feltétel igaz). A lekérdezések általános algoritmusa alapján (fentebb) azonban belátható, hogy ilyen esetben eredményként az üres halmazt fogjuk kapni, mert a T változó ciklusa 0 hosszúságú, azaz a HA utasítás egyszer sem hajtódik végre. Más megközelítésben az RxSxT Descartes-szorzat üres lesz, ha bármelyik tényezője üres.


Lásd még (a teljesség igénye nélkül):

Codd E. F.: The Relational Model for Database Management - version 2.
helyben itt

Békéssy András - Demetrovics János: Adatbázis-szerkezetek. Akadémiai Kiadó, Budapest, 2005.

Ullman Jeffrey D. - Widom Jennifer: Adatbázisrendszerek. Alapvetés. Panem, Budapest, 2008.

 

Vélemény

Nincs és nem is lehet.

impresszum