Datalog: logikai alapú lekérdezı nyelv

Hasonló dokumentumok
Datalog: logikai alapú lekérdezı nyelv

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

Logikai lekérdezı nyelv: Datalog Rekurzió a Datalogban és az SQL-ben

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

Relációs algebra 2.rész példák

Példák átírásokra: Relációs algebrai kifejezések, a kiértékelı fák átírása SQL lekérdezésekre

Tankönyv példák kidolgozása

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

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

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

Relációs algebrai lekérdezések átírása SQL SELECT-re (példák)

Adatbázisok 1. Rekurzió a Datalogban és SQL-99

Rekurzió a Datalogban és az SQL3-ban

7.előadáshoz kieg.: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Relációs algebra 2.rész

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

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

5.3. Logika a relációkhoz

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

SQL/PSM kurzorok rész

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

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

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

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

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

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

Bevezetés: az SQL-be

Bevezetés: Relációs adatmodell

Relációs algebra 1.rész

Bevezetés: Relációs adatmodell

SQL DDL-2 (aktív elemek) triggerek

Az adatbázisrendszerek világa

SQL DDL-1: táblák és megszorítások

Adatbázisrendszerek Tervezése Közgazdászoknak Munkapéldány

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

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

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

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

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

Adatbázis tartalmának módosítása

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

Adatbázisok-1 előadás

Több táblára vonatkozó lekérdezések Relációs algebra és SQL SELECT

Adatbázisok elmélete

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

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

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

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

On The Number Of Slim Semimodular Lattices

Tankönyv: SQL/PSM + Gyak:PL/SQL

Az SQL adatbázisnyelv: DML

SQL/PSM tárolt modulok rész

ADATBÁZISOK I. Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: március 20.

Relációs adatbázisok tervezése 2.rész (dekompozíció)

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

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

Lekérdezések optimalizálása

Mapping Sequencing Reads to a Reference Genome

Csima Judit szeptember 6.

4. Előadás Az SQL adatbázisnyelv

SQL DDL: Táblák, megszorítások (constraints), triggerek, nézettáblák

INDEXSTRUKTÚRÁK III.

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

Word and Polygon List for Obtuse Triangular Billiards II

Dependency preservation

Adatbázis Rendszerek

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

Sor és oszlopkalkulus

Adatbázis kezelés Delphiben. SQL lekérdezések

ACTA ACADEMIAE PAEDAGOGICAE AGRIENSIS

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

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Adatbázis, adatbázis-kezelő

Construction of a cube given with its centre and a sideline

Lekérdezések az SQL SELECT utasítással

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ázisok tervezése 2.rész (dekompozíció)

Bevezetés: Relációs adatmodell

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

Adatbázis használat I. 2. gyakorlat

Bevezetés: Relációs adatmodell

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Nézetek és indexek. AB1_06C_Nézetek_Indexek - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

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.

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

Információs rendszerek Adatbázis-kezelés

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

Relációs adatbázisok tervezése 2.rész (dekompozíció)

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

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

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

2.4. Egy algebrai lekérdező nyelv

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

Statistical Dependence

Lekérdezések az SQL SELECT utasítással. Copyright 2004, Oracle. All rights reserved.

WHERE záradék (további lehetıségek) SQL specialitások, nem írhatók át relációs algebrába: LIKE. NULL értékek. Az ismeretlen (unknown) igazságérték

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

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

Adatbázis tartalmának módosítása. SQL DML utasítások

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

Átírás:

Datalog: logikai alapú lekérdezı nyelv Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 5.4. Relációs algebra és nem-rekurzív biztonságos Datalog kifejező erejének összehasonlítása 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

Emlékeztetı: Datalog szabályok Happy(d) Frequents(d,bar) AND Likes(d,beer) AND Sells(bar,beer,p) Head = consequent, a single subgoal Read this symbol if Body = antecedent = AND of subgoals. fej törzs (jelentése, kiértékelése) Relációs atomok, aritmetikai atomok 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 2

Példa: szabály kiértékelése Happy(d) Frequents(d,bar) AND Likes(d,beer) AND Sells(bar,beer,p) Distinguished variable Nondistinguished variables Interpretation: drinker d is happy if there exist a bar, a beer, and a price p such that d frequents the bar, likes the beer, and the bar sells the beer at price p. 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 3

