1. Tutorübung zu Grundlagen: Datenbanken Chaoran Chen [email protected] 13.10 - 19.10.2014 Überblick Organisatorisches Bonussystem Lehrbuch Was bisher geschah.. Übungsaufgaben Punkte-/Bonussystem Anwesenheit: +0 Punkte Abwesenheit, ohne ärztlichem Attest: -1 Punkt Vorrechnen: +1 Punkt 0,3 Notenbonus bei +2 Punkten am Ende Was bisher geschah.. I I I I I Tupel Attribut Schema (Primär-)Schlüssel Kardinalität Professoren Vorlesungen Studenten Rang Raum MatrNr Name Semester VorlNr PersNr Name 2125 Sokrates C4 226 24002 Xenokrates 18 2126 Russel C4 232 25403 Jonas 12 2127 Kopernikus C3 310 26120 Fichte 10 2133 Aristoxenos 8 C3 52 26830 2134 Augustinus C3 309 27550 Schopenhauer 6 2136 Curie C4 36 28106 3 2137 Kant C4 7 29120 Theophrastos 2 29555 2 Popper voraussetzen Carnap Feuerbach hören Vorgänger Nachfolger Titel SWS gelesenV on 5001 Grundzüge 4 2137 5041 Ethik 4 2125 5043 Erkenntnistheorie 3 2126 5049 Mäeutik 2 2125 4052 Logik 4 2125 5052 Wissenschaftstheorie 3 2126 5216 Bioethik 2 2126 5259 Der Wiener Kreis 2 2133 5022 Glaube und Wissen 2 2134 4630 Die 3 Kritiken 4 2137 MatrNr VorlNr 26120 5001 27550 5001 27550 4052 28106 5041 28106 5052 PerslNr Name Fachgebiet Boss 28106 5216 3002 Platon Ideenlehre 2125 28106 5259 3003 Aristoteles Syllogistik 2125 prüfen 29120 5001 3004 Wittgenstein Sprachtheorie 2126 MatrNr VorlNr PersNr Note 29120 5041 3005 Rhetikus Planetenbewegung 2127 5001 5041 5001 5043 5001 5049 5041 5216 5043 5052 5041 5052 5052 5259 Assistenten 28106 5001 2126 1 29120 5049 3006 Newton Keplersche Gesetze 2127 25403 5041 2125 2 29555 5022 3007 Spinoza Gott und Natur 2126 27550 4630 2137 2 25403 5022 Relationale Algebra wird auf der physischen Ebene eingesetzt, um ” Anfragepläne zu bauen“ Das Relationale Modell Relationale Algebra Beispiel Student MatrNr Name Geburtstag 1 Schmidt, Hans 1980-10-12 2 Müller, Anne 1982-07-30 Klein, Birgit 1981-03-24 3 4 Meier, Uwe 1982-07-30 Anfrage: "Gib die Geburtsdaten aller Studenten aus" Geburtstag 1980-10-12 πGeburtstag (Student) 1982-07-30 1981-03-24 14 / 50 Das Relationale Modell Relationale Algebra Beispiel Student MatrNr Name Geburtstag 1 Schmidt, Hans 1980-10-12 2 Müller, Anne 1982-07-30 3 Klein, Birgit 1981-03-24 Meier, Uwe 1982-07-30 4 Anfrage: "Gib alle Studenten mit einer MatrNr kleiner gleich 3 und einem Geburtstag nach 1.1.1981 aus" σMatrNr ≤3∧Geburtstag>1981−01−01 (Student) MatrNr Name Geburtstag 2 Müller, Anne 1982-07-30 3 Klein, Birgit 1981-03-24 16 / 50 Das Relationale Modell Relationale Algebra Beispiel Nr 1 2 3 4 Vorlesung . . . ProfPersNr ... 1 ... 1 ... 2 ... 2 Professor PersNr Name 1 Moerkotte 2 Kemper ... ... ... Anfrage: "Gib alle Vorlesungen und Professoren aus" Vorlesung × Professor 18 / 50 Das Relationale Modell Relationale Algebra Ergebnis Nr 1 1 2 2 3 3 4 4 ... ... ... ... ... ... ... ... ... ProfPersNr 1 1 1 1 2 2 2 2 PersNr 1 2 1 2 1 2 1 2 Name Moerkotte Kemper Moerkotte Kemper Moerkotte Kemper Moerkotte Kemper ... ... ... ... ... ... ... ... ... Viele dieser Kombinationen machen keinen Sinn! 19 / 50 Das Relationale Modell Relationale Algebra Beispiel Anfrage: "Gib alle Vorlesungen zusammen mit den zuständigen Professoren aus " Vorlesung o nProfPersNr =PersNr Professor Nr 1 2 3 4 ... ... ... ... ... ProfPersNr 1 1 2 2 PersNr 1 1 2 2 Name Moerkotte Moerkotte Kemper Kemper ... ... ... ... ... 21 / 50 Gruppenaufgabe 1 Sie designen eine Webanwendung zur Univerwaltung. Früh entschließen Sie sich zum Einsatz eines Datenbanksystems als Backend für Ihre Daten. Ihr Kollege ist skeptisch und würde die Datenverwaltung lieber selbst implementieren. Überzeugen Sie ihn von Ihrem Entschluss. Finden Sie stichhaltige Antworten auf die folgenden von Ihrem Kollegen in den Raum gestellten Äußerungen: Gruppenaufgabe 1 1. Die Installation und Wartung eines Datenbanksystems ist aufwendig, die Erstellung eines eigenen Datenformats ist straight-forward und flexibler. 2. Mehrbenutzersynchronisation wird in diesem Fall nicht benötigt. 3. Es ist unsinnig, das jeder Entwickler zunächst eine eigene Anfragesprache (SQL) lernen muss, nur um Daten aus der Datenbank zu extrahieren. 4. Redundanz ist hilfreich, wieso sollte man auf sie verzichten? Hausaufgabe 1 Erläutern Sie den Unterschied zwischen dem Relationalen Modell und dem Graphstrukturieren Modell. 1. Nennen Sie ein typisches Einsatzgebiet für das jeweilige Modell. 2. Im Datenbankbereich unterscheidet man zwischen Modellen, welche ein festes Schema voraussetzen und anderen, die kein Schema benötigen. Ein Schema ist hierbei eine Vorgabe, wie Daten repräsentiert werden, beispielsweise, das jede Vorlesung genau eine eindeutige Nummer hat, einen Namen von weniger als 200 Zeichen und eine Semesterwochenstundenzahl. 2.1 Was ist der Vorteil/Nachteil einer solchen Vorgabe für den Anwender? 2.2 Was ist der Vorteil/Nachteil einer solchen Vorgabe für den Entwickler des Datenbanksystems? Hausaufgabe 2 Formulieren Sie die folgenden Anfragen auf dem Universitätsschema in Relationenalgebra. 1. Geben Sie alle Vorlesungen an, die der Student Xenokrates gehört hat. 2. Geben Sie die Titel der direkten Voraussetzungen für die Vorlesung Wissenschaftstheorie an. 3. Geben Sie Paare von Studenten(-Namen) an, die sich aus der Vorlesung Grundzüge kennen. Professoren Vorlesungen Studenten Rang Raum MatrNr Name Semester VorlNr PersNr Name 2125 Sokrates C4 226 24002 Xenokrates 18 2126 Russel C4 232 25403 Jonas 12 2127 Kopernikus C3 310 26120 Fichte 10 2133 Aristoxenos 8 C3 52 26830 2134 Augustinus C3 309 27550 Schopenhauer 6 2136 Curie C4 36 28106 3 2137 Kant C4 7 29120 Theophrastos 2 29555 2 Popper voraussetzen Carnap Feuerbach hören Vorgänger Nachfolger Titel SWS gelesenV on 5001 Grundzüge 4 2137 5041 Ethik 4 2125 5043 Erkenntnistheorie 3 2126 5049 Mäeutik 2 2125 4052 Logik 4 2125 5052 Wissenschaftstheorie 3 2126 5216 Bioethik 2 2126 5259 Der Wiener Kreis 2 2133 5022 Glaube und Wissen 2 2134 4630 Die 3 Kritiken 4 2137 MatrNr VorlNr 26120 5001 27550 5001 27550 4052 28106 5041 28106 5052 PerslNr Name Fachgebiet Boss 28106 5216 3002 Platon Ideenlehre 2125 28106 5259 3003 Aristoteles Syllogistik 2125 prüfen 29120 5001 3004 Wittgenstein Sprachtheorie 2126 MatrNr VorlNr PersNr Note 29120 5041 3005 Rhetikus Planetenbewegung 2127 5001 5041 5001 5043 5001 5049 5041 5216 5043 5052 5041 5052 5052 5259 Assistenten 28106 5001 2126 1 29120 5049 3006 Newton Keplersche Gesetze 2127 25403 5041 2125 2 29555 5022 3007 Spinoza Gott und Natur 2126 27550 4630 2137 2 25403 5022 Gruppenaufgabe 2 Finden Sie ein Beispiel für ein Problem (bzw. eine Inkonsistenz), die auftreten kann, wenn unkontrolliert parallel auf Daten zugegriffen wird. Ein traditionelles Beispiel hierfür ist eine gegenseitige Bank-Überweisung zwischen zwei Konten A und B. Wenn A einen Betrag x zu B überweist und B einen Betrag x’ zu A, sollte immer gelten Kontostand(A) + Kontostand(B) ist konstant, da sonst Geld verschwunden ist. Konstruieren Sie einen Ablauf zweier gegenseitiger Überweisungen, bei dem die Eigenschaft, dass die Kontostandssumme konstant sein soll nach dem Abschluss der zwei Überweisungen verletzt ist.