Skriptum ADAT Datenmodellierung

Werbung
Datenmodellierung
Haas, Resch
Skriptum ADAT
Datenmodellierung
August 2003
Resch Andreas
1. EINLEITUNG ............................................................................................................................ 3
2. DREI SCHICHTENMODELL EINES DATENBANKS YSTEMS ..................................................... 5
2.1. LOGISCHE S CHICHT ( EXTERNES S CHEMA ).................................................................................. 5
2.2. KONZEPTIONELLE S CHICHT (KONZEPTIONELLES SCHEMA ) ............................................................ 6
2.3. PHYSISCHE SCHICHT ( INTERNES S CHEMA ) ................................................................................. 7
3. HISTORISCHER ÜBERBLICK DATENBANKSYSTEME............................................................. 8
3.1. DATEIEN .............................................................................................................................. 8
3.1.a. sequentielle Datenträger ................................................................................................ 9
3.1.a. Datenträger mit direktem Zugriff (ab 1958) ...................................................................... 9
3.1.c. VSAM (erweitertes Dateisystem) .................................................................................... 9
3.2. DATENBANKSYSTEME ............................................................................................................. 9
3.2.a. hierarchische Datenbanken (1960)................................................................................10
3.2.b. Netzwerkdatenbank ......................................................................................................11
3.2.c. relationale Datenbanken ...............................................................................................11
3.2.d. objektorientierte Datenbanken (OODB)..........................................................................11
3.2.e. Textdatenbanken .........................................................................................................12
3.2.f. XML / XSLT ..................................................................................................................12
4. EINFÜHRUNG IN DIE DATENMODELLIERUNG.......................................................................13
4.1. GRUNDLEGENDE B EGRIFFE....................................................................................................13
4.2. BEZIEHUNGEN (R ELATIONEN ) .................................................................................................14
4.3. PRIMARY KEY (P RIMÄRSCHLÜSSEL ).........................................................................................14
4.4. SECONDARY KEY (F REMDSCHLÜSSEL ) .....................................................................................15
4.5. GRAD (K ARDINALITÄT) EINER B EZIEHUNG .................................................................................17
4.5.1. Kardinalität 1:1.............................................................................................................17
4.5.2. Kardinalität 1:N ............................................................................................................17
4.5.3. Kardinalität M:N ...........................................................................................................18
5. NOTATIONSFORMEN EINES DATENMODELLS ......................................................................18
5.1. CHEN D IAGRAMME................................................................................................................18
6. VORGEHENSWEISEN BEI DER DATENMODELLIERUNG .......................................................20
6.1. DISZIPLINIERTES TOP / DOWN.................................................................................................20
6.2. "JOJO TECHNIK " ...................................................................................................................20
7. NORMALFORMEN ..................................................................................................................21
7.1. INTEGRITÄTSBEDINGUNGEN....................................................................................................21
7.1.1. Semantische Integrität ..................................................................................................22
-1-
Datenmodellierung
Haas, Resch
7.1.2. referentielle Integrität ....................................................................................................22
7.1.3. operationale Integrität ...................................................................................................23
7.2. UNNORMALISIERT (N ULLTE N ORMALFORM) ...............................................................................23
7.3. DIE 1. NORMALFORM ............................................................................................................24
7.4. DIE 2. NORMALFORM ............................................................................................................25
7.4.1. Funktionale Abhängigkeit (ein Attribut)...........................................................................25
7.4.2. Funktionale Abhängigkeit (mehrere Attribute).................................................................26
7.4.3. Vorgehensweise:..........................................................................................................26
7.5. DIE 3. NORMALFORM ............................................................................................................27
7.5.1. transitive Abhängigkeit..................................................................................................27
8. UMSETZUNG VON ER MODELLEN IN RELATIONALE MODELLE (NACH DER KARDINALITÄT)
29
8.1. 1:N BEZIEHUNG ...................................................................................................................29
8.2. 1:1 BEZIEHUNG ....................................................................................................................29
8.3. M:N BEZIEHUNG ...................................................................................................................30
9. NULL / FAKTUM "LEER".........................................................................................................31
10. GENERALISIERUNG (SUPER / SUBTYP) ..............................................................................32
11. TEXTANALYSE.....................................................................................................................32
11. TEXTANALYSE.....................................................................................................................33
11.1. DAS R EGELWERK DER TEXTANALYSE.....................................................................................33
11.2. EIN EINFACHES B EISPIEL ......................................................................................................39
12. DATENMODELLIERUNG MIT ERWIN ....................................................................................41
13. BÄUME IN TABELLEN ..........................................................................................................42
-2-
Datenmodellierung
Haas, Resch
1. Einleitung
Überall dort, wo es um die Aufbewahrung oder Verarbeitung von großen Datenmengen geht, sind
Datenbanksysteme im Spiel. Diese "Informations - Lager" sind darauf spezialisiert, den Umgang mit
großen Datenmengen zu vereinfachen. Dazu wird meist eine standardisierte Schnittstelle (SQL, ...)
zur Verfügung gestellt.
Folie: (Datenmodellierung) Datenbanksystem
Was versteht man eigentlich unter einem Datenbanksystem ?
Es gibt keine klare Definition - Es ist ein System zur Beschreibung, Speicherung und
Wiedergewinnung von Daten.
Ein Beispiel für ein solches Datenbanksystem ist etwa Microsoft Access.
Ein Datenbanksystem besteht also aus zwei Komponenten: Der Datenbasis und dem
Datenbankmanagementsystem.
Ein Datenbankmanagementsystem ist für die Verarbeitung der Daten und die Wartung der
Datenstrukturen zuständig.
Was ist eine Datenbasis bzw. Datenbank ?
Eine Datenbank ist eine Ansammlung von Daten, zum Beispiel im betrieblichem Umfeld.
Die zu Grunde liegende Datenstruktur muss ausreichend gut an das Problem (Aufgabenstellung) des
Benutzers angepasst sein.
Beispiel:
Die Bibliothekarin verwaltet die Aus - und Rückgabe von Büchern in der Schul-Bibliothek. Die
tägliche Arbeit (Anforderung) und Realisierung (Abbildung) in der Datenbank müssen
übereinstimmen!
- Wer darf Bücher entlehnen?
- gibt es eine maximale Bücheranzahl?
- darf ein Buch entliehen werden, wenn noch viele ausständig sind?
- werden Gebühren verrechnet?
- werden die Adressen und Telefonnummern erfasst?
- darf ein Entlehner mehr als eine Adresse oder Telefonnummer haben?
....
Der Prozeß, indem diese ausreichend passende Datenstruktur entworfen wird nennt man
Datenmodellierung - oder etwas theoretischer:
Das Abbilden eines relevanten Ausschnitts der Umwelt in einem technischen System.
-3-
Datenmodellierung
Haas, Resch
Um eine benutzbare Anwendung zu realisieren sind aber folgende Schritte notwendig:
Folie: (Datenmodellierung) Schritte zur Realisierung
N
Analyse:
- Anforderungsanalyse (-> Projektentwicklung)
Die Anforderungsanalyse ist eine Art Brainstorming, indem wir den gesamten für uns relevanten
Wirklichkeitsausschnitt genau ansehen.
•
•
•
•
Dazu holen wir alle nötigen Informationen über die Anforderungen ein
informieren uns über Randbedingungen auf deren Gestaltung wir keinen Einfluß haben
(langsames Netzwerk, Technik der PC`s, Firmen Logos, ...)
bestimmen die Grenzen des Systems und
seine geplante Funktionalität.
Die Anforderungsanalyse ist in der Regel durch die Angabe des Übungsbeispiels vorweg genommen.
- ER - Modelle
Die Anforderungsanalyse wird zumeist in (technischer) Umgangssprache niedergeschrieben. In dieser
Form können wir aber keine exakten Aussagen über den Umfang und die Leistungsfähigkeit treffen.
Wir benötigen eine exakte Notationsform, die zum einen für die Kunden und Entwickler verständlich ist
und auf der anderen Seite so genau ist, dass wir daraus ein konkretes Syste, implementieren können.
Mit diesen beiden Schritten werden wir uns zu Beginn beschäftigen!
N
Design
- Umsetzung des ER Modells in Relationen.
Diese kann man sofort als Tabelle realisieren, wenn da nicht noch eine Kleinigkeit wäre:
- Normalisierung
Die Normalisierung ist eine Optimierung und ein entfernen von Anomalien.
N
Implementierung
Nun bewegen wir uns in einem konkreten Datenbanksystem und erstellen dort Tabellen bzw. ändern
den Inhalt der Tabellen.
-4-
Datenmodellierung
Haas, Resch
2. Drei Schichtenmodell eines Datenbanksystems
Sehen wir uns nun den Aufbau bzw. die Vorgehensweise zum Arbeiten mit Datenbanksystemen vo n
einer anderen Seite an. Wir gehen nun auf eine Sichtweise die auf unterschiedliche
Abstraktionsebenen bzw. Anwendungsschichten zielt.
Das drei Schichtenmodell (oder auch oft Drei-Schema-Konzept) wurde 1975 vom Standard Planing
and Requirements Comitee (SPARC) und dem American Standards Comite on Computers and
Information Processing (ANSI/X3) als Vorschlag für die Standardisierung von Datenbankarchitekturen
entwickelt.
Folie: (Datenmodellierung) Drei Schichtenmodell
Die Beschreibung der Daten erfolgt auf drei verschiedenen Ebenen, die unterschiedliche Sichtweisen
auf die Daten ermöglichen und gleichzeitig für Datenunabhängigkeit sorgen.
2.1. logische Schicht (externes Schema)
Das externe Schema ist die Sicht des Benutzers auf die Daten. Unter einem externen Schema
versteht man anwendungsbezogene Sichten auf Teilbereiche des konzeptionellen Schemas. Dem
Benutzer werden dabei die Daten in einer für ihn geeigneten Form zur Verfügung gestellt.
Beispiel:
In einer Datenbank sind Personaldaten gespeichert. Bestimmten Mitarbeitern darf man nur den
Name und die Anschrift der Personaldaten zugänglich machen, während anderen Mitarbeitern der
Zugriff auf die gesamten Personaldaten möglich sein muss.
Das externe Schema wird unter Zuhilfenahme von einer Datenmanipulationssprache (DML), die vom
Datenbanksystem zur Verfügung gestellt wird, aus dem konzeptionellen Schema abgeleitet.
Dem Benutzer werden mittels DML Sprachelemente zur Kommunikation mit dem Datenbanksystem
zur Verfügung gestellt, die ihm das Wiederauffinden und Ändern von Daten, d.h. die
Datenmanipulation, ermöglichen.
Der Benutzer muss keine Kenntnisse über den internen Aufbau einer Datenbank besitzen. Für ihn ist
es unerheblich, welche Daten in welchen Tabellen abgespeichert werden.
Beispiel:
Wenn man eine Reise - über das Internet - buchen will, können wir, in diesem Beispiel, über die
Eingabefelder: Erwachsene, Abreise ab, Reisedauer, Reiseart, Nur Schnäppchen und Preis in DM
unseren Reisewunsch spezifizieren.
Das Buchungssystem listet eine Auswahl aller möglichen Reiseangebote auf.
-5-
Datenmodellierung
Haas, Resch
Um eine Reise zu buchen müssen wir nicht wissen wie die Datenbank intern aufgebaut ist,
sondern nur das Buchungssystem bedienen können.
Folie: (Datenmodellierung) logische Schicht
2.2. konzeptionelle Schicht (konzeptionelles Schema)
Die konzeptionelle Schicht nimmt im 3-Schichtenmodell eine zentrale Stellung ein.
Es wird jener Teil der realen Welt, der für eine Anwendung relevant ist, abgebildet. Das konzeptionelle
Schicht stellt eine Gesamtsicht auf die Daten eines Unternehmens auf logischer Ebene dar, ohne
darauf Rücksicht zu nehmen, wie die Anwendung später realisiert wird und welches
Datenbankmanagementsystem zum Einsatz kommt.
Auf konzeptioneller Ebene wird festgelegt, was in der Datenbank gespeichert werden soll, d.h. welche
Daten gespeichert werden sollen, wie diese genau aussehen und wie die Daten untereinander in
Beziehung stehen.
Folie: (Datenmodellierung) konzeptionelle Schicht
Beispiel:
Beim Entwurf des konzeptionellen Schemas eines Flugbuchungssystems wird festgelegt, dass es
einen Entitätstypen KUNDE mit den Attributen "Kundennummer", "Name", "Vorname" gibt.
Außerdem besteht zwischen den Entitätstypen KUNDE und FLUGBUCHUNG eine Beziehung.
Die Attribute "Haarfarbe" oder "Körpergewicht" des Entitätstypen KUNDE sind hingegen für die
Erstellung eines Flugbuchungssystems nicht relevant und werden daher auch nicht beim Entwurf
des konzeptionellen Schemas berücksichtigt.
-6-
Datenmodellierung
Haas, Resch
Charakteristisch für das konzeptionelle Schema ist, dass es einen relativ stabilen Bezugspunkt im
gesamten Unternehmensmodell darstellt. Änderungen der externen Sicht wie beispielsweise die
Entwicklung neuer Anwendungsprogramme, berühren das konzeptionelle Schema nicht.
Das ist also unser das Hauptthema für die nächste Zeit!
2.3. physische Schicht (internes Schema)
Das interne Schema ist die physikalische Speicherung der Daten auf den Datenträgern.
Es wird der mögliche Zugriff auf die Daten, d.h. wie und wo die Daten gespeichert werden, definiert.
Neben der Speicherung der Daten in einer zentralen Datenbank ist auch der Einsatz verteilter
Datenbanken möglich. Vom internen Schema ist die Performance einer Datenbank sehr stark
abhängig.
Beispiel:
Auf dieser Ebene wird festgelegt, in welcher Reihenfolge die Felder "Kundennummer", "Vorname",
"Name" und "Ort" gespeichert werden und wie die Dateiorganisation aussieht.
•
•
•
•
Wie ist die Datenbank (Dateiorganisationsformen, ...) realisiert?
Wie werden die Daten auf einem Datenträger gespeichert?
Welches Betriebssystem wird verwendet?
Wie kann eine Abfrage möglichst schnell bearbeitet werden?
Ein wichtiger Aspekt der Relationalen Datenbanken ist, daß die physische und die konzeptionelle
Schicht NICHT von einander abhängen dürfen:
Der Zugriff auf die Daten erfolgt nur mit Bordmitteln des Datenbanksystems, ein direkter Zugriff (von
aussen ist NICHT möglich!).
Wenn die physische Schicht ausgewechselt wird (SAP: unterschiedliche Datenbanksysteme erlaubt),
dann funktioneren alle Abfragen etc. ohne Änderung - die konzeptionelle und externe Schicht sind
davon NICHT betroffen!
Mit diesen Aufgabenstellungen werden wir uns bei den Datenträgern und der
Datenspeicherung beschäftigen!
-7-
Datenmodellierung
Haas, Resch
3. Historischer Überblick Datenbanksysteme
3.1. Dateien
Bis Ende der 70iger Jahre war die klassische, dateiorientierte Datenhaltung vorherrschend.
Charakteristisches Merkmal der Dateiorientierung ist, dass für jede Anwendung die Daten in
separaten Dateien gespeichert werden (siehe Abb. 1). Dies führt dazu, dass eine erhebliche Anzahl
von Insellösungen entsteht und viele Daten redundant gespeichert werden.
Beispiel:
In Unternehmen A sind 200 Mitarbeiter beschäftigt.
Personaldatei
Jeder Mitarbeiter erhält monatlich ein bestimmtes Gehalt.
Die monatliche Gehaltsabrechnung erfolgt über ein Lohnverrechnungsprogramm, welches als
Datenbasis eine Personaldatei verwendet. In dieser sind neben der Mitarbeiternummer der Name des
Mitarbeiters, die Abteilungsnummer, die Bezeichnung der Abteilung und Angaben zum Gehalt des
Mitarbeiters gespeichert.
Mitarbeiter
nummer
1
2
3
Name
Vorname
MUELLER HANS
MAIER
PETER
MUELLER FRANZ
Abteilungs
nummer
IV
IV
V
Abteilungsname
Gehalt
MARKETING
MARKETING
VERKAUF
23990
23990
25987
Projektdatei
Das Unternehmen ist in mehrere Abteilungen gegliedert, wobei jede dieser Abteilungen ein oder
mehrere Projekte bearbeitet.
Jeder Mitarbeiter ist an ein oder mehreren Projekten im Unternehmen beteiligt. In einer Projektdatei
sind sämtliche relevanten Informationen zur Projektverwaltung gespeichert. Zu jedem Mitarbeiter gibt
es neben den Mitarbeiterdaten, Informationen zur Abteilung sowie zu sämtlichen Projekten, an denen
ein Mitarbeiter beteiligt ist.
Mitarbeiter
nummer
1
2
3
Name
Vorname
MUELLER HANS
MAIER
PETER
MUELLER FRANZ
Abteilungs
nummer
IV
IV
V
Abteilungsname
MARKETING
MARKETING
VERKAUF
Projektnummer
A
A
B
Projektname
E-COMMERCE
E-COMMERCE
INTERNET
-8-
Datenmodellierung
Haas, Resch
Nehmen wir an, Herr Müller Hans wird befördert und wechselt in die Finanzabteilung. Dies erfordert
von der Personalabteilung eine Aktualisierung der Daten. Aufgrund der redundanten Datenhaltung,
muss die Projektdatei ebenfalls verändert werden, da sonst inkonsistente Daten die Folge sind.
3.1.a. sequentielle Datenträger
Zunächst gab es nur Magnetbänder (sequentielle Organisation der Daten - Satz für Satz in
vorgegebener Reihenfolge verarbeitbar).
Ändern der Reihenfolge (sortieren) erfordert ein Umschreiben / Neuschreiben der Daten!
z.B.: Daten nach Sozialversicherungsnummer sortiert - Daten nach Postleitzahlen sortieren erfordert
das Umschreiben der Daten.
-> Nun haben wir aber den gleichen Datenbestand gleich zweimal - der Unterschied ist nur die
Sortierung!
Um Probleme bei der Bearbeitung zu vermeiden dürfen aber keine Redundanzen vorhanden sein.
Dann ist nämlich die Datenintegrität gewährleistet.
z.B.: Mitarbeiter
Zwei Personen heiraten -> ein Familienname muß geändert werden!
Wenn wir aber auf eine Kopie vergessen, dann hat eine Person zwei unterschiedliche Namen.
Analog beim Löschen - in einem Datenbestand Datenbestand gelöscht, in einem anderen aber nicht.
3.1.a. Datenträger mit direktem Zugriff (ab 1958)
Daten nach einem Kriterium sortiert speichern, aber wahlfrei auf diese Daten zugreifen.
Sozialversicherungsnummer ist Schlüssel - direkt über diesen Begriff auf die Daten zugreifen!
(indexsequentielle Organisation).
-> ohne Duplizieren von Daten Zugriff möglich, aber der direkte Zugriff ist nur über einen Schlüssel
möglich
3.1.c. VSAM (erweitertes Dateisystem)
Wie Datenträger mit direktem Zugriff, aber Zugriff über mehrere Schlüsselbegriffe. Teil des
Betriebssystems.
-> Eine Datenbasis, aber Zugriff über mehrere Schlüsselbegriff
3.2. Datenbanksysteme
Erst durch die Entwicklung von Datenbanksystemen wurde die anwendungsübergreifende Nutzung
von Daten ermöglicht. Es kam zu einer Datenintegration. Allmählich erkannte man die Notwendigkeit
der zentralen Sicht auf die Unternehmensdaten.
-9-
Datenmodellierung
Haas, Resch
Vorteile der zentralen Datenhaltung:
•
Verringerung von Datenredundanzen
Der Einsatz eines Datenbankmanagementsystems ermöglicht die Haltung integrierter
Datenbestände, d.h. das Zusammenfassen aller in einem Unternehmen relevanten Daten.
Durch die zentrale Datenhaltung kann die Mehrfachspeicherung von Daten weitgehend
verhindert werden.
•
Datenintegrität
Der Begriff "Datenintegrität" ist eine zusammenfassende Bezeichnung für Datenkonsistenz,
Datensicherheit und Datenschutz. Datenintegrität ist dann gegeben, wenn die Daten in einer
Datenbank korrekt und vollständig sind. Dazu werden wir noch einiges mehr höhren!
Mögliche Gründe für Verletzungen der Datenintegrität können fehlerhafte Benutzereingaben,
aber auch Hard- beziehungsweise Softwarefehler sein. Beispielsweise kann in einer
Datenbank einer Abteilung kein Mitarbeiter zugeordnet sein oder es ist für einen bestimmten
Mitarbeiter eine wöchentliche Arbeitszeit von 400 Stunden anstelle von 40 Stunden
gespeichert.
Durch eine zentrale Datenhaltung wird die Überprüfung des Datenbestandes erheblich
erleichtert.
•
Datenunabhängigkeit
Ein entscheidender Vorteil, der durch den Einsatz von Datenbanksystemen erzielt werden
kann, ist die Datenunabhängigkeit. Von Datenunabhängigkeit spricht man dann, wenn eine
Trennung zwischen der logischen Datenstruktur und ihrer physischen Realisierung erfolgt.
•
Flexibler Gebrauch der Daten
Durch die Integration sämtlicher für ein Unternehmen relevanter Daten können diese relativ
einfach nach unterschiedlichen Gesichtspunkten verknüpft werden.
3.2.a. hierarchische Datenbanken (1960)
Auf Großrechnern realisiert.
Vertreter:
DL1 (Data Language 1 - IBM), IMS (Information Management System - IBM)
Sehr schnell im Zugriff (noch heute), aber ein sehr starrer Aufbau. Fixe Verweise (Adressen!) auf
vordefinierte Beziehungen.
Erweiterung der Beziehungen etc. sind nicht einfach realisierbar.
Noch Verbreitung in Banken und Versicherungen - keine Neuentwicklungen, aber Bedarf an Wartung!
- 10 -
Datenmodellierung
Haas, Resch
3.2.b. Netzwerkdatenbank
Vertreter:
Codasyl, IDS, UDS
Bei den hierarchischen Datenbanken kann es zu Duplikaten kommen, wenn die Daten nicht
hierarchisch organisiert sind! In Netzwerkdatenbanken sind auch solche Daten darstellbar geworden,
aber unübersichtlich und schwierig.
3.2.c. relationale Datenbanken
Edgar F. Codd (70-er Jahre - IBM) erkannte die Limitationen bestehender Datenbanksysteme.
1975 Formulierung der 12 Codd`schen Regeln (und 3 Integritätsregeln) und Entwicklung eines
Prototypen "System R" (Daraus hat sich später ORACLE entwickelt). Die Abfragesprache hieß Sequel
(Vorläufer von SQL) und eine Abfrage Oberfläche QBE (Query by Example).
Diese Gruppe hat sich getrennt in Oracle und IBM (DB2).
DB2 erste SQL Datenbank (speichert Daten in VSAM Dateien - Filehandlingsystem)
Es wesentlicher Unterschied zu den beiden vorigen Datenbanksystemen ist, daß bei den Relationalen
Datenbanken Beziehungen durch den Wert einen Attributes, und nicht durch eine fixe, physische
Adresse dargestellt werden. Als Beispiel wird noch später das Konzept des Fremdschlüssels erläutert.
Weitere Vertreter:
ACCESS (entspricht nicht allen Codd' schen Regeln), SQL Server, Informix, Ingres, Progres, dBase,
mySQL, Gupta
C.J.Date: 12 Regeln für verteilte Datenbanksysteme
Hinweis:
SQL (Structered Query Language) ist eine genormte Zugriffssprache, allerdings versteht jedes
Datenbanksystem einen eigenen Dialekt!
Eigenschaften einer relationalen Datenbank sind:
•
•
kompakte Speicherung (kein unnützes Belegen von Speicherplatz)
keine Redundanz (ein und das selbe Faktum sind mehr als einmal gespeichert) und damit
garantierte Integrität der Daten
Beispiel:
Mitarbeiterdaten, Abteilungsnummer und -Bezeichnung kommt bei jedem Mitarbeiter vor. Wenn
die Bezeichnung der Abteilung geändert wird, dann müssen alle Datensätze durchsucht und die
Abteilung geändert werden
•
•
•
•
Ein und die selbe Entität darf nicht zweimal gespeichert werden (laufende Nummer beim
Schlüssel!)
Alle Teilschritte einer Änderungen müssen zu einem Zeitpunkt vollständig oder überhaupt
nicht durchgeführt werden (Transaktion) - Beispiel Abbuchung von einem Konto auf ein
anderes: TAN (Transaktionsnummer beim TeleBanking)
Kein Zugriff auf Daten außer durch "Bordmittel" des Datenbanksystems
Integrität:
3.2.d. objektorientierte Datenbanken (OODB)
Derzeit noch keine etablierte Systeme im betrieblichem Umfeld. Zumeist findet man hybride
Datenbanksysteme (Beispiel Caché).
- 11 -
Datenmodellierung
Haas, Resch
3.2.e. Textdatenbanken
Unterschied Text / strukturierte (formatierte) Daten:
Bei strukturierten Daten ist der Aufbau ganz exakt definiert. Für jeden Datensatz ist genau bekannt
welche Felder mit welchem Typ zu welcher Länge und welchem Namen vorhanden sind. Die kleinste
Einheit, auf die zugegriffen werden kann heißt Feld.
Eine Textdatenbank hat keine definierte Struktur, der ganze Text muß jedes mal wieder analysiert
werden (Wort für Wort).
Die kleinsten ansprechbare Einheit ist ein Dokument! Innerhalb eines Dokumentes kann man
sequentiell nach Zeichenfolgen suchen.
Beispiel:
Internet Suchmaschinen, Juridische Datenbank, Krankengeschichten.
Dabei treten verschiedenste Probleme (außer der Laufzeit auf):
•
•
•
•
•
man sucht nach "ien" und bekommt Treffer mit "Wien" und "Yugoslavien"
Thesaurus:
Schlüsselworte werden aus dem Text herausgehoben und getrennt gespeichert. Typische
Anwendung ist die Verschlagwortung - händischer Vorgang!
Homonyme (ein Wort mehrere Bedeutungen):
Leiter: Steighilfe, Vorgesetzter, ...
Synonyme (mehrere Worte für ein Ding):
Rechner, Computer, ...
Vermeiden von Mehrzahlen, Fällen, usw.
Beschlagwortung:
KWIC (Keyword in Context)
Beschlagwortung von Wörtern (manuell gekennzeichnete Wörter in einem Dokument)
KWOC (Keyword out of Context)
fertige Liste von Schlüsselwörtern wird dem Textteil zugeordnet
Vertreter:
Golem, Stairs, F&A, Lotus Notes
3.2.f. XML / XSLT
Wir werden uns später mit XML und XSLT beschäftigen. Eine XML Datei ist eigentlich eine Textdatei,
nur enthält diese Datei Informationen, welche Daten in der Datei zu finden sind.
- 12 -
Datenmodellierung
Haas, Resch
4. Einführung in die Datenmodellierung
Bis jetzt haben wir und auf einer sehr informellen, nicht exakten Ebene bei der Beschreibung eines
Systems bewegt.
Jetzt ist es Zeit uns mit einer formalen Methode zur Beschreibung unserer Sachverhalte zu
beschäftigen: mit dem Entity - Relationship Modell. Eigentlich müssten wir vom EER - dem
"Erweiterten ER" Modell sprechen, da wir uns auch das Konzept der Generalisierung ansehen
werden.
4.1. Grundlegende Begriffe
Folie: (Datenmodellierung) Begriffe zur Datenmodellierung
Die Datenmodellierung beschäftigt sich mit "Entitäten".
Eine Entität ist ein individuelles, wohl unterscheidbares "Irgendwas" (Objekte, Individuen, Sachen,
Begriffe, Ereignisse, ...) aus der realen Welt, das für eine konkrete Problemstellung relevant ist.
Entitäten werden durch Attribute (Eigenschaften) beschrieben und in Tabellenform notiert. Jede
solche Tabelle hat einen Namen, der links oben bei der Tabelle steht.
Eine der möglichen Notation (Schreibweisen) ist das Relationenmodell:
Beispiel:
Personen
SozVersNr
L01
L02
L03
…
•
•
•
•
•
•
Name
Eva
Peter
Susan
GebDat
1.1.82
13.5.85
8.9.91
Geschlecht
f
m
f
In den Zeilen stehen die einzelnen, genau unterscheidbaren Entitäten
Die Spalten führen die Eigenschaften (Attribute) auf
Die konkreten Werte eines Attributes zu einer Entität werden Attributswert genannt
Faktum: Zuordnung eines Attributswertes zu einem Attribut einer ganz bestimmten Entität
Die Menge aller Spalten (Attribute) einer Entität wird Relationenschema genannt und mit
einem Namen versehen
Die Tabelle mit allen Zeilen (und Spalten) wird Entitätsmenge genannt.
- 13 -
Datenmodellierung
Haas, Resch
Achtung:
Das Relationenmodell ist ein mengentheoretisches Konstrukt - die Reihenfolge der Attribute ist
irrelevant. Es ist natürlich übersichtlicher, wenn die Schlüsselfelder zu Beginn aufgeführt werden.
Typische Operationen (Damit werden wir uns bei SQL beschäftigen!)
Selektion:
Aus einer beliebigen Anzahl von Tupeln (Entitäten, Zeilen) werden ganz bestimmte Tupel selektiert.
Die Anzahl der Treffer ist nicht vorhersehbar - die Anzahl ändert sich durch neue Daten auch dauernd.
Projektion:
Auswahl der Attribute (nicht alle Attribute als Ergebnis ausgeben!)
Bemerkung:
Modellieren ist wie Aufsatzschreiben, es gibt unterschiedlichste Ansätze keiner ist ganz richtig oder
falsch - alles hängt vom persönlichen Blickwinkel, was einem wichtig ist, ab.
4.2. Beziehungen (Relationen)
Mit einer Entitätsmenge kann man sicherlich keinen brauchbaren Ausschnitt aus dem Realen Leben
beschreiben. Im wirklichen Leben gibt es immer Abhängigkeiten und Zusammenhänge.
Eine Entitätsmengen kann einen Zusammenhang zu einer oder mehreren Entitätsmengen haben. Wir
sprechen von einer Beziehung oder Relation.
Sehen wir uns ein Beispiel an:
•
•
Ein Arzt behandelt einen Patienten.
Ein Gärtner besitzt mehrere Gewächshäuser. In jedem Gewächshaus werden
unterschiedliche Pflanzen kultiviert.
4.3. Primary Key (Primärschlüssel)
Folie: (Datenmodellierung) Begriffe zur Datenmodellierung 2
Die Entitäten einer Entitätsmenge müssen eindeutig unterscheidbar sein.
Zu diesem Zweck ist in jedem Relationenschema ein eindeutiger Schlüssel (Primary Key) zu
definieren. Dieser Schlüssel wird in der Tabelle unterstrichen dargestellt.
Ein Schlüssel kann auch aus mehreren Attributen bestehen.
Eigenschaften eines Schlüssels:
- 14 -
Datenmodellierung
•
•
•
•
•
•
Haas, Resch
obligatorisch (muß immer einen Wert haben - nicht NULL)
prägnant (so kurz wie möglich um dennoch aussagekräftig zu sein)
unveränderbar
umkehrbar eineindeutig
In einer Entitätsmenge sind genau solche Entitäten enthalten, die von ihrem Schlüssel
funktional abhängig sind (dazu noch mehr bei den Normalformen)
ein Schlüssel sollte sprechend sein (vorhanden Attribute verwenden, wenn möglich ->
"natürlicher Schlüssel") - bei laufenden Nummern besteht Gefahr ein und die selbe Entität
mehrfach zu speichern!
Überlegungen zu Primärschlüsseln:
A. Ein Buch wird genau ein einziges mal ausgeborgt.
Bibliothek
ISBN
3-783499-600630
3-783499-212212
Leser#
220
341
Es ist also nicht möglich, dass das gleiche Buch von einem andern Leser entlehnt wird. Wenn das
dennoch gehen soll, dann muß die Leser# geändert werden - die vorherige Entlehnung ist dann aber
verschwunden!
Bibliothek
ISBN
3-783499-600630
3-783499-212212
Leser#
43
341
B. Ein Buch kann an unterschiedliche Leser verborgt werden
Bibliothek
ISBN
3-783499-600630
3-783499-212212
3-783499-600630
Leser#
220
341
341
Jetzt haben wir aber das Problem, das eine Person ein Buch nur genau einmal entlehnen kann!
C. Ein Bucht an unterschiedliche Leser, mehrmals
Bibliothek
ISBN
3-783499-600630
3-783499-212212
3-783499-600630
3-783499-600630
Leser#
220
341
341
220
Entlehndatum
1.1.2001
3.1.2001
3.1.2001
2.6.2002
4.4. Secondary Key (Fremdschlüssel)
Ein Secondary Key (Fremdschlüssel) ist eine Beziehung von einem Attribut zu einem Primary Key
einer anderen Entitätsmenge. Alle Beziehungen in einer relationalen Datenbank werden über solche
Fremdschlüssel realisiert. Es handelt sich also nicht um Pointer, denen gefolgt wird, sondern
Beziehungen werden immer über Suchprozesse realisiert.
Achtung:
- 15 -
Datenmodellierung
Haas, Resch
Es darf keinen Fremdschlüssel geben, der nicht als Primary Key vorkommt (Referentielle Integrität).
Nun wissen wir bereits genug, um zu verstehen was Anomalien beim Löschen, Eintragen oder Ändern
sind und warum wir Fremdschlüssel verwenden werden:
Abteilungsnamen mit Redundanz: Datenredundanz ist das mehrfache Speichern eines Faktums - das
ist zu vermeiden, da dadurch Anomalien auftreten können!
Mitarbeiter
SozVersNr
L01
L02
L03
L04
Name
Eva
Peter
Susanne
Klaus
AbtNr
A1
A2
A2
A3
AbtName
EDV
Einkauf
Einkauf
Verkauf
(Änderungs-) Anomalie: Das Änderungsprogramm hat nicht alle Vorkommnisse der Abteilung
gefunden und geändert.
Mitarbeiter
SozVersNr
L01
L02
L03
L04
Name
Eva
Peter
Susanne
Klaus
AbtNr
A1
A2
A2
A3
AbtName
EDV
Einkauf
Buchhaltung
Verkauf
(Lösch-) Anomalie: mit dem Löschen der Mitarbeiter L02 und L03 ist auch die Abteilung A2
verschwunden. Es kann ja durchaus sein, dass neue Mitarbeiter im Anschluss zugeordnet werden
sollen!
Mitarbeiter
SozVersNr
L01
L04
Name
Eva
Klaus
AbtNr
A1
A3
AbtName
EDV
Verkauf
(Einfüge-) Anomalie: Es ist nicht möglich eine Abteilung A4 anzulegen, in der zur Zeit keine
Mitarbeiter vorhanden sind.
Mitarbeiter
SozVersNr
L01
L04
Name
Eva
Klaus
AbtNr
A1
A3
AbtName
EDV
Verkauf
?? A4
Ein Beispiel für die Verwendung eines Fremdschlüssels ist die Abbildung des Abteilungsnamens zu
einem Mitarbeiter ohne Redundanz:
- 16 -
Datenmodellierung
Mitarbeiter
SozVersNr
L01
L02
L03
L04
Haas, Resch
Name
Eva
Peter
Susanne
Klaus
AbtNr
A1
A2
A2
A3
Abteilungen
AbtNr
AbtName
A1
EDV
A2
Einkauf
A3
Verkauf
Den Pfeil nennen wir Beziehung oder Relation. Den Beziehungen geben wir sprechende Namen.
Beispiel zu obiger Beziehung: "gehört zu"
4.5. Grad (Kardinalität) einer Beziehung
4.5.1. Kardinalität 1:1
Eine Entität der einen Seite wird genau einer Entität der anderen Seite zugeordnet und umgekehrt.
Beispiel: Standort eines Buchexemplares (In Regalen gibt es Fächer für genau ein Buch)
Ein Exemplar eines Buches (auf die Entiät Standort schauen) steht genau an einem
bestimmten Standort,
Standort ist "1" Seite
An einem bestimmten Standort (auf die Entität Bücher schauen) steht genau ein Exemplar
eines Buches
Bücher ist "1" Seite
Bücher
ISBN
3-783499-600630
3-783499-600630
Exemplar
1
2
Standorte
Zimmer
B404
B405
Regal
1
4
Fach
B
12
Platz
21
5
4.5.2. Kardinalität 1:N
Einer Entität der einen Seite können mehrere Entitäten der anderen Seite zugeordnet werden,
umgekehrt aber höchstens eine Entität.
Beispiel: Mitarbeiter einer Abteilung
Ein Mitarbeiter (auf die Entität Abteilung schauen) gehört zu genau einer Abteilung,
Abteilung ist"1" Seite
In einer Abteilung (auf die Entität Mitarbeiter schauen) sind mehrere Mitarbeiter
"
Mitarbeiter ist N" Seite
Abteilung
Abteilungs# AbtName
EINK
Einkauf
BUCHH
Buchhaltung
Mitarbeiter
SozVers#
2111230765
1231010182
4321230376
MitName
Resch
Meier
Müller
Abteilungs#
EINK
EINK
BUCHH
- 17 -
Datenmodellierung
Haas, Resch
4.5.3. Kardinalität M:N
Einer Entität der einen Seite können mehrere Entitäten der anderen Seite zugeordnet werden und
umgekehrt.
Wenn M:N Beziehungen auftreten, dann müssen im Datenmodell in eine 1:N und eine 1:M Beziehung
aufgelöst werden. Aber dazu noch später - Stichwort "Assoziationstabelle".
Ein Buch (auf die Entität Autor schauen) kann mehrere Autoren haben,
Autor ist "M" Seite
Ein Autor (auf die Entität Bücher schauen) kann mehrere Bücher schreiben
Buch ist "N" Seite
Bücher
ISBN
3-783499-600630
3-783499-600630
3-783499-212121
Author
4
5
4
Authoren
Author
4
5
Name
Resch
Müller
Die Modellierung der Bücher wird in Wirklichkeit NICHT so vorgenommen - wir werden diesen
Sachverhalt mit einer zusätzlichen Tabelle abbilden! (Assoziationstabelle)
Wir sehen, dass wir im Relationenmodell KEINE Kardinalitäten hinterlegen können. Wir benötigen
daher eine bessere Notationsform!
5. Notationsformen eines Datenmodells
Die Datenmodellierung liefert als Ergebnis folgendes:
•
•
•
Welche Entitäten sind relevant?
Welche Attribute beschreiben die Entitäten?
Welche Beziehungen herrschen unter den Entitäten?
Diese Informationen müssen nicht nur aus der Wirklichkeit abgeleitet werden, sondern zur
Dokumentation und Transport an andere niedergeschrieben werden. Zu diesem Zweck gibt es
unterschiedliche Methoden und Werkzeuge:
•
•
•
•
•
•
Relationenmodell (schon behandelt)
Chen Diagramme
Entity - Relation Diagramme (Werkzeug: ERWIN - Entity Relation Diagrams for Windows)
XML
UML
...
Die Modellierungswerkzeuge sind in der Regel auch fähig die Tabellen in einem Datenbanksystem,
laut Datenmodellierung, anzulegen.
5.1. Chen Diagramme
Entitätsmenge:
Bücher
- 18 -
Datenmodellierung
Haas, Resch
Attribute:
p_name
an eine Entität oder Beziehung gebunden
- 19 -
Datenmodellierung
Haas, Resch
6. Vorgehensweisen bei der Datenmodellierung
6.1. diszipliniertes Top / Down
a. alle Entitäten
b. alle Attribute zu den Entitäten
c. alle Beziehungen
Dieses Vorgehen ist in der Praxis schwer einzuhalten, obwohl es sicherlich sehr gut wäre. Wir werden
diesen Ansatz bei der Textanalyse verwenden.
6.2. "Jojo Technik"
Je nach Bedarf werden die hierarchischen Ebenen gewechselt. Das Vorgehen ist situationsabhängig.
- 20 -
Datenmodellierung
Haas, Resch
7. Normalformen
Folie: (Datenmodellierung) Kriterien eines optimalen Datenmodells
Ziel der Anwendung der Normalformen:
Datenmodell ist kompakt, integer und redundanzfrei.
Kompakt
integer
Redundanzfrei
Nicht mehr Speicherplatz / Tabellen / Felder als unbedingt nötig
(Name1, Name2, Name3, usw.)
einhalten der Integritätsbedingungen
Ein und dasselbe Faktum darf nur einmal gespeichert werden
Um dieses Ziel zu erreichen gibt es ein Verfahren, das von Codd erfunden wurde: die Normalisierung
bzw. die Normalformen.
Diese hat die Zerlegung von Datenstrukturen ohne Informationsverluste in mehrere einfachere und
redundanzärmere Strukturen zum Inhalt. Durch den Prozess der Normalisierung können
Datenredundanzen vermieden und die daraus resultierenden Speicheranomalien verhindert werden.
Folgende Arten von Speicheranomalien lassen sich unterscheiden, wie wir ja schon gesehen haben.
•
•
•
Einfügeanomalien
Löschanomalien
Änderungsanomalien
7.1. Integritätsbedingungen
Folie: (Datenmodellierung) Kriterien eines optimalen Datenmodells
- 21 -
Datenmodellierung
Haas, Resch
7.1.1. Semantische Integrität
Die semantische Integrität steht für die Korrektheit der Datenbankinhalte. Dabei gilt es falsche
Eingaben oder unzulässige Änderungen abzufangen.
Zum Zeitpunkt der Datendefinition müssen dem Datenbanksystem die Integritätsregeln mitgeteilt
werden. Daneben besteht aber auch noch die Möglichkeit im Anwendungsprogramm bestimmte
Kontrollen einzubauen. So können für einzelne Attribute ein bestimmter Wertebereich angegeben
werden.
In MS ACCESS haben Sie im Tabellenentwurf durch die Wahl eines passenden Felddatentyps, durch
die Festlegung von Gültigkeitsregeln sowie die Verwendung von Nachschlageassistenten die
Möglichkeit anzugeben, welche Anforderungen die Eingabedaten erfüllen müssen.
Folie: (Datenmodellierung) semantische Integrität
Für die Erhaltung der Korrektheit der Beziehungen zwischen Attributen einer Relation ist es wichtig,
dass der Schlüssel eindeutig ist (Verwendung eines Primärschlüssels). Nur so ist es möglich, einen
Datensatz eindeutig zu identifizieren.
7.1.2. referentielle Integrität
Die referentielle Integrität befasst sich mit der Korrektheit von Beziehungen und stellt sicher, dass
Änderungen in der Datenbank nicht dazu führen, dass Fremdschlüssel auf nicht mehr vorhandene
Datensätze verweisen.
Folie: (Datenmodellierung) referentielle Integrität
- 22 -
Datenmodellierung
Haas, Resch
7.1.3. operationale Integrität
Folie: (Datenmodellierung) operationale Integrität
Die operationale Integrität bezieht sich auf das korrekte Verhalten der Anwendung. Um zu
verhindern, dass Datenbankinhalte durch systembedingte Fehler verfälscht werden, wurden
sogenannte Transaktionen eingeführt.
Benutzerzugriffe auf die Datenbank erfolgen über Transaktionen, die einerseits nur Daten abfragen,
andererseits aber auch Daten ändern beziehungsweise löschen können. Transaktionen sind eine
logische Folge von Datenbankoperationen, die in Gesamtheit die gültigen Konsistenzbedingungen
erfüllen.
Transaktionen, die Änderungen in der Datenbank bewirken dürfen nur in Gesamtheit durchgeführt
werden oder gar nicht. Daher werden diese auch als atomar bezeichnet. Kommt es während der
Durchführung einer Transaktion zu einem Systemfehler, muss der Zustand der Transaktion auf den
Beginn zurückgesetzt werden. Die Transaktionsverarbeitung ist heute bereits fester Bestandteil von
Datenbanksystemen. Greifen mehrere Benutzer zugleich auf eine Datenbank zu ist die
Konsistenzsicherung jedoch wesentlich komplexer als oben beschrieben. Sperrmechanismen sind
eine Möglichkeit Zugriffskonflikte zu vermeiden.
Beispiel:
Überweisung auf ein Konto.
7.2. Unnormalisiert (Nullte Normalform)
Die Abbildung zeigt ein Formular, welches Daten zur Projektabrechnung enthält. Aus dem Formular
geht hervor, welcher Mitarbeiter an einem bestimmten Projekt mitgewirkt hat.
- 23 -
Datenmodellierung
Haas, Resch
Folie: (Datenmodellierung) Projektabrechnung
Die Informationen aus dem Formular können in Form einer unnormalisierten Relationmodell
dargestellt werden (Wir haben diese bis jetzt Realitätsbeobachtungen genannt).
Personal# Name
1
2
Vorname Abteilungs# Abteilung
Winkler Ursula
Maier
Peter
1
1
Marketing
Marketing
Projekt#
Projektname
Stunden
A
A, B
E-Commerce
E-Commerce,
Internet
60
100, 75
Eine unnormalisierte Relation ist dadurch gekennzeichnet, dass sie Attribute mit Attributwerten
aufweist, welche sich aus mehreren Elementen (einer Liste - nicht ein einzelner Wert!)
zusammensetzen.
Beispielsweise sind in der Tabelle zu Mitarbeiter 2 (Herr Maier) zwei Projekte gespeichert. Aufgrund
der redundanten Datenhaltung können mehrere Speicheranomalien beobachtet werden:
•
•
•
Beispielsweise kann eine neue Abteilung nur dann hinzugefügt werden, wenn diese einem
Mitarbeiter zugeordnet wird (Einfügeanomalie).
Werden alle Mitarbeiterinformationen gelöscht, gehen auch die Informationen über die
Projekte und über die Abteilungen verloren (Löschanomalie).
Wird beispielsweise bei Mitarbeiter 1 der Name der Abteilung von Marketing in Finanzierung
umgeändert, dann muss diese Änderung bei allen Mitarbeitern, die ebenfalls in dieser
Abteilung arbeiten, gemacht werden. Ansonsten führt dies zu inkonsistenten Daten
(Änderungsanomalie).
7.3. Die 1. Normalform
Durch den Normalisierungsprozess kann eine unnormalisierte Relation in die erste Normalform
überführt werden.
Eine Relation befindet sich in der ersten Normalform, wenn sie nur einfache Attribute enthält .
Man sagt auch, dass die Attribute nur atomare Werte (Keine Listen) annehmen dürfen.
Unser Beispieldatenmodell hat aber genau so ein Attribut, das nicht atomar ist:
Der Mitarbeiter 2 (Herr Maier) hat eine Liste von Projekten im Attribut Projekt# und Projekt
eingetragen.
Wir müssen unser Datenmodell daher ändern, um die erste Normalform nicht zu verletzten! Die
einfachste Methode ist einen zusätzliches Attribut (Projekt#) in den Primärschlüssel aufzunehmen. Wir
- 24 -
Datenmodellierung
Haas, Resch
können dann die beiden Projekte von Herrn Maier (Mitarbeiter 2) in zwei Entitäten (Datensätzen)
abspeichern.
Folie: (Datenmodellierung) 1. Normalform
Personal#
1
2
2
Name
Winkler
Maier
Maier
Vorname
Ursula
Peter
Peter
Abteilungs#
1
1
1
Abteilung
Marketing
Marketing
Marketing
Projekt#
A
A
B
Projektname
E-Commerce
E-Commerce
Internet
Stunden
60
100
75
Weil wir sofort sehen, dass das Datenmodell noch nicht ideal ist (Redundanz, ...) gibt es natürlich
noch weitere Normalformen:
7.4. Die 2. Normalform
Eine Relation ist in der 2. Normalform, wenn sie
•
•
in der 1. Normalform ist und
wenn jedes Attribut, das zu keiner Schlüsselkombination gehört, nur von der gesamten
Schlüsselkombination, nicht aber von einem Teil, funktional abhängig ist.
Die 2. Normalform richtet sich an zusammengesetzte Schlüssel:
•
•
Wenn also nur ein Attribut zum Primärschlüssel gehört, dann ist die 2. Normalform erfüllt
Wenn es zusammengesetzte Schlüssel gibt, dann dürfen alle Attribute nur vom gesamten
Schlüssel funktional abhängig sein - nicht nur von einem Teil des Schlüssels
7.4.1. Funktionale Abhängigkeit (ein Attribut)
Um diese Definition etwas genauer analysieren zu können, müssen wir uns mit dem Begriff der
funktionalen Abhängigkeit beschäftigen!
Beispiel:
r3
Entität
r
s
R
a1
a2
a3
...
amax
s2
Ein Attribut ai eines Relationenschemas R heißt funktional abhängig von einem Attribut ak , falls für
alle Entitäten r,s aus der Entitätsmenge R (Entitätsmenge und Relationenschema mit dem gleichen
Namen bezeichnet) und 0 <= i,k <= maximale Anzahl der Entitäten in R, gilt:
rk = sk => ri = s i
Wir schreiben kurz: ak -> ai
Anders formuliert:
• Jedes Auftreten eines Attributwertes im Attribut ak zeigt an, dass es sich um eine
unterscheidbare Entität handelt.
• Alle anderen Attributwerte können nur dann andere Werte annehmen, wenn sich auch das
Attribut ak ändert.
- 25 -
Datenmodellierung
Haas, Resch
Beispiel:
Personal#
1
2
Name
Resch
Meier
Also:
Personalnummer 1 bedeutet immer Resch, 2 immer Meier!
Hinweis:
Das kennen wir doch schon, das war die Geschichte mit dem Primärschlüssel!
7.4.2. Funktionale Abhängigkeit (mehrere Attribute)
Der Primärschlüssel ist aber schon längst für uns erledigt, die Definition der 2. Normalform bezieht
sicht auf zusammengesetzte Primärschlüssel!
Das Attribut ai heißt funktional abhängig von ak und am (ak am -> ai), wenn gilt:
rk = sk und rm = sm => ri = s i
Wieder in anderen Worten:
Das Attribut ai darf sich also nur dann ändern, wenn sich auch die Attribute ak und/oder am ändern!
7.4.3. Vorgehensweise:
Alle Attribute, die zum Schlüssel gehören werden - einzeln - untersucht, ob es funktionale
Abhängigkeiten gibt!
Genau das ist aber unser Problem:
Personal#
1
2
2
Name
Winkler
Maier
Maier
Vorname
Ursula
Peter
Peter
Abteilungs#
1
1
1
Abteilung
Marketing
Marketing
Marketing
Projekt#
A
A
B
Projektname
E-Commerce
E-Commerce
Internet
Stunden
60
100
75
Die Schlüsselattribute sind Personal# und Projekt#.
Folgende Verletzungen der 2. Normalform sind festzustellen:
•
•
Personal#
Name, Vorname, Abteilungsnummer und Abteilung sind vom Schlüsselteil Personal#
funktional abhängig
Projekt#
Das Attribut Projektname ist vom Schlüsselteil Projekt# funktional abhängig
Hinweis:
Wir sehen, dass es noch weitere funktionale Abhängigkeiten gibt (Abteilungs# -> Abteilung). Das ist
aber jetzt noch nicht interessant, wir sehen uns nur die Attribute im Schlüssel, mit deren
Abhängigkeiten an!
Wie gehen wir nun vor, um das Datenmodell in 2. Normalform zu erreichen? Wir müssen das
bestehende Relationsschema aufspalten. Die Attribute mit den kritischen Abhängigkeiten werden
dabei als neuer Schlüssel verwendet.
- 26 -
Datenmodellierung
Haas, Resch
Folie: (Datenmodellierung) 2. Normalform
7.5. Die 3. Normalform
Das sieht schon sehr gut, aus. Es gibt aber noch einen Schönheitsfehler:
Eine Relation ist in der 3. Normalform, wenn die zweite Normalform erfüllt ist und kein Attribut, das
nicht zum Identifikationsschlüssel gehört, transitiv von diesem abhängig ist.
7.5.1. transitive Abhängigkeit
Das Attribut "Abteilung" wird vom Nicht-Schlüsselattribut "Abteilungs#" identifiziert. Andererseits aber
auch vom Attribut "Mitarbeiter#".
Aus der Sicht der funktionalen Abhängigkeit gilt hier also:
Mitarbeiter# -> Abteilungs# -> Abteilung
Die Eigenschaft der Transitivität bedeutet dann:
Mitarbeiter# -> Abteilungs# -> Abteilung => Mitarbeiter# -> Abteilung
Also:
•
•
Abteilungs# -> Abteilung und
Mitarbeiter# -> Abteilung
Diese mehrfachen Abhängigkeiten, die einen Verstoß gegen die 3. Normalform darstellen, müssen
durch das Aufsplitten der Relation beseitigt werden. Die neu entstandenen Relationen werden durch
einen Fremdschlüssel in Beziehung gebracht.
- 27 -
Datenmodellierung
Haas, Resch
Folie: (Datenmodellierung) 3. Normalform
Das ist für uns ausreichend perfekt!
- 28 -
Datenmodellierung
Haas, Resch
8. Umsetzung von ER Modellen in relationale Modelle (nach der
Kardinalität)
Zusammenfassung Vorgehensweise:
1:1
1:N
N:M
gleiche Tabelle
Fremdschlüssel mitnehmen
Assoziationstabelle (Primärschlüssel der beteiligten Entitäten sind Fremdschlüssel)
Folie: (Datenmodellierung) ER - Diagramm nach relationales Modell
8.1. 1:N Beziehung
Der Primärschlüssel der Prüftabelle (Fremdschlüsselbeziehung) wird als Attribut in die Tabelle
aufgenommen:
Tabelle Mitarbeiter
Personal#
...
Raum#
...
Tabelle Räume
Raum#
Standort#
...
8.2. 1:1 Beziehung
1:1 Bezieungen sind nur Sonderfälle der 1:N Beziehung. Diese sind auch in einer Tabelle abbildbar:
Wir erinnern uns an das Beispiel mit der Firma eConsult - In einem Raum sitzt genau ein Mitarbeiter.
Ein Mitarbeiter sitzt in genau einem Raum.
Tabelle Mitarbeiter
Personal# ...
Raum#
Standort#
Wir werden also nur dann auf die Methode der Attribute zurückgreifen, wenn wir ganz sicher sind,
dass wir niemals eine 1:N Beziehung abbilden werden müssen. Wenn diese Annahme nicht hält
werden wir unsere Datenmodell, unsere Datenbank und die Daten in der Datenbank ändern müssen!
- 29 -
Datenmodellierung
Haas, Resch
Ein anderes Beispiel - Prüfungsgeschehen:
Zwischen Fach und Prüfer herrscht eine 1:1 Beziehung, diese sind mit Vorsicht als Attribut (in einer
Tabelle) auffassbar!
Pr#
BF
RI
MU
GR
Pr Name
Berger
Riese
Muth
Groß
F#
GEDV
PR
MAM
LÜK
F_Bez
Grundlagen
Programmieren
Mathematik
Leibesübungen
Wir sprechen in diesem Fall von einer 1:1 Beziehung mit obligatorischer Teilnahme beider
Entitäten: Es gibt keine Entität, die nicht an der Relation teilnimmt.
•
•
jedes Fach wird geprüft
jeder Prüfer hat ein Fach
=> Dann können die Attribute der einen Entität als Attribute der anderen Eintität angesehen werden
(Schlüssel oder Attribute gehen mit, sonst NF verletzt!)
In unserm Beispiel wird das Fachkürzel mitgenommen
8.3. M:N Beziehung
Eine M:N Beziehungen ist nicht direkt darstellbar - diese wird in zwei 1:N Beziehungen aufgelöst! Die
Methode hierzu heißt "Assoziationstabelle". Dieses kann auch nur aus Schlüsseln (ohne Attribute)
bestehen (All Key Table)!
Beispiel der Bibliothek:
Notation im Relationenmodell:
Entlehner(Leser#, Adresse, ...)
Buch(ISBN, Titel, ...)
entleiht(Leser#, ISBN, Datum) <= Assoziationstabelle
- 30 -
Datenmodellierung
Haas, Resch
9. NULL / Faktum "Leer"
In einer Tabelle muß man unterscheiden zwischen:
•
NULL
es ist kein Datum als Attributwert vorhanden (Wert ist derzeit noch nicht bekannt)
Ein Beispiel ist das Rückgabedatum bei unserer Bibliothek. Zu dem Zeitpunkt, wo ein Buch
entlehnt wird, ist auch das Attribut "Rückgabedatum" vorhanden. Dieses Attribut ist aber so
lange nicht gefüllt, bis das Buch zurückgebracht wird.
ACHTUNG:
Die Attribute, die zum Primärschlüssel gehören DÜRFEN KEINE NULL Werte enthalten!
•
Leer oder Wert 0
Der Wert eines Attributes ist mit Absicht auf "Leer" oder 0 gesetzt.
Ein Beispiel ist unsere Stadtbibliothek: Dort kann man auch Getränke zu sich nehmen. Die
muß man natürlich auch bezahlen. Wenn man will kann man diese Beträge gemeinsam mit
den Bibliotheksbeiträgen verrechnen lassen. Wenn ich aber keine Getränke konsumiert habe,
dann ist der Wert - im zugehörigen Attribut - 0.
Ein Datenbanksystem geht bei dem Auftreten von NULL Werten wie folgt vor:
•
•
Wahr und NULL => NULL
Wahr oder NULL => Wahr
Hinweis:
Wenn es Attribute gibt, die fast nur NULL-Werte enthalten - dann ist das Datenmodell nicht
ausreichend geplant.
Hinweis:
Ein Datenbanksystem unterscheidet auf Grund des Wertes zwischen NULL und Leer: Ein NULL Wert
wird anders dargestellt, zum Beispiel durch einen Wert, den ein normales Datum nicht annehmen darf
(-32767, ...)
Hinweis:
Im SQL werden wir auch nach diesen NULL Werten abfragen können!
- 31 -
Datenmodellierung
Haas, Resch
10. Generalisierung (Super / Subtyp)
Supertyp:
Subtyp:
alle gemeinsamen Attribute
spezielle Attribute
Diese Idee kennen wir auch aus der objektorientierten Programmierung: Hier sprechen wir von einer
Basisklasse (=Supertyp) und der abgeleiteten Klasse (=Subtyp).
Beispiel:
"Ein Arzt ist eine Person"
"Ein Patient ist eine Person"
Folie: (Datenmodellierung) Generalisierung
- 32 -
Datenmodellierung
Haas, Resch
11. Textanalyse
Die Zerlegung des Datenmodells über die Normalformen (Normalisierung) ist nur bei sehr einfachen
Modellen möglich, wegen:
- der Komplexität von großen Datenmodellen
- es keine Algorithmus zur Normalisierung gibt (wir kennen zwar die Kriterien, haben aber keinen
allgemeingültigen Weg zur Erreichung der Normalformen)
Zum Einsatz in der Praxis kann man daher Regelwerke zur Optimierung des Datenmodells einsetzten.
Ein Beispiel für ein solches Regelwerk ist die Textanalyse:
•
•
•
•
•
•
Entitäten und die Beziehungen werden zunächst im Text der Aufgabenstellung mit
unterschiedlichen Farben zu markieren
Anschließend notiert man die Beziehungen zwischen den Entitätsmengen und deren Grade
dann ergänzt man die Attribute zu den Entitätsmengen.
mit den acht Regeln zur Textanalyse wird das Datenmodell optimiert
prüfen, ob der Primärschlüssel aus der minimalen Attributskombination besteht (unter
Einhaltung der Eindeutigkeit!). Es kann also passieren, dass Schlüsselattribute zu Attributen
werden oder umgekehrt
Zuletzt wird geprüft, ob die Tabellen der 3. Normalform genügen
11.1. Das Regelwerk der Textanalyse
Das Regelwerk verwendet oft den Begriff "obligatorisch". Damit ist gemeint:
•
•
dass der Wert eines Attributes immer gefüllt sein muß - also nicht NULL sein darf.
Im Sinne einer Beziehung muß eine Entität vorhanden sein
Regel 1) Grad 1 : 1 - Generalisierung
1: 1 Beziehungen treten meist nur in Generalisierungen auf, wobei der Supertyp mit dem Subtyp in
dieser Beziehung steht; der Primärschlüssel des Supertypen wird als Primärschlüssel des Subtypen
mitgenommen.
Beispiel:
"Ein Arzt ist eine Person"
"Ein Patient ist eine Person"
Notation im Relationenmodell:
Ausgangsbasis:
Person
Pers#
P1
P2
P3
(Supertyp ...allgemeinerer Begriff)
Name
Meier
Müller
Bürger
Name ist ein gemeinsames Attribut!
- 33 -
Datenmodellierung
Haas, Resch
Arzt (Subtyp ... speziellerer Begriff)
Arzt#
Fachgebiet
A
B
Chirurgie
Unfall
Patient (Subtyp ... speziellerer Begriff)
Pat#
Zimmer
0001
B404
Also, der Primärschlüssel des Supertypen (Pers#) wird als Primärschlüssel des Subtypen
mitgenommen:
Person
Pers#
P1
P2
P3
(Supertyp ...allgemeinerer Begriff)
Name
Meier
Müller
Bürger
Arzt (Subtyp ... speziellerer Begriff)
Arzt#
Pers#
Fachgebiet
A
P2
Chirurgie
B
P1
Unfall
Patient (Subtyp ... speziellerer Begriff)
Pat#
Pers#
Zimmer
00001
P3
B404
Regel 2) 1 : 1 Beziehungen, obligatorische Teilnahme beider Entitätsmengen
Es wird nur eine Entitätsmenge benötigt, wobei die Attribute der einen Entitätsmenge als Attribute der
anderen Entitätsmenge (ev. ohne Primärschlüssel) aufscheinen.
Also aus beiden Relationenschematas (oder Entitätsmengen) muß genau ein Vertreter vorhanden
sein!
Beispiel:
"Jeder Mitarbeiter hat ein eigenes Zimmer"
"In jedem Zimmer sitzt nur ein Mitarbeiter"
Ausgangsbasis:
Mitarbeiter
Pers# Name
P1
Meier
P2
Müller
P3
Bürger
- 34 -
Datenmodellierung
Zimmer
Zi#
B403
B404
B405
Haas, Resch
Teppichfarbe
braun
braun
grau
Also, die beiden Relationenschematas werden zu Einem zusammengezogen:
Mitarbeiter
Pers# Name
P1
Meier
P2
Müller
P3
Bürger
Zi#
B404
B403
B405
Teppichfarbe
grau
braun
grau
Regel 3) 1 : 1 Beziehung, eine Entitätsmenge obligatorisch, die andere nicht obligatorisch
Es werden 2 Entitätsmengen benötigt. Der Entitätsschlüssel der nichtobligatorischen Seite ist Attribut
der obligatorischen.
Beispiel:
"Ein Mitarbeiter kann einen fix zugeordneten PC haben"
"Ein PC muß genau einem Mitarbeiter fix zugeordnet werden"
Mitarbeiter:
PC:
obligatorisch (immer vorhanden)
nicht obligatorische (Es kann ja auch Mitarbeiter ohne PCs geben)
Ausgangsbasis:
Mitarbeiter
Pers# Name
P1
Meier
P2
Müller
P3
Bürger
PC
PC#
565
677
CPU
Pentium1G7
Duron1G7
Also, der Entitätsschlüssel der nichtobligatorischen Seite (PC#) ist Attribut der obligatorischen.
Mitarbeiter
Pers# Name
P1
Meier
P2
Müller
P3
Bürger
PC
PC#
565
677
PC#
677
NULL
565
CPU
Pentium1G7
Duron1G7
- 35 -
Datenmodellierung
Haas, Resch
Regel 4) 1 : 1 Beziehung, beide Entität nichtobligatorisch
Es werden 3 Entitätsmengen benötigt: Die beiden ursächlichen Entität und eine Entitätsmenge für die
Beziehung, die die Entitätsschlüssel beider Entitätsmengen enthält.
Beispiel:
"Ein Mitarbeiter kann einen fix zugeordneten PC haben"
"Ein PC kann einem Mitarbeiter fix zugeordnet werden"
Ausgangsbasis:
Mitarbeiter
Pers# Name
P1
Meier
P2
Müller
P3
Bürger
PC
PC#
412
542
565
677
CPU
I386
Celeron766
Pentium1G7
Duron1G7
Also, eine Entitätsmenge für die Beziehung, die die Entitätsschlüssel beider Entitätsmengen enthält,
zusätzlich zu den beiden bestehenden Entitätsmengen.
Mitarbeiter
Pers# Name
P1
Meier
P2
Müller
P3
Bürger
PC
PC#
412
542
565
677
CPU
I386
Celeron766
Pentium1G7
Duron1G7
Zugeordneter PC
Pers# PC
P1
677
P2
542
P3
565
Den PC mit der Inventarnummer 412 will (aus verständlichen Gründen) niemand haben!
Hinweis:
Wir können uns in diesem Fall aussuchen, welches Attribut wir in der Entitätsmenge "Zugeordneter
PC als Schlüsselattribut verwenden wollen!
- 36 -
Datenmodellierung
Haas, Resch
Regel 5) 1 : n Beziehung, n- Seite obligatorisch (Fremdschlüssel)
Es werden zwei Entitätsmengen benötigt. Der Entitätsschlüssel der 1 -Seite ist Attribut der
Entitätsmenge der n -Seite.
Beispiel:
"Eine Person kann mehrer Bücher entlehnen"
"Ein Buch kann nur von einer Personen entlehnt werden (es gibt also immer nur ein Exemplar)"
Ausgangsbasis:
Person ist die 1-Seite
Buch ist die N-Seite (obligatorisch)
Personen
Pers# Name
P1
Meier
P2
Müller
P3
Bürger
Bücher
ISBN#
1212
1213
1214
1215
Titel
SQL
ACCESS
ORACLE
Datenmodellierung
Hinweis:
Was muß mit jedem Buch sein (Es muß an eine Person verliehen sein!)
Also, der Entitätsschlüssel der 1 -Seite wird Attribut der Entitätsmenge der n -Seite.
Personen
Pers# Name
P1
Meier
P2
Müller
P3
Bürger
Bücher
ISBN#
1212
1213
1214
1215
Titel
SQL
ACCESS
ORACLE
Datenmodellierung
Pers#
P1
P3
P2
P1
Regel 6) 1 : n Beziehung, beide Seite nichtobligatorisch
Es werden drei Entitätsmengen benötigt - eine zusätzliche für die Entitätsmenge, die die
Entitätsschlüssel beider Entitätsmengen enthält.
- 37 -
Datenmodellierung
Haas, Resch
Beispiel:
"Eine Person kann beliebig viele Bücher entlehnen (also auch gar keine)"
"Ein Buch kann von höchstens einer Personen entlehnt werden"
Ausgangsbasis:
Person ist die 1-Seite
Buch ist die N-Seite
Personen
Pers# Name
P1
Meier
P2
Müller
P3
Bürger
Bücher
ISBN#
1212
1213
1214
1215
Titel
SQL
ACCESS
ORACLE
Datenmodellierung
Also, eine zusätzliche für die Entitätsmenge, die die Entitätsschlüssel beider Entitätsmengen enthält.
Personen
Pers# Name
P1
Meier
P2
Müller
P3
Bürger
Bücher
ISBN#
1212
1213
1214
1215
Titel
SQL
ACCESS
ORACLE
Datenmodellierung
entlehnt
ISBN# Pers#
1212
P2
1215
P1
Es gibt also Bücher, die nicht entlehnt sind und Personen, die keine Bücher ausgeborgt haben.
- 38 -
Datenmodellierung
Haas, Resch
Hinweis:
Wozu gibt es diese beiden Unterscheidungen?
Bei der Regel 5) könnten dann Zeilen mit vielen NULL Werten entstehen:
ISBN#
1212
1213
1214
1215
Titel
SQL
ACCESS
ORACLE
Datenmodellierung
Pers#
P2
NULL
NULL
P1
Das ist ein Zeichen von schlechtem Datenbankdesign, da Speicherplatz verschwendet wird!
Regel 7) n : m Beziehung
Es werden drei Entitätsmengen benötigt - eine Zusätzliche für die Beziehung, die die Entitätsschlüssel
beider Entitätenmengen (meist als gemeinsamen Primärschlüssel- 'All Keyed' Relation -) enthält.
Beispiel:
Verkäufer (Verk#, Name)
Käufer (K #, Name)
Verkauf(Verk#, K#, Menge)
Regel 8) m: n : o Beziehung (tenäre oder mehrwertige Beziehung)
Es werden Anzahl der Entitätsmengen + eine zusätzliche Entitätsmenge benötigt, sonst wie Regel 7.
Beispiel:
Verkäufer (Verk#, Name)
Käufer (K #, Name)
Artikel (Art#, Name, Preis)
Verkauf(Verk#, K#, A#, Menge)
11.2. ein einfaches Beispiel
In einem Betrieb arbeiten Personen (Mitarbeiter) in Abteilungen an Produkten.
Folgende Feststellungen können getroffen werden:
§
§
§
§
§
§
ein Mitarbeiter hat einen Namen sowie einen Wohnort
Er ist in einer Abteilung tätig und arbeitet an mehreren Produkten jeweils eine vorbestimmte Zeit.
Jede Abteilung weist einen Namen auf.
Desgleichen ist jedem Produkt ein Name zugeordnet
In einer Abteilung sind mehrere Personen tätig
an einem Produkt arbeiten meist mehrere Personen
- 39 -
Datenmodellierung
Haas, Resch
Entitätsmengen
Beziehung
Grad
Personen
Name,
Wohnort
arbeitet_in
1:N
arbeitet_an
Zeit
N:M
Abteilungen
Name
Produkte
Name
Person arbeitet_in Abteilung
N
:
1
Regel 5)
N Seite obligatorisch (muß vorhanden sein!) - OK gilt, in einer Abteilung muß also immer
mindestens ein Mitarbeiter sein.
Also: Zwei Relationen (eine je Entität). Der Entitätsschlüssel der 1-Seite ist Attribut der Relation
der N Seite (Fremdschlüssel!)
Regel 6)
Beide Seiten sind Nicht - obligatorisch (beide Seiten brauchen nicht vorhanden zu sein!) - Gilt
NICHT, da eine Person zu einer Abteilung gehört und eine Abteilung mindestens einen
Mitarbeiter haben soll
Personen arbeiten_an Produkten
M
:
N
Regel 7)
N:M Beziehung, Produkt-Per# <-N:M-> Person_Abt-Per#. Dies kann in einem relationalen
Datenbanksystem nur über eine zusätzliche Tabelle ("Produktion" - Assoziationstabelle)
dargestellt werden.
- 40 -
Datenmodellierung
Haas, Resch
12. Datenmodellierung mit ERWIN
Wir habe bis jetzt schon sehr viele Dinge über Datenmodellierung gelernt:
Wir kenne die Grundbegriffe (Entität, Attribut, Beziehung, Kardinalität, Primary Key, Sekundary Key,
Normalformen, usw.)
Wir kennen bereits zwei unterschiedliche Notationsformen:
•
•
Relationenmodell
Chen Diagramme
Nun beginnen wir uns in eine andere Notationsform einzuarbeiten: ERWIN - Entity Realtion Diagrams
for Windows.
Bis jetzt haben wir uns nur sehr theoretisch mit unseren Datenmodellen befasst - nun werden wir am
Computer unsere Datenmodelle entwickeln und Skripts zum Erzeugen der Tabellen daraus ableiten
lassen.
- 41 -
Datenmodellierung
Haas, Resch
13. Bäume in Tabellen
Beispiel Diensthierarchie
Kriterien für einen echten Baum:
- ein Knoten hat beliebig viele Nachfolger
- ein Knoten hat genau einen Vorgänger
Stappler (SP)
Hickel (HI)
Berger (BF)
Lederbauer (LB)
Figl (FI)
Mitmannsgr. (MI)
Behringer (BE)
Haas (HS)
Sina (SI)
Preissl (PR)
Krieger (KR)
Halbritter (HA)
Wie in eine Tabelle abbilden?
Zwischenschritt:
Lehrer
L#
HI
BF
SP
LB
...
LName
VLName
NULL
HI
HI
HI
Vorgesetzte
VL#
LName
HI
BF
SP
LB
...
Das ist eine 1:N Beziehung mit Auflösung als Non - Key -> "Self Join" oder laut Erwin "Fisher Hook".
Hinweis:
In Erwin über Rollennamen zu lösen!
Also: Eine Tabelle genügt, der Vorgesetzte kommt selbst in der Tabelle vor!
L#
HI
BF
SP
LB
FI
MI
BE
...
VL#
NULL
HI
HI
HI
SP
SP
SP
LName
- 42 -
Datenmodellierung
Haas, Resch
Achtung, KEIN Baum ist etwa eine Stückliste:
Rad
Fahrrad
Speichen
Nabe
Felgen
Rahmen
Lenker
Muttern
Muttern hat mehr wie einen Vorgänger!
Weitere Beispiele für KEINE Bäume:
Stammbaum (ein Kind hat zwei Eltern)
...
Artikel:
Ein Artikel kann aus mehreren Bestandteilen bestehen
ein Artikel kann Bestandteil von mehreren Artikeln sein
Artikel
Artikel
Fahrrad
Rad
Rahmen
Lenker
Speichen
Nabe
Felge
Lenker
1:N
1:N
Stückliste
oben
Fahrrad
Fahrrad
Fahrrad
Rad
Rad
Rad
Rahmen
Nabe
Lenker
unten
Rad
Rahmen
Lenker
Speichen
Nabe
Felgen
Mutter
Muttern
Muttern
Anzahl
2
1
1
26
1
1
5
2
1
N:M
Es werden hier aber nur zwei Tabellen benötigt, da "oben" und "unten" gleiches "Ding", nämlich Artikel
oben: besteht aus
unten: enthalten in
- 43 -
Herunterladen