Praktisch orientierte Einführung

in das Normalisieren von Domänen

 

 

 

Bert Schöneich

 

 

 

 

INSTITUT FÜR HOCHENERGIEPHYSIK

AKADEMIE DER WISSENSCHAFTEN DER DDR

BERLIN – ZEUTHEN – DDR

 

 

1985

 

Inhalt:

  1. Einleitung *

    1.1 Vorbemerkung *

    1.2 Begriffsbestimmung *

    1.2.1 Datenbanksystem (DBS) *

    1.2.2 Datenbank (DB) *

    1.2.3 Datenbankmanagementsystem *

    1.2.4 Domäne *

    1.2.5 Record *

    1.2.6 Feld *

    1.2.7 File *

  2. Der Aufbau globaler Daten *

    2.1 Lokale Daten *

    2.2 Personenunabhängige Daten *

    2.3 Globale Daten *

  3. Normalisieren von Domänen *

    3.1 Was ist Normalisieren? *

    3.2 Vorstellung des Beispiels *

    3.3 Zweck des Normalisierens *

    3.4 Erste Normalform nach Codd *

    3.5 Zweite Normalform nach Codd *

    3.6 Dritte Normalform nach Codd *

    3.7 Vierte und fünfte Normalform *

    3.8 Das normalisierte Beispiel *

  4. Vorteile von normalisierten Domänen *

  5. Literaturnachweis *

     

     

  1. Einleitung

    1. Vorbemerkung
    2. In dieser Veröffentlichung wird durchgehend die beim Datenbankmanagementsystem "DATATRIEVE" verwendete Nomenklatur benutzt. Das führt zwangsläufig zu einigen Unterschieden zu den allgemein üblichen und in der Literatur verwendeten Bezeichnungen. Besonders trifft das den Begriff "DOMÄNE", statt wie allgemein üblich, "RELATION". "DOMÄNE" wird in der Literatur in einem anderen Zusammenhang verwendet.

      Ziel dieser Veröffentlichung ist es, dem Nutzer des DBMS "DATATRIEVE" einen für seine Anwendung notwendigen Auszug aus der Theorie von Datenbanken zu geben, um ihn in die Lage zu versetzen, möglichst fehlerfreie Datenstrukturen aufzubauen und daraus folgend mit diesen optimal arbeiten zu können.

    3. Begriffsbestimmung
    4. Die folgenden Bemerkungen sollen dazu dienen, "DATATRIEVE" – Unkundigen mit den verwendeten Begriffen vertraut zu machen.

      1. Datenbanksystem (DBS)
      2. Ein DBS ist eine umfassende Anwendung zur Lösung von Datenverwaltungsaufgaben und setzt sich aus zwei Teilen, der Datenbank und dem Datenbankmanagementsystem zusammen.

        Beispiel:

        Die Organisation einer Konferenz

      3. Datenbank (DB)
      4. Eine Datenbank sind die für die Verwaltung durch ein DBS aufbereiteten Daten. Im DBMS "DATATRIEVE" sind diese in Datenfiles gespeichert.

      5. Datenbankmanagementsystem
      6. Ein DBMS ist der Komplex notwendiger Prozeduren zur Handhabung einer Datenbank, wie z.B. das Record – Management – System.

      7. Domäne
      8. Eine Domäne ist eine logisch zusammengehörige Menge von Datensätzen gleicher Struktur.

        Beispiel:

        Alle Dateien der Teilnehmer der Konferenz werden mit einer Domäne verwaltet.

      9. Record
      10. Ein Record besteht aus Feldern, die als eine Einheit betrachtet werden. Er definiert die Struktur der Daten einer Domäne.

        Beispiel:

        Record "TEILNEHMER" mit Aufgaben zu einer Person (Name, Vorname und Geburtstag)

      11. Feld
      12. Ein Feld ist ein nicht untergliedertes Datenteil

        Beispiel:

        Name, Vorname und Geburtstag sind einzelne Felder im Record "Teilnehmer"

      13. File
      14. Ein File ist eine in einem logischen Zusammenhang stehende Gruppe von Daten auf einem externen Datenträger.

        Beispiel:

        Die Daten der Teilnehmer werden in einem Datenfile auf einer Magnetplatte gespeichert

     

  2. Der Aufbau globaler Daten

    Ein erstes Problem bei der zentralen Speicherung und Verarbeitung von Daten mit Hilfe eines DBMS ist der dazu notwendige Übergang von lokalen zu globalen Daten. Mit dem Begriff "lokal" und "global" wird der Bedeutungsumfang der Daten gekennzeichnet. Der Unterschied zwischen lokalen zu globalen Daten wird im Folgenden anhand einer konkreten Problemstellung (Konferenzorganisation) erläutert.

    1. Lokale Daten
    2. Bei der Sammlung und Bearbeitung von Daten zur Lösung eines organisatorischen Problems führen Personen Handlungen mit diesen Daten aus, um ein bestimmtes Ergebnis zu erzielen. Die für diese Handlungen benötigten Daten wurden von den bestimmten Personen zu dem konkreten Zweck gesammelt, sie sind damit personen- und zweckabhängig, sie besitzen eine "lokale Bedeutung".

      Beispiel:

      Konferenzorganisation:
      • Person A sammelt Daten (Zeiten, Themen, Personen), um den Veranstaltungsplan zu erstellen.
      • Person B sammelt Daten (Zeiten, Orte, Personen), um die Hörsaalbelegung zu organisieren.
      • Person C sammelt Daten (Personen, Anschriften), um eine Teilnehmerliste zusammenzustellen.
      • Person D sammelt Daten (Personen, Titel), für die Liste der Veröffentlichungen.

    3. Personenunabhängige Daten
    4. In dem ersten Schritt wird zunächst die Bindung der Daten an eine bestimmte Person, die Personenabhängigkeit beseitigt. Jetzt wird ein bestimmter Sachverhalt gespeichert, um das gewünschte Resultat zu erzielen, unabhängig von der Person, die die dazu notwendigen Handlungen ausführt. Die Daten sind nur noch zweckgebunden. Diese Stufe ist bei einer nicht durch ein DBS erfolgenden Organisation meist erreicht.

      Beispiel (ausgehend vom vorherigem Beispiel):

      • Daten für den Konferenzablauf (Zeiten, Orte, Themen, Personen) (vormals A und B)
      • Daten für die Konferenzunterlagen (Personen, Anschriften, Titel) (vormals Person C und D)

    5. Globale Daten
    6. Als zweiter Schritt wird die Zweckabhängigkeit der Daten beseitigt. Es wird ein bestimmter Sachverhalt gespeichert. Unabhängig von der Bedeutung, die dieser Sachverhalt für das Erreichen oder Nichterreichen eines konkreten Zweckes hat. Mit diesen Daten kann in verschiedenen Situationen, die sich auch erst nach der Speicherung der Daten ergeben können, gehandelt werden. Auf dieser letzten Stufe sind die Daten sowohl zweck- als auch personenunabhängig, zusammengefaßt gesagt situationsunabhängig (datenneutral). Sie besitzen eine globale Bedeutung.

      Beispiel:

      Jetzt werden alle zu verwaltende Daten als Konferenzdaten gesammelt (Person, Orte, Zeiten, Anschriften, Titel, u.a.). Die gewünschte Auswertung der Daten für die verschiedenen Zwecke erfolgt später und unabhängig davon.

      Wichtig für DTR – Nutzer:

      DTR als DBMS für Kleinrechner ermöglicht die Anlage von globalen Daten und deren Bearbeitung nur in eingeschränktem Umfang. Ursache hierfür ist vor allem die beschränkte Größe des internen DTR – Pools (SC.02).

     

  3. Normalisieren von Domänen

    1. Was ist Normalisieren?
    2. Definition:

      Das Normalisieren von Domänen ist eine analytische Methode, um ausgehend von der realen Welt durch immer weitergehendes Zerlegen eine formale Struktur als Modell dieser Wirklichkeit zu finden.

      Eine Konferenz ist der Teil der realen Welt der betrachtet werden soll. Zu ihrer Organisation ist eine Menge der dafür anfallenden Daten so zu unterteilen, d.h. formell zu strukturieren, daß sich ein fehlerfreies Modell dieser Konferenz ergibt. Unter Verwendung dieses Modells wird anschließend die Organisation der Konferenz mittels eines DBMS unterstützt.

    3. Vorstellung des Beispiels
    4. Zur Illustration der folgenden Ausführungen wird das oben bereits erwähnte Beispiel einer Konferenzorganisation gewählt. Hier wird nur ein Teil der gesamten Organisation betrachtet, der aber durchaus real ist (SC.01).

      Gegeben sei eine Tabelle der Veranstaltungen mit den dazugehörigen Veranstaltunsleitern und –sekretären und deren Hotelsunterbringung. Diese Tabelle hat zunächst folgendes Aussehen:

      VNU: Veranstaltungsnummer, Schlüsselfeld
      PNU: Personennummer, Schlüsselfeld
      HAN: Hotel - Anschrift, beinhaltet u.a. Anschriftenkopf, Ort, Straße

    5. Zweck des Normalisierens
    6. Der Aufbau einer Datenbank in der oben angeführten Form führt zu folgenden Problemen, die die Arbeit mit ihr erschweren, wenn nicht sogar unmöglich machen:

      • Durch Mehrfachspeicherung derselben Daten wird sehr viel Platz benötigt. Allein die vollständige Adresse des Hotels "Leipzig" wird fünf mal gespeichert.
      • Diese Mehrfachspeicherung führt zu Problemen bei Arbeiten an den Daten, wie Speichern, Löschen und Ändern. Soll der Name "Meier" z.B. in"Meyer" geändert werden, so muß das in allen drei Eintragungen für "Meier" erfolgen. Diese Forderung scheint in dem Beispiel trivial lösbar. Bei einer umfangreichen und komplexen realen Anwendung ist das aber nicht, oder nur mit hohem Aufwand abzusichern.
      • Es bestehen der Realität widersprechende Zusammenhänge in der Datensammlung. Es ist logisch und organisatorisch zumindest bedenklich, die Anschrift eines Hotels durch den Titel einer Veranstaltung zu erfahren, deren Leader in diesem Hotel wohnt.
      • Speziell für die Arbeit auf Kleinrechnern kommt hinzu, daß die Verwaltung derart langer Records nur eingeschränkt, wenn nicht ganz unmöglich ist (SC.02).

      Zweck des Normalisierens ist es, diese Probleme durch folgende Punkte zu vermeiden:

      • Elimination von Redundanz (Doppelspeicherung von Daten)
      • Elimination von Anomalien im Zusammenhang mit Speicheroperationen (Speichern, Löschen. Ändern von Daten)
      • Das eindeutige Festhalten realitätskonformer Sachverhalte, d.h. das Ermitteln von Domänen, die keine Möglichkeit bieten, realitätskonforme, funtionale Abhängigkeiten zu verletzen. (Ist bestimmend für die Richtigkeit einer Datenbank).

    7. Erste Normalform nach Codd
    8. In dem Beispiel enthält jeder Datensatz "Veranstaltung" eine mehrstellige Menge "Funktion" mit dem Namen und dem Hotel des Funktionsträgers. Innerhalb des DBMS DTR sind diese Menge durch die Anwendung der "OCCURS" - Klausel aufbaubar. Beim Normalisieren besteht als erstes die Forderung nach Beseitigung dieser mehrstelligen Mengen, um die 1. Normalform zu erreichen.


      Definition: Eine Domäne ist in der ersten Normalform, wenn alle ihre Felder elemtar (atomar) sind.

      D.h., diese Domäne enthält keine mehrstelligen Mengen als Felder (Felder, die wieder Domänen sein können; in DTR: enthält keine Hierarchien, d.h. keine OCCURS - Klauseln).

      Vorgehen:

      1. Starte mit der übergeordneten Domäne.
      2. Nimm ihr Primärschlüselfeld und erweitere damit jede unmittelbar untergeordnete Domäne (Sohndomäne) zu einer Selbständigen Domäne.
      3. Streiche alle untergeordneten Domänen aus der Vaterdomäne.
      4. Wende 1-3 solange auf die Sohndomäne an, bis alle untergeordneten Domänen verschwunden sind.

      Erläuterung:

      gegeben sei:

      Domäne D mit Record R (S. F1, F2, H(U1, U2))

      Feld Art
      S: Schlüsselfeld
      F1, 2: normale Felder
      H: Hierarchie mit den Feldern U1, U2

      Zustand in der ersten Normalform:

      Domäne Record
      D1 R1 (S, F1, F2)
      D2 R2 (S, U1, U2)

      Achtung:

      Beim Bilden von Sohndomänen müssen für diese neue Namen gefunden werden die inhaltlich zur entstehenden Domäne passen.

      Beispiel in der ersten Normalform:

      1. Domäne: "Veranstaltung"
      2. Domäne: "Funktion"

      Bei der Verwendung mehrstelliger Mengen innerhalb eines Records ergibt sich das Problem des Neueintragens von Elementen dieser Mengen (z.B. 2. Secretary in Veranstaltung 1). Trotz dieser Angabe eines maximal möglichen Mengenumfangs, kann nie gesichert werden, daß später nicht doch die Eintragung eines Elements notwendig ist, mit dem diese Grenze überschritten wird. Sind die Domänen in der ersten Normalform, treten diese Probleme nicht mehr auf.

      Durch Bildung einer Sicht auf die Domäne Veranstaltung und die Domäne Funktion und Verkopplung beider durch das Schlüsselfeld VNU ist die Erstellung der Ausgangstabelle wieder möglich.

    9. Zweite Normalform nach Codd
    10. Nach dem Erreichen der ersten Normalform sind die Redundanz, Speicher- und funktionalen Probleme noch nicht beseitigt. (Die Domäne "Veranstaltung" ist, wie später ersichtlich, bereits in der zweiten und dritten Normalform und wird nicht mehr betrachtet) Deshalb ist es notwendig, weiter zu normalisieren. Dazu werden die funktionalen Abhängigkeiten der Daten- von den Schlüsselfeldern in der Domäne "Funktion" betrachtet.

      Das Feld "Funktion" hängt sowohl von der Veranstaltung (VNU), als auch von dem Funktionsträger (PNU) ab.
      Die Felder Name, Hotel und HAN hängen dagegen nur vom Funktionsträger (PNU) ab, nicht jedoch von der Veranstaltung (VNU), in der diese Funktion ausgeübt wird.

      Diese Unterscheidung ist bei der Erstellung der zweiten Normalform wichtig.

      Definition:

      Eine Domäne ist in der zweiten Normalform, wenn sie in der ersten Normalform ist und jedes Nichtschlüsselfeld voll funktional abhängig ist von allen Schlüsselfeldern.

      D.h. es darf keine Teilabhängigkeit der Art geben, daß ein Feld (oder mehrere) nur von einem Teil der Schlüsselfelder abhängt und keine Abhängigkeit zum restlichen Teil der Schlüsselfelder hat.

      Vorgehen:

      Gegeben sei eine Domäne, in der ein Teil der Felder nur aus einem Teil der Schlüssel abhängt.

      Spalte diese Domäne in zwei Sohndomänen auf, so daß:

      • eine Sohndomäne aus allen Schlüsselfeldern und den von allen Schlüsselfeldern abhängigen Feldern besteht.
      • eine Sohndomäne aus einem Teil der Schlüsselfelder und den nur von diesem Teil abhängigen Feldern besteht.

      Erläuterung:

      gegeben sei:

      Domäne D mit Record R (S1, S2, F1, F2, F3, F4, F5)

      Sn: Schlüsselfelder
      Fn: normale Felder mit den funktionalen Abhängigkeiten:

      Feld funktional abhängig von
      F1,2 S1, S2
      F3 S1
      F4,5 S2

      Zustand in der zweiten Normalform:

      Domäne Record
      D1 R1 (S1, S2, F1, F2)
      D2 R2 (S1, F3)
      D3 R3 (S2, F4, F5)

      Beispiel in der zweiten Normalform:

      1. Domäne: "Funktion" (neu)
      2. Domäne: "Teilnehmer"

      Deutlich zu sehen ist die Verringerung von Doppelspeicherungen und damit von unnötiger Redundanz und Speicheranomalien. Gleichzeitig hat sich auch die logische Struktur der DB verbessert. Alle Teilnehmer werden jetzt in einer Domäne gespeichert, unabhängig davon, ob sie während der Konferenz eine Funktion ausüben oder nicht. Dieser Teilbestand ist nur aus der dafür vorgesehenen Domäne "Funktion" zu erfahren.

    11. Dritte Normalform nach Codd
    12. Nach dem Erreichen der zweiten Normalform sind jedoch nicht alle Redundanzprobleme und Speicheranomalien beseitigt. Z.B. wird die Anschrift der Hotels bei jedem Teilnehmer und damit unnötig oft gespeichert (Hotel "Leipzig"). Außerdem besteht das logische Problem, daß auf die Anschrift eines Hotels über die Nummer eines in diesem Hotel wohnenden Teilnehmer zugegriffen werden muß.

      Die Anschrift ist damit über den Hotelnamen transitiv abhängig von dem Schlüsselfeld (PNU).

      Um zu Domänen in der dritten Normalform zu gelangen, muß diese Transitivität beseitigt werden.

      Definition

      Eine Domäne ist in der dritten Normalform, wenn sie sich in der zweiten Normalform befindet und jedes Nichtschlüsselelementarfeld nicht transitiv abhängig ist von jedem Schlüsselfeld.

      D.h. es besteht keine wechselseitige Abhängigkeit von Nichtschlüsselelementarfeldern untereinander.
      Da es, wie unten erläutert wird, zwei verschiedene Wege gibt, diese Transitivität zu beseitigen, ist die folgende Definition ebenfalls wichtig.

      Definition

      Eine Anordnung ist in der dritten Normalform dann optimal, wenn sie ein Minimum an Domänen enthält und in keiner der Domänen Felder vorkommen, die in der zweiten Normalform strikt transitiv abhängig sind.

      Vorgehen:

      Spalte die Domäne so in zwei Sohndomänen auf, daß es zwischen den dann jeweils enthaltenen Nichtschlüsselelementarfeldern keine transitive Abhängigkeit mehr gibt und in keiner der Sohndomänen Felder vorkommen, die in der Vaterdomäne transitiv abhängig waren.

      Erläuterung:

      gegeben sei:

      Domäne D mit Record R (S, F1, F2)

      Feld Art
      S: Schlüsselfeld
      F1, 2: normale Felder

      und

      Feld abhängig
      F1 = F1(S)
      F2 = F2 (F1) = F2 (F1 (S))

      Transitivität: F2 über F1 von S abhängig

      Zustand in der dritten Normalform:

      Domäne Record
      D1 R1 (S, F1)
      D2 R2 (F1, F2)

      F1 ist jetzt Schlüsselfeld

      Möglich, aber durch das Optimalitätskriterium verboten wäre auch:

      Domäne Record
      D1 R1 (S, F1)
      D2 R2 (S, F2)

      (F2 hing in D2 transitiv von S ab)

      Beispiel in der 3. Normalform:

      Die Domäne "Funktion" aus der 2. Normalform ist bereits in der dritten Normalform. Betrachtet wird nur die Domäne "Teilnehmer" der 2. Normalform.

      1. Domäne "Teilnehmer" (neu):
      2. Domäne "Hotel":
      3. Die Domäne "Hotel" sieht bei der Verletzung des Optimalitätskriteriums so aus:

      4. Domäne "Hotel 2":

      Diese Anordnung ist, obwohl auch hier die dritte Normalform erreicht wurde, logisch unsinnig. Die Hotelanschrift wäre über die PNU eines in dem Hotel wohnenden Teilnehmers zu erfahren. Außerdem treten noch Mehrfachspeicherungen (Anschrift des Hotels "Leipzig") auf.

    13. Vierte und fünfte Normalform
    14. Auf diese Normalform nach Fagin wird nicht eingegangen. Sie scheinen für die bearbeiteten Probleme nicht notwendig zu sein und ihre Bedeutung ist in der Literatur zumindest umstritten (WE.01).

    15. Das normalisierte Beispiel
    16. Zusammengefaßt wird hier das Konferenzbeispiel in der normalisierten Anordnung gezeigt.

      1. Domäne "Veranstaltung":
      2. Domäne "Funktion":
      3. Domäne "Teilnehmer"
      4. Domäne "Hotel":

     

  4. Vorteile von normalisierten Domänen

    Die Verwendung von normalisierten Domänen zum Aufbau einer DB bringt folgende Vorteile:

     

  5. Literaturnachweis
