. Vegyük az R U 8 uniót, használjunk a leíráshoz két szabályt és n különbözo

Hasonló dokumentumok
5.3. Logika a relációkhoz

ABR ( Adatbázisrendszerek) 1. Előadás : Műveletek a relációs medellben

Mveletek a relációs modellben. A felhasználónak szinte állandó jelleggel szüksége van az adatbázisban eltárolt adatok egy részére.

Relációs algebra 1.rész alapok

2.4. Egy algebrai lekérdezo nyelv

2.4. Egy algebrai lekérdező nyelv

ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF

Algebrai és logikai lekérdezo nyelvek

Adatbázisok 1. Kósa Balázs gyakorlata alapján Készítette: Nagy Krisztián. 1. gyakorlat

Ítéletkalkulus. 1. Bevezet. 2. Ítéletkalkulus

2019/02/11 10:01 1/10 Logika

Relációs algebra lekérdezések optimalizációja. Adatbázisok használata

Ítéletkalkulus. 1. Bevezet. 2. Ítéletkalkulus

Databases 1. Relációs algebra és nemrekurzív Datalog

Adatbázis rendszerek 7. Matematikai rendszer amely foglal magában:

Relációs adatmodell. Adatbázisok használata

~i 6.2. Több relációra vonatkozó lekérdezések

Adatbázis rendszerek 2. előadás. Relációs algebra

Adatbázisok tavaszi félév Vizsgatételsor

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Adatbázis Rendszerek

L'Hospital-szabály március 15. ln(x 2) x 2. ln(x 2) = ln(3 2) = ln 1 = 0. A nevez határértéke: lim. (x 2 9) = = 0.

Lekérdezések az SQL-ben 1.rész

Lekérdezések az SQL-ben 1.rész

Relációs algebra 1.rész

Adatbázis rendszerek 2. előadás. Relációs algebra

Csima Judit október 24.

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA)

7. Előadás tartalma A relációs adatmodell

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

Adatbázisok elmélete 9. előadás

Lekérdezések az SQL-ben 2.rész

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Funkcionális függések lekérdezések feldolgozása, kifejezésfák

8. Előadás tartalma. Funkcionális függőségek

Általános algoritmustervezési módszerek

Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy

3. Fuzzy aritmetika. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

KOVÁCS BÉLA, MATEMATIKA I.

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

Adatbázisok elmélete 12. előadás

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

SQL bevezetés. Select-From-Where záradékok Több relációt tartalmazó lekérdezések Alkérdések

RELÁCIÓS ADATBÁZISSÉMÁK. Egyed-kapcsolat modellről átírás

5.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Numerikus módszerek 1.

Lekérdezések optimalizálása

ADATBÁZISOK ELMÉLETE 5. ELŐADÁS 3/22. Az F formula: ahol A, B attribútumok, c érték (konstans), θ {<, >, =,,, } Példa:

Adatbázisok elmélete 9. előadás

Sor és oszlopkalkulus

7. Előadás. Megyesi László: Lineáris algebra, oldal. 7. előadás Elemi bázistranszformáció

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

Adatszerkezetek és algoritmusok

Amit a törtekről tudni kell Minimum követelményszint

Lineáris algebra 2. Filip Ferdinánd december 7. siva.banki.hu/jegyzetek

7. Gyakorlat A relációs adatmodell műveleti része

KOVÁCS BÉLA, MATEMATIKA I.

Az informatika logikai alapjai

Relációs adatbázisok tervezése ---2

A relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós. operandusok. Egy reláció megadható a nevével vagy közvetlenül, sorainak

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

1. előadás: Halmazelmélet, számfogalom, teljes

Alap fatranszformátorok II

I.5. A LOGIKAI FÜGGVÉNYEK EGYSZERŰSÍTÉSE (MINIMALIZÁCIÓ)

Egyenletek, egyenlőtlenségek X.

Készítette: Nagy Tibor István

Vezérlési szerkezetek

