Daten – Bank 2. Vorlesung Dr. Karsten Tolle – PRG2 – SS 2014 Letzte Vorlesung • Grundbegriffe • SQL – create table – insert – select Dr. Karsten Tolle – PRG2 – SS 2014 2 Heute Übersicht • Modellierung (ER-Diagramme) – Entitäten und Entity-Typen – Beziehungen und Beziehungstypen – Attribute • für Entitäten(Typen) und Beziehungen(Typen) • einfacher oder zusammengesetzter Schlüssel – Kardinalitäten – Generalisierung – Business Rules • [SQL Datentypen und ‚like‘-Operator] Dr. Karsten Tolle – PRG2 – SS 2014 3 Erstellung einer Datenbank: Erster Schritt … • Was sind die Anforderungen? • Was sind die Ziele? • Ist bekannt was gespeichert werden soll? Design des Datenmodells Dr. Karsten Tolle – PRG2 – SS 2014 4 Design Engineering und Kunst Dr. Karsten Tolle – PRG2 – SS 2014 5 Entity-Relationship-Modell (ER-Modell) • Siehe auch: C. Maria Keet: A formal comparison of conceptual datamodeling languages (http://ftp.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol337/paper3.pdf) Picture by: Frank Roeing Dr. Karsten Tolle – PRG2 – SS 2014 6 ER-Modell Ziel: Abbildung der Wirklichkeit auf Strukturebene! Beispiel: – Instanzebene trainiert werden trainiert von – Strukturebene trainiert Trainer Fußballmanschaft werden trainiert von Dr. Karsten Tolle – PRG2 – SS 2014 7 ER-Modell – Strukturebene trainiert Trainer Fußballmannschaft wird trainiert von – bei uns (PRG-2, DB1) Fußballmannschaft Dr. Karsten Tolle – PRG2 – SS 2014 trainiert Trainer 8 • Otto Müller lebt in Frankfurt am Main, in der Robert-Mayer-Str. 11. Person lebt_in Haus lebt_in Dr. Karsten Tolle – PRG2 – SS 2014 9 Achtung! Im Alltag wird oft gesagt: • Objekt (Entity) statt Objekttyp (Entity-Typ) • Beziehung (Relation) statt Beziehungstyp (Relationship-Typ) Dr. Karsten Tolle – PRG2 – SS 2014 10 (Objekt) Attribute • Ein Objekttyp ist durch einen bestimmten Satz von Merkmalen (Attributen) gekennzeichnet. • Jedes Merkmal kann Werte (values), das sind in der Umwelt beobachtbare oder messbare Größen, aus einem bestimmten Wertebereich (value set) annehmen. Name • Beispiel: Passagier Freigepäck Status Otto Müller 20kg Economy Class Dr. Karsten Tolle – PRG2 – SS 2014 11 Prinzipien des digitalen Speicherns Wenn möglich sollten vorhandene Identifizierungsmerkmale als Schlüssel wiederverwendet werden. ISBN TITLE 3-12-517154-7 … ISBN Nummer Man muss aber auch mögliche Änderungen sinnvoll handhaben: ISBN 10 ISBN 13 Dr. Karsten Tolle – PRG2 – SS 2014 12 Schlüssel Ein Schlüssel besteht aus einer Menge von Attributen, deren Werte eine Instanz (Entity) eines Objekttyps eindeutig bestimmt. Name Person Personalausweisnummer Name einfacher Schlüssel Dr. Karsten Tolle – PRG2 – SS 2014 Person Geb.Datum Geb.Ort Name des Vaters zusammengesetzter Schlüssel 13 Mathematische Betrachtung Ein Beziehungstyp zwischen zwei Objekttypen kann als eine mathematische Relation aufgefasst werden. Name Geb_Datum Person lebt_in Stadt S_Name Population Instanz: Person = { p1, p2, p3 } Stadt = { c1, c2, c3 } lebt_in = { <p1,c1>, <p1,c3>, <p3,c3> } Dr. Karsten Tolle – PRG2 – SS 2014 14 Min/Max Kardinalitäten (1,1) Person • • • • (0,n) lebt_in min_card(Person, Lebt_in) = 1 max_card(Person, Lebt_in) = 1 min_card(Stadt, Lebt_in) = 0 max_card(Stadt, Lebt_in) = n Stadt lebt_in = { <p1,c1>, <p2,c3>, <p3,c3> } als Mengendiagramm • p1 • c1 • p2 • c2 • p3 • c3 Es gilt immer: min_card <= max_card! • c4 Person, verbindlich Stadt, optional Bem.: Es gibt andere Notationen, z.B. wird manchmal nur max_card angegeben. Dr. Karsten Tolle – PRG2 – SS 2014 15 Kardinalitäten Instanz: Person Stadt lebt_in Instanz: Person Stadt lebt_in = { p1, p2, p3 } = { c1, c2, c3 } = { <p1,c1>, <p2,c2>, <p3,c3> } • p1 • c1 • p2 • c2 • p3 • c3 = { p1, p2, p3, p4} = { c1, c2, c3, c4, c5 } = { <p1,c1>, <p2,c1>, <p3,c3>, <p1, c4> } • p1 • c1 • p2 • c2 • p3 • c3 • p4 • c4 • c5 Person Name Geb_Datum Person Stadt (1,1) lebt_in (1,1) Stadt Dr. Karsten Tolle – PRG2 – SS 2014 Person S_Name Population Name Geb_Datum Person Stadt (0,n) lebt_in (0,n) Stadt S_Name Population 16 Übung 1 • Aussage: – Mannschaften werden von mindestens einem Trainer trainiert. Dr. Karsten Tolle – PRG2 – SS 2014 17 (Beziehungs) Attribute Instanz: Passagier = { p1, p2, p3 } Flug = { c1, c2, c3 } bucht = { <p1,c1, „D2“>, <p2,c1, „D3“>} D2 D1 • p1 D2 • c1 • p2 D3 • c2 • p3 Gebuchter_Passagier PASSAGIER • c4 Gebuchter_Flug bucht • c3 FLUG Passagier Flug SITZNR. Dr. Karsten Tolle – PRG2 – SS 2014 20 Übung 2 – ER-Diagr. für folgende Aussage erstellen • Aussage: – Bei einem Spiel spielen zwei Mannschaften an einem bestimmten Tag und Uhrzeit in einem Stadion gegeneinander. Dr. Karsten Tolle – PRG2 – SS 2014 21 Die Uni … Studenten können sich von Professoren über eine Vorlesung mündlich prüfen lassen. Alt. 1: Name Geb_Datum Student prüft Prof Name Gehalt Vorlesung Alt. 2: Name Geb_Datum Student prüft Prof Name Gehalt (N-näre Beziehung) Titel SWS Dr. Karsten Tolle – PRG2 – SS 2014 Vorlesung 22 Entity-Typ oder Attribut??? • • Möbelstück Farbe Möbelstück hat Farbe Entities sind Klassen von Objekten der realen Welt und nehmen keine Werte an. Attribute dagegen sind beschreibende Eigenschaften und nehmen Werte an. Die Entscheidung ist abhängig vom Kontext (Situation/Anwendungsfall). Farbe Nr. (1,n) Name Intensität Dr. Karsten Tolle – PRG2 – SS 2014 besteht aus Menge (1,n) Name Lack Preis 23 Generalisierung • Hierarchien für Objekttypen (entspricht Klassenhierarchie in OO) Person Mann Dr. Karsten Tolle – PRG2 – SS 2014 Frau 24 … mit Mehrfachvererbung Person Mitarbeiter Professor Dr. Karsten Tolle – PRG2 – SS 2014 Student WiMi Tutor 25 Übung 3 – WM 2014 • Aussage: – Eine Mannschaft besteht aus Spielern, die sich aufteilen in Verteidiger, Mittelfeldspieler, Angreifer oder Torwart. Dr. Karsten Tolle – PRG2 – SS 2014 26 B Professor hält A B-D Lehrveranst. A-C A-D B-E hält hält B-C D Ausbilder hält Seminar C besser so … besser so … A-C Personal lehrt Lehrveranst. Ausbilder A-E D E B-D Seminar B-C Dr. Karsten Tolle – PRG2 – SS 2014 A A-D C Professor A-E E B B-E 27 ER-Modell • Vorteile – Unabhängig von Implementierungsdetails – Grafische Darstellung (leicht zu lesen) –… • Nachteile – Abbildung des ER-Modells in das relationale Modell ist nicht eindeutig nicht automatisch – ER-Modell ist „statisch“ –… Dr. Karsten Tolle – PRG2 – SS 2014 28 Ausdruckskraft • Ein Angestellter einer Abteilung soll nicht mehr verdienen, als der entsprechende Abteilungsleiter. Gehalt arbeitet_ in Angesteller Abteilung leitet Benötigt zusätzliche Beschreibung, sogenannte Business Rules. Ein Angestellter darf nicht mehr Gehalt bekommen als der Abteilungsleiter, zu dessen Abteilung der Angestellte gehört. Ein Abteilungsleiter muss zu der Abteilung gehören, die er leitet. Dr. Karsten Tolle – PRG2 – SS 2014 29 Business Rules (im weitesten Sinne) können angesehen werden als: 1. Die semantische Definition eines für Anwendungen relevanten Konzeptes, genauer, die semantische Definition • eines Objektes, • eines Attributes, • einer Relation des ER-Modells. Für diesen Fall werden natürlichsprachliche Sätze verwendet, da es unmöglich ist hierfür eine präzise Syntax zu definieren. 2. Integritätsbedingungen für die Daten einer Anwendung (als zusätzliche Beschreibung der im ER-Modell enthaltenen Bedingungen oder zusätzliche Bedingungen). 3. Abgeleitete Bedingungen bzw. Folgerungen aus anderen Bedingungen (z.B. Brutto ist Summe aus Netto plus Steuer). Dr. Karsten Tolle – PRG2 – SS 2014 30 ER Zusammenfassung • Entitäten und Entity-Typen • Beziehungen und Beziehungstypen • Attribute • für Entitäten(Typen) und Beziehungen(Typen) • einfacher oder zusammengesetzter Schlüssel • Kardinalitäten • Generalisierung • Business Rules Dr. Karsten Tolle – PRG2 – SS 2014 31