This commit is contained in:
David Schirrmeister
2025-06-12 13:22:57 +02:00
parent fc4cb4fd1f
commit 8fc91f469f
14 changed files with 368 additions and 0 deletions

View File

@ -216,3 +216,57 @@
### Abbildung Vererbungshierarchien
> Subtyp erbt mindestens PK des Supertyps
#### Variante 1: Nur Spezialisierungen als Tabellen
![image_891.png](image_891.png)
#### Variante 2: Super- und Subtypen als Tabellen
![image_892.png](image_892.png)
#### Variante 3: Super- und Subtypen als Tabellen mit Redundanz
![image_893.png](image_893.png)
#### Variante 4: Supertyp als Tabelle mit Typ-Attribut
![image_894.png](image_894.png)
### 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