Kapitel DB:V (Fortsetzung)



Ähnliche Dokumente
Kapitel DB:V (Fortsetzung)

Kapitel 7 Dr. Jérôme Kunegis. Logische Kalküle. WeST Web Science & Technologies

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

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

Logik für Informatiker

Relationale Kalküle. Grundlagen der Datenbanken. Dr. Jérôme Kunegis Wintersemester 2013/14

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

Programmiersprachen und Übersetzer

Grundbegriffe der Informatik

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Semantik von Formeln und Sequenzen

1 Aussagenlogik und Mengenlehre

Zeichen bei Zahlen entschlüsseln

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur

Ein Beispiel: Tabelle DICHTER

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

Grammatiken. Einführung

How to do? Projekte - Zeiterfassung

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.


Theorie der Informatik

Kalkülteil. Structured Query Language, SQL. 1. Semantik: erzeuge alle Kombinationen von Tupeln

Informatik 12 Datenbanken SQL-Einführung

Datenbanken. Sommersemester 2010 Probeklausur

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

3. Das Relationale Datenmodell

Grundbegriffe der Informatik

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

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1 Mathematische Grundlagen

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

Funktion Erläuterung Beispiel

Data Mining: Einige Grundlagen aus der Stochastik

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Der Zwei-Quadrate-Satz von Fermat

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Erwin Grüner

Theoretische Grundlagen des Software Engineering

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

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

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

7 Rechnen mit Polynomen

Datenbanken I - Übung 1

Übung Datenbanken in der Praxis. Relationale Algebra

Informatik IC2. Balazs Simon

Primzahlen und RSA-Verschlüsselung

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Logische Folgerung. Definition 2.11

9. Übung Formale Grundlagen der Informatik

Null-Werte in Relationalen Datenbanken

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

2. Vorlesung. Slide 40

Grundlagen der Künstlichen Intelligenz

Übungsblatt 4. Aufgabe 7: Datensicht Fachkonzept (Klausur SS 2002, 1. Termin)

Grundlagen der Theoretischen Informatik, SoSe 2008

Kapitel MK:IV. IV. Modellieren mit Constraints

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

Professionelle Seminare im Bereich MS-Office

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

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

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

6. Bayes-Klassifikation. (Schukat-Talamazzini 2002)

3. Grundlagen der Linearen Programmierung

Online-Prüfungs-ABC. ABC Vertriebsberatung GmbH Bahnhofstraße Neckargemünd

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

8.2 Thermodynamische Gleichgewichte, insbesondere Gleichgewichte in Mehrkomponentensystemen Mechanisches und thermisches Gleichgewicht

3. LINEARE GLEICHUNGSSYSTEME

Datenbanken: Relationales Datenbankmodell RDM

Prädikatenlogik - Micromodels of Software

Mathematik. UND/ODER Verknüpfung. Ungleichungen. Betrag. Intervall. Umgebung

Kapitalerhöhung - Verbuchung

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

Häufig wiederkehrende Fragen zur mündlichen Ergänzungsprüfung im Einzelnen:

Informationsblatt Induktionsbeweis

Ein Vorwort, das Sie lesen müssen!

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

0, v 6 = , v 4 = span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 )

Prolog basiert auf Prädikatenlogik

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Benutzerverwaltung Business- & Company-Paket

Einführung in die Algebra

MS Access 2010 Kompakt

Erfüllbarkeit und Allgemeingültigkeit

Satz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

Mathematische Maschinen

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

8.2 Thermodynamische Gleichgewichte, insbesondere Gleichgewichte in Mehrkomponentensystemen Mechanisches und thermisches Gleichgewicht

Was bisher geschah. Aufgaben: Diagnose, Entscheidungsunterstützung Aufbau Komponenten und Funktion

Ihr Mandant möchte einen neuen Gesellschafter aufnehmen. In welcher Höhe wäre eine Vergütung inklusive Tantieme steuerrechtlich zulässig?

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

Eine mathematische Reise ins Unendliche. Peter Koepke Universität Bonn

Korrelation (II) Korrelation und Kausalität

Das Bundesministerium für Inneres gibt im Folgenden wie bei früheren Wahlen unvorgreiflich des Prüfungs- und Entscheidungsrechts der Sprengel-,

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

PowerPoint 2010 Mit Folienmastern arbeiten

Transkript:

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

