Datalog: logikai alapú lekérdezı nyelv

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

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

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

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

SQL/PSM kurzorok rész

Rekurzió a Datalogban és az SQL3-ban

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

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

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

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

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

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

5.3. Logika a relációkhoz

SQL/PSM tárolt modulok rész

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

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

On The Number Of Slim Semimodular Lattices

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

Tankönyv példák kidolgozása

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

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

Bevezetés: Relációs adatmodell

Bevezetés: Relációs adatmodell

SQL DDL-2 (aktív elemek) triggerek

Bevezetés: az SQL-be

Adatbázisok-1 előadás

Bevezetés: Relációs adatmodell

Mapping Sequencing Reads to a Reference Genome

Construction of a cube given with its centre and a sideline

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

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

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

Using the CW-Net in a user defined IP network

INDEXSTRUKTÚRÁK III.

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

Az SQL adatbázisnyelv: DML

TestLine - Angol teszt Minta feladatsor

Az adatbázisrendszerek világa

Relációs algebra 2.rész

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

Word and Polygon List for Obtuse Triangular Billiards II

Dependency preservation

ANGOL NYELV Helyi tanterv

Cloud computing. Cloud computing. Dr. Bakonyi Péter.

Cloud computing Dr. Bakonyi Péter.

Széchenyi István Egyetem

Angol Középfokú Nyelvvizsgázók Bibliája: Nyelvtani összefoglalás, 30 kidolgozott szóbeli tétel, esszé és minta levelek + rendhagyó igék jelentéssel

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

Miskolci Egyetem Gazdaságtudományi Kar Üzleti Információgazdálkodási és Módszertani Intézet Factor Analysis

Az Open Data jogi háttere. Dr. Telek Eszter

A MUTATÓNÉVMÁSOK. A mutatónévmások az angolban is (mint a magyarban) betölthetik a mondatban

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

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

Miskolci Egyetem Gazdaságtudományi Kar Üzleti Információgazdálkodási és Módszertani Intézet Nonparametric Tests

Miskolci Egyetem Gazdaságtudományi Kar Üzleti Információgazdálkodási és Módszertani Intézet. Hypothesis Testing. Petra Petrovics.

ACTA ACADEMIAE PAEDAGOGICAE AGRIENSIS

Tudományos Ismeretterjesztő Társulat

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

Relációs algebra 1.rész

Csatlakozás a BME eduroam hálózatához Setting up the BUTE eduroam network

Csima Judit április 9.

Véges szavak általánosított részszó-bonyolultsága

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

Választási modellek 3

Statistical Dependence

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

(Asking for permission) (-hatok/-hetek?; Szabad ni? Lehet ni?) Az engedélykérés kifejezésére a következő segédigéket használhatjuk: vagy vagy vagy

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

Eladni könnyedén? Oracle Sales Cloud. Horváth Tünde Principal Sales Consultant március 23.

Objektum-relációs adatbázisok. Felhasználói típusok (User-Defined Types) Objektum ID-k Beágyazott táblák (Nested Tables)

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

EN United in diversity EN A8-0206/419. Amendment

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

Intézményi IKI Gazdasági Nyelvi Vizsga

Előszó.2. Starter exercises. 3. Exercises for kids.. 9. Our comic...17

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

Supporting Information

Cashback 2015 Deposit Promotion teljes szabályzat

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

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

FÖLDRAJZ ANGOL NYELVEN GEOGRAPHY

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

Genome 373: Hidden Markov Models I. Doug Fowler

(NGB_TA024_1) MÉRÉSI JEGYZŐKÖNYV

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

Készítette: Szabóné Nacsa Rozália

FÖLDRAJZ ANGOL NYELVEN

16F628A megszakítás kezelése

Adatbázis, adatbázis-kezelő

Hierarchical Abstraction for the Verification of State-based Systems

A modern e-learning lehetőségei a tűzoltók oktatásának fejlesztésében. Dicse Jenő üzletfejlesztési igazgató

Bevezetés a kvantum-informatikába és kommunikációba 2015/2016 tavasz

Geokémia gyakorlat. 1. Geokémiai adatok értelmezése: egyszerű statisztikai módszerek. Geológus szakirány (BSc) Dr. Lukács Réka

3. MINTAFELADATSOR KÖZÉPSZINT. Az írásbeli vizsga időtartama: 30 perc. III. Hallott szöveg értése

Tudományos Ismeretterjesztő Társulat

Miskolci Egyetem Gazdaságtudományi Kar Üzleti Információgazdálkodási és Módszertani Intézet. Nonparametric Tests. Petra Petrovics.

