Upload
marcus-schneider
View
216
Download
0
Embed Size (px)
Citation preview
Datenbankdesign
Betriebliche Anwendung der Datenverarbeitung
2aFD
Normalisierung (1)
• Anleitung wie Daten in einer relationalen Datenbank zu speichern sind.
• Während der Normalisierung werden erstellt:– Tabellen– Beziehungen
• Ausgangspunkt ist die Rohdatensamm-lung.
Rohdatensammlung (1)
• Umfasst alle Datenfelder, die für eine Datenbankanwendung benötigt werden.
• Wird durch Brainstroming erstellt.• Tabellen und Beziehungen bleiben unbe-
rücksichtigt, Musterdaten aber schon.• Die Aufteilung der Datenfelder auf die
Tabellen ist Aufgabe der Normalisierung.
Rohdatensammlung (2)
• Erstelle eine Rohdatensammlung für folgende Datenbankanwendungen:– Tanzkurs– Bibliothek– Automark– Lebensmittellager– CD-Sammlung
Rohdatensammlung (1)
• Rohdatensammlung für einen TanzkursNameS VNameS TanzA TanzS NameL LandL kLandLMuster Max Salsa,
WalzerAnfänger,Fortgeschritten
Paolo,Peter
Brasilien, Österreich
BR,AT
Fischer Patrizia Salsa Anfänger Paolo Brasilien BR
Fischer Claudia Bauchtanz Ahmed Türkei TR
Andreas Arnim Walzer Fortg. Peter Österreich AT
Berger Friedl Walzer,Salsa
Anfänger,Fortg.
Paul,Paolo
Österreich,Brasilien
ATBR
Normalisierung (2)
• Erste NormalformEine Tabelle befindet sich dann in der ersten Normalform, wenn in jedem Datenfeld nur ein einziger Wert steht.
• NormalisierungsvorschriftJeden Wert in eine eigene Zeile schreiben.
Normalisierung (3)
• Erste Normalform von Tanzkurs– Pro Datensatz steht nur noch ein Wert in
jedem Datenfeld.
NameS VNameS TanzA TanzS NameL LandL kLandLMuster Max Salsa Anfänger Paolo Brasilien BR
Muster Max Walzer Fortgeschritten Peter Österreich AT
Fischer Patrizia Salsa Anfänger Paolo Brasilien BR
Fischer Claudia Bauchtanz Ahmed Türkei TR
Andreas Arnim Walzer Fortgeschritten Peter Österreich AT
Berger Friedl Walzer Anfänger Paul Österreich AT
Berger Friedl Salsa Fortgeschritten Paolo Brasilien BR
Normalisierung (4)• Zweite Normalform
Eine Tabelle befindet sich dann in der zweiten Normalform, wenn sie in der ersten Normalform ist und sich die Werte der Datenfeldern – mit Ausnahme von Fremdschlüsseln – nicht wiederholen.
• NormalisierungsvorschriftDatenfelder, die redundant sind (sich wie-derholen), in eine eigene Tabelle geben.
Normalisierung (5)• Zweite Normalform von Tanzkurs
– Die Schüler wiederholen sich; sie müssen in eine eigene Schüler-Tabelle mit Primär-schlüssel ausgelagert werden.
SchülerNr Name Vorname1 Muster Max
2 Fischer Patrizia
3 Fischer Claudia
4 Andreas Arnim
5 Berger Friedl
Normalisierung (6)
• Zweite Normalform von Tanzkurs– Die Kurse wiederholen sich; sie müssen in
eine eigene Kurs-Tabelle mit Primärschlüssel ausgelagert werden.
KursId Bezeichnung
BT Bauchtanz
SA Salsa Anfänger
SF Salsa Fortgeschritten
WA Walzer Anfänger
WF Walzer Fortgeschritten
Normalisierung (7)
• Zweite Normalform von Tanzkurs– Die Lehrer wiederholen sich; sie müssen in
eine eigene Lehrer-Tabelle mit Primär-schlüssel ausgelagert werden.
LehrerNr Name Land kLand
1 Ahmed Türkei TR
2 Paolo Brasilien BR
3 Paul Österreich AT
4 Peter Österreich AT
Normalisierung (8)
• Zweite Normalform von Tanzkurs– Werte werden durch ihre Fremdschlüssel
ersetzt. Diese dürfen sich wiederholen.
SchülerNr KursId LehrerNr1 SA 2
1 WF 4
2 SA 2
3 BT 1
4 WF 4
5 WA 3
5 SF 2
Normalisierung (9)
• Dritte NormalformEine Tabelle befindet sich dann in der dritten Normalform, wenn sie in der zweiten Normalform ist und kein Daten-feld von einem anderen abhängt.
• NormalisierungsvorschriftAbhängige Datenfelder in eine eigene Tabelle auslagern oder berechnen.
Normalisierung (10)
• Dritte Normalform von Tanzkurs– Land und kLand der Tabelle Lehrer hängen
voneinander ab und werden in eine eigen Tabelle ausgelagert.
LehrerNr Name LandId1 Ahmed TR
2 Paolo BR
3 Paul AT
4 Peter AT
LandId LandTR Türkei
BR Brasilien
AT Österreich
Normalisierung (11)
• Vorteile der Normalisierung– Es kann nach einem Schema vorgegangen
werden.– Tabellen und Beziehungen ergeben sich
automatisch.– Das Design bleibt flexibel und erweiterbar.
Denormalisierung
• Eine nötige Normalisierung wird nicht durchgeführt.
• Beispiel– Name in der Schüler-Tabelle
• Gründe– Normalisierung bringt keine Vorteile– Normalisierung kostet zu viel Performance
Übung (1)
• Normalisiere folgende TabelleBandname CD-Titel Label Lieder
Geoffrey Oryema Exile Realworld Piny Ruka Woko, Land of Anaka; Piri Wango
Bob Dylan The Times are a-changing Universe Subterrean Homesick,
Like a Rolling Stone
Cesaria Evora Cabo Verde Tropical Music Tchintchinirote, Sabine Larga‘m, Partida
Rabih Abou-Khalil Roots and Sprouts EnjaRemembering Macara, Walking on Air; Nida
Rabih Abou-Khalil The Sultan‘s Picnic Enja Sunrise in Montreal;
Solitude; Dog River
Übung (2)
• Lösung: erste NormalisierungBandname CD-Titel Label LiederGeoffrey Oryema Exile Realworld Piny Ruka Woko
Geoffrey Oryema Exile Realworld Land of Anaka
Geoffrey Oryema Exile Realworld Piri Wango
Bob Dylan The Times are … Universe Subterrean Homesick
Bob Dylan The Times are … Universe Like a Rolling Stone
Cesaria Evora Cabo Verde Tropical Music Tchintchinirote
Cesaria Evora Cabo Verde Tropical Music Sabine Larga‘m
Cesaria Evora Cabo Verde Tropical Music Partida
Rabih Abou-Khalil Roots and Sprouts Enja Remembering Macara
Rabih Abou-Khalil Roots and Sprouts Enja Walking on Air
… … … …
Übung (3)
• Lösung: zweite Normalisierung
LabelNr Label1 Realworld
2 Universe
3 Tropical Music
4 Enja
BandNr Bandname1 Geoffrey Oryema
2 Bob Dylan
3 Cesaria Evora
4 Rabih Abou-Khalil
CDNr CD-Titel1 Exile
2 The Times are a-changing
3 Cabo Verde
4 Roots and Sprouts
5 The Sultan‘s Picnic
Übung (4)
• Lösung: zweite NormalisierungLieder BandNr CDNr LabelNrPiny Ruka Woko 1 1 1
Land of Anaka 1 1 1
Piri Wango 1 1 1
Subterrean Homesick 2 2 2
Like a Rolling Stone 2 2 2
Tchintchinirote 3 3 3
Sabine Larga‘m 3 3 3
Partida 3 3 3
Remembering Macara 4 4 4
Walking on Air 4 4 4
… … … …
Übung (5)
• Lösung: dritte Normalisierung– Da kein Datenfeld von einem anderen
abhängt, liegen die Tabelle bereits in der dritten Normalform vor.
– Denormalisierungen sind keine vorgesehen.
Übung (6)
• Ergänze deine Lösung um folgende Daten– Spieldauer der Lieder– Land und Länderkürzel der Labels
• Prüfe, ob die neue Lösung noch immer normalisiert ist.
Beziehungen (1)
• Tabellen und Beziehungen– Relationale Datenbanken speichern ihre
Daten in Tabellen.– Zwischen den Tabellen bestehen
Beziehungen (Relationen).– Es gibt verschiedene Arten von Beziehungen.– Die Art der Beziehung bestimmt das weitere
Vorgehen.
Beziehungen (2)
• Beispiele– Einem Land ist genau ein Länderkürzel
zugeordnet.– Ein Tanzlehrer kann mehrere Tanzkurse
leiten aber ein Tanzkurs hat nur einen Lehrer.– Ein Teilnehmer kann mehrere Tanzkurse
belegen und ein Tanzkurs besteht aus mehreren Teilnehmern.
Beziehungen (3)
• Eins-zu-eins-Beziehung (1:1)Jedem Datensatz einer Mastertabelle ist genau ein Datensatz einer Detailtabelle zugeordnet.
Land Länderkürzelhat ein1 1
Beziehungen (4)
• Eins-zu-eins-Beziehung– Die Tabellen lassen sich zusammenfassen.– Außer es gibt Gründe: Datenmenge, Sicherheit, etc.
LandNr Land1 Türkei
2 Brasilien
3 Österreich
LandNr LandId1 TR
2 BR
3 AT
LandNr LandId Land1 TR Türkei
2 BR Brasilien
3 AT Österreich
Beziehungen (5)
• Eins-zu-viele-Beziehung (1:N,N:1)Jedem Datensatz einer Mastertabelle können mehrere Datensätze einer Detailtabelle zu-geordnet sein.
Lehrer Tanzkursleitet1 N
Beziehungen (6)
• Eins-zu-viele-Beziehung (1:N,N:1)– Kommen sehr häufig vor.– Standardbeziehung von relationalen DBs.– Keine weitere Aktion nötig.
KursId Name LehrerNrBT Bauchtanz 1
SA Salsa Anfänger 2
SF Salsa Fortgeschritten 2
WA Walzer Anfänger 3
WF Walzer Fortgeschritten 4
LehrerNr Name LandId1 Ahmed TR
2 Paolo BR
3 Paul AT
4 Peter AT
Beziehungen (7)
• Viele-zu-viele-Beziehung (N:M)Lassen sich durch Tabellen nicht direkt erzeu-gen. Eine Hilfstabelle wird benötigt.
Teilnehmer TanzkursbelegtN M
Kursbelegung1:N 1:M
Beziehungen (8)
• Viele-zu-viele-Beziehung (N:M)– Mit relationalen Datenbanken direkt nicht
möglich.– Eine Hilfstabelle erzeugt 1:N-Beziehungen.
SNr Name Vorname
1 Muster Max
2 Fischer Patrizia
3 Fischer Claudia
4 Andreas Arnim
5 Berger Friedl
KId Bezeichnung
BT Bauchtanz
SA Salsa Anfänger
SF Salsa Fortgeschritten
WA Walzer Anfänger
WF Walzer Fortgeschritten
SchülerNr KursId1 SA
1 WF
2 SA
3 BT
4 WF
5 WA
5 SF
Beziehungen (9)
• Beziehungen der Datenbank Tanzkurs
Schlüssel (1)
• Schlüssel können eingeteilt werden in– Einfache Schlüssel– Zusammengesetzte Schlüssel
• oder in– Primärschlüssel– Sekundärschlüssel– Fremdschlüssel
Schlüssel (2)• Einfache Schlüssel
– Bestehen aus nur einem Datenfeld.
– Die Werte des Datenfeldes bilden den Schlüssel.
• Zusammengesetzte Schlüssel– Bestehen aus mehreren
Datenfeldern. – Die Kombination der Werte
der Datenfelder bilden den Schlüssel.
KundenNr. Name Vorname
1 Max Master
2 Minna Visa
Bankleitzahl KontoNr. KdNr.
10123 400555 1
12123 400555 2
Schlüssel (3)
• Primärschlüssel– Identifizieren jeden Datensatz– Müssen eindeutig sein– Oft fortlaufende Zahl (Autowert)– Oft mit Id gekennzeichnet (Identity)
• Sekundärschlüssel– Beschleunigen das Sortieren und Suchen– Wird auch als Index bezeichnet
Schlüssel (4)
• Fremdschlüssel– Verweist auf andere Tabelle– Fremdschlüssel ist Primärschlüssel in der
anderen Tabelle
Kunden
Name KundenNr.
Muster 123
Bestellungen
KundenNr. SpeisenNr.
123 12
Speisen
SpeisenNr. Name
12 Kuchen