Abschnittsübersicht

    • In den bisherigen Stunden haben wir Datenbanken analysiert und aus ihnen Daten abgefragt. Wir wollen nun einen Schritt weiter gehen und selbst Datenbanken entwickeln. Liegt bereits eine Datensammlung vor, die erweitert oder angepasst werden soll, bietet sich der Prozess der Normalisierung an.  Dabei werden die vorhandenen Strukturen analysiert und ggf. so umgestellt, das eine wohlstrukturierte und redundanzarme Datenbank entsteht. Der Prozess der Normalisierung geht auf die Arbeit von Edgar F. Codd zurück.

      Probleme in nicht normalisierten Tabellen

      Schauen wir uns aber zunächst an einem Beispiel an, welche Probleme in Datensammlungen auftreten können, die nicht normalisiert wurden.

      Eine Schule verwaltet Lernangebote in der folgenden Relation:

      SNr  Name Vorname  Klasse  Klassenlehrer  LANr  Beschreibung Stunden 
      1 Jürgens Ina 11a Lempel 2 Tanz 12
      2 Schmidt Tom 12a Breier 2, 3 Tanz, Chor 22, 8
      3 Jäger Franz 11a Lempel 1, 2, 3 Elektronik, Tanz, Chor 15, 12, 2
      4 Olsen Ina 11b Sommer 2 Tanz 5
      5 Jürgens Paula 12a Breier 4 Töpfern 23

      Welche Auswirkungen auf die Datenintegrität (Widerspruchsfreiheit) hat ...

      1. das Einfügen des neuen Kurses "3D-Druck":
        → Dies ist derzeit nicht möglich, da SNr Schlüssel ist. Der Kurs muss also durch einen Schüler belegt sein, um ihn einzufügen. 
      2. der Abgang/das Löschen der Schülerin Nr. 5 Paula Jürgens:
        → Dies hat zur Folge, dass neben den Schülerdaten auch die Daten des Töpferkurses gelöscht werden. 
      3. das Ändern des Namens wegen Heirat der Lehrerin Lempel zu Lempel-Schmidt:
        → Dies muss in der Tabelle mehrfach geändert werden. Dabei besteht die Gefahr der Dateninkonsistenz.

      Das Ändern, Einfügen und Löschen von Daten kann also zu Problemen und Fehlern führen. Man bezeichnet dies als Änderungs- Einfüge-, Löschanomalie. Außerdem sind in der Tabelle Daten unnötigerweise mehrfach gespeichert. Die geforderte Redunandzarmut ist nicht gegeben.

    • Prozess der Normalisierung

      Um Redundanzen zu minimieren und die Datenintegrität zu erhalten, werden die Relationen schrittweise in die sog. 3. Normalform überführt. In unserem Fall liegt nur die Relation Lernangebotsübersicht vor:

      SNr  Name Vorname  Klasse  Klassenlehrer  LANr Beschreibung Stunden 
      1 Jürgens Ina 11a Lempel 2 Tanz 12
      2 Schmidt  Tom 12a Breier 2, 3 Tanz, Chor 22, 8
      3 Jäger Franz 11a Lempel 1, 2, 3 Elektronik, Tanz, Chor 15, 12, 2
      4 Olsen Ina 11b Sommer 2 Tanz 5
      5 Jürgens Paula 12a Breier 4 Töpfern 23
      1. Normalform

      Eine Relation befindet sich in der ersten Normalform, falls alle Attribute atomaren Werte aufweisen.

      Zur Bildung der ersten Normalform müssen die nicht atomaren Attributwerte durch Einfügen zusätzlicher Zeilen, Spalten oder neuer Relationen aufgeteilt werden. 

      Relation Lernangebotsübersicht kann durch Hinzufügen von Zeilen (oder durch Auslagern der nichtatomaren Attribute mit dem vorhandenen Schlüssel) in eine neue Relation in die erste Normalform überführt werden:

      SNr  Name Vorname  Klasse  Klassenlehrer  LANr  Beschreibung Stunden 
      1 Jürgens Ina 11a Lempel 2 Tanz 12
      2 Schmidt  Tom 12a Breier 2 Tanz 22
      2 Schmid Tom 12a Breier 3 Chor 8
      3 Jäger Franz 11a Lempel 1 Elektronik 15
      3 Jäger Franz 11a Lempel 2 Tanz 12
      3 Jäger Franz 11a Lempel 3 Chor 2
      4 Olsen Ina 11b Sommer 2 Tanz 5
      5 Jürgens Paula 12a Breier 4 Töpfern 23


      Beobachtung: Die Redundanz nimmt zu. Der bisherige Primärschlüssel verliert seine Eindeutigkeit. 

      2. Normalform

      Eine Relation befindet sich in der zweiten Normalform, falls 

        1. die Relation in der ersten Normalform ist und
        2. jedes Nichtschlüsselattribut vom Primärschlüssel voll funktional abhängig ist.

      Regel zum Prüfen der zweiten Bedingung: 
      Wenn Nichtschlüsselattribute von einem Teil des Schlüssels eindeutig identifiziert werden, dann liegt keine 2. Normalform vor!

      Schrittfolge zur Herstellung der zweiten Normalform: 

        1. Festlegen/Feststellen des Primärschlüssel
          → Falls dieser nur aus einem Attribut besteht, so liegt 2. NF vor. 
        2. Untersuchen, ob aus Teilschlüsselattributen bereits weitere Attribute folgen.
          → Falls dies nicht der Fall ist, so liegt die 2. NF vor. 
          → Falls dies der Fall ist, so Schritt 3.
        3. Bilden einer neuen Relation. Diese enthält das Teilschlüsselattribut und alle von ihm abhängigen Nichtschlüsselattribute. Das Teilschlüsselattribut wird in der neuen Relation der Primärschlüssel.
        4. Löschen der ausgelagerten Nichtschlüsselattribute in der Ausgangsrelation.
        5. Wiederholen des Vorgangs ab Schritt 2, bis alle Nichtschlüsselattribute vom gesamten Schlüssel funktional abhängig sind.

      In der Relation Lernangebotsübersicht ist die Attributkombination SNr und LANr der neue Primärschlüssel. Aus dem Teilschlüssel LANr lässt sich bereits eindeutig auf das Attribut "Beschreibung" schließen. Aus SNr lässt sich eindeutig auf die Attribute "Name", "Vorname", "Klasse" und" Klassenlehrer" schließen. Somit sind zwei neue Relationsschemen Lernangebot und Schüler zu erzeugen und das verbleibende Schema Lernangebotsübersicht so zu überarbeiten, dass die Attribute "Beschreibung", "Name", "Vorname", "Klasse" und "Klassenlehrer" gelöscht werden.

      Relation Lernangebot Relation Schüler Relation Lernangebotsübersicht
      LANr Beschreibung 
      1 Elektronik
      2 Tanz
      3 Chor
      4 Töpfern
      SNr  Name  Vorname  Klasse  Klassenlehrer 
      1 Jürgens Ina 11a Lempel
      2 Schmidt Tom 12a Breier
      3 Jäger Franz 11a Lempel
      4 Olsen Ina 11b Sommer
      5 Jürgens Paula 12a Breier
      ↑Nr ↑LANr  Stunden 
      1 2 12
      2 2 22
      2 3 8
      3 1 15
      3 2 12
      3 3 2
      4 2 5
      5 4 23
      3. Normalform

      Eine Relation befindet sich in der dritten Normalform, falls

        1. die Relation in der zweiten Normalform ist und
        2. zwischen den Nichtschlüsselattributen keine Abhängigkeiten existieren, d. h. aus keinem Nichtschlüsselattribut folgt ein anderes Nichtschlüsselattribut (Fachbegriff: keine transitiven Abhängigkeiten) 

      Regel zum Prüfen der zweiten Bedingung:
      Wenn aus einem Nichtschlüsselattribut ein anderes Nichtschlüsselattribut folgt, dann liegt keine 3. Normalform vor! 

        Schrittfolge zur Herstellung der dritten Normalform:

          1. Untersuchung, ob aus Nichtschlüsselattributen andere Nichtschlüsselattribute folgen. 
            → Falls dies nicht der Fall ist, so liegt bereits die 3. NF vor.
            → Falls dies der Fall ist, so Schritt 3.
          2. Bilden einer neuen Relation. Diese enthält das Nichtschlüsselattribut und die von ihm abhängigen Attribute.  Das Nichtschlüsselattribut wird in der neuen Relation der Primärschlüssel.
          3. Löschen der ausgelagerten Nichtschlüsselattribute mit Ausnahme des Attributes, das in der neuen Relation Primärschlüssel ist.
          4. Wiederholen des Vorgangs ab Schritt 1, bis keine Abhängigkeiten mehr bestehen.

        In den Relation Lernangebotsübersicht und Lernangebot gibt es nur ein Nichtschlüsselattribut. Daher liegen die Tabellen in der 3. NF vor. In der Relation Schüler folgt aus dem Nichtschlüsselattribut "Klasse" jedoch der "Klassenlehrer". Somit ist eine neue Relation Klassenübersicht mit den Attributen "Klasse" (Primärschlüssel) und "Klassenlehrer" zu erzeugen und das verbleibende Schema Schüler so zu überarbeiten, dass das Attribut "Klassenlehrer" gelöscht wird.

        Relation Lernangebot Relation Schüler Relation Lernangebotsübersicht Relation Klassenübersicht
        LANr Beschreibung 
        1 Elektronik
        2 Tanz
        3 Chor
        4 Töpfern
        SNr Name  Vorname  ↑Klasse 
        1 Jürgens Ina 11a
        2 Schmidt Tom 12a
        3 Jäger Franz 11a
        4 Olsen Ina 11b
        5 Jürgens Paula 12a
        ↑SNr ↑LANr  Stunden 
        1 2 12
        2 2 22
        2 3 8
        3 1 15
        3 2 12
        3 3 2
        4 2 5
        5 4 23
        Klasse Klassenlehrer
        11a Lempel
        11b Sommer
        12a Breier
      • 01 AB Normalisierung Lösungen Datei
        Nicht verfügbar, außer: Sie sind in einer Gruppe
      • 01 Normalisierungsablauf Lösung Datei
        Nicht verfügbar, außer: Sie sind in einer Gruppe