sales CAMC TR75 27 UXQ11 TRQ78 VCR VIDEO p r o d u c t Jun Mai Apr Mar Feb Jan ECQ1 XVG 531 539 652 683 867 Nord 2HmQuartal HJ1 1HmQuartal time Süd Gesamt location Bachelorstudiengang Informatik/IT-Sicherheit Konzeptionelle Modellierung [KonzMod] Autoren: Richard Lenz Felix Freiling Friedrich-Alexander-Universität Erlangen-Nürnberg Konzeptionelle Modellierung [KonzMod] Studienbrief 1: Grundlagen der Modellierung und das ERModell Autoren: Richard Lenz Felix Freiling 2. Auflage Friedrich-Alexander-Universität Erlangen-Nürnberg © 2015 Richard Lenz, Felix Freiling Department Informatik Martensstr. 3 91058 Erlangen 2. Auflage (3. Dezember 2015) Didaktische und redaktionelle Bearbeitung: Philipp Klein Das Werk einschließlich seiner Teile ist urheberrechtlich geschützt. Jede Verwendung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung der Verfasser unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Um die Lesbarkeit zu vereinfachen, wird auf die zusätzliche Formulierung der weiblichen Form bei Personenbezeichnungen verzichtet. Wir weisen deshalb darauf hin, dass die Verwendung der männlichen Form explizit als geschlechtsunabhängig verstanden werden soll. Das diesem Bericht zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung, und Forschung unter dem Förderkennzeichen 160H11068 gefördert. Die Verantwortung für den Inhalt dieser Veröffentlichung liegt beim Autor. Inhaltsverzeichnis Seite 3 Inhaltsverzeichnis Einleitung zu den Studienbriefen I. Abkürzungen der Randsymbole und Farbkodierungen . . . . . . . . . II. Zu den Autoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III. Modullehrziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Studienbrief 1 Grundlagen der Modellierung und das ER-Modell 1.1 Lernergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Advance Organizer . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 Daten und Informationen . . . . . . . . . . . . . . . . . 1.3.2 Wann sind Datenbanksysteme sinnvoll? . . . . . . . . . 1.3.3 Grundlegende Begriffe . . . . . . . . . . . . . . . . . . 1.3.4 Die 3-Schema Architektur . . . . . . . . . . . . . . . . . 1.3.5 Phasen des Datenbankentwurfs . . . . . . . . . . . . . 1.3.6 Typen von Datenbanksystemen . . . . . . . . . . . . . . 1.4 Das Entity-Relationship-Modell . . . . . . . . . . . . . . . . . . . 1.4.1 Grundlagen des ER-Modells . . . . . . . . . . . . . . . . 1.4.2 Die Symbole in ER-Diagrammen . . . . . . . . . . . . . 1.4.3 Entities und ihre Attribute . . . . . . . . . . . . . . . . . 1.4.4 Relationships (Beziehungen) . . . . . . . . . . . . . . . 1.4.5 Schwache Entity-Typen . . . . . . . . . . . . . . . . . . 1.5 Fragestellungen beim Entwurf . . . . . . . . . . . . . . . . . . . 1.5.1 Wozu braucht man schwache Entity-Typen? . . . . . . . 1.5.2 Wozu braucht man ternäre Beziehungstypen? . . . . . . 1.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . 1.7 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 6 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liste der Lösungen zu den Kontrollaufgaben Verzeichnisse I. Abbildungen . . II. Beispiele . . . . III. Definitionen . . . IV. Exkurse . . . . . V. Kontrollaufgaben VI. Tabellen . . . . . VII. Literatur . . . . . 4 11 11 11 12 12 16 18 19 20 21 22 25 29 34 43 44 44 45 49 51 57 61 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 61 62 62 62 62 62 Seite 4 Einleitung zu den Studienbriefen Einleitung zu den Studienbriefen I. Abkürzungen der Randsymbole und Farbkodierungen Beispiel B Definition D Exkurs E Kontrollaufgabe K Merksatz M Übung Ü Zu den Autoren Seite 5 II. Zu den Autoren Richard Lenz ist Professor am Lehrstuhl für Informatik 6 (Datenmanagement) der Friedrich-Alexander-Universität Erlangen-Nürnberg. Felix Freiling ist Inhaber des Lehrstuhls für Informatik 1 (ITSicherheitsinfrastrukturen) der Friedrich-Alexander-Universität ErlangenNürnberg. Seite 6 Einleitung zu den Studienbriefen III. Modullehrziele Wenn Sie gute Informatiksysteme konstruieren wollen, dann müssen Sie modellieren können. Modellierung bedeutet, dass Sie den für die IT-Anwendung relevanten Teil der Wirklichkeit im Informatiksystem nachbilden. Das Modell ist dann ein zweckgerichtetes vereinfachtes Abbild der Wirklichkeit. Um dies bewerkstelligen zu können, müssen Sie fundamentale Kenntnisse über sinnvolle Modellierungsmethoden besitzen. Diese werden Ihnen im Modul „Konzeptionelle Modellierung“ vermittelt. Gleichzeitig ist dieses Modul ein Einstieg in den Bereich der Datenbanken. Neben typischen Modellierungssprachen lernen Sie in diesem Modul zur Definition von Datenstrukturen in relationalen Datenbanken die allgemein bekannte Datenbanksprache SQL (Structured Query Language). Ein besonderer Vorteil von SQL ist, dass die Sprache weitgehend standardisiert und im Bereich der marktführenden relationalen Datenbanksysteme unangefochten ist. Im ersten Studienbrief werden die Grundlagen der Modellierung und das Entity-Relationship-Modell (ERModell) vorgestellt. Sie lernen, wie Sie Objekte und Beziehungen der realen Welt in formale Konstrukte einer Modellwelt übertragen. In diesem Zusammenhang wird auch auf die Strukturierung der Beschreibungsdaten (Schema-Architektur) einer Datenbank und die Phasen des Datenbankentwurfs eingegangen. Im zweiten Studienbrief wird das erweiterte ER-Modell (EER-Modell) vorgestellt. In diesen beiden Studienbriefen erlernen Sie quasi eine neue Sprache, mit der Sie unabhängig von einer konkreten Implementierung formulieren können, welche Zusammenhänge aus der realen Welt in einer Datenbank abgebildet werden sollen. Im dritten Studienbrief lernen Sie, wie Sie EER-Modelle in konkrete Datenstrukturen relationaler Datenbanken übertragen. Dazu erhalten Sie Einblicke in die Welt der relationalen Datenmodellierung. Wichtige Konzepte sind hier die verschiedenen Normalformen, die es erlauben, ein Modell schrittweise zu zerlegen, um Redundanzen zu vermeiden. Im vierten Studienbrief lernen Sie (nach einer Einführung in die Relationenalgebra) die Datenbanksprache SQL kennen. Sie können anschließend in SQL deskriptive Anfragen an die Datenbank formulieren. Im fünften und letzten Studienbrief lernen Sie die Auszeichnungssprache XML (Extensible Markup Language) kennen, die es Ihnen ermöglicht, zunächst unstrukturierte Textdateien mit zusätzlichen hierarchisch strukturierten Beschreibungsdaten anzureichern. Nach dem erfolgreichen Abschluss dieses Moduls werden Sie in der Lage sein, einen Ausschnitt der realen Welt in einer sinngemäßen Nachbildung in Form eines Modells nach festgelegten Kriterien möglichst „gut“ darzustellen. Sie können syntaktisch korrekte und semantisch sinnvolle Anfragen in der Datenbanksprache SQL formulieren. Schließlich werden Sie die wesentlichen Konzepte der Daten- und Domänenmodellierung beherrschen, so dass Sie einfache Beispiele selbst erstellen können. Die Inhalte dieses Moduls basieren auf der gleichnamigen Vorlesung im Präsenzstudiengang Informatik (Bachelor) der Friedrich-Alexander-Universität, die in den vergangenen Jahren von Prof. Dr. Richard Lenz ausgearbeitet und gehalten worden ist [Lenz, 2012]. Diese Vorlesung und somit auch dieses Modul basieren jedoch stark auf bekannter Standardliteratur im Bereich Datenbanksysteme, hauptsächlich Elmasri and Navathe [2000], aber auch Hitz et al. [2005], Oestereich [2006], Date [2000] und Kemper and Eickler [2006]. Viel Spaß und viel Erfolg! Modullehrziele Seite 7 Modulbeschreibung Modulbezeichnung: Konzeptionelle Modellierung Studiengang: Bachelor IT-Sicherheit Verwendbarkeit: Dieses Modul ist verwendbar für • Studierende der Informatik • Studierende der Wirtschaftsinformatik • Studierende der Mathematik und Informatik auf Bachelorniveau. Dieses Modul kann nicht als Wahlpflichtmodul gewählt werden, sondern ist ein Pflichtmodul. Lehrveranstaltungen und Lehrformen: Konzeptionelle Modellierung Modulverantwortliche(r): Prof. Dr. Richard Lenz Lehrende: Prof. Dr. Richard Lenz/Prof. Dr. Felix Freiling Dauer: 1 Semester Credits: 5 ECTS Studien- und Prüfungsleistungen: Schriftliche Prüfung: 90 min. Berechnung der Modulnote: Schriftliche Prüfung Notwendige Voraussetzungen: Keine Empfohlene Voraussetzungen: Keine Unterrichts- und Prüfungssprache: Deutsch Zuordnung des Moduls zu den Fachgebieten des Curriculums: Einordnung ins Fachsemester: Ab Studiensemester 1 Generelle Zielsetzung des Moduls: Zur Förderung und Verstärkung der Fachkompetenz Seite 8 Arbeitsaufwand bzw. Gesamtworkload: Einleitung zu den Studienbriefen Präsenzzeit: 30 h • Vorlesungsteil: 10 h • Übungsteil: 5 h • Praktischer Teil: 10 h • Prüfungsvorbereitungsveranstaltung: 4 h • Prüfung: 1 h Eigenstudium: 120 h • Durcharbeiten der Studienbriefe: 50 h • Durcharbeiten des Online-Lernmaterials: 10 h • Wahrnehmen der Online-Betreuung und Beratung: 10 h • Ausarbeiten von Aufgaben: 30 h • Individuelle Prüfungsvorbereitung der Studierenden: 20 h Lerninhalt und Niveau: Im Modul konzeptionelle Modellierung wird auf folgende Themengebiete eingegangen: • Grundlagen der Modellierung • Entity-Relationship Modell (ER-Modell) • Metamodellierung und XML • Datenmodellierung und Domänenmodellierung Niveau der Lerninhalte liegt gemessen am DQR-Niveau bei 6 (Bachelor) Angestrebte Lernergebnisse: Fachkompetenz: Die Studierenden erwerben fundierte Kenntnisse über die Grundlagen der Modellierung sowie über das EntityRelationship-Modell (ER-Modell). Darüber hinaus erwerben Sie fundiertes Wissen über die Datenbanksprache SQL sowie die Auszeichnungssprache XML. Methodenkompetenz: Die Studierenden haben die Fähigkeit zu beurteilen, wann eine Datenbank sinnvoll ist und können zwischen verschiedenen Typen von Datenbanksystemen unterscheiden. Sozialkompetenz: Die Konflikt- und Kommunikationsfähigkeit der Studierenden wird in den gemeinsamen Online-Tutorien und Diskussionsforen geschult. Selbstkompetenz: Die Studierenden erlangen die Fähigkeit zur Bildung einer Meinung über die selbstentwickelten Datenmodellierungen und die Datenmodellierungen anderer. Darüber hinaus erlangen sie die Fähigkeit, in herausfordernden Situationen zu handeln und eine Lösung für komplexe Probleme zu finden. Modullehrziele Häufigkeit des Angebots: Seite 9 Wintersemester Anerkannte Module: Anerkannte anderweitige Lernergebnisse / Lernleistungen: Medienformen: Literatur: Studienbriefe in schriftlicher und elektronischer Form, Onlinematerial in Lernplattform, Übungen und Projekte über Lernplattform, Online-Konferenzen, Chat und Forum, Präsenzveranstaltungen mit Computer und Beamer. • Konzeptionelle Modellierung, Richard Lenz, 2012 • Datenbanksysteme: Eine Einführung, Alfons Kemper und Andre Eickler • An Introduction to Database Systems, C. J. Date • Analyse und Design mit UML 2.1, B. Oestereich • XML und Datenmodellierung, R. Eckstein und S. Eckstein • XML und Datenbanken, H. Schoening • XML Tutorial, Refsnes Data • Extensible Markup Language (XML), Mario Jeckle • Date Warehouse Systems, Andreas Bauer und Holger Guenzel • Information Modeling and Relational Database, T. Halpin und T-Morgan • Mehrrechner- Datenbanksysteme, E. Rahm • Lehrbuch der Softwaretechnik, H. Bazert • Datenbankmodelle, Datenbanksprachen und Datenbankmanagementsysteme, G. Vossen • Datenbanken – Konzepte und Sprachen, G. Saake, K. Sattler und A. Heuer • Duden 01. Die deutsche Rechtschreibung: Das umfassende Standardwerk auf der Grundlage der aktuellen amtlichen Regeln, Dudenverlag • Grundlagen der Informatik, Helmut Herold und Bruno Lurz und Jürgen Wohlrab • Relationale Datenbanken, Hermann Sauer Studienbrief 1 Grundlagen der Modellierung und das ER-Modell Seite 11 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell 1.1 Lernergebnisse Sie können die Grundbegriffe der Modellierung und der Datenbanken definieren und entscheiden, wann der Einsatz von Datenbanken sinnvoll ist und wann nicht. Sie können die verschiedenen Phasen des Datenbankentwurfs beschreiben und verschiedene Typen von Datenbanksystemen unterscheiden. Sie beherrschen das Vokabular des Entity-Relationship-Modells (Entity, Relationship, Extension, Intension, Attribute, Schlüssel etc.) und können einfache ERDiagramme aufstellen und erläutern. 1.2 Advance Organizer Sie erhalten zunächst einen allgemeinen Einblick in das Thema „Modellierung“. Anschließend folgt der Einstieg in eine einfache Modellierungstechnik, das EntityRelationship-Modell. Abschließend werden einige im Kontext der Modellierung ständig wiederkehrenden Fragen kurz behandelt. 1.3 Einführung Das Wort „Modell“ stammt aus dem Lateinischen [Dudenredaktion, 2013]. Dort bezeichnete man mit modulus einen Maßstab, wie man ihn etwa in der Architektur oder der bildenden Kunst verwendete. Heute bezeichnet man mit dem Begriff „Modell“ die Nachbildung oder Darstellung eines Gegenstandes. Grundsätzlich werden in einem Modell wesentliche Eigenschaften eines Gegenstandes hervorgehoben und nebensächliche Aspekte außer Acht gelassen. Ein Modell ist also immer auch eine Abstraktion des dargestellten Gegenstandes (eines Realitätsausschnittes). Beispiel 1.1: Modelle in der Architektur Architekten verwenden häufig Modelle, um die Wirkung eines Gebäudes im Kontext seiner Umgebung darzustellen. Dazu wird eine nach einem festen Maßstab verkleinerte Version des (geplanten) Hauses und seiner Umgebung aus Holz oder Pappe nachgebaut. Dieses Modell ist eine Nachbildung der Wirklichkeit. Allerdings werden nicht alle Aspekte der Wirklichkeit dargestellt. Unwesentlich für das Modell sind beispielsweise viele Aspekte des Innenausbaus (Möbel, Wasser- und Stromleitungen etc.). Diese werden bewusst weggelassen. Wichtig sind hingegen die Proportionen des Hauses im Verhältnis zur Umgebung. Genau diese werden im Modell beibehalten. Die Abstraktion eines Realitätsausschnitts sollte immer einen Zweck haben, der durch das Modell erreicht wird. Modellierung ist also immer eine zweckgerichtete Vereinfachung durch Weglassen von Details. Modelle spielen in der Informatik eine zentrale Rolle bzw. erfüllen verschiedene Zwecke. In der Softwareentwicklung dienen Modelle dazu, Software-Systeme B Seite 12 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell zu spezifizieren, konstruieren, visualisieren und zu dokumentieren. Sie bilden Beschreibungen, an denen sich Entwickler und Anwender orientieren können. Merksatz 1.1 M Ein Modell ist ein zweckgerichtetes, vereinfachtes Abbild der Wirklichkeit. 1.3.1 Daten und Informationen In der datenzentrierten Welt der Modellierung müssen wir zwei wichtige Begriffe unterscheiden, die umgangssprachlich häufig nicht trennscharf verwendet werden: Daten und Informationen. Daten Unter Daten versteht man in der Informatik einfach nur Folgen von Bits [Herold et al., 2012]. Eine Bitfolge wie „01000001“ hat an sich keine Bedeutung. Erst wenn man weiß, wie die Bitfolge zu interpretieren ist, erschließt sich aus ihr (möglicherweise) eine Information. Interpretationsmöglichkeiten werden häufig durch sogenannte Kodierungen Kodierungen fixiert. Es muss beispielsweise fixiert werden, welche Bitfolge den Buchstaben „A“ repräsentiert. Wenn dies geschehen ist, kann man Daten (also eine Folge von Bits) Informationen (also einer Interpretation) zuordnen. Wenn man Daten interpretiert, spricht man ihnen eine Bedeutung zu. Kontrollaufgabe 1.1: ASCII-Codierung K Eine bekannte Kodierung für einzelne (alphanumerische) Zeichen ist der sogenannte ASCII-Standard. Durch welche Bitfolge wird in diesem Standard der Großbuchstabe „A“ kodiert? Daten-und Informationsverarbeitung Wenn man Daten in andere Daten transformiert, spricht man von (siehe Abb. 1.1 unten). Wenn uns die Daten eigentlich nicht interessieren, sondern die Verarbeitung der Informationen im Vordergrund steht, spricht man von Informationsverarbeitung (siehe Abb. 1.1 oben). Durch die Kodierung der Information in Daten kann man so die Informationsverarbeitung auf die Datenverarbeitung zurückführen. Letztendlich interessieren uns immer die Informationen. Abb. 1.1: Daten und Informationen Information Repräsentation Informationsverarbeitung Information Interpretation Daten Datenverarbeitung Daten 1.3.2 Wann sind Datenbanksysteme sinnvoll? relevante Daten sind Daten, die für unseren Zweck von Interesse sind Nicht alle Daten, die weltweit durch Sensoren, Mess- und Aufnahmegeräte, Experimente oder Überwachungen erzeugt werden, müssen zwangsläufig aufgezeichnet und abgespeichert werden. Bei einer Temperaturaufzeichnung interessieren Sie 1.3 Einführung Seite 13 sich vielleicht nicht für jedes einzelne Datum, sondern vielleicht nur für die Durchschnittstemperatur des Tages oder die großen Temperaturschwankungen über mehrere Jahre. Daten, für die wir uns interessieren, nennt man relevant. Das heute gespeicherte Datenvolumen steigt jedoch stetig. Um alle relevanten Informationen aufzuheben, benötigt man heute nach grober Schätzung ein Speichervolumen von wenigen tausend Petabytes. Ein Petabyte entspricht dabei 1015 Byte. Dies zu speichern, liegt heute bereits im Bereich des Möglichen. In wenigen Jahren werden wir jedoch in der Lage sein, alles aufzubewahren und abzuspeichern. Es ist klar, dass diese unvorstellbaren Datenmengen nur noch von Rechnern aufbewahrt, gesucht und aufbereitet werden. Der Mensch sieht weder die Daten, noch kennt er den Aufbewahrungsort und die genauen Ableitungsverfahren. Neben der reinen Speicherkapazität benötigt man aber auch zusätzliche Strukturen, um diese Daten effizient zu verarbeiten. Genau dies bieten moderne Datenbanken. Beispiel 1.2: Library of Congress Ein gutes Beispiel für eine große Datensammlung ist die größte Bibliothek der Welt: die „Library of Congress“1 . Sie umfasst etwa 128 Millionen Bücher, Karten etc. Täglich erhält die Bibliothek 22.000 neue „Gegenstände“ zur Aufbewahrung, von denen etwa 10.000 der Sammlung hinzugefügt werden. Nach aktuellen Schätzungen umfasst die Sammlung etwa • 30 Millionen Bücher, darunter 124.000 Telefonbücher und 100.000 Comics • 2,7 Millionen Tonaufnahmen • 0,9 Millionen Filmaufnahmen • 12,3 Millionen Fotografien • 4,8 Millionen Landkarten (die größte Sammlung der Welt) • 57 Millionen handschriftliche Manuskripte Umgerechnet in Speicheraufwand sind dies etwa 3 PB: • Nur Text (ASCII): 29 ∗ 106 ∗ 1 MB = 29 TB • Tonaufnahmen: 2, 7 ∗ 106 ∗ 600 MB = 1, 6 PB • Fotos: 12, 3 ∗ 106 ∗ 1 MB = 12, 3 TB • Landkarten: 4, 8 ∗ 106 ∗ 50 MB = 240 TB Die großen Datenmengen führen zu ganz praktischen Problemen: Betrachten wir als Beispiel das Problem der effizienten Suche. Angenommen, wir hätten eine große Festplatte, auf der alle Daten der Library of Congress gespeichert wären. Würde man diese Festplatte „von vorne nach hinten“ (also sequentiell) nach einem gewünschten Buch, Manuskript oder Video durchsuchen, würde man ziemlich lange suchen müssen. Zur Abschätzung des Zeitaufwandes folgt hier eine vereinfachte Rechnung. Nehmen wir an, wir können die Daten mit dem Durchsatz einer normalen Fest1 http://www.loc.gov/ (Aufruf am 25.6.2013) B Seite 14 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell platte durchsuchen (etwa 10 MB/s). Für die Durchsuchung von 3 PB würde man also im Mittel 3 PB 1 · = 150.000.000 s 10 MB/s 2 benötigen. Dies entspricht etwa 4,76 Jahren. Neben der reinen Speicherkapazität benötigt man also auch Möglichkeiten, um effizient in den Datenbeständen suchen und auf diese zugreifen zu können. Konsistenz Effizienter Zugriff allein reicht aber auch noch nicht aus. Ein anderes praktisches Problem besteht nämlich darin, die Daten konsistent zu halten, insbesondere, wenn mehrere Benutzer gleichzeitig mit den Daten arbeiten (siehe Abb. 1.2). Mehrbenutzerbetrieb Stellen Sie sich vor, was passieren würde, wenn täglich tausende Besucher unkontrolliert auf die Sammlung der Library of Congress zugreifen würden. Jeder Benutzer möchte mit den Daten so umgehen, als wäre er allein. Der Einsatz eines Datenbanksystems gewährleistet, dass etwa zwei Benutzer nicht den gleichen Eintrag gleichzeitig verändern können. Im Gegensatz zu Applikationen, die ihre Daten im Hauptspeicher halten, bleiben die Daten in einem Datenbanksystem über einen längeren Zeitraum (insbesondere nach Beendigung eines Programms) verfügbar. Abb. 1.2: Datenbank Application 2 Application 3 User A Application 1 User B Database Um Ihnen zu verdeutlichen, wann ein Datenbanksystem Sinn macht, betrachten wir eine Firma, die verschiedene Abteilungen hat und in der die üblichen Geschäftsprozesse ablaufen (Bestellungen, Personalrekrutierung etc.). Jede Person, die in der Firma arbeitet, hat einen lokalen Computer, auf dem sie die Daten, die sie benötigt, selbst verwaltet und auf der eigenen Festplatte (im Dateisystem) ablegt. Natürlich werden mehrere Personen teilweise mit denselben Daten arbeiten, die sie dann jeweils für sich lokal ablegen. Wenn Daten modifiziert werden, müssen diese über das Netz hin- und hergeschoben werden. Neben der Verschwendung von Speicherplatz birgt dieses Vorgehen auch die Gefahr, dass die Daten „auseinanderlaufen“, d.h. ein und dasselbe Datum an unterschiedlichen Stellen mit unterschiedlichen Werten gespeichert wird. Redundant abgespeicherte Daten bergen also immer die Gefahr von Inkonsistenz (siehe Abb. 1.3). isolierte Daten Diese Art der Datenspeicherung, die in der Praxis durchaus nicht unüblich ist, führt zu weiteren Problemen, etwa zu so genannten isolierten Daten. Dies sind Daten, die irgendwo gespeichert sind, von denen aber andere Benutzer nichts wissen. Es können beispielsweise Abhängigkeiten zwischen verschiedenen Applikationen bestehen, die undokumentiert sind und sich nicht in den abgelegten Daten äußern. Zudem können Dateien in verschiedenen Formaten gespeichert werden. Zu allem Überfluss sind die Datenformate dann meist auch nicht dokumentiert, so dass es unterschiedliche Interpretationen der Daten gibt, je nachdem, wer sie liest. Diese Art der Datenverwaltung in Form von anwendungsspezifischen bzw. benutzerspezifischen Dateien hat also viele Nachteile. 1.3 Einführung Seite 15 Abb. 1.3: Benutzerspezifische Datenhaltung Abhängigkeiten ApplicationI1 ApplicationI2 ApplicationI3 ApplicationI4 DateiI1 DateiI2 DateiI3 DateiI4 A Isolierte Daten <A> VerschiedeneIFormate RedundatenIDaten Ein Datenbanksystem ermöglicht einen zentralen Speicherort für alle Daten eines Softwaresystems in einem einheitlichen Format für alle Benutzer. Der zentrale Speicherort vermeidet Redundanz und dadurch Inkonsistenz (siehe Abb. 1.4). Wenn sich das Datum an dieser einen Stelle ändert, dann ist es für alle Benutzer sichtbar, die darauf zugreifen dürfen. Der zentrale Speicherort erleichtert es auch, Zugriffsbeschränkungen und Zugriffskontrollen durchzuführen. Ebenso ist die Synchronisation im Mehrbenutzerbetrieb möglich, denn das Datenbanksystem garantiert die Integrität der Daten, auch wenn Fehler auftreten (z.B. in Benutzerprogrammen oder bei Stromausfall). Wie wir noch sehen werden, ermöglicht ein Datenbanksystem auch eine abstraktere Sicht auf die dort gespeicherten Daten. Dies wird durch ein sogenanntes konzeptionelles Datenbankschema erreicht, das wir später noch erklären werden. Die gemeinsame, abstrakte Sicht sorgt für Anwendungsunabhängigkeit. Außerdem sorgt sie dafür, dass die Interpretationsmöglichkeiten der Daten durch die Angabe von Kodierungen größtenteils festgelegt werden. Es gibt also weniger Möglichkeiten, sich über die Bedeutung von Daten zu streiten. Application 2 konzeptionelles Datenbankschema Abb. 1.4: Eine anwendungsunabhängige Datenbank Application 3 User A Application 1 User B Database Neben den vielen Vorteilen von Datenbanksystemen gibt es, wie wir noch sehen werden, auch einige Nachteile bei ihrem Einsatz. So verursacht die erstmalige Einführung eines Datenbanksystems in einem Softwaresystem hohe Kosten, auch wenn diese Kosten insgesamt (über die Projektlaufzeit) sinken mögen. Die Software zur Verwaltung von Datenbanksystemen nennt man Datenbankmanagementsysteme. Solche Datenbankmanagementsysteme werden auf den allgemeinen Anwendungsfall hin optimiert, sind also keine Spezialanwendungen. Dies verursacht in der Regel einen hohen Rechenaufwand und erfordert entsprechende Rechenleistung. Ein Datenbanksystem macht also keinen Sinn, wenn es sich um eine kleine Datenbank mit einer komplizierten Struktur handelt, die nur von einer einzelnen spezialisierten Anwendung gebraucht wird. Ebenso macht es wenig Seite 16 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell Sinn, ein Datenbanksystem einzuführen, wenn die Anwendung eine harte Echtzeitanforderung hat. Beispiele für solche Anwendungen sind Steuerungssoftware zur Kontrolle einer Ampelschaltung oder ein Patientenmonitoringsystem auf einer Intensivstation. Wenn kein Mehrbenutzerbetrieb benötigt wird, wie beispielsweise zur Ablage einer privaten CD-Sammlung, dann ist ein Datenbanksystem ebenfalls kaum erforderlich. Datenschutz Nicht zuletzt spielen auch viele Fragen der IT-Sicherheit im Bereich der Datenbanken eine Rolle. So wurden viele Basiskonzepte der IT-Sicherheit, etwa Zugriffsschutz und Informationsflusskontrolle, anfangs im Kontext von Datenbankforschung entwickelt. Heute muss man beim Entwurf und Betrieb von Datenbanksystemen immer auch das Thema Datenschutz beachten. So unterliegt das Sammeln von Daten beispielsweise einer Zweckbindung (Daten dürfen nur zu einem bestimmten Zweck gesammelt werden) und das Sammeln von Daten muss sparsam erfolgen (es dürfen nicht mehr Daten gesammelt werden als notwendig ist, um den verfolgten Zweck zu erreichen) [Kühling et al., 2011]. 1.3.3 Grundlegende Begriffe Datenbank Eine Datenbank ist eine Sammlung von zusammenhängenden Daten [Elmasri and Navathe, 2000]. Datenbanken werden in der Regel verwendet, um einen Ausschnitt der realen Welt zu modellieren. Sie repräsentieren also eine Art „Miniwelt“ [Sauer, 2002]. DBMS Ein Datenbankmanagementsystem (DBMS) hingegen ist eine Sammlung von Programmen zur Verwaltung einer Datenbank. Durch ein DBMS soll die Erzeugung einer Datenbank, die Wartung einer Datenbank und der konsistente Zugriff auf eine Datenbank gewährleistet sein. Abb. 1.5: Datenbankmanagementsystem (DBMS) Benutzer Datenbankanwendung Anwendungsprogramm Datenbanksystem DBMS Datenbank DBS Ein Datenbanksystem (DBS) schließlich ist die Kombination einer Datenbank und eines Datenbankmanagementsystems. Dies ist in Abb. 1.5 schematisch dargestellt. Datenbankanwendung Zudem gibt es noch den Begriff der Datenbankanwendung. Dies ist die Kombi- 1.3 Einführung Seite 17 nation einer Datenbank, eines Datenbankmanagementsystems und eines oder mehrerer Anwendungsprogramme (siehe Abb. 1.5). Merksatz 1.2 M Den Zusammenhang zwischen Datenbank (DB), Datenbankmanagementsystem (DBMS) und Datenbanksystem (DBS) drückt man häufig durch folgende Pseudo-Formel aus: DBS = DB + DBMS Um die vielen oben beschriebenen Vorteile zu erreichen, muss eine Datenbank neben den eigentlichen Nutzdaten auch noch zusätzliche Daten speichern, die die Nutzdaten „beschreiben“. Dies sind die sogenannten Metadaten. Nutzdaten Metadaten („Daten über Daten“) sind Beschreibungsdaten, etwa der Struktur der Datenbank oder zur Kodierung der Daten. Der Zusammenhang zwischen Nutzdaten, Metadaten und Datenbank wird in Abb. 1.6 nochmals bildlich dargestellt. Metadaten Abb. 1.6: Inhalt einer Datenbank Datenbank Metadaten Nutzdaten Schließlich müssen wir noch zwei wichtige Begriffe unterscheiden: Datenmodell (oder auch Datenbankmodell) und Datenbankschema. a) Das Datenmodell ist eine anwendungsunabhängige Strukturierungsvorschrift für Daten. Es hat also gar nichts mit einer konkreten Anwendung zu tun. Es bestimmt, wie die Daten einer Datenbank allgemein strukturiert werden. In diesem Modul betrachten wir ausschließlich das relationale Datenmodell. Das relationale Datenmodell ist die Basis für relationale Datenbanken. Das relationale Datenmodell ist aber nicht die einzige Strukturierungsvorschrift für Datenbanken. Am Ende des Moduls werden wir durch Verweise in die Literatur noch einen Ausblick etwa auf das Netzwerkmodell oder das hierarchische Datenmodell geben. Datenmodell b) Ein Datenbankschema ist die Beschreibung einer konkreten Datenbank. Das Datenbankschema einer relationalen Datenbank enthält beispielsweise Informationen zu den verschiedenen Tabellen der Datenbank und den Datenformaten, die darin abgelegt sind. Der überwiegende Teil dieses Moduls beschäftigt sich mit der Frage, wie man gute Datenbankschemata im relationalen Datenmodell entwirft. Datenbankschema Kontrollaufgabe 1.2: Grundbegriffe der Datenbanken Grenzen Sie die Begriffe Datenbank (DB), Datenbankmanagementsystem (DBMS), Datenbanksystem (DBS) und Datenbankanwendung voneinander ab. K Seite 18 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell 1.3.4 Die 3-Schema Architektur konzeptionelles Schema In diesem Modul wird vorwiegend eine bestimmte Art von Datenbankschema betrachtet, nämlich das konzeptionelle Schema. Entsprechend heißt das Modul auch „Konzeptionelle Modellierung“. In der Literatur [Rahm, 1994] unterscheidet man insgesamt drei Arten von Datenbankschemata. Diese werden üblicherweise auf drei Ebenen aufgeteilt (siehe Abb. 1.7), wobei das konzeptionelle Schema in der Mitte angesiedelt ist. externes Schema Für komplexe Anwendungen kann das Datenbankschema relativ groß werden und tausende von Tabellen enthalten. Man kann die Datenbank dann durch „Sichten“ auf die Tabellen strukturieren, die bestimmen, welche Anwendung welche Tabellen sehen kann. Die Informationen über diese Sichten werden auch als Metadaten in der Datenbank gespeichert und gehören auch zum Datenbankschema. Dieser Teil des Datenbankschemas wird auch als externes Schema bezeichnet (siehe Abb. 1.7). Durch die explizite Trennung der externen Schemata vom konzeptionellen Schema erreicht man, dass das konzeptionelle Schema unabhängig von bestimmten Anwendungen formuliert werden kann. Diese Eigenschaft wird als Anwendungsneutralität bezeichnet. Abb. 1.7: 3-SchemaArchitektur einer Datenbank Externe Schemata: - anwendungsspezifische Sichten Kern dieser Vorlesung: Konzeptionelles Schema: - Datenunabhängigkeit! - Anwendungsneutralität! Interne Schemata: - Zugriffspfade - Speicherungsstrukturen internes Schema Es gibt noch weitere Metadaten einer Datenbank, von denen wir jedoch bei der Realisierung der Datenbank bewusst abstrahieren. Hierbei handelt es sich um interne Realisierungsregeln der konkreten Datenbank, beispielsweise interne Speicherstrukturen, die den schnellen Zugriff auf die Daten ermöglichen (Indizes). Diese Informationen sollte man gegenüber dem Datenbankanwender verstecken, da man die Speicherstrukturen dann auch nachträglich noch verändern kann, ohne dass es die Funktionalität der Datenbankanwendung verändert (ein ähnliches Geheimnisprinzip lernen Sie im Modul „Einführung in die Programmierung“ kennen). Diese Speicherstrukturen sind ebenfalls Metadaten, die in der Datenbank abgelegt werden. Man nennt sie auch internes Schema. Datenunabhängigkeit Durch die explizite Trennung der internen Schemata vom konzeptionellen Schema erreicht man also, dass interne Speicherungsstrukturen vor dem Benutzer verborgen und unabhängig modifiziert werden können. Dies nennt man Datenunabhängigkeit. Der Grad der Unabhängigkeit, der letztlich in einer konkreten Anwendung erreicht werden kann, hängt dabei vom verwendeten Datenmodell ab.Da im relationalen Datenmodell alle Daten in Tabellen abgelegt werden und der Benutzer keinerlei physische Datenstrukturen (wie etwa physische Zeiger, die auf einen Speicherbereich verweisen) zu sehen bekommt, ist mit relationalen Datenbanken ein sehr hoher Grad an Datenunabhängigkeit erreichbar. Wenn wir im Folgenden von Datenbankschema sprechen, meinen wir immer das konzeptionelle Schema. Das konzeptionelle Schema ist der Kern jedes Datenban- 1.3 Einführung Seite 19 kentwurfs und beschreibt, welche Daten es gibt und wie sie zusammenhängen, und zwar unabhängig von der konkreten Umsetzung in einem Datenmodell. Kontrollaufgabe 1.3: Vorteile mehrschichtiger Architektur K Warum ist eine mehrschichtige Architektur für den Entwurf von Datenbanken empfehlenswert? 1.3.5 Phasen des Datenbankentwurfs Wenn man ein konzeptionelles Datenbankschema entwerfen möchte, stellt sich die Frage, wie man bei dessen Entwurf am besten vorgeht. Die Problemstellung ist in Abb. 1.8 dargestellt: Auf der einen Seite existiert die Anwendungsdomäne. Der relevante Ausschnitt dieser Anwendungsdomäne, der später durch die Datenbank repräsentiert werden soll, wird „Miniwelt“ genannt. Auf der anderen Seite steht das relationale Datenmodell, mit dem wir die Domäne modellieren wollen. Ziel dieses Modellierungsprozesses ist die Beschreibung einer Menge von Tabellen, die wir relationales Datenbankschema nennen. Anwendungsdomäne Miniwelt Abb. 1.8: Wie komme ich zum Schema? ? Tabelle 1 Tabelle 3 So einfach diese Aufgabe erscheint, so schwer gestaltet sie sich in der Praxis. Betrachten wir beispielsweise die Domäne „Gesundheitswesen“ und die Aufgabe, ein Patientenverwaltungssystem für ein Krankenhaus zu entwerfen. Das Problem hierbei liegt nun darin, dass die Domänenexperten (Ärzte, Pfleger etc.) keinen Hintergrund in konzeptioneller Modellierung haben und nicht wissen, wie sie ihr Domänenwissen in ein Datenbankschema abbilden sollen. Datenbankexperten haben hingegen ein Verständnis von Tabellen und Relationen, aber es fehlt Ihnen an Domänenwissen. Man benötigt also eine Art „Zwischensprache“, um auf einfache und doch präzise Art und Weise zu kommunizieren. Diese Zwischensprache soll möglichst einfach zu verstehen und unabhängig von allen Implementierungsdetails sein, die erst relevant werden, wenn man die beschriebene Miniwelt in der konkreten Sprache eines DBMS formulieren möchte. In unserem Fall ist die Zielsprache, in der wir unsere Miniwelt formulieren wollen, das relationale Datenmodell. Wir gehen also davon aus, dass wir ein relationales DBMS verwenden wollen. Da das konzeptionelle Schema aber erst mal unabhängig von der Implementierung des DBMS sein soll, verwenden wir zunächst ein sogenanntes „semantisches Datenmodell“ als Zwischensprache. Eine solche Zwischensprache, das so genannte Entity-Relationship-Modell (ER-Modell), werden wir in Kürze kennenlernen. Das ER-Modell ist die Grundlage vieler Modellierungssprachen, so auch von UML, welche Sie in der Lehrveranstaltung Programmiersysteme kennenlernen werden. Die Vorgehensweise der Datenmodellierung ist nochmals genauer in Abb. 1.9 dargestellt. Der Anfangspunkt ist jeweils die zu modellierende Miniwelt. In (unter Umständen) mehreren Schritten wird die Miniwelt in ein konzeptionelles Schema abgebildet, das in der angesprochenen Zwischensprache formuliert ist. Da wir hier das ER-Modell als Zwischensprache verwenden, steht als Ergebnis ein ERDiagramm. Seite 20 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell konzeptioneller Entwurf Der Schritt von der Miniwelt in das konzeptionelle Schema gilt als der eigentlich schwierige Schritt bei der konzeptionellen Modellierung. Man spricht hier auch vom konzeptionellen Entwurf. Für einen guten konzeptionellen Entwurf braucht man in der Regel viel Erfahrung. logischer Entwurf Während dieser erste Schritt eher als „Kunst“ betrachtet wird, ist der zweite Schritt, nämlich die Übertragung des konzeptionellen Schemas in das logische Schema, eher Handwerk. Dieser zweite Schritt wird auch als logischer Entwurf bezeichnet. Im Rahmen des logischen Entwurfs wird ein implementierungsunabhängiges konzeptionelles Schema in die konkrete Sprache eines DBMS überführt. Im relationalen Datenmodell ist das Ergebnis dann ein relationales Datenbankschema. Abb. 1.9: Datenmodellierung an Hand eines Minimodells Miniwelt Begriffe Objekte Objektbeziehungen Konzeptioneller Entwurf Logischer Entwurf K Kontrollaufgabe 1.4: Eigenschaften eines konzeptionellen Schemas Welche zwei Haupteigenschaften eines konzeptionellen Schemas werden durch die explizite Trennung von externen und internen Schemata erreicht? Abb. 1.10 zeigt den konzeptionellen Entwurf im Zusammenhang weiterer Phasen des Datenbankentwurfs. In diesem Studienbrief geht es zunächst um die Erstellung des konzeptionellen Entwurfs. Dieser Schritt ist unabhängig von einem konkreten Datenbankmanagementsystem. Alle weiteren Schritte, insbesondere der logische Entwurf, sind DBMS-spezifisch. Im Rahmen dieses Moduls werden nur der konzeptionelle und der logische Entwurf betrachtet. Der physische Entwurf wird in anderen Datenbankvorlesungen behandelt. Der linke Zweig von Abb. 1.10 bezieht sich auf die Einbettung der Datenbank in die Anwendung und wird üblicherweise in Lehrveranstaltungen zum Thema Software Engineering behandelt. 1.3.6 Typen von Datenbanksystemen Das Relationenmodell, mit dem wir uns in diesem Modul beschäftigen, ist das weltweit verbreitetste Datenbankmodell. Es ist aber nicht das einzige. Zum Abschluss dieses Abschnittes erfolgt noch ein kurzer (teilweise) historischer Ausblick auf verschiedene Typen von Datenbanksystemen. Dieser Abschnitt ist als Exkurs zu verstehen. 1.4 Das Entity-Relationship-Modell Seite 21 Abb. 1.10: Phasen des Datenbankenentwurfs (nach Elmasri and Navathe [2000]) Miniwelt DBMS-unabhängig FunktionaleKAnforderungen SpezifikationKvon Transaktionen KonzeptuellesKSchema DBMS-spezifisch Anforderungsanalyse Anwendungsprogrammentwurf LogischesKBKonzeptuellesäKSchema Funktionalanalyse Datenbankanforderungen Konzeptueller Entwurf Vorlesung Konzeptionelle Modellierung LogicalKDesign PhysicalKDesign Implementierung InternesKSchema Andere DatenbankVorlesungen Anwendungsprogramm Das historisch älteste Datenmodell ist das hierarchische Datenmodell. Hier werden Datensätze, die hierarchisch zusammenhängen, „nahe beieinander“ gespeichert. Ein Beispiel für eine hierarchische Datenbeziehung ist die Abteilungshierarchie einer Firma (Abteilungen mit Unterabteilungen). Suchanfragen entlang dieser Hierarchie werden sehr effizient unterstützt: Wenn man den Chef einer Abteilung gefunden hat, dann hat man auch seine Mitarbeiter. Wenn man hingegen andere Datenstrukturen modellieren will, die entgegen der Hierarchie stehen (beispielsweise Mitarbeiter, die in mehreren Abteilungen arbeiten), muss man Redundanz einbauen und wird insbesondere bei Änderungsoperationen ineffizient. Das hierarchische Datenmodell erlaubt nur einen geringen Grad an Datenunabhängigkeit, weil der semantische Bezug von zwei Datensätzen durch physische Nachbarschaft ausgedrückt wird. Es ist also beispielsweise nicht ohne Weiteres möglich, den Speicherort eines Datensatzes zu verändern ohne damit auch seine Bedeutung zu verändern. hierarchisches Datenmodell Objektorientierte Datenbanksysteme verwenden ähnliche Konzepte zur Datenmodellierung wie objektorientierte Programmiersprachen (Objekte, Methoden, Vererbung, siehe Modul „Einführung in die Programmierung“), konnten sich aber am Markt nicht wirklich durchsetzen. Objektrelationale Datenbanksysteme sind die Kombination aus relationalen und objektorientierten Konzepten. XMLDatenbanksysteme haben hingegen ihre Vorteile, wenn es um die Verarbeitung von „semistrukturierten Daten“ geht. Diese werden vor allem in Webanwendungen eingesetzt. Auf weitere Datenmodelle soll hier nicht eingegangen werden. 1.4 Das Entity-Relationship-Modell Datenbanken spielen eine zentrale Rolle in modernen Softwaresystemen. Im vorigen Abschnitt haben wir gesehen, welche Rolle das konzeptionelle Schema im Kontext des Datenbankentwurfs und der konzeptionellen Modellierung spielt: Es ist ein zentrales Ausdrucksmittel bei der Umsetzung eines Realitätsausschnitts in ein Modell. Um das konzeptionelle Schema auszudrücken, benötigt man eine Notation (eine „Sprache“). Entity-Relationship-Diagramme (ER-Diagramme) sind Ausdrücke einer solchen Sprache. Den Formalismus hinter ER-Diagrammen nennt man das Entity-Relationship-Modell (abgekürzt ER-Modell). In diesem Kapitel lernen Sie die Grundlagen des Entity-Relationship-Modells Entity-RelationshipModell Seite 22 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell kennen, insbesondere die verschiedenen Entity-Typen und Relationship-Typen. Einen Ausschnitt der Welt kann man in ganz verschiedener Weise mittels ERDiagrammen ausdrücken. Sie lernen deshalb auch, wie man möglichst gute ERDiagramme schreibt, also den Unterschied zwischen guten und schlechten ERDiagrammen. Dieses Kapitel orientiert sich an der Begleitliteratur, insbesondere Elmasri and Navathe [2000, Kapitel 3] . 1.4.1 Grundlagen des ER-Modells Das ER-Modell ist eine formale Ausdrucksform, um Gegenstände (Entities) und ihre Beziehungen (Relationships) untereinander darzustellen. Wir gehen nun auf die einzelnen Begriffe des ER-Modells genauer ein. Da diese Begriffe zentral für das Verständnis dieses Moduls sind, haben wir sie im Rahmen von Definitionen hervorgehoben. Definition 1.1: Entity D Ein Entity ist ein zu beschreibendes Objekt.2 Ein Entity kann beispielsweise ein konkretes Haus, ein bestimmtes Auto oder ein benennbares Boot sein, im Prinzip alles, was in einer Datenbank repräsentiert und durch sie verwaltet werden soll. Eine Menge gleichartiger Objekte nennt man auch Entity-Menge. Entity-Typ Beim Datenbankentwurf möchte man aber nicht auf der Ebene konkreter Entities arbeiten, sondern auf der Ebene von Entity-Typen. Entity-Typen abstrahieren eine Entity-Menge durch die Angabe ihrer typischen Eigenschaften. Ein Entity-Typ könnte eine bestimmte Menge von Personen sein, etwa die Menge der Mitarbeiter einer Firma. Attribut Grafisch stellt man einen Entity-Typ als Kasten dar. Jeder Entity-Typ hat einen Namen. Diesen Namen schreibt man üblicherweise mitten in den Kasten hinein. In Abb. 1.11 ist als Beispiel der Entity-Typ „Mitarbeiter“ grafisch dargestellt. Um Entities genauer zu beschreiben, verwendet man Attribute. Abb. 1.11: EntityTyp mit Attributen Vorname Name PNR Mitarbeiter Definition 1.2: Attribut D Ein Attribut ist eine Eigenschaft bzw. ein Merkmal von Objekten eines EntityTyps. 2 Wir sagen eingedeutscht „das“ Entity, es übernimmt als das Geschlecht vom Objekt. 1.4 Das Entity-Relationship-Modell Seite 23 Beispiele für Attribute eines Mitarbeiters sind die Personalnummer (PNR, siehe Abb. 1.11), der Vorname oder Nachname. Unter allen Attributen gibt es besondere Attribute, so genannte Schlüsselattribute. Dies sind Attribute, die genau ein Entity identifizieren. Bei Schlüsselattributen gibt es also jeden Attribut-Wert nur einmal. Schlüsselattribute werden in der grafischen Darstellung unterstrichen. In Abb. 1.11 ist das Attribut „PNR“ ein Schlüsselattribut, da jedem Mitarbeiter eine eindeutige Nummer zugewiesen wird. Schlüsselattribut Manchmal kann ein Entity-Typ auch mehrere Schlüsselattribute enthalten. Wenn mehrere Attribute unterstrichen sind, bedeutet das in der hier vorgestellten Notation, dass es verschiedene Möglichkeiten gibt, die Entities dieses Typs zu identifizieren. Beispielsweise könnten Abteilungen entweder durch den Abteilungsnamen oder durch die Abteilungsnummer identifiziert werden. Manchmal braucht man auch eine Kombination von Merkmalen, um Entities zu identifizieren. Dann verwendet man zusammengesetzte Attribute. Unter der Annahme, dass es unter den Mitarbeitern einer Firma keine Personen mit demselben Namen gibt (also der Kombination aus Vornamen und Nachnamen), könnte man auch die beiden Attribute „Vorname“ und „Nachname“ als zusammengesetztes Attribut definieren und dieses Attribut als Schlüsselattribut auszeichnen. Wir werden später dazu noch Beispiele kennenlernen. Neben Entities gibt es als zweites wesentliches Konzept im ER-Modell sogenannte Relationships. Definition 1.3: Relationship D Eine Relationship ist eine Beziehung zwischen zwei oder mehr Objekten.3 Analog zur Entity-Menge bezeichnet man eine Menge gleichartiger Relationships als Relationship-Menge. Ein Relationship-Typ ist eine Beschreibung gleichartiger Beziehungen. Genauso wie bei den Entities verwenden wir zur Modellierung nicht konkrete Relationships, sondern Relationship-Typen. Vorname Name PNR Mitarbeiter Position Arbeitet_in Beginn Ende Projekt PNR Name 3 Sprachlich übernimmt die Relationship das Geschlecht von der Beziehung. Wir sagen also eingedeutscht die Relationship. Relationship-Menge und Relationship-Typ Abb. 1.12: Beispiel für Relationship-Typ Seite 24 Darstellung von Relationship-Typen Studienbrief 1 Grundlagen der Modellierung und das ER-Modell Abb. 1.12 zeigt ein einfaches Beispiel mit zwei Entity-Typen (Mitarbeiter und Projekt) und einem Relationship-Typ „arbeitet in“. Eine Ausprägung dieses Typs beschreibt die „Arbeitsbeziehung“ zwischen einem Mitarbeiter und einem Projekt, in dem er oder sie arbeitet. Relationship-Typen werden typischerweise als Raute dargestellt, die mit Linien die Entity-Typen verbinden, zwischen denen die Beziehung besteht. Relationship-Typen besitzen einen Namen und können Attribute haben. In dem Beispiel aus Abb. 1.12 wird festgehalten, in welcher Position der Mitarbeiter im Projekt arbeitet, wann er seine Arbeit im Projekt begann und wann sie voraussichtlich endet. Relationship-Typen können keine Schlüsselattribute haben, da die einzelnen konkreten Relationships (Beziehungen) immer durch die jeweils beteiligten Entities identifiziert werden. K Kontrollaufgabe 1.5: Attribute Stellen Sie sich vor, das Attribut „Position“ wäre nicht ein Attribut des Relationship-Typs „arbeitet in“, sondern des Entity-Typs „Mitarbeiter“. Welche Vor- und Nachteile hätte dies? Was ist, wenn ein Mitarbeiter in mehreren Projekten arbeitet? Macht es Sinn, das Attribut an den Entity-Typ „Projekt“ zu heften? Im Prinzip haben Sie jetzt bereits die wichtigsten Grundlagen des ER-Modells kennengelernt. Um dieses Wissen zu vertiefen, betrachten wir ein Beispiel. Dabei sehen wir, dass ein ER-Diagramm schnell sehr komplex werden kann. Gerade für Anfänger sind diese Diagramme schwer nachzuvollziehen. Wir werden deshalb den Formalismus ausgiebig in den Übungen dieses Studienbriefs behandeln. 1.4 Das Entity-Relationship-Modell Seite 25 Im folgenden Beispiel soll die Personalverwaltung einer Firma im ER-Modell modelliert werden: Beispiel 1.3: Personalverwaltung B Die Beispielfirma ist nach Abteilungen organisiert. Jede Abteilung hat einen eindeutigen Namen sowie eine Abteilungsnummer. Weiter ist jeder Abteilung ein Manager zugeordnet. Zu jedem Manager wird das Startdatum seiner Managertätigkeit notiert. Jede Abteilung kann auf mehrere Standorte aufgeteilt sein und mehrere Projekte organisieren. Jedes Projekt hat einen eindeutigen Projektnamen, eine Projektnummer, und ein Projekt findet immer nur an einem Standort statt. Ein Mitarbeiter kann männlich oder weiblich sein, besitzt einen Namen, eine Versicherungsnummer, eine Adresse, ein Geburtsdatum und bezieht ein bestimmtes Gehalt. In der Firma wird ein Mitarbeiter immer einer Abteilung zugeordnet, kann aber an mehreren Projekten beteiligt sein, auch an Projekten anderer Abteilungen. Es soll festgehalten werden, wie viele Stunden ein Mitarbeiter an einem Projekt arbeitet. Auch der direkte Vorgesetzte eines Mitarbeiters muss immer festgelegt sein. Um die Bezüge (Kindergeld, Freibeträge) eines Mitarbeiters korrekt berechnen zu können, sollen auch Daten der Angehörigen eines Mitarbeiters festgehalten werden. Benötigt werden Angaben zu Name, Geschlecht, Geburtsdatum sowie zur Art der Beziehung zu dem Mitarbeiter. Die Angaben aus dem vorgenannten Beispiel kann man nun mit dem bestehenden Wissen über das ER-Modell in ein erstes ER-Diagramm überführen. Dies ist in Abb. 1.13 dargestellt. Wie wir gleich sehen werden, verwendet die Abbildung einige „Tricks“, um ER-Diagramme leichter lesbarer zu machen. Diese Tricks sind auch Teil der offiziellen Notation. Wir erklären diese Tricks im Anschluss an die folgende Kontrollaufgabe. Kontrollaufgabe 1.6: Überprüfung des Beispiels Gehen Sie den Text aus Beispiel 1.3 durch und prüfen Sie, ob alle EntityTypen und Relationship-Typen im Diagramm vorhanden sind und ob keines vergessen wurde. 1.4.2 Die Symbole in ER-Diagrammen Wir beschreiben im Folgenden die Darstellung und Bedeutung der Symbole in ERDiagrammen im Überblick. Diese Beschreibung wird in den folgenden Abschnitten dann noch weiter vertieft. Wir beginnen mit Entity-Typen und Relationship-Typen. Abb. 1.14 zeigt die Symbole in der Übersicht nach Elmasri and Navathe [2000]. Wie oben bereits erwähnt, werden Entity-Typen durch Rechtecke dargestellt, Relationship-Typen durch Rauten. Man unterscheidet zwischen „normalen“ Entity-Typen und schwachen EntityTypen, die mit einem doppelten Rechteck bezeichnet werden und die wir später noch genauer erklären. K Geschlecht 1 Geschlecht Name Vorgesetzer von GebDat Untergebener 1 1 Gehalt Nachname Mitarbeiter Name Mittelinitiale Beziehung Angehöriger N leitet Stunden 1 1 Arbeitet an Startdatum Arbeitet für Hat_Agehörige N 1 N GebDat M Nummer Nummer Projekt N organisiert 1 Abteilung Name Name Orte Ort AnzahlMitarbeiter Abb. 1.13: ER-Diagramm einer Personalverwaltung (zur besseren Lesbarkeit rotiert) Vorgesetzer Adresse SSN Vorname Seite 26 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell 1.4 Das Entity-Relationship-Modell Seite 27 Bei Relationship-Typen unterscheidet man zwischen „normalen“ RelationshipTypen und identifizierenden Relationship-Typen. Identifizierende Beziehungstypen stehen im Zusammenhang zu schwachen Entity-Typen und werden im Folgenden noch genauer erläutert. Abb. 1.14: Entity- und Relationship-Typen ENTITY EntitywTypw(Gegenstandstyp) WEAK ENTITY SchwacherwEntitywTyp RELATION SHIP RelationshipwTypw(Beziehungstyp) Ident. RELATION SHIP IdentifizierenderwRelationshipwTyp Die verschiedenen Möglichkeiten für Attribute sind in Abb. 1.15 dargestellt. Wie bereits beschrieben, werden Attribute als Kreise/Ellipsen dargestellt und haben einen Namen. Der Name von Schlüsselattributen wird dabei unterstrichen. Abb. 1.15: Attribute Attribut attribute Schlüsselattribut UID Mehrwertiges Attribut multivalued A.2 A.3 A.1 Zusammengesetztes Attribut A derived Abgeleitetes Attribut Ein Attribut wie „Gehalt“ oder „Name“ hat üblicherweise genau einen Wert. Es gibt aber auch Attribute, bei denen mehrere Werte sinnvoll sind. Ein Beispiel aus Abb. 1.13 ist das Attribut „Orte“ des Entity-Typs „Abteilung“, das mehrere Werte haben kann, da sich eine Abteilung an mehreren Standorten befinden kann. Mehrwertige Attribute werden mit einer doppelten Linie eingerahmt. Attribute können aus mehreren Attributen zusammengesetzt sein. Wie dies dargestellt wird, ist in Abb. 1.15 zu sehen. Ein Beispiel aus der Personalverwaltung in Abb. 1.13 ist der Name des Mitarbeiters, der aus den drei Attributen Vorname, Mittelinitiale und Nachname zusammengesetzt ist. Schließlich gibt es noch abgeleitete Attribute. Ein abgeleitetes Attribut enthält einen Wert, der aus anderen im Modell bereits vorhandenen Informationen vollständig abgeleitet werden kann. Man muss dieses Attribut also eigentlich gar nicht explizit speichern, da es immer wieder „ausgerechnet“ werden kann. Ein Beispiel für abgeleitetes Attribut Seite 28 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell ein abgeleitetes Attribut in Abb. 1.13 ist „AnzahlMitarbeiter“ des Entity-Typs „Abteilung“. Über die Zuordnung von Mitarbeitern zu Abteilungen kann man dieses Attribut ausrechnen. Abgeleitete Attribute werden mit einer gestrichelten Linie umkreist. Abb. 1.16: Relationship-Typen R E1 E2 Totale"Teilnahme"von"E2"in"R E1 1 R N E2 Kardinalität"des"Beziehungstyps"R E1 (min,"max) R E2 Strukturelle"Bedingung"für"die"Teilnahme von"E1"in"R",(min,"max)-Notation, In Abb. 1.16 werden verschiedene Möglichkeiten aufgezeigt, wie Einschränkungen (Constraints) für Beziehungstypen definiert werden können. Ein Beziehungstyp wird, wie bereits erwähnt, als Raute dargestellt, die mit Linien zwei (oder mehrere) Entity-Typen verbindet. Diese Basis-Notation wird durch zusätzliche Markierungen noch erweitert. Diese Markierungen bezeichnen die Art der Beziehung noch etwas genauer. Kardinalität Betrachten wir zunächst die Zahlen, die an den Verbindungslinien des RelationshipTyps zu den jeweiligen Entity-Typen stehen. Diese beziffern die sogenannte Kardinalität des Relationship-Typs, d.h. sie geben wieder, in welchem Zahlenverhältnis die Beziehung gilt. Betrachten wir zur Verdeutlichung das Beispiel in Abb. 1.13: Hier besteht eine Beziehung „arbeitet für“ zwischen dem Entity-Typ „Mitarbeiter“ und dem Entity-Typ „Abteilung“. Die Zahlen N (auf der Verbindung zum Mitarbeiter) und 1 (auf der Verbindung zur Abteilung) bedeuten, dass mehrere (ausgedrückt als N) Mitarbeiter in einer Abteilung arbeiten. Hier werden also mehrere Mitarbeiter einer Abteilung zugeordnet. funktionale Abhängigkeit Als Kontrast betrachten wir die darunterliegende Beziehung „leitet“. Die Angaben dort besagen, dass ein Mitarbeiter höchstens einer Abteilung als Leiter zugeordnet ist und umgekehrt. Ein und derselbe Mitarbeiter kann demnach nicht zwei Abteilungen leiten. Genauso kann ein und dieselbe Abteilung nicht von mehreren Mitarbeitern geleitet werden. Beachten Sie, dass durch jede 1 an einer Kante eine Einschränkung definiert wird. Die 1 in Abb. 1.16 besagt beispielsweise, dass es zu jedem Entity vom Typ E2 höchstens ein Entity vom Typ E1 gibt. Chen-Notation Etwas anders formuliert bedeutet das: Es wird eine funktionale Abhängigkeit definiert, so dass E1 funktional durch E2 bestimmt wird. Diese Form der Spezifikation von Beziehungskardinalitäten wird nach dem Erfinder des ER-Modells Peter Chen auch als Chen-Notation bezeichnet. totale Teilnahme Wenn wir möchten, dass jeder Mitarbeiter in mindestens einer Abteilung arbeitet, sprechen wir von totaler Teilnahme eines Entity-Typs an der Beziehung. Totale Teilnahme wird mit einer doppelten Linie markiert. In Abb. 1.13 gibt es mehrere Beziehungen, die eine totale Teilnahme vorschreiben. Beispielsweise wird jede Abteilung von mindestens einem Mitarbeiter geleitet. Außerdem arbeitet jeder 1.4 Das Entity-Relationship-Modell Seite 29 Mitarbeiter in mindestens einem Projekt, und jedem Projekt ist mindestens ein Mitarbeiter zugeordnet. Kontrollaufgabe 1.7: totale Teilnahme K Prüfen Sie anhand Ihres Verständnisses von ER-Diagrammen, ob die folgenden Aussagen für das Diagramm im Abb. 1.13 auf Seite 26 stimmen: 1. Jeder Mitarbeiter arbeitet in genau einer Abteilung. 2. Es kann Mitarbeiter geben, die in keiner Abteilung arbeiten. 3. Es kann Abteilungen geben, in denen keine Mitarbeiter arbeiten. 4. Jeder Mitarbeiter leitet eine Abteilung. 5. Jeder Mitarbeiter leitet mindestens eine Abteilung. 6. Es kann Abteilungen geben, die durch keinen Mitarbeitet geleitet werden. Alternativ zur Chen-Notation in Verbindung mit der Notation zur Formulierung einer Totalen Teilnahme kann auch die sogenannte „(min,max)-Notation“ zur Spezifikation von Einschränkungen auf Beziehungstypen verwendet werden (siehe Abb. 1.16, unten). Eine Angabe von (x, y) an einer Kante eines Entity-Typs E1 zum Relationship-Typen R bedeutet folgendes: • E1 nimmt an mindestens x Beziehungen R teil. • E1 nimmt an höchstens y Beziehungen R teil. So kann man beispielsweise modellieren, dass eine Abteilung mindestens 2 und höchstens 100 Mitarbeiter haben darf. Auf den ersten Blick scheint die (min,max)-Notation die zuvor genannten Darstellungen zu verallgemeinern. Wie wir später noch sehen werden, gibt es bei mehrstelligen Beziehungstypen aber auch Einschränkungen, die nur mit der ChenNotation formuliert werden können. Kontrollaufgabe 1.8: totale Teilnahme und (min,max)-Notation K Wie würde man totale Teilnahme von E1 an R in der (min,max)-Notation ausdrücken? 1.4.3 Entities und ihre Attribute Wir betrachten die Begriffe Entity, Entity-Typ und Attribute von Entities nun genauer. Was macht ein Entity genau aus? Ein wesentliches Merkmal eines Entity ist seine eigenständige Existenz. Entities müssen identifizierbar sein, man muss sie also unterscheiden können. Diese Unterscheidung erfolgt mittels ihrer Attribute. Insbesondere möchten wir gerne, dass Entities eindeutig identifizierbar sind. Dies geschieht über die bereits oben beschriebenen Schlüsselattribute. Beispiel für ein Schlüsselattribut bei Studierenden ist die Matrikelnummer (es gibt keine zwei Studierenden mit derselben Matrikelnummer). Merkmale von Entities Seite 30 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell Attributwert Attribute von (konkreten) Entities haben einen Wert (siehe Abb. 1.17). Der Unterschied zwischen Attributen und Attributwerten ist wichtig, um den Unterschied von Entity-Typ und Entity-Menge zu verstehen. Entities werden durch ihre Attributwerte identifiziert. Wir fordern zusätzlich, dass Entities ausschließlich durch ihre Attributwerte identifiziert werden. Entities müssen also vollständig durch ihre Attributwerte beschreibbar sein. Außer Attributwerten (und Beziehungen) gibt es nichts, was ein Entity im ER-Modell zusätzlich beschreiben könnte. Wir fordern zusätzlich, dass Entities relevant sind für den zu modellierenden Weltausschnitt. Abb. 1.17: Entity, Attribute, Attributwerte Entity E1 Name: Meier Vorname: Hans PNR: 1236 Attribute Attributwerte Intension und Extension Die Unterscheidung zwischen Entity-Typ und Entity-Menge bringt uns auf einen Gegensatz, den wir später auch in anderen Kontexten wiedersehen werden. Merksatz 1.3: Intension und Extension M Der Entity-Typ (Intension) ist eine abstrakte Typ-Beschreibung. Die EntityMenge (Extension) ist die Menge von Entities, die der Typ-Beschreibung entsprechen. Intension Die Intension ist also das, was Sie modellieren (wollen): Der Entity-Typ mit seinen Attributen. Dies ist das konzeptionelle Schema, das sich üblicherweise zur Lebenszeit der Datenbank nicht ändert. Die Entity-Menge umfasst hingegen alle konkreten Entities, die in ihrer Datenbank gespeichert werden. Diese Menge ist „flexibel“ und kann sich mit der Zeit ändern. Ein Entity-Typ hat also Attribute, ein Entity hat Attributwerte. Entity-Typen unterscheiden sich in ihren Attributen. Der Entity-Typ „Mitarbeiter“ beinhaltet beispielsweise die Attribute „Name“, „Alter“ und „Gehalt“. Ein anderer Entity-Typ „Firma“ enthält die Attribute „Name“, „Standort“ und „Chef“. Das Entity-Set für den Entity-Typ „Mitarbeiter“ könnte also zu einem bestimmten Zeitpunkt so aussehen: m1 (John Smith, 55, 80K) m2 (Fred Brown, 40, 30K) m3 (Judy Clark, 25, 20K) Das Entity-Set für den Typ „Firma“ könnte wie folgt aussehen: f1 (Sunco Oil, Houston, John Smith) f2 (Fast Computer, Dallas, Bob King) 1.4 Das Entity-Relationship-Modell Seite 31 Die Kürzel m1 , m2 , m3 , f1 und f2 sollen die eigentlichen Entities darstellen. In Klammern dahinter folgen deren Attributwerte. Im oberen Beispiel ist „Firma“ die Intension und f1 und f2 sind die Extension. Analog dazu handelt es sich bei „Mitarbeiter“ um die Intension und bei m1 , m2 und m3 um die Extension. Attribute und der NULL-Wert Wir gehen nun genauer auf die Attribute von Entities ein. Wie bereits dargestellt, beschreiben Attribute Eigenschaften eines Entity. In den bisher aufgeführten Beispielen wurde jedem Entity für jedes Attribut jeweils ein Wert zugewiesen. Es kann aber auch sein, dass es Entities gibt, denen für ein bestimmtes Attribut kein Wert zugewiesen werden kann. Dies ist beispielsweise der Fall, wenn ein Mitarbeiter kein Telefon hat. Dann kann im Attribut Telefonnummer auch kein Wert stehen. Für solche Fälle gibt es einen besonderen Attributwert, den wir NULL nennen. Der Attributwert NULL bedeutet nicht immer, dass der entsprechende Attributwert nicht existiert. Der Wert NULL bedeutet einfach nur „dieser Wert fehlt“. Verschiedene Gründe dafür könnten sein, dass 1. der Wert nicht existiert, oder 2. der Wert existiert, aber nicht bekannt ist, oder 3. es unbekannt ist, ob der Wert existiert. Der Wert NULL ist vom Zahlenwert „0“ zu unterscheiden. Stellen Sie sich vor, ein Attribut wie „Gehalt“ besitzt den Wert „0“. Das bedeutet, dass das Attribut „befüllt“ und inhaltlich interpretiert werden kann (das Gehalt beträgt 0 Euro). Ist hingegen ein Attributwert NULL gespeichert, bedeutet dies, dass das Attribut nicht befüllt ist. In diesem Fall darf man es nicht interpretieren. Ein anderes Beispiel ist ein Attribut „Telefonnummer“ einer Person. Der Wert NULL könnte in ganz verschiedener Weise interpretiert werden. Er kann bedeuten, dass die Person gar kein Telefon hat, allerdings auch, dass die Telefonnummer einfach unbekannt ist. Um keine Fehlinterpretationen zu verursachen, fordern wir, dass NULL-Attribute nicht interpretiert werden dürfen. Zusammengesetzte Attribute Attribute können verschieden aufgebaut sein. Der einfachste Fall sind atomare Attribute. Diese haben wir oben bereits kennengelernt. Diese speichern einfach einen Attributwert. Es gibt hingegen auch Attribute, die aus mehreren Teilattributen bestehen. Dies sind zusammengesetzte Attribute. Oben hatten wir bereits ein Beispiel für ein zusammengesetztes Attribut kennengelernt, das Attribut „Name“. Aber auch das Attribut „Adresse“ kann aus mehreren strukturierten Teilattributen bestehen wie etwa „PLZ“, „Ort“, „Straße“ oder „Hausnummer“. Um dieses Attribut trotzdem als ganzes ansprechbar zu haben, wird es als zusammengesetztes Attribut definiert. Mehrwertige Attribute Eine weitere Spielart von Attributen sind mehrwertige Attribute. Atomare Attribute sind einwertige Attribute. Sie können immer maximal einen Wert speichern, wie beispielsweise „Alter“ oder „Geschlecht“. Mehrwertige Attribute können mehrere Attributwerte speichern. Ein Beispiel hatten wir bereits oben: Das Attribut „Orte“ einer Abteilung kann mehrere Werte haben, da die Abteilung über mehrere mehrwertiges Attribut Seite 32 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell Liegenschaften verteilt sein kann. Durch eine Zusatznotation (die wir hier nicht besprechen) kann man sogar Ober- und Untergrenzen angeben. Abgeleitete Attribute gespeicherte & abgeleitete Attribute Weiterhin unterscheiden wir gespeicherte und abgeleitete Attribute. Dieses Merkmal bezieht sich auf die interne Repräsentation. Der Normalfall sind gespeicherte Attribute, die „ganz normal“ in der Datenbank abgelegt werden. Ein abgeleitetes Attribut hingegen kann vollständig aus anderen verfügbaren Informationen abgeleitet werden. So kann beispielsweise das Alter aus dem aktuellen Datum und dem Geburtsdatum abgeleitet werden und muss deshalb nicht explizit gespeichert werden. Komplexe Attribute komplexes Attribut Verschiedene Attributsmerkmale können kombiniert werden. Dies führt zu komplexen Attributen. Diese werden textuell in einer speziellen Notation angegeben. Wir betrachten hier die Kombination von zusammengesetzten und mehrwertigen Attributen. Zusammengesetzte Attribute schreiben wir in runden Klammern. Ein Attribut „Telefonnummer“, das aus den Attributen „Vorwahl“ und „Teilnehmernummer“ zusammengesetzt ist, notieren wir wie folgt: Telefonnummer (Vorwahl, Teilnehmernummer) Allgemein wird das zusammengesetzte Attribut A, das aus den Attributen A1 bis An zusammengesetzt ist, wie folgt aufgeschrieben: A(A1 , . . . , An ) Mehrwertige Attribute werden in der Notation mit geschweiften Klammern geschrieben. Das mehrwertige Attribut „Standort“ würde man dann wie folgt schreiben: { Standort } Man kann zusammengesetzte Attribute und mehrwertige Attribute zu komplexen Attributen kombinieren. B Beispiel 1.4: komplexe Attribute Ein Beispiel für ein komplexes Attribut „Kontaktinfo“ könnte man beispielsweise wie folgt textuell notieren: { Kontaktinfo ( { Telefonnummer (Vorwahl, Teilnehmernummer) }, Adresse (Straße (Straßenname, Hausnummer), PLZ, Ort) ) } Das Attribut „Kontaktinfo“ ist also ein mehrwertiges Attribut, das aus mehreren Attributen zusammengesetzt ist, nämlich „Telefonnummer“ und „Adresse“. Das Attribut „Telefonnummer“ ist ein mehrwertiges, zusammengesetztes Attribut. Adresse hingegen ist zusammengesetzt aus „Straße“, „PLZ“, „Hausnummer“, wobei „Straße“ wieder ein zusammengesetztes Attribut ist. Dieses Beispiel ist nicht sonderlich elegant (es soll ja nur das Konzept eines komplexen Attributes 1.4 Das Entity-Relationship-Modell Seite 33 demonstrieren). Der Normalfall in der Praxis sind die einfachen (nicht-komplexen) Attribute. Kontrollaufgabe 1.9: komplexe Attribute K Zeichnen Sie das komplexe Attribut aus Beispiel 1.4 in grafischer Notation. Schlüsselattribute Eine wichtige Art von Attributen sind Schlüsselattribute. Schlüsselattribute ermöglichen es, ein Entity eindeutig zu identifizieren. Da diese Eigenschaft für Entities so wichtig ist, werden in der Praxis der Einfachheit halber spezifische Attribute als Schlüsselattribute eingeführt. So entstehen Attribute wie „Matrikelnummer“ oder „Personalnummer“, obwohl man auch die Kombination anderer Attribute, etwa „Vorname“, „Nachname“ und „Geburtsdatum“ verwenden könnte, um Personen eindeutig zu identifizieren (aber das funktioniert in ganz seltenen Fällen eben auch nicht). Schlüsselattribut Wenn eine Gruppe von Attributen zusammengefasst wird, um eine Eindeutigkeit erreichen zu können, spricht man von zusammengesetzten Schlüsselattributen. Ein zusammengesetztes Schlüsselattribut sollte allerdings minimal sein, d.h. man sollte nicht mehr Attribute darin zusammenfassen als notwendig sind, um ein Entity eindeutig zu identifizieren. Wenn beispielsweise angenommen wird, dass ein zusammengesetztes Attribut „(Name, Vorname, Geburtsdatum)“ zur Identifikation einer Person ausreicht, dann ist das Attribut „(Name, Vorname, Geburtsdatum, Adresse)“ nicht minimal. zusammengesetztes Schlüsselattribut Nicht jeder Entity-Typ muss zwingend ein Schlüsselattribut enthalten. Entity-Typen, die kein Schlüsselattribut enthalten, nennt man schwache Entity-Typen. Schwache Entities werden mit Hilfe der Entities eines anderen Entity-Typs identifiziert. schwacher Entity-Typ Exkurs 1.1: Wertebereiche von Attributen Man kann Attribute und ihre Wertebereiche auch noch formaler, also noch präziser definieren. Grundsätzlich hat jedes einfache Attribut einen Wertebereich bzw. eine Menge von zulässigen Attributswerten. So hat z.B. das Attribut „Alter“ des Entity-Typs „Mitarbeiter“ einen Wertebereich von „16–70“. Die Wertebereiche werden im ER-Diagramm allerdings nicht angegeben. Formaler definiert man ein Attribut A eines Entity-Typs E mit Wertebereich V als Abbildung A : E 7→ P(V ) wobei P(V ) die Potenzmenge von V bezeichnet, also die Menge aller Teilmengen von V . Da A eine Abbildung ist, kann man für eine konkrete Entity e den Attributwert mit A(e) bezeichnen. Einwertige Attribute führen dann zu einelementigen Mengen, d.h. falls A ein einwertiges Attribut mit Wert a1 ist, ergibt die Abfrage des Attributwertes die einelementige Menge {a1 }, also: A(e) = {a1 } E Seite 34 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell Wäre A ein mehrwertiges Attribut (mit Werten a1 , a2 und a3 , ergäbe die Abfrage eine dreielementige Menge: A(e) = {a1 , a2 , a3 } Der Attributwert NULL wird als leere Menge formalisiert: A(e) = {} Für zusammengesetzte Attribute kann man das mathematische Instrument des Kreuzproduktes verwenden. Der Wertebereich eines Attributes, das aus n Attributen mit Wertebereichen V1 bis Vn zusammengesetzt ist, ist dann definiert als: V = P(V1 ) × P(V2 ) × . . . × P(Vn ) 1.4.4 Relationships (Beziehungen) Eine Relationship (Beziehung) besteht zwischen zwei oder mehr Entities (Objekten). Entsprechend besteht ein Relationship-Typ zwischen zwei oder mehr Entity-Typen. Dies wurde bereits in Abb. 1.12 dargestellt. Aus dieser Abbildung können sehr gut die Beziehungen zwischen den verschiedenen Entities abgelesen werden. Existenzabhängigkeit Auch Beziehungen haben Merkmale, die charakteristisch sind. Eine Beziehung kann zwischen zwei oder mehr Entities bestehen, aber andersherum kann eine „Relationship“ nicht ohne die beteiligten Entities existieren. So kann z.B. eine Anstellung zwischen einer Person und einer Firma nicht ohne eine Person oder eine Firma existieren. Beziehungen sind also existenzabhängig. Daher ist eine Beziehung nicht eigenständig und hat auch keine Schlüsselattribute. Die Beziehung wird über die beteiligten Entities identifiziert. Binäre und n-stellige Beziehungstypen Wir betrachten Relationship-Typen etwas formaler. Bisher haben wir hauptsächlich binäre Beziehungstypen kennengelernt, also Beziehungstypen zwischen zwei Entity-Typen, wie etwa ein Mitarbeiter und einer Abteilung. Man kann aber mit Beziehungen beliebig viele Entities miteinander verknüpfen. Die folgende Definition beschreibt also allgemein n-stellige Beziehungstypen. D Definition 1.4: Beziehungstyp (formal) Ein Beziehungstyp R zwischen n Entity-Typen E1 , . . . , En ist eine Relation über den Entities der beteiligten Entity-Typen. Formal: R ⊆ E1 × E2 × . . . × En Eine Relation über zwei Mengen ist eine Menge von Paaren aus diesen beiden 1.4 Das Entity-Relationship-Modell Seite 35 Mengen. Bei n Mengen spricht man von n-Tupeln (ein paar ist also ein 2-Tupel, siehe Modul „Mathematik 1“). Beispiel 1.5: binäre Beziehungstypen als Tupel B Sei { Sally, Joe } die Entity-Menge des Entity-Typs „Studierende“ und sei { konzMod, Programmierung 1 } die Entity-Menge des Entity-Typs „Lehrveranstaltung“. Ein Beziehungstyp „nimmt teil“ zwischen „Student“ und „Lehrveranstaltung“ beschreibt eine Zuordnung von Studierenden zu Lehrveranstaltungen. Formal wird das als Menge von Paaren der Entity-Mengen Studierende und Lehrveranstaltungen ausgedrückt, also beispielsweise: { (Sally, konzMod), (Sally, Programmierung 1), (Joe, konzMod) } Dies drückt aus, dass Sally an den Lehrveranstaltungen „konzMod“ und „Programmierung 1“ teilnimmt und Joe an der Lehrveranstaltung „konzMod“. Analog zur Unterscheidung zwischen Entity-Typen (Intension) und Entity-Mengen (Extension) unterscheiden wir sprachlich auch zwischen Beziehungstypen (Intension) und Beziehungsmengen (Extension). Die Extension verändert sich über die Zeit, die Intension aber nicht. Gegenstand der Modellierung ist daher immer die intensionale Ebene. Besonders trennscharf ist diese Unterscheidung hier aber nicht, weil wir zur Erläuterung der Bedeutung eines Beziehungstyps immer auch die extensionale Ebene brauchen. So wird in Definition 1.4 ein Beziehungstyp tatsächlich als Menge definiert, um zu verdeutlichen, wie die Ausprägungen dieses Typs aussehen. Grundsätzlich kann ein Entity an einer Beziehung teilnehmen und ein Entity-Typ kann an einem Beziehungstyp teilnehmen. Eine Instanz eines n-stelligen Beziehungstyps R, wie er in Definition 1.4 definiert ist, ist immer auch eine n-stellige Beziehung, die genau n Entities zueinander in Beziehung setzt, nämlich von jedem der beteiligten Entity-Typen genau ein Entity. Beispiel 1.6: Beziehungsmenge Im vorgenannten Beispiel der Studierenden, die an Lehrveranstaltungen teilnehmen, ist die Menge { (Sally, konzMod), (Sally, Programmierung 1), (Joe, konzMod) } die Beziehungsmenge und die einzelnen Tupel sind die Instanzen. Jede Instanz, z.B. (Sally, konzMod), schließt von jedem an der Beziehung beteiligten Entity-Typ (Studierende, Lehrveranstaltung) genau ein Entity mit ein. Was ein binärer Beziehungstyp auf extensionaler Ebene bedeutet wird grafisch in Abb. 1.18 dargestellt. Hier geht es um den Beziehungstyp „arbeitet in“ zwischen B Seite 36 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell den Entity-Typen „Mitarbeiter“ und „Abteilung“. In der Abbildung ist wieder die Intension (oben) und die Extension (unten) getrennt dargestellt. Die Mitarbeitermenge ist links unten dargestellt. Sie besteht abstrakt aus den Entities e1 , e2 , . . ., während die Menge der Abteilungen d1 , d2 , . . . rechts dargestellt ist. Die Beziehungen sind in der Mitte dargestellt. Sie verbinden jeweils einen Mitarbeiter mit einer Abteilung. Jede Beziehung (w1 bis w7 ) ist eine Instanz des Beziehungstyps. Sie setzt jeweils genau zwei Entities in Beziehung. Beziehungsinstanz w1 setzt beispielsweise das Mitarbeiter-Entity e1 mit dem Abteilungs-Entity d3 in Beziehung. Abb. 1.18: Relationships: Intension und Extension Mitarbeiter arbeitet_in Mitarbeiter arbeitet_in Abteilung w1 w2 w3 w4 w5 w6 w7 ... e1 e2 e3 e4 e5 e6 e7 ... Abteilung d1 d2 d3 ... Darstellung als Tabelle Eine Beziehungsmenge lässt sich auch als Tabelle darstellen. Für jeden beteiligten Entity-Typ ist eine Spalte vorgesehen und für jede Beziehungsinstanz eine Zeile. Hierbei ist wichtig zu beachten, dass es nicht mehrere Beziehungsinstanzen eines Beziehungstyps mit denselben Entities geben kann. Tabelle 1.1 bezieht sich auf Abb. 1.18, in der die Beziehung von Mitarbeitern zur Abteilung dargestellt wird. Es kann nicht vorkommen, dass der Eintrag (Sally, konzMod) zweimal in der Tabelle vorkommt. Tabelle 1.1: Darstellung einer Beziehungsmenge als Tabelle Student Sally Sally Joe Vorlesung konzMod Programmierung 1 Programmierung 1 Bisher haben wir immer Beispiele kennengelernt, in der die Modellierung mehr oder weniger sinnvoll war. Man kann aber auch leicht Fehler bei der Modellierung machen, also ER-Diagramme zeichnen, die ungenau oder ungenügend die Welt abbilden. Ein Beispiel ist in Abb.1.19 zu sehen. Dort ist die Beziehung von einem Arzt zu seinen Patienten dargestellt. Mit dem Attribut „Datum“ der Beziehung „untersucht“ soll vermutlich modelliert werden, dass ein Arzt einen Patienten an einem bestimmten Datum untersucht (hat). Allerdings ist die Darstellung noch nicht optimal, da ein Arzt einen Patienten mehrfach untersuchen kann. In der Abbildung wird hingegen folgendes beschrieben: Die Beziehung „untersucht“ besteht zwischen Arzt und Patient oder sie besteht nicht; wenn sie besteht, dann hat sie ein Datum. Abb. 1.19: Darstellung einer falschen Beziehung Arzt untersucht CH! FALS Datum Patient 1.4 Das Entity-Relationship-Modell Kontrollaufgabe 1.10: Modellierungsalternativen beim Beziehungstyp Seite 37 K Wie kann man die Darstellung aus Abb. 1.19 verbessern, damit das Modell auch ausdrücken kann, dass ein Arzt einen Patienten an mehreren verschiedenen Terminen untersucht hat? Exkurs 1.2: Sprachphilosophie Zitat aus einer Mail von Prof. Wedekind (zitiert nach Lenz [2012]: Flektieren und Passivbildung sind zur Formalisierung von Konzepten verboten, aus Gründen der Einfachheit und Sprachökonomie. Ockhams Rasiermesser lässt grüßen. Und man sollte sich von natürlichen Sprachen nicht gängeln lassen. Die sind nämlich ein unendlicher Ozean. [. . . ] Unter Subjekt-Arten finden Sie den Begriff „logisches Subjekt“. Die Subjektart erklärt man über eine (logisch verbotene) Passivbildung. In „Kabine wird von Kunde gebucht“ ist „Kabine“ (im Nominativ stehend) das grammatische Subjekt und „Kunde“ das grammatische Objekt. Das logische Subjekt ist und bleibt „Kunde“, weil die Logik die Passivbildung nicht mitmacht. Das logische Subjekt, oder, anders gesprochen, das Agens, ist und bleibt das Wort „Kunde“. Das haben rationale, logikbasierte Sprachen so an sich. Sie haben ihren Sitz im Handeln. Wenn ich „buchen“, wie die ER-Technik das tut, als simple Relation in einer reinen Dingwelt als „Relationship“ rekonstruiere, dann geht das logische Subjekt, das Agens, verloren. Als Satz schreibt man logisch auch in einer anderen Form, der Kopula (ε)-Form: Kunde, Kabine ε buchen Das Agens ist semantisch weg. Und das ist aus objekt-orientierter Sicht unzulässig und auch für praktische Bedürfnisse falsch [. . . ]. Der Kunde tut was und das ist zu programmieren, d.h. in die Praxis zu bringen. „Kunde bucht Kabine“ wird als Fakt bezeichnet. Fakten konstituieren ein Faktmodell [. . . ]. Das ist etwas anders als ein ER-Modell und steht als Kompression einer langseitigen Anforderungsbeschreibung (requirement definition) an zweiter Stelle einer Gesamtmethodologie. Man sollte aber erst mal ein Faktenmodell aufstellen, ohne dabei schon an Klassen und Methoden zu denken. Denn bis dahin, das heißt, hin zum Vorhof der Programmierung, ist noch ein weiter Weg. [. . . ] PS: Platon sagt: Es gibt „actio“ und „res“. ER-Diagramme kennen nur „res“. „actio“ wird unterdrückt. Das kann man machen. Die Einschränkung ist aber enorm. E Seite 38 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell Grade von Beziehungen Grad eines Beziehungstyps Der Grad eines Beziehungstyps beziffert die Menge der Entity-Typen, die die Beziehung verbindet. So hat z.B. der in Abb. 1.18 dargestellte Beziehungstyp „arbeitet in“ den Grad 2, da sie zu zwei Objekten eine Beziehung hat. Einen Beziehungstyp vom Grad 2 nennt man „binären Beziehungstyp“ und einen Beziehungstyp vom Grad 3 nennt man „ternären Beziehungstyp“. Einige Beispiele sind in Abb. 1.20 wiedergegeben. Teil a und b von Abb. 1.20 stellen beides ternäre Beziehungstypen dar. Teil b ist dabei eine Verbesserung der oben als suboptimal klassifizierten Darstellung mit einem Attribut „Datum“ der Beziehung „untersucht“. Teil c der Abbildung stellt die Extension eines ternären Beziehungstyps aus Teil a der Abbildung nochmal grafisch dar. Man sieht, dass jede Beziehungsinstanz genau drei Entities der beteiligten Entity-Typen in Beziehung setzt. Abb. 1.20: Beziehungstypen vom Grad 3 Beispiel: a) b) Projekt Lieferant Patient Lieferung Arzt untersucht Teil Untersuchung c) Lieferant Lieferung s1 s2 s3 s4 s5 s6 s7 ... r1 r2 r3 ... Teil p11 p22 ... Projekt j111 j222 j333 ... Rekursive Bezieungstypen rekursive Beziehungstypen In einem ER-Diagramm kann es auch rekursive Beziehungstypen geben. Dies ist der Fall, wenn ein Entity-Typ mit sich selbst in Beziehung steht. Ein Beispiel für einen solchen Beziehungstyp ist „ist Vorgesetzter von“, in dem der Entity-Typ Mitarbeiter doppelt vorkommt. Was damit modelliert wird ist die Tatsache, dass ein Mitarbeiter der Vorgesetzte eines anderen Mitarbeiters sein kann. Abb. 1.21: Rekursiver Beziehungstyp Mitarbeiter Chef_von Mitarbeiter Vorgesetzter Untergebener Chef_von Rollenname e1 e2 e3 e4 e5 e6 e7 ... 2 1 2 1 2 2 1 1 2 2 1 1 s1 s2 s3 s4 s5 s6 ... Um die Kardinalitäten bei rekursiven Beziehungstypen eindeutig definieren zu können, versieht man die verschiedenen Vorkommen eines Entity-Typs jeweils mit einem Rollennamen. In unserem Beispiel wird die eine ausgehende Kante des rekursiven Beziehungstyps mit dem Rollennamen „Vorgesetzter“ und die andere Kante mit dem Rollennamen „Untergebener“ beschriftet (siehe Abb. 1.21 links). Wenn nun an der Kante „Vorgesetzter“ eine 1 steht, ist klar erkennbar, dass ein 1.4 Das Entity-Relationship-Modell Seite 39 Mitarbeiter höchstens einen Vorgesetzten haben kann. Ohne die Rollennamen wäre das nicht eindeutig. Abb. 1.21 (rechts) verdeutlicht nochmal die Extension dieses Beziehungstyps. In der Grafik kann man nochmal deutlich sehen, dass es sich um einen binären Beziehungstyp handelt, denn jede Beziehungsinstanz verbindet genau zwei Entities miteinander. Der Einfachheit halber wurden die beiden Rollen-Namen dabei mit den Ziffern 1 und 2 abgekürzt. Kardinalitäten Abhängig von der Menge der zugeordneten Entities unterscheidet man Beziehungstypen unterschiedlicher Kardinalitäten. Die wichtigsten dieser Typen sind in Abb. 1.22 dargestellt. Abb. 1.22: Kardinalität von Beziehungstypen N:M N:1 1:1 Die allgemeinste Form ist die N : M-Beziehung (Abb. 1.22, links). Eine solche Beziehung modelliert, dass ein Entity des einen Entity-Typs mit beliebig vielen Entities des anderen Entity-Typs in Beziehung stehen kann und umgekehrt. Beispiel 1.7: N : M-Beziehung B Ein Beispiel für eine N : M-Beziehung ist die Beziehung „arbeitet in“ zwischen Mitarbeitern und Projekten (siehe Abb. 1.13): Ein Mitarbeiter kann in vielen Projekten arbeiten, und in einem Projekt arbeiten viele Mitarbeiter. Manchmal möchte man die Kardinalität der Beziehung einschränken. Zwei Spezialfälle sind die N : 1- und die 1 : 1-Beziehungen. In einer N : 1-Beziehung besteht dann, wenn ein Entity des ersten Typs nur mit höchstens einem Entity des zweiten Typs in Beziehung stehen darf, ein Entity des zweiten Typs aber mit vielen Entities des zweiten Typs (Abb. 1.22, mitte). Beispiel 1.8: N : 1-Beziehung Ein Beispiel für eine N : 1-Beziehung aus Abb. 1.13 ist die Beziehung „arbeitet in“ zwischen Mitarbeitern und Abteilungen: Ein Mitarbeiter arbeitet in höchstens einer Abteilung, allerdings sind einer Abteilung beliebig viele Mitarbeiter zugeordnet. Eine 1 : 1-Beziehung liegt schließlich vor, wenn ein Entity des ersten Typs mit höchstens einem Entity des zweiten Typs in Beziehung steht und umgekehrt ge- B Seite 40 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell nauso ein Entity des zweiten Typs mit höchstens einem Entity des zweiten Typs in Verbindung steht. Beispiel 1.9: 1 : 1-Beziehung B Ein Beispiel für eine 1 : 1-Beziehung ist „leitet“ zwischen Mitarbeitern und Abteilungen: Ein Mitarbeiter kann höchstens eine Abteilung leiten, und eine Abteilung wird von höchstens einem Mitarbeiter geleitet. funktionale Abhängigkeit Die Darstellung in Abb. 1.22 entspricht nicht unserer üblichen ER-Notation, weil sie verdeutlichen soll, dass durch die Spezifikation von Kardinalitäten in erster Linie funktionale Abhängigkeiten spezifiziert werden. Ein Pfeil symbolisiert eine funktionale Abhängigkeit: Der erste Typ bestimmt dann vollständig den zweiten Typ. Bei N : M-Beziehungen gibt es keine Einschränkungen, also auch keine funktionalen Abhängigkeiten. Bei einer N : 1-Beziehung ist der zweite Typ funktional abhängig vom ersten Typ. Bei 1 : 1-Beziehungen hat man die funktionale Abhängigkeit in beiden Richtungen: Wenn man ein Entity des ersten Typs hat, dann ist das Entity des zweiten Typs vollständig bestimmt; umgekehrt ist auch bei Angabe des Entities des zweiten Typs der Entity des ersten Typs genau bestimmt. Abb. 1.23: Chen-Notation für Kardinalitäten bei binären Beziehungstypen 0122 345647518489 78 0781547845 8428 Chen-Notation 547848972 51 8472 442 46545128182 In der von uns verwendeten Notation wird zur Darstellung der Kardinalitäten üblicherweise die sogenannte Chen-Notation [Balzert, 2009] verwendet. Abb. 1.23 zeigt die eben (mit Pfeilen) vorgestellten Beziehungstypen nochmal in anderer Form. Eine „1“ bei einem Entity-Typ bedeutet, dass Entities dieses Typs funktional durch die Entities des anderen Beziehungstyps bestimmt werden, etwa so wie in Abb. 1.23. Die dort dargestellten drei Beziehungstypen enthalten folgende drei funktionale Abhängigkeiten: • Mann „bestimmt“ Frau (in der Beziehung „verheiratet mit“). Ein Mann ist also mit höchstens einer Frau verheiratet. • Frau „bestimmt“ Mann (in der Beziehung „verheiratet mit“). Eine Frau ist also mit höchstens einem Mann verheiratet. • Mitarbeiter „bestimmt“ Abteilung (in der Beziehung „arbeitet in“). Ein Mitarbeiter arbeitet also in höchstens einer Abteilung. Integritätsbedingung Die Kardinalitätsangaben können natürlich auch bei Beziehungstypen höheren Grades gemacht werden. Ein Beispiel für eine ternäre Beziehung zeigt Abb. 1.24. 1.4 Das Entity-Relationship-Modell Seite 41 Abb. 1.24: Chen-Notation für Kardinalitäten bei ternären Beziehungstypen 012324567 427 21 012324869 Dieser Beziehungstyp drückt aus, dass ein Lieferant verschiedene Teile für verschiedene Projekte liefern kann. Allerdings existiert auch hier eine funktionale Abhängigkeit: Die Kardinalität 1 an der Kante zum Lieferanten bedeutet nämlich, dass das Projekt und das Bauteil den Lieferanten eindeutig bestimmen. Pro Projekt und Bauteil gibt es höchstens einen Lieferanten. Das Paar Projekt und Bauteil „bestimmt“ den Lieferanten. Funktionale Abhängigkeiten beschreiben Integritätsbedingungen, also Bedingungen auf dem Modell, die durch die Datenbank überprüft und eingehalten werden sollen. Kontrollaufgabe 1.11: Kardinalitäten und funktionale Abhängigkeiten Betrachten Sie die Entity-Typen „Mitarbeiter“, „Projekt“ und „Ort“ und den ternären Beziehungstyp „arbeitet in“, der die drei Entity-Typen miteinander in Beziehung setzt. Zeichnen Sie das ER-Diagramm für die „arbeitet in“Beziehung und geben Sie jeweils die Kardinalitäten an, so dass die folgenden Bedingungen modelliert werden: • Ein Mitarbeiter arbeitet pro Projekt immer nur an höchstens einem Ort. • Mitarbeiter können an verschiedenen Orten arbeiten. • Ein Mitarbeiter darf an einem Ort nur in höchstens einem Projekt arbeiten. • Mitarbeiter können in verschiedenen Projekten arbeiten. Welche funktionalen Abhängigkeiten haben Sie hierdurch festgelegt? Totale Teilnahme Bei der Chen-Notation ist darauf zu achten, dass jedes Entity eines Entity-Typs, das über eine doppelte Linie an den Beziehungstyp geknüpft ist, an mindestens einer Beziehungsinstanz dieses Typs teilnehmen muss. Dies nennt man totale Teilnahme. Abb. 1.25 zeigt ein Beispiel für totale Teilnahme. Die doppelten Kanten sind wie folgt zu lesen: Jeder Mitarbeiter arbeitet in mindestens einer Abteilung, und jede Abteilung hat mindestens einen Mitarbeiter. Zusammen mit der Kardinalität 1 an der Kante zur Abteilung bedeutet dies: Jeder Mitarbeiter arbeitet in mindestens und höchstens einer Abteilung; also arbeitet jeder Mitarbeiter in genau einer Abteilung. K Seite 42 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell Abb. 1.25: Chen-Notation und (min, max)-Notation a) Mitarbeiter N Arbeitet_in 1 Abteilung b) Mitarbeiter (1,1) Arbeitet_in (2,N) Abteilung (min,max)-Notation Mit der bisherigen Notation kann man noch nicht ausdrücken, dass eine Abteilung mindestens zwei Mitarbeiter haben muss. Dies kann durch die sogenannte (min,max)-Notation dargestellt werden. Die Beschriftung mit zwei Werten (x, y) an einer Kante gibt an, dass jedes Entity dieses Entity-Typs an mindestens x und höchstens an y Beziehungsinstanzen teilnimmt. Abb. 1.25 verdeutlicht dies nochmal anhand eines Beispiels. Hier wird folgendes ausgedrückt: Jeder Mitarbeiter arbeitet in genau einer Abteilung, und jede Abteilung hat mindestens zwei Mitarbeiter. Hier sehen wir, dass die (min,max)Notation in diesem Fall mächtiger ist als die Chen-Notation. Man kann mit ihr also Restriktionen ausdrücken, die in der Chen-Notation nicht darstellbar wären. Die (min,max)-Notation kann auch für mehrstellige Beziehungstypen verwendet werden. Abb. 1.26 (c) zeigt ein Beispiel. Die einzelnen Angaben an den Kanten sind wie folgt zu lesen: • Ein Lieferant liefert 0 bis beliebig viele Lieferungen. • Ein Projekt erhält 0 bis beliebig viele Lieferungen. • Ein Teil wird 0 bis beliebig oft geliefert. Dass ein Teil je Projekt immer vom gleichen Lieferanten kommen muss, kann jedoch in der (min,max)-Notation nicht dargestellt werden. Hier ist die ChenNotation mächtiger. Beide Notationen haben also ihre Daseinsberechtigung. Die Chen-Notation eignet sich besser zur Darstellung funktionaler Abhängigkeiten. Abb. 1.26: (min, max)-Notation a) Mitarbeiter N Arbeitet_in 1 Abteilung b) Mitarbeiter (1,1) Arbeitet_in c) (2,N) (0,N) Lieferant (0,N) Abteilung Projekt Lieferung (0,N) Teil 1.4 Das Entity-Relationship-Modell Seite 43 Kontrollaufgabe 1.12: (min, max)-Notation vs. Chen-Notation bei dreistelligen Beziehungstypen K Formulieren Sie die Kardinalitäten des in der unten stehenden Abbildung dargestellten dreistelligen Beziehungstyps „betreuen“ in (min,max)Notation. Begründen Sie, inwiefern die Semantik beider Darstellungen äquivalent ist! Seminarthema 1 Student N betreuen 1 Universitätsangestellter 1.4.5 Schwache Entity-Typen Bisher haben wir von Entities gefordert, dass sie eine eigenständige Existenz besitzen und identifizierbar sind. Schwache Entities sind zwar auch identifizierbar, hängen in ihrer Existenz aber von anderen (starken) Entities ab. Abb. 1.27: Schwache Entity-Typen und identifizierende Beziehungen a) Schlüssel Mitarbeiter b) 1 hat Arzt untersucht Patient N Angehörige Untersuchung Partieller Schlüssel Datum Betrachten wir ein Beispiel für einen schwachen Entity-Typ in Abb. 1.27 (a). Ein Mitarbeiter kann beliebig viele Angehörige haben, aber ein Angehöriger ist höchstens einem Mitarbeiter zugeordnet. Der Entity-Typ „Angehörige“ ist ein schwacher Entity-Typ und wird deshalb durch einen Doppelrahmen gekennzeichnet. Intuitiv bedeutet dies, dass ein Angehöriger ohne den zugeordneten Mitarbeiter uninteressant ist und nicht gespeichert werden muss. Schwache Entities besitzen keine Schlüsselattribute. Um sie zu identifizieren, verwenden wir so genannte identifizierende Beziehungstypen. Wir verbinden also einen schwachen Entity-Typ mit einem starken Entity-Typ. Dies wird durch eine Raute mit doppelter Umrandung dargestellt (siehe Abb. 1.27, a). Schwache EntityTypen müssen immer mit Kardinalität 1 an den starken Entity-Typ verbunden werden, denn der starke Entity-Typ wird benutzt, um den schwachen Entity-Typ zu identifizieren. Da im Beispiel jeder Angehörige genau genau einem Mitarbei- identifizierender Beziehungstyp Seite 44 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell ter zugeordnet ist, kann man den Schlüssel des Mitarbeiters verwenden, um die Angehörigen zu identifizieren. Merksatz 1.4: Schwache Entity-Typen M Ein schwacher Entity-Typ hat immer eine totale Teilnahme an einem identifizierenden Beziehungstyp. partielles Schlüsselattribut Nun kann ein Mitarbeiter im vorgenannten Beispiel mehrere Angehörige haben, die man auch unterscheiden (identifizieren) können muss. Hierfür verwendet man ein partielles Schlüsselattribut im schwachen Entity-Typen. Schwache Entity-Typen können auch durch mehrere starke Entity-Typen identifiziert werden. Ein Beispiel ist in Abb. 1.27 (b) zu sehen. Dort ist die „Untersuchung“ als schwacher Entity-Typ modelliert. Eine Untersuchung kann es nur geben, wenn es den Arzt und den Patienten gibt. Die Kombination beider bestimmt den EntityTyp „Untersuchung“. Das Attribut „Datum“ ist ein partieller Schlüssel, über den mehrere Untersuchungen eines Arztes an dem gleichen Patienten unterschieden werden können. Zur eindeutigen Identifikation einer Untersuchung braucht man also einen Arzt, einen Patienten und ein Datum. K Kontrollaufgabe 1.13: Zusammenfassung ER-Modell Machen Sie sich nochmals selbständig mit den Modellierungselementen des ER-Modells vertraut: Mit Hilfe welcher Konstrukte können Objekte der Miniwelt und deren Beziehungen abgebildet werden? Gehen Sie hierbei auch auf die Begriffe „Intension“, „Extension“, „Typ“ und „Instanz“ ein! 1.5 Fragestellungen beim Entwurf Wir haben nun alle wesentlichen Modellierungsinstrumente kennen gelernt und auch gesehen, dass man ein und denselben Sachverhalt auf ganz unterschiedliche Arten modellieren kann. Die Frage ist also, wie man unter den Alternativen möglichst gute Modelle auswählt. 1.5.1 Wozu braucht man schwache Entity-Typen? Eine Frage lautet: Wann braucht man überhaupt schwache Entity-Typen? Man könnte schließlich auch einen schwachen Entity-Typ als komplexes Attribut darstellen. Dies geht allerdings nicht, wenn mehrere identifizierende Entity-Typen im Spiel sind und wenn der schwache Entity-Typ mit weiteren Entity-Typen in Beziehung steht. Dies ist in Abb. 1.28 dargestellt. Abb. 1.28: Schwacher Entity-Typ steht mit weiteren EntityTypen in Beziehung Gebäude-Nr Gebäude Raum-Nr 1 liegt_in N Raum 1 Veranstaltung N läuft_in 1.5 Fragestellungen beim Entwurf Seite 45 In dem Beispiel sind die Entity-Typen „Gebäude“, „Raum“ und „Veranstaltung“ mit den Beziehungen „liegt in“ und „läuft in“ verknüpft. Die Räume sind als schwache Entities modelliert, d.h. zur Identifizierung eines Raumes benötigen wir die Gebäudenummer (Schlüssel-Attribut des zugeordneten starken Entity-Typen) und die Raumnummer (partielles Schlüssel-Attribut des schwachen Entity-Typen). Zusätzlich werden Veranstaltungen verwaltet, die Räumen zugeordnet wären. Hätte man den Raum als komplexes Attribut modelliert, wäre diese Zuordnung nicht möglich gewesen, denn schließlich kann man mit dem Beziehungstyp „läuft in“ nur Entity-Typen verknüpfen. 1.5.2 Wozu braucht man ternäre Beziehungstypen? Eine andere Frage lautet: Wann verwendet man Beziehungstypen mit Grad größer 2, also beispielsweise ternäre Beziehungstypen? Um diese Frage zu erörtern, betrachten wir die ER-Diagramme in Abb. 1.29. Dort ist die Miniwelt einer Fossiliensammlung in verschiedenen Arten modelliert worden: Die Entity-Typen „Fossil“, „Spezies“ und „Entdecker“ sollen sinnvoll durch Beziehungen verknüpft werden. Abb. 1.29: Entwurfsalternativen a) Fossil Fund Spezies Fossil Spezies Entdecker Entdecker b) Spezies Gehört_zu Fossil von Entdecker Eine (erste) Möglichkeit ist in Abb. 1.29 (a) dargestellt. Dort ist ein ternärer Beziehungstyp „Fund“ eingeführt worden, der ein Fossil mit einer Spezies und einem Entdecker verbindet. Wenn wir das so modellieren, haben wir jedoch das Problem, dass man jede Instanz mit einem Entity der drei Entity-Typen verbinden muss. Wenn beispielsweise ein Entdecker ein Fossil findet, dessen Spezies noch unbekannt ist, kann man den Fund noch nicht richtig eintragen. Beachten Sie bitte, dass es hier keine NULL-Werte geben kann, denn NULL-Werte gibt es im ER-Modell nur für Attribute. Eine ternäre Beziehung setzt also immer exakt genau drei Entities zueinander in Beziehung. Welche Alternativen gibt es? Man könnte beispielsweise zwei binäre Beziehungstypen verwenden. Dieser Ansatz ist in Abb. 1.29 (b) dargestellt. Dort sind die drei Entity-Typen mit zwei binären Beziehungstypen „gehört zu“ und „von“ verknüpft. Bei der binären Darstellung kann die Fossil/Entdecker-Beziehung eingetragen und die Fossil/Spezies-Beziehung später nachgetragen werden. Seite 46 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell Es gibt auch noch den Fall der Darstellung, in dem gar kein Beziehungstyp nötig ist. Für den Fall, dass z.B „Spezies“ und „Entdecker“ nicht weiter detailliert werden sollen, ist kein Beziehungstyp in der Darstellung nötig (siehe Abb. 1.30). Sobald man aber die Spezies oder den Entdecker als eigenständige Objekte darstellen oder mit anderen Entity-Typen in Beziehung setzen will, ist die Darstellung ohne Beziehungstypen nicht sinnvoll, denn hier existiert eine Spezies nur, wenn es ein Fossil gibt. Abb. 1.30: Modelllierung ohne Beziehungstyp Name Spezies Fossil Entdecker Braucht man ternäre Beziehungstypen überhaupt? Nachdem wir oben gesehen haben, dass ternäre Beziehungstypen in manchen Fällen ungünstig sind, kann man die Frage stellen, ob man nicht jeden ternären Beziehungstyp in eine Menge von binären Beziehungstypen umwandeln kann. Wenn dies so wäre, dann bräuchte man im Prinzip gar keine Beziehungstypen mit Grad größer als 2 anzubieten. Manche Modellierungswerkzeuge erlauben beispielsweise nur binäre Beziehungstypen. Ist man in diesen Werkzeugen in irgend einer Weise eingeschränkt in dem, was man modellieren kann? Betrachten wir dazu den ternären Beziehungstyp in Abb. 1.31 (links). Dort sind die Entity-Typen „Projekt“, „Teil“ und „Lieferant“ durch den Beziehungstyp „Lieferung“ verknüpft. Auf der rechten Seite ist der Versuch abgebildet, den ternären Beziehungstyp durch drei binäre Beziehungstypen nachzubilden. Sind beide Darstellungen äquivalent? Abb. 1.31: Modellierungstypen sind nicht äquivalent Lieferant Projekt beliefert Projekt Lieferung Lieferant braucht Teil hat Teil Wie wir bereits oben gesehen haben, können wir in dem rechten Modell mit ausschließlich binären Beziehungstypen darstellen, dass ein Teil von einem Lieferanten kommt auch wenn es gar nicht von einem Projekt bezogen wird. Das geht mit dem ternären Beziehungstyp nicht. Die Frage ist nun: Steckt im linken Modell mit dem ternären Beziehungstyp auch eine Information, die im rechten Modell nicht abgebildet werden kann? Tatsächlich ist das der Fall: Nehmen wir an, es gibt zwei Lieferanten L1 und L2 die beide die gleichen Teile A und B liefern. Beide Lieferanten beliefern die zwei gleichen Projekte P und Q. Im rechten Modell ist nicht darstellbar, welcher Lieferant welches Teil an ein bestimmtes Projekt liefert. Will man das also darstellen, braucht man den ternären Beziehungstyp. Will man nun gleichzeitig auch darstellen können, dass ein Teil prinzipiell von einem Lieferanten lieferbar ist, ohne ein Projekt angeben zu müssen, dann braucht man einen zusätzlichen binären Beziehungstyp. Ein weiterer Unterschied wird deutlich, wenn Kardinalitäten ins Spiel kommen. 1.5 Fragestellungen beim Entwurf Seite 47 Betrachten Sie Abb. 1.32. Dort sind im gleichen Szenario wie zuvor Kardinalitäten in der Chen-Notation eingetragen. Hier wird der mittlerweile bekannte Sachverhalt modelliert, dass ein bestimmtes Teil in einem Projekt immer vom gleichen Lieferanten kommt. Es besteht also eine funktionale Abhängigkeit zwischen Projekt, Teil und Lieferanten, die von unserem Datenbanksystem überwacht werden soll. Abb. 1.32: Ternärer Beziehungstyp mit funktionaler Abhängigkeit Projekt M Lieferant 1 Lieferung N Teil Kann man diese Bedeutung noch nachmodellieren mit binären Beziehungstypen und ohne zusätzliche Entity-Typen? Die Antwort lautet nein, denn in der Modellierung aus Abb. 1.31 (rechts) kann man diese funktionale Abhängigkeit nicht nachbilden, egal wo man mittels der Chen-Notation die Einsen setzt. Helfen schwache Entity-Typen weiter? Bisher haben wir in unseren Bemühungen, alle Beziehungen auf binäre Beziehungstypen zurückzuführen, keine zusätzlichen Entity-Typen verwendet. Man könnte auch überlegen, einen schwachen Entity-Typ zu verwenden, um ternäre Beziehungstypen darzustellen. Abb. 1.33 zeigt das Beispiel von eben, bei dem der ternäre Beziehungstyp „Lieferung“ durch einen schwachen Entity-Typ gleichen Namens ersetzt wurde, der über drei identifizierende Beziehungstypen mit den anderen Entity-Typen verbunden ist. Beachten Sie, dass alle Beziehungstypen in diesem Beispiel binär sind. Projekt Lieferant Lieferung Teil Lieferant Lieferung Projekt Teil Abb. 1.33 modelliert folgenden Sachverhalt: Jede Lieferung ist mit einem Lieferanten, einem Projekt und einem Teil verbunden (totale Teilnahme). In diesem Beispiel Abb. 1.33: Nachbildung ternärer durch binäre Beziehungstypen Seite 48 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell hat „Lieferung“ keinen partiellen Schlüssel. Eine Lieferung wird also vollständig durch einen Lieferanten, ein Projekt und ein Teil identifiziert. Die Frage ist nun, wie man die Kardinalitäten an die Kanten schreiben muss, um die Situation aus Abb. 1.32 auszudrücken? Ein Versuch, diese Aufgabe zu lösen, ist in Abb. 1.34 dargestellt. Beachten Sie, dass der Beziehungstyp zwischen Lieferung und Lieferant nicht mehr identifizierend ist. Die Lieferung wird jetzt nur noch durch die Beziehungstypen zu Projekt und Teil bestimmt, nicht mehr durch den Lieferanten. Zusätzlich ist jede Lieferung genau einem Lieferanten zugeordnet. Also haben wir die Aufgabe in diesem Fall tatsächlich gelöst! Abb. 1.34: Nachbildung ternärer duch binäre Beziehungstypen: Erster Versuch Geht das aber in jedem Fall? Betrachten Sie dazu Abb. 1.35. Dort ist ein leicht verändertes Szenario abgebildet, das nicht mehr dargestellt werden kann. Dort wurde der ternäre Beziehungstyp durch die Angabe einer zusätzlichen Kardinalität modifiziert. Nun bestimmt nicht mehr nur das Projekt und die Lieferung eindeutig den Lieferanten, sondern der Lieferant in Verbindung mit einem Teil bestimmt das Projekt. Ob dies eine sinnvolle Bedingung ist, sei dahingestellt, aber man kann sie beschreiben. Abb. 1.35: Nachbildung ternärer duch binäre Beziehungstypen: Zweiter Versuch Möchte man diese Situation mit binären Beziehungstypen darstellen und versucht man denselben Ansatz wie oben (also mit schwachen Entity-Typen), dann läuft man in ein Dilemma. Betrachten Sie dazu nochmal Abb. 1.35: Die Darstellung 1.6 Zusammenfassung Seite 49 unten entspricht leider nicht der Darstellung oben, weil der Beziehungstyp zwischen Lieferung und Projekt noch identifizierend ist. Die Lieferung (und somit der Lieferant) wird wie oben beschrieben durch das Projekt und das Teil eindeutig bestimmt. Hingegen bestimmt die Kombination aus Lieferant und Teil nicht eindeutig das Projekt. Dies ist aber im Diagramm oben gefordert. Die funktionale Abhängigkeit hinsichtlich des Projekts geht also verloren. Abb. 1.36: Nachbildung ternärer duch binäre Beziehungstypen: Dritter Versuch Alternativ könnte man natürlich auf die Idee kommen, das Diagramm wie in Abb. 1.36 zu zeichnen. Hier ist der Beziehungstyp zwischen Lieferant und Lieferung wieder identifizierend, hingegen ist der Beziehungstyp zwischen Lieferung und Projekt nicht identifizierend. Man kann nun zwar die funktionale Abhängigkeit von Lieferant und Teil zu Projekt beschreiben, nicht aber die im oberen Diagramm geforderte Abhängigkeit von Projekt, Teil zu Lieferant. Aus diesem Dilemma gibt es kein Entrinnen, weil man sich bei Angabe eines Beziehungstyps entscheiden muss, ob er identifizierend ist oder nicht. Es gibt also Situationen, in denen ternäre Beziehungstypen mächtiger sind als eine Menge binärer Beziehungstypen. 1.6 Zusammenfassung Im vorausgegangenen Abschnitt haben wir das Entity-Relationship-Modell kennengelernt (ER-Modell). Das ER-Modell ist das am weitesten verbreitete semantische Datenmodell. Es wird dazu benötigt, um die „Miniwelt“, die wir in unserer Datenbank beschreiben wollen, zu beschreiben, ohne gleich die Implementierung der Datenbank vorweg zu nehmen. Zielvorgabe des Modells war es, eine möglichst einfache Sprache zu haben, die auch ein Anwender versteht, und es gleichzeitig erlaubt, die wichtigsten Dinge im Modell möglichst präzise und unmissverständlich zu beschreiben. Als wesentliche Modellierungsprimitive hatten wir Entity-Typen und RelationshipTypen (Beziehungstypen) kennengelernt. Ein Entity ist irgendetwas, was Sie in der Datenbank ablegen wollen, und ein Entity-Typ ist eine Beschreibung gleichartiger Entities. Entity-Typen besitzen beschreibende Merkmale, genannt Attribute. Eine besondere Art von Attributen sind die sogenannten Schlüsselattribute, die es erlauben, ein Entity eines Entity-Typs eindeutig zu identifizieren. Entities werden über Beziehungstypen verknüpft, die auch für sich noch Attribute haben können. Beziehungstypen kann man noch genauer präzisieren, in dem man an die Kanten Kardinalitäten schreibt. Hierfür haben wir verschiedene Notationen Seite 50 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell und ihre jeweiligen Vor- und Nachteile kennengelernt. Mittels der Chen-Notation beispielsweise kann man funktionale Abhängigkeiten festlegen (durch Angabe einer 1 an der Zielkante). Andere Arten von Kanten in der Chen-Notation bezeichnen die totale Teilnahme eines Entity-Typs, d.h. jedes Entity dieses Typs nimmt an mindestens einer Beziehung teil. In der (min,max)-Notation hingegen kann man festlegen, an wie vielen Beziehungen dieses Typs ein Entity mindestens teilnimmt und an wie vielen Beziehungen es höchstens teilnimmt. Ein wichtiger Unterschied bei der Modellierung ist der zwischen Intension und Extension. Intension ist die abstrakte Beschreibung des Modells, die sich selten ändert. Die Extension ist die Menge der konkreten Ausprägungen, die sich über die Zeit ändern kann. Wenn zwei Entity-Typen mit einer Beziehung verknüpft werden, spricht man von einem binären Beziehungstyp. Man kann aber auch beliebig viele Entity-Typen verknüpfen. Die Anzahl der verknüpften Entity-Typen nennt man den Grad des Beziehungstyps. Ternäre Beziehungstypen haben den Grad 3. Auch bei Beziehungstypen mit Grad größer als 2 kann man mittels der Chen-Notation funktionale Abhängigkeiten modellieren. Der Vergleich von Chen-Notation mit der (min,max)-Notation hat ergeben, dass beide Notationen nicht ineinander überführt werden können, denn einerseits gibt es Szenarien, die man mit der Chen-Notation beschreiben kann, nicht aber mit der (min,max)-Notation. Andererseits gibt es aber auch Sachverhalte, die man in der (min,max)-Notation beschreiben kann, nicht aber mit der Chen-Notation. Schließlich haben wir noch schwache Entity-Typen kennengelernt, die von der Existenz anderer Entity-Typen abhängig sind und nur über deren Schlüssel-Attribute identifiziert werden können. Abschließend haben wir noch gesehen, dass ternäre Beziehungstypen nur zum Teil durch binäre Beziehungstypen ausgedrückt werden können. 1.7 Übungen Seite 51 1.7 Übungen Fast alle Aufgaben des Moduls „Konzeptionelle Modellierung“ können mit Papier und Bleistift gelöst werden. Darüber hinaus können Sie gerne die Modelle elektronisch erstellen. Zur ER-Modellierung gibt es viele kommerzielle Modellierungswerkzeuge, aber auch kostenlose oder Open-Source-Werkzeuge. „Dia“ ist ein Programm zum Zeichnen von Diagrammen, vergleichbar mit MS Visio und entstammt der Linux-Gemeinde. Mittlerweile gibt es Dia ebenfalls für Windows bequem zum Installieren unter http://dia-installer.de/. Es besteht jedoch keine Pflicht zur Nutzung von Dia oder anderer Werkzeuge. Übung 1.1: 3-Schema-Architektur Ü Die 3-Schema-Architektur (ANSI/SPARC, 1975) trennt 3 Arten von Metadaten strikt: Internes, konzeptionelles und externes Schema. Beschreiben Sie die drei Schemata in Stichworten. Übung 1.2: konzeptioneller vs. logischer Entwurf Ü Charakterisieren Sie den Begriff „konzeptioneller Entwurf“ und „logischer Entwurf“ der Datenmodellierung, indem Sie Ausgangsbasis und Ergebnis in Stichwörtern notieren. Übung 1.3: erste Entwurfsaufgabe Ü Zur besseren Unterstützung diverser Dienste soll in Ihrem beruflichen Kontext zentral ein DBS eingesetzt werden. Falls Sie keinen beruflichen Kontext haben, wählen Sie als Kontext die Friedrich-Alexander-Universität (FAU) Erlangen-Nürnberg. 1. Überlegen Sie sich exemplarisch, welche Daten verwaltet werden müssen, welche unterschiedlichen Benutzergruppen es gibt, wie häufig diese auf die Daten zugreifen und welche Anwendungsprogramme benötigt werden. (Für den Kontext der FAU orientieren Sie sich beispielsweise an den Diensten EST, UnivIS und MeinCampus, falls Sie diese kennen.) 2. Würden sich die von Ihnen identifizierten Funktionalitäten auch ohne ein DBS umsetzen lassen? Welche Vor- und Nachteile ergäben sich aus dem Verzicht auf die Nutzung eines DBS? Werden Sie nicht zu schnell zu technisch, denken Sie noch nicht in formalen Notationen sondern eher umgangssprachlich. Übung 1.4: Krankenhaus-Szenario, Teil 1 In dieser Übung sollen Sie ein konkretes Szenario mittels eines ERDiagramms in Chen-Notation modellieren. Vorbemerkungen: In dieser Aufgabenstellung trennen wir Entities noch bewusst von Relationships, um Ihnen den Einstieg in die Modellierung zu Ü Seite 52 Studienbrief 1 Grundlagen der Modellierung und das ER-Modell erleichtern. Normalerweise vermischen sich diese in der Beschreibung. Da die Beschreibung zu Entities oft Zustandsverben enthält, um bloße Attribute zu beschreiben ist es bei Anforderungsspezifikationen aus der realen Welt nicht unbedingt so einfach, Entitäten, Beziehungen und Attribute auseinanderzuhalten. In der Formulierung der Beziehungen sind die Kardinalitätseinschränkungen genau zu beachten. Im Allgemeinen gilt: alles was nicht explizit eingeschränkt ist, muss im Modell auch uneingeschränkt bleiben (bitte also keine Einschränkungen einfach in eine Beschreibung hineininterpretieren). Alles was explizit eingeschränkt ist, darf im Modell nicht einfach uneingeschränkt bleiben (alle formulierten Einschränkungen sind also zu erkennen). Bitte verwenden Sie ab jetzt die Chen-Notation. Modellieren Sie die folgenden Entities und Relationships. 1. Es gibt Krankenhäuser. Diese sind an einer Adresse ansässig. Und sie besitzen einen Namen. Ein Krankenhaus ist offiziell unter einer eindeutigen ID registriert. 2. Es gibt Ärzte. Sie besitzen eine eindeutige Lizenznummer. In der Regel haben Ärzte ein Spezialisierungsfach. Darüber hinaus können sie einen wissenschaftlichen Titel besitzen. 3. Das Krankenhaus ist in Abteilungen organisiert. Eine Abteilung hat einen Namen und eine Spezialisierung (z.B. „HNO“, „Labor“ etc.). Vorläufig soll eine Abteilung durch einen künstlichen Schlüssel (ID) eindeutig identifiziert sein. 4. Es gibt Angestellte, die über ihre Sozialversicherungsnummer (SVN) eindeutig identifiziert sind. Angestellte haben einen Vor- und einen Nachnamen. Außerdem sind sie irgendwann geboren und haben ein Geschlecht. Darüber hinaus ist ihnen ein Gehalt sehr wichtig. 5. Kein Krankenhaus ohne Patienten: Sie werden durch die Personalausweis-ID identifiziert und es werden weitere Daten wie Vorname, Nachname und Adresse gespeichert. 1.7 Übungen Seite 53 Übung 1.5: Krankenhaus-Szenario, Teil 2 Ü Es folgt eine weitere narrative Beschreibung von Relationships des Krankenhaus-Szenarios. Modellieren Sie die folgenden Entities und Relationships weiter in Chen-Notation. 1. Jeder Arzt ist in genau einem Krankenhaus tätig. Ein Krankenhaus kann mehrere Ärzte beschäftigen. 2. Ein Arzt kann für mehrere Patienten verantwortlich sein. Wegen steigendem Kostendruck im Gesundheitswesen soll es für jeden Patienten höchstens einen verantwortlichen Arzt geben. 3. Ein Krankenhaus muss mindestens eine Abteilung haben. Jede Abteilung gehört zu genau einem Krankenhaus. 4. Eine Abteilung beschäftigt beliebig viele Angestellte. Ein Angestellter kann in einer oder mehreren Abteilungen arbeiten. 5. Ärzte sind Angestellte: Ein Angestellter kann ein Arzt sein; ein Arzt ist stets ein Angestellter. Übung 1.6: Erweiterung des Krankenhaus-Szenarios Lernziel ist hier, Entity-Typen und Relationship-Typen zu modellieren, deren Beschreibungen sich vermischen und die teilweise unvollständig sind. Modellieren Sie die folgenden Entities und Relationships wieder in ChenNotation. 1. Gebühren • Wir würden gerne Patienten Leistungen in Rechnung stellen. Zu jeder Leistung speichern wir die Beschreibung der medizinischen Leistung und den jeweiligen Preis. Identifiziert werden sie durch DRG-Codes wie z.B. „B70A“ (einem EU Standard, der auf ICD-10 und OPS basiert). Rechnungen haben eine eindeutige Rechnungsnummer. Eine Rechnung geht an genau einen Patienten. Jede Rechnung umfasst mindestens eine Leistung. 2. Angestellte leiten andere Angestellte • Einem Chef können andere Angestellte untergeben sein. • Jeder Angestellte ist Untergebener von genau einem Angestellten. (Zusatzfrage: Woran erkennt man den obersten Boss?) (Gibt es nur einen obersten Boss oder kann man damit Unternehmen mit einer Art „Vorstand“ modellieren?) Ü Seite 54 Ü Studienbrief 1 Grundlagen der Modellierung und das ER-Modell Übung 1.7: weitere Fragen zum Krankenhaus-Szenario 1. Welcher Beziehungstyp ergibt sich, wenn wir die Aussage „Wegen steigendem Kostendruck im Gesundheitswesen soll es für jeden Patienten höchstens einen verantwortlichen Arzt geben“ zu „Ein Patient hat mindestens einen verantwortlichen Arzt“ umformulieren? 2. Können wir „Abteilung“ als komplexes (zusammengesetzt/mehrwertig) Attribut modellieren? Ist das grundsätzlich möglich und wenn ja, in welchem Fall? Wie? 3. Könnten wir den künstlichen Schlüssel von „Abteilung“ vermeiden? 4. Wie kann „Abteilung“ als schwache Entität modelliert werden? 5. Gibt es Vorteile oder Nachteile „Abteilung“ als starke Entität zu modellieren? Ü Übung 1.8: Szenario Universität Zeichnen Sie entsprechend der nachfolgenden Angaben ein ER-Diagramm. Verwenden Sie für die Kardinalitäten der Beziehungstypen die ChenNotation. • An der Universität werden verschiedene Kurse angeboten. Jeder Kurs wird über ein eindeutiges Kürzel identifiziert. Darüber hinaus besitzen alle Kurse einen Namen und eine Beschreibung. • Universitätsangestellte können zudem für ihre Kurse Voraussetzungen zur Teilnahme angeben. • Ein Semester ist definiert durch einen Namen, der zusammengesetzt ist aus dem Jahr und einem Semesterkürzel (WS/SS für Wintersemester und Sommersemester). • Universitätsangestellte werden über eine Personalnummer identifiziert und besitzen darüber hinaus einen Namen und weitere Kontaktinformationen. • Eine Studienrichtung ist eindeutig identifiziert durch den Namen des Abschlusses und die Spezialisierung. Diese besteht aus Schwerpunktfächern und Hauptfächern. Die Studienrichtung hat eine Fachprüfungsordnung und eine Studienordnung. • Studenten können beliebig viele Kurse besuchen. Dabei gibt es keine Beschränkung der Teilnehmerzahl pro Kurs. • Alle Studenten besitzen eine Matrikelnummer sowie einen Namen. Jeder Student studiert mindestens eine Studienrichtung. Für jede Studienrichtung eines Studenten wird die aktuelle Zahl der Fachsemester vermerkt. • Studenten können sich über Kurse prüfen lassen. Ein Student kann von einem Universitätsangestellen in beliebig vielen Kursen geprüft werden. Eine Prüfung über einen bestimmten Kurs kann jedoch von einem Studenten nur bei genau einem Universitätsangestellten abgelegt werden. Ein Universitätsangesteller kann in einem Kurs mehrere Studenten prüfen. • Ein Kurs, der von einem Universitätsangestellen in einem Semester un- 1.7 Übungen terrichtet wird, kann für beliebig viele Studienrichtungen angeboten werden. Findet ein Kurs in einem Semester für eine Studienrichtung statt, kann dieser von mehreren Universitätsangestellen gehalten werden. Ein Kurs, der von einem Universitätsangestellen für eine Studienrichtung angeboten wird, kann in mehreren Semestern stattfinden. In einem Semester kann ein Angestellter für eine Studienrichtung mehrere Kurse halten. In jedem Semester wird unterrichtet. Für jede Studienrichtung gibt es Unterrichtsangebote. Wenn ein Kurs stattfindet, werden zusätzliche Informationen benötigt: Der Veranstaltungsort, die Veranstaltungstermine (jeweils mit Wochentag, Beginnzeit und Endzeit), sowie die Anzahl der Semesterwochenstunden. Seite 55 Liste der Lösungen zu den Kontrollaufgaben Liste der Lösungen zu den Kontrollaufgaben Lösung zu Kontrollaufgabe 1.1 auf Seite 12 Im ASCII-Standard wird der Großbuchstabe „A“ durch die Bitfolge „01000001“ kodiert. Lösung zu Kontrollaufgabe 1.2 auf Seite 17 Zur Unterscheidung der Begriffe DB, DBMS und DBS sagt in der Regel ein Bild mehr als tausend Worte (siehe Abb. 1.5 auf Seite 16). Wesentliche Punkte sind: • Datenbank: Sammlung logisch zusammenhängender Daten. • Datenbank-Managementsystem: Software zur Verwaltung (Definition, Manipulation) von Daten einer Datenbank. • Datenbanksystem: DB + DBMS • Datenbankanwendung: Eine Anwendung, die mit einem DBS kommuniziert. Lösung zu Kontrollaufgabe 1.3 auf Seite 19 Die Vorteile einer mehrschichtigen Architektur beim Entwurf von Datenbanken liegt in der Entkopplung funktionaler Einheiten: Wir wollen z. B. unsere Speicherungsstrukturen optimieren, ohne im SQL-Code etwas zu verändern. Auch die Anwendung soll es nicht groß tangieren, wenn wir etwa auf ein anderes DBMS umsteigen. Lösung zu Kontrollaufgabe 1.4 auf Seite 20 Die zwei Haupteigenschaften eines konzeptionellen Schemas sind Anwendungsneutralität und Datenunabhängigkeit. Anwendungsneutralität bezieht sich auf die Trennung vom konzeptionellen Schema zum externen Schema (zur Anwendung hin, also nach „oben“ in Abb. 1.7). Datenunabhängigkeit bezieht sich auf die Trennung vom konzeptionellen Schema zum internen Schema (zu konkreten Speicherstrukturen hin, also nach „unten“ in Abb. 1.7). Lösung zu Kontrollaufgabe 1.5 auf Seite 24 Betrachten Sie nochmals Abb. 1.12 auf Seite 23. Stellen Sie sich vor, das Attribut „Position“ wäre nicht ein Attribut des Relationship-Typs „arbeitet in“, sondern des Entity-Typs „Mitarbeiter“. Dieser Fall modelliert die „Position“ als Konzept unabhängig vom Projekt. Ein Mitarbeiter hätte dann möglicherweise eine Position, auch wenn er in keinem Projekt arbeitet. Dies wäre durchaus sinnvoll, wenn „Position“ wie ein „Rang“ verstanden würde (wie „Partner“ vs. „Berater“ bei Unternehmensberatungen oder in der Art eines militärischen Ranges). Was ist, wenn ein Mitarbeiter in mehreren Projekten arbeitet? Macht es Sinn, das Attribut „Position“ an den Entity-Typ „Projekt“ zu heften? Dies macht keinen Sinn, denn eine Position ist immer nur in einer Verbindung von Projekt und einem Mitarbeiter sinnvoll. Wenn ein Mitarbeiter in mehreren Projekten Seite 57 Seite 58 Liste der Lösungen zu den Kontrollaufgaben arbeitet, gibt es zudem mehrere Instanzen der Relationship „arbeitet in“, die jede einen eigenen Attributwert „Position“ besitzt. Lösung zu Kontrollaufgabe 1.6 auf Seite 25 Sind alle Entity- und Relationship-Typen in Abb. 1.13 auf Seite 26 vorhanden? Ja. Lösung zu Kontrollaufgabe 1.7 auf Seite 29 Betrachten Sie wieder das Diagramm im Abb. 1.13 auf Seite 26. Die Antworten lauten: 1. Jeder Mitarbeiter arbeitet in genau einer Abteilung: Ja, da totale Teilnahme und Kardinalität 1. 2. Es kann Mitarbeiter geben, die in keiner Abteilung arbeiten: Nein, da totale Teilnahme der Mitarbeiter. 3. Es kann Abteilungen geben, in denen keine Mitarbeiter arbeiten: Nein, da totale Teilnahme auf beiden Seiten. 4. Jeder Mitarbeiter leitet eine Abteilung: Nein, da keine totale Teilnahme auf Seiten der Mitarbeiter. 5. Jeder Mitarbeiter leitet mindestens eine Abteilung: Nein, da keine totale Teilnahme auf Seiten der Mitarbeiter. 6. Es kann Abteilungen geben, die durch keinen Mitarbeiter geleitet werden: Nein, da totale Teilnahme der Abteilung. Lösung zu Kontrollaufgabe 1.8 auf Seite 29 Totale Teilnahme von E1 an R würde man in der (min,max)-Notation durch eine Mindestangabe von 1 auf der Kante von E1 zu R ausdrücken. Lösung zu Kontrollaufgabe 1.9 auf Seite 33 Das komplexe Attribut aus Beispiel 1.4 auf Seite 32 könnte in grafischer Notation etwa so aussehen: Vorwahl Nummer Name Hausnummer Strasse PLZ Telefon Ort Adresse Kontaktinfo Lösung zu Kontrollaufgabe 1.10 auf Seite 37 Wie kann man die Darstellung aus Abb. 1.19 auf Seite 36 verbessern, damit das Modell auch ausdrücken kann, dass ein Arzt einen Patienten an mehreren verschiedenen Terminen untersucht hat? Liste der Lösungen zu den Kontrollaufgaben Seite 59 Man könnte das Attribut „Datum“ als mehrwertiges Attribut definieren. So hat die Beziehung zwischen Arzt und Patient einfach mehrere Termine angeheftet. Besser wäre hingegen, die Untersuchung als eigene Entity zu definieren, und so über eine dreistellige Beziehung Arzt, Patient und Untersuchung in Verbindung zu bringen. Datum wäre dann ein Attribut von „Untersuchung“. Lösung zu Kontrollaufgabe 1.11 auf Seite 41 Die folgenden beiden Bedingungen schließen sich aus: • Ein Mitarbeiter arbeitet pro Projekt immer nur an höchstens einem Ort. • Mitarbeiter können an verschiedenen Orten arbeiten. Bei der ersten Bedingung hat die Kardinalität der Kante zum Entity-Typ „Ort“ den Wert 1, bei der zweiten Bedingung N . Im ersten Fall wird eine funktionale Abhängigkeit definiert: Mitarbeiter und Projekt zusammen bestimmen eindeutig den Ort. Dieser Sachverhalt gilt analog für die letzten beiden Bedingungen. Lösung zu Kontrollaufgabe 1.12 auf Seite 43 Aus der Angabe im Bild ergeben sich folgende funktionale Abhängigkeiten: 1. Universitätsangesteller × Student 7→ Seminarthema 2. Seminarthema × Student 7→ Universitätsangestellter Studenten dürfen bei jedem Universitätsangestellten also nur ein Seminarthema bearbeiten und dasselbe Seminarthema nicht bei unterschiedlichen Universitätsangestellten. Es ist jedoch weiterhin möglich, ein Seminarthema an verschiedene Studenten zu vergeben. Jeder Student, jeder Universitätsangestellte und jedes Seminarthema können also in mehr als einem Tupel vorkommen. Die Kardinalitäten in der (min,max)Notation lauten somit in allen drei Fällen (0, N) (siehe Abbildung). Mit diesen Kardinalitäten ist es aber nun beispielsweise ohne Weiteres möglich, dass ein Student dasselbe Seminarthema mehr als einmal bearbeitet. Die ursprünglichen Konsistenzbedingungen werden hiermit verletzt, die Semantik der beiden Notationen ist also nicht äquivalent. Seminarthema Student (0,N) N 1 (0,N) betreuen 1 (0,N) Universitätsangestellter Lösung zu Kontrollaufgabe 1.13 auf Seite 44 In dieser Aufgabe geht es um die allgemeine Rekapitulation der Modellierungselemente des ER-Modells. Hier ein stichpunktartiger Überblick: Seite 60 Liste der Lösungen zu den Kontrollaufgaben Begriff Entity Relationship Instanz Typ Extension Erklärung Objekt der Miniwelt Beziehung zwischen Entities Ausprägung, Exemplar Schablone, Prägeform Menge von Instanzen Memento 4 Eigenschaften: Bier Identifiziert durch Teilnehmer Verwechslungsgefahr: Entity ist kein Typ. Entspricht Intension. Damit hantiert später das DBS! Es folgen einige Erläuterungen: • Mit „Bier“ sind die 4 Eigenschaften einer Entity gemeint: Beschreibbarkeit, Identifizierbarkeit, Eigenständige Existenz und Relevanz. • Relationship-Instanzen sind durch ihre Teilnehmer identifiziert, aber niemals durch ihre Attribute! Das bedeutet für unser Beispiel „Arzt untersucht Patient an einem Datum“: Wenn „Datum“ ein Attribut ist, kann eine Untersuchung nur über Arzt und Patient identifiziert werden. Dann kann ein Arzt einen Patienten nur einmal untersuchen, weil ein Datum nicht zur Identifikation der Relationship-Instanz verwendet werden kann! • Oftmals wird man auf ein ER-Diagramm deuten und etwas wie „Dieses Entity da“ sagen. Dabei meint man selbstverständlich „Entity-Typ“, obwohl „Entity“ eigentlich „Entity-Instanz“ bedeutet. Machen Sie sich stets den Unterschied zwischen Typ und Instanz klar! • Zu Instanzen, Typen/Intension und Extensionen: Angestellter 127-FM ist eine Instanz des Typs „Angestellter“. Die Tabelle, in der alle Angestellten dieser Firma stehen, enthält die Extension, also die Menge aller (relevanten) Angestellten. Verzeichnisse Seite 61 Verzeichnisse I. Abbildungen Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. Abb. 1.1: 1.2: 1.3: 1.4: 1.5: 1.6: 1.7: 1.8: 1.9: 1.10: 1.11: 1.12: 1.13: 1.14: 1.15: 1.16: 1.17: 1.18: 1.19: 1.20: 1.21: 1.22: 1.23: 1.24: 1.25: 1.26: 1.27: 1.28: 1.29: 1.30: 1.31: 1.32: 1.33: 1.34: 1.35: 1.36: Daten und Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Benutzerspezifische Datenhaltung . . . . . . . . . . . . . . . . . . . . . Eine anwendungsunabhängige Datenbank . . . . . . . . . . . . . . . . . Datenbankmanagementsystem (DBMS) . . . . . . . . . . . . . . . . . . Inhalt einer Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-Schema-Architektur einer Datenbank . . . . . . . . . . . . . . . . . . Wie komme ich zum Schema? . . . . . . . . . . . . . . . . . . . . . . . . Datenmodellierung an Hand eines Minimodells . . . . . . . . . . . . . . Phasen des Datenbankenentwurfs (nach Elmasri and Navathe [2000]) . Entity-Typ mit Attributen . . . . . . . . . . . . . . . . . . . . . . . . . . . Beispiel für Relationship-Typ . . . . . . . . . . . . . . . . . . . . . . . . . ER-Diagramm einer Personalverwaltung (zur besseren Lesbarkeit rotiert) Entity- und Relationship-Typen . . . . . . . . . . . . . . . . . . . . . . . Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship-Typen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entity, Attribute, Attributwerte . . . . . . . . . . . . . . . . . . . . . . . Relationships: Intension und Extension . . . . . . . . . . . . . . . . . . . Darstellung einer falschen Beziehung . . . . . . . . . . . . . . . . . . . Beziehungstypen vom Grad 3 . . . . . . . . . . . . . . . . . . . . . . . . Rekursiver Beziehungstyp . . . . . . . . . . . . . . . . . . . . . . . . . . Kardinalität von Beziehungstypen . . . . . . . . . . . . . . . . . . . . . . Chen-Notation für Kardinalitäten bei binären Beziehungstypen . . . . . . Chen-Notation für Kardinalitäten bei ternären Beziehungstypen . . . . . Chen-Notation und (min, max)-Notation . . . . . . . . . . . . . . . . . . (min, max)-Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Schwache Entity-Typen und identifizierende Beziehungen . . . . . . . . Schwacher Entity-Typ steht mit weiteren Entity-Typen in Beziehung . . . Entwurfsalternativen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modelllierung ohne Beziehungstyp . . . . . . . . . . . . . . . . . . . . . Modellierungstypen sind nicht äquivalent . . . . . . . . . . . . . . . . . Ternärer Beziehungstyp mit funktionaler Abhängigkeit . . . . . . . . . . Nachbildung ternärer durch binäre Beziehungstypen . . . . . . . . . . . Nachbildung ternärer duch binäre Beziehungstypen: Erster Versuch . . . Nachbildung ternärer duch binäre Beziehungstypen: Zweiter Versuch . . Nachbildung ternärer duch binäre Beziehungstypen: Dritter Versuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 14 15 15 16 17 18 19 20 21 22 23 26 27 27 28 30 36 36 38 38 39 40 41 42 42 43 44 45 46 46 47 47 48 48 49 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 13 25 32 35 35 39 39 40 II. Beispiele Beispiel Beispiel Beispiel Beispiel Beispiel Beispiel Beispiel Beispiel Beispiel 1.1: 1.2: 1.3: 1.4: 1.5: 1.6: 1.7: 1.8: 1.9: Modelle in der Architektur . Library of Congress . . . . Personalverwaltung . . . . komplexe Attribute . . . . . binäre Beziehungstypen als Beziehungsmenge . . . . . N : M -Beziehung . . . . . . N : 1-Beziehung . . . . . . 1 : 1-Beziehung . . . . . . . . . . . . . . . . . . . . . . . Tupel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Seite 62 Verzeichnisse III. Definitionen Definition Definition Definition Definition 1.1: 1.2: 1.3: 1.4: Entity . . . . . . . . . . Attribut . . . . . . . . . Relationship . . . . . . Beziehungstyp (formal) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 22 23 34 Exkurs 1.1: Wertebereiche von Attributen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exkurs 1.2: Sprachphilosophie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 37 IV. Exkurse V. Kontrollaufgaben Kontrollaufgabe Kontrollaufgabe Kontrollaufgabe Kontrollaufgabe Kontrollaufgabe Kontrollaufgabe Kontrollaufgabe Kontrollaufgabe Kontrollaufgabe Kontrollaufgabe Kontrollaufgabe Kontrollaufgabe Kontrollaufgabe 1.1: 1.2: 1.3: 1.4: 1.5: 1.6: 1.7: 1.8: 1.9: 1.10: 1.11: 1.12: 1.13: ASCII-Codierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundbegriffe der Datenbanken . . . . . . . . . . . . . . . . . . . . . . . Vorteile mehrschichtiger Architektur . . . . . . . . . . . . . . . . . . . . . Eigenschaften eines konzeptionellen Schemas . . . . . . . . . . . . . . . Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Überprüfung des Beispiels . . . . . . . . . . . . . . . . . . . . . . . . . . totale Teilnahme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . totale Teilnahme und (min,max)-Notation . . . . . . . . . . . . . . . . . . komplexe Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modellierungsalternativen beim Beziehungstyp . . . . . . . . . . . . . . . Kardinalitäten und funktionale Abhängigkeiten . . . . . . . . . . . . . . . (min, max)-Notation vs. Chen-Notation bei dreistelligen Beziehungstypen Zusammenfassung ER-Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 17 19 20 24 25 29 29 33 37 41 43 44 Tabelle 1.1: Darstellung einer Beziehungsmenge als Tabelle . . . . . . . . . . . . . . . . . . . . . . . . 36 VI. Tabellen VII. Literatur Helmut Balzert. Lehrbuch der Softwaretechnik. Springer Verlag, 2009. C. J. Date. An Introduction to Database Systems. Addison-Wesley Verlag, New York, 2000. Dudenredaktion. Duden 01. Die deutsche Rechtschreibung. Dudenverlag, 26. auflage edition, 2013. R. Elmasri and S.B. Navathe. Fundamentals of Database Systems. Addison-Wesley Verlag, 2000. Helmut Herold, Bruno Lurz, and Jürgen Wohlrab. Grundlagen der Informatik. Pearson Verlag, 2012. Martin Hitz, Gerti Kappel, Elisabeth Kapsammer, and Werner Retschitzegger. UML@Work. dpunkt Verlag, 2005. Alfons Kemper and Andre Eickler. Datenbanksysteme: Eine Einführung. Oldenbourg Verlag, 2006. Jürgen Kühling, Christian Seidel, and Anastasios Sivridis. Datenschutzrecht (Start ins Rechtsgebiet). Verlag C.F. Müller, 2. edition, 2011. Richard Lenz. Konzeptionelle Modellierung (Vorlesung). Friedrich-Alexander-Universität Erlangen-Nürnberg, 2012. Bernd Oestereich. Analyse und Design mit UML 2.1. Oldenbourg Verlag, 2006. Literatur Erhard Rahm. Mehrrechner-Datenbanksysteme. Oldenbourg-Verlag, 1994. Hermann Sauer. Relationale Datenbanken. Addison-Wesley Verlag, 2002. Seite 63