update
This commit is contained in:
@ -216,3 +216,57 @@
|
||||
|
||||
|
||||
### Abbildung Vererbungshierarchien
|
||||
> Subtyp erbt mindestens PK des Supertyps
|
||||
|
||||
#### Variante 1: Nur Spezialisierungen als Tabellen
|
||||

|
||||
|
||||
#### Variante 2: Super- und Subtypen als Tabellen
|
||||

|
||||
|
||||
#### Variante 3: Super- und Subtypen als Tabellen mit Redundanz
|
||||

|
||||
|
||||
#### Variante 4: Supertyp als Tabelle mit Typ-Attribut
|
||||

|
||||
|
||||
### Nicht-Atomare Attribute
|
||||
- Arrays auslagern
|
||||
- neue Klasse
|
||||
- Zeile duplizieren
|
||||
|
||||
## Normalisierung
|
||||
### 1. NF
|
||||
- Alle Attribute sind atomar
|
||||
- keine Arrays, Listen, Objekte
|
||||
|
||||
#### Anomalien
|
||||
##### Einfügeanomalie
|
||||
- Einfügen eines neuen Tupels ist nicht möglich, da kein Wert für ein Attribut vorhanden
|
||||
|
||||
##### Änderungsanomalie
|
||||
- Änderung eines Wertes in einem Tupel erfordert Änderung in mehreren Tupeln
|
||||
- Gefahr der Inkonsistenz
|
||||
|
||||
##### Löschanomalie
|
||||
- Löschen eines Tupels führt zum Verlust von Informationen, die nicht gelöscht werden sollten
|
||||
- z.B. wenn nur ein Attribut gelöscht wird, aber andere Attribute noch vorhanden sind
|
||||
|
||||
### 2. ΝF
|
||||
- ist in 1. NF
|
||||
- Jedes Nicht-Schlüsselattribut ist voll funktional abhängig vom Primärschlüssel
|
||||
- d.h. es gibt keine partiellen Abhängigkeiten
|
||||
- bspw:
|
||||
- Schüler, Klasse, Klassenlehrer (Klassenlehrer schlecht, da er nur von Klasse abhängt)
|
||||
|
||||
### 3. NF
|
||||
- ist in 2. NF
|
||||
- Jedes Nicht-Schlüsselattribut ist transitiv abhängig vom Primärschlüssel
|
||||
- d.h. es gibt keine transitiven Abhängigkeiten
|
||||
- A→B B→C :(
|
||||
|
||||
### Denormalisierung
|
||||
- Normalisierung führt zu vielen Tabellen
|
||||
- kann Performance beeinträchtigen
|
||||
- Nur, falls das tatsächlich ein Problem ist denormalisieren
|
||||
|
||||
|
Reference in New Issue
Block a user