Der relationale Tupel-Kalkül

Größe: px
Ab Seite anzeigen:

Download "Der relationale Tupel-Kalkül"

Transkript

1 Der relationale Tupel-Kalkül Udo Kelter Zusammenfassung dieses Lehrmoduls Die relationalen Kalküle sind neben der relationalen Algebra ein alternativer Formalismus, mit dem sich die grundlegenden Möglichkeiten zur Abfrage von Daten in relationalen Datenbanken definieren lassen. Dieses Lehrmodul stellt den relationalen Tupel-Kalkül an Beispielen vor. In der Grundform des Tupel-Kalküls sind Abfragen möglich, die zu unendlich großen Ergebnissen führen. Daher erlaubt man nur sogenannte sichere Abfragen. Wir diskutieren abschließend die relationale Vollständigkeit der Kalküle. Vorausgesetzte Lehrmodule: obligatorisch: Datenverwaltungssysteme Das relationale Datenbankmodell Stoffumfang in Vorlesungsdoppelstunden: 0.5 1

2 Der relationale Tupel-Kalkül 2 Inhaltsverzeichnis 1 Die relationalen Kalküle 3 2 Der relationale Tupel-Kalkül Beispiel 1 (Selektion) Beispiel 2 (Projektion) Beispiel 3 (Mengenoperationen) Beispiel 4 (natürlicher Verbund) Beispiel 5 (Division) Syntax von Ausdrücken im RTK 7 4 Sichere RTK-Ausdrücke 8 Literatur Glossar Index Dieser Text darf für nichtkommerzielle Nutzungen als Ganzes und unverändert in elektronischer oder gedruckter Form beliebig weitergegeben werden und in WWW-Seiten, CDs und Datenbanken aufgenommen werden. Jede andere Nutzung, insb. die Veränderung und Überführung in andere Formate, bedarf der expliziten Genehmigung. Die jeweils aktuellste Version ist über erreichbar.

3 Der relationale Tupel-Kalkül 3 1 Die relationalen Kalküle Wenn ein Benutzer bestimmte Daten aus einer relationalen Datenbank extrahieren will, muß er, wenn er die relationale Algebra (s. [RDBM]) verwendet, einen Ausdruck finden, der die gesuchte Menge konstruiert. Der Benutzer muß also zu seinem Suchproblem eine konstruktive, prozedurale Lösung finden. Schöner wäre es, wenn man dem DBMS nur die gesuchten Daten beschreiben müßte und wenn dann das DBMS selbst einen Weg fände, das Suchergebnis zu konstruieren. Dies ist gerade die Grundidee der relationalen Kalküle. Die Frage ist nun, wie der Benutzer dem DBMS die gesuchten Daten beschreibt. Der grundlegende Ansatz besteht darin, hierbei elementare Vergleichsbedingungen zu verwenden - wie wir sie schon bei der relationalen Algebra kennengelernt haben -, und auf dieser Basis aussagenlogische Ausdrücke zu bilden. Man verwendet hier den Prädikatenkalkül 1. Ordnung mit Quantoren. Letztlich bildet man also ein Prädikat, das die gesuchten Daten beschreibt. Es gibt nun zwei grundlegende Alternativen, wie man die Parameter für das Prädikat gestaltet: Tupelvariablen: Eine Abfrage hat hier folgende Grundform: { t P (t) } Das Prädikat P(t) entscheidet für ein Tupel t, ob es zu den gesuchten Daten gehört. Man spricht hier vom relationalen Tupel-Kalkül (RTK). Bereichsvariablen: Eine Abfrage hat hier folgende Grundform: { < x 1, x 2,..., x n > P (x 1, x 2,..., x n ) } Jedes der x i stellt einen Attributwert dar. Das Prädikat P (x 1, x 2,..., x n ) entscheidet für eine Kombination von Attributwerten, ob sie ein Tupel bilden, das zu den gesuchten Daten gehört. Man spricht hier vom relationalen Bereichskalkül. Die beiden Varianten sind für unsere Zwecke gleichwertig; wir werden i.f. nur den relationalen Tupel-Kalkül vorstellen.

4 Der relationale Tupel-Kalkül 4 2 Der relationale Tupel-Kalkül Wir illustrieren den relationalen Tupel-Kalkül an den gleichen Beispiel- Relationen wie in [RDBM], s. Bild 1. Tabelle: kunden Kundennummer Kundenname Wohnort Kreditlimit Meier, Anne Weidenau Büdenbender, Christa Siegen Stötzel, Gyula Siegen Schneider, Peter Netphen Litt, Michael Siegen 0.00 Tabelle: lieferungen Datum Wert Kundennummer Lager Lieferadresse Mitte Bahnhofstr Nord Luisenstr West Bergstr. 33 Abbildung 1: Beispieltabellen Wir werden i.f. folgende Schreibweise benutzen: Wenn A ein Attribut ist und t ein Tupel, dann ist t[a] der Wert des Attributs A in t (auch als die Projektion des Tupels t auf A bezeichnet). Hierbei unterstellen wir natürlich A R, wobei R der Relationentyp von t ist. 2.1 Beispiel 1 (Selektion) Wir suchen hier Kundennummer, Kundenname, Wohnort und Kreditlimit derjenigen Kunden, deren Kreditlimit über DM liegt. Dies liefert uns die folgendermaßen definierte Menge: { t t kunden t[kreditlimit] > } Die Bedingung t[kreditlimit] > stellt hier eine Selektionsbedingung dar. Statt der hier vorliegenden elementaren Bedingung

