Datenbankdesign Betriebliche Anwendung der Datenverarbeitung 2aFD

Preview:

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

Recommended