Top Up Home HTML2PDF Normalformen

Anomalien


Tabelle mit der Überschrift "Mitarbeiter", die vier Zeilen und drei Spalten enthält. Die Spaltenüberschriften lauten von links nach rechts: "MNR", "Name", "ANR" und "AbtBez". Die erste Zeile enthält die Werte "11", "Meyer", "25", "Buchhaltung". Die zweite Zeile enthält die Werte "12", "Lehmann", "25", "Buchhaltung". Die dritte Zeile enthält die Werte "13", "Schmidt", "26", "Vertrieb". Die vierte Zeile enthält die Werte "14", "Krämer", "27", "Einkauf". Die Tabelle stellt eine Liste von Mitarbeitern dar, mit ihrer Mitarbeiternummer (MNR), Namen, Abteilungsnummer (ANR) und der Bezeichnung ihrer Abteilung (AbtBez).

Update-Anomalie

UPDATE Mitarbeiter SET AbtBez='Finanz' WHERE MNR=12

Insert-Anomalie

INSERT INTO Mitarbeiter VALUES (15, Krause, 27, 'Beschaffung')

Delete-Anomalie

DELETE FROM Mitarbeiter WHERE MNR=13

Funktionale Abhängigkeit

  • Eine Spalte B ist funktional von einer Spalte A abhängig (A → B),
    wenn die Werte von A die Werte von B festlegen
  • A wird auch Determinante genannt

Die Abbildung zeigt eine Tabelle mit der Überschrift "Mitarbeiter". Die Tabelle besteht aus vier Spalten und fünf Zeilen, einschließlich der Kopfzeile. Die Spaltenüberschriften lauten von links nach rechts: "MNR", "Name", "Tätigkeit" und "Gehalt". Unter der Kopfzeile sind vier Zeilen mit Daten aufgeführt: - In der ersten Zeile steht die MNR "101", der Name "Heinrich", die Tätigkeit "Geschäftsführer" und ein Gehalt von "5000". - In der zweiten Zeile steht die MNR "102", der Name "Konrad", die Tätigkeit "Verkäufer" und ein Gehalt von "2300". - In der dritten Zeile steht die MNR "103", der Name "Schulze", die Tätigkeit "Geschäftsführer" und ein Gehalt von "5000". - In der vierten Zeile steht die MNR "104", der Name "Heinrich", die Tätigkeit "Verkäufer" und ein Gehalt von "2300".
  • MNR → Name, Tätigkeit, Gehalt
  • Tätigkeit → Gehalt?

2. Normalform (2. NF)

  • Die 2. NF liegt vor
    • wenn alle Nichtschlüsselspalten
    • vom gesamten Schlüssel abhängen
  • Sobald eine einzige Nichtschlüsselspalte
    • von einem Teil des Schlüssels
    • funktional abhängig ist
    ist die 2. NF verletzt

Die folgende Tabelle verletzt die 2. NF


    Tabelle mit dem Titel "Projekt". Sie enthält fünf Spalten mit den Überschriften "MNR", "PNR", "Stunden", "Name" und "Projektname". Es gibt vier Zeilen mit Daten. Die erste Zeile listet die Werte "11", "10", "20", "Meyer" und "HR Einführung". Die zweite Zeile enthält "12", "22", "30", "Lehmann" und "CRM Einführung". Die dritte Zeile zeigt "13", "10", "25", "Schmidt" und "HR Einführung". Die vierte und letzte Zeile zeigt "11", "22", "20", "Meyer" und "CRM Einführung".
  • MNR → Name
  • PNR → Projektname
  • MNR und PNR sind Teile des Schlüssels

3. Normalform (3. NF)

  • Die 3. NF liegt vor
    • wenn es keine funktionalen Abhängigkeiten
    • zwischen Nichtschlüsselspalten gibt
  • Sobald eine einzige Nichtschlüsselspalte
    • von einer anderen
    • funktional abhängig ist
    ist die 3. NF verletzt

