Normalformen
5 Normalformen:
1. Normalform 2. Normalform
3. Normalform (Codd) und 3. Normalform (Boyce-Codd) 4. Normalform
5. Normalform
Es gilt:
|1.NF| >= |2.NF| >= |3.NF(Codd)| >= |3.NF(Boyce-Codd)| >= |4.NF| >= |5.NF|
Wenige Relationen Alle Relationen
1. Normalform
Definition (erste Normalform)
¾ Eine Relation ist in der ersten Normalform, wenn alle zugrundelie- genden Gebiete nur atomare Werte enthalten.
Folgerung:
Eine (normalisierte) Relation ist immer in der ersten Normalform!
Funktionale Abhängigkeit
Definition (funktionale Abhängigkeit)
¾ Ein Attribut Y einer Relation R heißt funktional abhängig vom Attribut X derselben Relation, wenn zu jedem X-Wert höchstens ein Y-Wert möglich ist.
X Æ Y
Folgerung:
¾ Alle Attribute hängen vom Primärschlüssel und den alternativen Schlüsseln funktional ab
¾ Oder: Vom Primärschlüssel (und den alternativen Schlüsseln) gehen Pfeile zu allen anderen Attributen
Verkaeufer-Produkt
Verk.-Nr. Verk.-Name PLZ Verk.-Adresse Produktname Umsatz V1 Meier 80075 München Waschmaschine 11000
V1 Meier 80075 München Herd 5000
V1 Meier 80075 München Kühlschrank 1000
V2 Schneider 70038 Stuttgart Herd 4000 V2 Schneider 70038 Stuttgart Kühlschrank 3000 V3 Müller 10183 Berlin Staubsauger 1000
?
Volle funktionale Abhängigkeit
Definition (volle funktionale Abhängigkeit)
Ein Attribut Y einer Relation R heißt voll funktional abhängig vom Attribut X derselben Relation, wenn
¾ es funktional abhängig ist von X
¾ es nicht funktional abhängig ist von beliebigen Teilattributen von X
X ⇒ Y
Folgerung:
¾ Es gilt: Primärschlüssel Æ alle anderen Attribute
¾ Es gilt nicht: Primärschlüssel ⇒ alle anderen Attribute
2. Normalform
Definition (zweite Normalform)
¾ Eine Relation ist in der zweiten Normalform, wenn sie in der ersten Normalform ist, und jedes Nichtschlüsselattribut voll funktional abhängig vom Primärschlüssel ist.
Folgerung:
¾ Es gilt mit 2. NF: Primärschlüssel ⇒ Nichtschlüsselattribute
¾ Relation VerkaeuferProdukt ist nicht in der 2. Normalform
¾ Eine Relation in erster Normalform mit nicht zusammengesetztem Primärschlüssel ist immer in der zweiten Normalform
Verkaeufer-Produkt-2.NF
Nr Verk.-Nr. Verk.-Name PLZ Verk.-Adresse Produktname Umsatz 1 V1 Meier 80075 München Waschmaschine 11000
2 V1 Meier 80075 München Herd 5000
3 V1 Meier 80075 München Kühlschrank 1000 4 V2 Schneider 70038 Stuttgart Herd 4000 5 V2 Schneider 70038 Stuttgart Kühlschrank 3000 6 V3 Müller 10183 Berlin Staubsauger 1000
Verk.-Nr.
Produktname Umsatz
PLZ
Verk.-Name Adresse Nr
?
Determinante, 3. Normalform
Definition (Determinante)
¾ Eine Determinante ist ein Attribut, von dem ein anderes voll funktional abhängig ist.
Definition (dritte Normalform nach Boyce/Codd)
¾ Eine normalisierte Relation ist in der dritten Normalform, wenn jede Determinante dieser Relation ein Schlüsselkandidat ist.
Relation Verkäufer
Verk.-Nr. Verk.-Name PLZ Verk.-Adresse
V1 Meier 80075 München
V2 Schneider 70038 Stuttgart
V3 Müller 50083 Köln
Relation Produkt Relation Verknüpfung
Prod.-Nr. Produktname Verk.-Nummer Produkt-Nr. Umsatz
P1 Waschmaschine V1 P1 11000
P2 Herd V1 P2 5000
P3 Kühlschrank V1 P3 1000
P4 Staubsauger V2 P2 4000
V2 P3 3000
V3 P4 1000
Relation Verkäufer-Land
Verk.-Nr. Verk.-Name PLZ Verk.-Adresse Bundesland
V1 Meier 80075 München Bayern
V2 Schneider 70038 Stuttgart Baden-Würt.
V3 Müller 50083 Köln Nordrhein-Westf.
Funktionale Abhängigkeiten in der Relation Verkäufer-Land
Bundesland
PLZ
Verk.-Name
Adresse Nr
?
Verkäufer-Produkt-3.NF
Verk.-Name PLZ Verk.-Adresse Produktname Umsatz Meier 80075 München Waschmaschine 11000
Meier 80075 München Herd 5000
Meier 80075 München Kühlschrank 1000 Schneider 70038 Stuttgart Herd 4000 Schneider 70038 Stuttgart Kühlschrank 3000
Müller 50083 Köln Staubsauger 1000
Voraussetzung:
Das Tripel (Verk.-Name, PLZ, Verk.-Adresse) beschreibt jeden Verkäufer eindeutig.
Mehrfache Abhängigkeiten, 4. Normalform
Grob-Definition (Mehrfache Abhängigkeit)
¾ Ein Attribut Y einer Relation R heißt mehrfach abhängig vom Attribut X derselben Relation, wenn zu jedem X-Wert höchstens eine eng begrenzte Anzahl Y-Werte möglich sind.
Beispiel: Ein Attribut Name ist mehrfach abhängig vom Attribut Adresse, denn an jeder Adresse wohnt nur eine eng begrenzte Anzahl von Personen.
Definition (4. Normalform)
¾ Eine Relation R ist in 4. Normalform, wenn sie in 3. Normalform ist und jede mehrfache Abhängigkeit auch eine funktionale Abhängigkeit nach sich zieht.
Projektion-Join-Normalform
Grob-Definition (Projektion-Join-Normalform)
¾ Eine Relation ist in der Projektion-Join-Normalform (5. Normalform), wenn sie in der 4. Normalform ist und sie nur noch nicht-trivial in mindestens 2 Relationen zerlegt werden kann.
Begriffe zu relationalen Datenbanken
Entität ein unterscheidbares Objekt, (mathematisch: ein Element) Eigenschaft ein Teil einer Entität, der die Entität beschreibt
Beziehung eine Entität, die 2 oder mehr Entitäten miteinander verknüpft Subtyp eine Entität Y, die auch zu einer Entität X gehört
Supertyp eine Entität, die Subtypen enthält
Beispiele zu den Begriffen zu relationalen Datenbanken
Begriff Beispielangaben
Entität Person, Werkzeugteil, Produkt, Rechnung
Eigenschaft Name, Vorname, PLZ, Ort, Adresse einer Person; Einzelteile, aus denen ein Werkzeug besteht, Rechnungsdatum
Beziehung die Relation Verknüpfung verbindet die Relationen Verkäufer und Produkt
Subtyp die Entität Programmierer ist ein Subtyp zur Entität Person Supertyp die Entität Person ist ein Supertyp der Entität Programmierer
Beispiel zu Entitäten und Eigenschaften
Gehalt Name Pers.Nr
Vorname Nachname Entität
Eigenschaft Person
CREATE TABLE Personal ( Persnr Integer,
Name Character(20), …
PRIMARY KEY (Persnr) ) ;
CREATE TABLE Personal
( Persnr Integer PRIMARY KEY, Name Character(20),
… ) ;
Beispiel einer Beziehungsrelation
Abteilung
enthält
Person
BeziehungAbteilung
Person
1
abgekürzt: m 1
m
enthält
Beziehungen
1 zu 1 : Techniker sind Mitarbeiter Teilestamm ist auf Lager
Personal ist verantwortlich für Maschine m zu 1 : Personal gehört zu Abteilung
Mitarbeiter betreut Auftrag m zu n : Verkäufer verkauft Produkt
Teilestamm wird verkauft beim Auftrag
Realisierung von m zu n Beziehungen in RDBen
Eine eigene Beziehungsrelation ist erforderlich mit folgenden Eigenschaften:
¾ Ein Attribut ist ein Fremdschlüssel auf die eine Relation
¾ Ein Attribut ist ein Fremdschlüssel auf die andere Relation
¾ Beide Attribute zusammen sind ein Schlüsselkandidat
Folgerungen:
Bei den Fremdschlüsseln sind NULL-Werte nicht erlaubt
Beide Fremdschlüssel haben die Eigenschaft ON UPDATE CASCADE
Beide Fremdschlüssel haben die Eigenschaft ON DELETE NO ACTION oder ON DELETE CASCADE
Beziehungsrelation zwischen Verkäufer und Produkt
CREATE TABLE Verknüpfung
( Verk_Nummer Char(4) REFERENCES Verkaeufer
ON DELETE NO ACTION ON UPDATE CASCADE, Produkt_Nr Char(4) REFERENCES Produkt
ON DELETE NO ACTION ON UPDATE CASCADE, Umsatz SMALLINT,
PRIMARY KEY (Verk_Nummer, Produkt_Nr) ) ;
verkauft 2 Fremdschlüssel
m
1
Verk.-Nummer
Produkt-Nr.
1
n
Verkäufer
Produkt
m
n
Verkäufer
Produkt
verkauft
Realisierung von m zu 1 Beziehungen
In der Viele-Beziehung (m) wird ein Fremdschlüssel hinzugefügt.
CREATE TABLE Person
( PersNr Int PRIMARY KEY, Name Char(20) NOT NULL, …
Abt_Nr Int REFERENCES Abteilung
ON DELETE NO ACTION ON UPDATE CASCADE );
Abteilung
enthält
Person Beziehung
Abteilung
Person
1
abgekürzt: m 1
m
enthält
Schwache Relation
Eine Relation heißt schwach
¾ wenn diese von einer einzigen anderen Relation abhängt, so dass Entitäten dieser Relation ohne entsprechende Einträge in der anderen Relation nicht existieren könnten.
Folgerung:
Eine schwache Entität besitzt genau einen Fremdschlüssel mit folgenden Eigenschaften:
NOT NULL, ON DELETE CASCADE, ON UPDATE CASCADE Person
1 m
schwache Entität belegt
Arbeitszeit
Realisierung von 1 zu 1 Beziehungen
Meist liegt eine Subtyp-Relation vor, die schwach ist.
Der Primärschlüssel der schwachen Entität ist gleichzeitig Fremdschlüssel!
CREATE TABLE TechPerson
( TPersNr INT PRIMARY KEY
REFERENCES Person
ON DELETE CASCADE ON UPDATE CASCADE, . . .
) ;
Person
1 1
schwache Entität
TechPerson
umfasst auch