190 likes | 267 Views
Adatbázis rendszerek I. Relációs kalkulus. Általános Informatikai Tsz. Dr. Kovács László. Relációs kalkulus. Információ lekérdezés újabb módjai: - a lekérdezéseknél a relációs algebra ‘hogyan törénjen’ megadása helyett, az eredmény jellemzését adjuk meg - rel ációs algebra: prescriptive
E N D
Adatbázis rendszerek I Relációs kalkulus Általános Informatikai Tsz. Dr. Kovács László
Relációs kalkulus Információ lekérdezés újabb módjai: - a lekérdezéseknél a relációs algebra ‘hogyan törénjen’ megadása helyett, az eredmény jellemzését adjuk meg - relációs algebra: prescriptive - relációs kalkulus: descriptive - logikai formalizmusra épít - deduktív rendszerek - NLI KL
Relációs kalkulus Nyelvi elemek Az eredmény jellemzését kell leírni Háttér: predikátum kalkulusok elmélete AUTO(rsz, tipus, tulaj, ar) EMBER(kod, nev) Azon ember rekordok kellenek, melyhez létezik olyan autórekord, melyben a tipus mező Fiat és a tulajmező megegyezik az ember kód mezőjével x,y,z: auto(x,”Fiat”,y,z) KL
Relációs kalkulus Nyelvi elemek 1. változók (x,y,t,…) 2. konstansok (‘Peter’, 23,…) 3. predikátumok (szeret, rendel,…) 4. logikai operátorok : , , 5. aritmetikai operátorok : <, >, =, <>, … 6. kvantorok : , x,y,z,t: auto(x,”Fiat”,y,z) ember(z,t) t > 23 KL
Relációs kalkulus Helyes formátumú kifejezések (wff) - atomi wff: 1. P (a, b,..) ahol P predikátum és a,b változó vagy konstans 2. a b, ahol a,b változó vagy konstans, és relációs operátor - öszetett wff: 1. F1 F2 2. F1 F2 3. F1 4. (F1) 5. x (F1) 6. x (F1) KL
Relációs kalkulus Változók típusa Egy wff -en belül lehet: kötött és szabad változó egy x változó kötött, ha egy kvantor kapcsolódik hozzá 1. egy atomi wff-ben szereplő változó szabad 2. az 5. és 6. pontban adott wff-ben szereplő x változó kötött A kötött változók jelentése a mögötte álló részre lokalizált, s más szimbólummal helyettesíthető. y,z: auto(x,”Fiat”,y,z) t,z: auto(x,”Fiat”,t,z) KL
Relációs kalkulus Kifejezések értéke Minden wff-hez egyértelmű logikai érték (t,f) tartozik. Minden predikátum egy relációnak felel meg Az előfordulás az igaz értékű helyettesítéseket adja meg Eladás aru vevo darab alma peter 23 alma zoli 12 korte feri 32 korte peter 21 Eladás(‘alma’,’peter’,23) x,z : Eladás(x,’Péter’,z) x,z : Eladás(x,’Péter’,z) KL
Relációs kalkulus Változók tartalma A változók helyettesíthetnek - domaint, mezőt - tuple-t, rekordot ennek megfelelően beszélhetünk - DRC : domain relational calculus - TRC : tuple relational calculus AUTO(rsz, tipus, tulaj, ar) x,z : Auto(x,’Fiat’,2,z) z > 23 x : Auto(x) x.ar > 23 KL
Relációs kalkulus Lekérdezés { x1,x2,… | F(x1,x2,…) } ahol x1,x2 az F wff összes szabad változója eredménye: az x1,x2,… azon helyettesítési értékei, melyre az F(x1,x2,…) igaz értéket ad AUTO(rsz, tipus, tulaj, ar) {x | z : Auto(x,’Fiat’,2,z) z > 23} {x | Auto(x) x.ar > 23} KL
Relációs kalkulus Minta lekérdezések dolgozo (azon, nev, beosztas, kor, osztaly) osztaly (azon, cim, fonok) - { t.azon | dolgozo(t) t.kor > 30 } - { t.nev | dolgozo(t) o ( osztaly(o) o.azon = t.osztaly o.cim = ‘berugy’)} - { t.beosztas | dolgozo(t) o ( osztaly(o) k ( dolgozo(k) k.osztaly = o.azon k.beosztas = t.beosztas)) } KL
Relációs kalkulus Minta lekérdezések dolgozo (azon, nev, beosztas, kor, osztaly) osztaly (azon, cim, fonok) - { a | n,b,k,o (dolgozo(a,n,b,k,o) k > 30) } - { n | a,b,k,o,f (dolgozo(a,n,b,k,o) osztaly(o, ‘berugy’,f))} - { b | o ( f,c (osztaly(o,c,f) : a,n,k (dolgozo(a,n,b,k,o))) } KL
Relációs kalkulus Számosság problémája Safe kifejezés: olyan wff, melynek eredménye garantáltan véges halmaztállit elő. A safe DRC és DRC rendszerek ugyanolyan kifejező erővel rendelkeznek, mint a relációs algebra { t | dolgozo(t) } KL
Relációs kalkulus Relációs kalkulus konverzója 1. Tuple változók domainjai relációk 2. Elemi szelekció relációra vonatkozó szelekció 3. Relációk Descartes szorzata 4. Összetett szelekció Joinra vonatkozó szelekció 5. kvantor projekció 6. kvantor osztás 7. Projekció KL
Relációs kalkulus Relációs kalkulus konverzója {t.x | A(t) t.x>5 y(B(y) y.z = t.v)} 1. A,B 2. x>5(A) 3. x>5(A) B 4. z=v(x>5(A) B) 5. A(z=v(x>5(A) B)) 6. - 7. x A(z=v(x>5(A) B)) SELECT x FROM A,B WHERE x>5 AND z=v KL
Relációs algebra korlátai Hierarchikus SELECT DOLGOZO(kod, nev, osztaly, fonok) Egy X kódú dolgozó közvetlen beosztottjai: SELECT * FROM dolgozo WHERE fonok = x; Egy X kódú dolgozó összes beosztottja: SELECT * FROM dolgozo WHERE fonok = x UNION SELECT * FROM dolgozo WHERE fonok IN (SELECT kod FROM dolgozo WHERE fonok = x) UNION ….. KL
Relációs algebra korlátai Hierarchikus SELECT Tetszőleges mélységbe nem tudunk lemenni egyedi megoldások SELECT … FROM tabla START WITH feltetel CONNECT BY PRIOR m1 = m2 szülő és gyerek irány megkülönböztetése nem része a relációs algebrának KL
Relációs algebra korlátai Hierarchikus SELECT DOLGOZO(kod, nev, osztaly, fonok) Egy X kódú dolgozó összes beosztottja: SELECT nev, osztaly FROM dolgozo START WITH kod = x CONNECT BY PRIOR kod = fonok LEVELpszeudó mező, mint pl. ROWID USER KL
Relációs algebra korlátai NULL érték kezelése IS NULL nem érték, állapot SELECT * FROM DOLGOZO WHERE kor > 25 SELECT * FROM DOLGOZO WHERE NOT(kor > 25) NEV KOR 37 PETER ANNA 23 ZOLTAN KL
Relációs algebra korlátai NULL érték kezelése 3 értékű logika AND T F U T T F U F F F F U U F U OR T F U T T T T F T F U U T U U NOT T F U N T U Nem teljesül a kizárt harmadik elve KL