Software-Engineering und Datenbanken Datenbankentwurf Prof. Dr. Bernhard Schiefer 5-1
Datenbankentwurf: Phasenmodell Anforderungsanalyse Konzeptioneller Entwurf Verteilungsentwurf Logischer Entwurf Datendefinition Physischer Entwurf Implementierung Wartung Prof. Dr. Bernhard Schiefer 5-2
Anforderungsanalyse Sammeln Texte, Tabellen, Formulare, Interviews,... Klassisch: Trennen Info über Daten und Funktionen Informationsstrukturanforderungen Daten, Wertebereiche, Mengengerüste Datenverarbeitungsanforderungen Prozesse Alternative: Objektorientierte Analyse Ziel: Anforderungsspezifikation, Pflichtenheft Prof. Dr. Bernhard Schiefer 5-3
Konzeptioneller Entwurf Modellierung des Universe of Discourse Trennung: wichtiges <-> unwichtiges relevantes <-> irrelevantes Einsatz von abstrakten Datenbankmodellen z.b. erweiterte ER-Diagramme, semantische Datenmodelle Prof. Dr. Bernhard Schiefer 5-4
Konzeptioneller Entwurf - Schritte 1. Modellierung verschiedener Sichten z.b. für verschiedene Fachabteilungen 2. Analyse der Sichten auf: Namenskonflikte: Synonyme und Homonyme Typkonflikte Wertebereichskonflikte Bedingungskonflikte Strukturkonflikte 3. Integration der Sichten Auflösen aller Konflikte um ein Gesamtschema zu erhalten Prof. Dr. Bernhard Schiefer 5-5
Verschiedene Sichten auf Studenten (1) Prüfungsamt Name und Matrikelnummer sehen alle Leistungen aller Studenten ändern allg. Verwaltung alle persönlichen Daten ändern HiWi-Arbeitsverhältnisse ändern/verlängern Student eigene Leistungen sehen persönliche Daten sehen ausgeliehene Bücher sehen Prüfungsanmeldung vornehmen Prof. Dr. Bernhard Schiefer 5-6
Verschiedene Sichten auf Studenten (2) Professoren Namen der Studenten in den eigenen Kursen Telefonnummern von HiWis Bibliothek Namen, Adressen, Matrikelnummern sehen ausgeliehene Bücher ändern Rechenzentrum Matrikelnummer sehen email-adresse, Account ändern Prof. Dr. Bernhard Schiefer 5-7
Konzeptioneller Entwurf - Beispiel Artikel stellt her Hersteller Sicht EK EAN Name Datum Sitz Preis ArtNr SerienNr Verkäufer Sicht VK Preis Artikel kauft Kunde gehört_zu Artikelart ArtNr Bezeichnung Produzent wohnt_in Ort PLZ Name Warengruppe Prof. Dr. Bernhard Schiefer 5-8
Konzeptioneller Entwurf - Konflikte (1) Namenskonflikte Folge der Mehrdeutigkeit unserer Sprache. Homonyme: Derselbe Begriff für mehrere Konzepte. Beispiel: Artikel: konkretes Exemplar Artikelart Synonyme: Unterschiedliche Begriffe für ein Konzept. Beispiel: Produzent Hersteller Typkonflikte Unterschiedliche Modellierungen für ein Konzept. Grund: unterschiedlicher Informationsbedarf. Prof. Dr. Bernhard Schiefer 5-9
Konzeptioneller Entwurf - Konflikte (2) Wertebereichskonflikte Beispiel: Rechnungsbetrag, Datum- und Zeitangaben,... Bedingungskonflikte unterschiedliche Integritätsbedingungen z.b. unterschiedliche Schlüssel in verschiedenen Sichten Strukturkonflikte der gleiche Sachverhalt wird durch unterschiedliche Modellkonstrukte ausgedrückt Beispiel: Hersteller als Entity oder als Aufzählung Prof. Dr. Bernhard Schiefer 5-10
Typweise Verteilung Verteilungsentwurf Speicherung ganzer Entitytypen auf unterschiedlichen Knoten Beispiel: Kundendaten getrennt von Artikeldaten Verteilung von Tupeln eines Typs horizontale Verteilung verschiedene Entities eines Typs werden auf verschiedenen Knoten gespeichert z.b.: Kunden in Nord- und Süddeutschland getrennt vertikale Verteilung verteilte Speicherung von Sätzen Prof. Dr. Bernhard Schiefer 5-11
Logischer Entwurf Erzeugung eines Schemas für das zu verwendende Datenbankmodell Transformation des konzeptionellen Modells in das Zieldatenbankmodell z.b. ER-Modell relationales Modell Verbesserung des Initialschemas Minimierung von Redundanz (Normalisierung) Berücksichtigung von Zugriffsanforderungen Ergebnis: Ein logisches Datenbankschema. Prof. Dr. Bernhard Schiefer 5-12
Datendefinition Erzeugung eines Schemas für das zu verwendende Datenbanksystem Verwendung der DDL und DML des konkreten DBMS Ergebnis: Ein konkretes Datenbankschema inkl. Sichtendefinitionen Prof. Dr. Bernhard Schiefer 5-13
Physischer Entwurf Spezifikation der konkreten Speicherungsstrukturen z.b. Speicherung einer Relation in einer Baumstruktur oder Verwendung von Hash-Tabelle oder Sekundärbaum Einsatz von Clustern Definition der Sekundärindizes Ergebnis: Das physische Schema. (auch internes Schema genannt) Prof. Dr. Bernhard Schiefer 5-14
Phasenbegleitende Methoden Verifikation Formaler Beweis von Schemaeigenschaften. Prototyping Wichtig, um beispielhaftes Arbeiten mit der DB (Teilschema) vor der endgültigen Implementierung zu testen. Validation Überprüfung der Richtigkeit des Entwurfs mit Testdaten. Überprüfung auf Übereinstimmung mit den Anforderungen. Prof. Dr. Bernhard Schiefer 5-15