Knoch László: Információelmélet LOGIKA

2.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I.

I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI

4.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

3.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

A logikai következmény

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

Az optimális megoldást adó algoritmusok

8.Előadás Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Excel 2010 függvények

Adatbázisrendszerek megvalósítása 2

6. Gyakorlat. Relációs adatbázis normalizálása

Hatványozás. A hatványozás azonosságai

Országos Középiskolai Tanulmányi Verseny 2009/2010 Matematika I. kategória (SZAKKÖZÉPISKOLA) 2. forduló feladatainak megoldása

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

Elsőrendű logika. Mesterséges intelligencia március 28.

Adatbázisok elmélete 6. előadás

Adatbázisok elmélete 4. előadás

Permutációk véges halmazon (el adásvázlat, február 12.)

Feladatok A mai előadáson: Tankönyv -- Termékek feladatai:

Adatbázisok elmélete 9. előadás

Név: Neptun kód: április

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

Átírás:

244 5. Algebrai és logikai lekérdez6 nyelvek f- 245 ahol az 8(B, C) reláció olyan, mint az 5.22. példában: 8 = {(2,3), (4,5), (4,5)}. Az elso szabály 8 mindhárom sorát H-ba teszi, mivel mindegyik sor elso komponense nagyobb l-nél. A második szabály alapján csak a (2,3) sor kerül be H-ba, mivel (4,5)-re nem teljesül, hogy y < 5. Azaz a H eredményreláció két darab (2,3), illetve két darab (4,5) sort tartalmaz. O 5.3.7. Feladatok 5.3.1. feladat. Írjuk fel atalogban a 2.4.1. feladat valamennyi lekérdezését. Kizárólag biztonságos szabályokat használjunk. A bonyolultabb relációs algebrai részkifejezések megfogalmazásához használjunk!b-predikátumokat. 5.3.2. feladat. Írjuk fel atalogban a 2.4.3. feladat valamennyi lekérdezését. Itt is használhatunk IB-predikátumokat, és most is kizárólag biztonságos szabályokkal dolgozzunk. II 5.3.3. feladat. Ahhoz, hogy a fejhez rendelt reláció véges legyen abban az esetben, ha mindegyik részcél predikátumához rendelt reláció véges, a biztonságos atalog-szabályokra adott feltétel elégséges, viszont túl eros. Adjunk példát olyan atalog-szabályra, amely nem biztonságos és mégis teljesíti, hogy a relációs predikátumokhoz véges relációkat hozzárendelve a fejhez rendelt reláció is véges. A 2.4. alfejezetben szereplo relációs algebrai operátorok mindegyike kifejezheto egy vagy több atalog-szabály segítségével. Ebben az alfejezetben valamennyi operátort egyenként megvizsgáljuk. Meg kell vizsgálnunk, hogyan kombinálhatjuk a atalog-szabályokat összetettebb algebrai kifejezések leírására. Az is igaz lesz, hogy bármely biztonságos atalog-szabály kifejezheto lesz relációs algebrában is, habár mellozni fogjuk ennek a bizonyítását. Ezek ellenére a atalog-lekérdezések nagyobb kifejezoerovel bírnak, mint a relációs algebra, ha megengedjük néhány szabály kölcsönhatását is. Ebben az esetben kifejezhetjük a rekurziót is, amelyre a relációs algebrában nem volt lehetoségünk (lásd az 5.35. példánál). 5.4.1. Boole-múveletek A relációs algebra Boole-muveletei (az unió, a metszet és a halmazkülönbség) könnyen kifejezhetok ata10gban. Használjuk a következo három módszert a leíráshoz. Az R és 8 relációkat ugyanannyi attribútummal rendelkezonek tekintjük, számuk legyen n. A szükséges szabályok leírását minden esetben a Válasz nevu fejpredikátum használatával oldjuk meg. Tegyük ezt annak ellenére, hogy bármilyen nevet használhatnánk az eredmény leírására, és hogy különbözo muveletek eredményéhez különbözo predikátumokat kellene választanunk. II. Vegyük az R U 8 uniót, használjunk a leíráshoz két szabályt és n különbözo változót: a!, a2,..., an Az egyik szabály csak az R( al, a2,..., an) részcélból áll, míg a másik csak az 8(al, a2,..., an) részcélból. Legyen mindkét szabálynak a fejrésze Válasz(al, a2,"', an). Így az eredmény az, hogy R összes sora és 8 összes sora is benne lesz a válaszrelációban.. Vegyükaz R n 8 metszetet. Egyetlen szabály lesz, amelynek a törzse az alábbi: R(al, a2,"', an) AN8(al, a2,"', an) A fej legyen a Válasz (a!, a2,"', an)' Ebben az esetben egy sor pontosan akkor lesz benne a válaszrelációban, ha mind 8-ben, mind R-ben benne van.. Vegyük az R - 8 különbséget. Egyetlen szabály lesz, amelynek a törzse az alábbi: R(al, a2,"', an) ANNOT8(al, a2,"', an) A fej legyen a Válasz (al, a2,..., an)' Ekkor egy sor pontosan akkor lesz benne a válaszrelációban, ha benne lesz R-ben, de nem lesz benne 8-ben. 5.24. példa. Legyenek az R(A, B, C) és 8(A, B, C) sémák a két relációnk sémái. A félreértések elkerülése végett itt különbözo predikátumneveket fogunk használni a végeredményekre ahelyett, hogy mindet Válasz-nak neveznénk. Az R U 8 meghatározásához a következo két szabályt használjuk: 1. U(x,y,z) fo- R(x,y,z) 2. U(x,y,z) fo- S(x,y,z) Az 1. szabály fejezi ki, hogy R minden sora az U!B-reláció egy sorát képezi. Hasonlóan a 2. szabály azt fejezi ki, hogy 8 minden sora benne van V-ban. Az R n 8 kiszámításához használjuk az alábbi szabályt: Végül a I(a,b,c) fo- R(a,b,c) AN S(a,b,c) (a,b,c) fo- R(a,b,c) ANNOT S(a,b,c) szabály az R - 8 halmazkülönbség kiszámítására való. o