Die folgende Tabelle verletzt die 3. NF


    Tabelle mit der Überschrift "Mitarbeiter", die vier Zeilen und drei Spalten enthält. Die Spaltenüberschriften lauten von links nach rechts: "MNR", "Name", "ANR" und "AbtBez". Die erste Zeile enthält die Werte "11", "Meyer", "25", "Buchhaltung". Die zweite Zeile enthält die Werte "12", "Lehmann", "25", "Buchhaltung". Die dritte Zeile enthält die Werte "13", "Schmidt", "26", "Vertrieb". Die vierte Zeile enthält die Werte "14", "Krämer", "27", "Einkauf". Die Tabelle stellt eine Liste von Mitarbeitern dar, mit ihrer Mitarbeiternummer (MNR), Namen, Abteilungsnummer (ANR) und der Bezeichnung ihrer Abteilung (AbtBez).
  • ANR → AbtBez
  • ANR und AbtBez sind Nichtschlüsselspalten

Wiederholungsgruppen

Mehrfaches Auftreten gleicher Spaltenkombinationen


Die Abbildung zeigt eine Tabelle mit dem Titel "Gebäude". Die Tabelle besteht aus zwei Zeilen und einer Kopfzeile. Die Kopfzeile enthält die Spaltenüberschriften "GNR", "GebBez", "RNR1", "AnzPlätze1", gefolgt von einer Auslassungspunkte-Spalte, "RNR87" und "AnzPlätze87".  "GNR" steht für Gebäudenummer, "GebBez" für Gebäudebezeichnung, "RNR" für Raumnummer und "AnzPlätze" für die Anzahl der Plätze in einem Raum. In der ersten Zeile stehen die Werte "1", "HG", "1", "25", dann Auslassungspunkte, "87" und "40". In der zweiten Zeile stehen die Werte "2", "MG", "1", "250", gefolgt von Auslassungspunkten.

Entspricht logisch einer nicht-atomaren Spalte, d.h. einer Spalte, die eine Tabelle enthält


Die Abbildung zeigt eine Tabelle mit drei Spalten und einer variablen Anzahl von Zeilen, die eine Beziehung zwischen Gebäuden und Räumen darstellt. Die erste Spalte ist überschrieben mit "GNR", die zweite mit "GebBez" und die dritte mit "Räume", welche wiederum in zwei Spalten unterteilt ist: "RNR" und "AnzPlätze". In der ersten Zeile der Tabelle sind die Werte "1", "HG" und darunter in der Spalte "Räume" die Werte "1" und "25" eingetragen. Es folgen Punkte, die andeuten, dass weitere Daten folgen, und dann die Werte "87" und "25". In der nächsten Zeile sind die Werte "2", "MG" und in der Spalte "Räume" die Werte "1" und "250" eingetragen, gefolgt von weiteren Punkten, die wiederum für zusätzliche Daten stehen.

1. Normalform (1. NF)

Alle Spalten müssen atomar sein, d.h. Wiederholungsgruppen sind nicht erlaubt.

Normalisierung

  • Zerlegung von Tabellen
    • in Bestandteile, die sich in 1. NF, 2. NF und 3. NF befinden
    • bei äquivalentem Informationsgehalt
  • Vorgehen
    • Auflösung von Wiederholungsgruppen
    • Extraktion von Determinanten und abhängigen Spalten

Auflösung von Wiederholungsgruppen

  • Erstellung einer neuen Tabelle für die Wiederholungsgruppe
  • Enthält alle Spalten der Wiederholungsgruppe
  • Plus Primärschlüssel der Ausgangstabelle als Fremdschlüssel
  • Weiterer Schlüsselbestandteil

Die Abbildung zeigt eine Tabelle mit dem Titel "Gebäude". Die Tabelle besteht aus zwei Zeilen und einer Kopfzeile. Die Kopfzeile enthält die Spaltenüberschriften "GNR", "GebBez", "RNR1", "AnzPlätze1", gefolgt von einer Auslassungspunkte-Spalte, "RNR87" und "AnzPlätze87".  "GNR" steht für Gebäudenummer, "GebBez" für Gebäudebezeichnung, "RNR" für Raumnummer und "AnzPlätze" für die Anzahl der Plätze in einem Raum. In der ersten Zeile stehen die Werte "1", "HG", "1", "25", dann Auslassungspunkte, "87" und "40". In der zweiten Zeile stehen die Werte "2", "MG", "1", "250", gefolgt von Auslassungspunkten.

wird zu