5 Der relationale Tupel-Kalkül 5 sind i.a. natürlich auch komplexe Ausdrücke möglich. Das Beispiel zeigt, daß Selektionen in den relationalen Kalkülen sehr einfach formulierbar sind. In der relationalen Algebra sieht die Selektion wie folgt aus: σ Kreditlimit>10000 (Kunden) Im folgenden gehen wir die wichtigsten Operatoren der relationalen Algebra durch und zeigen beispielhaft, daß auch sie durch entsprechende aussagenlogische Konstrukte nachbildbar sind. 2.2 Beispiel 2 (Projektion) Wir ändern unser voriges Beispiel dahingehend ab, daß wir nur noch die Namen der Kunden haben wollen. In der relationalen Algebra würden wir auf dieses Attribut projizieren: π Kundenname (σ Kreditlimit>10000 (Kunden)) Die Projektion können wir in den aussagenlogischen Ausdrücken nicht direkt nachbilden. Wir müssen hier die Definition der Projektion direkt einsetzen. Die Projektion einer Relation r auf eine Attributmenge A ist wie folgt definiert: t π A (r) s r s[a] = t[a] Die vorstehende Definition einer Projektion integrieren wir nun in den Ausdruck, der unsere gesuchte Menge definiert: { t s kunden s[kreditlimit] > s[kundenname] = t[kundenname] } Der Typ des Ergebnisses ist in diesem Beispiel nur implizit definiert. (In Beispiel 1 war er durch die Bedingung t Kunden explizit definiert.) Dadurch, daß der aussagenlogische Ausdruck den Term t[kundenname] enthält, ist implizit festgelegt, daß die Ergebnistupel ein Attribut namens Kundenname haben. Der Ergebnistyp enthält genau alle so vorgegebenen Attribute.

6 Der relationale Tupel-Kalkül Beispiel 3 (Mengenoperationen) Gesucht sind nun die Nummern aller Kunden, deren Kreditlimit über DM liegt und die eine Lieferung im Wert von über 1000 DM bekommen haben. Den hier auftretenden Mengendurchschnitt bilden wir direkt auf die und-verknüpfung ab: { t ( s kunden s[kreditlimit] > s[kundennummer] = t[kundennummer] ) ( u lieferungen u[wert] > 1000 u[kundennummer] = t[kundennummer] ) } Analog können wir die Mengenvereinigung durch die oder-verknüpfung nachbilden und die Mengendifferenz durch eine und-nicht - Verknüpfung. 2.4 Beispiel 4 (natürlicher Verbund) Gesucht sind nun die Lieferungen im Wert von über 1000 DM, anzugeben ist der Wert und der Name des Kunden. Bei Verwendung der relationale Algebra würden wir hier einen Verbund bilden: π Kundenname,Wert (σ Wert>1000 (lieferungen) kunden) Den Verbund simulieren wir, indem wir in einem aussagenlogischen Ausdruck die Gleichheit der Werte der Verbundattribute verlangen: { t u lieferungen u[wert] > 1000 t[wert] = u[wert] ( s kunden s[kundennummer] = u[kundennummer] t[kundenname] = s[kundenname] ) } Der eigentliche Test auf Gleichheit der Verbundattribute ist in dem Teilausdruck s[kundennummer] = u[kundennummer] enthalten.

7 Der relationale Tupel-Kalkül Beispiel 5 (Division) Wir suchen jetzt die Kundennummern derjenigen Kunden, die schon von allen Lagern Lieferungen bekommen haben. In der relationalen Algebra sieht die Lösung wie folgt aus: π Kundennummer,Lager (lieferungen) π Lager (lieferungen) In den relationalen Kalkülen können wir den all-quantor direkt einsetzen, ein Umweg über eine Operation wie die Division ist nicht mehr nötig. Informell ausgedrückt hat die gesuchte Menge folgende Spezifikation: { t Lager l gilt : Lieferung für Kunde t von Lager l aus } Konkret ist die Lösung wie folgt: { t l ( l lieferungen lf ( lf lieferungen l[lager] = lf[lager] t[kundennummer] = lf[kundennummer] ) ) } Die Ergebnistupel haben den Typ {Kundennummer}. Die allquantifizierte Variable l durchläuft die ganze Relation lieferungen und projiziert diese, da wir im Rest des Ausdrucks nur l[lager] benutzen, praktisch auf das Attribut Lager. Eine Kundennummer t ist nur dann im Ergebnis, wenn für alle Lager ein Lieferungstupel lf vorhanden ist, das die Kundennummer t und das Lager l aufweist. 3 Syntax von Ausdrücken im RTK Wie schon erwähnt ist { t P (t) } die Grundform einer Abfrage im RTK. Für das darin enthaltene Prädikat gelten die folgenden syntaktischen Regeln: Erlaubte atomare Ausdrücke sind: 1. s r falls s eine Tupelvariable und r eine Relation ist