246 5. Algebrai és logikai lekérdezo nyelvek Egy szabályban használt változónevek lokális ak Meg kell jegyeznünk, hogy egy szabály felírásakor a változók nevei tetszolegesek, és semmi kapcsolatuk nincs a többi szabályban használt változók neveivel. Ez azért lehetséges, mert minden egyes szabályt egyenként értékelünk ki, és a szabály fejéhez rendelt relációba a többi szabálytól függetlenül kerülnek be a megfelelosorok.a Írjuk át például az 5.24. példában felírt második szabályt a következo módon: U(a,b,c) - S(a,b,c) Az elso szabályt hagyjuk meg változatlan formában. A két szabály természetesen így is az R és S relációk egyesítését adja meg. Figyeljük meg azonban, hogyha egy l nevu változó nevét kicseréljük d-re egy szabályban, akkor az l valamennyi elofordulását ki kell cserélnünk d-re ebben a szabályban. Továbbá az l változó nevét csak olyan névre cserélhetjük ki, amelyik nem szerepel máshol ebben a szabályban.. a Ezt a kiértékelést azért tehetjük meg, mert a atalog-program is Horn-klóz program, amelyben a szabályok egymástól függetlenek, így a szabályok kiértékelésének sorrendje tetszoleges, mely Prolog-programokra nem érvényes. (A lektor megjegyzése.) 5.4.2. Vetítés Az R reláció vetítésének kiszámításához egyetlen szabályt használunk. A szabálynak egyetlen részcélja van, az R predikátum. A részcél argumentumában a reláció különbözo attribútumainak különbözo változók felelnek meg. A fej argumentumában azoknak az attribútumoknak megfelelo változók szerepelnek, amelyekre a vetítés történik, és olyan sorrendben, ahogy a vetítésben megkívántuk. 5.25. példa. Tegyük fel, hogya Filmek(filmcím, év, hossz, mufaj, stúdiónév, producerazon) relációt szeretnénk levetíteni az elso három attribútumára. P(fc,é,h) - Filmek(fc,é,h,m,s,p) szabály pontosan a vetítés eredményének megfelelo P relációt adja meg. 5.4.3. Kiválasztás A A kiválasztás operátor kifejezése atalogban már bonyolultabb dolog, mint az eddigi operátorok átírása. A legegyszerubb eset, amikor a kiválasztás feltéte-- le egy vagy több aritmetikai összehasonlítás ANszócskával történo összekapr 5.4. A relációs algebra és aatalog csolásából áll. Ebben az esetben egyetlen szabályt következoket fogja tartalmazni: 247 kell készítenünk, amely a 1. Egy relációs részcélt, amely megfelel annak a relációnak, amelyen a kiválasztás történik. Ez az atom annyi különbözo változót tartalmaz, ahány attribútummal a reláció rendelkezik. 2. A kiválasztás minden egyes összehasonlításához megadunk egy aritmetikai részcélt, amely megegyezik az összehasonlítással. Amíg a kiválasztás feltételében attribútumnevek szerepelnek, addig az aritmetikai részcélokban azokat a változókat kell használnunk, amelyekkel az elozo lépésben a relációs részcélt megadtuk. 5.26. példa. Az alábbi kiválasztást a következo atalog-szabállyal O"hossz2:100ANstúdióNév='Fox' fejezhetjük ki: S(fc,é,h,m,s,p) - Filmek(fc,é,h,m,s,p) ANh ~ 100 AN s = 'Fox' A kiértékelés eredménye a K reláció. Figyeljük meg, hogy mindkét részcélban a h és s változók a Filmek reláció hossz és stúdiónév attribútumainak felelnek meg. Most pedig nézzük meg, mi történik azokkal a kiválasztásokkal, amelyek feltételében vannak olyan összehasonlítások, melyek OR(vagy) szócskával vannak összekapcsolva. Az ilyen kiválasztásokat nem tudjuk egyetlen atalog-szabály segítségével kifejezni. Viszont az ilyen kiválasztások átalakíthatók több kiválasztás egyesítésévé. Azonban az olyan kiválasztás, amelynek feltétele két részfeltétel ORösszekapcsolásából áll, ekvivalens két olyan kiválasztás egyesítésével, amelyek az egyik, illetve másik részfeltételhez tartoznak. Tehát az n feltétel OR szóeskával történo összekapcsolását tartalmazó kiválasztás kifejezheto n darab, azonos feju szabállyal. Az í-edik szabály a kiválasztás í-edik feltételének felel meg. 5.27. példa. Cseréljük ki az 5.26. példa kiválasztásában az ANszócskát OR szócskára: O"hossz2:100ORstúdióNév= 'Fox' aazaz, válasszuk ki azokat a filmeket, amelyek vagy hosszú filmek, vagy a Fox stúdióban készültek. Felírjuk a két feltételnek megfelelo két szabályt: 1. S(fc,é,h,m,s,p)_ Filmek(fc,é,h,m,s,p) AN 1 ~ 100 2. S(fc,é,h,m,s,p)_ Filmek(fc,é,h,m,s,p) ANs = 'Fox' Az elso szabály megadja a 100 percnél hosszabb filmeket, a második pedig a Fox stúdióban készült filmeket.

