LF08: Lernzettel für die Arbeit am 2024-09-26

September 25, 2024

Datenbanken

Anomalien

  • Einfügeanomalie: Schwierigkeit, neue Daten einzufügen, wenn nicht alle Informationen vorhanden sind.
  • Löschanomalie: Löschen von Daten führt zum Verlust wichtiger Informationen.
  • Änderungsanomalie: Inkonsistenzen durch fehlgeschlagene Aktualisierungen an mehreren Stellen.

Normalformen

Die Normalformen in der Datenbanktheorie sind Regeln, um Redundanzen und Anomalien in relationalen Datenbanken zu vermeiden. Es gibt mehrere Normalformen, aber die ersten drei (1. Normalform, 2. Normalform und 3. Normalform) sind die wichtigsten und am häufigsten verwendeten. Ich erkläre sie dir anhand von Beispielen:

1. Normalform (1NF) – Atomare Werte

Eine Tabelle befindet sich in der 1. Normalform, wenn:

  1. Alle Werte atomar sind, d. h., es gibt keine wiederholten Gruppen oder mehrere Werte in einem einzelnen Feld.
  2. Jedes Attribut nur einen Wert enthält.

Beispiel:

Nicht in 1NF:

KundennummerKundennameTelefon
1Max Müller0123-456, 0123-789
2Anna Schmitz0987-654

Das Feld “Telefon” enthält bei “Max Müller” zwei Telefonnummern, was gegen die 1NF verstößt.

In 1NF:

KundennummerKundennameTelefon
1Max Müller0123-456
1Max Müller0123-789
2Anna Schmitz0987-654

Nun hat jede Zeile nur einen Telefonwert.

2. Normalform (2NF) – Keine partiellen Abhängigkeiten

Eine Tabelle ist in der 2. Normalform, wenn:

  1. Sie in 1NF ist.
  2. Jedes Nicht-Schlüssel-Attribut vollständig vom gesamten Primärschlüssel abhängt.

Beispiel:

Angenommen, du hast eine Tabelle mit einem zusammengesetzten Primärschlüssel (z. B. Kundennummer + Produktnummer):

Nicht in 2NF:

KundennummerProduktnummerKundennameProduktname
1101Max MüllerLaptop
2102Anna SchmitzHandy
1103Max MüllerTablet

In diesem Beispiel hängt der “Kundenname” nur von der Kundennummer ab, während der “Produktname” nur von der Produktnummer abhängt. Das führt zu Redundanzen und Verletzungen der 2NF.

In 2NF: Man teilt die Tabelle in zwei Tabellen auf, um die Abhängigkeiten zu trennen:

Kundentabelle:

KundennummerKundenname
1Max Müller
2Anna Schmitz

Produktbestellung:

KundennummerProduktnummerProduktname
1101Laptop
2102Handy
1103Tablet

Jetzt hängt der Kundenname vollständig von der Kundennummer ab und der Produktname von der Produktnummer. Somit ist die 2NF erfüllt.

3. Normalform (3NF) – Keine transitiven Abhängigkeiten

Eine Tabelle ist in der 3. Normalform, wenn:

  1. Sie in 2NF ist.
  2. Es keine transitiven Abhängigkeiten gibt, d. h., Nicht-Schlüssel-Attribute hängen nicht voneinander ab, sondern nur vom Primärschlüssel.

Beispiel:

Nicht in 3NF:

KundennummerKundennameStadtPLZ
1Max MüllerBerlin10115
2Anna SchmitzHamburg20095
3Peter BeckerBerlin10115

In diesem Fall hängt “PLZ” nicht direkt von der Kundennummer ab, sondern von der Stadt. Es gibt also eine transitive Abhängigkeit: Kundennummer → Stadt → PLZ.

In 3NF: Du trennst die Tabelle in zwei Tabellen:

Kundentabelle:

KundennummerKundennameStadt
1Max MüllerBerlin
2Anna SchmitzHamburg
3Peter BeckerBerlin

Stadttabelle:

StadtPLZ
Berlin10115
Hamburg20095

Nun gibt es keine transitive Abhängigkeit mehr. Die PLZ ist nur noch von der Stadt abhängig und nicht von der Kundennummer.

Zusammenfassung:

  • 1NF: Atomare Werte, keine mehrfachen Werte in einer Zelle.
  • 2NF: Keine partiellen Abhängigkeiten, jedes Nicht-Schlüssel-Attribut hängt vollständig vom Primärschlüssel ab.
  • 3NF: Keine transitiven Abhängigkeiten, jedes Nicht-Schlüssel-Attribut hängt nur vom Primärschlüssel ab, nicht von anderen Nicht-Schlüssel-Attributen.

Mit diesen Normalformen kannst du deine Datenbank effizienter gestalten und Datenanomalien vermeiden.