8 Der relationale Tupel-Kalkül 8 2. s[a] Θ u[b] falls s und u Tupelvariable sind A und B Attribute gleichen Typs, die bei s bzw. u definiert sind Θ ein Vergleichsoperator ist 3. s[a] Θ c falls s eine Tupelvariable ist A ein Attribut, das bei s definiert ist Θ ein Vergleichsoperator ist c eine Konstante aus dem Wertebereich von A ist RTK-Ausdrücke sind generell wie folgt aufgebaut: 1. Atomare Ausdrücke sind RTK-Ausdrücke. 2. Ist P ein RTK-Ausdruck, so sind auch P und (P ) RTK-Ausdrücke. 3. Sind P und Q RTK-Ausdrücke, so sind auch P Q und P Q RTK-Ausdrücke. 4. Ist P (s) ein RTK-Ausdruck mit der freien Tupelvariablen s, so sind auch s (P (s)) und s (P (s)) RTK-Ausdrücke. Eine Variable v in einem Ausdruck P heißt frei, wenn P keinen Quantor über v enthält. 4 Sichere RTK-Ausdrücke Wir hatten bisher noch völlig offengelassen, wie ein DBMS zu einem gegebenen RTK-Ausdruck die Lösung dieser Suchaufgabe findet. Ein einfaches Auswertungsverfahren besteht darin, alle involvierten Relationen zu durchlaufen und das Prädikat auszuwerten. Dummerweise sind auch RTK-Ausdrücke folgender Form möglich: { t (t kunden)} Wir verstehen diese Abfrage so, daß die enthaltenen Tupel den Typ Kunden haben. Verlangt wären hier alle denkbaren Tupel außer denen, die sich gerade in der Datenbank befinden. Die Anzahl dieser

9 Der relationale Tupel-Kalkül 9 Tupel ist extrem groß, das Ergebnis kann in der Praxis nicht konstruiert werden. Derartige unendliche Mengen 1 sind auch innerhalb von verschachtelten RTK-Ausdrücken möglich. Generell können RTK-Ausdrücke, die unendliche Zwischen- oder Endergebnisse enthalten, nicht ausgewertet werden. RTK-Ausdrücke, bei denen dieses Problem nicht auftritt, bei denen also beim Arbeiten auf beliebigen Datenbankinhalten nur endliche Resultate auftreten, bezeichnen wir als sicher. Ein DBMS würde also dann, wenn der Benutzer einen unsicheren Ausdruck auswerten lassen will, dies ablehnen. Dazu muß vor Auswertung des Ausdrucks entschieden werden, ob er nun sicher ist oder nicht. Diese Entscheidung ist nicht immer einfach, weshalb man zwei Arten von Sicherheit unterscheidet: semantische Sicherheit: Dies ist die Sicherheit im allgemeinen Sinn. Leider ist sie i.a. nicht entscheidbar, d.h. dieser Begriff nützt uns in der Praxis nichts. syntaktische Sicherheit: Hier werden syntaktische Restriktionen definiert, die hinreichend, aber nicht unbedingt notwendig für die semantische Sicherheit sind. Die Grundidee besteht hier darin zu verlangen, daß jede freie Variable t überall durch Teilausdrücke wie t[a] = c oder t r an endliche Wertebereiche gebunden wird, die dann gefahrlos durchlaufen werden können. Auf Details wollen wir hier nicht eingehen. In der Praxis kann man nur mit der syntaktischen Sicherheit arbeiten, d.h. das DBMS wird bestimmte Ausdrücke als unsicher ablehnen, obwohl sie es inhaltlich nicht sind. Die Menge der sicheren RTK-Ausdrücke bezeichnen wir mit SRTK. Relationale Vollständigkeit. Wir hatten oben bereits beispielhaft gezeigt, daß man alle Operationen der relationalen Algebra durch 1 Wegen der Endlichkeit der Wertebereiche der Attribute ist natürlich auch die Zahl der damit konstruierbaren Tupel endlich; praktisch sind die Mengen dennoch viel zu groß, um mit Rechnern verarbeitet werden zu können.

10 Der relationale Tupel-Kalkül 10 RTK-Ausdrücke nachbilden kann. Die Frage ist, ob auch die Umkehrung gilt. Für die allgemeinen RTK-Ausdrücke gilt sie nicht. Dies macht man sich leicht klar, weil es in der relationalen Algebra kein Äquivalent zu den unsicheren Ausdrücken gibt: Eine Menge wie {t (t kunden)} kann in der relationalen Algebra nicht konstruiert werden; hierzu bräuchte man einen Konstruktor, der alle Tupel zu einem Relationentyp liefert; von dieser unendlichen Menge wäre dann die vorhandene Relation abzuziehen. Anders verhält es sich beim sicheren RTK: Man kann zeigen, daß man zu jedem SRTK-Ausdruck einen Ausdruck in der relationalen Algebra finden kann, der das gleiche Ergebnis berechnet. Die relationale Algebra und der SRTK sind daher gleichmächtig; insb. ist somit auch der SRTK relational vollständig. Vergleich von (S)RTK und relationaler Algebra. Nachdem sich der SRTK und die relationale Algebra bzgl. ihrer Ausdrucksfähigkeit nicht unterscheiden, liegt die Frage nahe, für welche der beiden Denkwelten man sich entscheiden sollte. Wie die obigen Beispiele zeigen, sind viele einfache Beispiele mit dem RTK umständlicher zu formulieren als mit der relationalen Algebra. Denk- und Schreibweisen mit Quantoren sind für mathematisch ungeübte Benutzer nicht geeignet. Der RTK ist leichter als die relationale Algebra um Ausgabeanweisungen und Standardfunktionen (Summe, Maximalwert etc.) erweiterbar. In der Praxis benutzte Sprachen enthalten stets eine Mischung aus beiden Denkwelten, also sowohl prozedurale als auch deskriptive Sprachelemente.