248 5. Algebrai és logikai lekérdezo nyelvek r 5.4. A relációs algebra és aatalog 249 Az AN, OR és NOT logikai operátorok tetszoleges alkalmazásával már meg_ lehetosen bonyolult kiválasztási feltételek is megfogalmazhatók. Egy jól ismert módszer segítségével (amelynek az ismertetésétol most eltekintünk), ezek a logikai kifejezések "diszjunktív normálformára" hozhatók. A diszjunktív normál_ forma,,konjunkciók" ORszócskával történo összekapcsolása. Egy konjunkció literálok ANszócskával történo összekapcsolása, egy literál pedig egy negált vagy egy nem negált összehasonlítás. 2 A literálokat részcélokkal tudjuk reprezentálni, amelyek elott szerepelhet egy NOTszócska is. Negált aritmetikai részcél esetén a NOTszócska beviheto az összehasonlításba. Például a NOTx 2:: 100 feltétel felírható x < 100 alakban. Bármely konjunkció megfelel egyetlen olyan atalog-szabálynak, amelynek részcéljai maguk az összehasonlítások. Végül, bármely diszjunktív normálformájú kifejezés felírható a konjunkcióinak megfelelo atalog-szabályok segítségével. A szabályok kiértékelésének eredménye tulajdonképpen a konjunkciók eredményeinek egyesítése. 5.28. példa. Az 5.27. példában a fenti algoritmus egy egyszeru példáját láthattuk. Ha az elozo példa feltételét negáljuk, akkor egy jóval bonyolultabb kifejezést kapunk: anot (hossz~100 OR stúdiónév=' Fox') Azaz, válasszuk ki azokat a filmeket, amelyek sem nem hosszúak, sem nem a Fox stúdióban készültek. Ebben az esetben a NOTnem egy egyszeru összehasonlítás elott áll, ezért a em organ-szabály alkalmazásával be kell vinnünk a NOToperátort a kifejezés belsejébe. A következo kifejezést kapjuk: A NOToperátort a(not (hossz~100» Ez a kifejezés atalogban AN(NOT (stúdiónév='fox,» bevihet jük az összehasonlítások belsejébe: ahossz<100 ANstúdióNév;io'Fox' a következo szabállyal írható fel: S(fc,é,h,m,s,p) ~ Filmek(fc,é,h,m,s,p) AN h < 100 AN s =J. 'Fox' 5.29. példa. Vegyünk egy hasonló példát, ahol a kiválasztás feltételében AN operátorral összekapcsolt feltételek negáltja szerepel. Ezúttal a emorganszabály második formáját alkalmazzuk, amely szerint az ANnegáltja a negációk OR-ja. Kezdjük a relációs algebrai kifejezéssel: anot (hossz~100 ANstúdióNév= 'Fox') 2 Lásd: A. V. Aho, J.. Ullman, Foundations of Computer Science, Computer Science Press, New York, 1992. A.zaz, válasszuk ki azokat a filmeket, amelyek nem a Fox stúdióban készültek és nelll hosszú filmek. A NOToperátort a emorgan-szabály segítségével bevisszük a kifejezés belsejébe: a(not (hossz~100» OR (NOT (stúdiónév='fox'» Ezután bevisszük a NOToperátort ahossz<100 OR stúdiónév;io'fox' az összehasonlítások belsejébe: Legvégül felírunk két atalog-szabályt, egyet-egyet az ORkét oldalán található feltételeknek megfeleloen: 1. S(fc,é,h,m,s,p) ~ Filmek(fc,é,h,m,s,p) AN 1 < 100 2. S(fc,é,h,m,s,p) fo- Filmek(fc,é,h,m,s,p) AN s =J. 'Fox' 5.4.4. Szorzat Két reláció szorzata, R x 8 kifejezheto egyetlen atalog-szabály segítségével. A szabálynak két részcélja van, egyik az R-nek, a másik az 8-nek felel meg. A részcélok változói megfelelnek a relációk attribútumainak, de egymástól különbözok. A fejben szereplo IB-predikátum argumentumában az összes olyan változó szerepel, amely valamely részcélban megjelenik, és a sorrendet tekintve, az R részcél változóit követik az 8 részcél változói. 5.30. példa. Tekintsük az 5.24. példa relációit. Az R és 8 egyaránt három attribútummal rendelkezik.az R x 8 szorzatot a következoatalog-szabállyal fejezhetjük ki: P(a,b,c,x,y,z) ~ R(a,b,c) AN S(x,y,z), Az R részcél változóinak nevét az ábécé elejérol vettük, míg az 8 részcél változóinak nevét az ábécé végérol. Az R és 8 részcélok mind a hat változója megjelenika szabály fejében. 5.4.5. Összekapcsolás K'et reláció természetes összekapcsolásának kifejezése atalogban nagyon ha- Sonlít a két reláció szorzatának megfelelo szabályához. A különbség csak annyi, ~ogyamikor az R I><J8 természetes összekapcsolástakarjuk felírni, akkor az R es S relációk közös attribútumaihoz tartozó változóknak ugyanazt a nevet kell adnunk, és különbözo változókat kell a többi helyen használni. Akár az attribútumok neveit is használhatjuk változónévként. A fej egy olyan IB-predikátum keulegyen, amelyben minden egyes változó megjelenik, méghozzá egyszer.