Das Bild zeigt die Tabelle "Raum" und die Tabelle "Gebäude", die durch einen Pfeil von "Raum" zu "Gebäude" miteinander verbunden sind. Die Tabelle "Gebäude" enthält zwei Spalten: "GNR" und "GebBez". Unter "GNR" sind die Zahlen 1 und 2 aufgeführt, unter "GebBez" die Abkürzungen "HG" und "MG". Die Tabelle "Raum" hat drei Spalten: "GNR", "RNR" und "AnzPlätze". In der "GNR"-Spalte sind die Zahlen 1 und 2 mehrfach aufgelistet. In der "RNR"-Spalte sind die Zahlen 1 und 87 sowie Platzhalter in Form von drei Punkten zu sehen. In der "AnzPlätze"-Spalte stehen die Zahlen 25 und 250 sowie ebenfalls Platzhalter.

Extraktion Determinanten und abhängige Spalten (1)

  • Erstellung einer Tabelle für Determinante und abhängige Spalten
  • Determinante wird Primärschlüssel in neuer Tabelle
  • Löschung abhängige Spalten in alter Tabelle
  • Determinante in alter Tabelle wird Fremdschlüssel auf neue Tabelle

Die Abbildung zeigt die Tabellen "Mitarbeiter" und "Abteilung", die durch einen Pfeil von "Mitarbeiter" zu "Abteilung" miteinander verbunden sind. Die Tabelle "Mitarbeiter" enthält drei Spalten mit den Überschriften "MNR", "Name" und "ANR". Es gibt vier Zeilen mit Daten: Die erste Zeile enthält die Werte "11", "Meyer" und "25"; die zweite Zeile "12", "Lehmann" und "25"; die dritte Zeile "13", "Schmidt" und "26"; und die vierte Zeile "14", "Krämer" und "27". Die Tabelle "Abteilung" enthält zwei Spalten mit den Überschriften "ANR" und "AbtBez". Sie hat drei Zeilen: Die erste Zeile enthält die Werte "25" und "Buchhaltung"; die zweite Zeile "26" und "Vertrieb"; und die dritte Zeile "27" und "Einkauf".

wird zu


Die Abbildung zeigt die Tabellen "Mitarbeiter" und "Abteilung", die durch einen Pfeil von "Mitarbeiter" zu "Abteilung" miteinander verbunden sind. Die Tabelle "Mitarbeiter" enthält drei Spalten mit den Überschriften "MNR", "Name" und "ANR". Es gibt vier Zeilen mit Daten: Die erste Zeile enthält die Werte "11", "Meyer" und "25"; die zweite Zeile "12", "Lehmann" und "25"; die dritte Zeile "13", "Schmidt" und "26"; und die vierte Zeile "14", "Krämer" und "27". Die Tabelle "Abteilung" enthält zwei Spalten mit den Überschriften "ANR" und "AbtBez". Sie hat drei Zeilen: Die erste Zeile enthält die Werte "25" und "Buchhaltung"; die zweite Zeile "26" und "Vertrieb"; und die dritte Zeile "27" und "Einkauf".

Extraktion Determinanten und abhängige Spalten (2)


Tabelle mit dem Titel "Projekt". Sie enthält fünf Spalten mit den Überschriften "MNR", "PNR", "Stunden", "Name" und "Projektname". Es gibt vier Zeilen mit Daten. Die erste Zeile listet die Werte "11", "10", "20", "Meyer" und "HR Einführung". Die zweite Zeile enthält "12", "22", "30", "Lehmann" und "CRM Einführung". Die dritte Zeile zeigt "13", "10", "25", "Schmidt" und "HR Einführung". Die vierte und letzte Zeile zeigt "11", "22", "20", "Meyer" und "CRM Einführung".

wird zu


Die Abbildung zeigt drei Tabellen "MaProjekt", "Mitarbeiter" und "Projekt". Die Tabelle "MaProjekt" enthält die Spalten "MNR", "PNR" und "Stunden" mit den Zeilenwerten "11, 10, 20", "12, 22, 30" und "13, 10, 25" sowie "11, 22, 20". Diese Tabelle zeigt mit jeweils einem Pfeil auf die Tabellen "Mitarbeiter" und "Projekt". Die Tabelle  "Mitarbeiter" hat die Spalten "MNR" und "Name" mit den Zeilenwerten "11, Meyer", "12, Lehmann" und "13, Schmidt". Die Tabelle "Projekt" enthält die Spalten "PNR" und "Projektname" mit den Zeilenwerten "10, HR Einführung" und "22, CRM Einführung".