28.12.2014 Aufrufe

1 Datenmodellierung

1 Datenmodellierung

1 Datenmodellierung

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

1 <strong>Datenmodellierung</strong><br />

Inhalt<br />

1 <strong>Datenmodellierung</strong> ............................................................................................................1<br />

1.1 Einführung in Datenbanksysteme ..............................................................................3<br />

1.1.1 Definition Datenbank ..........................................................................................3<br />

1.1.2 Generationen der Entwicklung von Datenbanken ..............................................3<br />

1.1.3 Nachteile von Dateien und Vorteile von Datenbanken .......................................5<br />

1.1.4 Datenbankarchitektur..........................................................................................6<br />

1.2 Begriffe der rationalen Algebra ..................................................................................7<br />

1.3 Drei Ebenen Architektur nach ANSI/SPARC .............................................................8<br />

1.4 Definition Datenbank Management System...............................................................9<br />

1.5 Definition Datenmodelle...........................................................................................10<br />

1.5.1 Übersicht der Datenmodelle .............................................................................10<br />

1.5.2 Darstellung von Beziehungen im ERM .............................................................12<br />

2 Einführung in Relationale Datenmodelle.........................................................................20<br />

2.1 Relationales Datenmodell ........................................................................................20<br />

2.2 Der Begriff der Relation ...........................................................................................22<br />

2.3 Ein einfaches Beispiel..............................................................................................23<br />

2.4 Schlüssel einer Relation ..........................................................................................24<br />

2.5 Relationale Integritätsregeln ....................................................................................24<br />

2.6 Abbildung Entitätstypen/Beziehungen & Entitätstypen/Relationen..........................24<br />

2.7 Übersicht der Kardinalitäten.....................................................................................25<br />

2.8 Datenbankentwurf für 1 zu 1 -Beziehungen des ERM.............................................25<br />

2.8.1 Möglichkeit 1: Entwurf von 2 Relationen...........................................................26<br />

2.8.2 Möglichkeit 2: Entwurf von 1 Relation...............................................................27<br />

2.8.3 Datenbankentwurf für 1 zu n -Beziehungen des ERM......................................27<br />

2.8.4 Datenbankentwurf für m zu n -Beziehungen des ERM.....................................30<br />

2.9 Normalisierung.........................................................................................................32<br />

2.9.1 Wozu Normalisierung .......................................................................................32<br />

2.9.2 Beispiel 1 ..........................................................................................................32<br />

2.9.3 Beispiel 2 ..........................................................................................................37<br />

3 Modellierung....................................................................................................................41<br />

3.1 Vergleich der Methoden...........................................................................................43<br />

3.1.1 Modellierung impliziert Normalisierung.............................................................43<br />

3.2 Zusammenfassung ..................................................................................................44<br />

4 Quellen............................................................................................................................45<br />

5 Information über Dokument.............................................................................................45


Abbildungen<br />

Abbildung 1-1: Beispiel Datenbanken Zeitraum der 50iger Jahre............................................3<br />

Abbildung 1-2: Beispiel Bibliothekssystem...............................................................................4<br />

Abbildung 1-3: Beispiel – Ein Nutzer leiht mehrere Bücher aus...............................................5<br />

Abbildung 1-4: ANSI/SPARC Architektur .................................................................................8<br />

Abbildung 1-5: Einfache Beziehung .......................................................................................12<br />

Abbildung 1-6: Konditionelle Beziehung.................................................................................13<br />

Abbildung 1-7: Komplexe Beziehung .....................................................................................13<br />

Abbildung 1-8: Spezialfälle: 1 Mann hat 0 oder 1 Frau, 1 Frau hat 0 oder 1 Mann................14<br />

Abbildung 1-9: Symbole in ER Diagrammen..........................................................................15<br />

Abbildung 1-10: Vergleich Pfeil und „1n“-Notation .................................................................15<br />

Abbildung 1-11: Beispiel.........................................................................................................16<br />