(CO.01) Codd, E.F.: A relational model for large shared data banks
in: Comm. ACH. Vol.13 (1970), No. 6, S. 377f
(CO.02) Codd, E.F.: Further normalisation of the realtional model
Data base systems, courant computer science sumposium 6,
1971, Rustin R., Editor, Englewood Cliffs, New Jersey 1972
(DA.01) DATATRIEVE - User Guide
(HA.01) Härder, T.: Die Implementierung von Datenbanksystemen
Carl - Hanser - Verlag, München, 1978
(MA.01) Maier, D.: The Theory of Relational Databases
Computer Science Press, Rockville (Ma), 1983
(RO.01) Rossiter, B.N.: Introduction to data base management systems
5. Summer School on Computing techniques in Physics
Preliminary proceedings, Praha 1983
(RO.02) Rossiter, B.N.: Data modelling and performarmance on data base systems
5. Summer School on Computing techniques in Physics
Preliminary proceedings, Praha 1983
(SC.01) Schöneich, B.: Erfahrungen bei der Organisation der XXII ICHEP mit DTR
Berlin - Zeuthen, KEX 85 - 06
(SC.02) Schöneich, B.: Speicheroptimales Arbeiten in DTR
Berlin - Zeuthen, KEX 85 - 04
(VE.01) Vetter, M.: Konzeptionelles Datenbankdesign mit Relationen
OUTPUT, 9403 Goldach, 1 und 2 1981
(VE.02) Vetter, M.: Aufbau betrieblicher Informationssysteme
Teubner, Stuttgard, 1982
(WE.01) Wedekind, H.: Datenbanksysteme I
Reihe Informatik /16
Bibliographisches Institut, Mannheim, 1981
(WE.02) Wedekind, H.: Datenbanksysteme II
Reihe Informatik /16
Bibliographisches Institut, Mannheim, 1981
(WI.01) Wiederhold, G.: Datenbanken I und II
R. Oldenburg - Verlag, München - Wien