class: center, middle, inverse # Normalisierung von relationalen Datenbanken --- # Agenda * 1.Normalform * 2.Normalform * 3.Normalform * Fazit --- class: middle, center, inverse ## 1.Normalform (1NF) --- .left-column[ ## 1NF ### - Tabelle ] .right-column[ Musikverwaltung
CD_ID
Album
Gruendung
Titelliste
1
Master of Puppets
1991
Song1, Song2, Song3
2
Best of Foo
2001
SongA, SongB, SongC
3
Foofighters
2002
Song", Song§, Song%
] --- .left-column[ ## 1NF ### - Tabelle ### - Regel ] .right-column[ * Jedes Attribut muss atomar sein (in einer Zelle immer nur ein Datensatz) * Titelliste ist nicht atomar (1NF) * Titelliste aufteilen in eigene Tabelle ] --- .left-column[ ## 1NF ### - Tabelle ] .right-column[
CD_ID
Album
Gruendung
Song_Titel
Titel_ID
] --- class: middle, center, inverse ## 2.Normalform (2NF) --- .left-column[ ## Probleme ### - DevOps ] .right-column[ ] --- class: middle, center, inverse ## 3.Normalform (3NF) --- .left-column[ ## 3NF ### Tabellen ] .right-column[ CD PK(CD_ID):
id
title
artist_id
4711
I'm cool
311
4712
Halloooo
312
4713
Blafoo
313
Artist PK(artist_ID):
id
foundaidon
name
311
1999
Scooter
312
2001
Trailerpark
313
2002
Pink Floyd
] --- .left-column[ ## Lösungen ### - Anforderung ] .right-column[ * Ausgangszustand muss bekannt sein * Wiederaufnahme partieller Änderungen * Rollback * Fire and forget ] --- .footnote[© Tim Meusel]