Datalog. Moritz Kaufmann 1. Juni Technische Universität München

Ähnliche Dokumente
Anfragesprachen mit Rekursion Datalog

Intelligente Datenbanken

Einführung in PROLOG. Christian Stocker

Gliederung. Programmierparadigmen. Einführung in Prolog: Einführung in Prolog: Programmieren in Prolog. Einführung Syntax Regeln Listen Relationen

Mai Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Typisierung von semistrukturierten Daten. Steffen Staab ISWeb Informationssysteme & Semantic Web

SQL Wiederholung. Datenbanktechnologien. Verbunde. Aggregation und Gruppierung. Unterabfragen. Hochschule für Technik und Wirtschaft Berlin

Bachelor Grundlagen der Logik und Logikprogrammierung 12. Februar

4 Schleifen -= Entstanden unter Excel 2003 =-

Theoretische Grundlagen der Informatik

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #5. SQL (Teil 3)

Logic in a Nutshell. Christian Liguda

SQL. Komplexe Abfragen. SQL-Komplexe Abfragen. SQL-Komplexe Abfragen. Komplexe Abfragen verknüpfen mehrere Tabellen miteinander.

Cayuga. A General Purpose Event Monotoring System. David Pfeiffer. 19. Juli 2007

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Wissensrepräsentation und -verarbeitung in Logiken. bereinigt Pränex Skolem ( -Eliminierung) Klausel (Menge von Klauseln, Notation ohne Quantoren)

Datenbanken - Wiederholung. Norbert Fuhr

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Der SAS DataStep und die Prozedur SQL Cellent Finance Solutions GmbH Seite: 1

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Datenbanksysteme Vorlesung vom noch Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück

Sructred Query Language

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Wissensbasierte Systeme/ Expertensysteme. Teil 2

FORMALE SYSTEME. Sprachen beschreiben. Wiederholung. Wie kann man Sprachen beschreiben? 2. Vorlesung: Grammatiken und die Chomsky-Hierarchie

Teil 12: Sichten (Views, Virtuelle Tabellen)

Motivation. Formale Grundlagen der Informatik 1 Kapitel 19. Syntax & Semantik. Motivation - Beispiel. Motivation - Beispiel

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Theoretische Grundlagen des Software Engineering

5.8 Bibliotheken für PostgreSQL

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Schulinternes Curriculum im Fach Informatik

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

SQL. Structured Query Language

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.

Theoretische Grundlagen des Software Engineering

Grundlagen der Theoretischen Informatik - Sommersemester Übungsblatt 1: Lösungsvorschläge

Sin-Funktion vgl. Cos-Funktion

Teil 7: Verteilte Datenbanken, SQL-99, deduktive Datenbanken

Datenbanksysteme SS 2007

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes)

Automaten, Spiele und Logik

Formale Methoden II. Gerhard Jäger. SS 2008 Universität Bielefeld. Teil 8, 11. Juni Formale Methoden II p.1/30

Verknüpfte Daten abfragen mit SPARQL. Thomas Tikwinski, W3C.DE/AT

Inhaltsverzeichnis. Bibliografische Informationen digitalisiert durch

SQL-Vertiefung. VU Datenbanksysteme. Reinhard Pichler

SQL Performance - Tips Do's & Don'ts

Kontrollstrukturen MySQL Funktionen. MySQL 4, 5. Kapitel 20a: PHP Teil 2. Marcel Noe

Relationentheorie grundlegende Elemente

Beispiel: So projektieren Sie eine Datenbankanbindung mit VBS

Theorie der Informatik

7. Formale Sprachen und Grammatiken

Einführung in die Java- Programmierung

Grundlagen Datenbanken Sommersemester 2008

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

Mining über RDBMSe. von. Christian Widmer. Wie gut lässt sich Mining mit SQL realisieren?

Aktuelle Entwicklungen

Art der Info: Technische Background Info Teil 1 (April 2002)

der einzelnen Aussagen den Wahrheitswert der zusammengesetzten Aussage falsch falsch falsch falsch wahr falsch wahr falsch falsch wahr wahr wahr

