Projektierung einer relationale Datanbank 1 Die Phasen 1. Die Anforderungsanalyse 2. Die Erstellung des konzeptuellen Datenmodells 3. Die Erstellung des logischen Datenmodells 4. Die Verifikation und Validierung 1. Das heißt welcher Teil der reelen Welt wollen wir zu modellieren . In dieser Phase spielen den Art und der Häufigkeit von Anfragen eine große Rolle. Diese und andere Parameter werden in der sogennanten Spezifikation (Pflichtenheft) schriftlich niedergelegt. 2. Der konzeptuelle Datenmodell beschreibt in einem formalen Mechanismus der Teil der reelen Welt welche wir modellieren wollen. 3. Der logische Datenmodell (die Schema der relationalen Datenbank) erfolgt aus dem KDM anhand einer Reihe von Regeln die wir weiter vorstellen. 2 4. Der letzte Schritt im Entwurfsprozeß stellt sich in der Problematik der Qualitätssicherung dar. Diese Überprüfung der Qualität muß dabei zwei Anforderungen erfüllen: • Die Verifikation stellt sicher fest, daß die Realisierung der Spezifikation entspricht, wie sie in der Anforderungsanalyse erarbeitet wurde. (Frage: “Entwerfen wir das System richtig ?” • Die Validierung hingegen, überprüft die Spezifikation auf ihre Übereinstimmung mit den Anforderungen seitens des Anwenders. Zu diesem Zweck wird häufig eine prototypische Implemetierung ausgeführt. (Frage:“Entwerfen wir das richtige System?“) 3 Konzeptuelle Modellierung Abhängig von der Datenbankkomplexität, kann man sich für eines der folgenden Modelle entscheiden: 1. Die Erhaltung des relationalen Modells durch ein statisches Modell (das Klassendiagramm, indem man das UML[1]verfahren benötigt). 2. Die Erhaltung des relationalen Modells durch ein semantisch - konzeptuelles Modell (die Entität – Zusammenschlußverfahren oder ER[2]-Diagramm) 3. Die Erhaltung des relationalen Modells durch Normalisierung [1] UML - Unified Modeling Language, die meist gebrauchte Sprache für die Beschreibung der objektorientierten Systeme ;[2]- ER Entyty Relationship 4 1.Das Klassendiagramm-Beispiel Es seien folgende Verwaltungsregeln: • eine Rechnung kann mehrere Waren enthalten. • ein Ware ist von mehreren Rechnungen aufgenommen. Die formale Beschreibung in UML ist folgende: 5 RECHNUNG WARE 1,* enthält 1,* + Nr : Integer + Serie : String - Datum : Date + Kode : String - Bezeichnung : String - Einheit : String + Wert_F( ) : Double + MwSt( ) : Double + AD + ADMF ( ) + Quantität : Double + Preis : Double + Wert ( ) : Double 6 Wobei: • RECHNUNG und WARE sind Objektklassen; • "enthält" ist die Rolle; • (1,*) sind die Kardinalitäten (minimal- und maximal-); • Nr., Serie, Datum, Kode, Bezeichnung, Einheit sind Objektattribute; • Quantität und Preis sind Bezihungsattribute; • Wert_R( ), MwST( ), ADR ( ), ADW( ), Wert() sind Operationen; • das Symbol "+" bedeutet öffentlich un das Symbol "-" bedeutet privat. 7 Diesem Klassendiagramm entspricht folgendes relationales Modell: • RECHNUNG (IdRechnung,Nr,Serie,Datum) wobei IdRechnung Primärschlüssel ist • WARE (IdWare,Kode,Bezeichnung,Einheit) wobei IdWare Primärschlüssel ist • ENTHÄLT(IdRechnung; IdWare,Quantität,Preis) wobei IdRechnung und IdWare Fremdschlüsseln sind und die Kombination (IdRechnung, IdWare) Primärschlüssel in der Tabelle ENTHÄLT ist. 8 2. Das ER-Diagramm RECHNUNG Serie Nr Datum WARE 1,n enthaelt Quantitaet Preis 1,n Kode Bezeichnung Einheit Diesem ER-Diagramm entspricht folgendes relationales Modell: 9 • • • RECHNUNG(Serie,Nr,Datum) wobei (Serie,Nr) Primärschlüssel ist WARE(Kode,Bezeichnung,Einheit) wobei Kode Primärschlüssel ist ENTHÄLT(Kode,Serie,Nr,Quantität,Preis) wobei Kode und (Serie,Nr) Fremdschlüsseln sind und die Kombination (Kode,Serie,Nr) Primärschlüssel in der Tabelle ENTHÄLT ist. 3. Die Erhaltung des relationalen Modells durch Normalisierung Man geht von einem Attributenwörterbuch und einigen Verwaltungsregeln aus. 10 Die Abhängigkeiten Definition. Die Abhängigkeiten sind logische Verbindungen, die zwischen den Komponenten des relationalen Modells erscheinen. Kategorien. 1. Funktionelle Abhängigkeiten. Definition: Wenn eine Realisierung einer Komponente C1 eine einzige Realisierung einer Komponente C2 bestimmt, dann bestimmt C1 funktionell C2, oder C2 hängt funktionell von C1 ab. Die symbolische Beschreibung ist: C1 C2. 11 Beispiel. RECHNUNG Serie Nr Datum WARE 1,n enthaelt Quantitaet Preis 1,n Kode Bezeichnung Einheit In dieser Diagramm trifft man folgende funktionelle Abhängigkeiten an: Kode Ware Warenbezeichnung Ein Wert der Warenkodeein Wert der Einheit (Serie, Rechnungsnr) Rechnungsdatum 12 Die Eigenschaften der funktionellen Abhängigkeiten sind: • • Reflexivität. X Y und Y X Transitivität : X Y und YZ => X Z Beispiel: TFA[1] Vertragsnr Idkunde (der den Vertrag abschließt) FA Vertragsnr Kundenkode FA Kundenkode • • Idkunde Union: Falls X Y und X Z =>X (Y,Z) Zerteilung : Falls X (Y,Z) => X Z und XY [1] TFA - Transitiv funktional Abhängigkeit 13 2. Vielwertige Abhängigkeiten Definition. Wenn ein Wert der Komponente C1, zwei oder mehrere Werte der Komponente C2 bestimmt, dann gibt es zwischen C1 und C2 eine vielwertige Abhängigkeit. Die symbolische Beschreibung ist: C1 ->-> C2 Beispiel. Ein Lieferant stellt mehrere Rechnungen auf Lieferantkode ->-> Rechnungsnr 14 Normalisierung von Relationen • Die Normalisierung wird durch Zerlegung von Relationen erreicht. • Die Normal-formenlehre bestimmt allgemein, welche Abhängigkeiten zwischen Attributen zulässig sind. • Eine Relation genügt einer bestimmten Normalform, wenn sie keine Abhängigkeiten aufweist, die darin nicht zulässig sind. • Insgesamt sind bisher fünf Normalformen definiert. • Die Normalisierung geschieht immer durch Aufspalten einer Relation in zwei oder drei Relationen. 15 Hauptvorteile • Redundanzfreie Speicherung (oder redundanzarme Speicherung, wenn man die Mehrfachspeicherung eines Schlüssels bereits als Redundanz auffaßt), d.h. jedes Faktum ist nur einmal in der Datenbank gespeichert. Unter einem Faktum versteht man die Zuordnung eines Wertes zu einem Attribut eines Tupels (z.B. das Attribut Studienfach des Studenten X hat die Ausprägung "DBMS"); • Sicherung der Integrität. 16 Normalformen Beispiel. Tabelle RECHNUNG Nr Serie Datum LKode LName 1 A51 1/1/07 011 ALPHA 2 B51 2/1/07 012 BETA 3 C11 3/2/07 011 ALPHA … … … … … 17 Für diese Tabelle können folgenden Anomalien bestehen: a) die Redundanz, für die Rechnungen, die von dem selben Lieferant ausgestellt werden. b) Die Beifügunganomalie (es können keine Lieferanten, die keine Rechnungen ausgestellt haben, beigefügt werden). 18 c) Die Veränderungsanomalie (Falls ein Lieferant seine Identität ändert dann müssen alle dazugehörigen Rechnungen und Datenaufzeichnungen, die von dem selben Lieferant ausgestellt sind, geändert sein. d) Die Löschungsanomalie (die Löschung einer Rechnung kann zu einer Eliminierung des ausstellenden Lieferanten aus der Datenbank führen. 19 Bemerkung: die Tabelle einer Datenbank muß manche Regeln/Restriktionen (die Normalformen heißen) befolgen. Erste Normalform (1NF) Eine Tabelle ist in 1NF wenn alle Attribute/Felder atomare (elementare) Werte haben. Ein Wert ist elementar, wenn seine Zerteilung für die Anwendung nicht von Interesse ist. Beispiel Elementare Attribute: Name, Vorname. 20 Zweite Normalform (2NF) Eine Tabelle ist in der 2NF wenn sie die 1NF überprüft und wenn alle ihr Felder funktionell abhängig von dem Primärschlüssel sind. Dritte Normalform (3NF) Eine Tabelle ist in der 3NF, wenn sie die 2NF überprüft und wenn alle ihre Attribute vollständig funktionell und nicht transitiv von dem Primärschlüssel abhängig sind. 21 Projektierung eines relationalen Models durch Normalisierungsprozess. Notwendige Etappen 1. Es werden die Attribute von den Primärdokumenten, Berichten, Situationen usw. vorgenommen und in ein Datenwörterbuch eingeschlossen. Ein Attribut kommt nur einmal in einem Datenwörterbuch vor. Das Datenwörterbuch enthält keinen berechneten Attributen. 2. Auf Grund der Verwaltungsregeln, werden die funktionelle Abhängigkeiten zwischen Attributen festgesetzt. Die Darstellung der funktionelle Abhängigkeiten kann durch eine Matix oder einem Diagramm der funktionellen Abhängigkeiten realisiert werden. 22 3. Alle bestimmende Attributen werden Kandidatenschlüssel. 4. Es werden Primärschlüssel von der Kandidatenschlüssel gewählt. 5. Mit jedem Primärschlüssel und von diesem direkt bestimmten Attributen (nicht transitiv), wird eine Tabelle gegründet. 6. Wenn es einzelne Attribute gibt, die von keinem Primärschlüssel bestimmt werden, dann werden Nonschlüssel Attributengruppen gesucht, die diese bestimmen können. 23 7. Wenn keine solche Attribute übrigbleiben, dann werden Gruppen von Primärschlüssel gesucht (die wir vorher festgesetzt haben) die sie bestimmen können. Diese Gruppen werden andere Primärschlüssel bilden. 8. Es werden die vielwertigen Abhängigkeiten zwischen den Primärschlüsseln bestimmt, unter einer Bedingung, und zwar, daß diese vielwertige Abhängigkeiten gegenseitig sein sollen. 9. Falls zwischen 2 Primärschlüsseln vielwertige gegenseitige Abhängigkeiten existieren dann werden diese 2 Primärschlüssel einen anderen Primärschlüssel bilden, der zu einer neuen Tabelle führt. 10. Es werden die überflüssigen Tabellen beseitigt. 24