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

Hasonló dokumentumok
Rekurzió a Datalogban és az SQL3-ban

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

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

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

Datalog: logikai alapú lekérdezı nyelv

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

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

Datalog: logikai alapú lekérdezı nyelv

SQL/PSM kurzorok rész

Lopocsi Istvánné MINTA DOLGOZATOK FELTÉTELES MONDATOK. (1 st, 2 nd, 3 rd CONDITIONAL) + ANSWER KEY PRESENT PERFECT + ANSWER KEY

ANGOL NYELVI SZINTFELMÉRŐ 2013 A CSOPORT. on of for from in by with up to at

ANGOL NYELVI SZINTFELMÉRŐ 2014 A CSOPORT

Construction of a cube given with its centre and a sideline

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

Dependency preservation

On The Number Of Slim Semimodular Lattices

Tudományos Ismeretterjesztő Társulat

Using the CW-Net in a user defined IP network

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

FÖLDRAJZ ANGOL NYELVEN GEOGRAPHY

Széchenyi István Egyetem

SAJTÓKÖZLEMÉNY Budapest július 13.

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

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

Relative Clauses Alárendelő mellékmondat

Csima Judit április 9.

TestLine - Angol teszt Minta feladatsor

FAMILY STRUCTURES THROUGH THE LIFE CYCLE

Statistical Dependence

ANGOL NYELV KÖZÉPSZINT SZÓBELI VIZSGA I. VIZSGÁZTATÓI PÉLDÁNY

TÉRGAZDÁLKODÁS - A TÉR MINT VÉGES KÖZÖSSÉGI ERŐFORRÁS INGATLAN NYILVÁNTARTÁS - KÜLFÖLDI PÉLDÁK H.NAGY RÓBERT, HUNAGI

Statistical Inference

There is/are/were/was/will be

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

Correlation & Linear Regression in SPSS

First experiences with Gd fuel assemblies in. Tamás Parkó, Botond Beliczai AER Symposium

Tavaszi Sporttábor / Spring Sports Camp május (péntek vasárnap) May 2016 (Friday Sunday)

KN-CP50. MANUAL (p. 2) Digital compass. ANLEITUNG (s. 4) Digitaler Kompass. GEBRUIKSAANWIJZING (p. 10) Digitaal kompas