Art der Info: Technische Background Info Teil 2 (April 2002)

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

4. DIE ABLEITUNG (DERIVATIVE)

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Terminierungs-Analyse von SQL-Triggern. Sommersemester 05 T. Jahn Seminar Intelligente Datenbanken SQL-Trigger: Terminierungs-Analyse 1

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien

Shopware 4.1 Kategorien

(Von der Nähe zur Distanz zum User geordnet)

SQL Self-Join. Bei der Verbundbildung wird mehr als einmal Bezug auf eine Relation genommen Prinzip der Verbundbildung

Binäre Suchbäume (binary search trees, kurz: bst)

Übungsblatt 8- Lösungsvorschlag

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

Klausur Formale Systeme Fakultät für Informatik 2. Klausur zum WS 2010/2011

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen

Anfragen an XML-Dokumente Proseminar/Seminar SS2003 zum Themenbereich Logische Aspekte von XML

Vorlesung Datenbankmanagementsysteme

SQL. Fortgeschrittene Konzepte Auszug

Informatik A (Autor: Max Willert)

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1

Automatisierte Datenmigration mit dynamischen SQL

fsq Ein Abfragesystem für syntaktisch annotierte Baumbanken

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Erwin Grüner

Deduktive Datenbanken

SQL: statische Integrität

Einführung in Prolog. Literatur

Objektrelationale, erweiterbare Datenbanken WS 04/05

ACCESS SQL ACCESS SQL

Ermittlung der übereinstimmenden Variablen (-Namen) zweier Datasets

SQL-Injection. Seite 1 / 16

Integration, Migration und Evolution

Dierentialgleichungen 2. Ordnung

Normalformen boolescher Funktionen

Grundlagen der Künstlichen Intelligenz

y(p F x) gebunden und in den Formeln F xy

Transkript:

Datalog Moritz Kaufmann 1. Juni 2015 Technische Universität München

Datalog Grundlagen Zusammenfassung 1. Faktenbasis (EDB = extensionale Datenbasis) 2. + logische Herleitungsregeln Ableitung neuer Fakten (IDB = intensionale Datenbasis) Moritz Kaufmann Datalog 1

Datalog Beispiel EDB % kennt(persa, PersB, Jahr) kennt(michael, Moritz, 2013). kennt(simon,michael, 2013). kennt(simon,andreas, 2014). kennt( Moritz, simon, 2013). kennt( Moritz, michael, 2013). Herleitungsregeln moritzbekannte(pers) : kennt( Moritz, Pers, _). IDB moritzbekannte(simon). moritzbekannte(michael). Moritz Kaufmann Datalog 2

Datalog Syntax Atomare Formeln: q(a 1,..., A m ). Regeln: p(x 1,..., X m ) : q 1 (A 11,...A 1s ),..., q n (A n1,..., A nt ) Variablen: Großbuchstabe + optional weitere Klein-/Großbuchstaben, spezieller Markierung für nicht gebrauchte Werte _ Konstanten: Beginnen mit Kleinbuchstaben oder Zahlen Kommentare: Mit % markiert Moritz Kaufmann Datalog 3

Datalog Syntax Atomare Formeln: q(a 1,..., A m ). Regeln: p(x 1,..., X m ) : q 1 (A 11,...A 1s ),..., q n (A n1,..., A nt ) Variablen: Großbuchstabe + optional weitere Klein-/Großbuchstaben, spezieller Markierung für nicht gebrauchte Werte _ Konstanten: Beginnen mit Kleinbuchstaben oder Zahlen Kommentare: Mit % markiert Beispiele Atomare Formeln: kennt(simon,michael,2013). Regeln: Variablen: Pers, Jahr, _ moritzbekannte(pers) :- kennt( Moritz,Pers,_). Konstanten: Moritz, simon, 2013 Kommentare: % kennt(a,b,jahr) Wichtig: Alle Formeln mit. beenden! Moritz Kaufmann Datalog 3