Milyen problémák merülnek fel? Relations are finite sets. We want rule evaluations to be finite and lead to finite results. Unsafe rules like P(x) Q(y)have infinite results, even if Q is finite. Even P(x) Q(x)requires examining an infinity of x-values. 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 4

Példa: Aritmetikai atomok A beer is cheap if there are at least two bars that sell it for under $2. Cheap(beer) Sells(bar1,beer,p1) AND Sells(bar2,beer,p2) AND p1 < 2.00 AND p2 < 2.00 AND bar1 <> bar2 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 5

Negált részcélok NOT in front of a subgoal negates its meaning. Example: Think of Arc(a,b)as arcs in a graph. S(x,y) says the graph is not transitive from x to y ; i.e., there is a path of length 2 from x toy, but no arc from x to y. S(x,y) Arc(x,z) AND Arc(z,y) AND NOT Arc(x,y) 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 6

Biztonságossági elvárás A szabályok kiértékelhetőek legyenek, ehhez: A szabályban szereplő minden változónak elő kell fordulnia a törzsben nem-negált relációs atomban 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 7

Biztonságos szabályok A rule is safe if: 1. Each distinguished variable, 2. Each variable in an arithmetic subgoal, and 3. Each variable in a negated subgoal, also appears in a nonnegated, relational subgoal, amivel az x korlátozott: pred(x, y, ) argumentuma (értéke a táblából) vagy x=c (konstans) vagy x=y (ahol y korlátozott) Safe rules prevent infinite results. 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 8

Példa: Nem biztonságos szabályokra Each of the following is unsafe and not allowed: 1. S(x) R(y) 2. S(x) R(y) AND x < y 3. S(x) R(y) AND NOT R(x) In each case, an infinity of x s can satisfy the rule, even if R is a finite relation. 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 9

Datalog programok Datalog program = collection of rules. In a program, predicates can be either 1. EDB relációk = Extensional Database = stored table(csak a törzsben szereplő relációk) 2. IDB relációk = IntensionalDatabase = relation defined by rules(szerepel fej-ben) Never both! No EDB in heads. 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 10

Datalog programok kiértékelése As long as there is no recursion, we can pick an order to evaluate the IDB predicates, so that all the predicates in the body of its rules have already been evaluated. If an IDB predicate has more than one rule, each rule contributes tuples to its relation. 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 11

Példa: Datalog program Using EDB Sells(bar, beer, price) and Beers(name, manf), find the manufacturers of beers Joe doesn t sell. JoeSells(b) Sells( Joe s Bar, b, p) Answer(m) Beers(b,m) AND NOT JoeSells(b) 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 12

Példa: Kiértékelése Step 1: Examine all Sellstuples with first component Joe s Bar. Add the second component to JoeSells. Step 2: Examine all Beerstuples (b,m). If b is not in JoeSells, add m to Answer. 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 13

Datalog kifejezı ereje Without recursion, Datalog can express all and only the queries of core relational algebra. The same as SQL select-from-where, without aggregation and grouping. But with recursion, Datalog can express more than these languages. 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 14