(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

Csomag. Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll. specifikáció törzs (opcionális)

Lesson 1 On the train

KERÜLETI DIÁKHETEK VERSENYKIÍRÁS 2017.

ACTA ACADEMIAE PAEDAGOGICAE AGRIENSIS

KELER KSZF Zrt. bankgarancia-befogadási kondíciói. Hatályos: július 8.

Mapping Sequencing Reads to a Reference Genome

ANGOL NYELVI SZINTFELMÉRŐ 2012 A CSOPORT. to into after of about on for in at from

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

Dynamic freefly DIVE POOL LINES

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

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

Computer Architecture

Tudományos Ismeretterjesztő Társulat

Proxer 7 Manager szoftver felhasználói leírás

Személyes adatváltoztatási formanyomtatvány- Magyarország / Personal Data Change Form - Hungary

Directors and Officers Liability Insurance Questionnaire Adatlap vezetõ tisztségviselõk és felügyelõbizottsági tagok felelõsségbiztosításához

Please stay here. Peter asked me to stay there. He asked me if I could do it then. Can you do it now?

A vitorlázás versenyszabályai a évekre angol-magyar nyelvű kiadásának változási és hibajegyzéke

_zyxwvüutsrqpöonmlkjihgféedcbáa_zyxwvüutsrqpöonmlkjihgféedcbáa_

Phenotype. Genotype. It is like any other experiment! What is a bioinformatics experiment? Remember the Goal. Infectious Disease Paradigm

ALAPFOK KÉTNYELVŰ HALLÁS UTÁNI ÉRTÉS ANGOL NYELV

(Ability) (Megj.: ez nem modális segédige, de hasonló jelentést hordozó modális kifejezés)

Rotary District 1911 DISTRICT TÁMOGATÁS IGÉNYLŐ LAP District Grants Application Form

Travel Getting Around

Intézményi IKI Gazdasági Nyelvi Vizsga

Személyes adatváltoztatási formanyomtatvány - Magyarország / Personal Data Change Form - Hungary

Tag Questions Ugye kérdések

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


AZ ERDÕ NÖVEKEDÉSÉNEK VIZSGÁLATA TÉRINFORMATIKAI ÉS FOTOGRAMMETRIAI MÓDSZEREKKEL KARSZTOS MINTATERÜLETEN

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

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

Utolsó frissítés / Last update: február Szerkesztő / Editor: Csatlós Árpádné

Társasjáték az Instant Tanulókártya csomagokhoz

A MATEMATIKA TERÜLET ÉRTÉKELÉSI KERETEINEK VÁZLATA

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

Az új és azóta visszavont minimumfeltétel rendszer anomáliáiról

Angol nyelv 7-8.évfolyam. 1.forduló

Utolsó frissítés / Last update: Szeptember / September Szerkesztő / Editor: Csatlós Árpádné

Website review acci.hu

már mindenben úgy kell eljárnunk, mint bármilyen viaszveszejtéses öntés esetén. A kapott öntvény kidolgozásánál még mindig van lehetőségünk

EXKLUZÍV AJÁNDÉKANYAGOD A Phrasal Verb hadsereg! 2. rész

Word and Polygon List for Obtuse Triangular Billiards II

Adatbázis használat I. 2. gyakorlat

SQL DDL-2 (aktív elemek) triggerek

Pletykaalapú gépi tanulás teljesen elosztott környezetben

Regional Expert Meeting Livestock based Geographical Indication chains as an entry point to maintain agro-biodiversity


USER MANUAL Guest user

PIACI HIRDETMÉNY / MARKET NOTICE

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

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

Bevezetés: Relációs adatmodell

2 level 3 innovation tiles. 3 level 2 innovation tiles. 3 level 1 innovation tiles. 2 tribe pawns of each color. 3 height 3 tribe pawns.

Cashback 2015 Deposit Promotion teljes szabályzat

SQL OLAP 2. óra. Multi-dimenzionális adatmodell. A normalizált relációs modell bonyolult a felhasználók számára

Háromfázisú hálózatok

PELL EGYENLETEK MEGOLDÁSA LINEÁRIS REKURZÍV SOROZATOK SEGÍTSÉGÉVEL

Can/be able to. Using Can in Present, Past, and Future. A Can jelen, múlt és jövő idejű használata

ANGOL NYELV KÖZÉPSZINT SZÓBELI VIZSGA I. VIZSGÁZTATÓI PÉLDÁNY

Hogyan használja az OROS online pótalkatrész jegyzéket?

Átírás:

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

Expressive Power of Datalog 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. 2

Intuitive introduction Example 1: Ancestors ParentOf(parent,child) Find all of Mary s ancestors Example 2: Company hierarchy Employee(ID,salary) Manager(mID,eID) Project(name,mgrID) Find total salary cost of project X Example 3: Airline flights Flight(orig,dest,airline,cost) Find cheapest way to fly from A to B 3

Another Recursive Example EDB: Par(c,p) = p is a parent of c. Generalized cousins: people with common ancestors one or more generations back: Sib(x,y) Par(x,p) AND Par(y,p) AND x<>y Cousin(x,y) Sib(x,y) Cousin(x,y) Par(x,xp) AND Par(y,yp) AND Cousin(xp,yp) 4

Definition of Recursion Form a dependency graph whose Nodes = IDB predicates. Arc X ->Y if and only if there is a rule with X in the head and Y in the body. Cycle = recursion; no cycle = no recursion. 5

Example: Dependency Graphs Cousin Answer Sib JoeSells Recursive Nonrecursive 6

Evaluating Recursive Rules The following works when there is no negation: 1. Start by assuming all IDB relations are empty. 2. Repeatedly evaluate the rules using the EDB and the previous IDB, to get a new IDB. 3. End when no change to IDB. 7

The Naïve Evaluation Algorithm Start: IDB = 0 Apply rules to IDB, EDB yes Change to IDB? no done 8

Seminaive Evaluation Since the EDB never changes, on each round we only get new IDB tuples if we use at least one IDB tuple that was obtained on the previous round. Saves work; lets us avoid rediscovering most known facts. A fact could still be derived in a second way. 9

Example: Evaluation of Cousin We ll proceed in rounds to infer Sib facts and Cousin facts. Remember the rules: Sib(x,y) Par(x,p) AND Par(y,p) AND x<>y Cousin(x,y) Sib(x,y) Cousin(x,y) Par(x,xp) AND Par(y,yp) AND Cousin(xp,yp) 10

Par Data: Parent Above Child Sib(x,y) Par(x,p) AND Par(y,p) AND x<>y Cousin(x,y) Par(x,xp) AND Par(y,yp) AND Cousin(xp,yp) a d Cousin(x,y) Sib(x,y) Round 1 Round 2 Round 3 Round 4 b c e f g h j k i 11

SQL-99 Recursion Datalog recursion has inspired the addition of recursion to the SQL-99 standard. Tricky, because SQL allows negation groupingand-aggregation, which interact with recursion in strange ways. 12

Form of SQL Recursive Queries WITH <stuff that looks like Datalog rules> <a SQL query about EDB, IDB> Datalog rule = [RECURSIVE] <name>(<arguments>) AS <query> 13

Example: SQL Recursion ---(1) Find Sally s cousins, using SQL like the recursive Datalog example. Par(child,parent) is the EDB. WITH Sib(x,y) AS SELECT p1.child, p2.child FROM Par p1, Par p2 WHERE p1.parent = p2.parent AND p1.child <> p2.child; Like Sib(x,y) Par(x,p) AND Par(y,p) AND x <> y 14

Example: SQL Recursion --- (2) WITH RECURSIVE Cousin(x,y) AS (SELECT * FROM Sib) UNION Required Cousin is recursive (SELECT p1.child, p2.child FROM Par p1, Par p2, Cousin WHERE p1.parent = Cousin.x AND p2.parent = Cousin.y) Reflects Cousin(x,y) Sib(x,y) Reflects Cousin(x,y) Par(x,xp) AND Par(y,yp) AND Cousin(xp,yp) SELECT y FROM Cousin WHERE x = Sally ; 15

Plan to Explain Legal SQL Recursion 1. Define monotone recursions. 2. Define a stratum graph to represent the connections among subqueries. 3. Define proper SQL recursions in terms of the stratum graph. 16

Recursion in the SQL-99 standard SQL-99 szabvány csak az ún. monoton rekurziót támogatja (viszont Datalogban megengedett a negáció és rekurzió együtt, de igen bonyolulttá válik a lekérdezés értelmezése, mint például a rétegzés), SQL-99 szabvány lineáris rekurziót enged meg, vagyis az értékadás kifejezésben egyetlen rekurzív relációt használhatunk. 17

Tankönyv példája (10.2 fejezet) Jaratok(legitarsasag, honnan, hova, koltseg, indulas, erkezes) táblában repülıjáratok adatait tároljuk. Mely (x,y) párokra lehet eljutni x városból y-ba? Eljut(x, y) <- Jaratok(_, x, y, _, _, _) Eljut(x, y) <- Eljut(x, z) AND Jaratok(_, z, y, _, _, _) WITH RECURSIVE Eljut AS (SELECT honnan, hova FROM Jaratok UNION (SELECT Eljut.honnan, Jaratok.hova FROM Eljut, Jaratok WHERE Eljut.hova = Jaratok.honnan) SELECT * FROM eljut; 18