Datalog Regeln Konjunktive Prädikate Wenn mehrere Bedingungen gleichzeitig gelten, können diese mit, verknüpft werden. verbindungen2014(p1,p2):- kennt(p1,p2,jahr), Jahr=2014. Disjunktive Prädikate Nur eine der Regeldefinitionen muss erfüllt sein, dass ein Wert enthalten ist. simonmoritzbekannte(p2):- kennt(simon,p2,_). simonmoritzbekannte(p2):- kennt( Moritz,P2,_). Moritz Kaufmann Datalog 4

Joins Datenbasis % kennt(persa,persa,jahr). % wohntin(pers,ort). Regel bekannteimgleichenort(a,b,ort) :- kennt(a,b,_), wohntin(a,ort), wohntin(b,ort). Alle Variablen mit gleichem Namen müssen mit dem selben Wert belegt sein. Somit können die Werte mehrere Prädikate verknüpft werden. Moritz Kaufmann Datalog 5

Äquivalenz zu SQL Datalog verbindungen2014(p1,p2):- kennt(p1,p2,jahr), Jahr=2014. SQL WITH verbindungen2014(p1,p2) as ( SELECT PersA, PersB FROM kennt WHERE Jahr = 2014 ) select * from verbindungen2014; Moritz Kaufmann Datalog 6

Äquivalenz zu SQL Datalog simonmoritzbekannte(p):- kennt(simon,p,_). simonmoritzbekannte(p):- kennt( Moritz,P,_). SQL WITH simonmoritzbekannte(p) as ( SELECT PersB FROM kennt WHERE PersA = simon UNION SELECT PersB FROM kennt WHERE PersB = Moritz ) select P from simonmoritzbekannte; Moritz Kaufmann Datalog 7

Äquivalenz zu SQL Datalog bekannteimgleichenort(a,b;ort) :- kennt(a,b,_), wohntin(a,ort), wohntin(b,ort). SQL WITH bekannteimgleichenort(a,b,ort) as ( SELECT k.persa, k.persb, w.ort FROM kennt k, wohntin w, wohntin wb WHERE k.persa = w.pers AND k.persb = wb.pers AND w.ort = wb.ort ) select * from bekannteimgleichenort; Moritz Kaufmann Datalog 8

Rekursion <= 2-hop Freunde beliebig entfernte Bekannte Moritz Kaufmann Datalog 9

Rekursion <= 2-hop Freunde zweihopfreunde(a,b) :- kennt(a,b,_). zweihopfreunde(a,c) :- kennt(a,b,_), kennt(b,c,_). beliebig entfernte Bekannte Moritz Kaufmann Datalog 9

Rekursion <= 2-hop Freunde zweihopfreunde(a,b) :- kennt(a,b,_). zweihopfreunde(a,c) :- kennt(a,b,_), kennt(b,c,_). beliebig entfernte Bekannte bekannte(a,b) :- kennt(a,b,_). bekannte(a,c) :- bekannte(a,b,_), kennt(b,c,_). Moritz Kaufmann Datalog 9

Rekursion <= 2-hop Freunde zweihopfreunde(a,b) :- kennt(a,b,_). zweihopfreunde(a,c) :- kennt(a,b,_), kennt(b,c,_). beliebig entfernte Bekannte bekannte(a,b) :- kennt(a,b,_). bekannte(a,c) :- bekannte(a,b,_), kennt(b,c,_). Datalog erlaubt Rekursion, d.h. Zyklen im Abhängigkeitsgraph. Bei Rekursion werden die Regeln solange ausgewertet, bis keine neuen Fakten mehr abgeleitet werden können. Moritz Kaufmann Datalog 9

Äquivalenz zu SQL Datalog bekannte(a,b) :- kennt(a,b,_). bekannte(a,c) :- bekannte(a,b,_), kennt(b,c,_). SQL WITH RECURSIVE bekannte(a,b) as ( SELECT k.persa, k.persb FROM kennt k UNION SELECT b.a, k.persb FROM kennt k, bekannte b WHERE k.persa = b.b ) select * from bekannte; Nicht alle rekursiven Regeln die in Datalog möglich sind, können auch in SQL übersetzt werden. Moritz Kaufmann Datalog 10