Anomalien
Update-Anomalie
UPDATE Mitarbeiter SET AbtBez='Finanz' WHERE MNR=12
Insert-Anomalie
INSERT INTO Mitarbeiter VALUES (15, Krause, 27, 'Beschaffung')
Delete-Anomalie
DELETE FROM Mitarbeiter WHERE MNR=13
Funktionale Abhängigkeit
- Eine Spalte B ist funktional von einer Spalte A abhängig (A → B),
wenn die Werte von A die Werte von B festlegen
- A wird auch Determinante genannt
- MNR → Name, Tätigkeit, Gehalt
- Tätigkeit → Gehalt?
2. Normalform (2. NF)
- Die 2. NF liegt vor
- wenn alle Nichtschlüsselspalten
- vom gesamten Schlüssel abhängen
- Sobald eine einzige Nichtschlüsselspalte
- von einem Teil des Schlüssels
- funktional abhängig ist
ist die 2. NF verletzt
Die folgende Tabelle verletzt die 2. NF
- MNR → Name
- PNR → Projektname
- MNR und PNR sind Teile des Schlüssels
3. Normalform (3. NF)
- Die 3. NF liegt vor
- wenn es keine funktionalen Abhängigkeiten
- zwischen Nichtschlüsselspalten gibt
- Sobald eine einzige Nichtschlüsselspalte
- von einer anderen
- funktional abhängig ist
ist die 3. NF verletzt
Die folgende Tabelle verletzt die 3. NF
- ANR → AbtBez
- ANR und AbtBez sind Nichtschlüsselspalten
Wiederholungsgruppen
Mehrfaches Auftreten gleicher Spaltenkombinationen
Entspricht logisch einer nicht-atomaren Spalte, d.h. einer Spalte, die eine
Tabelle enthält
1. Normalform (1. NF)
Alle Spalten müssen atomar sein, d.h. Wiederholungsgruppen sind nicht
erlaubt.
Normalisierung
- Zerlegung von Tabellen
- in Bestandteile, die sich in 1. NF, 2. NF und 3. NF befinden
- bei äquivalentem Informationsgehalt
- Vorgehen
- Auflösung von Wiederholungsgruppen
- Extraktion von Determinanten und abhängigen Spalten
Auflösung von Wiederholungsgruppen
- Erstellung einer neuen Tabelle für die Wiederholungsgruppe
- Enthält alle Spalten der Wiederholungsgruppe
- Plus Primärschlüssel der Ausgangstabelle als Fremdschlüssel
- Weiterer Schlüsselbestandteil
wird zu
Extraktion Determinanten und abhängige Spalten (1)
- Erstellung einer Tabelle für Determinante und abhängige Spalten
- Determinante wird Primärschlüssel in neuer Tabelle
- Löschung abhängige Spalten in alter Tabelle
- Determinante in alter Tabelle wird Fremdschlüssel auf neue Tabelle
wird zu
Extraktion Determinanten und abhängige Spalten (2)
wird zu