Abbildung 1-12: ER-Diagramm mit Link-Attribut. Mehrere Personen (Familie oder...............16<br />

Abbildung 1-13: Reflexive Beziehungen mit Rollen ...............................................................17<br />

Abbildung 1-14: Vererbungsbeziehung ..................................................................................18<br />

Abbildung 2-1: Relationales Datenbankmodell in Tabellenform, Relation: Mitarbeiter...........20<br />

Abbildung 2-2: Datenstruktur mit einer Periodengruppe (Projekt)..........................................22<br />

Abbildung 2-3: Relation Angestellter ......................................................................................23<br />

Abbildung 2-4: Domänen........................................................................................................23<br />

Abbildung 2-5: ERM ...............................................................................................................25<br />

Abbildung 2-6: Relationales Modell........................................................................................26<br />

Abbildung 2-7: Relationales Modell........................................................................................27<br />

Abbildung 2-8: ERM ...............................................................................................................27<br />

Abbildung 2-9: Entwurf mit Periodengruppen.........................................................................28<br />

Abbildung 2-10: Relationales Modell......................................................................................28<br />

Abbildung 2-11: Beispiel.........................................................................................................29<br />

Abbildung 2-12: Allgemeine m zu n Beziehung......................................................................30<br />

Abbildung 2-13: ERM .............................................................................................................30<br />

Abbildung 2-14: Relationales Modell......................................................................................31<br />

Abbildung 3-1: Objekte...........................................................................................................41<br />

Abbildung 3-2: Relationale Darstellungsform .........................................................................41<br />

Abbildung 3-3: Modellierung und Normalisierung – Methoden ..............................................43<br />

Abbildung 3-4: Darstellung der ersten drei Normalformen .....................................................44<br />

Tabellen<br />

Tabelle 1-1: Begriffe der rationalen Algebra.............................................................................7<br />

Tabelle 1-2: Übersicht der Datenmodelle...............................................................................10<br />

Tabelle 1-3: Beschriftung der wichtigsten Begriffe im ERM ...................................................14<br />

Tabelle 2-1: Übersicht der Notationstypen und Kardinalitäten ...............................................25<br />

Tabelle 2-2: Relationen Schemata zu Beispiel.......................................................................31<br />

Tabelle 2-3: Beispiel Dozenten ..............................................................................................32<br />

Tabelle 2-4: Übersicht Normalformen ....................................................................................33<br />

Tabelle 2-5: Beispiel Hochschulbetrieb ..................................................................................33<br />

Tabelle 2-6: Beispiel Hochschulbetrieb 2 ...............................................................................34<br />

Tabelle 2-7: Hochschulbetrieb 3 – 1. Tabelle.........................................................................34<br />

Tabelle 2-8: Hochschulbetrieb 3 – 2. Tabelle.........................................................................35<br />

Tabelle 2-9: Hochschulbetrieb 3 – 3. Tabelle.........................................................................35<br />

Tabelle 2-10: Beispiel Hochschulbetrieb 4 – 3. Normalform ..................................................36<br />

Tabelle 2-11: Beispiel 2 – Nicht normalisierte Tabelle ...........................................................37<br />

Tabelle 2-12: Beispiel 2 – 1. Normalform ...............................................................................38<br />

Tabelle 2-13: Beispiel 2 – 2. Normalform ...............................................................................39<br />

Tabelle 2-14: Beispiel 2 - Redundanzfreiheit .........................................................................40<br />

Tabelle 3-1: Tabellen nach Normalisierung............................................................................42


1.1 Einführung in Datenbanksysteme<br />

1.1.1 Definition Datenbank<br />

Eine Datenbank ist die Integrierte Speicherung unterschiedlicher Daten mit einer<br />

programmunabhängigen Verwaltung (und vielfältigen Verarbeitungsmöglichkeiten).<br />

1.1.2 Generationen der Entwicklung von Datenbanken<br />

1. Generation<br />

• Zeitraum der fünfziger Jahre<br />

• Filesysteme auf Band<br />

• Stapelverarbeitung<br />

Abbildung 1-1: Beispiel Datenbanken Zeitraum der 50iger Jahre


2. Generation<br />

• Zeitraum der sechziger Jahre<br />

• Filesysteme auf Platte<br />

• Direktzugriff<br />

Abbildung 1-2: Beispiel Bibliothekssystem<br />

Aus der mit der Dateiverarbeitung resultierende Probleme:<br />

• Hohe Redundanz<br />

• Gefahr von Inkonsistenzen<br />

• Geringe Produktivität der Programmierer


3. Generation<br />

Zeitraum der siebziger Jahre<br />

Einheitliche Strukturierungsprinzipien der Daten: sog. Datenmodelle<br />

• Hierarchisches Modell<br />

• Netzwerkmodell<br />

• Objekte und Beziehungen zwischen Objekten eines Anwendungsbereichs werden in<br />

Datensätze und physische Links zwischen den Datensätzen in den Rechner (Speicher)<br />

abgebildet<br />

Abbildung 1-3: Beispiel – Ein Nutzer leiht mehrere Bücher aus<br />

4. Generation<br />

Zeitraum der achtziger Jahre<br />

• Relationales Datenmodell<br />

• strikte Trennung von log. Modell und phys. Speicherung<br />

1.1.3 Nachteile von Dateien und Vorteile von Datenbanken<br />

Hält ein Programm sich diejenigen Daten in Dateien, die es braucht, so führt dies in der<br />

Praxis oftmals dazu, dass Daten redundant gespeichert werden. Dadurch wird eine<br />

Aktualisierung der Daten sehr aufwendig. Ausserdem muss jedes Programm gleiche<br />

Funktionen für das Lesen, Schreiben, Aktualisieren, Suchen und vor allem für die<br />

Behandlung von Fehlerfällen beinhalten. Jeder einzelne Programmierer bestimmt hierbei das<br />

Ausmass der Integritätskontrollen und der Vorsorgemassnahmen im Fehlerfall.<br />

Integrität bedeutet z.B., dass wenn ein Mitarbeiter aus dem Datenbestand "Mitarbeiter"<br />

verschwindet, dass er dann auch aus dem Datenbestand "Firmenkreditkarte" verschwinden<br />

muss. Ein weiterer Nachteil ist, dass ein jedes Programm genau wissen muss, wie die Daten<br />

physikalisch gespeichert sind. Ändert man die Datenstrukturen der Dateien, so muss man<br />

auch die Programme abändern. Isolierte Anwendungen mit Hilfe des Dateikonzeptes<br />

beruhen auf der Annahme, dass stets alles gut geht und alles stabil bleibt.<br />

Was man aber haben will, ist dass die Programme unabhängig von der physikalischen<br />

Speicherung der Daten sind, ja - wenn es geht - sogar unabhängig von der logischen<br />

Speicherung der Daten. Das Datenbankkonzept beinhaltet die Datenbank als die Menge der<br />

zentral gespeicherten Daten und das Datenbankverwaltungssystem (DBMS = Data Base<br />

Management System) als Zusammenfassung aller Funktionen zu ihrer Handhabung.


Das Datenbankkonzept zielt darauf ab:<br />

• alle Daten nur einmal zu halten und zwar zentral<br />

• alle Funktionen zum Lesen, Schreiben, Aktualisieren, Suchen nur einmal zentral<br />

• zu haben<br />

• alle erforderlichen Funktionen zur Integritätskontrolle und Fehlerbehandlung in der<br />

erforderlichen Qualität zentral zu halten<br />

• die Programme von den Daten zu entkoppeln (Erhöhung der Datenunabhängigkeit der<br />

Programme)<br />

• Sprachen zur leichteren und flexiblen Handhabung der Daten bereitzustellen<br />

• Es gibt verschiedene Grade der Datenunabhängigkeit. Hier sei die Einteilung sehr grob<br />

gemacht: Relationale Datenbanken weisen keine physische Datenabhängigkeit mehr<br />

auf. Hier ist die physikalische Speicherung dem Anwendungsprogramm verborgen. Der<br />

Benutzer kennt nur noch die logische Beschreibung der Daten.<br />

1.1.4 Datenbankarchitektur<br />

Ziel einer DB-Anwendung: Abbildung eines für eine Anwendung relevanten<br />

Realitätsausschnittes<br />

(UoD = Universe of Discourse, Diskursbereich) in einen Rechner und Recherche/<br />

Manipulation in diesem Modell<br />

Datenbanksystem (DBS) = Datenbank (DB) + Datenbankbetriebssystem (DBMS)<br />

DBMS<br />

Menge von Programmen (Programmsystem) zur Verwaltung, Strukturierung, Manipulation<br />

und zum Auffinden von Daten<br />

DB<br />

Menge von Daten, die Objekte eines UoD abbilden, die logisch untereinander in<br />

Beziehungen stehen. Die Daten werden nach einem einheitlichen Verfahren (Datenmodell)<br />

strukturiert.<br />

Anforderungen an ein Datenbanksystem<br />

• (weitestgehende) Redundanzfreiheit<br />

• Integritätserhaltung durch das System<br />

• Vermeidung von Inkonsistenzen<br />

• Zugriffsschutz<br />

Datenunabhängigkeit<br />

• physische Datenunabhängigkeit<br />

• logische Datenunabhängigkeit [1]


1.2 Begriffe der rationalen Algebra<br />

Selektion Projektion Vereinigung Differenz Durchschnitt<br />

A<br />

B<br />

A<br />

B<br />

A<br />

B<br />

Selektieren<br />

bestimmter Tupel<br />

Selektieren bestimmter<br />

Spalten (ohne Duplikat.)<br />

Zwei Tabellen<br />

verbinden<br />

z.B. Suchen “Müller” Alle, ohne Duplikation Alle „A“ und „B“<br />

Kartesisches Prod. Verbund (Join) Division<br />

Zwei Tabellen<br />

vergleichen<br />

Alle „A“ die nicht in<br />

„B“ enthalten sind<br />

Zwei Tabellen<br />

vergleichen<br />

Alle „A“, die auch in „B“<br />

enthalten sind<br />

A<br />

C<br />

B<br />

Verbinden alle “A” mit<br />

allen “B” zu “C”<br />

A B C<br />

D<br />

Verbinden von einzelnen<br />

Tabellen “A” und “B” und<br />

“C” zu einer Tabelle “D”<br />

über Primär-/Sekundärkey<br />

A B C<br />

“C” enthält alle “A” und<br />

“B” die mit einander in<br />

Beziehung stehen<br />

Tabelle 1-1: Begriffe der rationalen Algebra<br />

!!! Vereinigung, Durchschnitt und<br />

Differenz ist nur möglich wenn<br />

teilnehmende Relationen<br />

„vereinigungsverträglich“ sind.<br />

D.h. wenn diese die gleiche Anzahl an<br />

Merkmalen und diese identische<br />

Merkmalswerte aufweisen<br />

• Selektion σ<br />

Bestimmte Tupel (Zeilen) einer Relation werden ausgeblendet (Filter)<br />

• Projektion ∏<br />

Bestimmte Merkmale (Spalten) einer Relation werden ausgeblendet. Im Resultat sind<br />

immer alle Zeilen der Tabelle enthalten mit Ausnahme derjenigen welche identische<br />

Attributswerte haben.<br />

• Vereinigung ∪<br />

A ∪ B => Kumulation (vertikal) aller Datensätze zweier Tabellen<br />

• Differenz \<br />

A \ B = Ergebnis enthält alle Datensätze aus Tabelle A welche nicht in Tabelle B<br />

enthalten sind<br />

• Durchschnitt ∩<br />

Das Ergebnis des Durchschnitt A B enthält alle Datensätze aus A welche gleichzeitig<br />

auch in B enthalten sind.<br />

• Kartesisches Produkt ⊗<br />

Das Kartesische Produkt A ⊗ B verknüpft (horizontal) alle Datensätze aus A mit allen<br />

Datensätzen aus B Das Ergebnis enthält daher alle Merkmale der teilnehmenden<br />

Tabellen. D.H. kein grosser Informationswert.<br />

• Verbund (Join) X<br />

Die nutzlosen Info des Kartesischen Produkt werden durch das verbinden über Primärund<br />

Fremdschlüssel ausgefiltert.<br />

• Division ÷<br />

A÷B = alle Zeilen aus A welche mit allen Zeilen aus B in Beziehung stehen. (kann nicht<br />

SQL formuliert werden) Bsp: An welchem Tag sind alle Lastwagen im Einsatz


1.3 Drei Ebenen Architektur nach ANSI/SPARC<br />

Die Drei Ebenen Architektur nach ANSI/SPARC bezeichnet man auch als semantisches<br />

Datenmodell oder ganz simpel als drei Ebenen Modell.<br />

Die Ebenen werden angewendet, damit nicht schon zu detailliert in die Tiefe gegangen wird<br />

und die Lösung möglichst HW- / SW- neutral bleibt.<br />

Gründe welche für diese Modell sprechen:<br />

• Unabhängigkeit der physischen Speicherung von der Benutzersicht<br />

• Flexibilität für Änderungen / Anpassungen<br />

Alle Daten, die auf den ersten Blick zusammengehören werden in der konzeptionellen Ebene<br />

gesammelt. So entsteht ein Datenmodell, aus dem beliebig viele Benutzersichten (externe<br />

Ebene) und beliebig viele Speicherarten (interne Ebene) abgeleitet werden können.<br />

Abbildung 1-4: ANSI/SPARC Architektur<br />

Interne Ebene<br />

Beschreibt, wie die Daten auf den externen Speichermedien zu speichern sind.<br />

Konzeptionelle Ebene<br />

Zeigt die umfassende hardware- und softwareneutrale Beschreibung der Daten. Sie dient als<br />

Basis für die Umsetzung des Datenmodells auf die externe Ebene.<br />

Externe Ebene<br />

Beschreibt die Sicht der Daten einzelner Benutzer oder Benutzergruppen


1.4 Definition Datenbank Management System<br />

Ein Datenbank Management System ist ein Programm, welches zwei Hauptkomponenten<br />

enthält; die erste dient der Speicherung von Daten und die zweite ihre Verwaltung<br />

• Die Speicherung der Daten erfolgt entsprechend der Struktur des Datenmodells, auf<br />

welchem die Datenbank basiert.<br />

• Die Verwaltung von Daten enthält Aufgaben zur Verwaltung von Datenstrukturen,<br />

Verwaltung von Daten (z.B. Zugriff im Mehrbenutzerbetrieb), Reorganisation,<br />

Realisierung von Datenschutz und Datensicherheit der Datenbankmodelle.


1.5 Definition Datenmodelle<br />

Modelle sind reale oder irreale Systeme, die andere Systeme so darstellen, dass eine<br />

experimentelle Manipulation der abgebildeten Strukturen oder Zustände möglich wird.<br />

Datenmodelle dienen zur abstrakten Beschreibung von Aspekten der realen Welt. Wichtige<br />

Mechanismen sind die Klassifikation, die Agregation und die Generalisierung.<br />

1.5.1 Übersicht der Datenmodelle<br />

Hierarchisches Modell (K1) Netzwerk-Datenmodell (K1) Relationales Datenmodell (K2)<br />

A1<br />

A2<br />

Root<br />

Meier<br />

Hans<br />

49BF ..<br />

Jenny Fritz ..<br />

Twin<br />

Parent Berger Peter ..<br />

C2<br />

B1<br />

C1<br />

... ... ..<br />

3C49<br />

Mitarbeiter<br />

Arbeitet in<br />

Abteilung<br />

Child<br />

Buha ...<br />

G1<br />

49BF<br />

D1 E1 F1 G1<br />

Verkauf ...<br />

3091<br />

Einkauf ...<br />

Hauptmerkmal<br />

Baumstruktur<br />

Vorteile<br />

Hauptmerkmal<br />

Statische Verknüpfung der Datensätze<br />

Vorteile<br />

Hauptmerkmal<br />

Ansammlung von zwei dimensionalen<br />

Tabellen<br />

Vorteile<br />

• Gute Performance bei Batch<br />

• Existenz bewährter DBMS<br />

• Einfachheit<br />

Nachteile<br />

• Regeln & Navigation<br />

(Read,Del,Ins,Upd)<br />

• Änderungen sind schwierig<br />

• Redundanzen<br />

• Komplexe Löschaktionen<br />

(Elternsatz löscht auch Kindsatz)<br />

• Aufwendige Änderungsaktionen<br />

• Gute Performance, da Direktzugriff<br />

• Existenz bewährter DBMS<br />

• Leichte Implementierung von<br />

komplexen Beziehungen<br />

Nachteile<br />

• Hohe Komplexität<br />

• Komplizierte Änderungen des DB-<br />

Schemas und Adressierung.<br />

Firma<br />

- IMS (IBM) - IMAGE/3000 (HP)<br />

- DBMS-10 (DEC)<br />

- DMS1100 (UNISYS)<br />

- UDS (SIEMENS)<br />

Bedeutung<br />

- Grossunternehmen<br />

- Grosse Datenmengen<br />

• Starre Verkettung und strenge<br />

Strukturen werden vermieden.<br />

• Unterstützung des Standard-SQL<br />

• Transaktionssteuerungs-Konzept<br />

• Datensicherheit/Datenschutz<br />

• Portierbarkeit/Skalierbarkeit<br />

• Werkzeuge und Tools<br />

- DB2 (IBM)<br />

- ORACLE<br />

- INFORMIX<br />

- RDBMS (DEC)<br />

- SYBASE<br />

- DBASE<br />

- Keine grosse Bedeutung mehr - RDBMS ist heute DIE Technologie<br />

Tabelle 1-2: Übersicht der Datenmodelle


1.5.1.1 Hierarchisches Modell<br />

Das hierarchische Datenmodell ist eines der ältesten in Datenbanken verwendeten<br />

Datenmodelle, es entstand aus Dateien, die eine variable Anzahl von geschachtelten<br />

Wiederholungsgruppen ermöglichen. Das bekannteste System, das mit dem hierarchischen<br />

Modell arbeitet, ist IMS (Information Management System) von IBM.<br />

Das hierarchische Datenmodell kennt Records (Sätze) und physisch realisierte Vater-Sohn-<br />

Beziehungen (1:n), ausserdem sind virtuelle Vater-Sohn-Beziehungen möglich.<br />

1.5.1.2 Netzwerkmodell<br />

Für das Netzwerkmodell gibt es einen Standard der Data Base Task Group der Conference<br />

on Data System Languages (CODASYL DBTG). Das Netzwerkmodell kennt Record- und<br />

Set-Typen. Die Set-Typen beschreiben 1:n-Beziehungen zwischen dem Owner-Record-Typ<br />

und dem Member-Record-Typ. Die 1:n Beziehungen müssen hier jedoch keine Hierarchie<br />

bilden, durch sie darf ein beliebiges Netzwerk aufgebaut werden.<br />

Das Netzwerkmodell besitzt eine grössere physische Datenunabhängigkeit als das<br />

hierarchische Modell, da hier auf der konzeptuellen Ebene nicht festgelegt werden muss,<br />

welche 1:n-Beziehungen als "virtuelle Beziehungen" realisiert werden sollen. Sowohl das<br />

hierarchische Modell, als auch das Netzwerkmodell sind relativ implementierungsnah. Beide<br />

Modelle erfordern das Navigieren in oft komplexen Datenstrukturen.<br />

1.5.1.3 Das Entity-Relationship-Modell<br />

Entities sind wohlunterscheidbare Dinge und Konzepte der realen Welt. Ähnliche Entities<br />

werden in Entity-Sets zusammengefasst. Entities haben Werte, Werte sind Elemente von<br />

Wertebereichen (Domains). Werte beschreiben Eigenschaften. Auf der Ebene von Entity-<br />

Sets werden die Eigenschaften auch Attribute genannt.<br />

Die Namen von Entity-Sets sowie die Attribute werden meistens als zeitinvariant angesehen,<br />

der Inhalt der Entity-Sets ist dagegen in der Zeit veränderlich.<br />

Relationships dienen zur Modellierung von Beziehungen zwischen Entities. Relationships<br />

können Attribute besitzen. Auch bei Relationships kann man zwischen dem zeitinvarianten<br />

Typ und den veränderlichen Ausprägungen unterscheiden.<br />

Das Entity-Relationship Modell (ERM) stellt das älteste und allgemeinste Modell zur<br />

strukturierten Modellierung von Daten dar. Es wurde 1970-76 von Chen definiert und später<br />

vielfach weiterentwickelt. Viele neue Ansätze, wie das relationale Datenmodell oder die<br />

Objektorientierte <strong>Datenmodellierung</strong> haben immer noch viel mit dem ursprünglichen ERM<br />

gemeinsam. Wegen ihrer Bedeutung für die Modellierung von Daten wurde die Entity-<br />

Relationship Modellierung nachträglich in die Strukturierte Analyse aufgenommen.<br />

Der zentrale Begriff in diesem Modell ist die Entität (entity). Damit sind eindeutig<br />

identifizierbare1 Objekte der realen Welt gemeint. Dies können sowohl konkrete Objekte wie<br />

Gegenstände, Gebäude oder Personen als auch abstrakte Konzepte wie Verträge, Gesetze<br />

oder Ideen sein. Alle diese Entitäten haben Eigenschaften. Diese werden als Attribute<br />

(attribute) bezeichnet. Jedem der Attribute ist eine Domäne (domain) zugeordnet. Diese<br />

enthält alle Werte, die das Attribut annehmen kann. Ein solcher Wert heisst dann<br />

Ausprägung des Attributs. Damit repräsentiert die Domäne den Wertebereich des Attributs.


Zwischen Entitäten bestehen Beziehungen (relations). Sie werden nach ihrer Komplexität<br />

unterschieden. Je nachdem, wieviele Entitäten an der Beziehung beteiligt sind, unterscheidet<br />

man 3 Fälle:<br />

1.5.2 Darstellung von Beziehungen im ERM<br />

1.5.2.1 1 zu 1, einfache Beziehung<br />

Ein Ehemann hat - in unserer Kultur - genau eine Ehefrau und umgekehrt.<br />

Abbildung 1-5: Einfache Beziehung


1.5.2.2 1 zu n, konditionelle Beziehung<br />

Ein Paar kann mehrere Kinder haben, ein Kind jedoch nur einen Vater und eine Mutter.<br />

Abbildung 1-6: Konditionelle Beziehung<br />

1.5.2.3 n zu m, komplexe Beziehung<br />

Eine Person kann mehrere Telefonnummern haben, unter einer Telefonnummer können<br />

mehrere Personen erreichbar sein.<br />

Abbildung 1-7: Komplexe Beziehung


Beachten Sie, dass in der Notation mit Pfeilen ein Doppelpfeil von Paar auf Kind zeigt, wenn<br />

ein Paar 1-n Kinder hat. Streng genommen müsste man noch solche Beziehungen<br />

unterscheiden, bei denen ein Partner nicht zwingend vorhanden ist (Ein Mann kann<br />

verheiratet sein, er muss es nicht sein, dasselbe gilt natürlich auch für eine Frau). Diese<br />

"kann"-Beziehungen werden jedoch im Allgemeinen als Sonderfälle der obigen Fälle<br />

("muss"-Beziehungen) betrachtet; aus „1 zu“ wird dann „0 oder 1 zu“ aus „genau 1“ wird<br />

„höchstens 1“.<br />

Abbildung 1-8: Spezialfälle: 1 Mann hat 0 oder 1 Frau, 1 Frau hat 0 oder 1 Mann<br />

Zu einem Kind gehört 1 Paar, zu einem Paar gehören 0 bis n Kinder.<br />

Auch Beziehungen können Eigenschaften besitzen. Diese werden dann Link Attribute<br />

genannt. Ein Beispiel hierfür wäre das Datum und der Gegenstand eines Kaufs, der über die<br />

Beziehung „kauft“ zwischen Kunde und Verkäufer modelliert wird. Auch wenn es bei<br />

einfacher (1-zu-1) und konditioneller Beziehung (1-zu-n) noch möglich wäre, die Link-<br />

Attribute einer der einfach an der Beziehung beteiligten Entitäten zuzuordnen (z.B. dem<br />

Kunden, wenn der Verkäufer mehrere Kunden hat, der Kunde aber nur einmal und bei einem<br />

Verkäufer einkauft), macht doch meist die separate Modellierung über die Beziehung im<br />

Hinblick auf Verständlichkeit des Modells und zukünftige Erweiterungen (1-zu-n auf m-zu-n,<br />

ein Kunde darf verschiedene Dinge bei mehreren Verkäufern einkaufen) mehr Sinn.<br />

Gleichartige Entitäten und Beziehungen kann man unter übergeordneten Entitätstypen bzw.<br />

Beziehungstypen zusammenfassen. Beispiel: Der Entitätstyp „Kunde“ statt „Herr Müller“,<br />

„Frau Meier“, etc.<br />

Tabelle 1-3: Beschriftung der wichtigsten Begriffe im ERM<br />

Bei der praktischen Modellierung arbeitet man natürlich nicht direkt textuell mit diesen<br />

Begriffen, sondern - wie bei vielen anderen Verfahren auch - grafisch. Dies kommt der<br />

Übersicht und dem schnellen Verständnis sehr entgegen. Die dabei verwendeten Symbole<br />

finden Sie im Folgenden dargestellt. Wie Sie sehen, werden für Entitäten und Beziehungen<br />

dieselben Symbole wie für die zugehörigen Typen verwendet. Dies rührt daher, dass man im<br />

Modell weniger mit konkreten Entitäten als vielmehr stellvertretend für ihre Gesamtheit mit<br />

den Typen modelliert. Das Modell gestattet jedoch auch die Darstellung von Einzelfällen.


Abbildung 1-9: Symbole in ER Diagrammen<br />

Ein jedes dieser Rechtecke der Grafik, d.h. ein jeder Entitätstyp (ein jeder Objekttyp),<br />

entspricht einem Datenspeicher in einem DFD. Wenn es im Entity-Relationship Diagramm<br />

den Objekttyp „Kunde“ gibt, so ist im Datenflussdiagramm der Datenspeicher „Kunde“<br />

enthalten.<br />

1.5.2.4 Regeln zum Aufbau eines ER Diagramms<br />

Jede Entität wird durch ein oder mehrere Datenelemente - Attribute genannt - beschrieben.<br />

Entitäten werden mit ihren Attributen durch ungerichtete Kanten verbunden.<br />

Die Symbole für Beziehungen stehen zwischen den Entitäten, die sie verbinden, und sind mit<br />

beiden Entitäten durch gerichtete Kanten verbunden.<br />

Die Komplexität von Beziehungen kann durch die Anzahl der Pfeilspitzen, die stets an der<br />

Beziehung ansetzen, ausgedrückt werden. Eine Pfeilspitze bedeutet „1“, zwei Pfeilspitzen<br />

bedeuten „n“ bzw. „m“ bezüglich derjenigen Entität am anderen Ende der Beziehung. Um<br />

auszudrücken, dass auch die Null mit eingeschlossen ist, können die Pfeilspitzen um eine „0“<br />

ergänzt werden. Um beispielsweise zu modellieren, dass ein Paar mehrere Kinder haben<br />

oder auch kinderlos sein kann, verbindet man die Entität „Paar“ über eine Linie mit 2<br />

Pfeilspitzen mit der Beziehung „hat“. Hinter der zweiten Pfeilspitze wird eine „0“ eingefügt.<br />

Von der anderen Seite verbindet man dann die Entität „Kind“ über einen einfachen Pfeil mit<br />

der Beziehung. Will man ausserdem noch die Möglichkeit von Waisenkindern<br />

berücksichtigen, kann man auch hier die Pfeilspitze durch eine „0“ ergänzen (vgl. Beispiele<br />

oben). Eine alternative Notation mit Komplexitätsangaben „1,n“ wurde bereits beschrieben.<br />

In der Literatur existieren weitere alternative Notationen.<br />

Abbildung 1-10: Vergleich Pfeil und „1n“-Notation<br />

Alle Elemente werden entweder direkt im Diagramm beschriftet oder mit einer Nummer<br />

versehen und extern erklärt (letzteres Verfahren wird häufig für Beziehungen angewandt).<br />

Dabei gilt die Empfehlung, Beziehungen so zu beschriften, dass sie von oben nach unten<br />

oder von links nach rechts gelesen werden können. Ist dies nicht möglich und ist die<br />

Leserichtung nicht aufgrund der Namensgebung offensichtlich, so ist die Leserichtung durch<br />

kleine Richtungspfeile neben dem Beziehungssymbol zu kennzeichnen. Alle Namen sollen


kurz, prägnant und vielsagend sein. Für Entitäten und Attribute sind Substantive (Person,<br />

Adresse, Alter, Name), für Beziehungen Verben (hat, ist, wohnt) zu bevorzugen.<br />

Abbildung 1-11: Beispiel<br />

Abbildung 1-12: ER-Diagramm mit Link-Attribut. Mehrere Personen (Familie oder<br />

Wohngemeinschaft) mieten eine Wohnung. Zum Mietvorgang gehört<br />

die Miete. Miete ist also ein Linkattribut.


1.5.2.4.1 Modellerstellung<br />

Wie geht man nun bei der Modellerstellung vor Oftmals wird man als Vorlage eine textuelle<br />

Beschreibung einer Aufgabe oder eines Vorgangs haben. Um aus ihr ein erstes Modell zu<br />

extrahieren, müssen zunächst Entitäten, Attribute und Beziehungen identifiziert werden.<br />

Dabei sind Substantive Kandidaten für Entitäten, Adjektive Kandidaten für Attribute und<br />

Verben Kandidaten für Beziehungen. Es ist jedoch Sorgfalt angebracht, denn auch Attribute<br />

können durch Substantive bezeichnet sein. Entitäten, die aus einer solchen Betrachtung<br />

entstehen, müssen verifiziert werden. Besitzen sie keine Eigenschaften oder gehen sie keine<br />

Beziehungen ein, sind sie vermutlich überflüssig. Umgekehrt ist es oft sinnvoll, eine Gruppe<br />

zusammengehöriger Attribute als eigenen Entitätstyp zu realisieren, wenn dieser für sich<br />

einen Sinn macht, Beziehungen eingehen kann und somit an mehreren Stellen benutzt<br />

werden kann (Zum Beispiel haben Personen und Firmen eine Adresse mit PLZ, Ort, Strasse<br />

und Hausnummer. Diese wird als eigener Entitätstyp realisiert). Für die Attribute müssen die<br />

Domänen definiert werden (z.B. Entität Datum, Attribut Monat: 1..12). An dieser Stelle<br />

werden auch Überlegungen zu Integritätskriterien angestellt. Ein Wert kleiner 1 oder grösser<br />

12 beim Monat ist offensichtlich ungültig. Schwieriger ist da schon die Entdeckung von<br />

Fehlern wie "31.2." . Hier muss der Wertebereich des Tages (1..31) abhängig vom Monat<br />

eingeschränkt werden. Schliesslich ist noch zu prüfen, ob das Modell alle Anfragen, die sich<br />

aus der Aufgabenstellung ableiten lassen, befriedigen kann (einfache Beziehungen können<br />

in beiden Richtungen eindeutig durchlaufen werden, konditionale nur in einer und komplexe<br />

gar nicht). Vor der Implementierung des Modells kann es dann noch nötig sein, das<br />

Datenmodell zu normalisieren. Damit wollen wir uns später in diesem Dokument<br />

beschäftigen.<br />

1.5.2.4.2 Reflexive Beziehungen/Vergabe von Rollen<br />

Reflexive Beziehungen bestehen nicht zwischen Entitäten verschiedener Entitätstypen,<br />

sondern zwischen Entitäten desselben Typs. Ein Beispiel hierfür ist die Beziehung „ist Vater<br />

von“ zwischen Entitäten des Typs Person. Im Diagramm sind demzufolge beide Seiten der<br />

Beziehung mit demselben Entitätstyp verbunden. Die Entitäten treten jedoch in<br />

verschiedenen Rollen auf. In unserem Beispiel als Vater und Kind. Diesem Umstand trägt<br />

man durch Beschriftung der beiden Seiten der Beziehung mit dem Rollennamen Rechnung.<br />

Man beachte, wie mit Hilfe der Beziehungen ausgedrückt werden kann, dass zwar ein Kind<br />

nur einen Vater, ein Vater jedoch durchaus mehrere Kinder haben kann.<br />

Abbildung 1-13: Reflexive Beziehungen mit Rollen


1.5.2.4.3 Vererbungsbeziehung<br />

Vererbung wird verwendet, um auszudrücken, dass Gemeinsamkeiten (d.h. gemeinsame<br />

Attribute) von Entitätstypen in einem separaten, übergeordneten Entitätstyp untergebracht<br />

sind, mit dem die ursprünglichen Entitätstypen eine besondere Beziehung eingehen.<br />

Dadurch wird die redundante Modellierung in beiden Entitätstypen vermieden und<br />

gleichzeitig ihre Gemeinsamkeit explizit im Modell deutlich gemacht.<br />

Abbildung 1-14: Vererbungsbeziehung<br />

Das obige Beispiel drückt aus, dass sowohl Angestellte als auch Arbeiter Personen mit<br />

Name, Vorname und Geburtsdatum sind. Jeder Arbeiter/Angestellte ist mit einer Entität des<br />

Typs Person verbunden, welche die gemeinsamen Attribute aufnimmt. Zusätzlich ist es mit<br />

diesem Mechanismus möglich, dass eine Person ein Arbeitsverhältnis als Angestellter und<br />

gleichzeitig eines als Arbeiter hat (auch bei verschiedenen Firmen), ohne dass seine<br />

Stammdaten doppelt gespeichert werden: Der Arbeiter und der Angestellte referenzieren<br />

einfach dieselbe Person. Eine Vererbungsbeziehung ist also (von unten nach oben)<br />

entweder 1-zu-1 oder n-zu-1. Mehrfachvererbung kann durch mehrere<br />

Vererbungsbeziehungen ausgedrückt werden.<br />

Die Vererbungsbeziehung drückt die is-a (ist) Beziehung aus (z.B. Ein Angestellter ist eine<br />

Person). Sie ist zu unterscheiden von der has-a (hat) Beziehung (z.B. eine Person hat eine<br />

Adresse). Die has-a Beziehung ist eine Beziehung zu einem anderen Entitätstyp, der quasi<br />

ein indirektes Attribut des Ursprungstyps darstellt. Die besondere Darstellungsform der is-a<br />

Beziehung ist eine Erweiterung des ERM nach Chen. Die ursprüngliche Darstellung macht<br />

nochmals deutlich, dass es sich bei is-a lediglich um eine spezielle Beziehung handelt.<br />

Mit Hilfe der Vererbungsbeziehung können auch mehrstufige Hierarchien aufgebaut werden.<br />

Es ist jedoch zu beachten, dass eine Entität der untersten Hierarchiestufe zum Zugriff auf


Attribute die es von ganz oben „geerbt“ hat sämtliche Beziehungen durchlaufen muss. Dies<br />

kann bei der Implementierung u.U. lange dauern. Demnach sollte man den Gebrauch der<br />

Vererbung auf ein vernünftiges Mass beschränken.<br />

1.5.2.4.4 Umwandlung in ein relationales Modell<br />

Das ERM ist ein allgemeines Modell zur Modellierung von Daten, mit der Implementierung<br />

(z.B. von Beziehungen) und den Beschränkungen, die dabei möglicherweise beachtet<br />

werden müssen, befasst es sich nicht. Dieser Unterschied besteht generell zwischen<br />

Modellen und Implementierungen. Modelle sind allgemein und gehen von einer „idealen<br />

Welt“ aus, die Implementierung ist jedoch immer gewissen Beschränkungen unterworfen.<br />

Standard zur Implementierung von Datenbanken sind heute Relationale DBMS. Sie beruhen<br />

auf dem relationalen Datenmodell. Zur Implementierung eines ERM mit Hilfe einer solchen<br />

Datenbank muss dieses zunächst in ein Relationales Modell konvertiert werden. Obwohl<br />

diese Konvertierung über weite Strecken keine Änderung des eigentlichen Modells<br />

notwendig macht, sondern eher einem simplen Wechsel der Notation gleichkommt gibt es<br />

hier und da Dinge, die man beachten muss. So kennt zum Beispiel das relationale Modell<br />

keine m-zu-n Beziehungen. [3]


2 Einführung in Relationale Datenmodelle<br />

2.1 Relationales Datenmodell<br />

Das relationale Datenmodell kennt nur Tabellen, auch Relationen genannt. Auf der Schema-<br />

Ebene werden die Formate der Tabellen beschrieben. Die Tabellen haben eindeutige<br />

Namen. Jede Tabelle hat eine feste Anzahl eindeutig benannter Spalten. Für jede dieser<br />

Spalten muss ein Wertebereich angegeben werden. Die in den Ausprägungen der Tabellen<br />

stehenden Zeilen (Tupel) müssen stets der Schemadefinition entsprechen.<br />

Weitere Forderungen des relationalen Modells:<br />

• Erste Normalform - in den Spalten dürfen nur atomare Werte stehen,<br />

Wiederholungsgruppen sind nicht erlaubt.<br />

• Zeilen können nur durch ihren Inhalt identifiziert werden, d.h. die Tabelle ist eine Menge<br />

von Tupeln (duplikatfrei). Es gibt keine vom Modell vorgeschriebenen Tupel-IDs. [2]<br />

Das relationale Datenbankmodell verwendet zweidimensionale Tabellen (oder alternativ eine<br />

auf der Relationenalgebra beruhende mathematisch-formale Schreibweise, siehe bspw. das<br />

Buch von Vetter) zur Darstellung des Realitätsausschnittes. Alle Gegenstände der<br />

Diskurswelt können durch zweidimensionale Tabellen anschaulich und vollständig<br />

beschrieben werden. Der theoretisch-mathematische Hintergrund ist sehr anspruchsvoll und<br />

begründet die Leistungsfähigkeit des Modelles.<br />

Beim relationalen Datenbankmodell sind einige Begriffe wichtig, die durch nachstehende<br />

Abbildung erläutert werden:<br />

Entity<br />

Abbildung 2-1: Relationales Datenbankmodell in Tabellenform, Relation: Mitarbeiter<br />

ist ein Objekt im ERM, das im Relationenmodell als Zeile mit all seinen Eigenschaften<br />

umgesetzt wird (entspricht Tupel).<br />

Tupel<br />

sind die einzelnen Zeilen in der Tabelle, also die konkreten Objekte (entspricht Entity).<br />

Entity-Typ<br />

ist die Relation, also die gesamte Tabelle.


Attribute<br />

sind die Spaltenüberschriften in der Tabelle. Das unterstrichene Attribut ist das<br />

Schlüsselattribut. In der Abbildung oben ist das Schlüsselattribut die Pers-Nr. Es ist nicht<br />

unterstrichen, weil ACCESS eine Unterstreichung der Schlüsselattribute in der vorgestellten<br />

Ansicht nicht vornimmt. Eigentlich ist das nur eine Kleinigkeit, sie kann dennoch<br />

verdeutlichen, dass Software aus betriebswirtschaftlicher Sicht i.P. immer<br />

verbesserungsfähig ist.<br />

Wertebereich<br />

ist der zulässige Variableninhalt, also die Domänen der einzelnen Attribute.<br />

Attributwert<br />

ist der Inhalt einer Zelle innerhalb der Tabelle.<br />

Das Relationale Daten-Modell, kurz Relationen-Modell genannt, wurde 1970 von E.F. Codd<br />

entwickelt. Das Relationen-Modell besteht wie bereits vorher geschrieben aus 3 Teilen:<br />

Objekten:<br />

Die folgenden Objekte müssen definiert werden:<br />

• Relationen (oder Tabellen). Sie entsprechen den Entitätstypen des Entity-Relationship<br />

Modells<br />

• Tuple (oder Datensatz oder Record). Ein Tuple entspricht einer konkreten Entität des<br />

Entity-Relationship Modells<br />

• Attribut (Spalte). Ein Attribut eines Entitätstyps entspricht einem Attribut einer Relation<br />

und stellt eine Spalte einer Tabelle dar<br />

• Domain (Wertebereich). Der Wertebereich eines Attributs muss festgelegt werden,<br />

damit bei Änderungen der Attributwerte Syntaxprüfungen durchgeführt werden können<br />

• Schlüssel. Schlüssel erlauben den Zugriff auf Tuples. Von Bedeutung sind Candidate-<br />

Keys (eindeutige Schlüssel), Primary Keys (Primärschlüssel, Hauptschlüssel),<br />

Alternate Keys (Sekundärschlüssel, Zweit-Schlüssel), Foreign-Keys<br />

(Fremdschlüssel). Die Bedeutung der einzelnen Schlüssel wird im folgenden noch<br />

erläutert werden<br />

Operationen:<br />

Abfrage- und Update-Operationen auf den Relationen, sowie zum Anlegen und<br />

Löschen von Relationen<br />

Regeln:<br />

Diese dienen zur Gewährleistung der Konsistenz der Daten. Hierbei geht es um die Entity-<br />

Integrität und referentielle Integrität. Beide Integritätsregeln müssen im Folgenden noch<br />

erklärt werden


2.2 Der Begriff der Relation<br />

In diesem Kapitel sollen die grundlegenden Begriffe, die im Zusammenhang mit Relationalen<br />

Daten-Modellen gebraucht werden, erläutert werden. Da die Basis des Relationalen Daten-<br />

Modells das 1970 von Codd entwickelte Relationen-Modell (Codd 70) darstellt, soll dieses<br />

nun kurz charakterisiert werden. Als Relation (dt. Beziehung) bezeichnet man eine logisch<br />

zusammenhängende Einheit von Informationen. Eine Relation entspricht einem Entitätstyp.<br />

Eine Relation stellt eine zweidimensionale Tabelle mit einer festen Anzahl von Spalten<br />

(Attributen) und einer variablen Anzahl von Tupeln (Zeilen) dar. Eine Relation ist durch ihren<br />

Namen und die Namen der Attribute eindeutig beschrieben. Die Anzahl der Attribute einer<br />

Relation heisst Degree (Ausdehnungsgrad). Die Anzahl der Zeilen einer Relation - diese<br />

Anzahl kann sich dynamisch ändern und kann auch Null werden - heisst Kardinalität der<br />

Relation.<br />

Eine Relation hat die folgenden Eigenschaften:<br />

Es gibt keine zwei Tupel, die in ihren Attributwerten übereinstimmen. Die Reihenfolge,<br />

in der die Tupel einer Relation gespeichert werden, ist nicht definiert, d.h. es gibt keine<br />

Reihenfolge der Tupel. Genauso wenig ist die Reihenfolge, in der die Attribute einer Relation<br />

gespeichert werden, definiert. Macht man den Übergang von dem Entity-Relationship Modell<br />

zum Relationalen Datenbank-Entwurf, so werden Beziehungs-Typen zwischen Entitätstypen<br />

(Relationen) im Relationalen Modell abgebildet auf Relationen oder auf Attribute einer<br />

Relation. Die Entitäten als konkrete Objekte werden als Tupel (Datensatz) bezeichnet. Sie<br />

bilden die Zeilen einer Tabelle.<br />

Die Struktur einer Relation wird auch als Relationen-Schema bezeichnet. Das Relationen-<br />

Schema beschreibt den Aufbau der Tupel einer Relation, nicht aber die einzelnen Tupel-<br />

Ausprägungen (Werte). Jedes Tupel einer Relation setzt sich aus den gleichen Relations-<br />

Attributen zusammen. Die Attribute der Relation bilden die Spaltenüberschriften einer<br />

Tabelle. In einer Spalte stehen verschiedene oder gleiche Attributwerte, die alle einer<br />

Domäne angehören.<br />

Atomare Werte der Attribute:<br />

Die Attribute bestehen nur aus einem Wert pro Tupel, nicht aus mehreren Werten. Sie sind<br />

„atomar“.<br />

Abbildung 2-2: Datenstruktur mit einer Periodengruppe (Projekt)<br />

Im Beispiel der Abbildung kann ein Firmen-Mitarbeiter in mehreren Projekten mitarbeiten.<br />

Dies kann durch eine Periodengruppe ausgedrückt werden. Das Feld Projekt kann dabei<br />

mehrere Werte annehmen. Solche Periodengruppen sind aber nicht „atomar“, da mehrere<br />

Werte für ein Attribut existieren. Sie sind also im Rahmen der Relationen nicht zulässig.


2.3 Ein einfaches Beispiel<br />

Ein Relationen-Modell beschreibt Objekte der realen Welt durch eine Menge von Attributen,<br />

die die gemeinsamen Eigenschaften der Objekte repräsentieren. Nachfolgende Abbildung<br />

zeigt ein Beispiel für eine Relation.<br />

Abbildung 2-3: Relation Angestellter<br />

Das Beispiel hat 5 Tupel. Jedes Tupel setzt sich aus 3 Attributen zusammen, von denen<br />

jeder Attributwert einer anderen Domäne entstammt. Die Reihenfolge der Attribute in den<br />

Tupeln muss eingehalten werden. Mit anderen Worten, Attribute müssen immer unter den<br />

dazugehörigen Attributnamen stehen. Eine andere Geschichte ist, dass die Reihenfolge, in<br />

der die Attribute einer Relation gespeichert werden, nicht definiert ist.<br />

Abbildung 2-4: Domänen


2.4 Schlüssel einer Relation<br />

Eine Zusammenstellung von Attributwerten heisst Candidate-Key (Schlüssel- Kandidat),<br />

wenn die Werte, die diese Attribute annehmen, stets ein Tupel eindeutig identifizieren. Ein<br />

Candidate-Key kann aus einem oder mehreren Attributnamen bestehen. Eine Relation kann<br />

einen oder mehrere Candidate-Keys besitzen. Da in einer Relation keine zwei identischen<br />

Tupel existieren, muss es immer mindestens einen Candidate Key - nämlich die<br />

Zusammenstellung aller Attributnamen - geben. Ein Candidate-Key darf keine überflüssigen<br />

Attributnamen enthalten. Diese müssen entfernt werden, jedoch darf keines der Schlüssel-<br />

Attribute vernachlässigt werden, damit die eindeutige Identifizierbarkeit nicht verloren geht.<br />

Mit anderen Worten, ein Candidate-Key umfasst soviel Attributnamen wie nötig und sowenig<br />

wie möglich.<br />

Ein Primary-Key ist ein Candidate-Key, der zum Primary-Key erklärt wird oder der als neues<br />

Attribut (z.B. Personal-Nummer) speziell zu diesem Zweck eingeführt wird. Eine Relation<br />

besitzt genau einen Primärschlüssel. Um auf ein Tupel zugreifen zu können oder ein neues<br />

Tupel einzufügen zu können, ist die Angabe des jeweiligen Primärschlüssels erforderlich.<br />

Fremdschlüssel dienen dazu, um Relationen zu verknüpfen und um die referentielle Integrität<br />

der Datenbank (siehe später) zu gewährleisten. Ein Fremdschlüssel einer Relation muss<br />

dabei immer Primärschlüssel einer anderen Relation sein. Der Fremdschlüssel referenziert<br />

auf ein Tupel der Relation, in der er Primärschlüssel ist. Das Tupel der Relation ist mit dem<br />

Fremdschlüssel und das Tupel der Relation mit dem entsprechenden Primärschlüssel<br />

miteinander durch eine 1 zu n Beziehung verknüpft. Dies wird als Primärschlüssel-<br />

Fremdschlüssel-Prinzip bezeichnet. Um Fremdschlüssel zu kennzeichnen, wird ihnen ein #<br />

Zeichen nachgestellt.<br />

2.5 Relationale Integritätsregeln<br />

Mit der Entity-Integrität wird sichergestellt, dass jedes Tupel (Entity) in einer Relation einen<br />

eindeutigen Schlüssel besitzt. Da NULL-Werte nicht eindeutig sind, darf der Primary-Key<br />

keinen NULL-Wert enthalten. Durch die referentielle Integrität wird sichergestellt, dass jedem<br />

Wert eines Foreign-Keys in einer Relation R2 gleich ist einem Wert des Primary-Keys in<br />

einer Relation R1 oder dass der Wert des Foreign-Keys ein NULL-Wert ist. Referentielle<br />

Integrität bedeutet z.B. dass wenn ein Mitarbeiter aus dem Datenbestand "Mitarbeiter"<br />

verschwindet, dass er dann auch aus dem Datenbestand "Firmenkreditkarte" verschwinden<br />

muss.<br />

2.6 Abbildung Entitätstypen/Beziehungen &<br />

Entitätstypen/Relationen<br />

Nachdem in vorigen Kapitel die Grundlagen des Relationalen Daten-Modells erörtert wurden,<br />

soll nun in diesem Kapitel der Datenbankentwurf im Vordergrund stehen. Auszugehen ist<br />

vom logischen Datenmodell, welches mit Hilfe der Entity- Relationship-Modellierung erstellt<br />

wurde. Die Fragestellung ist nun, wie die Entitätstypen und ihre Beziehungen umzusetzen<br />

sind in Datenbank-Tabellen. Beginnen wir zunächst mit dem einfachsten, der Abbildung von<br />

1 zu 1-Beziehungen. Es folgt dann die Umsetzung von 1 zu n-Beziehungen und last not least<br />

die Abbildung von n zu m-Beziehungen auf Tabellen.


2.7 Übersicht der Kardinalitäten<br />

Eine Kardinalität dient einer genauen Bestimmung einer Beziehung zwischen Entitätstypen.<br />

Sie legt für jede Richtung fest, wieviele Entitäten an einer Beziehung teilnehmen. Dies<br />

geschieht über die Angabe eines Minimum ( 0 oder 1) und eines Maximum ( 1 oder N ).<br />

Notation nach :<br />

Bachmann<br />

1; Genau ein:<br />

(einfache<br />

Assoziation)<br />

C; kein oder ein:<br />

(konditionelle<br />

Assoziation)<br />

M; ein oder mehrere:<br />

(komplexe Assoziation<br />

MC; kein, ein oder mehrere:<br />

Konditionell-komplexe<br />

Assoziation)<br />

Vetter<br />

IEM (James<br />

Martin)<br />

SSADM<br />

Zehnder 1 C m mc<br />

Chen 1:1 0:1 1:N 0:N<br />

Tabelle 2-1: Übersicht der Notationstypen und Kardinalitäten<br />

2.8 Datenbankentwurf für 1 zu 1 -Beziehungen des ERM<br />

Anhand eines Beispiels wird die Modellierung einer 1 zu 1-Beziehung gezeigt. Es werden<br />

zwei Möglichkeiten des Entwurfs vorgestellt. Bei der ersten Möglichkeit werden 2 Relationen<br />

entworfen, bei der anderen nur eine einzige Relation. Den Ausgangspunkt für den Entwurf<br />

stellt das folgende Entity-Relationship-Diagramm dar.<br />

Abbildung 2-5: ERM<br />

Es gibt die Entitätstypen "Mitarbeiter" und "Abteilung", sowie die Beziehung "leitet". Jede<br />

Abteilung wird von einem Mitarbeiter geleitet. Jeder Mitarbeiter kann keine oder maximal 1<br />

Abteilung leiten.


2.8.1 Möglichkeit 1: Entwurf von 2 Relationen<br />

Jeder Entitätstyp wird durch eine eigene Relation dargestellt. Die Beziehung zwischen<br />

beiden Relationen wird hergestellt durch einen Fremdschlüssel in einer der beiden oder in<br />

beiden Relationen. Der Fremdschlüssel entspricht dann dem Primärschlüssel der<br />

verbundenen Relation. Eventuell vorhandene Link-Attribute (hier keine vorhanden) werden<br />

als Attribute in einer der beiden Relationen abgebildet.<br />

In unserem Beispiel leitet ein Mitarbeiter entweder eine oder keine Abteilung (0,1). Würde<br />

man den Fremdschlüssel bei der Relation Mitarbeiter modellieren, hätte man folgendes<br />

Problem: Alle Mitarbeiter, die keine Abteilung leiten, müssten NULL als Attributwert bei dem<br />

Fremdschlüssel (abtlgNr#) haben. Deshalb wird hier entschieden in der Relation<br />

ABTEILUNG mit dem Fremdschlüssel PersNr# den Bezug zwischen beiden Tabellen<br />

herzustellen.<br />

Der Datenbankentwurf sieht dann folgendermassen aus:<br />

Relation (Entitätstyp) MITARBEITER (persNr, name, vorname)<br />

Relation (Entitätstyp) ABTEILUNG (abtlgNr, name, persNr# ... )<br />

Abbildung 2-6: Relationales Modell


2.8.2 Möglichkeit 2: Entwurf von 1 Relation<br />

Abbildung der Entitätstypen auf Attribute dieser Relation<br />

Bei jeder 1 zu 1 Beziehung können die Attribute beider Entitätstypen in einer Relation<br />

zusammengefasst werden, hier in der Relation ABTEILUNG. Dies ist allerdings nur sinnvoll,<br />

wenn der Entitätstyp ANGESTELLTER keine weiteren Beziehungen eingeht und deshalb<br />

nicht eigenständig modelliert wird. Ein Fremdschlüssel ist hier natürlich nicht notwendig.<br />

Der Datenbankentwurf sieht dann folgendermassen aus:<br />

Relation (Entitätstyp) ABTEILUNG (persNr, name, vorname, abtlgNr, name, leiternr... )<br />

Abbildung 2-7: Relationales Modell<br />

2.8.3 Datenbankentwurf für 1 zu n -Beziehungen des ERM<br />

Anhand eines Beispiels soll die Abbildung auf Relationen für 1 zu n-Beziehungen erläutert<br />

werden. In diesem Beispiel arbeiten in einer Abteilung mehrere Mitarbeiter, mindestens<br />

jedoch 1 Mitarbeiter. Jeder Mitarbeiter arbeitet in genau einer Abteilung. Zur Beziehung<br />

gehören 2 Attribute: Eintrittsdatum in die Abteilung und Aufgabe in der Abteilung.<br />

Abbildung 2-8: ERM


Zunächst wäre man versucht, eine Periodengruppe zu entwerfen:<br />

Abbildung 2-9: Entwurf mit Periodengruppen<br />

Periodengruppen sind jedoch - wie Sie bereits wissen - nicht zulässig. Also muss man<br />

anders vorgehen: Ein Entwurf mit nur 1 Relation geht also nicht, man muss 2 Relationen<br />

entwerfen. Jede 1 zu n Beziehung kann durch 2 Relationen definiert werden. Die Beziehung<br />

wird als Fremdschlüssel in der Relation modelliert, deren Tupel n-fach in der Beziehung<br />

auftreten (siehe Modellierungsvergleich auf der nächsten Seite). Der Fremdschlüssel<br />

entspricht dem Primärschlüssel in der 1-fach auftretenden Relation. Würde man den<br />

Fremdschlüssel in der Relation angeben wollen, deren Tupel einfach in der Beziehung<br />

auftreten, so hätte man wieder das Problem der Periodengruppe.<br />

Die Link-Attribute werden in der n-fachen Relation modelliert (im folgenden fett dargestellt).<br />

Der Datenbankentwurf sieht dann folgendermassen aus:<br />

Relation (Entitätstyp) MITARBEITER (persNr, name, vorname, abtlgNr #, eintritt, aufgabe)<br />

Relation (Entitätstyp) ABTEILUNG (abtlgNr, name, leiter, ...)<br />

Abbildung 2-10: Relationales Modell


2.8.3.1 Modellierungsvergleich<br />

Beispiel: 8 Mitarbeiter arbeiten in jeweils einer, von insgesamt 3 Abteilungen.<br />

Abbildung 2-11: Beispiel


Bei der Möglichkeit 2 werden Name und Budget der Abteilung redundant gespeichert, zudem<br />

wird dadurch mehr Speicherplatz benötigt. Deshalb ist Möglichkeit 1 vorzuziehen. Bei einer<br />

1 zu n Beziehung wird also die Beziehung als Fremdschlüssel in der Relation modelliert (hier<br />

Relation Mitarbeiter), deren Tupel n-fach in der Beziehung auftreten.<br />

2.8.4 Datenbankentwurf für m zu n -Beziehungen des ERM<br />

• Zwischen den Entitäten1 und 2 existiert ein Beziehungs-Typ.<br />

• Jeweils m Tupel der Entität 1 können mit n Tupeln der Entität 2 in Beziehung stehen.<br />

• Jede Beziehung hat i Attribute.<br />

Abbildung 2-12: Allgemeine m zu n Beziehung<br />

2.8.4.1 Entwurf für allgemeine m zu n-Beziehungen (n > 1, m > 1)<br />

Die beiden Entitäten werden direkt in zwei Relationen 1 und 2 überführt. Die Beziehung<br />

zwischen der Relation 1 und der Relation 2 wird durch eine neue dritte Relation ausgedrückt.<br />

Der Primärschlüssel der dritten Relation setzt sich aus den Primärschlüssel-Attributen der<br />

Relation 1 und aus den Primärschlüssel-Attributen der Relation 2 zusammen.<br />

Um die obigen Sachverhalte noch etwas zu verdeutlichen, sollen diese anhand eines<br />

Beispiels erläutert werden. Im Beispiel gibt es Projekte, an denen mehrere Mitarbeiter<br />

arbeiten. Ein Mitarbeiter kann in keinem, einem oder mehreren Projekten mitarbeiten.<br />

In den Bildern unten ist der Übergang vom Entity-Relationship-Modell zum Relationalen<br />

Modell zu sehen. Der Entitätstyp Mitarbeiter des ERM wird zur Relation MITARBEITER im<br />

Relationalen Modell, aus dem Entitätstyp Projekt wird die Relation PROJEKT und aus der<br />

Beziehung "arbeitet mit an" wird die Relation MA_PROJEKT. Zur Beziehung gehören zwei<br />

Attribute:<br />

Abbildung 2-13: ERM


Der Datenbankentwurf sieht dann folgendermassen aus:<br />

• Relation MITARBEITER (persNr, name, vorname, abtlgNr, ... )<br />

• Relation PROJEKT (projektNr, name, leiter, ... )<br />

• Relation MA_PROJEKT (persNr#, projektNr#, aufgabe, dauer )<br />

Abbildung 2-14: Relationales Modell<br />

Im Folgenden werden die Relationen-Schemata dargestellt:<br />

Tabelle 2-2: Relationen Schemata zu Beispiel


2.9 Normalisierung<br />

2.9.1 Wozu Normalisierung<br />

Die Normalisierung hilft uns beim fachgerechten Entwurf von relationalen Datenmodellen.<br />

Bei Beachtung der Normalisierungsregeln werden Redundanzen beseitigt und<br />

Updateanomalien vermieden.<br />

Eine Normalisierung findet stets aufgrund bereits bestehender Tabellen statt. Ist die Aufgabe<br />

in Textform gegeben, müssen die Tabellen zuerst erzeugt werden. Dafür werden geeignete<br />

Testdaten benötigt, die den Wertebereich der Aufgabenstellung abdecken. Die<br />

Normalisierung kann nur bezogen auf diese Daten stattfinden. Mit anderen Daten ergibt sich<br />

eine andere Normalisierung. Anhand eines hier durchgeführten Beispiels sollen nun die<br />

Grundlagen und Regeln der Normalisierung bekannt gemacht werden.<br />

2.9.2 Beispiel 1<br />

An einer Fachhochschule für Technik werden Vorlesungen von Dozenten gehalten. Die<br />

Dozenten gehören zu einem Fachbereich, welcher von einem Dekan geleitet wird. Die<br />

Verwaltung erfolgt in einer relationalen Datenbank. Dann könnte ein Eintrag in der<br />

Datenbank wie folgt aussehen:<br />

Tabelle 2-3: Beispiel Dozenten<br />

Als ein Pflegeproblem dieses Beispiels (weitere folgen später), sei hier das folgende<br />

erwähnt:<br />

• Ändert sich die maximale Anzahl der Studenten in einem Semester, so muss in jedem<br />

Eintrag in der Datenbank, in dem die Anzahl Studenten vorkommt, die maximale Anzahl<br />

der Studenten geändert werden<br />

• Wird ein Eintrag vergessen, kommt es zu Inkonsistenzen Abhilfe schafft die<br />

Normalisierung. Dann genügt ein Zugriff auf ein Tupel. Inhaltliche widersprüchliche<br />

Datensätze kommen somit nicht vor. Zudem werden die Updates sehr<br />

änderungsfreundlich (Minimalisierung der Anzahl der Updates).<br />

Wie die Übersicht zeigt, gibt es viele verschiedene Normalformen. In der Praxis<br />

beschränkt man sich jedoch auf die dritte Normalform.


Tabelle 2-4: Übersicht Normalformen<br />

Jede Normalform enthält implizit die vorgehende Normalform (die 3. Normalform enthält die<br />

zweite und damit die erste Normalform). Um auf eine Normalform zu kommen, müssen nicht<br />

zwangsweise die vorgehenden Normalformen durchlaufen werden ( d.h. man kann z.B. mit<br />

etwas Übung direkt auf die 3. NF kommen).<br />

2.9.2.1 Unnormalisierte Relationen<br />

Eine Relation heisst unnormalisiert, wenn die Attribute nicht atomare Werte enthalten,<br />

gegenseitig Beziehungen eingehen oder nicht funktionell abhängig vom eindeutigen<br />

Primärschlüssel sind.<br />

Tabelle 2-5: Beispiel Hochschulbetrieb<br />

Wie in diesem Beispiel (Hochschulbetrieb 1) zu sehen ist, werden alle 3 Normalformen<br />

verletzt.


2.9.2.2 Erste Normalform<br />

Eine Relation befindet sich in der 1. Normalform, wenn alle zugrunde liegenden<br />

Wertebereiche nur atomare Werte enthalten. Vor der Überführung in die zweite Normalform<br />

ist die Einführung des Primärschlüssels von Bedeutung. Der Primärschlüssel muss so<br />

gewählt werden, dass jede Zeile eindeutig ist. In diesem Beispiel wählen wir Dozent_Nr,<br />

Semester und Fach als Primärschlüssel aus.<br />

Wir sehen hier die Relation, in der die 1. NF erfüllt ist, aber die 2. und die 3. NF verletzt sind.<br />

Tabelle 2-6: Beispiel Hochschulbetrieb 2<br />

2.9.2.3 Zweite Normalform<br />

Eine Relation ist in 2. Normalform, wenn sie in 1. Normalform ist und wenn jedes<br />

Nichtschlüsselattribut voll funktional abhängig ist vom Primärschlüssel. Felder, die nur von<br />

einem Schlüsselteil abhängen, werden separat modelliert. Die zweite Normalform kann somit<br />

nur verletzt werden, wenn der Primärschlüssel aus mehr als einem Attribut<br />

zusammengesetzt ist.<br />

In diesem Beispiel ist die 1. und 2. Normalform erfüllt. Aus einer Tabelle entstehen 3<br />

Tabellen (separate Modellierung). Das ist notwendig, da<br />

• die Anzahl der Stunden nur vom jeweiligen Semester abhängt<br />

• und da Anz_Stud/Fachbereich/Dekan_Nr nicht voll funktional abhängig sind von<br />

Semester/Dozent-Nr/Fach (Primärschlüssel)<br />

Tabelle 2-7: Hochschulbetrieb 3 – 1. Tabelle


Tabelle 2-8: Hochschulbetrieb 3 – 2. Tabelle<br />

Tabelle 2-9: Hochschulbetrieb 3 – 3. Tabelle<br />

Beachten Sie, dass die Relation Dozent/Vorlesung den zusammengesetzten Primärschlüssel<br />

Semester/Dozent-Nr/Fach besitzt.<br />

Vorteil: Ändert sich die max. Anzahl der Studenten eines Semesters, so genügt jetzt das<br />

Updaten eines Tupels.


2.9.2.4 Dritte Normalform<br />

Eine Relation ist genau dann in der 3. Normalform, wenn sie in 1. und 2. NF ist und wenn<br />

alle Nichtschlüsselattribute gegenseitig unabhängig, aber voll funktional abhängig vom<br />

gesamten Primärschlüssel sind.<br />

Im Beispiel Hochschulbetrieb 3 ist Dozent_Nr der Primärschlüssel der Relation Dozent. Die<br />

Attribute Fachbereich/Dekan_Nr sind Nichtschlüsselattribute. Da sie gegenseitig abhängig<br />

sind (zu einem Fachbereich gehört der entsprechende Dekan) ist die dritte Normalform<br />

verletzt. Dies ist im Beispiel Hochschulbetrieb 4 korrigiert: es entsteht eine weitere Tabelle<br />

(Dekan).<br />

Tabelle 2-10: Beispiel Hochschulbetrieb 4 – 3. Normalform


Vorteil: Wechselt jetzt ein Dozent den Fachbereich oder ändert sich der Dekan in einem<br />

Fachbereich, so genügt jetzt das Updaten eines einzigen Attributes.<br />

Mit der Modellierung in 4 Tabellen erreichen wir in diesem Beispiel die Einhaltung aller 3<br />

Normalformen.<br />

2.9.3 Beispiel 2<br />

Nicht normalisierte Tabelle:<br />

Tabelle 2-11: Beispiel 2 – Nicht normalisierte Tabelle


2.9.3.1 Erste Normalform<br />

Die erste Normalform beinhaltet nur atomare Feldinhalte. In jedem Feld darf nur ein Wert<br />

stehen. Überzählige Werte führen zu neuen Zeilen.<br />

Tabelle 2-12: Beispiel 2 – 1. Normalform<br />

Vor der zweiten Normalform führen wir den Primärschlüssel ein. In diesem Beispiel handelt<br />

es sich um einen aus drei Attributen zusammengesetzten Primärschlüssel.<br />

Primärschlüsselattribute werden unterstrichen dargestellt. Es wäre hier auch möglich<br />

gewesen, den Primärschlüssel aus anderen Schlüsseln zusammenzusetzen. Es wäre<br />

möglich statt der Matrikelnummer den Studentennamen und statt der Vorlesungsnummer<br />

den Vorlesungstitel zu verwenden. Die Möglichkeit wie der Schlüssel gesetzt werden kann,<br />

wird durch die verwendeten Testdaten bestimmt


2.9.3.2 Zweite Normalform<br />

Bei der Überführung in die zweite Normalform werden die Nichtschlüsselattribute betrachtet.<br />

Sie dürfen nur vom Gesamtschlüssel abhängen, nicht von Teilschlüsseln. Dies wird als<br />

funktionale Abhängigkeit bezeichnet. In unserem Beispiel ist der Student von der<br />

Matrikelnummer und die Vorlesung von der Vorlesungsnummer abhängig. Beide sind jedoch<br />

nur vom Teilschlüssel abhängig. Deshalb werden zwei neue Tabellen gebildet.<br />

Tabelle 2-13: Beispiel 2 – 2. Normalform


2.9.3.3 Dritte Normalform<br />

In der dritten Normalform darf es keine funktionalen Abhängigkeiten geben zwischen<br />

Attributen, die nicht zum Schlüssel gehören. Durch geeignete Wahl der Testdaten und des<br />

Primärschlüssels bei der 1. Normalform befindet sich dieses Beispiel bereits in der dritten<br />

Normalform.<br />

2.9.3.4 Redundanzfreiheit<br />

Die Tabelle oben dargestellte Tabelle weist jedoch immer noch redundante Information auf.<br />

Es handelt sich um die Verschmelzung zweier einfacherer Relationen. Durch eine<br />

Normalisierung bis zur 5. Normalform zerfällt diese Tabelle in zwei Tabellen:<br />

Tabelle 2-14: Beispiel 2 - Redundanzfreiheit<br />

Es ist nicht erforderlich, dass nur zwei Spalten pro Tabelle übrig bleiben! Dies ergibt sich<br />

lediglich durch unser einfach gewähltes Beispiel.


3 Modellierung<br />

Aufgabenstellung:<br />

Für eine Modellierung wird meist eine Beschreibung der Aufgabe als Ausgangspunkt<br />

verwendet:<br />

Für eine Fachhochschule soll ein Verwaltungsprogramm für Professoren, Studenten und<br />

Vorlesungen erstellt werden. Professoren besitzen einen Namen. Studenten besitzen einen<br />

Namen und eine Matrikelnummer. Jede Vorlesung hat ihre eigene Vorlesungsnummer und<br />

einen Vorlesungstitel. Jeder Student kann mehrere Vorlesungen besuchen. Ein Professor<br />

kann mehrere Vorlesungen halten. In einer Vorlesung können mehrere Studenten sein. Eine<br />

Vorlesung kann von mehreren Professoren gehalten werden.<br />

Je nach Modellierungsart entstehen aus dem Text Entitäten, Relationen oder Objekte. Diese<br />

enthalten verschiedene Attribute und sind untereinander mit Beziehungen verknüpft.<br />

Objekt-Darstellungsform:<br />

Abbildung 2-15: Objekte<br />

Ein solches Modell lässt sich einfach in relationale Tabellen umwandeln. Die hier<br />

dargestellten m:n Verknüpfungen müssen aufgelöst werden, indem Zwischentabellen<br />

(Zwischenrelationen) erzeugt werden.<br />

Relationale Darstellungsform:<br />

Jeder Relation wird ein eindeutiger Primärschlüssel hinzugefügt. Die Beziehungen werden<br />

über Fremdschlüssel aufgelöst. Die Trennung zwischen fachlichen Attributen und<br />

Beziehungsattributen erleichtert die Arbeit mit den Tabellen. Die Beziehungsattribute sind in<br />

der unteren Grafik mit Grossbuchstaben abgekürzt. Primärschlüssel sind wieder<br />

unterstrichen, Fremdschlüsseln folgt das Zeichen ‘#’.<br />

Abbildung 2-16: Relationale Darstellungsform


Tabellen:<br />

Mit den Beispieldaten der Normalisierung ergeben sich folgende Tabellen. Es sind in diesem<br />

Beispiel relationale Tabellen entstanden, die der dritten Normalform genügen. Es ist<br />

ausserdem leicht ersichtlich, dass diese Tabellen redundanzfrei sind.<br />

Tabelle 2-15: Tabellen nach Normalisierung


3.1 Vergleich der Methoden<br />

Nachfolgendes Schema zeigt den Zusammenhang zwischen Modellierung und<br />

Normalisierung. Bei einer Aufgabenstellung in Form einer nicht normalisierten Tabelle ist nur<br />

der Schritt der Normalisierung notwendig. Dieser ist jedoch äusserst schwierig. Diese<br />

Aufgabenstellung kommt in der Praxis auch kaum vor. Weit häufiger hat man zum Beispiel<br />

nach einer Besprechung eine Aufgabenstellung in textueller Form vorliegen. Bei dieser sind<br />

bei beiden Wegen zwei Schritte notwendig. Bei der Erstellung einer Tabelle aus einer<br />

Textaufgabe ergibt sich das Problem die richtigen Testdaten zu finden. Diese sollen<br />

möglichst alle auftretenden Möglichkeiten abdecken.<br />

Abbildung 2-17: Modellierung und Normalisierung – Methoden<br />

3.1.1 Modellierung impliziert Normalisierung<br />

Mit einer sachgerechten Modellierung kann man sich die schwierige Normalisierung<br />

ersparen. Die einzelnen Schritte der Normalisierung werden implizit bei der Modellierung<br />

durchgeführt:<br />

• Normalform Atomare Werte - Die Attribute der verschiedenen Modellierungsverfahren<br />

sind per Definition bereits atomar. Es können nicht zwei Werte in einem Attribut<br />

gespeichert werden. Werte von Attributen sind nicht teilbar.<br />

• Normalform funktionale Abhängigkeit<br />

• Normalform transitive Abhängigkeit<br />

Durch die fachliche Modellierung werden die Attribute den Objekten zugeordnet. Sie sind<br />

somit stets vom Objekt funktional abhängig. Für alle nicht fachlichen Abhängigkeiten<br />

zwischen Relationen, die bei der Auflösung von Vererbung, usw. entstehen, gibt es feste<br />

Umwandlungsregeln.


Über die oben beschriebene dritte Normalform hinaus wird mit einer Modellierung meist eine<br />

Redundanzfreiheit erreicht, die beim Normalisierungsverfahren erst in der 5. Normalform<br />

erreicht wird. Die Modellierung mit modernen Verfahren bietet darüber hinaus die Möglichkeit<br />

komplexere Konstrukte wie Vererbung (Generalisierung -Spezialisierung) und Aggregation<br />

zu verwenden. Für die Umwandlung eines Modells in konkrete Datenbanktabellen gibt es<br />

bereits Softwarewerkzeuge.<br />

3.2 Zusammenfassung<br />

Im folgenden Bilde werden die ersten drei Normalformen noch einmal zusammengestellt:<br />

Abbildung 2-18: Darstellung der ersten drei Normalformen<br />

Werden die Daten von Programmsystemen in Dateien gespeichert, so führt dies in der<br />

Praxis oft zur redundanten Speicherung der Daten und damit auch zu inkonsistenten<br />

Datenbeständen. Ein Programm muss die physikalische Speicherung der Daten kennen,<br />

sowie Routinen für das Lesen, Schreiben, Aktualisieren, Suchen vor allem für das<br />

Fehlerhandling beinhalten. Was man aber haben will, ist dass Programme unabhängig von<br />

der physikalischen Speicherung sind (Datenunabhängigkeit der Programme), und dass die<br />

Routinen für das Lesen, Schreiben, Aktualisieren, Suchen und Fehlerhandling nur einmal<br />

zentral vorhanden sein müssen. Solche Vorteile werden von<br />

Datenbankmanagementsystemen geboten. Beim Zugriff auf Datenbanken gibt es interne<br />

Satzschnittstellen, logische Satzschnittstellen und mengenorientierte Schnittstellen.<br />

Relationale Datenbanken besitzen eine mengenorientierte Schnittstelle. Relationale<br />

Datenbanken enthalten Relationen, die in Form von Tabellen dargestellt werden. Die<br />

Relationen entsprechen den Entitätstypen des Entity-Relationship Modells. Ein Attribut eines<br />

Entitätstyps entspricht einem Attribut einer Relation und stellt eine Spalte einer Tabelle dar.<br />

Eine Zeile (Tupel) entspricht einer konkreten Entität des Entitättyps. Die Attribute bestehen<br />

nur aus einem Wert pro Tupel, nicht aus mehreren Werten. Sie sind „atomar“. Eine<br />

Zusammenstellung von Attributwerten heisst Candidate-Key, wenn die Werte, die diese<br />

Attribute annehmen, stets ein Tupel eindeutig identifizieren. Eine Relation kann einen oder<br />

mehrere Candidate-Keys besitzen. Ein Primary-Key ist ein Candidate-Key, der zum Primary-<br />

Key erklärt wird oder der als neues Attribut speziell zu diesem Zweck eingeführt wird.<br />

Fremdschlüssel dienen dazu, um Relationen zu verknüpfen und um die referentielle Integrität<br />

zu gewährleisten. Durch die referentielle Integrität wird sichergestellt, dass jedem Wert eines<br />

Foreign-Keys in einer Relation R2 gleich ist einem Wert des Primary-Keys in einer Relation<br />

R1 oder dass der Wert des Foreign-Keys ein NULLWert ist. Referentielle Integrität bedeutet


z.B., dass wenn ein Mitarbeiter aus dem Datenbestand "Mitarbeiter" verschwindet, er dann<br />

auch aus dem Datenbestand "Firmenkreditkarte" verschwinden muss.<br />

Für den Datenbankentwurf müssen nun die Entitätstypen und die Beziehungen zwischen<br />

Entitätstypen abgebildet werden auf Relationen. Eine 1 zu 1 –Beziehung kann dabei auf 2<br />

Relationen oder auf 1 Relation abgebildet werden. Im zweiten Fall werden die Entitätstypen<br />

auf Attribute dieser Relation abgebildet. Eine 1 zu n Beziehung wird auf 2 Relationen<br />

abgebildet, eine n zu m Beziehung auf 3 Relationen.<br />

Um Redundanzen zu beseitigen und Update-Anomalien zu vermeiden, werden die<br />

Relationen normalisiert. In der Praxis geht man bis zur 3. Normalform. Da die Normalisierung<br />

aber die Zahl der Tabellen erhöht, gibt es in der Praxis auch Fälle, wo man aus<br />

Performance-Gründen auch nicht normalisierte Relationen verwendet. Jede Normalform<br />

enthält implizit die vorhergehende Normalform (die 3. Normalform enthält die 2. und damit<br />

die 1. Normalform). Eine Relation befindet sich in der ersten Normalform, wenn alle Attribute<br />

nur atomare Werte enthalten. Eine Relation ist in der 2. Normalform, wenn sie in 1.<br />

Normalform ist und wenn jedes Nichtschlüsselattribut voll funktional abhängig ist vom<br />

Primärschlüssel. Felder, die nur von einem Schlüsselteil abhängen, werden separat<br />

modelliert. Die zweite Normalform kann somit nur verletzt werden, wenn der Primärschlüssel<br />

aus mehr als einem Attribut zusammengesetzt ist. Eine Relation ist genau dann in der 3.<br />

Normalform, wenn sie in 1. und 2. Normalform ist und wenn alle Nichtschlüsselattribute<br />

gegenseitig unabhängig sind, aber voll funktional abhängig vom gesamten Primärschlüssel<br />

sind. Wenn Attribute gegenseitig abhängig sind, entsteht eine weitere Tabelle. [3]<br />

4 Quellen<br />

Nr. Quelle Abbildungen/Text<br />

[1] Fachhochschule Stralsund – Prof. Dr. Text/Abbildungen<br />

Uwe Hartmann<br />

[2] Uni Trier – Michael Ley Text<br />

[3] Steinbeiss Transferzentrum Text/Abbildungen<br />

5 Information über Dokument<br />

Version 1.0<br />

Letzte Änderung 30. April 2003<br />

Copyright<br />

Für Copyrightinformationen bitte<br />

die Anmerkungen/Fussnoten<br />

beachten, alles übrige Roland<br />

Lenz<br />

Homepage<br />

http://www.2cool4u.ch/<br />

Historie Version Datum<br />

Dokument erstellt 1.0 30. April 2003

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!