11 Der relationale Tupel-Kalkül 11 Literatur [RDBM] Kelter, U.: Lehrmodul Das relationale Datenbankmodell ; 2002 Glossar relationaler Bereichskalkül: auf Prädikaten basierende Abfragesprache für relationale Datenbanken, in der einzelne Attribute als Variable benutzt werden relationaler Tupel-Kalkül (RTK): auf Prädikaten basierende Abfragesprache für relationale Datenbanken, in der ganze Tupel als Variable benutzt werden Sicherheit (von RTK-Ausdrücken): ein RTK-Ausdruck ist sicher, wenn er ausgewertet werden kann, ohne daß dabei unbeschränkt große Zwischen- oder Endergebnisse auftreten

12 Index Bereichskalkül, 3, 11 Division, 7 Mengenoperationen, 6 Projektion, 5 relationale Algebra, 10 relationale Kalküle, 3 relationale Vollständigkeit, 9 RTK, 3 Selektion, 4 Sicherheit, 11 RTK-Ausdrücke, 8 SRTK, 9 Tupel-Kalkül, 3, 4, 11 sichere Ausdrücke, 8 Syntax von Ausdrücken, 7 Verbund, 6 12

Relationenkalkül. Prof. Dr. T. Kudraß 1

Relationenkalkül. Prof. Dr. T. Kudraß 1 Relationenkalkül Prof. Dr. T. Kudraß 1 Relationenkalkül Zwei Ausprägungen: Tupelrelationenkalkül (TRK) und Domänenrelationenkalkül (DRK). Kalkül hat Variablen, Konstanten, Vergleichsoperatoren, logische

Mehr

Grundlagen von Datenbanken

Grundlagen von Datenbanken Agenda: Grundlagen von Datenbanken SS 2010 3. Relationale Algebra Prof. Dr. Stefan Böttcher Universität Paderborn mit Material von Prof. Dr. Gregor Engels Grundlagen von Datenbanken - SS 2010 - Prof. Dr.

Mehr

Grundlagen von Datenbanken

Grundlagen von Datenbanken Grundlagen von Datenbanken SS 2010 5. Bereichskalkül (=Domänenkalkül) Agenda: Prof. Dr. Stefan Böttcher Universität Paderborn mit Material von Prof. Dr. Gregor Engels Grundlagen von Datenbanken - SS 2010

Mehr

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 14. Mai 2007 σ KID= 11a (Schüler) π S Name (σ KID= 11a (Schüler))

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 14. Mai 2007 σ KID= 11a (Schüler) π S Name (σ KID= 11a (Schüler)) 3. Übung zur Vorlesung Datenbanken im Sommersemester 2007 mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 14. Mai 2007 Hinweis: Wir schlagen vor, die Aufgaben in der Reihenfolge

Mehr

Das Relationale Modell

Das Relationale Modell Kapitel 3 Das Relationale Modell 1 / 50 Generelle Anmerkungen Wurde in den Siebzigern von E.F.Codd entwickelt (er bekam den Turing Award dafür) Im Moment das am weitesten verbreitete Datenmodell Hat die

Mehr

Kap. 3 Relationenmodell mit relationaler Algebra

Kap. 3 Relationenmodell mit relationaler Algebra Kap. 3 Relationenmodell mit relationaler Algebra Kap. 3.1. Trägermenge Seien D 1, D 2,..., D k Domänen: (Typen, Arten, Sorten, Wertmengen) z.b. string integer real Boolean DateTime BLOB, TIFF-image, HTML-Doc,

Mehr

Query Languages (QL) Relationale Abfragesprachen/Relational

Query Languages (QL) Relationale Abfragesprachen/Relational Relationale Algebra Relationale Abfragesprachen/Relational Query Languages (QL) Abfragesprachen: Daten aus einer Datenbank zu manipulieren und abzufragen (retrieve information) Das relationalle Modell

Mehr

Kriterien für Anfragesprachen. Einführung II. Grundlagen von Anfragen und Änderungen

Kriterien für Anfragesprachen. Einführung II. Grundlagen von Anfragen und Änderungen Einführung Kriterien für Anfragesprachen bisher Relationenschemata mit Basisrelationen, die in der Datenbank gespeichert sind jetzt Abgeleitete Relationenschemata mit virtuellen Relationen, die aus den

Mehr

Aggregatfunktionen in der Relationenalgebra?

Aggregatfunktionen in der Relationenalgebra? Aggregatfunktionen in der Relationenalgebra? Dieter Sosna Aggregatfunktionen in der Relationenalgebra p.1/23 Gliederung Motivation Begriffe Definitionen Anwendungen Zusammenfassung Aggregatfunktionen in

Mehr

