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.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
*Der Aufbau globaler Daten
*2.1 Lokale Daten
*2.2 Personenunabhängige Daten
*2.3 Globale Daten
*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
*Vorteile von normalisierten Domänen
*Literaturnachweis
*
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.
Die folgenden Bemerkungen sollen dazu dienen, "DATATRIEVE" – Unkundigen mit den verwendeten Begriffen vertraut zu machen.
Ein DBS ist eine umfassende Anwendung zur Lösung von Datenverwaltungsaufgaben und setzt sich aus zwei Teilen, der Datenbank und dem Datenbankmanagementsystem zusammen.
Beispiel:
Eine Datenbank sind die für die Verwaltung durch ein DBS aufbereiteten Daten. Im DBMS "DATATRIEVE" sind diese in Datenfiles gespeichert.
Ein DBMS ist der Komplex notwendiger Prozeduren zur Handhabung einer Datenbank, wie z.B. das Record – Management – System.
Eine Domäne ist eine logisch zusammengehörige Menge von Datensätzen gleicher Struktur.
Beispiel:
Ein Record besteht aus Feldern, die als eine Einheit betrachtet werden. Er definiert die Struktur der Daten einer Domäne.
Beispiel:
Ein Feld ist ein nicht untergliedertes Datenteil
Beispiel:
Ein File ist eine in einem logischen Zusammenhang stehende Gruppe von Daten auf einem externen Datenträger.
Beispiel:
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.
Lokale DatenBei 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:
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):
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:
Wichtig für DTR – Nutzer:
Normalisieren von Domänen
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.
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
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:
Zweck des Normalisierens ist es, diese Probleme durch folgende Punkte zu vermeiden:
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.
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:
Erläuterung:
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:
Beispiel in der ersten Normalform:
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.
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:
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:
Spalte diese Domäne in zwei Sohndomänen auf, so daß:
Erläuterung:
Domäne D mit Record R (S1, S2, F1, F2, F3, F4, F5)
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:
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.
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
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
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:
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.
Die Domäne "Hotel" sieht bei der Verletzung des Optimalitätskriteriums so aus:
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.
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).
Zusammengefaßt wird hier das Konferenzbeispiel in der normalisierten Anordnung gezeigt.
Vorteile von normalisierten Domänen
Die Verwendung von normalisierten Domänen zum Aufbau einer DB bringt folgende Vorteile:
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 |