Projektierung einer relationale Datanbank

Werbung
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 Warenkodeein 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 YZ => 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
XY
[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
Herunterladen