Übung 4. Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017)

Übung 4. Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017) Übung 4 Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017) Dennis Fischer [email protected] http://home.in.tum.de/~fischerd/ Technische Universität München Fakultät für Informatik

Mehr

Die Prädikatenlogik erster Stufe: Syntax und Semantik

Die Prädikatenlogik erster Stufe: Syntax und Semantik Die Prädikatenlogik erster Stufe: Syntax und Semantik 1 Mathematische Strukturen und deren Typen Definition 1.1 Eine Struktur A ist ein 4-Tupel A = (A; (R A i i I); (f A j j J); (c A k k K)) wobei I, J,

Mehr

Kapitel 2: Grundlagen von Anfragesprachen

Kapitel 2: Grundlagen von Anfragesprachen 2. Grundlagen von Anfragesprachen Seite 1 Kapitel 2: Grundlagen von Anfragesprachen Sprachparadigmen Relationenalgebra Relationenkalkül später SQL 2. Grundlagen von Anfragesprachen 2.1. Relationenalgebra

Mehr

Motivation Anford. Anfrage- Kalküle Bereichskalkül. Sichere Anfragen Beispiele. Ausdrucksfähigkeit. Tupelkalkül. Motivation Anford.

Motivation Anford. Anfrage- Kalküle Bereichskalkül. Sichere Anfragen Beispiele. Ausdrucksfähigkeit. Tupelkalkül. Motivation Anford. Kapitel 4: Grundlagen von Grundlagen von Anforderungen an Anfragesprachen,. Datenbankeinsatz: Grundlagen von 1 Datenbankeinsatz: Grundlagen von 2 Einführung (1) Einführung (2) Anfrage: Formulierung eines

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

Grundbegriffe aus Logik und Mengenlehre. Prädikatenlogik

Grundbegriffe aus Logik und Mengenlehre. Prädikatenlogik Grundbegriffe aus Logik und Mengenlehre Prädikatenlogik wohlverstandene Grundlagen, eine formale Sprache zur Beschreibung statischer und dynamischer Gesichtspunkte eines Unternehmens syntaktisch und semantisch

Mehr

(Man sagt dafür auch, dass die Teilmenge U bezüglich der Gruppenoperationen abgeschlossen sein muss.)

(Man sagt dafür auch, dass die Teilmenge U bezüglich der Gruppenoperationen abgeschlossen sein muss.) 3. Untergruppen 19 3. Untergruppen Nachdem wir nun einige grundlegende Gruppen kennengelernt haben, wollen wir in diesem Kapitel eine einfache Möglichkeit untersuchen, mit der man aus bereits bekannten

Mehr

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität Datenbanken Unit 4: Das Relationale Modell & Datenintegrität 15. III. 2016 Outline 1 Organisatorisches 2 SQL 3 Relationale Algebra Notation 4 Datenintegrität Organisatorisches Erster Zwischentest: nach

Mehr

Relationaler Tupelkalkül Datenbanken I (Systemorientierte Informatik IV) Sommersemester Syntax des relationalen Tupelkalküls

Relationaler Tupelkalkül Datenbanken I (Systemorientierte Informatik IV) Sommersemester Syntax des relationalen Tupelkalküls Concept Content.. Information Topic Relationaler Tupelkalkül Datenbanken I (Systemorientierte Informatik IV) Sommersemester 2007 Gunar Fiedler ([email protected]) Institut für Informatik

Mehr

Die Sprache QUEL. Beispiel für QUEL-Anfrage. Weitere Datenbanksprachen. Anfragen in QUEL. Welche Lieferanten liefern von Weiß bestellte Waren?

