Daten – Bank 2. Vorlesung Dr. Karsten Tolle – PRG2 – SS 2012 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 2012 2 Design Engineering und Kunst Dr. Karsten Tolle – PRG2 – SS 2012 3 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 2012 4 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 2012 5 ER-Modell – Strukturebene trainiert Trainer Fußballmannschaft wird trainiert von – in Chen-Notation Fußballmannschaft Dr. Karsten Tolle – PRG2 – SS 2012 trainiert Trainer 6 • 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 2012 7 Achtung! Im Alltag wird oft gesagt: • Objekt (Entity) statt Objekttyp (Entity-Typ) • Beziehung (Relation) statt Beziehungstyp (Relationship-Typ) Dr. Karsten Tolle – PRG2 – SS 2012 8 (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 2012 9 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 2012 10 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 2012 Person Geb.Datum Geb.Ort Name des Vaters zusammengesetzter Schlüssel 11 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 2012 12 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 2012 13 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 2012 Person S_Name Population Name Geb_Datum Person Stadt (0,n) lebt_in (0,n) Stadt S_Name Population 14 Übung 1 – EM 2012 • Aussage: – Mannschaften werden von mindestens einem Trainer trainiert. Dr. Karsten Tolle – PRG2 – SS 2012 15 Mannschaften werden von mindestens einem Trainer trainiert. Fußballmannschaft Dr. Karsten Tolle – PRG2 – SS 2012 trainiert Trainer 16 (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 2012 18 Übung 2 – EM 2012 • Aussage: – Bei einem Spiel spielen zwei Mannschaften in einem Stadion an einem bestimmten Tag gegeneinander. Dr. Karsten Tolle – PRG2 – SS 2012 19 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 2012 Vorlesung 20 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 2012 besteht aus Menge (1,n) Name Lack Preis 21 Generalisierung • Hierarchien für Objekttypen (entspricht Klassenhierarchie in OO) Person Mann Dr. Karsten Tolle – PRG2 – SS 2012 Frau 22 … mit Mehrfachvererbung Person Mitarbeiter Professor Dr. Karsten Tolle – PRG2 – SS 2012 Student WiMi Tutor 23 Übung 3 – EM 2012 • Aussage: – Eine Mannschaft besteht aus Spielern, die sich aufteilen in Verteidiger, Mittelfeldspieler, Angreifer oder Torwart. Dr. Karsten Tolle – PRG2 – SS 2012 24 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 2012 A A-D C Professor A-E E B B-E 25 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 2012 26 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 2012 27 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 2012 28 ER Zusammenfassung • Entitäten und Entity-Typen • Beziehungen und Beziehungstypen • Attribute • für Entitäten(Typen) und Beziehungen(Typen) • einfach oder zusammengesetzt • ausgezeichnet als Schlüssel • Kardinalitäten • Generalisierung • Business Rules Dr. Karsten Tolle – PRG2 – SS 2012 29 Erstellung einer Datenbank: Zweiter Schritt … • Welches DBMS wird genutzt? • Wer soll wie auf die Daten zugreifen? Umsetzung des Datenmodells im DBMS • Wir verwenden in PRG2: – relationales DBMS – insb. MySQL – Zugriff über die Anfragesprache SQL Dr. Karsten Tolle – PRG2 – SS 2012 30 Relationales Datenbankmodell • Tabellen mit Zeilen und Spalten um die Daten darzustellen. Attribute Employee Tupel EMPNO FIRSTNME LASTNME PHONENO SALARY 001 Jon Lucas 2983 2000 003 Jon Smith 2980 3588 103 Lucas Jon 4444 3980 999 Jon Smith 3987 1500 Schema bzw. Relationenschema: Employee (EMPNO, FIRSTNME, LASTNME, PHONENO, SALARY) Dr. Karsten Tolle – PRG2 – SS 2012 31 Namensgebung und Wahl des Schlüssels? Raum Tutorium Name Name Raum Tag Zeit NM103 Sadik NM117 Montag 08:15 NM117 Alina NM117 Montag 12:15 NM123 Max NM117 Dienstag 14:15 SR9 Max SR9 Donnerstag 12:15 Dr. Karsten Tolle – PRG2 – SS 2012 32 Alter Table Was geschieht, wenn man nun den Raum „SR9“ am Riedberg eintragen möchte? Raum Name NM103 NM117 NM123 SR9 in Bockenheim vs SR9 am Riedberg SR9 Dr. Karsten Tolle – PRG2 – SS 2012 34 ALTER TABLE raum ADD COLUMN `id` INT NOT NULL AUTO_INCREMENT, CHANGE COLUMN `name` `name` VARCHAR(40) NULL , DROP PRIMARY KEY , ADD PRIMARY KEY (`id`) ; Raum Name Raum Name ID NM103 1 NM117 2 NM123 3 SR9 4 NM103 NM117 NM123 SR9 Dr. Karsten Tolle – PRG2 – SS 2012 35 Datenmodell Nach Edgar F. Codd definiert sich ein Datenbankmodell aus drei Eigenschaften: • Einer generischen Datenstruktur, die die Struktur einer Datenbank beschreibt. • Einer Menge von generischen Operatoren, die man bei beliebigen Schemata auf die Datenstrukturen anwenden kann, um Daten einzutragen, zu ändern, abzufragen oder abzuleiten. • Einer Menge von Integritätsbedingungen, mit denen man die zulässigen Datenbankinhalte über die Grundstrukturen hinaus weiter einschränken kann. Dr. Karsten Tolle – PRG2 – SS 2012 36 DBMS Evolution Datei basiert Hierarchische DBMS Netzwerk DBMS Relationale DBMS Objektorientierte DBMS Objektrelationale DBMS XML DBMS 1960 1970 1980 1990 2000 2005 2010 2012 Zeit weitere: Deduktive DBMS, Verteilte Datenbanken, Geoinformationssysteme (GIS), NoSQL (Not only SQL) Dr. Karsten Tolle – PRG2 – SS 2012 37 Wichtige DBMS • • • • • • • • Oracle IBM DB2 Microsoft SQL Server Market share … Company Revenue 2007 2007 MySQL Oracle 8,343 Mrd. Dollar 37,6% PostgreSQL IBM 4,879 Mrd. Dollar 22,0% Caché Microsoft 4,670 Mrd. Dollar 21,0% … aus Computerwoche Nr. 3 vom 16. Januar 2009 Zahlen beziehen sich nur auf DBMS-Geschäft Dr. Karsten Tolle – PRG2 – SS 2012 38 38 Geschätzte Kosten für Ausfallzeiten (Downtimes) Stand: 2002!!!! Geschäftsfeld Geschätzte Kosten pro Stunde Aktienhandel $6,45 Millionen Kreditkarten-Gesellschaften $2,6 Millionen Home Shopping Channel $113.750 Katalog Verkaufs Center $90.000 Fluglinien Reservierung $89.500 Versand Service $28.250 Geldautomat Service $14.500 Nach: Craig S. Mullins Database Administration – The Complete Guide to Practices and Procedures 2002 – Addison-Wesley – ISBN 0-201-74129-6 Kosten für Ausfallzeiten (Downtimes) Ausfallzeiten pro Jahr Verfügbarkeit Minuten Stunden Kosten pro Jahr* 99,999% 5 0,08 8.000 $ 99,99% 53 0,88 88.000 $ 99,9% 526 8,77 887.000 $ 99,5% 2628 43,8 4.380.000 $ 99% 5256 87,6 8.760.000 $ * Bei Kosten für eine Stunde Ausfallzeit von 100.000 $ Nach: Craig S. Mullins Database Administration – The Complete Guide to Practices and Procedures 2002 – Addison-Wesley – ISBN 0-201-74129-6 Stand: 2002!!!!