250 5. Algebrai és logikai lekérdez6 nyelvek 251 5.31. példa. Vegyük az R(A, B) és S(B, C, ) relációkat a megadott sémákkal. Természetes összekapcsolásukat a következo szabállyal fejezhetjük ki: rö(a,b,c,d) +- R(a,b) ANS(b,c,d) Figyeljük meg, hogy a részcélokban használt változók egyértelmuen megfelelnek az R és S relációk attribútumainak. A théta-összekapcsolás hasonló módon írható fel ata10gban. A 2.4.12. alfejezetben láthattuk, hogy a théta-összekapcsolás kifejezheto szorzás és egy ezt követo kiválasztás segítségével. Ha a kiválasztás feltétele egy konjunkció, azaz összehasonlítások ANszócskával történo összekapcsolása, akkor egyszeruen felírjuk a szorzásnak megfelelo atalog-szabályt, majd ehhez hozzáadjuk az összehasonlításoknak megfelelo aritmetikai részcélokat. 5.32. példa. Tekintsük az U(A, B, C) és V(B, C, ) relációk théta-összekapcsolását: U IX!A< AN U.BiNB. A következo atalog-szabállyal ugyanezt a muveletet végezzük el: Ö(a,ub,uc,vb,vc,d) +- U(a,ub,uc) AN V(vb,vc,d) AN a < d ANub =f. vb Az U reláció B attribútumához rendelt változónak az ub nevet adtuk, és ugyanígy kapták nevüket a vb, uc, vc változók is. A két relációnak összesen hat attribútuma van, és a hozzájuk rendelt változók tetszoleges különbözo nevet kaphattak volna. Az elso két részcél az összekapcsolni kívánt relációknak, míg a két utolsó részcél a théta-összekapcsolás feltételében szereplo összehasonlításoknak felel meg. O Ha a théta-összekapcsolás feltétele nem egy konjunkció, akkor a feltételt az 5.4.3. alfejezetben tárgyalt módon átalakít juk diszjunktív normálformára. Ezután a feltétel minden egyes konjunkciójához felírjuk a megfelelo szabályt. Egy ilyen szabályaszorzathoz tartozó részcélokkal kezdodik, amelyet a konjunkcióban szereplo literálokhoz tartozó részcélok követnek. Minden szabály feje egyforma, és argumentumként annyi változót tartalmaz, ahány attribútuma a théta-összekapcsolásban részt vevo két relációnak összesen van. 5.33. példa. Módosítsunk egy kicsit az 5.32. példában megadott relációs algebrai kifejezésen. Cseréljük ki a'z ANoperátort ORoperátorra. Ily módon a feltétel rögtön diszjunktív normálformában van, hiszen nem szerepel benne negáció. Két konjunkciónk van, mindketto egyetlen literálból áll. A kifejezés: U IX!A< ORU.B#V.B V Ha a változókat ugyanúgy nevezzük, mint az 5.32. példában, akkor a következo két szabályt kapjuk: V 1. (a,ub,uc,vb,vc,d) +- U(a,ub,uc) ANV(vb,vc,d) AN a < d 2. (a,ub,uc,vb,vc,d) +- U(a,ub,uc) ANV(vb,vc,d) ANub =ftvb A szabályokban a két relációnak megfelelo részcél mellett az A < vagy az U.B =ft V.B összehasonlításnak megfelelo részcél szerepel. O 5.4.6. Kifejezések megadása atalogban atalog-szabályokkal nem csak elemi relációs algebrai operátorokat fejezhetünk ki, hanem alapjában véve bármilyen relációs algebrai kifejezést. Az ötlet mindössze annyi, hogy felrajzoljuk a relációs algebrai kifejezéshez tartozó kifejezésfát, és minden egyes belso csúcshoz megadjuk a megfelelo IB-predikátumot. Az IB-predikátumhoz tartozó szabályt vagy szabályokat úgy kapjuk, hogy a fa megfelelo csúcsában található operátorra alkalmazzuk. A kifejezésfa extenzionális operandusaira (amelyek tulajdonképpen az adatbázis relációi) a hozzájuk tartozó predikátumokkal hivatkozhatunk. A belso csúcsok operandusaira a megfelelo IB-predikátumokkal hivatkozhatunk. Az algebrai kifejezés eredménye egy olyan reláció, amely a kifejezésfa gyökerében szereplo predikátumnak felel meg. O"hossz>=100 Filmek 1ffilmcím, n év astúdiónév='fox' 5.9. ábra. A kifejezésfa Filmek a 5.34. példa. Vegyük a 2.17. példa relációs algebrai kifejezését. 7rfi1mcím,éV(O"hossz~lOo n O"stúdióNév='Fox' ) A megfelelo kifejezésfát a 2.18. ábrán láthattuk, de a könnyebb követhetoség érdekében az 5.9. ábrán is ugyanez látható. Négy IB-predikátumot kell felírnunk a négy belso csúcsnak megfeleloen. Mindegyik predikátumhoz egyetlen szabály fog tartozni, amint az az 5.10. ábrán látható.