Correlation & Linear Regression in SPSS

Számítógépes Hálózatok GY 8.hét

Komputeralgebra Rendszerek

Lekérdezések optimalizálása

Á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.3. Logika a relációkhoz --atomi formulák: relációs formulák és aritmetikai formulák --Datalogszabály -- Datalog program 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

Logika, mint lekérdezı nyelv Abstract Query Languages: Relational Algebra (procedural optimization) Logical QL: Datalog, Rel.Calculus (declarative) Datalog = Data - Database, log - logic,prolog Logikai alapú nyelv, szabály alapú nyelv. If-then logical rules have been used in many systems. Nonrecursive rulesare equivalent to the core relational algebra. Recursive rules extend relational algebra and appear in SQL-99. 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 2

Logika ismétlés Ítéletkalkulus ítéletváltozók: -x, y, z, -igaz/hamis értékek kifejezések -konstans {I, H} -változó -ha e, e1, e2 kifejezés, akkor e1 AND e2, e1 OR e2, NOT e, és ( e ) is kifejezés Elsőrendű predikátumkalkulus 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 3

Datalog szabályok és lekérdezések Datalog: logikai alapú, szabály-alapú nyelv szabály: IF feltétel THEN eredmény, ahol a feltétel relációkkal legyen megadható és az eredmény az output tábla sorait eredményezze Our first example of a rule uses the relations Frequents(drinker, bar), Likes(drinker, beer), Sells(bar, beer, price). The rule is a query asking for happy drinkers ---those that frequent a bar that serves a beer that they like. 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 4

Datalog szabályok felépítése 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. 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 5

Atomi formulák-1: Relációs formulák An atom is a predicate, or relation name with variables or constants as arguments. The head is an atom; the body is the AND of one or more atoms. Convention: Predicates begin with a capital, variables begin with lower-case. 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 6

Példa relációs atomi formulára (1) Sells(bar, beer, p) The predicate = name of a relation Arguments are variables (or constants). (2) Proba(x, x, y, 5, alma ) 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 7

Datalog szabályok jelentése A variable appearing in the head is distinguished(kitüntetett); otherwise it is nondistinguished(nem-kitüntetett változó). Rule meaning: The head is true for given values of the distinguished variables if there exist values of the nondistinguished variables that make all subgoals of the body true. 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 8

Example: Interpretation 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. 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 9

Datalog szabályok kiértékelése ---1 Approach 1: consider all combinations of values of the variables. If all subgoals are true, then evaluate the head. The resulting head is a tuple in the result. 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 10

Example: Rule Evaluation Happy(d) Frequents(d,bar) AND Likes(d,beer) AND Sells(bar,beer,p) FOR (each d, bar, beer, p) IF (Frequents(d,bar), Likes(d,beer), and Sells(bar,beer,p) are all true) add Happy(d) to the result Note: set semantics so add only once. Set semantics vice versa bag semantics 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 11

Datalog szabályok kiértékelése ---2 Approach 2: For each subgoal, consider all tuples that make the subgoal true. If a selection of tuples define a single value for each variable, then add the head to the result. Happy(d) Frequents(d,bar) AND Likes(d,beer) AND Sells(bar,beer,p) FOR (each f in Frequents, i in Likes, ands in Sells) IF (f[1]=i[1] and f[2]=s[1] and i[2]=s[2]) add Happy(f[1]) to the result 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 12

Milyen problémák merülnek fel? (erre visszatérünk a biztonságosságnál) 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. 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 13

Atomi formulák-2: Aritmetikai formula In addition to relations as predicates, a predicate for a subgoal of the body can be an arithmetic comparison. We write arithmetic subgoals in the usual way, e.g., x< y. 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 14

Példa: Aritmetikai részcélok 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 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 15

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) 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 16

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. 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 17

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. 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 18

A biztonságos szabályok elınyei We can use approach 2 to evaluation, where we select tuples from only the nonnegated, relational subgoals. The head, negated relational subgoals, and arithmetic subgoals thus have all their variables defined and can be evaluated. 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 19

Datalog programok Datalog program = collection of rules. In a program, predicates can be either 1. EDB = Extensional Database = stored table. 2. IDB = Intensional Database = relation defined by rules. Never both! No EDB in heads. 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 20

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. 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 21

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) 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 22

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. 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 23

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. 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 24

Következik Relációs algebrai kifejezésfák átírása nemrekurzív Datalogba. 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 09B_DLog2alapf // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 25