Anfragekalküle Einleitung Anfragealgebren spiegeln das Konzept von abstrakten Datenstrukturen wider; der Datentyp ist die Relation mit entsprechenden Operationen hierauf. Ein relationaler Ausdruck ist eine prozedurale Beschreibung, also eine genau festgelegte Folge von Operationen zur Berechnung einer Anfrage. DB:V-68 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Einleitung Anfragealgebren spiegeln das Konzept von abstrakten Datenstrukturen wider; der Datentyp ist die Relation mit entsprechenden Operationen hierauf. Ein relationaler Ausdruck ist eine prozedurale Beschreibung, also eine genau festgelegte Folge von Operationen zur Berechnung einer Anfrage. Anfragekalküle sind ein logikbasierter Ansatz zur Beschreibung der Ergebnismenge einer Anfrage. Sie können als deklarative bzw. nicht-prozedurale Sprache aufgefasst werden. Insbesondere enthält eine Formel des Kalküls keine Information darüber, wie sie auszuwerten ist. Für das relationale Modell betrachtet man folgende Kalküle: 1. relationaler Tupelkalkül 2. relationaler Domänenkalkül, auch Bereichskalkül genannt DB:V-69 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Einleitung (Fortsetzung) Die Kalkülsprache verwendet die Namen der Relationen und Attribute. Die Sätze der Kalkülsprache heißen Formeln. Die Grundbausteine der Formeln heißen Atome. Formeln, deren (Un)Wahrheit sich feststellen lässt, heißt Aussagen. DB:V-70 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Einleitung (Fortsetzung) Die Kalkülsprache verwendet die Namen der Relationen und Attribute. Die Sätze der Kalkülsprache heißen Formeln. Die Grundbausteine der Formeln heißen Atome. Formeln, deren (Un)Wahrheit sich feststellen lässt, heißt Aussagen. Beispiele für Formeln: (a) Mitarbeiter(t) alternativ: t Mitarbeiter Tupel t ist Element der Relation Mitarbeiter. (b) Mitarbeiter( (Smith, 1234, Weimar, 3334, 5) ) Tupel (Smith, 1234, Weimar, 3334, 5) ist kein Element der Relation Mitarbeiter. (c) t : Mitarbeiter(t) t.abtnr = 5 Es gibt ein Tupel in der Relation Mitarbeiter, für das AbtNr= 5 gilt. Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 DB:V-71 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Einleitung (Fortsetzung) Die Kalkülsprache verwendet die Namen der Relationen und Attribute. Die Sätze der Kalkülsprache heißen Formeln. Die Grundbausteine der Formeln heißen Atome. Formeln, deren (Un)Wahrheit sich feststellen lässt, heißt Aussagen. Beispiele für Formeln: (a) Mitarbeiter(t) alternativ: t Mitarbeiter Tupel t ist Element der Relation Mitarbeiter. (b) Mitarbeiter( (Smith, 1234, Weimar, 3334, 5) ) Tupel (Smith, 1234, Weimar, 3334, 5) ist kein Element der Relation Mitarbeiter. (c) t : Mitarbeiter(t) t.abtnr = 5 Es gibt ein Tupel in der Relation Mitarbeiter, für das AbtNr= 5 gilt. Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 DB:V-72 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Einleitung (Fortsetzung) Die Kalkülsprache verwendet die Namen der Relationen und Attribute. Die Sätze der Kalkülsprache heißen Formeln. Die Grundbausteine der Formeln heißen Atome. Formeln, deren (Un)Wahrheit sich feststellen lässt, heißt Aussagen. Beispiele für Formeln: (a) Mitarbeiter(t) alternativ: t Mitarbeiter Tupel t ist Element der Relation Mitarbeiter. (b) Mitarbeiter( (Smith, 1234, Weimar, 3334, 5) ) Tupel (Smith, 1234, Weimar, 3334, 5) ist kein Element der Relation Mitarbeiter. (c) t : Mitarbeiter(t) t.abtnr = 5 Es gibt ein Tupel in der Relation Mitarbeiter, für das AbtNr= 5 gilt. Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 DB:V-73 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Einleitung (Fortsetzung) Die Kalkülsprache verwendet die Namen der Relationen und Attribute. Die Sätze der Kalkülsprache heißen Formeln. Die Grundbausteine der Formeln heißen Atome. Formeln, deren (Un)Wahrheit sich feststellen lässt, heißt Aussagen. Beispiele für Formeln: (a) Mitarbeiter(t) alternativ: t Mitarbeiter Tupel t ist Element der Relation Mitarbeiter. (b) Mitarbeiter( (Smith, 1234, Weimar, 3334, 5) ) Tupel (Smith, 1234, Weimar, 3334, 5) ist kein Element der Relation Mitarbeiter. (c) t : Mitarbeiter(t) t.abtnr = 5 Es gibt ein Tupel in der Relation Mitarbeiter, für das AbtNr= 5 gilt. Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 DB:V-74 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Aufbau einer Formel / Grammatik der Sprache: Syntax I Sei Σ eine Menge von Atomen aus einem Anfragekalkül, dann sind folgende Ausdrücke Formeln in diesem Kalkül: 1. Jedes Atom in Σ ist eine Formel. 2. Sind α und β Formeln, so sind es auch (α), α, α β, α β und α β. DB:V-75 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Aufbau einer Formel / Grammatik der Sprache: Syntax I Sei Σ eine Menge von Atomen aus einem Anfragekalkül, dann sind folgende Ausdrücke Formeln in diesem Kalkül: 1. Jedes Atom in Σ ist eine Formel. 2. Sind α und β Formeln, so sind es auch (α), α, α β, α β und α β. Beispiele: (a) Mitarbeiter(t) alternativ: t Mitarbeiter Aussageform, Atom (b) Mitarbeiter( (Smith, 1234, Weimar, 3334, 5) ) Aussage (falsch), Atom (c) t : Mitarbeiter(t) t.abtnr = 5 Aussage (wahr), keine atomare Formel Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 DB:V-76 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Bewertung einer Formel / Interpretation der Sprache: Semantik I 1. Auf Basis des Datenbankzustandes d(r) = {r 1,..., r p } lässt sich einem Atom in Σ ein Wahrheitswert zuweisen. 2. Auf Basis der Wahrheitswerte der Atome lässt sich rekursiv gemäß der üblichen Semantik für,,, einer Formel α ein Wahrheitswert I(α) zuweisen. DB:V-77 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Bewertung einer Formel / Interpretation der Sprache: Semantik I 1. Auf Basis des Datenbankzustandes d(r) = {r 1,..., r p } lässt sich einem Atom in Σ ein Wahrheitswert zuweisen. 2. Auf Basis der Wahrheitswerte der Atome lässt sich rekursiv gemäß der üblichen Semantik für,,, einer Formel α ein Wahrheitswert I(α) zuweisen. Beispiele: (b) I( Mitarbeiter( (Smith, 1234, Weimar, 3334, 5) ) ) = 0 } {{ } α Atom Atom { }} { { }} { (c) I( t : Mitarbeiter(t) t.abtnr = 5 ) = 1 } {{ } α Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 DB:V-78 Relational Algebra & Calculus STEIN 2004-2015

Bemerkungen: Ein Atom ist die einfachste Formel. Eine Formel stellt entweder eine Aussage oder eine Aussageform dar. Von einer Aussage lässt sich feststellen, ob sie wahr oder falsch ist; von einer Aussageform lässt sich nicht die Wahrheit bzw. Unwahrheit feststellen. In einem Anfragekalkül geschieht die Feststellung des Wahrheitswertes (= Interpretation, Semantik) einer atomaren Aussage auf Basis des Datenbankzustandes: das Atom entspricht dem Test, ob ein bestimmtes Wertetupel t oder ein bestimmter Attributwert x ein Element einer Relation r im Datenbankzustand d(r) = {r 1,..., r p } ist. Der Wahrheitswert (= Interpretation, Semantik) einer komplexen Formel leitet sich in eindeutiger Weise von den Wahrheitswerten der Atome der Formel ab. Dabei ist die Verknüpfung von Wahrheitswerten mit den Junktoren (= Operatoren),,, wie folgt definiert: α 0 1 1 0 β 0 1 α 0 0 0 1 0 1 β 0 1 α 0 0 1 1 1 1 β 0 1 α 0 1 1 1 0 1 Die Interpretationsfunktion wird mit I bezeichnet und liefert für eine Formel α, die eine Aussage darstellt, ihren Wahrheitswert: α I(α), I(α) {0, 1}. Mit Formeln werden die Bedingungen einer Datenbankanfrage nachgebildet. DB:V-79 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Freie und gebundene Variablen Sei α eine Formel, die eine Variable x enthält. Dann sei vereinbart: (a) Ist α ein Atom, so ist x eine freie Variable. (b) Das Vorkommen von x in (α), α, α β, α β und α β ist frei oder gebunden abhängig davon, ob es in α frei oder gebunden ist. (c) Alle freien Vorkommen von x in α sind gebunden in xα und xα. (d) In keiner Formel darf eine Variable sowohl frei als auch gebunden auftreten. DB:V-80 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Freie und gebundene Variablen Sei α eine Formel, die eine Variable x enthält. Dann sei vereinbart: (a) Ist α ein Atom, so ist x eine freie Variable. (b) Das Vorkommen von x in (α), α, α β, α β und α β ist frei oder gebunden abhängig davon, ob es in α frei oder gebunden ist. (c) Alle freien Vorkommen von x in α sind gebunden in xα und xα. (d) In keiner Formel darf eine Variable sowohl frei als auch gebunden auftreten. DB:V-81 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Freie und gebundene Variablen Sei α eine Formel, die eine Variable x enthält. Dann sei vereinbart: (a) Ist α ein Atom, so ist x eine freie Variable. (b) Das Vorkommen von x in (α), α, α β, α β und α β ist frei oder gebunden abhängig davon, ob es in α frei oder gebunden ist. (c) Alle freien Vorkommen von x in α sind gebunden in xα und xα. (d) In keiner Formel darf eine Variable sowohl frei als auch gebunden auftreten. DB:V-82 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Freie und gebundene Variablen Sei α eine Formel, die eine Variable x enthält. Dann sei vereinbart: (a) Ist α ein Atom, so ist x eine freie Variable. (b) Das Vorkommen von x in (α), α, α β, α β und α β ist frei oder gebunden abhängig davon, ob es in α frei oder gebunden ist. (c) Alle freien Vorkommen von x in α sind gebunden in xα und xα. (d) In keiner Formel darf eine Variable sowohl frei als auch gebunden auftreten. DB:V-83 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Freie und gebundene Variablen Sei α eine Formel, die eine Variable x enthält. Dann sei vereinbart: (a) Ist α ein Atom, so ist x eine freie Variable. (b) Das Vorkommen von x in (α), α, α β, α β und α β ist frei oder gebunden abhängig davon, ob es in α frei oder gebunden ist. (c) Alle freien Vorkommen von x in α sind gebunden in xα und xα. (d) In keiner Formel darf eine Variable sowohl frei als auch gebunden auftreten. Aufbau einer Formel / Grammatik der Sprache: Syntax II 3. Ist α eine Formel, so sind es auch xα und xα wobei x eine Variable ist, die in α frei vorkommt. Bewertung einer Formel / Interpretation der Sprache: Semantik II 3. Eine Formel xα ist wahr, falls α bzgl. einer Instanziierung von x wahr wird. Eine Formel xα ist wahr, falls α bzgl. aller Instanziierungen von x wahr wird. Die Menge der möglichen Instanziierungen heißt Universum. DB:V-84 Relational Algebra & Calculus STEIN 2004-2015

Bemerkungen: Eine Formel mit freien Variablen stellt eine Aussageform dar. Eine Formel, die keine oder nur gebundene (= instanziierte) Variablen enthält, stellt eine Aussage dar. Die für eine Instanziierung zur Verfügung stehenden Wertetupel t bzw. Attributwerte x stammen aus einem Grundbereich, auch Universum genannt. Das Universum enthält alle möglichen Tupel bzw. Attributwerte, die in einem Datenbankzustand vorliegen können. Im Allgemeinen enthält das Universum unendlich viele Elemente. DB:V-85 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Auswertung einer Anfrage Gegeben: Anfrage { α} mit freien Variablen in und Formel α Datenbankzustand d(r) = {r 1,..., r p } DB:V-86 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Auswertung einer Anfrage Gegeben: Anfrage { α} mit freien Variablen in und Formel α Datenbankzustand d(r) = {r 1,..., r p } Beispiel: Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Anfrage Liefere die Namen der Mitarbeiter, die in Abteilung 5 arbeiten. Relationenalgebra π Name (σ AbtNr= 5 (Mitarbeiter)) Tupelkalkül { α} {(t.name) Atom { }} { Mitarbeiter(t) Atom { }} { t.abtnr = 5 } = {(Smith), (Wong)} DB:V-87 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Auswertung einer Anfrage Gegeben: Anfrage { α} mit freien Variablen in und Formel α Datenbankzustand d(r) = {r 1,..., r p } Beispiel: Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Anfrage Liefere die Namen der Mitarbeiter, die in Abteilung 5 arbeiten. Relationenalgebra π Name (σ AbtNr= 5 (Mitarbeiter)) Tupelkalkül { α} {(t.name) Atom { }} { Mitarbeiter(t) Atom { }} { t.abtnr = 5 } = {(Smith), (Wong)} DB:V-88 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Auswertung einer Anfrage Gegeben: Anfrage { α} mit freien Variablen in und Formel α Datenbankzustand d(r) = {r 1,..., r p } Beispiel: Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Anfrage Liefere die Namen der Mitarbeiter, die in Abteilung 5 arbeiten. Relationenalgebra π Name (σ AbtNr= 5 (Mitarbeiter)) Tupelkalkül { α} {(t.name) Atom { }} { Mitarbeiter(t) Atom { }} { t.abtnr = 5 } = {(Smith), (Wong)} DB:V-89 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Auswertung einer Anfrage Gegeben: Anfrage { α} mit freien Variablen in und Formel α Datenbankzustand d(r) = {r 1,..., r p } Beispiel: Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Anfrage Liefere die Namen der Mitarbeiter, die in Abteilung 5 arbeiten. Relationenalgebra π Name (σ AbtNr= 5 (Mitarbeiter)) Tupelkalkül { α} {(t.name) Atom { }} { Mitarbeiter(t) Atom { }} { t.abtnr = 5 } = {(Smith), (Wong)} DB:V-90 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Auswertung einer Anfrage Gegeben: Anfrage { α} mit freien Variablen in und Formel α Datenbankzustand d(r) = {r 1,..., r p } Beispiel: Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Anfrage Liefere die Namen der Mitarbeiter, die in Abteilung 5 arbeiten. Relationenalgebra π Name (σ AbtNr= 5 (Mitarbeiter)) Tupelkalkül { α} {(t.name) Atom { }} { Mitarbeiter(t) Atom { }} { t.abtnr = 5 } = {(Smith), (Wong)} DB:V-91 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Auswertung einer Anfrage (Fortsetzung) Gegeben: Anfrage { α} mit freien Variablen in und Formel α Datenbankzustand d(r) = {r 1,..., r p } Schema zur Konstruktion der Ergebnisrelation res für Anfrage { α} : 1. res = 2. Die freien Variablen (= die Variablen in ) werden hinsichtlich aller Tupel (im Tupelkalkül) bzw. aller Attributwerte (im Domänenkalkül) für die in der Datenbank befindlichen Relationen {r 1,..., r p } instanziiert. Durch die Instanziierung wird die Aussageform α zu einer Aussage. 3. Für jede Instanziierung der freien Variablen wird geprüft, ob die Formel α wahr (erfüllt) ist. Falls ja, setze res = res { } 4. res enthält keine weiteren Elemente. DB:V-92 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Auswertung einer Anfrage (Fortsetzung) Gegeben: Anfrage { α} mit freien Variablen in und Formel α Datenbankzustand d(r) = {r 1,..., r p } Schema zur Konstruktion der Ergebnisrelation res für Anfrage { α} : 1. res = 2. Die freien Variablen (= die Variablen in ) werden hinsichtlich aller Tupel (im Tupelkalkül) bzw. aller Attributwerte (im Domänenkalkül) für die in der Datenbank befindlichen Relationen {r 1,..., r p } instanziiert. Durch die Instanziierung wird die Aussageform α zu einer Aussage. 3. Für jede Instanziierung der freien Variablen wird geprüft, ob die Formel α wahr (erfüllt) ist. Falls ja, setze res = res { } 4. res enthält keine weiteren Elemente. DB:V-93 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Auswertung einer Anfrage (Fortsetzung) Gegeben: Anfrage { α} mit freien Variablen in und Formel α Datenbankzustand d(r) = {r 1,..., r p } Schema zur Konstruktion der Ergebnisrelation res für Anfrage { α} : 1. res = 2. Die freien Variablen (= die Variablen in ) werden hinsichtlich aller Tupel (im Tupelkalkül) bzw. aller Attributwerte (im Domänenkalkül) für die in der Datenbank befindlichen Relationen {r 1,..., r p } instanziiert. Durch die Instanziierung wird die Aussageform α zu einer Aussage. 3. Für jede Instanziierung der freien Variablen wird geprüft, ob die Formel α wahr (erfüllt) ist. Falls ja, setze res = res { } 4. res enthält keine weiteren Elemente. DB:V-94 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Konzepte [Domänenkalkül] 1. Tupelvariablen, die sich auf Relationen r i d(r), d(r) = {r 1,..., r p }, beziehen und mit jedem Tupel aus r i instanziiert werden können. 2. Formeln, mit denen sich auf Basis der Tupelvariablen Zusammenhänge zwischen Attributen formulieren lassen. DB:V-95 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Anfragen [Domänenkalkül] Anfrage im relationalen Tupelkalkül mit Variablen t 1, t 2,..., t n, t n+1,..., t n+m : {t α} allgemein : {(t 1.A 1, t 2.A 2,..., t n.a n ) α} t 1,..., t n sind freie, t n+1,..., t n+m sind gebundene Tupelvariablen. A 1,..., A n sind Attribute der Relationen bzgl. derer die t i instanziiert sind. α ist eine logische Formel, wobei die Menge der Atome Σ, aus denen α besteht, wie folgt definiert ist: DB:V-96 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Anfragen [Domänenkalkül] Anfrage im relationalen Tupelkalkül mit Variablen t 1, t 2,..., t n, t n+1,..., t n+m : {t α} allgemein : {(t 1.A 1, t 2.A 2,..., t n.a n ) α} t 1,..., t n sind freie, t n+1,..., t n+m sind gebundene Tupelvariablen. A 1,..., A n sind Attribute der Relationen bzgl. derer die t i instanziiert sind. α ist eine logische Formel, wobei die Menge der Atome Σ, aus denen α besteht, wie folgt definiert ist: 1. r(t) alternativ: t r ist ein Atom, wobei t eine Tupelvariable und r eine Relation bezeichnet. r(t) ist wahr für eine Instanziierung von t, falls diese Instanziierung ein Tupel in r ist. DB:V-97 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Anfragen [Domänenkalkül] Anfrage im relationalen Tupelkalkül mit Variablen t 1, t 2,..., t n, t n+1,..., t n+m : {t α} allgemein : {(t 1.A 1, t 2.A 2,..., t n.a n ) α} t 1,..., t n sind freie, t n+1,..., t n+m sind gebundene Tupelvariablen. A 1,..., A n sind Attribute der Relationen bzgl. derer die t i instanziiert sind. α ist eine logische Formel, wobei die Menge der Atome Σ, aus denen α besteht, wie folgt definiert ist: 1. r(t) alternativ: t r ist ein Atom, wobei t eine Tupelvariable und r eine Relation bezeichnet. r(t) ist wahr für eine Instanziierung von t, falls diese Instanziierung ein Tupel in r ist. 2. t i.a i op t j.a j ist ein Atom mit op {=, <,, >,, }. t i, t j bezeichnen Tupelvariablen und A i, A j bezeichnen Attribute aus den Relationen hinsichtlich derer t i bzw. t j instanziiert sind. 3. t i.a i op c ist ein Atom mit op {=, <,, >,, }. t i bezeichnet eine Tupelvariable, A i ein Attribut aus der Relation hinsichtlich der t i instanziiert ist und c dom(a i ) ist eine Konstante. DB:V-98 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Beispiel 1 [Domänenkalkül] Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Abteilung AbtName Nr Manager Forschung 5 3334 Verwaltung 4 9876 Stab 1 8886 AbtStandort AbtNr Ort 1 Berlin 4 Weimar 5 Hamburg 5 Köln ArbeitetInProjekt PersNr ProjektNr 1234 1 1234 2 6668 3 4534 1 Projekt Name Nr Ort AbtNr X 1 Köln 5 Y 2 Hamburg 5 Z 3 Weimar 4 New 8 Weimar 4 Anfrage Liefere Name und Wohnort der Mitarbeiter, die in der Forschung arbeiten. DB:V-99 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Beispiel 1 [Domänenkalkül] Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Abteilung AbtName Nr Manager Forschung 5 3334 Verwaltung 4 9876 Stab 1 8886 AbtStandort AbtNr Ort 1 Berlin 4 Weimar 5 Hamburg 5 Köln ArbeitetInProjekt PersNr ProjektNr 1234 1 1234 2 6668 3 4534 1 Projekt Name Nr Ort AbtNr X 1 Köln 5 Y 2 Hamburg 5 Z 3 Weimar 4 New 8 Weimar 4 Anfrage Liefere Name und Wohnort der Mitarbeiter, die in der Forschung arbeiten. Relationenalgebra TAFEL Tupelkalkül {(t 1.Name, t 1.Wohnort) Mitarbeiter(t 1 ) t 2 (Abteilung(t 2 ) t 2.AbtName = Forschung t 2.Nr = t 1.AbtNr)} DB:V-100 Relational Algebra & Calculus STEIN 2004-2015

Bemerkungen: Die Qualifizierung der freien Tupelvariablen vor dem Trennsymbol bei der Mengenbildung entspricht der Projektion π in der relationalen Algebra. Beispiel: {(t 1.Name,...)...} Eine Bedingung, die sich auf ein Attribut und eine Konstante bezieht, entspricht einer Selektion, σ, in der relationalen Algebra. Beispiel: t 2.AbtName = Forschung Eine Bedingung bzgl. zweier Attribute, die sich auf Tupel aus verschiedenen Relationen bezieht, entspricht einem Verbund (Join),, in der relationalen Algebra. Beispiel: t 2.Nr = t 1.AbtNr DB:V-101 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Beispiel 2 [Domänenkalkül] Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Abteilung AbtName Nr Manager Forschung 5 3334 Verwaltung 4 9876 Stab 1 8886 AbtStandort AbtNr Ort 1 Berlin 4 Weimar 5 Hamburg 5 Köln ArbeitetInProjekt PersNr ProjektNr 1234 1 1234 2 6668 3 4534 1 Projekt Name Nr Ort AbtNr X 1 Köln 5 Y 2 Hamburg 5 Z 3 Weimar 4 New 8 Weimar 4 Anfrage Liefere für jedes Projekt in Weimar dessen Nummer, die Nummer der durchführenden Abteilung sowie Name und Wohnort des Abteilungsmanagers. DB:V-102 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Beispiel 2 [Domänenkalkül] Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Abteilung AbtName Nr Manager Forschung 5 3334 Verwaltung 4 9876 Stab 1 8886 AbtStandort AbtNr Ort 1 Berlin 4 Weimar 5 Hamburg 5 Köln ArbeitetInProjekt PersNr ProjektNr 1234 1 1234 2 6668 3 4534 1 Projekt Name Nr Ort AbtNr X 1 Köln 5 Y 2 Hamburg 5 Z 3 Weimar 4 New 8 Weimar 4 Anfrage Liefere für jedes Projekt in Weimar dessen Nummer, die Nummer der durchführenden Abteilung sowie Name und Wohnort des Abteilungsmanagers. Relationenalgebra π PNr,AbtNr, Name,Wohnort Tupelkalkül TAFEL ((ρ PNr Nr, PName Name (σ Ort= Weimar (Projekt))) AbtNr=Nr Abteilung Manager=PersNr Mitarbeiter) DB:V-103 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Beispiel 3 [Domänenkalkül] Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Abteilung AbtName Nr Manager Forschung 5 3334 Verwaltung 4 9876 Stab 1 8886 AbtStandort AbtNr Ort 1 Berlin 4 Weimar 5 Hamburg 5 Köln ArbeitetInProjekt PersNr ProjektNr 1234 1 1234 2 6668 3 4534 1 Projekt Name Nr Ort AbtNr X 1 Köln 5 Y 2 Hamburg 5 Z 3 Weimar 4 New 8 Weimar 4 Anfrage Liefere die Namen der Mitarbeiter, die in allen Projekten der Abteilung 5 arbeiten. DB:V-104 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Beispiel 3 [Domänenkalkül] Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Abteilung AbtName Nr Manager Forschung 5 3334 Verwaltung 4 9876 Stab 1 8886 AbtStandort AbtNr Ort 1 Berlin 4 Weimar 5 Hamburg 5 Köln ArbeitetInProjekt PersNr ProjektNr 1234 1 1234 2 6668 3 4534 1 Projekt Name Nr Ort AbtNr X 1 Köln 5 Y 2 Hamburg 5 Z 3 Weimar 4 New 8 Weimar 4 Anfrage Liefere die Namen der Mitarbeiter, die in allen Projekten der Abteilung 5 arbeiten. Relationenalgebra π Name ((ArbeitetInProjekt ρ ProjektNr Nr (π Nr (σ AbtNr= 5 (Projekt)))) Mitarbeiter) Tupelkalkül TAFEL DB:V-105 Relational Algebra & Calculus STEIN 2004-2015

Bemerkungen: Interpretation des -Quantors in der folgenden Formel: α = Mitarbeiter(t 1 ) t 3 β Semantik: α ist erfüllt für diejenigen Mitarbeiter(tupel t 1 ), bei denen für alle Tupel t 3 die Teilformel β erfüllt ist. Beachte, dass t 3 an alle Tupel des Universums bzw. des Datenbankzustandes d(r) gebunden wird und bzgl. aller möglichen Instanziierungen die Formel β erfüllen muss. Die Quantoren können verschoben werden, solange sich keine Variablenbindungen ändern und die Ordnung zwischen den - und -Quantoren erhalten bleibt: {(t 1.Name) Mitarbeiter(t 1 ) t 3 t 4 ( (Projekt(t 3 ) (t 3.AbtNr = 5 )) (ArbeitetInProjekt(t 4 ) t 4.ProjektNr = t 3.Nr t 4.PersNr = t 1.PersNr))} DB:V-106 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Beispiel 4 [Domänenkalkül] Buecher Titel Verlag Harry Potter Princeton Heuristics Addison Glücksformel dpunkt Datenbanken Springer Buchhaendler Name Stadt PLZ Lehmann Berlin 99011 Meiersche Aachen 42100 Amazon Köln 52100 Angebote Titel Haendler Harry Potter Lehmann Harry Potter Meiersche Harry Potter Amazon Datenbanken Amazon Glücksformel Amazon Glücksformel Lehmann Anfrage Welche Titel sind bei allen Buchhändlern im Angebot? DB:V-107 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Beispiel 4 [Domänenkalkül] Buecher Titel Verlag Harry Potter Princeton Heuristics Addison Glücksformel dpunkt Datenbanken Springer Buchhaendler Name Stadt PLZ Lehmann Berlin 99011 Meiersche Aachen 42100 Amazon Köln 52100 Angebote Titel Haendler Harry Potter Lehmann Harry Potter Meiersche Harry Potter Amazon Datenbanken Amazon Glücksformel Amazon Glücksformel Lehmann Anfrage Welche Titel sind bei allen Buchhändlern im Angebot? Relationenalgebra (ρ Name Haendler (Angebote)) (π Name (Buchhaendler)) DB:V-108 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Beispiel 4 [Domänenkalkül] Buecher Titel Verlag Harry Potter Princeton Heuristics Addison Glücksformel dpunkt Datenbanken Springer Buchhaendler Name Stadt PLZ Lehmann Berlin 99011 Meiersche Aachen 42100 Amazon Köln 52100 Angebote Titel Haendler Harry Potter Lehmann Harry Potter Meiersche Harry Potter Amazon Datenbanken Amazon Glücksformel Amazon Glücksformel Lehmann Anfrage Welche Titel sind bei allen Buchhändlern im Angebot? Relationenalgebra (ρ Name Haendler (Angebote)) (π Name (Buchhaendler)) Tupelkalkül {(t 1.Titel) Buecher(t 1 ) t 2 ( Buchhaendler(t 2 ) oder: t 2 (Buchhaendler(t 2 ) t 3 (Angebote(t 3 ) t 3.Haendler = t 2.Name t 3.Titel = t 1.Titel))} DB:V-109 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Beispiel 4 [Domänenkalkül] Buecher Titel Verlag Harry Potter Princeton Heuristics Addison Glücksformel dpunkt Datenbanken Springer Buchhaendler Name Stadt PLZ Lehmann Berlin 99011 Meiersche Aachen 42100 Amazon Köln 52100 Angebote Titel Haendler Harry Potter Lehmann Harry Potter Meiersche Harry Potter Amazon Datenbanken Amazon Glücksformel Amazon Glücksformel Lehmann Anfrage Welche Titel sind bei allen Buchhändlern im Angebot? Relationenalgebra (ρ Name Haendler (Angebote)) (π Name (Buchhaendler)) Tupelkalkül {(t 1.Titel) Buecher(t 1 ) t 2 ( Buchhaendler(t 2 ) oder: t 2 (Buchhaendler(t 2 ) t 3 (Angebote(t 3 ) t 3.Haendler = t 2.Name t 3.Titel = t 1.Titel))} DB:V-110 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Beispiel 4 [Domänenkalkül] Buecher Titel Verlag Harry Potter Princeton Heuristics Addison Glücksformel dpunkt Datenbanken Springer Buchhaendler Name Stadt PLZ Lehmann Berlin 99011 Meiersche Aachen 42100 Amazon Köln 52100 Angebote Titel Haendler Harry Potter Lehmann Harry Potter Meiersche Harry Potter Amazon Datenbanken Amazon Glücksformel Amazon Glücksformel Lehmann Anfrage Welche Titel sind bei allen Buchhändlern im Angebot? Relationenalgebra (ρ Name Haendler (Angebote)) (π Name (Buchhaendler)) Tupelkalkül {(t 1.Titel) Buecher(t 1 ) t 2 ( Buchhaendler(t 2 ) oder: t 2 (Buchhaendler(t 2 ) t 3 (Angebote(t 3 ) t 3.Haendler = t 2.Name t 3.Titel = t 1.Titel))} DB:V-111 Relational Algebra & Calculus STEIN 2004-2015

Bemerkungen: Bei (formalen, logischen, natürlichen) Sprachen unterscheidet man zwischen Sätzen aus der Sprache selbst und der Formulierung von Zusammenhängen über solche Sätze. Sätze aus der Sprache selbst dienen uns zur Kommunikation mittels dieser Sprache; die Symbole, die vewendet werden, um solche Sätze zu formulieren, gehören zur Objektsprache. Symbole, die verwendet werden, um über Sätze zu sprechen, die in der Objektsprache formuliert sind, gehören zur Metasprache. Die Formelbezeichner α, β, γ, die Prädikatsbezeichner P, Q, die Quantoren,, die Variablenbezeichner t, x, y, z, und die Junktoren,,, gehören zur Objektsprache. Das -Zeichen ist ein Zeichen der Metasprache und steht für ist logisch äquivalent mit. Es gelten u.a. folgende Zusammenhänge: xp (x) x( P (x)) α β α β (α β) α β (α β) γ α β γ DB:V-112 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Sichere Anfragen Unter (semantisch) sicheren Anfragen versteht man Formeln eines Anfragekalküls, die für jeden Datenbankzustand d(r) = {r 1,..., r p } nur für eine endliche Menge von Variableninstanziierungen erfüllt sind. Beispiel für eine nicht-sichere Anfrage: r(x) : Alle Instanzen von x (im Universum), die nicht in r d(r) sind. Durch die Forderung bestimmter syntaktischer Einschränkungen kann man die semantische Sicherheit für eine Teilmenge der semantisch sicheren Anfragen auf einfache Art bestimmen. Domäne einer Formel α DB:V-113 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Sichere Anfragen (Fortsetzung) Definition 4 (Domäne einer Formel α) Der Bereich bzw. die Domäne einer Formel α ist die Menge aller Konstanten in α vereinigt mit der Menge aller Attributwerte der Relationen r, r α. Beispiel: Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Domäne der Formel Mitarbeiter(t) : {Smith, Wong, Zelaya, Weimar, Köln, Erfurt, 4, 5, 1234, 3334, 8886, 9876, 9998} DB:V-114 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Sichere Anfragen (Fortsetzung) [Domänenkalkül] Folgende Anfrage liefert eine unendliche Zahl von Ergebnissen: {t Mitarbeiter(t)} Eine Anfrage {t α} des Tupelkalküls ist sicher, falls folgende Bedingungen erfüllt sind: 1. Gehört t = (c 1, c 2,..., c n ) in das Anfrageergebnis, so muss {c 1, c 2,..., c n } Teilmenge der Domäne von α sein. Die Suche zur Beantwortung der Anfrage ist auf die Domäne beschränkt. 2. Für jede Teilformel tβ muss gelten, dass β höchstens für Elemente aus seiner Domäne erfüllbar sein kann. β ist für alle Elemente, die nicht in seiner Domäne sind, unerfüllbar. 3. Für jede Teilformel tβ muss gelten, dass tβ dann und nur dann erfüllt ist, wenn β für alle Elemente aus seiner Domäne erfüllt ist. β ist für alle Elemente, die nicht in seiner Domäne sind, immer erfüllt. DB:V-115 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Sichere Anfragen (Fortsetzung) [Domänenkalkül] Folgende Anfrage liefert eine unendliche Zahl von Ergebnissen: {t Mitarbeiter(t)} Eine Anfrage {t α} des Tupelkalküls ist sicher, falls folgende Bedingungen erfüllt sind: 1. Gehört t = (c 1, c 2,..., c n ) in das Anfrageergebnis, so muss {c 1, c 2,..., c n } Teilmenge der Domäne von α sein. Die Suche zur Beantwortung der Anfrage ist auf die Domäne beschränkt. 2. Für jede Teilformel tβ muss gelten, dass β höchstens für Elemente aus seiner Domäne erfüllbar sein kann. β ist für alle Elemente, die nicht in seiner Domäne sind, unerfüllbar. 3. Für jede Teilformel tβ muss gelten, dass tβ dann und nur dann erfüllt ist, wenn β für alle Elemente aus seiner Domäne erfüllt ist. β ist für alle Elemente, die nicht in seiner Domäne sind, immer erfüllt. DB:V-116 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Sichere Anfragen (Fortsetzung) [Domänenkalkül] Folgende Anfrage liefert eine unendliche Zahl von Ergebnissen: {t Mitarbeiter(t)} Eine Anfrage {t α} des Tupelkalküls ist sicher, falls folgende Bedingungen erfüllt sind: 1. Gehört t = (c 1, c 2,..., c n ) in das Anfrageergebnis, so muss {c 1, c 2,..., c n } Teilmenge der Domäne von α sein. Die Suche zur Beantwortung der Anfrage ist auf die Domäne beschränkt. 2. Für jede Teilformel tβ muss gelten, dass β höchstens für Elemente aus seiner Domäne erfüllbar sein kann. β ist für alle Elemente, die nicht in seiner Domäne sind, unerfüllbar. 3. Für jede Teilformel tβ muss gelten, dass tβ dann und nur dann erfüllt ist, wenn β für alle Elemente aus seiner Domäne erfüllt ist. β ist für alle Elemente, die nicht in seiner Domäne sind, immer erfüllt. DB:V-117 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Tupelkalkül Sichere Anfragen (Fortsetzung) [Domänenkalkül] Folgende Anfrage liefert eine unendliche Zahl von Ergebnissen: {t Mitarbeiter(t)} Eine Anfrage {t α} des Tupelkalküls ist sicher, falls folgende Bedingungen erfüllt sind: 1. Gehört t = (c 1, c 2,..., c n ) in das Anfrageergebnis, so muss {c 1, c 2,..., c n } Teilmenge der Domäne von α sein. Die Suche zur Beantwortung der Anfrage ist auf die Domäne beschränkt. 2. Für jede Teilformel tβ muss gelten, dass β höchstens für Elemente aus seiner Domäne erfüllbar sein kann. β ist für alle Elemente, die nicht in seiner Domäne sind, unerfüllbar. 3. Für jede Teilformel tβ muss gelten, dass tβ dann und nur dann erfüllt ist, wenn β für alle Elemente aus seiner Domäne erfüllt ist. β ist für alle Elemente, die nicht in seiner Domäne sind, immer erfüllt. DB:V-118 Relational Algebra & Calculus STEIN 2004-2015

Bemerkungen: Semantische Sicherheit ist eine Eigenschaft, die im Einzelfall leicht zu zeigen sein kann, die aber in der Allgemeinheit nicht automatisch nachprüfbar ist. Die Ursache dafür liegt in der Unentscheidbarkeit der Prädikatenlogik erster Stufe mit Arithmetik. Mit Hilfe der Domäne wird eine syntaktische Einschränkung eingeführt, unter der sich semantische Sicherheit einfach überprüfen lässt. Die Bedingungen verhindern, dass unendlich viele Variableninstanziierungen evaluiert werden müssen. Beachte, dass auch Anfragen, die ein endliches Ergebnis liefern, die Evaluierung unendlich vieler Variableninstanziierungen erfordern können. Bei solchen Anfragen liegt die Unendlichkeit in der Zeit nicht in der Größe der Ergebnismenge. DB:V-119 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Domänenkalkül Konzepte [Tupelkalkül] 1. Domänenvariablen, die sich auf Attribute A in den Relationenschemata R R beziehen und mit jedem Wert aus dem Wertebereich dom(a) von A instanziiert werden können. 2. Formeln, mit denen sich auf Basis der Domänenvariablen Zusammenhänge zwischen Attributen formulieren lassen. DB:V-120 Relational Algebra & Calculus STEIN 2004-2015

Bemerkungen: SQL, Structured Query Language, basiert auf dem relationalen Tupelkalkül und wurde von IBM Research, San Jose, Kalifornien, entwickelt. QBE, Query By Example, basiert auf dem relationalen Domänenkalkül und wurde von IBM Research, Yorktown Heights, New York, entwickelt. Diese Entwicklung fand fast zeitgleich mit der Entwicklung von SQL in San Jose statt. QBE war eine der ersten graphischen Anfragesprachen für Datenbanksysteme und ist bei IBM als Interface-Option für DB2 erhältlich. DB:V-121 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Domänenkalkül Anfragen [Tupelkalkül] Anfrage im relationalen Domänenkalkül mit Variablen x 1,..., x n, x n+1,..., x n+m : {(x 1, x 2,..., x n ) α} x 1,..., x n sind freie, x n+1,..., x n+m sind gebundene Domänenvariablen. α ist eine logische Formel, wobei die Menge der Atome Σ, aus denen α besteht, wie folgt definiert ist: DB:V-122 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Domänenkalkül Anfragen [Tupelkalkül] Anfrage im relationalen Domänenkalkül mit Variablen x 1,..., x n, x n+1,..., x n+m : {(x 1, x 2,..., x n ) α} x 1,..., x n sind freie, x n+1,..., x n+m sind gebundene Domänenvariablen. α ist eine logische Formel, wobei die Menge der Atome Σ, aus denen α besteht, wie folgt definiert ist: 1. r(x r1, x r2,..., x rk ) alternativ: (x r1, x r2,..., x rk ) r ist ein Atom, wobei die x ri Domänenvariablen und r eine Relation über k Attribute bezeichnet. r(x r1, x r2,..., x rk ) ist wahr für eine Instanziierung von (x r1, x r2,..., x rk ), falls diese Instanziierung ein Tupel in r ist. DB:V-123 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Domänenkalkül Anfragen [Tupelkalkül] Anfrage im relationalen Domänenkalkül mit Variablen x 1,..., x n, x n+1,..., x n+m : {(x 1, x 2,..., x n ) α} x 1,..., x n sind freie, x n+1,..., x n+m sind gebundene Domänenvariablen. α ist eine logische Formel, wobei die Menge der Atome Σ, aus denen α besteht, wie folgt definiert ist: 1. r(x r1, x r2,..., x rk ) alternativ: (x r1, x r2,..., x rk ) r ist ein Atom, wobei die x ri Domänenvariablen und r eine Relation über k Attribute bezeichnet. r(x r1, x r2,..., x rk ) ist wahr für eine Instanziierung von (x r1, x r2,..., x rk ), falls diese Instanziierung ein Tupel in r ist. 2. x i op x j ist ein Atom mit op {=, <,, >,, }. x i, x j bezeichnen Domänenvariablen, die über den Wertebereichen der zugeordneten Attribute instanziiert sind. 3. x i op c ist ein Atom mit op {=, <,, >,, }. x i bezeichnet eine Domänenvariable, die über dem Wertebereich des zugeordneten Attributes instanziiert ist, und c dom(a i ) ist eine Konstante aus dem gleichen Wertebereich. DB:V-124 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Domänenkalkül Beispiel 1 [Tupelkalkül] Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Abteilung AbtName Nr Manager Forschung 5 3334 Verwaltung 4 9876 Stab 1 8886 AbtStandort AbtNr Ort 1 Berlin 4 Weimar 5 Hamburg 5 Köln ArbeitetInProjekt PersNr ProjektNr 1234 1 1234 2 6668 3 4534 1 Projekt Name Nr Ort AbtNr X 1 Köln 5 Y 2 Hamburg 5 Z 3 Weimar 4 New 8 Weimar 4 Anfrage Liefere Name und Wohnort der Mitarbeiter, die in der Forschung arbeiten. DB:V-125 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Domänenkalkül Beispiel 1 [Tupelkalkül] Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Abteilung AbtName Nr Manager Forschung 5 3334 Verwaltung 4 9876 Stab 1 8886 AbtStandort AbtNr Ort 1 Berlin 4 Weimar 5 Hamburg 5 Köln ArbeitetInProjekt PersNr ProjektNr 1234 1 1234 2 6668 3 4534 1 Projekt Name Nr Ort AbtNr X 1 Köln 5 Y 2 Hamburg 5 Z 3 Weimar 4 New 8 Weimar 4 Anfrage Liefere Name und Wohnort der Mitarbeiter, die in der Forschung arbeiten. Relationenalgebra TAFEL Domänenkalkül {(x 1, x 3 ) x 2 x 4 x 5 y 1 y 2 y 3 (Mitarbeiter(x 1, x 2, x 3, x 4, x 5 ) Abteilung(y 1, y 2, y 3 ) y 1 = Forschung y 2 = x 5 )} DB:V-126 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Domänenkalkül Beispiel 1 Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Abteilung AbtName Nr Manager Forschung 5 3334 Verwaltung 4 9876 Stab 1 8886 AbtStandort AbtNr Ort 1 Berlin 4 Weimar 5 Hamburg 5 Köln ArbeitetInProjekt PersNr ProjektNr 1234 1 1234 2 6668 3 4534 1 Projekt Name Nr Ort AbtNr X 1 Köln 5 Y 2 Hamburg 5 Z 3 Weimar 4 New 8 Weimar 4 Anfrage Liefere Name und Wohnort der Mitarbeiter, die in der Forschung arbeiten. Relationenalgebra TAFEL Domänenkalkül Mögliche Konvention: nicht-freie Variablen sind per Default -quantifiziert. {(x 1, x 3 ) x 5 y 1 y 2 (Mitarbeiter(x 1, x 2, x 3, x 4, x 5 ) Abteilung(y 1, y 2, y 3 ) y 1 = Forschung y 2 = x 5 )} DB:V-127 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Domänenkalkül Beispiel 1 Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Abteilung AbtName Nr Manager Forschung 5 3334 Verwaltung 4 9876 Stab 1 8886 AbtStandort AbtNr Ort 1 Berlin 4 Weimar 5 Hamburg 5 Köln ArbeitetInProjekt PersNr ProjektNr 1234 1 1234 2 6668 3 4534 1 Projekt Name Nr Ort AbtNr X 1 Köln 5 Y 2 Hamburg 5 Z 3 Weimar 4 New 8 Weimar 4 Anfrage Liefere Name und Wohnort der Mitarbeiter, die in der Forschung arbeiten. Relationenalgebra TAFEL Domänenkalkül {(x 1, x 3 ) x 5 y 2 Abkürzung: Konstanten als Parameter. (Mitarbeiter(x 1, x 2, x 3, x 4, x 5 ) Abteilung( Forschung, y 2, y 3 ) y 2 = x 5 )} DB:V-128 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Domänenkalkül Beispiel 1 Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Abteilung AbtName Nr Manager Forschung 5 3334 Verwaltung 4 9876 Stab 1 8886 AbtStandort AbtNr Ort 1 Berlin 4 Weimar 5 Hamburg 5 Köln ArbeitetInProjekt PersNr ProjektNr 1234 1 1234 2 6668 3 4534 1 Projekt Name Nr Ort AbtNr X 1 Köln 5 Y 2 Hamburg 5 Z 3 Weimar 4 New 8 Weimar 4 Anfrage Liefere Name und Wohnort der Mitarbeiter, die in der Forschung arbeiten. Relationenalgebra TAFEL Domänenkalkül {(x 1, x 3 ) Abkürzung: Unifikation von Domänenvariablen (Mitarbeiter(x 1, x 2, x 3, x 4, x 5 ) Abteilung( Forschung, x 5, y 3 ))} DB:V-129 Relational Algebra & Calculus STEIN 2004-2015

Bemerkungen: Eine Bedingung, die sich auf eine Domänenvariable und eine Konstante bezieht, entspricht einer Selektion, σ, in der relationalen Algebra. Beispiel: y 1 = Forschung Eine Bedingung bzgl. zweier Domänenvariablen, die sich auf zwei verschiedene Relationen beziehen, entspricht einem Verbund (Join),, in der relationalen Algebra. Beispiel: x 5 = y 2 DB:V-130 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Domänenkalkül Beispiel 2 [Tupelkalkül] Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Abteilung AbtName Nr Manager Forschung 5 3334 Verwaltung 4 9876 Stab 1 8886 AbtStandort AbtNr Ort 1 Berlin 4 Weimar 5 Hamburg 5 Köln ArbeitetInProjekt PersNr ProjektNr 1234 1 1234 2 6668 3 4534 1 Projekt Name Nr Ort AbtNr X 1 Köln 5 Y 2 Hamburg 5 Z 3 Weimar 4 New 8 Weimar 4 Anfrage Liefere für jedes Projekt in Weimar dessen Nummer, die Nummer der durchführenden Abteilung sowie Name und Wohnort des Abteilungsmanagers. DB:V-131 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Domänenkalkül Beispiel 2 [Tupelkalkül] Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Abteilung AbtName Nr Manager Forschung 5 3334 Verwaltung 4 9876 Stab 1 8886 AbtStandort AbtNr Ort 1 Berlin 4 Weimar 5 Hamburg 5 Köln ArbeitetInProjekt PersNr ProjektNr 1234 1 1234 2 6668 3 4534 1 Projekt Name Nr Ort AbtNr X 1 Köln 5 Y 2 Hamburg 5 Z 3 Weimar 4 New 8 Weimar 4 Anfrage Liefere für jedes Projekt in Weimar dessen Nummer, die Nummer der durchführenden Abteilung sowie Name und Wohnort des Abteilungsmanagers. Relationenalgebra π PNr,AbtNr, Name,Wohnort Domänenkalkül TAFEL ((ρ PNr Nr, PName Name (σ Ort= Weimar (Projekt))) AbtNr=Nr Abteilung Manager=PersNr Mitarbeiter) DB:V-132 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Domänenkalkül Beispiel 3 [Tupelkalkül] Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Abteilung AbtName Nr Manager Forschung 5 3334 Verwaltung 4 9876 Stab 1 8886 AbtStandort AbtNr Ort 1 Berlin 4 Weimar 5 Hamburg 5 Köln ArbeitetInProjekt PersNr ProjektNr 1234 1 1234 2 6668 3 4534 1 Projekt Name Nr Ort AbtNr X 1 Köln 5 Y 2 Hamburg 5 Z 3 Weimar 4 New 8 Weimar 4 Anfrage Liefere die Namen der Mitarbeiter, die in allen Projekten der Abteilung 5 arbeiten. DB:V-133 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Domänenkalkül Beispiel 3 [Tupelkalkül] Mitarbeiter Name PersNr Wohnort ChefPersNr AbtNr Smith 1234 Weimar 3334 5 Wong 3334 Köln 8886 5 Zelaya 9998 Erfurt 9876 4 Abteilung AbtName Nr Manager Forschung 5 3334 Verwaltung 4 9876 Stab 1 8886 AbtStandort AbtNr Ort 1 Berlin 4 Weimar 5 Hamburg 5 Köln ArbeitetInProjekt PersNr ProjektNr 1234 1 1234 2 6668 3 4534 1 Projekt Name Nr Ort AbtNr X 1 Köln 5 Y 2 Hamburg 5 Z 3 Weimar 4 New 8 Weimar 4 Anfrage Liefere die Namen der Mitarbeiter, die in allen Projekten der Abteilung 5 arbeiten. Relationenalgebra π Name ((ArbeitetInProjekt ρ ProjektNr Nr (π Nr (σ AbtNr= 5 (Projekt)))) Mitarbeiter) Domänenkalkül TAFEL DB:V-134 Relational Algebra & Calculus STEIN 2004-2015

Bemerkungen: Die Quantoren können verschoben werden, solange sich keine Variablenbindungen ändern und die Ordnung zwischen den - und -Quantoren erhalten bleibt: {(x 1 ) x 2 x 3 x 4 x 5 z 1 z 2 z 3 z 4 y 1 y 2 (Mitarbeiter(x 1, x 2, x 3, x 4, x 5 ) ( Projekt(z 1, z 2, z 3, z 4 ) (z 4 = 5) (ArbeitetInProjekt(y 1, y 2 ) y 2 = z 2 y 1 = x 2 )))} Alternative Formeln, die denselben Sachverhalt Für alle Projekte der Abteilung 5 gilt... modellieren, also logisch äquivalent sind: 1. z 1 z 2 z 3 z 4 ((Projekt(z 1, z 2, z 3, z 4 ) (z 4 = 5))... 2. z 1 z 2 z 3 z 4 ( (Projekt(z 1, z 2, z 3, z 4 ) z 4 = 5)... 3. z 1 z 2 z 3 z 4 ( Projekt(z 1, z 2, z 3, z 4 ) (z 4 = 5)... 4. z 1 z 2 z 3 ( Projekt(z 1, z 2, z 3, 5)... 5. z 1 z 2 z 3 (Projekt(z 1, z 2, z 3, 5)... DB:V-135 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Domänenkalkül Beispiel 4 [Tupelkalkül] Buecher Titel Verlag Harry Potter Princeton Heuristics Addison Glücksformel dpunkt Datenbanken Springer Buchhaendler Name Stadt PLZ Lehmann Berlin 99011 Meiersche Aachen 42100 Amazon Köln 52100 Angebote Titel Haendler Harry Potter Lehmann Harry Potter Meiersche Harry Potter Amazon Datenbanken Amazon Glücksformel Amazon Glücksformel Lehmann Anfrage Welche Titel sind bei allen Buchhändlern im Angebot? Relationenalgebra (ρ Name Haendler (Angebote)) (π Name (Buchhaendler)) DB:V-136 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Domänenkalkül Beispiel 4 [Tupelkalkül] Buecher Titel Verlag Harry Potter Princeton Heuristics Addison Glücksformel dpunkt Datenbanken Springer Buchhaendler Name Stadt PLZ Lehmann Berlin 99011 Meiersche Aachen 42100 Amazon Köln 52100 Angebote Titel Haendler Harry Potter Lehmann Harry Potter Meiersche Harry Potter Amazon Datenbanken Amazon Glücksformel Amazon Glücksformel Lehmann Anfrage Welche Titel sind bei allen Buchhändlern im Angebot? Relationenalgebra (ρ Name Haendler (Angebote)) (π Name (Buchhaendler)) Domänenkalkül {(x) y 1 y 2 y 3 ( Buchhaendler(y 1, y 2, y 3 ) z 1 z 2 (Angebote(z 1, z 2 ) z 2 = y 1 oder: y 1 y 2 y 3 (Buchhaendler(y 1, y 2, y 3 ) z 1 = x))} DB:V-137 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Domänenkalkül Sichere Anfragen [Tupelkalkül] Folgende Anfrage liefert eine unendliche Zahl von Ergebnissen: {(x 1, x 2, x 3, x 4, x 5 ) Mitarbeiter(x 1, x 2, x 3, x 4, x 5 )} DB:V-138 Relational Algebra & Calculus STEIN 2004-2015

Relationaler Domänenkalkül Sichere Anfragen [Tupelkalkül] Folgende Anfrage liefert eine unendliche Zahl von Ergebnissen: {(x 1, x 2, x 3, x 4, x 5 ) Mitarbeiter(x 1, x 2, x 3, x 4, x 5 )} Sei die Domäne einer Formel α wie zuvor definiert. Dann ist eine Anfrage {(x 1, x 2,..., x n ) α} des Domänenkalküls sicher, falls folgende Bedingungen erfüllt sind: 1. Gehört (c 1, c 2,..., c n ) in das Anfrageergebnis, so muss {c 1, c 2,..., c n } Teilmenge der Domäne von α sein. Die Suche zur Beantwortung der Anfrage ist auf die Domäne beschränkt. 2. Für jede Teilformel xβ muss gelten, dass β höchstens für Elemente aus seiner Domäne erfüllbar sein kann. β ist für alle Elemente, die nicht in seiner Domäne sind, unerfüllbar. 3. Für jede Teilformel xβ muss gelten, dass xβ dann und nur dann erfüllt ist, wenn β für alle Elemente aus seiner Domäne erfüllt ist. β ist für alle Elemente, die nicht in seiner Domäne sind, immer erfüllt. DB:V-139 Relational Algebra & Calculus STEIN 2004-2015

Anfragekalküle Ausdrucksstärke der Kalküle Folgende drei Sprachen besitzen die gleiche Ausdruckskraft: 1. die relationale Algebra 2. der relationale Tupelkalkül, eingeschränkt auf sichere Anfragen 3. der relationale Domänenkalkül, eingeschränkt auf sichere Anfragen DB:V-140 Relational Algebra & Calculus STEIN 2004-2015

Bemerkungen: Der Beweis erfolgt induktiv über den Aufbau der Ausdrücke in der jeweiligen Sprache. Unter anderem spezifiziert man äquivalente Ausdrücke des Tupelkalküls zu den Basisoperatoren der relationalen Algebra. Weil der (sichere) relationale Tupelkalkül und der (sichere) relationale Domänenkalkül die gleiche Ausdruckskraft wie die relationale Algebra besitzen, sind sie auch relational vollständig. Die Aussage, dass der relationale Tupelkalkül und der relationale Domänenkalkül relational vollständig sind, bedarf nicht der Einschränkung auf sichere Anfragen. DB:V-141 Relational Algebra & Calculus STEIN 2004-2015