Relációs algebrai kifejezésfák átírása Mi a leggyakrabban előforduló típus, amiből építkezek? Lista (σ Felt (R S ) Ezt a komponenst támogatja legerősebben az SQL is: SELECT lista FROM táblák összekapcsolása WHERE felt Ez felel meg egy Datalogszabálynak Halmazműveletek: unió Datalog programmal 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 15

Relációs algebra és Datalog ---1 Rel.algebraiműveletek hogyan néznek ki Datalogban? Halmazműveletek:T.f.hR(x 1,...,x n ), S(x 1,...,x n ) predikátumokhoz tartozó reláció R(A 1,...,A n ), S(A 1,...,A n ) R S metszetnek megfelelő szabály: Válasz(x 1,...,x n ) R(x 1,...,x n )AND S(x 1,...,x n ) R-S különbségnek megfelelő szabály: Válasz(x 1,...,x n ) R(x 1,...,x n )AND NOT S(x 1,...,x n ) R Sunió műveletet egyetlen szabállyal nem tudom felírni, mert a törzsben csak AND lehet, OR nem. Ehhez több szabályból álló Datalogprogram kell: Válasz(x 1,...,x n ) R(x 1,...,x n ) Válasz(x 1,...,x n ) S(x 1,...,x n ) 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 16

Relációs algebra és Datalog ---2 Kiválasztás: σ x i θxj (R)kifejezésnek megfelelő szabály : Válasz(x 1,...,x n ) R(x 1,...,x n )AND x i θx j σ x i θc(e1)kifejezésnek megfelelő szabály: Válasz(x 1,...,x n ) R(x 1,...,x n )AND x i θc Vetítés: Π A (R)kifejezésnek megfelelő szabály: i1,...,aik Válasz(x,...,x i 1 ik ) R(x 1,...,x n ) Megjegyzés: név nélküli anonymusváltozók, amelyek csak egyszer szerepelnek és mindegy a nevük azt aláhúzás helyettesítheti. Például: HosszúFilm(c,é) Film(c,é,h,_,_,_) AND h 100 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 17

Relációs algebra és Datalog ---3 Természetes összekapcsolás: Tegyük fel, hogy R(A 1,...,A n, C 1,, C k ) és S(B 1,...,B m, C 1,, C k ) R S kifejezésnek megfelelő szabály: Válasz(x 1,...,x n,y 1,...,y m, z 1,, z k ) R(x 1,...,x n, z 1,, z k ) AND S(y 1,...,y m, z 1,, z k ) A felírt szabályok biztonságosak. Minden Q relációs algebrai kifejezéshez van nem rekurzív, biztonságos, negációt is tartalmazó Datalog program, amelyben egy kitüntetett IDB predikátumhoz tartozó kifejezés ekvivalens a Q lekérdezéssel. A nem rekurzív, biztonságos, negációt is tartalmazó Datalogkifejezőerő tekintetében EKVIVALENS a relációs algebrával. 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 18

Példák átírásokra --- 1 Lekérdezések megadása: Tk.2.4.1.Termékes feladata: Korábbi feladatokat lásd a relációs algebrai kifejezésekre ezekhez rajzoljuk fel a kiértékelő fáit és azokat alakítsuk át SQL lekérdezéssé: SELECT utasításra Példa: Adottak az alábbi relációs sémák feletti relációk Termék (gyártó, modell, típus) PC (modell, sebesség, memória, merevlemez, cd, ár) Laptop (modell, sebesség, memória, merevlemez, képernyő, ár) Nyomtató (modell, színes, típus, ár) Jelölje: T(gy, m, t) Megj.: a két típus attr.név PC(m, s, me, ml, ár) nem ugyanazt fejezi ki és L(m, s, me, ml, k, ár) így T Ny természetes Ny(m, sz, t, ár) összekapcsolásnál zűr 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 19

Példák átírásokra --- 2 a.) Melyek azok a PC modellek, amelyek sebessége legalább 3.00? m (σ s 3.00 (PC)) SELECT modell FROM PC WHERE sebesség>=3; Π m σ s>=3 PC b.) Mely gyártók készítenek legalább egy gigabájt méretű merevlemezzel rendelkező laptopot? gy ( σ ml 100 (T L)) SELECT gyarto FROM Termek T, Laptop L WHERE merevlemez>=100 AND T.modell=L.modell; Π gy σ ml>=100 T.m=L.m 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 20 T X L

1.Példa:Legyen R(A,B) és S(C,D) Π A,C (σ B= D (R x S)) Ehhez felrajzolva a kiértékelő fát: R Π A,C σ B= D x Átalakítjuk SQL lekérdezésre: SELECT A, C FROM R, S WHERE B=D; Példák átírásokra ---3 S 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 21

Példák átírásokra ---4 2.Példa:Legyen R(A,B), S(C,D) és T(E,F) Π A,C,E [( Π A,C (σ B= D (R x S))) ( Π A,E,B (σ B= F (R x T))) ] Ehhez felrajzolva a kiértékelő fát ÁTÍRVA Datalogprogrammá (lépésenként, aztán egyszerűsítve felírható egyetlen szabállyal) 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 22

4.Példa:Nézzük meg a maximum előállításának a kérdését! Legyen R(A,B). Feladat:Adjuk meg MAX(A) értékét! π A (R) π R1.A (σ R1.A<R.A (ρ R 1 ( R) R) ) Kiértékelő fa: Példák átírásokra ---5 Π A Π R1.A σ R1.A<R.A x R R 1 R 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 23

Következik Rekurzió Datalogban és az SQL-1999 szabvány WITH RECURSIVE Oracle megoldások a gyakorlatban 09C_DLog3ekvRelAlg // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 24