Adatbzisrendszerek elmleti alapjai 2 elads Relcis kalkulusok Relcis
Adatbázisrendszerek elméleti alapjai 2. előadás Relációs kalkulusok
Relációs kalkulusok Tartománykalkulus (DRC) Sorkalkulus (TRC) 2. előadás 2
Tartománykalkulus (DRC) Domain Relational Calculus Jelölések: ◦ ◦ ◦ Változók: x 1, x 2, … Konstansok: c 1, c 2, … Predikátumszimbólumok: p, q, … Termek: t 1, t 2, . . (ahol ti változó vagy konstans) Formulák: x y, illetve x c, ahol { =, , <, >, <=, >= }, x és y változó a formulában szabad előfordulású. p(t 1, …, tn), ahol p n-dimenziós predikátumszimbólum, és ti-k termek. A formulában szereplő változók szabad előfordulásúak. 2. előadás 3
Tartománykalkulus (DRC) Ha F 1, F 2 formula, akkor F 1 F 2, F 1 is formula. A változók előfordulásai nem változnak. Ha x változónak van szabad előfordulása F-ben (azaz x az F szabad változója), akkor x(F(x)) és x(F(x)) is formula. Az így kapott formulában x minden előfordulása kötött (azaz nem szabad). Ezek és csak ezek a formulák. 2. előadás 4
DRC szemantikája Legyen p n-dimenziós predikátumszimbólum. Legyen P n-dimenziós reláció (igazságtábla). ◦ p(c 1, …, cn) IGAZ (c 1, …, cn) P ◦ , , , igazságértékét a logikában szokásos értelemben definiáljuk. ◦ A lekérdezés formája DRC-ben: {x 1, …, xn | F(x 1, …, xn)} ahol F megengedett formula, melynek x 1, …, xn az összes szabad változója. ◦ A Q: = {x 1, …, xn | F(x 1, …, xn)} lekérdezés eredménye az összes (c 1, …, cn) n-es, amelyre F(c 1, …, cn) IGAZ. ◦ A Q az F-ben szereplő predikátumokhoz tartozó igazságtáblákból egy relációt állít elő 2. előadás 5
A relációs algebra és a DRC A relációs algebra is táblákból táblát eredményez. Melyik tud többet? A relációs algebra összes kifejezése leírható DRC-ben, az alapműveleteket elég átírni. ◦ k × n-es konstanstáblának megfelelő DRC lekérdezés: {x 1, …, xn|((x 1= c 11) … (xn=c 1 n)) … ((x 1= ck 1) … (xn=ckn))}, ahol a cij –k a konstanstábla sorának elemei ◦ Az r n-dimenziós relációs változónak megfelelő DRC lekérdezés: {x 1, …, xn|r(x 1, …, xn)} 2. előadás 6
A relációs algebra és a DRC ◦ Indukciót alkalmazunk a relációs algebrai kifejezésben szereplő műveletek száma szerint és az utolsó műveletet vizsgáljuk. ◦ Ha Ei kifejezésnek DRC-ben Fi(x 1, …, xn) formula felel meg, (i=1, 2) akkor: E 1 E 2 -nek {x 1, …, xn|F 1(x 1, …, xn) F 2(x 1, …, xn)}, E 1–E 2 -nek {x 1, …, xn|F 1(x 1, …, xn) F 2(x 1, …, xn)}, $1, …, $k(E 1)-nek {x 1, …, xk| (xk+1)… (xn)(F 1(x 1, …, xn))}, $i $j (E 1)-nek {x 1, …, xn|F 1(x 1, …, xn) (xi xj)}, $i c (E 1)-nek {x 1, …, xn|F 1(x 1, …, xn) (xi c)} felel meg. ◦ Megjegyzés: Minden relációs algebrai kifejezés ekvivalens egy olyannal, amelyben már csak atomi összehasonlítások szerepelnek. 2. előadás 7
A relációs algebra és a DRC ◦ Ha E 1 -nek DRC-ben F 1(x 1, …, xn), E 2 -nek F 2(y 1, …, ym) felel meg, akkor E 1 E 2 -nek {x 1, …, xn, y 1, …, ym|F 1(x 1, …, xn) F 2(y 1, …, ym)} felel meg ◦ Példa: r(x, y) s(y) felírása (jegyzet 3. oldal) 2. előadás 8
Maximális konjunkciós láncok A formulák részformulái közül az F 1 … Fk típusúakat (valamilyen zárójelezést véve) konjunkciós láncnak hívjuk. Algoritmussal meghatározhatjuk a maximális konjunkciós láncokat. A teljes formula is maximális konjunkciós lánc k=1 választással. Minden részformulának algoritmussal meghatározhatjuk a szabad változóit. Példa: hányadosnak megfelelő formula maximális konjunkciós láncai (jegyzet 4. oldal) 2. előadás 9
DRC és végtelen relációk A DRC-ben a {x, y | p(x, y)} lekérdezés véges relációból végtelen relációt eredményezhet, ha a változók végtelen tartományból vehetik fel az értékeiket. Relációs algebrában véges táblákat lekérdezve véges táblákat kapunk, így a relációs algebra valódi része a DRC-nek. 2. előadás 10
Tartományfüggetlenség Melyek azok a lekérdezések DRC-ben, amelyek nem függenek a változók tartományaitól, melyek azok, amelyek függenek? DOM(F): ={az F-ben szereplő konstansok és az F-ben szereplő predikátumok igazságtábláiban szereplő értékek} DOM(F) kifejezhető relációs algebrában Például F(x, y): = p(x, x) p(y, 3) esetén DOM(F) = $1 (P) $2 (P) {3} 2. előadás 11
Tartományfüggetlenség Tartományfüggőséget okozhat a negáció és a kvantorok használata, de a diszjunkció is: (ha a változók végtelen tartományból vehetik fel az értéküket, és a P, akkor a {x, y|p(x) q(y)} lekérdezés eredményében végtelen sok (a, b) pár fog szerepelni, ahol b tetszőleges érték. ) R(F, D) legyen a lekérdezés eredménye, ha a változók az értéküket a D tartományból vehetik fel, és a kvantorokat is a D tartományra vonatkoztatjuk. 2. előadás 12
Tartományfüggetlenség F tartományfüggetlen formula, illetve a neki megfelelő DRC lekérdezés tartományfüggetlen, ha DOM(F) D esetén R(F, DOM(F)) = R(F, D). Példák: 3 eset, melyben eldöntendő a tartományfüggőség (jegyzet 5. oldal) 2. előadás 13
Tartományfüggetlenség Eldönthetetlenségi tétel: Nincsen olyan algoritmus, amely tetszőleges DRC formuláról el tudja dönteni, hogy tartományfüggetlen-e vagy nem. 2. előadás 14
Biztonságos DRC formulák Olyan formulaosztályt keresünk, amely ◦ tartományfüggetlen formulákból áll, ◦ algoritmikusan eldönthető, hogy egy formula benne van-e az osztályban vagy nem, ◦ a relációs algebrai kifejezések felírhatók az osztályhoz tartozó formulákat használó DRC lekérdezésekkel. Ezek lesznek a biztonságos DRC formulák, illetve biztonságos DRC lekérdezések. 2. előadás 15
Biztonságos DRC formulák Olyan formulaosztályt keresünk, amely ◦ tartományfüggetlen formulákból áll, ◦ algoritmikusan eldönthető, hogy egy formula benne van-e az osztályban vagy nem, ◦ a relációs algebrai kifejezések felírhatók az osztályhoz tartozó formulákat használó DRC lekérdezésekkel. Ezek lesznek a biztonságos DRC formulák, illetve biztonságos DRC lekérdezések. 2. előadás 16
Biztonságos DRC formulák Nem szerepel benne kvantor. ◦ Minden formula logikailag ekvivalens egy olyannal, amelyben már nincs kvantor, ugyanis ( x)(F(x)) (( x)( F(x)). Ha a formulában F 1 F 2 részformula, akkor F 1 és F 2 szabad változói megegyeznek, F 1(x 1, …, xk) F 2(x 1, …, xk). A formula F 1 … Fm (1<=m) alakú maximális konjunkciós láncainak összes szabad változója korlátozott a következő értelemben: 2. előadás 17
Biztonságos DRC formulák ◦ Ha Fi nem aritmetikai összehasonlítás, és nem negációval kezdődő formula, akkor Fi összes szabad változója korlátozott. ◦ Ha Fi x=konstans vagy konstans=x alakú, akkor x korlátozott. ◦ Ha Fi x=y vagy y=x alakú, ahol y korlátozott, akkor x is korlátozott. Negáció csak olyan maximális konjunkciós láncban fordulhat elő, amelyben legalább egy nem negált tag is szerepel: 2. előadás 18
Biztonságos DRC formulák A biztonságosság algoritmussal ellenőrizhető! A relációs algebra átírásakor kapott formulák biztonságosak, vagyis a relációs algebra kifejezhető biztonságos DRC-ben. Példa: biztonságosság bemutatása k × n-es konstanstáblának megfelelő DRC-n (jegyzet 6. oldal) A biztonságos formulák tartományfüggetlenek. (Bizonyítási elv: A kifejezésfa mélysége szerinti indukcióval látható be. ) 2. előadás 19
Biztonságos DRC formulák A biztonságos DRC része a relációs algebrának (Bizonyítás: jegyzet 7. oldal) Példa: r(x, y) s(y)-nek megfelelő F formulát visszaalakítjuk relációs algebrai kifejezéssé (jegyzet 7. oldal) A relációs algebra kifejező erő tekintetében ekivalens a biztonságos DRC-vel 2. előadás 20
Sorkalkulus (TRC) Tuple Relational Calculus A rekord alapú reláció kalkulust röviden "rekordkalkulus"-nak vagy "sorkalkulus"-nak is szoktuk nevezni, TRC-vel jelöljük. Jelölések: ◦ Sorváltozók: t 1, t 2, … (Ha t sorváltozónak n komponense van, akkor t(n) jelölést is használhatjuk. ) ◦ konstansok: c 1, c 2, … ◦ predikátumszimbólumok: p, q, … 2. előadás 21
Sorkalkulus (TRC) ◦ Formulák: t(i)Θt'(j), illetve t(i)Θc, ahol Θ ∈ { =, ≠, <, >, <=, >= }, és t(i) a sorváltozó i-edik komponense. t és t' sorváltozók a formulában szabad előfordulásúak. p(t), ahol p n-dimenziós predikátumszimbólum, és t n-dimenziós sorváltozó. A formulában a t sorváltozó szabad előfordulású. Ha F 1, F 2 formula, akkor F 1 ∧ F 2, F 1 ∨ F 2, F 1 is formula. A sorváltozók előfordulásai nem változnak. Ha t sorváltozónak van szabad előfordulása F-ben (azaz t az F szabad sorváltozója), akkor ∀t(F(t)) és ∃t(F(t)) is formula. Az így kapott formulában t minden előfordulása kötött (azaz nem szabad). Ezek és csak ezek a formulák. 2. előadás 22
TRC szemantikája Legyen p n-dimenziós predikátumszimbólum. Legyen P n-dimenziós reláció (igazságtábla). Legyen t n-dimenziós sorváltozó. ◦ p(t) IGAZ ⇔ t ∈ P ◦ , , , igazságértékét a logikában szokásos értelemben definiáljuk. ◦ A lekérdezés formája TRC-ben: { t | F(t) }, ahol F megengedett formula, melynek t az egyetlen szabad sorváltozója. ◦ A Q: = {t| F(t)} lekérdezés eredménye az összes olyan t sor, amelyre F(t) IGAZ. ◦ A Q az F-ben szereplő predikátumokhoz tartozó igazságtáblákból egy relációt állít elő. 2. előadás 23
A relációs algebra és a TRC A relációs algebra is táblákból táblát eredményez. Melyik tud többet? A relációs algebra összes kifejezése leírható TRC-ben: az alapműveleteket elég átírni: ◦ k × n-es konstanstáblának megfelelő DRC lekérdezés: {t(n)|((t(1)=c 11) … (t(n)=c 1 n)) … ((t(1)= ck 1) … (t(n)=ckn))}, ahol a cij –k a konstanstábla sorának elemei ◦ Az r n-dimenziós relációs változónak megfelelő TRC lekérdezés: {t(n)|r(t)} 2. előadás 24
A relációs algebra és a TRC ◦ Indukciót alkalmazunk a relációs algebrai kifejezésben szereplő műveletek száma szerint és az utolsó műveletet vizsgáljuk. ◦ A DRC-től eltérően most a szorzásnál is használunk kvantort, nemcsak a vetítésnél. ◦ Ha Ei kifejezésnek TRC-ben Fi(t) formula felel meg, (i=1, 2), akkor: E 1 E 2 -nek {t|F 1(t) F 2(t)}, E 1–E 2 -nek {t|F 1(t) F 2(t)}, $1, …, $k(E 1)-nek {t(k)| u(n)((F 1(u) t(1)=u(1). . . t(k)=u(k))}, $i�$j (E 1)-nek {t|F 1(t) (t(i) t(j))}, $i� c (E 1)-nek {t|F 1(t) (t(i) c)} felel meg. 2. előadás 25
A relációs algebra és a TRC ◦ Megjegyzés: Minden relációs algebrai kifejezés ekvivalens egy olyannal, amelyben már csak atomi összehasonlítások szerepelnek ◦ Ha E 1 -nek TRC-ben F 1(u(n)), E 2 -nek F 2(v(m)) felel meg, akkor E 1´E 2 -nek {t(n+m)| u(n) v(m)(F 1(u) F 2(v) t(1)=u(1). . . t(n)=u( n) t(n+1)=v(1). . . t(n+m)=v(m))} felel meg. Példa: r(x, y)¸s(y) hányadosnak milyen TRC lekérdezés felel meg? (jegyzet 10. oldal) 2. előadás 26
Maximális konjunkciós láncok A formulák részformulái közül az F 1 … Fk típusúakat (valamilyen zárójelezést véve) konjunkciós láncnak hívjuk. Algoritmussal meghatározhatjuk a maximális konjunkciós láncokat. A teljes formula is maximális konjunkciós lánc k=1 választással. Minden részformulának algoritmussal meghatározhatjuk a szabad változóit. Példa: hányadosnak megfelelő formula maximális konjunkciós láncai (jegyzet 11 -12. oldal) 2. előadás 27
TRC és végtelen relációk A TRC-ben a {t| p(t)} lekérdezés véges relációból végtelen relációt eredményezhet, ha a sorváltozók komponensei végtelen tartományból vehetik fel az értékeiket. Relációs algebrában véges táblákat lekérdezve véges táblákat kapunk, így a relációs algebra valódi része a TRC-nek. 2. előadás 28
Tartományfüggetlenség Melyek azok a lekérdezések TRC-ben, amelyek nem függenek a változók tartományaitól, melyek azok, amelyek függenek? ◦ DOM(F): ={az F-ben szereplő konstansok és az Fben szereplő predikátumok igazságtábláiban szereplő értékek} ◦ DOM(F) kifejezhető relációs algebrában, például F(t(2)): = p(t) t(2)=3 esetén DOM(F)= $1 (P) $2 (P) {3} ◦ Tartományfüggőséget okozhat a negáció és a kvantorok használata, de a diszjunkció is. 2. előadás 29
Tartományfüggetlenség ◦ R(F, D) legyen a lekérdezés eredménye, ha a sorváltozók komponensei az értéküket a D tartományból vehetik fel, és a kvantorokat is azokra a sorokra vonatkoztatjuk, amelyek komponensei a D tartománynak elemei. F tartományfüggetlen formula, illetve a neki megfelelő TRC lekérdezés tartományfüggetlen, ha DOM(F) Í D esetén R(F, DOM(F)) = R(F, D). Eldönthetetlenségi tétel: Nincsen olyan algoritmus, amely tetszőleges TRC formuláról el tudja dönteni, hogy tartományfüggetlen-e vagy nem. 2. előadás 30
Biztonságos TRC formulák Olyan formulaosztályt keresünk, amely ◦ tartományfüggetlen formulákból áll, ◦ algoritmikusan eldönthető, hogy egy formula benne van-e az osztályban vagy nem ◦ a relációs algebrai kifejezések felírhatók az osztályhoz tartozó formulákat használó TRC lekérdezésekkel. ◦ Ezek lesznek a biztonságos TRC formulák, illetve biztonságos TRC lekérdezések. 2. előadás 31
Biztonságos TRC formulák Definíció: ◦ Nem szerepel benne kvantor. (Minden formula logikailag ekvivalens egy olyannal, amelyben már nincs kvantor, ugyanis ( t)(F(t)) (( t)( F(t)). ) ◦ Ha a formulában F 1 F 2 részformula, akkor F 1 és F 2 formulának 1 szabad sorváltozója van, és ezek megegyeznek, F 1(t) F 2(t). ◦ A formula F 1 … Fm (1<=m) alakú maximális konjunkciós láncainak összes szabad sorváltozójának összes komponense korlátozott a következő értelemben: 2. előadás 32
Biztonságos TRC formulák Ha Fi nem aritmetikai összehasonlítás, és nem negációval kezdődő formula, akkor Fi összes szabad sorváltozójának összes komponense korlátozott. Ha Fi t(j)=konstans vagy konstans=t(j) alakú, akkor a t(j) korlátozott. Ha Fi t(j)=t'(k) vagy t'(k)=t(j) alakú, ahol t'(k) korlátozott, akkor t(j) is korlátozott. ◦ Negáció csak olyan maximális konjunkciós láncban fordulhat elő, amelyben legalább egy nem negált tag is szerepel 2. előadás 33
Biztonságos TRC formulák A biztonságosság algoritmussal ellenőrizhető! A relációs algebra átírásakor kapott formulák biztonságosak, vagyis a relációs algebra kifejezhető biztonságos TRC-ben. Példa: r(x, y) s(y)-nek megfelelő F formulát visszaalakítjuk relációs algebrai kifejezéssé (jegyzet 13. oldal) A biztonságos formulák tartományfüggetlenek. (Bizonyítási elv: A kifejezésfa mélysége szerinti indukcióval látható be. ) 2. előadás 34
Ekvivalenciatétel A következő 3 lekérdező nyelv kifejező erő tekintetében megegyeznek: ◦ relációs algebra ◦ biztonságos tartománykalkulus ◦ biztonságos sorkalkulus (Bizonyítás: jegyzet 14. oldal) 2. előadás 35
- Slides: 35