Datenbanken IFB 2002 Klaus Becker Datenbanken 2 KB Teil 1 Relationale Datenbanken 3 Zielsetzung Datenbanken Das Burggymnasium Kaiserslautern möchte seine Schulbibliothek auf EDV-Betrieb umstellen. KB Bisher wurde die Schulbibliothek herkömmlich mit Hilfe von Karteikarten und Ausleihscheinen verwaltet. Künftig soll hier ein geeignetes Softwarepaket die Arbeit erleichtern. Anwendungsfälle 4 Datenbanken Buchdaten registrieren Ausleihdaten aufnehmen Abfrage erstellen Anwender: Bibliothekar(in) ... Anwendungssystem: DBS Anwender: Leser Anwendungsfall: Interaktion zwischen einem Anwender / Akteur und dem Anwendungssystem KB Datenbanksystem Datenbanken 5 KB DB Sammlung von Daten DB VS Software zur Verwaltung der Daten Anwender Anwender Datenbanksystem Ein Datenbanksystem ist eine systematisch strukturierte, langfristig verfügbare Sammlung von Daten (DB) einschließlich der zur sicheren Bearbeitung und Verwaltung dieser Daten erforderlichen Software (DBVS). Datenbanksysteme sind überall 6 Beispiele: - Bibliothek - Bank Datenbanken - Reisebüro: Buchungssystem KB - Bahn: Auskunftssystem - Suchmaschine im Internet - ... 7 Das Modellierungsproblem Datenbanken Miniwelt Zustand: Gerd Müller ist registrierter Leser der Bibliothek. Er hat am 12.2.2002 das Buch „Fußball ist mein Leben“ von Franz Beckenbauer ausgeliehen. ... DB-Modellwelt ? Vorgang: Gerd Müller gibt das Buch ... zurück. Informationen über die Miniwelt Ziel: Repräsentation von Information KB 8 Repräsentation mit Tabellen Information: Gerd Müller ist registrierter Leser der Bibliothek. Er hat am 12.2.2002 das Buch „Fußball ist mein Leben“ von Franz Beckenbauer ausgeliehen. Datenbanken Repräsentation: KB Sig Autor F1 Beckenbauer I2 Gaardner ... Titel Fußball ist Sofies Welt Jahr Name 1980 Müller 1995 Müller Vorname Wohnort Gerd München Peter Landstuhl Straße Ausleihdatum Kirchstr. 13 02.02.02 Hauptstr. 7 18.01.02 Redundanz und Inkonsistenz 9 Ausleihen Datenbanken Sig I1 I2 D1 D2 KB Autor Balzert Gaardner Musil Kafka Titel Informatik Sofies Welt Der Mann ohne Das Schloß Jahr 1999 1995 1978 1990 Ausleihdatum 02.02.2002 18.01.2002 16.02.2002 31.12.2001 Name Schreiner Müller Schreiner Müller Vorname Rudolf Peter Rudi Peter Wohnort Bann Landstuhl Bann Landstuhl Straße Kirchstr. 13 Hauptstr. 7 Kichstr. 13 Hauptstraße 7 Das Tabellenmodell ist redundant: Informationen werden hier z. T. mehrfach repräsentiert. Eine Transaktion (Ändern) führt leicht zu inkonsistenten Modellen: Informationen werden auf unterschiedliche Weise repräsentiert. Verknüpfte Tabellen 10 Datenbanken Primärschlüssel KB LNr 0 1 2 3 ... 13 14 15 Sig D1 D2 D3 D4 D5 M1 M2 M3 P1 P2 P3 Ph1 Ph2 Ph3 Name Christ Eberle Friedrich Frisch Vorname Benjamin Gerrit Andy Johannes Teubner Thielen Wollenweber Ruth Clemens Lisa Autor Goethe Mann Mann Kafka Grass Euklid Singh Padberg Heisenberg Einstein Weinberg Gardner Kant Russell Titel Faust Dr. Faustus Der Zauberberg Das Schloss Ein weites Feld Die Elemente Fermats letzter Satz Elementare Zahlentheorie Der Teil und das Ganze Relativitätsthe orie Die ersten drei Minuten Sofies Welt Kritik der reinen Geschichte der Philosophie GebJahr 83 84 83 84 Stamm kursleit ROE TM HB TM 84 HEI 84 TM 84 TM Jahr 1973 1937 1940 1930 1997 1970 1998 1999 1955 1960 1989 1995 1958 1952 Fachbereich Deutsch Deutsch Deutsch Deutsch Deutsch Mathematik Mathematik Mathematik Physik Physik Physik Philosophie Philosophie Philosophie Fremdschlüssel LNr Ausleihdatum 2 16.01.02 5 30.12.01 3 25.02.02 12 03.03.02 2 18.01.02 Die Verknüpfung von Tabellen erfolgt mit Hilfe von Schlüsseln. Verknüpfte Tabellen 11 Datenbanken Leser Buch Ausleihe LNr 0 1 2 3 ... 13 14 15 Name Christ Eberle Friedrich Frisch Vorname Benjamin Gerrit Andy Johannes Teubner Thielen Wollenweber Ruth Clemens Lisa Sig D1 D2 D3 ... Ph1 Ph2 Ph3 Autor Goethe Mann Mann LNr 4 8 11 13 13 14 15 KB Gardner Kant Russell Sig D2 M1 P1 D5 Ph2 D1 M3 GebJahr 83 84 83 84 Stamm kursleit ROE TM HB TM 84 HEI 84 TM 84 TM Titel Faust Dr. Faustus Der Zauberberg Sofies Welt Kritik der reinen Vernunft Geschichte der Philosophie Datum 29.10.01 03.11.01 16.08.01 12.09.01 12.09.01 06.12.01 12.10.01 Jahr 1973 1937 1940 Fachbereich Deutsch Deutsch Deutsch 1995 Philosophie 1958 Philosophie 1952 Philosophie Tabellenspezifikation 12 Datenbanken Leser: KB LNr 0 1 2 3 ... 13 14 15 Name Christ Eberle Friedrich Frisch Vorname Benjamin Gerrit Andy Johannes Teubner Thielen Wollenweber Ruth Clemens Lisa GebJahr 83 84 83 84 Stamm kursleit ROE TM HB TM 84 HEI 84 TM 84 TM Das logische Schema einer Tabelle wird durch eine endliche Menge von Attributspezifikationen (Attributname; Datentyp) festgelegt. TABELLE Leser LNr: Name: Vorname: GebJahr: Stammkurs: Zahl Zeichenkette Zeichenkette Zahl Zeichenkette 13 Datentypen / Datenstrukturen Ein Datentyp legt einen Wertebereich fest einschließlich der Operationen, die auf die Werte angewandt werden dürfen. Datenbanken Bsp.: Datentyp Zahl KB Eine Datenstruktur legt den Aufbau von komplexen Wertebereichen aus elementaren Wertebereichen fest. Bsp.: Datenstruktur Tabelle (bzw. Relation) Datenbanken 14 Relation Ein Relationenschema ist eine endliche Folge (A1:W1; A2:W2; ...; An:Wn) von Attributspezifikationen. Dabei wird jedes Attribut durch einen Attributnamen und einen zugehörigen Wertebereich (Datentyp) festgelegt. Die Attributwerte müssen atomar sein (d. h. es sind keine zusammengesetzen Attributwerte erlaubt). Bsp.: (LNr: Zahl; Name: Zeichenkette; Vorname: Zeichenkette) Ein Tupel (zu einem gegebenen Relationenschema) enthält zu jedem Attribut genau einen Attributwert. Bsp.: (2; “Schmitt”; “Otto”) KB Relation 15 Datenbanken Sei (A1:W1; A2:W2; ...; An:Wn) ein gegebenes Relationenschema mit den Attributnamen A1; ...; An und den zugehörigen (endlichen) Wertebereichen W1; ...; Wn. Unter dem (kartesischen) Produkt W1 ... Wn versteht man die Menge aller möglichen Tupel (w1; ... ; wn) mit wi Wi. KB Eine Relation zum Relationenschema (A1:W1; A2:W2; ...; An:Wn) ist eine Teilmenge des Produkts W1 ... Wn. Bsp.: { (1; “Meier”; “Karin”), (2; “Schmitt”; “Otto”), (3; “Breuer”; “Hans”) } Relation 16 Eine Relation kann in Tabellenform dargestellt werden. Datenbanken { KB } (1; “Meier”; “Karin”), (2; “Schmitt”; “Otto”), (3; “Breuer”; “Hans”) LNr Name 1 Meier 2 Schmitt 3 Breuer Vorname Karin Otto Hans Beachte: Die Reihenfolge der Zeilen (Tupel) ist ohne Bedeutung. Die Reihenfolge der Spalten (Attribute) ist ohne Bedeutung. 17 Relationale Datenbank Eine relationale Datenbank besteht aus einer endlichen Menge von Relationen. Datenbanken Bem.: Das relationale Datenmodell wurde 1970 von E. F. Codd entwickelt. KB Datenbank Bibliothek: - Relation Leser - Relation Buch - Relation Ausleihe Schlüssel 18 Datenbanken Primärschlüssel: KB Ein (Primär-) Schlüssel für eine Tabelle ist ein Attribut oder eine Attributkombination, mit dem / mit der jeder Datensatz der Tabelle eindeutig identifiziert werden kann. Schlüssel müssen immer minimal gewählt werden; d. h. man kann auf kein Attribut verzichten. Leser LNr 0 1 2 3 ... 13 14 15 Ausleihe Name Christ Eberle Friedrich Frisch Vorname Benjamin Gerrit Andy Johannes Teubner Thielen Wollenweber Ruth Clemens Lisa GebJahr 83 84 83 84 Stamm kursleit ROE TM HB TM 84 HEI 84 TM 84 TM LNr 4 8 11 13 13 14 15 Sig D2 M1 P1 D5 Ph2 D1 M3 Datum 29.10.01 03.11.01 16.08.01 12.09.01 12.09.01 06.12.01 12.10.01 Schlüssel 19 Fremdschlüssel: Datenbanken Wird ein Primärschlüssel einer Tabelle in einer anderen Tabelle benutzt, so stellt er dort einen Fremdschlüssel dar. Mit Hilfe von Fremdschlüsseln werden Bezüge zwischen Tabellen hergestellt. KB Ausleihe LNr 4 8 11 13 13 14 15 Sig D2 M1 P1 D5 Ph2 D1 M3 Datum 29.10.01 03.11.01 16.08.01 12.09.01 12.09.01 06.12.01 12.10.01 Referentielle Integrität 20 Datenbanken Buch Ausleihe Sig D1 D2 D3 ... Ph1 Ph2 Ph3 LNr 4 8 11 13 13 14 15 Autor Goethe Mann Mann Gardner Kant Russell Sig D0 M1 P1 D5 Ph2 D1 M3 Titel Faust Dr. Faustus Der Zauberberg Sofies Welt Kritik der reinen Vernunft Geschichte der Philosophie Jahr 1973 1937 1940 Fachbereich Deutsch Deutsch Deutsch 1995 Philosophie 1958 Philosophie 1952 Philosophie Datum 29.10.01 03.11.01 16.08.01 12.09.01 12.09.01 06.12.01 12.10.01 Referentielle Integrität Wenn in einer Tabelle ein Fremdschlüssel vorhanden ist, dann muss jeder Fremdschlüsselwert auch als Primärschlüsselwert in der korrespondierenden Tabelle vorkommen. KB 21 Übungen - Aufgabe 1 Miniwelt „Schule“ Datenbanken Herr P. Müller (MP) unterrichtet die Klasse 5a (Raum M21) in den Fächern Mathematik und NWU. Frau A. Albrecht (AL) unterrichtet die 5a in Französisch. Sie ist auch Klassenlehrerin der 5a. Die Französischstunden finden Mo 3 | Di 2 | Mi 6 | Fr 1 statt. (...) KB Entwerfen Sie ein relationales Datenmodell zu dieser Miniwelt und implementieren Sie es mit Access. Erstellen Sie hierzu die entsprechenden Tabellen (in der Entwurfsansicht), geben Sie einige Testdaten ein und verknüpfen Sie die Tabellen (Primärschlüssel festlegen und Beziehungen knüpfen). 22 Übungen - Aufgabe 2 Datenbanken Miniwelt „Sportverein“ KB Der Sportverein ist in Abteilungen (Leichtathletik, Turnen, Fußball, ...) aufgeteilt. Jede Abteilung bietet z. T. mehrere Sportgruppen an (z. B. bietet die Abteilung Fußball eine A-Jugend, B-Jugend, Altherrengruppe, ... an). Jede Sportgruppe wird von einem Trainer geleitet. Jede Abteilung hat einen Vorsitzenden. Trainer und Vorsitzender sind Mitglieder des Vereins. Jedes Mitglied wird über eine Mitgliedsnummer und die üblichen Daten erfasst. ... Entwerfen Sie ein relationales Datenmodell zu dieser Miniwelt und implementieren Sie es mit Access. Aufgabe 1 - Lösungsvorschlag 23 Miniwelt „Schule“ Datenbanken Herr P. Müller (MP) unterrichtet die Klasse 5a (Raum M21) in den Fächern Mathematik und NWU. Frau A. Albrecht (AL) unterrichtet die 5a in Französisch. Sie ist auch Klassenlehrerin der 5a. Die Französischstunden finden Mo 3 | Di 2 | Mi 6 | Fr 1 statt. (...) Kürzel AL BEC MP ... Bez 5a 5b 5c ... Klasse 5a 5a 5a 5a 5a ... KB Name Albrecht Becker Müller Stufe Vorname Anni Klaus Peter 5 5 5 Klassenlehrer AL MP BEC Fach FR FR FR FR NWU AL AL AL AL MP Telefon 45678 12345 23456 Lehrer Tag DI FR MI MO MI Stunde 3 2 6 1 1 Datenbanken 24 KB Teil 2 Abfragen Zielsetzung 25 Es soll möglich sein, Abfragen an die Bibliotheksdatenbank zu stellen. Z.B.: Datenbanken Ist das Buch X ausgeliehen? KB Wer hat das Buch X ausgeliehen? ... Relationales Datenmodell 26 Datenbanken Leser Buch Ausleihe LNr 0 1 2 3 ... 13 14 15 Name Christ Eberle Friedrich Frisch Vorname Benjamin Gerrit Andy Johannes Teubner Thielen Wollenweber Ruth Clemens Lisa Sig D1 D2 D3 ... Ph1 Ph2 Ph3 Autor Goethe Mann Mann LNr 4 8 11 13 13 14 15 KB Gardner Kant Russell Sig D2 M1 P1 D5 Ph2 D1 M3 GebJahr 83 84 83 84 Stamm kursleit ROE TM HB TM 84 HEI 84 TM 84 TM Titel Faust Dr. Faustus Der Zauberberg Sofies Welt Kritik der reinen Vernunft Geschichte der Philosophie Datum 29.10.01 03.11.01 16.08.01 12.09.01 12.09.01 06.12.01 12.10.01 Jahr 1973 1937 1940 Fachbereich Deutsch Deutsch Deutsch 1995 Philosophie 1958 Philosophie 1952 Philosophie Datenbanken 27 KB Relationales Datenmodell Query by Example 28 Abfrage: Welche Leser haben ein Buch ausgeliehen? Datenbanken QbE: QbE: Grafik-basierte Erstellung von Abfragen KB Query by Example 29 Abfrage: Welche Leser haben ein Buch ausgeliehen? Datenbanken Ergebnis der Abfrage: neue Tabelle (Dynaset) KB Name Frölich Hellriegel Martin Teubner Teubner Thielen Wollenweber Vorname Daniel Daniel Tobias Ruth Ruth Clemens Lisa Sig D2 M1 P1 D5 Ph2 D1 M3 Beachte: Die neue Tabelle wird i. a. nicht gespeichert. 30 Übungen - Aufgabe 3 Datenbanken Erstellen Sie zu den folgenden Aufgaben QbE-basierte Abfragen. Welche Leser gibt es? Welche Leser sind 84 geboren? Welche Leser sind vor 84 geboren? Welche Leser gibt es? Ausgabe aller Leser (Name, Vorname und Geburtsjahr) sortiert nach dem Geburtsjahr Welche Bücher von Goethe sind in der Bibliothek vorhanden? Welche Bücher sind ausgeliehen? (sortierte Ausgabe) Welche Bücher hat die Leserin Lisa Wollenweber ausgeliehen? Welche Leser haben ein Buch ausgeliehen? (Ausgabe mit / ohne Duplikate) Welche Leser haben ein Buch vor mehr als 60 Tagen ausgeliehen? (Hinweis: Datum()-Operator benutzen) ... KB Welche Bücher hat Leser X ausgeliehen? Wer hat Buch X ausgeliehen? Welche Bücher sind vom Autor X vorhanden? Wer hat welche Bücher vor dem Datum X ausgeliehen? Ausgabe sortiert nach Stammkursleitern ... 31 SQL - Structured Query Language Abfrage: Welche Leser haben ein Buch ausgeliehen? Datenbanken QbE: SQL: KB SELECT Leser.Name, Leser.Vorname, Ausleihe.Sig FROM Leser INNER JOIN Ausleihe ON Leser.LNr = Ausleihe.LNr; SQL Datenbanken 32 Aufgabe SQL-Ausdruck Bestimme Vorname und Nachname aller Leser. SELECT Leser.Vorname, Leser.Name FROM Leser; Bestimme die Daten aller Leser, die im Stammkurs von Frau Römer sind. SELECT * FROM Leser WHERE ((Leser.Stammkursleiter)="ROE"); Bestimme die Daten aller Bücher, die ausgeliehen sind. SELECT * FROM Buch INNER JOIN Ausleihe ON Buch.Sig = Ausleihe.Sig; SELECT * FROM Buch, Ausleihe WHERE (Buch.Sig = Ausleihe.Sig); KB SQL - Syntax 33 Grundstruktur einer SQL-Auswahlabfrage: Datenbanken <SQL-Auswahlabfrage> ::= SELECT [ALL | DISTINCT] <Attributliste> FROM <Referenztabellen> [WHERE <Bedingung>] [GROUP BY <Attributliste>] [HAVING <Bedingung>] Erläuterung < ... > FROM [ ... ] ... | ... KB : : : : noch zu erklärendes Symbol Bestandteil der Sprache optionales Element Alternative SELECT-Klausel 34 Datenbanken Grundstruktur SELECT [ALL | DISTINCT] <Attributliste> FROM <Referenztabelle> [WHERE <Bedingung>] [GROUP BY <Attributliste>] [HAVING <Bedingung>] Beispiele SELECT Leser.Vorname, Leser.Name FROM Leser; SELECT Vorname, Name FROM Leser; SELECT DISTINCT Name FROM Leser; KB SELECT * FROM Leser; FROM-Klausel 35 Datenbanken Grundstruktur SELECT [ALL | DISTINCT] <Attributliste> FROM <Referenztabelle> [WHERE <Bedingung>] [GROUP BY <Attributliste>] [HAVING <Bedingung>] Beispiele SELECT * FROM Leser; SELECT * FROM Buch INNER JOIN Ausleihe ON Buch.Sig = Ausleihe.Sig; SELECT * FROM Leser, Buch KB 36 WHERE-Klausel Datenbanken SELECT Titel FROM Buch WHERE (Jahr <1990); SELECT Titel FROM Buch WHERE ((Jahr <1990) AND (Jahr > 1950)); SELECT Titel FROM Buch WHERE (NOT (Autor=“Goethe“)); SELECT Name, Vorname FROM Leser WHERE (Vorname IN (“Franz“, “Heinz“, “Franz“)); SELECT Autor, Titel FROM Buch WHERE (Sig IN (SELECT Sig FROM Buch INNER JOIN Ausleihe ON ... )); KB SQL - Semantik 37 Informelle Beschreibung der Bedeutung: Datenbanken SELECT ... FROM ... [WHERE ...] // Attribute der erzeugten Tabelle // Tabelle, aus der die Daten stammen // Bedingung, die die Datensätze erfüllen müssen [GROUP BY ...] // Partitionierung in Gruppen [HAVING ...] // Auswahl von Gruppen Formale Beschreibung der Bedeutung: Relationenalgebra Objekte: Relationen Operationen: erzeugen aus Relationen neue Relationen KB Operationen auf Relationen 38 Datenbanken Mit Hilfe von Operationen lassen sich aus gegebenen Relationen neue Relationen erzeugen. Folgende Grundoperationen werden üblicherweise benötigt: KB - Projektion Selektion kartesisches Produkt Verbund (join) Vereinigung, Durchschnitt, Differenz SELECT-Klausel 39 Ausgangsrelation: Buch Datenbanken Sig D1 D2 ... Ph3 KB Autor Goethe Mann Titel Faust Dr. Faustus Jahr 1973 1937 Fachbereich Deutsch Deutsch Russell Geschichte der ... 1952 Philosophie SQL-Ausdruck: SELECT Autor, Titel FROM Buch; Ergebnisrelation: Autor Goethe Mann Mann Titel Faust Dr. Faustus Der Zauberberg Russell Geschichte der ... Projektion 40 Ausgangsrelation: Buch Datenbanken Sig D1 D2 ... Ph3 Titel Faust Dr. Faustus Jahr 1973 1937 Fachbereich Deutsch Deutsch Russell Geschichte der ... 1952 Philosophie Projektion: Autor, Titel Ergebnisrelation: Autor, Titel(Buch) Autor Goethe Mann Mann ... Russell KB Autor Goethe Mann Titel Faust Dr. Faustus Der Zauberberg Geschichte der ... Mit Hilfe einer Projektion lassen sich Attributwerte einer Relation auswählen. WHERE-Klausel 41 Ausgangsrelation: Buch Datenbanken Sig D1 D2 ... Ph3 Titel Faust Dr. Faustus Jahr 1973 1937 Fachbereich Deutsch Deutsch Russell Geschichte der ... 1952 Philosophie SQL-Ausdruck: SELECT * FROM BUCH WHERE (Autor = „Goethe“); Ergebnisrelation: (Autor=”Goethe”)(Buch) Sig D1 KB Autor Goethe Mann Autor Goethe Titel Faust Jahr 1973 Fachbereich Deutsch Selektion 42 Ausgangsrelation: Buch Datenbanken Sig D1 D2 ... Ph3 Titel Faust Dr. Faustus Jahr 1973 1937 Fachbereich Deutsch Deutsch Russell Geschichte der ... 1952 Philosophie Selektion: (Autor=”Goethe”) Ergebnisrelation: (Autor=”Goethe”)(Buch) Sig D1 KB Autor Goethe Mann Autor Goethe Titel Faust Jahr 1973 Fachbereich Deutsch Mit Hilfe einer Selektion kann man bestimmte Tupel aus einer Relation herausfiltern. Produkt 43 Datenbanken Ausgangsrelationen: Buch, Leser KB Sig D1 D2 ... Autor Goethe Mann Titel Faust Dr. Faustus Jahr 1973 1937 LNr 0 1 ... Name Christ Eberle Vorname GebJahr Stamm... Benjamin 83 ROE Gerrit 84 TM Fachbereich Deutsch Deutsch Ergebnisrelation: Buch Leser // Kombination der Relationen Sig D1 D1 ... D1 D2 D2 ... Autor Goethe Goethe Titel Faust Faust Jahr 1973 1973 Goethe Mann Mann Faust 1973 Dr. Fau... 1937 Dr. Fau... 1937 Fach... LNr Deutsch 0 Deutsch 1 Name Christ Eberle Deutsch 15 Deutsch 0 Deutsch 1 Wollen... Christ Eberle ... INNER JOIN 44 Datenbanken Ausgangsrelationen: Buch, Ausleihe Sig D1 D2 ... Autor Goethe Mann Titel Faust Dr. Faustus LNr 4 8 ... Sig D2 M1 Datum 29.10.01 03.11.01 Jahr 1973 1937 Fachbereich Deutsch Deutsch SQL-Ausdruck: SELECT * FROM Buch INNER JOIN Ausleihe ON Buch.Sig = Ausleihe.Sig; Ergebnisrelationen: KB Sig ... D2 ... Autor Titel Jahr Mann Dr. Fau... 1937 Fach... LNr Deutsch 4 Datum 29.10.01 Verbund 45 Datenbanken Ausgangsrelationen: Buch, Ausleihe Sig D1 D2 ... Autor Goethe Mann Titel Faust Dr. Faustus LNr 4 8 ... Sig D2 M1 Datum 29.10.01 03.11.01 Verbund / join: Jahr 1973 1937 Fachbereich Deutsch Deutsch Mit Hilfe eines Verbundes (natural join) lassen sich Relationen mit einem gemeinsamen Attribut verschmelzen. Ergebnisrelationen: Buch Ausleihe KB Sig ... D2 ... Autor Titel Jahr Mann Dr. Fau... 1937 Fach... LNr Deutsch 4 Datum 29.10.01 Datenbanken 46 KB Mengenoperationen Zwei Relationen R und S (über demselben Relationenschema) können mit den üblichen Mengenoperationen verknüpft werden: - Vereinigung: R S - Durchschnitt: R S - Differenz: R\S Datenbanken 47 KB Relationenalgebra und SQL Autor, Titel(Buch) SELECT Autor, Titel FROM Buch (Autor=”Goethe”)(Buch) SELECT * FROM Buch WHERE (Autor = “Goethe”) Buch Ausleihe SELECT * FROM Buch INNER JOIN Ausleihe ON Buch.Sig = Ausleihe.Sig Buch Leser SELECT * FROM Buch, Leser Buch1 Buch2 Buch1 UNION Buch2 48 SQL als Programmiersprache Ausgangsrelationen Datenbanken Programm: KB SQL-Ausdruck SQLInterpreter Ergebnisrelation SQL: Sprache zur Programmierung von Abfragen 49 Übungen - Aufgabe 3 Datenbanken Wir betrachten hier die folgenden Tabellen zur Modellierung der Miniwelt „Unterrichtsverteilung“: Erstellen Sie SQL-Ausdrücke zu den folgenden Abfrageaufträgen: KB 50 Übungen - Aufgabe 3 (1) Bestimme Name und Vorname sämtlicher Lehrer. (2) Bestimme alle Lehrer (nur Kürzel), die montags in der 3. Stunde Unterricht haben. Datenbanken (3) Bestimme die Namen aller Lehrer, die eine 6. Klasse leiten. KB (4) Bestimme, welche Lehrer in den 8. Klassen Physik unterrichten. Gib den Lehrernamen und die Klasse jeweils aus. (5) Bestimme alle Lehrer (Namen und Vornamen), die keine Klasse leiten. (6) Bestimme, wann die 10a ihre Deutschstunden hat. 51 Aufgabe 3 - Lösungsvorschlag (1) Bestimme Name und Vorname sämtlicher Lehrer. SELECT Name, Vorname FROM Lehrer Datenbanken (2) Bestimme alle Lehrer (nur Kürzel), die montags in der 3. Stunde Unterricht haben. KB SELECT Kürzel FROM Lehrer INNER JOIN Unterricht ON Lehrer.Kürzel = Unterricht.Lehrer WHERE ((Tag = Mo) AND (Stunde = 3)) (3) Bestimme die Namen aller Lehrer, die eine 6. Klasse leiten. SELECT Name FROM Lehrer INNER JOIN Klasse ON Lehrer.Kürzel = Klasse.Klassenlehrer WHERE (Stufe = 6) 52 Aufgabe 3 - Lösungsvorschlag Datenbanken (4) Bestimme, welche Lehrer in den 8. Klassen Physik unterrichten. Gib den Lehrernamen und die Klasse jeweils aus. SELECT Lehrer.Name, Unterricht.Klasse FROM (Lehrer INNER JOIN Unterricht ON Lehrer.Kürzel = Unterricht.Lehrer) INNER JOIN Klasse ON Unterricht.Klasse = Klasse.Bez WHERE ((Klasse.Stufe = 8) AND ((Unterricht.Fach = „Physik“) (5) Bestimme alle Lehrer (Namen und Vornamen), die keine Klasse leiten. SELECT Name, Vorname FROM Lehrer WHERE (NOT Kürzel IN SELECT Klassenlehrer FROM Klasse) (6) Bestimme, wann die 10a ihre Deutschstunden hat. SELECT Tag, Stunde FROM Unterricht WHERE (Klasse = „10a“) KB Übungen - Aufgabe 4 53 Gegeben sind die folgenden Relationen: R: S: Datenbanken A a b c d B b b a c C A 1 2 3 4 5 6 D a a c d a c 3 1 3 6 4 2 Wir betrachten die folgende Abfrage: SELECT B, D FROM R S WHERE (D < 4) Beschreiben Sie diesen SQL-Ausdruck mit Hilfe der Operationen der Relationenalgebra. Entwickeln Sie dann Schritt für Schritt durch Anwendung der jeweiligen Operationen die Ergebnistabelle. KB Aufgabe 4 - Lösungsvorschlag 54 R: S: A Datenbanken a b c d B C b b a c 1 2 3 4 5 6 SQL-Ausdruck: SELECT B, D FROM R S WHERE (D < 4) B,D(D < 4)(R S): B KB b b a a A D 3 1 3 2 D a a c d a c 3 1 3 6 4 2 Zielsetzung 55 Die Bibliotheksdatenbank soll um die Möglichkeit erweitert werden, die folgenden Aktionen automatisiert durchzuführen: - Buch ausleihen Datenbanken - Buch zurückgeben KB Beachte: Man benötigt hierzu sog. Manipulationsabfragen, d.h. Abfragen, die bestehende Tabellen verändern oder neue Tabellen erzeugen. Manipulationsabfragen 56 Tabellenerstellungsabfragen übertragen Daten in eine neue Tabelle. SQL: SELECT <Attributliste> INTO <Tabellenname> QbE: Datenbanken Löschabfragen löschen Daten in einer Tabelle. SQL: DELETE <Attributliste> FROM <Tabellenname> WHERE <Bedingung> QbE: Anfügeabfragen fügen Daten aus einer bestehenden in eine bestehende Tabelle ein. SQL: INSERT INTO <Tabellenname> SELECT <Attributliste> FROM ... QbE: Aktualisierungsabfragen ändern Daten in einer bestehenden Tabelle. SQL: UPDATE <Tabellenname> SET Attribut = Ausdruck, ... QbE: KB Beachte: Access-SQL unterscheidet sich z.T. erheblich von Standard-SQL! 57 Buch zurückgeben Löschung des mit Parametern eingegebenen Datensatzes aus der Tabelle „Ausleihe“ Datenbanken AusleiheLöschen: KB DELETE Ausleihe.LNr, Ausleihe.Sig FROM Ausleihe WHERE (((Ausleihe.LNr)=[Lesernummer:]) AND ((Ausleihe.Sig)=[Buchsignatur:])); Buch ausleihen 58 Datenbanken Schritt 1: Aktualisierung einer Hilfstabelle „Daten“, die die Ausleihdaten aufnehmen soll: Eingabe von Lesernummer und Buchsignatur mit Hilfe von Parametern; Ergänzung des aktuellen Datums; AusleiheAufnehmen: UPDATE Daten SET Daten.LNr = [Lesernummer:], Daten.Sig = [Buchsignatur:], Daten.Datum = Date(); Daten: (Hilfstabelle) LNr 5 KB Sig Ph1 Datum 31.12.01 Buch ausleihen 59 Schritt 2: Anfügen der Datensätze aus der Hilfstabelle an die bestehende Tabelle „Ausleihe“; Datenbanken AusleiheÜbertragen: KB INSERT INTO Ausleihe ( LNr, Sig, Datum ) SELECT Daten.LNr, Daten.Sig, Daten.Datum FROM Daten; Ausleihe: LNr 4 4 5 6 ... Sig D2 P2 Ph1 D3 Datum 16.09.01 30.12.01 31.12.01 30.12.01 60 Automatisierung mit Makros Datenbanken Ein Makro ist eine Gruppe von Aktionen, die jeweils eine bestimmte Operation ausführen. Mit Hilfe von Makros kann man häufig vorkommende Aufgaben automatisieren, z.B. zwei Manipulationsabfragen direkt hintereinander durchführen. Makro „BuchAusleihen“ AusleiheAufnehmen AusleiheÜbertragen Makro „BuchZurückgeben“ AusleiheLöschen KB 61 Übungen - Aufgabe 5 Die Bibliotheksdatenbank soll wie folgt erweitert werden: Datenbanken Zurückgegebene Ausleihen sollen (mit dem Rückgabedatum versehen) in einer zusätzlichen Tabelle archiviert werden. KB Die Operation „Buch zurückgeben“ soll automatisch den Datensatz aus der Tabelle „Ausleihe“ löschen und ihn in die Tabelle „Archiv“ einfügen. Die Bibliotheksdatenbank soll wie folgt erweitert werden: Es besteht die Möglichkeit, Bücher vorzubestellen. Wird ein vorbestelltes Buch zurückgegeben, so erhält derjenige, der es als erster vorbestellt hatte, eine Nachricht, dass das Buch für ihn bereitliegt. Datenbanken 62 KB Teil 3 Datenschutz Datenbanken 63 Zielsetzung Fallstudie Lehrer X muss bis Ende der Woche seine Epochalnoten machen. Bei einigen Schülerinnen und Schülern ist er sich seiner Sache noch nicht ganz sicher. Er geht in die Schulbibliothek und lässt sich von der Bibliothekarin eine Liste der Bücher seines Faches erstellen, die die betroffenen Schülerinnen und Schüler im letzten Halbjahr ausgeliehen hatten bzw. haben. Aufgrund dieser Informationen kann er jetzt besser beurteilen, wie groß das Interesse dieser Schülerinnen und Schüler an den im Unterricht besprochenen Themen war. Ziel: Beurteilung des Vorgangs unter Datenschutzaspekten KB 64 Datenschutz - was ist das? Datenbanken kein Schutz von Daten KB sondern Schutz des Bürgers vor der Verletzung seiner Persönlichkeitsrechte Grundgesetz: Recht auf informationelle Selbstbestimmung Der Einzelne kann selbst über die Preisgabe und Verwendung seiner persönlichen Daten entscheiden 65 Ein Blick zurück .. Datenbanken Vor 1978: generelle Erlaubnis Die Verarbeitung personenbezogener Daten ist erlaubt, sofern sie nicht durch Gesetze eingeschränkt ist. KB 1.1.1978: Bundesdatenschutzgesetz (BDSG) Wandel in der Rechtsauffassung Ab 1978: grundsätzlicges Verbot Die Verarbeitung personenbezogener Daten ist verboten, sofern sie nicht durch Gesetze erlaubt wird. 1983: Ergänzung des Grundgesetzes Informationelle Selbstbestimmung als Grundrecht 66 Rechte und Gesetze Grundgesetz (Recht auf informationelle Selbstbestimmung) Datenbanken Ausgestaltung durch Gesetze und Regelungen Öffentlicher Bereich - BDGS (Abschnitt 2) - LDSG - spezielle Regelungen Privater Bereich - BDGS (Abschnitt 3) - spezielle Regelungen Spezielle Regelungen haben Vorrang vor allgemeinen Gesetzen. KB 67 Interessenkonflikte Individualinteresse Datenbanken Recht auf informationelle Selbstbestimmung: KB Gemeinschaftsinteresse Aufgaben eines Staates: Schutz der Bürger vor - Erhebung - Speicherung - Verwendung - Weitergabe seiner persönlichen Daten - Erfüllung gesetzlicher Aufgaben (Sozialleistungen,...) - Gewährleistung von Sicherheit (Verbrechensbek., ...) - Mitwirkung der Bürger (Wahlen, ...) - Planung (Rentenentwicklung, ... Bereitschaft der Bürger zur Preisgabe unverzichtbarer Daten Instrumente zur Kontrolle unnötiger und rechtswidriger Vorgänge 68 Datenschutzgesetze Datenbanken Individualinteresse KB Gemeinschaftsinteresse Recht auf informationelle Selbstbestimmung Aufgaben, Pflichten, allgemeine Interessen, ... legen die Rechte der Betroffenen fest legen die Bedingungen fest, unter denen eine Verarbeitung von Daten durch - öffentliche Stellen - nicht-öffentliche Stellen zulässig ist Was sind Daten? 69 BDSG §3: Datenbanken Daten Akte Ein Datensatz mit vielen Merkmalen Datei Viele Datensätze, nach mehreren Merkmalen auswertbar Liste Viele Datensätze, nach einem Merkmal ausgewertet Datenschutzregelungen beziehen sich meist auf Dateien! KB Personenbezogene Daten 70 BDSG §3: Personenbezogene Daten sind Datenbanken persönliche (z. B. Anschrift, Beruf, Straftaten, Krankheiten, ...) oder sachliche (z. B. Vermögen, Schulden, Gehaltsangaben, ...) Verhältnisse einer bestimmten (Person ist unmittelbar erkennbar) oder bestimmbaren (Person kann durch weitere Daten ermittelbar) natürlichen Person. (also keine juristische Person, etwa Firma) (Betroffener) KB 71 Anwendungsbereiche der Gesetze Erheben von Daten: (Beschaffen von Daten über den Betroffenen) Datenbanken Verarbeiten von Daten: KB (Speichern, Verändern, Übermitteln, Sperren und Löschen personenbezogener Daten, ungeachtet der dabei angewendeten Verfahren) Nutzen von Daten: (Verwendung personenbezogener Daten, soweit es sich nicht um Verarbeitung handelt; z. B. Kenntnisnahme eines Bildschirminhalts) Datenbanken 72 KB Datenverarbeitung nicht-öffentlicher Stellen § 28 Datenspeicherung, -übermittlung und -nutzung für eigene Zwecke (1) Das Speichern, Verändern oder Übermitteln personenbezogener Daten oder ihre Nutzung als Mittel für die Erfüllung eigener Geschäftszwecke ist zulässig 1. im Rahmen der Zweckbestimmung eines Vertragsverhältnisses oder vertragsähnlichen Vertrauensverhältnisses mit dem Betroffenen, 2. soweit es zur Wahrung berechtigter Interessen der speichernden Stelle erforderlich ist und kein Grund zu der Annah-me besteht, daß das schutzwürdige Interesse des Betroffenen an dem Ausschluß der Verarbeitung oder Nutzung überwiegt, 3. wenn die Daten aus allgemein zugänglichen Quellen entnommen werden können oder die speichernde Stelle sie veröffentlichen dürfte, es sei denn, daß das schutzwürdige Interesse des Betroffenen an dem Ausschluß der Verarbeitung oder Nutzung offensichtlich überwiegt, 4. wenn es im Interesse der speichernden Stelle zur Durchführung wissenschaftlicher Forschung erforderlich ist (...). Datenbanken 73 KB Datenverarbeitung nicht-öffentlicher Stellen § 28 Datenspeicherung, -übermittlung und -nutzung für eigene Zwecke (2) Die Übermittlung oder Nutzung ist auch zulässig 1. a) soweit es zur Wahrung berechtigter Interessen eines Dritten oder öffentlicher Interessen erforderlich ist oder b) wenn es sich um listenmäßig oder sonst zusammengefaßte Daten über Angehörige einer Personengruppe handelt, die sich auf eine - Angabe über die Zugehörigkeit des Betroffenen zu dieser Personengruppe, - Berufs-, Branchen- oder Geschäftsbezeichnung, - Namen, - Titel, - akademische Grade, - Anschrift, - Geburtsjahr beschränken und kein Grund zu der Annahme besteht, daß der Betroffene ein schutzwürdiges Interesse an dem Ausschluß der Übermittlung hat. (...) 74 Datenverarbeitung öffentlicher Stellen Datenbanken § 13 Erhebung von Daten (1) Das Erheben personenbezogener Daten ist zulässig, wenn ihre Kenntnis zur Erfüllung der Aufgaben der erhebenden Stellen erforderlich ist. (...) KB § 14 Datenspeicherung, -veränderung und -nutzung (1) Das Speichern, Verändern oder Nutzen personenbezogener Daten ist zulässig, wenn es zur Erfüllung der in der Zuständigkeit der speichernden Stelle liegenden Aufgaben erforderlich ist und es für die Zwecke erfolgt, für die die Daten erhoben worden sind. Ist keine Erhebung vorausgegangen, dürfen die Daten nur für die Zwecke geändert oder genutzt werden, für die sie gespeichert worden sind.(...) 75 Rechte der Betroffenen - Auskunft (über die gespeicherten Daten) - Berichtigung (unrichtiger Daten) Datenbanken - Löschung (von Daten bei unzulässiger Speicherung, ...) KB - Sperrung (bei Nichtfeststellbarkeit der Richtigkeit, ...) - Unterlassungs- und Beseitigungsanspruch - Schadensersatz - Einsicht und Auskunft in das Datenschutzregister - Anrufung des Landesbeauftragten für den Datenschutz 76 Maßnahmen zum Datenschutz Zugangskontrolle: Unbefugten ist der Zugang zu Datenverarbeitungsanlagen, mit denen personenbezogene Daten verarbeitet werden, zu verwehren. Datenbanken Datenträgerkontrolle: Es ist zu verhindern, dass Datenträger unbefugt gelesen, kopiert, verändert oder entfernt werden. KB Speicherkontrolle: Das unbefugte Speichern und das unbefugte Verändern gespeicherter persinenbezogener Daten ist zu verhindern. Benutzerkontrolle: Nur befugte Personen dürfen Datenverarbeitungssysteme benutzen. Zugriffskontrolle: Es ist zu gewährleisten, dass die zur Benutzung eines Datenverarbeitungssystems Berechtigten ausschließlich auf die ihrer Zugriffsberechtigung unterliegenden Daten zugreifen können. 77 Maßnahmen zum Datenschutz Datenbanken Übermittlungskontrolle: Es muss überprüft und festgestellt werden können, an welche Stellen personenbezogene Daten durch Einrichtungen zur Datenübertragung übermittelt werden können. KB Eingabekontrolle: Es muss überprüft und festgestellt werden können, wann und von wem personenbezogene Daten in Datenverarbeitungssysteme eingegeben wurden. Auftragskontrolle: Es muss gewährleistet werden, dass im Auftrag verarbeitete Daten nur entsprechend den Weisungen des Auftraggebers verarbeitet werden. Transportkontrolle: Es soll verhindert werden, dass personenbezogene Daten bei der Übermittlung sowie beim Transport von Datenträgern unbefugt gelesen, kopiert, verändert oder gelöscht werden. Organisationskontrolle: Die innerbehördliche oder innerbetriebliche Organisation ist so zu gestalten, dass sie den besonderen Anforderungen des Datenschutzes gerecht wird.Daten zugreifen können. Datenbanken 78 KB Teil 4 Entity-Relationship-Modellierung 79 Zielsetzung Datenbanken Der Entwurf relationaler Datenmodelle soll systematisiert werden. KB Im folgenden wird die sog. Entity-Relationship-Modellierung vorgestellt. Ziel einer ER-Modellierung ist es, die Informationen über die Miniwelt möglichst einfach und strukturiert zu beschreiben. Das ER-Modell wurde 1976 von P. Chen entwickelt. Miniwelt „Bibliothek“ Datenbanken 80 Objekte KB Beziehungen Objekte 81 Strukturiertes Datenmodell Datenbanken LNr: 3 Name: Müller Vorname: Peter ... 8.1.2002 LNr: 1 Name: Meier Vorname: Karla ... Titel: ... Autor: Rel1 Bibel Sig: M1 Autor: Euklid Titel: Elemente ... LNr: 6 Name: Schmitt Vorname: Otto ... Objekte KB Sig: 16.2.2002 Beziehungen Sig: P1 Autor: Einstein Titel: Relativität ... Objekte 82 Entity-Relationship-Modell Datenbanken LNr: 3 Name: Müller Vorname: Peter ... Sig: 8.1.2002 Bibel Sig: M1 Autor: Euklid Titel: Elemente ... LNr: 6 Name: Schmitt Vorname: Otto ... LNr: 1 Name: Meier Vorname: Karla ... Titel: ... Autor: Rel1 16.2.2002 Sig: P1 Autor: Einstein Titel: Relativität ... Klassenbildung Leser KB Ausleihe Buch Entity-Relationship-Modell 83 Spezifikation der Klassen mit Hilfe von Attributen: Datenbanken Leser KB LNr Name Ausleihe ... Datum Buch Sig Autor ... 84 Objekt- und Beziehungsklassen Datenbanken Leser KB Ausleihe Buch Eine Objektklasse (eine Entitätenklasse / ein Objekttyp) ist eine Zusammenfassung von Entitäten mit gleichen Eigenschaften. Eine Beziehungsklasse (eine Relationenklasse / ein Beziehungstyp) ist eine Zusammenfassung von gleichartigen Relationen / Beziehungen. Attribute 85 Datenbanken Leser KB LNr Name Ausleihe ... Datum Buch Sig Autor Die Eigenschaften aller Objekte / Beziehungen einer Objektklasse / Beziehungsklasse werden mit Hilfe von Attributen erfasst.. Man unterscheidet zwischen beschreibenden und identifizierenden Attributen. ... 86 Mehrwertige Beziehungen Datenbanken Kunde bucht Reise Mitarbeiter Eine Beziehung kann auch zwischen Objekten aus 3, 4, ... Objektklassen bestehen. KB 87 Rekursive Beziehungen Heim Datenbanken Verein spielt gegen Gast Eine Beziehung kann auch zwischen Objekten einer Objektklasse bestehen. KB 88 Beziehungen als Objekte Datenbanken Leser Ausleihe Buch betrifft Mahnung Eine Beziehung kann auch als Objekt in einer anderen Beziehung auftreten. KB Generalisierungshierarchie 89 Kürzel Name ... Datenbanken Person ist Schüler ErzBer KB Ausleihe ist Lehrer PersNr Buch Die ist-Beziehung verknüpft Objektklassen (nicht Objekte). Die Spezialisierungsklasse erbt die Attribute der Generalisierungsklasse. Übungen - Aufgabe 7 90 Erstellen Sie zu den folgenden Miniwelten jeweils ein ERModell: Datenbanken Miniwelt „Schule“ KB Herr P. Müller unterrichtet die Klasse 9a in den Fächern Mathematik und Physik. Frau A. Albrecht unterrichtet die 9a in Französisch. Sie ist auch Klassenlehrerin der 9a. Die Französischstunden finden Mo 3 | Di 2 | Mi 6 | Fr 1 statt. ... Miniwelt „Schule“ T. Martin hat die Kurse 12M2, 12E1, 12Ch1, 12in1, 12sp2, ... belegt. Den Kurs 12in1 besucht er dabei freiwillig. Stammkurs von T. Martin ist der Kurs 12M2. Dieser wird von F. Trautmann geleitet. 91 Übungen - Aufgabe 8 Datenbanken Identifizieren Sie in den folgenden Miniwelten Objekte und Beziehungen und stellen Sie diese in einem ER-Diagramm dar. KB Miniwelt „Kino “ Der Film “Enigma” (Produzent Mick Jagger) läuft ab dem 26.1.2002 im Saal “Movie 2” des Kinocenters “Cinema KL”. Für den Saal “Movie 2” ist samstags Sven Knohsalla als Vorführer eingeteilt. (...) Miniwelt „Flugreservierung“ Anna Wollenweber aus Kaiserslautern (Burgstraße 4) bucht am 2.2.2002 den Flug RY201 nach London. Dieser Flug wird von der Maschine LX23 (Boing 737) durchgeführt. A. Wollenweber wird der Sitzplatz A36 (Fensterplatz) in diesem Flugzeug zugewiesen. (...) Übungen - Aufgabe 9 92 Worin besteht der Unterschied zwischen den beiden Modellen? Datenbanken Leser LNr ... Leser LNr KB Name Ausleihe Name Datum Buch Sig Ausleihe ... Datum Autor ... Buch Sig Autor ... 93 Übungen - Aufgabe 10 Datenbanken Erstellen Sie zu den folgenden Miniwelten jeweils ein ERModell: KB Miniwelt „Arztpraxis “ Die drei Ärzte Mager, Mewes und Mises führen eine Gemeinschaftspraxis. Sie wollen mit Hilfe einer Datenbank Informationen der folgenden Art erfassen: Dr. Elisabeth Mager (kurz Ma) behandelt am 21.2.2002 den Patienten Willi Schäfer (Patientennummer 3012). Im Rahmen dieser Behandlung werden die folgenden Leistungen erbracht: Beratung, symptombezogene Untersuchung, Schutzimpfung. Jede dieser Leistungen ist über eine Nummer identifizierbar und kostet eine bestimmte Gebühr. Miniwelt „Zugfahrt“ Während der Zugfahrt werden die folgenden Stationen erreicht: 7.30 Saarbrücken; 8.10 Kaiserslautern; 8.30 Mannheim; ... ; 14.00 Berlin. Die Zugfahrt wird während der Teilstrecke Saarbrücken - Frankfurt von Schaffner Peter Schmitt begleitet. Während der Teilstrecke Frankfurt - Hannover wird sie von Schaffner Karl Meier begleitet. Die gesamte Fahrt wird von Lokführer Winfried Schuster durchgeführt. Alle Personen, Schaffner Schmitt und Meier sowie Lokführer Schuster gehören zum Personal der DB. (...) Aufgabe 7 - Lösungsvorschlag 94 Miniwelt „Schule“ Datenbanken Herr P. Müller (MP) unterrichtet die Klasse 9a in den Fächern Mathematik und Physik. Frau A. Albrecht (AL) unterrichtet die 9a in Französisch. Sie ist auch Klassenlehrerin der 9a. Die Französischstunden finden Mo 3 | Di 2 | Mi 6 | Fr 1 statt. (...) leitet Lehrer Kürzel Klasse unterrichtet Name ... Fach KB Stunde Bez ... Aufgabe 7 - Lösungsvorschlag 95 Miniwelt „Schule“ Datenbanken T. Martin (#31) besucht die Kurse 12M2, 12E1, 12Ch1, 12in1, .... Den Kurs 12in1 besucht er dabei freiwillig. Stammkurs von T. Martin ist der Kurs 12M2. Dieser wird von F. Trautmann unterrichtet. (...) Kürzel Name Schüler freiwillig besucht LK StK Kurs Lehrer unterrichtet Bez KB Kürzel Name ... 96 Aufgabe 8 - Lösungsvorschlag Vorführer Datenbanken betreut Film läuft in Saal istTeilvon Kino KB 97 Aufgabe 8 - Lösungsvorschlag Datenbanken Kunde erhält Sitz KB bucht Flug führt_aus istTeilvon Flugzeug 98 Aufgabe 9 - Lösungsvorschlag Datenbanken LNr: 3 Name: Müller Vorname: Peter ... LNr: 6 Name: Schmitt Vorname: Otto ... LNr: 1 Name: Meier Vorname: Karla ... Sig: 8.1.2002 25.4.2002 16.2.2002 Titel: ... Autor: Rel1 Bibel Sig: M1 Autor: Euklid Titel: Elemente ... Sig: P1 Autor: Einstein Titel: Relativität ... Werden Ausleihen archiviert, so kann ein Buch mehrfach von demselben Leser ausgeliehen werden. Zur Identifikation einer Ausleihbeziehung benötigt man dann neben der Lesernummer und der Signatur des Buches auch das Ausleihdatum. KB Aufgabe 10 - Lösungsvorschlag 99 Datum Datenbanken Arzt Kürzel Behandlung PNr Name umfasst Leistung LNr KB Patient Art Gebühr Name ... 100 Aufgabe 10 - Lösungsvorschlag Zugfahrt Schaffner betreut Datenbanken ist Teil ist Start Halt Teilfahrt Ziel führt_aus Personal ist Lokführer KB Datenbanken 101 KB Teil 5 Vom ER-Modell zum relationalen Datenmodell Zielsetzung 102 Datenbanken Ziel ist es, ein relationales Datenmodell zur Miniwelt „Unterrichtsverteilung“ zu erstellen. Wir gehen von dem unten aufgeführten ER-Modell aus. leitet Lehrer Klasse unterrichtet Kürzel Name Bez ... Fach KB ... Art ... Tabellen zum ER-Modell 103 leitet Lehrer Klasse Datenbanken unterrichtet Kürzel Bez ... Fach Kürzel AL BEC MP ... Bez KB Name 5a 5a 5a 5a 5a ... Name Albrecht Becker Müller Vorname Anni Klaus Peter Fach FR FR FR FR NWU AL AL AL AL MP Tag DI FR MI MO MI ... ... Telefon 45678 12345 23456 Kürzel Art Bez 5a 5b 5c ... Stunde 3 2 6 1 1 Stufe 5 5 5 Kürzel AL MP BEC Kardinalitäten Datenbanken 104 KB Lehrer leitet unterrichtet Klasse Beziehungstypen Datenbanken 105 A ( Lehrer leitet Klasse ) B 1:1-Beziehung Jedes Objekt der Klasse A steht mit höchstens einem Objekt der Klasse B in Beziehung. KB Jedes Objekt der Klasse B steht mit höchstens einem Objekt der Klasse A in Beziehung. Beziehungstypen Datenbanken 106 A ( Lehrer leitet Klasse ) B 1:n-Beziehung Jedes Objekt der Klasse A steht mit beliebig vielen Objekten der Klasse B in Beziehung. KB Jedes Objekt der Klasse B steht mit höchstens einem Objekt der Klasse A in Beziehung. Beziehungstypen Datenbanken 107 A ( Lehrer unterrichtet Klasse ) B m:n-Beziehung Jedes Objekt der Klasse A steht mit beliebig vielen Objekten der Klasse B in Beziehung. KB Jedes Objekt der Klasse B steht mit beliebig vielen Objekten der Klasse A in Beziehung. Kardinalitäten 108 1 leitet n Lehrer Klasse Datenbanken m KB Kürzel Name unterrichtet n Bez ... Fach ... Art ... Kardinalitäten 109 min, max 1,1 leitet 0,n Datenbanken Lehrer KB Klasse 1,m Kürzel Name unterrichtet 0,n Bez ... Fach ... Art ... 110 Transformation in Tabellenmodelle Objektklasse E: S Datenbanken E KB S A1 A2 A1 A2 111 Transformation in Tabellenmodelle Beziehungsklasse (Standard-Tabellenmodell) Datenbanken E1 S1 R: R A1 S1 S2 A1 A2 A2 E2 S2 Integritätsbedingungen: KB R[S1] E1[S1] R[S2] E2[S2] 112 Transformation in Tabellenmodelle N:1-Beziehungsklasse (reduziertes Tabellenmodell) E1 S1 Datenbanken n E1: S1 ... ... ... ... S2 R E2: S2 1 E2 S2 Referentielle Integrität: KB E1[S2] E2[S2] 113 Transformation in Tabellenmodelle IS-A-Beziehung Datenbanken E1 S A1 E1: S A1 A2 B1 ... ... A2 is-a E2: S E2 B1 KB Integritätsbedingung: E2[S] E1[S] 114 Übungen - Aufgabe 11 Legen Sie die Beziehungstypen sinnvoll fest, ergänzen Sie passende Attribute und skizzieren Sie ein relationales Datenmodell zum ER-Modell. Datenbanken leitet KB Abteilung istTeilvon Mitglied nimmt teil Gruppe trainiert benutzt Sportstätte 115 Aufgabe 11 - Lösungsvorschlag Festlegung der Beziehungstypen: n Datenbanken leitet Abteilung 1 1 istTeilvon n Mitglied m n nimmt teil 1 n trainiert Gruppe n benutzt m KB Sportstätte 116 Aufgabe 11 - Lösungsvorschlag Tabelle Mitglied (MNr: Zahl; Name: Zeichenkette; ...) Datenbanken Tabelle Abteilung (ABez: ZK; MNr: Zahl {Leiter}; ...) Tabelle Gruppe (GBez: ZK; MNr: Zahl {Trainer}; ABez: ZK {Abt.}; ...) Tabelle Sportstätte (SBez: ZK; ...) Tabelle Teilnahme (MNr: Zahl; GBez: ZK; ...) Tabelle Benutzung (Gbez: ZK; SBez: ZK; ...) KB 117 Übungen - Aufgabe 12 Miniprojekt Datenbanken Datenbanken Erstellen Sie eine relationale Datenbank zu einer Miniwelt ihrer Wahl (z. B. „Arztpraxis“ / „Zugfahrt“ / ...). KB Gehen Sie vom ER-Modell aus und entwickeln Sie hieraus ein geeignetes Tabellenmodell. Geben Sie einige Testdaten ein und erstellen Sie für den Kontext sinnvolle Abfragen, Makros, ... 118 Aufgabe 12 - Lösungsvorschlag Tabelle Personal (PNr: Zahl; Name: Zeichenkette; ...) Datenbanken Tabelle Lokführer (PNr: Zahl; Fahrerlaubnis: ZK; ...) Tabelle Schaffner (PNr: Zahl; Prüfung: Datum; ...) Tabelle Halt (Ort: ZK; Ankunft: Uhrzeit; Abfahrt: Uhrzeit; ...) Tabelle Teilfahrt (Start: ZK; Ziel: ZK; ...) Tabelle SchaffnerBetreuung (Start: ZK; Ziel: ZK; PNr: ZK; ...) KB Tabelle LokFührung (Start: ZK; Ziel: ZK; PNr: ZK; ...) 119 Literaturhinweise Datenbanken Es gibt eine große Anzahl umfangreicher Fachbücher zur Thematik Datenbanken. ... Bei der Vorbereitung habe ich eher kompaktere Darstellungen benutzt: - Helmut Balzert: Lehrbuch der Software-Technik. Spektrum. - Horn / Kerner / Forbrig: Informatik. Fachbuchverlag Leipzig. Schulbücher zur Thematik gibt es fast keine: - R. Baumann: Datenbanken und Informationssysteme. Klett (Reihe: Arbeitshefte Informatik) Einführungen in ACCESS gibt es mehr als genug. Schulbezogene Einführungen: z. B. aus der Reihe datadidactLernmodule KB