Datenbanktheorie Sommersemester 2012 - Thomas Schwentick 0: Einleitung Version von: 17. April 2012 (08:03) Inhalt 0.1 Zum Inhalt der Vorlesung 0.1.1 Hintergrund 0.1.2 Inhalte 0.2 Organisatorisches DBT / Schwentick / SoSe 12 0. Einleitung . Folie 1 Operationell vs. Deklarativ Pfeffernüsse: operationell Pfeffernüsse: deklarativ Zutaten: 500 g Honig, 300 g Zucker, 3 Eier, 15 g Hirschhornsalz, 1 Pfeffernüsse: Weihnachtsgebäck in Form von kleinen, runden Lebkuchen, die mit einer weißen Zuckerglasur überzogen sind. Lebkuchen: Dauerbackware aus Mehl, Honig und einer Lebkuchengewürzmischung aus Nelken, Muskat sowie ... Koriander, Kardamom, Anis, Zimt, Ingwer TL gemahlener Zimt, 1/2 TL gemahlene Gewürznelken, je 1 Messerspitze Muskatnuss, Koriander, Ingwerpulver, Piment und Kardamom oder 2 Päckchen gemischtes Lebkuchengewürz , 1 TL weisser Pfeffer, 1 kg Mehl, 100 g Puderzucker, Butter oder Margarine Zubereitung: • Ein oder zwei Backbleche mit Fett bestreichen. Den Honig • • • • • • bei milder Hitze dünnflüssig werden lassen. Den Zucker, die Eier, das Hirschhornsalz und sämtliche Gewürze gut mit dem Honig verrühren. Das gesiebte Mehl nach und nach zuerst unterrühren, später unterkneten. Den Backofen auf 190 ◦ C vorheizen. Aus dem Teig kleine Kugeln von etwa 2 cm Durchmesser formen und in genügendem Abstand voneinander auf das Backblech legen. Die Pfeffernüsse auf der mittleren Schiebeleiste 15-20 min. backen, bis sie goldgelb sind. Auf einem Kuchengitter abkühlen lassen. Den Puderzucker mit wenig Wasser verrühren, unter Rühren aufkochen lassen und die Pfeffernüsse mit dieser Glasur bestreichen. DBT / Schwentick / SoSe 12 0. Einleitung (aus: Meyers großes Taschenlexikon) . Folie 2 Datenbanken und der große Traum der Informatik • Operationelle Vorgehensweise: Beschreiben, wie das gewünschte Ergebnis erzeugt wird • Deklarative Vorgehensweise: Beschreiben der Eigenschaften des gewünschten Ergebnisses: was • Traum der Informatik: Möglichst wenig „wie“, möglichst viel „was“ ➞ Automatische Generierung eines Ergebnisses aus seiner Spezifikation • Im Kontext von Datenbanken ist dieser Traum Wirklichkeit: – Die deklarative Anfragesprache SQL ist Industriestandard DBT / Schwentick / SoSe 12 0. Einleitung . Folie 3 „Vorrelationale“ Datenbankanfragen • Bis in die 80er Jahre hinein mussten Anfragen an eine Datenbank operationell spezifiziert werden Beispielanfrage im Netzwerk-Modell • Anfrage: Finde alle Mitarbeiter des Projektes „Ruhr2010“, die Vollzeit (40 Stunden pro Woche) arbeiten • Anfrage-Programm: PROJECT.NAME := „Ruhr2010“ $FIND ANY PROJECT USING NAME if DB_STATUS=0 then begin WORKS_ON.HOURS := „40“ $FIND FIRST WORKS_ON WITHIN P_WORKSON USING HOURS while DB_STATUS=0 do begin $GET WORKS_ON $FIND OWNER WITHIN E_WORKSON $GET EMPLOYEE writeln(EMPLOYEE.FNAME,EMPLOYEE.LNAME) $FIND NEXT WORKS_ON WITHIN P_WORKSON USING HOURS (Aus: Elmasri/Navathe) DBT / Schwentick / SoSe 12 0. Einleitung . Folie 4 Relationale Datenbankanfragen Beispielanfrage in SQL SELECT EMPLOYEE.FNAME, EMPLOYEE.LNAME FROM EMPLOYEE, WORKS_ON, PROJECT WHERE PROJECT.NAME = „Ruhr2010“ AND PROJECT.NUMBER = WORKS_ON.PNUMBER AND EMPLOYEE.SSN = WORKS_ON.ESSN AND WORKS_ON.HOURS = 40 • Prinzipieller Unterschied: – Anfrage im Netzwerkmodell beschreibt, wie das Ergebnis zu erzeugen ist: operationell – Anfrage in SQL beschreibt, welche Eigenschaften das Ergebnis haben soll: deklarativ • SQL ist die „praktische“ Anfragesprache des relationalen Datenbank-Modells • Details der Datenorganisation und der Implementierung für Anfragen unwichtig ➞ physische Datenunabhängigkeit DBT / Schwentick / SoSe 12 0. Einleitung . Folie 5 Konsequenzen deklarativer Anfragen • Deklarative Anfragesprachen: – Spezifikation von Anfragen durch Beschreibung der Eigenschaften des erwünschten Ergebnisses ∗ Nicht durch Beschreibung, wie das Ergebnis erzeugt werden soll ∗ Kein Bezug auf die physische Sicht • Der Preis der Bequemlichkeit: – Deklarative Anfragen verschieben Arbeit vom Benutzer zum System ∗ Das System muss Anfragen automatisch in eine Folge von Operationen umwandeln ∗ Diese automatische Übersetzung darf nicht zu ineffizienter Anfrageauswertung führen • Andererseits hat das System große Freiheit in der Umsetzung, da kein Lösungsweg vorgeschrieben ist ➞ Potenzial für Optimierung • Einige der auftretenden Fragen betreffen die Datenbanktheorie DBT / Schwentick / SoSe 12 0. Einleitung . Folie 6 Datenbanktheorie (1/2) DBT / Schwentick / SoSe 12 0. Einleitung . Folie 7 Datenbanktheorie (2/2) • Datenbanktheorie – untersucht die theoretischen Grundlagen von „allem, was mit Datenbanken zu tun hat“ – verwendet mathematische Methoden, insbesondere ∗ mathematische Modelle ∗ mathematische Aussagen ∗ Beweise • Diese Vorlesung konzentriert sich auf zwei Teilbereiche: – Anfragesprachen und Komplexität der Anfrageauswertung – Informationsintegration DBT / Schwentick / SoSe 12 0. Einleitung . Folie 8 Inhalt 0.1 Zum Inhalt der Vorlesung 0.1.1 Hintergrund 0.1.2 Inhalte 0.2 Organisatorisches DBT / Schwentick / SoSe 12 0. Einleitung . Folie 9 Erstes Hauptthema: Anfragen und Anfragesprachen • In dieser Vorlesung konzentrieren wir uns auf das relationale Datenmodell • Erstes Hauptthema: Grundlegende Eigenschaften von Anfragesprachen für relationale Datenbanken • Typische Fragestellungen: – Wie lassen sich deklarative Anfragen in ausführbare Operationen umsetzen? → Äquivalenz von Relationenkalkül und relationaler Algebra – Welche Anfragen können in einer Anfragesprache gestellt werden? Welche nicht? → Ausdrucksstärke von Anfragesprachen – Wie aufwändig ist die Auswertung von Anfragen prinzipiell? → Komplexität von Anfragen – Wie lässt sich eine gegebene Anfrage möglichst effizient auswerten? → Optimierung von Anfragen → Statische Analyse DBT / Schwentick / SoSe 12 0. Einleitung . Folie 10 Zweites Hauptthema: Informationsintegration Integritätsbedingungen • Abhängigkeiten und Normalformen • Algorithmen Unvollständige Informationen • Modellierung fehlender Informationen • Anfragebeantwortung im Kontext fehlender Informationen Datenintegration & Datenaustausch • Wie kann für eine verteilte Datenbank eine einheitliche Benutzersicht erreicht werden? • Wie lassen sich Daten von einer Datenbank in eine Datenbank mit einem anderen Schema übersetzen? • Wie lassen sich in solchen Kontexten Anfragen stellen und beantworten? DBT / Schwentick / SoSe 12 0. Einleitung . Folie 11 Vorläufige Inhaltsübersicht I. Einleitung • Einleitung • Grundbegriffe II. Anfragen und Anfragesprachen für relationale Datenbanken • Und-Anfragen • Relationale Algebra • Relationenkalkül • Relational vollständige Sprachen • Und-Anfragen II • Anfragen mit Rekursion III. DB-Design und Informationsintegration • Abhängigkeiten und Normalformen • Unvollständige Information • Datenintegration • Datenaustausch DBT / Schwentick / SoSe 12 0. Einleitung . Folie 12 Literatur • Abiteboul, Hull, Vianu: Foundations of Databases, Addison-Wesley, 1995 • Levene, Loizou: A Guided Tour of Relational Databases and Beyond, Springer, 1999 • Atzeni, de Antonellis: Relational Database Theory, Benjamin Cummings, 1992 • Kandzia, Klein: Theoretische Grundlagen Relationaler Datenbanksysteme, BI / Spektrum, 1993 • Ullman, Widom: A First Course in Database Systems, PrenticeHall, 2002 • Vossen: Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme, Oldenbourg, 2000 • Heuer, Saake: Datenbanken - Konzepte und Sprachen, International Thomson Publishing, 2000 • Biskup: Gundlagen von Informationssystemen, Vieweg, 1995 • Ullman: Principles of Database and Knowledge-base systems, Computer Science Press 1988 DBT / Schwentick / SoSe 12 0. Einleitung . Folie 13 Inhalt 0.1 Zum Inhalt der Vorlesung 0.2 Organisatorisches DBT / Schwentick / SoSe 12 0. Einleitung . Folie 14 Vorlesung • Termine: – Dienstags, 14:15 - 16:00 Uhr, OH16, Raum 205 – Mittwochs, 10:15 - 12:00 Uhr, OH16, Raum 205 – Nicht: 24.4., 25.4., 1.5. (Feiertag), 15.5., 16.5., 5.6., 6.6., 19.6. • Zweck der Vorlesung: – Vermittlung aller wesentlichen Inhalte • Medien: – Hauptsächlich Folien mit Erläuterungen an der Tafel – Die Folien können von der Logbuch-Webseite geladen werden • Gebrauchsanleitung für die Vorlesung: – Denken Sie mit – Stellen Sie Fragen – Schreiben Sie nur das Nötigste mit • Nachbereitung: – Arbeiten Sie die Vorlesung nach – Geben Sie sich dabei erst zufrieden, wenn Sie jedes Detail jeder Folie (mindestens einmal!) verstanden haben DBT / Schwentick / SoSe 12 0. Einleitung . Folie 15 Übungsaufgaben • Gruppenarbeit: – Sie können die Übungsaufgaben zusammen mit anderen bearbeiten und gemeinsam Lösungswege suchen – Das Aufschreiben der Lösung erfolgt aber individuell oder in Zweier-Gruppen – Zu Beginn des Semesters: nur Einzelabgabe! – Wenn mehrere Gruppen/Personen wortgleiche Lösungen abgeben, erhalten sie alle 0 Punkte • Zweck der Übungsaufgaben: – Wiederholung der Inhalte der Vorlesung – Erkennen, wo es mit dem Verständnis noch hapert – Entwicklung der Fähigkeit, die in der Vorlesung gelernten Techniken anzuwenden • Anforderung an Lösungen: • Anzahl und Art der Übungsblätter: – 1 Blatt mit Präsenzaufgaben (erste Übungsstunde) – 6 Übungsblätter zur Bearbeitung und Abgabe DBT / Schwentick / SoSe 12 0. Einleitung – Lösungen sind nur vollständig, wenn sie begründet und erklärt werden – Falls Beweise erwartet werden, wird dies in der Aufgabenstellung ausdrücklich erwähnt . Folie 16 Übung und Prüfungen • Prüfungen und Scheine: – Modulprüfung (MPO): ∗ Mündliche Prüfung, 20 Minuten – Studienleistung (MPO) und Leistungsnachweis (DPO): ∗ Aktive Teilnahme (maximal einmal Fehlen) ∗ Mindestens 40 Punkte aus 120 erreichbaren Punkten ∗ Das Erbringen der Studienleistung ist Voraussetzung für die Teilnahme an der Modulprüfung – Fachprüfung (DPO): ∗ Mündliche Prüfung, 20 Minuten ∗ (Empfehlung: + Leistungsnachweis) • Termine: – – – – Montag, 14:15-15:45 Uhr OH16, Raum 205 16.4., 7.5., 21.5., 11.6., 25.6., 9.7., 16.7. DBT / Schwentick / SoSe 12 0. Einleitung . Folie 17 Zu guter Letzt... Viel Erfolg! DBT / Schwentick / SoSe 12 0. Einleitung . Folie 18