Betriebliche Anwendung der Datenverarbeitung 2aFD 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 Tanzkurs NameS VNameS TanzA TanzS NameL LandL kLandL Muster Max Salsa, Walzer Anfänger, Fortgeschritten Paolo, Peter Brasilien, Österreich BR, AT Fischer Patrizia Salsa Anfänger Paolo Brasilien BR Claudia Bauchtanz Ahmed Türkei TR Andreas Arnim Fortg. Österreich Berger Friedl Walzer, Paul, Österreich,Brasilien
Normalisierung (2) Erste Normalform Eine Tabelle befindet sich dann in der ersten Normalform, wenn in jedem Datenfeld nur ein einziger Wert steht. Normalisierungsvorschrift Jeden 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 kLandL Muster Max Salsa Anfänger Paolo Brasilien BR Walzer Fortgeschritten Peter Österreich AT Fischer Patrizia Claudia Bauchtanz Ahmed Türkei TR Andreas Arnim Berger Friedl Paul
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. Normalisierungsvorschrift Datenfelder, 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 Vorname 1 Muster Max 2 Fischer Patrizia 3 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
Normalisierung (8) Zweite Normalform von Tanzkurs Werte werden durch ihre Fremdschlüssel ersetzt. Diese dürfen sich wiederholen. SchülerNr KursId LehrerNr 1 SA 2 WF 4 3 BT 5 WA SF
Normalisierung (9) Dritte Normalform Eine Tabelle befindet sich dann in der dritten Normalform, wenn sie in der zweiten Normalform ist und kein Daten-feld von einem anderen abhängt. Normalisierungsvorschrift Abhä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 LandId 1 Ahmed TR 2 Paolo BR 3 Paul AT 4 Peter LandId Land TR 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 Tabelle Bandname 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 Enja Remembering Macara, Walking on Air; Nida The Sultan‘s Picnic Sunrise in Montreal; Solitude; Dog River
Übung (2) Lösung: erste Normalisierung Bandname CD-Titel Label Lieder Geoffrey Oryema Exile Realworld Piny Ruka Woko Land of Anaka Piri Wango Bob Dylan The Times are … Universe Subterrean Homesick Like a Rolling Stone Cesaria Evora Cabo Verde Tropical Music Tchintchinirote Sabine Larga‘m Partida Rabih Abou-Khalil Roots and Sprouts Enja Remembering Macara Walking on Air …
Übung (3) Lösung: zweite Normalisierung BandNr Bandname 1 Geoffrey Oryema 2 Bob Dylan 3 Cesaria Evora 4 Rabih Abou-Khalil CDNr CD-Titel 1 Exile 2 The Times are a-changing 3 Cabo Verde 4 Roots and Sprouts 5 The Sultan‘s Picnic LabelNr Label 1 Realworld 2 Universe 3 Tropical Music 4 Enja
Übung (4) Lösung: zweite Normalisierung Lieder BandNr CDNr LabelNr Piny Ruka Woko 1 Land of Anaka Piri Wango Subterrean Homesick 2 Like a Rolling Stone Tchintchinirote 3 Sabine Larga‘m Partida Remembering Macara 4 Walking on Air …
Ü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ürzel hat ein 1
Beziehungen (4) Eins-zu-eins-Beziehung Die Tabellen lassen sich zusammenfassen. Außer es gibt Gründe: Datenmenge, Sicherheit, etc. LandNr Land 1 Türkei 2 Brasilien 3 Österreich LandNr LandId Land 1 TR Türkei 2 BR Brasilien 3 AT Österreich LandNr LandId 1 TR 2 BR 3 AT
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 Tanzkurs leitet 1 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. LehrerNr Name LandId 1 Ahmed TR 2 Paolo BR 3 Paul AT 4 Peter KursId Name LehrerNr BT Bauchtanz 1 SA Salsa Anfänger 2 SF Salsa Fortgeschritten WA Walzer Anfänger 3 WF Walzer Fortgeschritten 4
Beziehungen (7) Viele-zu-viele-Beziehung (N:M) Lassen sich durch Tabellen nicht direkt erzeu-gen. Eine Hilfstabelle wird benötigt. Teilnehmer Tanzkurs belegt N M Kursbelegung 1: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 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 KursId 1 SA WF 2 3 BT 4 5 WA SF
Beziehungen (9) Beziehungen der Datenbank Tanzkurs
Schlüssel (1) Schlüssel können eingeteilt werden in oder in Einfache Schlüssel Zusammengesetzte Schlüssel oder in Primärschlüssel Sekundärschlüssel Fremdschlüssel
Schlüssel (2) Einfache Schlüssel Zusammengesetzte 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 2
Schlüssel (3) Primärschlüssel Sekundä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