Die Sprache QUEL. Beispiel für QUEL-Anfrage. Weitere Datenbanksprachen. Anfragen in QUEL. Welche Lieferanten liefern von Weiß bestellte Waren? ( " unique - ( ) [ DDL DML des INGRES-Systems DDL analog zu SQL DML an Tupelkalkül angelehnt Die Sprache QUEL Beispiel für QUEL-Anfrage Welche Lieferanten liefern von Weiß bestellte Waren? : range of is

Mehr

Schwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme

Schwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme Schwerpunkte Vollständige und unvollständige Auswertung 8. Ausdrücke, Operatoren (einfache Typen) Teil 1 Seiteneffekte Overloading: Überladung von Operatoren Implizite und explizite (cast) Typumwandlung

Mehr

Einführung in die mathematische Logik

Einführung in die mathematische Logik Prof. Dr. H. Brenner Osnabrück SS 2014 Einführung in die mathematische Logik Vorlesung 14 Die Korrektheit des Ableitungskalküls Im Laufe der Einführung des syntaktischen Prädikatenkalküls haben wir gesehen,

Mehr

3. Grundlagen relationaler Datenbanksysteme

3. Grundlagen relationaler Datenbanksysteme 3. Grundlagen relationaler Datenbanksysteme Hier nur kurze Rekapitulation, bei Bedarf nachlesen 3.1 Basiskonzepte des Relationenmodells 1 Darstellung der Miniwelt in Tabellenform (DB = Menge von Relationen

Mehr

Fragen zum Nachdenken: Wie könnte man das Fehlen eines Attribut-Wertes interpretieren?

Fragen zum Nachdenken: Wie könnte man das Fehlen eines Attribut-Wertes interpretieren? Attribut-Werte-Paare Eine Eigenschaft kann beschrieben werden durch ein Paar [a,w]. Dabei bezeichnet a das Attribut und w den konkreten Wert aus dem Wertebereich W a des Attributs. Die Eigenschaften eines

Mehr

GTI. Hannes Diener. 18. Juni. ENC B-0123,

GTI. Hannes Diener. 18. Juni. ENC B-0123, GTI Hannes Diener ENC B-0123, [email protected] 18. Juni 1 / 32 Als Literatur zu diesem Thema empfiehlt sich das Buch Theoretische Informatik kurzgefasst von Uwe Schöning (mittlerweile in der 5.

Mehr

Syntax von Programmiersprachen

Syntax von Programmiersprachen "Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt Syntax von Programmiersprachen Prof. Dr. Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp

Mehr

Mengenlehre. Jörg Witte

Mengenlehre. Jörg Witte Mengenlehre Jörg Witte 25.10.2007 1 Grbegriffe Die Menegenlehre ist heute für die Mathematik grlegend. Sie spielt aber auch in der Informatik eine entscheidende Rolle. Insbesondere fußt die Theorie der

Mehr

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if

Mehr

Kapitel DB:V (Fortsetzung)

Kapitel DB:V (Fortsetzung) Kapitel DB:V (Fortsetzung) V. Grundlagen relationaler Anfragesprachen Anfragen und Änderungen Relationale Algebra Anfragekalküle Relationaler Tupelkalkül Relationaler Domänenkalkül DB:V-70 Relational Algebra

Mehr

Kapitel 4: Relationen-Kalkül

Kapitel 4: Relationen-Kalkül Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Wintersemester 2006/2007 Vorlesung: Dr. Peer Kröger Übungen: Karsten

Mehr

4. Relationenalgebra. Einleitung. Selektion und Projektion Mengenoperatoren. Verbundoperationen (Join) Division Beispielanfragen

4. Relationenalgebra. Einleitung. Selektion und Projektion Mengenoperatoren. Verbundoperationen (Join) Division Beispielanfragen Einleitung 4. Relationenalgebra Selektion und Projektion Mengenoperatoren Vereinigung, Durchschnitt, Differenz kartesisches Produkt Verbundoperationen (Join) Theta-Join natürlicher Verbund Semi-Join äußerer

Mehr

Automaten und Coinduktion

Automaten und Coinduktion Philipps-Univestität Marburg Fachbereich Mathematik und Informatik Seminar: Konzepte von Programmiersprachen Abgabedatum 02.12.03 Betreuer: Prof. Dr. H. P. Gumm Referentin: Olga Andriyenko Automaten und

Mehr

Syntax von Programmiersprachen

Syntax von Programmiersprachen "Grammatik, die sogar Könige zu kontrollieren weiß aus Molière, Les Femmes Savantes (1672), 2. kt Syntax von Programmiersprachen Prof. Dr. Martin Wirsing Ziele Zwei Standards zur Definition der Syntax

Mehr

3. Untergruppen. 3. Untergruppen 23

3. Untergruppen. 3. Untergruppen 23 3. Untergruppen 23 3. Untergruppen Nachdem wir nun einige grundlegende Gruppen kennengelernt haben, wollen wir in diesem Kapitel eine einfache Möglichkeit untersuchen, mit der man aus bereits bekannten

Mehr

Abschnitt 3.2: Der Satz von Ehrenfeucht

Abschnitt 3.2: Der Satz von Ehrenfeucht Abschnitt 3.2: Der Satz von Ehrenfeucht In diesem Abschnitt wird gezeigt, dass ein enger Zusammenhang zwischen EF-Spielen und der Ausdrucksstärke der Logik erster Stufe besteht. Zur Formulierung dieses

Mehr

1 Lineare Gleichungssysteme und Matrizen

1 Lineare Gleichungssysteme und Matrizen 1 Lineare Gleichungssysteme und Matrizen Das Studium linearer Gleichungssysteme und ihrer Lösungen ist eines der wichtigsten Themen der linearen Algebra. Wir werden zunächst einige grundlegende Begriffe

Mehr

Syntax von Programmiersprachen

Syntax von Programmiersprachen "Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt Syntax von Programmiersprachen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang WS 07/08

Mehr

Das relationale Datenbankmodell

Das relationale Datenbankmodell Das relationale Datenbankmodell Udo Kelter 09.12.2002 Zusammenfassung dieses Lehrmoduls Das relationale Datenbankmodell besteht im Kern aus Operationen wie der Selektion, der Projektion und diversen Verbundoperationen.

Mehr

Formale Grundlagen der Informatik 1 Kapitel 19. Syntax & Semantik

Formale Grundlagen der Informatik 1 Kapitel 19. Syntax & Semantik Formale Grundlagen der Informatik 1 Kapitel 19 & Frank Heitmann [email protected] 23. Juni 2015 Frank Heitmann [email protected] 1/25 Motivation Die ist eine Erweiterung

Mehr

Vorlesung Datenbanksysteme vom

Vorlesung Datenbanksysteme vom Vorlesung Datenbanksysteme vom 27.10.2008 Wiederholung: Relationale Algebra Relationale Algebra Join-Operatoren Eigenschaften der relationalen Operatoren Grundlagen des relationalen Modells Seien D 1,

Mehr

Vorlesung Datenbanken I Zwischenklausur

Vorlesung Datenbanken I Zwischenklausur Prof. Dr. Stefan Brass 12. Dezember 2003 Institut für Informatik MLU Halle-Wittenberg Vorlesung Datenbanken I Zwischenklausur Name: Matrikelnummer: Studiengang: Aufgabe Punkte Max. Punkte Zeit 1 (Integritätsbedingungen)

Mehr

Kapitel 3: Relationale Algebra

Kapitel 3: Relationale Algebra Kapitel 3: Relationale Algebra Algebra Motivation (1) Wir wollen aus Relationen für uns interessante Informationen extrahieren, Tabellen modifizieren und neue Tabellen aus alten generieren Datenbankeinsatz:

Mehr

Logik und Künstliche Intelligenz

Logik und Künstliche Intelligenz Logik und Künstliche Intelligenz Kurze Zusammenfassung (Stand: 14. Januar 2010) Prof. Dr. V. Stahl Copyright 2007 by Volker Stahl. All rights reserved. V. Stahl Logik und Künstliche Intelligenz Zusammenfassung

Mehr

Datenbanken 1. Relationale Algebra. Nikolaus Augsten. FB Computerwissenschaften Universität Salzburg

Datenbanken 1. Relationale Algebra. Nikolaus Augsten. FB Computerwissenschaften Universität Salzburg Datenbanken 1 Nikolaus Augsten [email protected] FB Computerwissenschaften Universität Salzburg http://dbresearch.uni-salzburg.at Sommersemester 2015 Version: 29. Juni 2015 Augsten (Univ. Salzburg)

Mehr

THEORETISCHE INFORMATIK UND LOGIK

THEORETISCHE INFORMATIK UND LOGIK Prädikatenlogik als Universalsprache Die Entwicklung der Logik hat ein zentrales Motiv: Logik als eine universelle, präzise Sprache THEORETISCHE INFORMATIK UND LOGIK 15. Vorlesung: Logisches Schließen

Mehr

Vor(schau)kurs für Studienanfänger Mathematik: Aussagen und Mengen

Vor(schau)kurs für Studienanfänger Mathematik: Aussagen und Mengen Vor(schau)kurs für Studienanfänger Mathematik: Aussagen und Mengen 09.10.2014 Herzlich Willkommen zum 2. Teil des Vorschaukurses für Mathematik! Organisatorisches Der Vorkurs besteht aus sechs Blöcken

Mehr

Logische und funktionale Programmierung

Logische und funktionale Programmierung Logische und funktionale Programmierung Vorlesung 11: Logikprogramme Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca [email protected] 19. Dezember 2016 1/55 WIEDERHOLUNG: HORN-KLAUSELN

Mehr

Schlüssel. Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1

Schlüssel. Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1 Schlüssel Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1 und t 2 r gilt: - t 1 (K) t 2 (K) und - keine echte Teilmenge K'

Mehr

14. Rekursiv aufzählbare Mengen

14. Rekursiv aufzählbare Mengen 14. Rekursiv aufzählbare Mengen In diesem Abschnitt fassen wir einige Eigenschaften der rekursiv aufzählbaren d.h. der nach Churchscher These (effektiv) aufzählbaren Mengen zusammen. In Korollar 11.8 haben

Mehr

Datenbanksysteme I WS 17/18 HS-Übung. Universität Leipzig, Institut für Informatik Abteilung Datenbanken Prof. Dr. E. Rahm, V. Christen, M.

Datenbanksysteme I WS 17/18 HS-Übung. Universität Leipzig, Institut für Informatik Abteilung Datenbanken Prof. Dr. E. Rahm, V. Christen, M. Datenbanksysteme I WS 17/18 HS-Übung Universität Leipzig, Institut für Informatik Abteilung Datenbanken Prof. Dr. E. Rahm, V. Christen, M. Franke Kapitel 1: Definitionen Grundlegenge Begriffe IS, DB, DBMS/

Mehr

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware.

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware. *HVFKDFKWHOWH$QIUDJHQ In einer SQL-Anweisung können in der where-klausel, from-klausel, select-klausel wieder SQL-Anweisungen auftreten. Man spricht dann auch von einer geschachtelten Anfrage oder Unteranfrage.

Mehr

Logik erster Stufe FO

Logik erster Stufe FO Logik erster Stufe FO Sonderstellung als die Logik für die Grundlegung der Mathematik natürliche Semantik (Tarski) und große Ausdrucksstärke vollständige Beweiskalküle (Gödelscher Vollständigkeitssatz)

Mehr

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) DDL ist Teil von SQL (Structured

Mehr

Die mathematische Seite

Die mathematische Seite Kellerautomaten In der ersten Vorlesung haben wir den endlichen Automaten kennengelernt. Mit diesem werden wir uns in der zweiten Vorlesung noch etwas eingängiger beschäftigen und bspw. Ansätze zur Konstruktion

Mehr

Kapitel 6. Fixpunkte und semantische Bereiche

Kapitel 6. Fixpunkte und semantische Bereiche Kapitel 6 Fixpunkte und semantische Bereiche Sowohl bei der Definition der operationalen Semantik als auch bei der Definition der mathematischen Semantik haben wir mehr oder weniger explizit Fixpunkte

Mehr

Grundlagen von Datenbanken. Relationale Algebra und algebraische Optimierung

Grundlagen von Datenbanken. Relationale Algebra und algebraische Optimierung Grundlagen von Datenbanken Relationale Algebra und algebraische Optimierung Relationale Algebra Überblick Selektion: σ Projektion: π Mengenoperationen:,,,, Kartesisches Produkt: Verbund (Join): Umbenennung:

Mehr

Folie 1. Taylor-Reihen

Folie 1. Taylor-Reihen Folie 4 e!!! 4! Taylor-Reihen Im Zusammenhang mit der Berechnung von Tangenten hatten wir den Begriff der Linearisierung eingeführt. Dies bedeutet, dass eine Funktion in einem Teilbereich durch eine Tangente

Mehr

Mathematik II für Studierende der Informatik (Analysis und lineare Algebra) im Sommersemester 2018

Mathematik II für Studierende der Informatik (Analysis und lineare Algebra) im Sommersemester 2018 (Analysis und lineare Algebra) im Sommersemester 2018 2. Juli 2018 1/1 Wir geben einige wesentliche Sätze über bestimmte Integrale an, deren Beweise man in den Standardlehrbüchern der Analysis findet.

Mehr

1 Mengen und Aussagen

1 Mengen und Aussagen $Id: mengen.tex,v 1.2 2010/10/25 13:57:01 hk Exp hk $ 1 Mengen und Aussagen Der wichtigste Grundbegriff der Mathematik ist der Begriff einer Menge, und wir wollen damit beginnen die klassische, 1878 von

Mehr

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme Stefan Brass: OOP (Java), 3. 1/31 Objektorientierte Programmierung Kapitel 3: Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/ brass/oop14/

Mehr

Differenzengleichungen. und Polynome

Differenzengleichungen. und Polynome Lineare Differenzengleichungen und Polynome Franz Pauer Institut für Mathematik, Universität Innsbruck Technikerstr. 13/7, A-600 Innsbruck, Österreich [email protected] 1 Einleitung Mit linearen Differenzengleichungen

Mehr

etutor Benutzerhandbuch Relationale Algebra Benutzerhandbuch Georg Nitsche

etutor Benutzerhandbuch Relationale Algebra Benutzerhandbuch Georg Nitsche etutor Benutzerhandbuch Benutzerhandbuch Relationale Algebra Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 6.3.2006 Fertigstellung der ersten Version

Mehr

3.4 Die relationale Algebra

3.4 Die relationale Algebra Algebra: 3.4 Die relationale Algebra gegeben eine Menge N ( Anker der Algebra ) Menge von Operationen { σ 1,, σ n } der Form σ j :N k N elationale Algebra Anker ist die Menge aller elationen {(, I) I ist

Mehr

Anfragebearbeitung. Logische Optimierung Physische Optimierung (Kostenmodelle Tuning ) Kapitel 8 1

Anfragebearbeitung. Logische Optimierung Physische Optimierung (Kostenmodelle Tuning ) Kapitel 8 1 Anfragebearbeitung Logische Optimierung Physische Optimierung (Kostenmodelle Tuning ) Kapitel 8 1 Ablauf der Anfrageoptimierung Deklarative Anfrage (SQL) Scanner Parser Sichtenauflösung Algebraischer Ausdruck

Mehr

4.1 Motivation. Theorie der Informatik. Theorie der Informatik. 4.1 Motivation. 4.2 Syntax der Prädikatenlogik. 4.3 Semantik der Prädikatenlogik

4.1 Motivation. Theorie der Informatik. Theorie der Informatik. 4.1 Motivation. 4.2 Syntax der Prädikatenlogik. 4.3 Semantik der Prädikatenlogik Theorie der Informatik 3. März 2014 4. Prädikatenlogik I Theorie der Informatik 4. Prädikatenlogik I 4.1 Motivation Malte Helmert Gabriele Röger 4.2 Syntax der Prädikatenlogik Universität Basel 3. März

Mehr

KAPITEL 5. Damit wird F n (B) selbst zu einer Booleschen Algebra und es gilt f(x) := f(x) 0(x) := 0 B 1(x) := 1 B

KAPITEL 5. Damit wird F n (B) selbst zu einer Booleschen Algebra und es gilt f(x) := f(x) 0(x) := 0 B 1(x) := 1 B KAPITEL 5 Boolesche Polynome Polynome über R, d.h. reelle Funktionen der Form p(x) = a 0 + a 1 x + + a n x n, x R, sind schon aus der Schulmathematik bekannt. Wir beschäftigen uns nun mit Booleschen Polynomen,

Mehr

Kapitel 1.5 und 1.6. Ein adäquater Kalkül der Aussagenlogik

Kapitel 1.5 und 1.6. Ein adäquater Kalkül der Aussagenlogik Kapitel 1.5 und 1.6 Ein adäquater Kalkül der Aussagenlogik Teil 1: Kalküle und Beweisbarkeit und die Korrektheit des Shoenfield-Kalküls Mathematische Logik (WS 2010/11) Kapitel 1.5 und 1.6: Kalküle 1 /

Mehr