252 5. Algebrai és logikai lekérdezo nyelvek,. 253 A két alsó belso csúcs egyszeru kiválasztás a Filmek EB-relációra alkalmazva. A hozzájuk tartozó IB-predikátumok a W és az X, amelyeket az 5.10. ábra elso két szabályában írtunk fel. Az elso szabály például a Filmek reláció azon sorait adja meg, amelyekben a film hosszúsága legalább 100 perc. 1. W(fc,é,h,m,s,p) 2. X(fc,é,h,m,s,p) 3. Y(fc,é,h,m,s,p) 4. Válasz(fc,é) ~ ~ Filmek(fc,é,h,m,s,p) AN h ~ 100 ~ Filmek(fc,é,h,m,s,p) ANs = 'Fox' ~ W(fc,é,h,m,s,p) AN X(fc,é,h,m,s,p) Y(fc,é,h,m,s,p) 5.10. ábra. Összetett relációs algebrai kifejezésnek megfeleitetett atalog-szabályok A harmadik szabálya W és X metszetének megfelelo Y predikátumot adja meg az 5.4.1. alfejezetben tanult szabályforma használatával. Végezetül a negyedik szabály fogalmazza meg a kérdésre adott választ, az Y filmcím és év attribútumaira történo levetítése által. A vetítés leírására az 5.4.2. alfejezetben bemutatott módszert használtuk. Vegyük észre, hogy Y-t egyetlen szabály írja le, ezért az 5.10. ábrán lévo 4.. szabály Y részeéljának helyébe behelyettesíthetjük a szabály törzsét. Ezek után a W és az X részeélokat is helyettesíthetjük az 1., illetve 2. szabályok törzsével. Mivel a Filmek részcél mindkét törzsben szerepel, ezért az egyiket elhagyhatjuk. Eredményként így egyetlen szabályt kapunk. Válasz(fc,é) ~ Filmek(fc,é,h,m,s,p) AN h ;::: 100 AN s = 'Fox' 5.4.7. A relációs algebra és a atalog összehasonlítása Az 5.4.6. alfejezetnek megfeleloen minden alap relációs algebrai kifejezés kifejezheto atalog-iekérdezésként. A kiterjesztett relációs algebrának viszont vannak olyan muveletei, mint például az 5.2. alfejezetben leírt csoportosítás vagy összesítés, amelyeknek nincs megfelelo atalog-változata. Hasonlóan a atalog nem támogatja a multihalmaz-muveleteket sem, mint például az ismétlodések megszüntetését. Másrészrol igaz az, hogy tetszoleges atalog-szabály kifejezheto relációs algebrában. Azaz, az alap relációs algebrában írhatunk olyan lekérdezést, amely ugyanazt a sorhalmazt adja, mint amelyet a szabály feje eredményez. Amikor viszont atalog-szabályok gyujteményét vizsgáljuk, ez a helyzet megváltozik, hiszen atalog-szabályokkal a rekurziót is tudjuk kezelni, amelyet a relációs algebrában viszont már nem tudunk megtenni. Ennek az oka, hogy az IB-predikátumokat szabályok törzsében is használhatjuk, és így egy szabály fejéhez meghatározott sorokat tovább használhatjuk szabályok törzsében is. Ezáltal pedig több sort kaphatunk a fejrészben. Ezen a ponton nem tárgyaljuk, hogy milyen bonyodalmakat okozhat ez a megközelítés, foként azokban az esetekben, mikor negált részcél is van. A következo példával szemléltet jük a rekurzív atalogot. 5.35. példa. Tegyük fel, hogy adott egy Él (X, y) reláció, ami irányított éleket jelent az X és Y csúcsok között. Megfogalmazhatjuk az él reláció tranzitív lezártját, azaz az Út (X, Y) relációt, ami azt fejezi ki, hogy X csúcsból Y csúcsba van egy legalább 1 hosszú út, azaz: 1. Út(X,Y) ~ Él(X,Y) 2. Út(X,Y) ~ Él(X,Z) AN Út(Z,Y) Az elso szabály azt jelenti, hogy minden él egyben út is. A második szabály pedig azt fejezi ki, hogyha van él az X csúcsból valamilyen Z csúcsba, illetve Z csúcsból van út Y csúcsba, akkor X-bol is van út Y-ba. Ha tekintjük a két szabályt, akkor 2 hosszú utakat kapunk. Ha vesszük az eddigi eljárásból nyert Út tényeket, és felhasználjuk azokat egy újabb alkalmazáshoz, akkor már 3 hosszú utakat kapunk. Ha ezekkel az Út tényekkel újra alkalmazzuk a szabályainkat, akkor 4 hosszú utakat nyerünk és így tovább. Végül megtaláljuk az összes utat, és a következo menetben már nem kapunk újabb tényeket. Ennél a pontnál befejezhetjük az eljárást. Ha nem kaptuk meg az Út(a, b) tényt, akkor valójában nincs is út a gráfban az a és b csúcsok között. 5.4.8. Feladatok 5.4.1. feladat. Adottak az R(a,b,c), S(a,b,e) és T(a,b,e) relációk. Írjuk fel a következorelációsalgebrai kifejezéseketegy vagy több atalog-szabálysegítségével: aj R U S. bj RnS. ej R - S. dj (R U S) - T.! ej (R - S) n (R - T). fj 7ra,b(R).! gj 7ra,b(R) n PU(a,b)(7rb,c(S)), 5.4.2. feladat. Adott az R(x, y, z) reláció. Írjuk fel egy vagy több atalogszabály egyesítésével a adr) kifejezést, ahol C a következo alakú: ~ aj x=y. bj x<yany<z.