Sie sind auf Seite 1von 9

ER-Modell & Beziehungen

Das Entity-Relationship Modell abgekrzt mit ER-Modell oder ERM dient als Grundlage fr einen
Datenbankentwurf. Bevor mittels SQL angefangen wird, Tabellen und Beziehungen anzulegen, wird
erst mal mittels ER-Modell geplant, wie die Datenbankstruktur aufgebaut und funktionieren soll.
Die Grundelemente eines jeden Entity-Relationship-Modells sind (grafisch):

- Eine Entitt ist ein individuell identifizierbares Objekt der Wirklichkeit.


- Eine Beziehung ist eine Verknpfung / Zusammenhang zwischen zwei oder mehreren Entitten.
- Ein Attribut ist eine Eigenschaft, die im Kontext zu einer Entitt steht.
Beispiele:
Merke Tabellennamen immer im Plural schreiben!

Ein Kunde besitzt genau einen Ausweis und ein Ausweis gehrt zu genau einem Kunden.

er

K_Nr

K_Nr

Kunde

Name

leiht

Vorname

Buch

Titel

Leihdatum

Ein Kunde kann mehrere Bcher ausleihen, aber ein Buch kann nur von genau einem Kunden
ausgeliehen werden.

e
PF

PF

Ein Mitarbeiter kann mehrere Projekte bearbeiten und ein Projekt kann von mehreren Mitarbeitern
bearbeitet werden.
Wichtig! Bei einer m:n Beziehung entsteht immer eine dritte Tabelle. In diesem Fall ist es
T_MitarbeiterProjekte, der Primrschlssel und gleichzeitig Fremdschlssel dieser Tabelle setzt sich
zusammen aus den Primrschlsseln der anderen beiden Tabellen (T_Mitarbeiter & T_Projekte) zu
PF_Mit_Nr & PF_P_Id.

Fachbegriffe
Redundanz: Redundante Daten sind doppelte Informationen in einer Datenbank bzw. DatenbankTabelle, welche ohne Informationsverlust durch die Normalisierung weggelassen werden knnen.
-> Zum Beispiel
Dateninkonsistenz: Wiedersprche in den Daten.
-> Zum Beispiel haben wir einen neuen Hersteller, jedoch keine Telefonnummer von diesem
Beziehungstyp: Ein Beziehungstyp wird bestimmt durch Kardinalitten, z.B. 1:n. Dieser gibt an auf
welche Weise die Entittstypen miteinander verbunden sind.
Primrschlssel: Der Primrschlssel, auch Primary Key oder PK genannt, ist eine eindeutige Nummer
fr eine Tupel, er dient somit zur eindeutigen Identifizierung einer einzelnen Zeile in einer Tabelle.
-> Zum Beispiel P_Artikel_Nr
Atomare Werte: Atomare Werte liegen vor wenn eine Spalte nur eine einzige Information enthlt.
-> Zum Beispiel drfen PLZ und Ort nicht in einer Spalte vorliegen.
Vollstndig funktionale Abhngigkeit: Wenn jedes Nichtschlsselattribut von jedem Schlsselattribut
abhngig ist.
-> Zum Beispiel bentigt man um auf Kunde Max Mustermann aus Berlin zu kommen immer seine
P_KundenNr, denn es kann diesen Namen noch einmal geben.
P_KundenNr
1
2

Vorname
Max
Max

Transitive Abhngigkeit: (siehe 3.NF)

Nachname
Mustermann
Mustermann

Wohnort
Berlin
Hamburg

Anomalien
Anomalien sind Probleme die bei der Erstellung von Datenbanken entstehen wenn diese nicht
normalisiert ist. Wir unterscheiden drei verschiedene Arten der Anomalie.
Beispiel Tabelle:

- Insert Anomalie: Wenn ein neuer Hersteller in das Sortiment aufgenommen werden soll, jedoch
noch kein Lieferant gefunden wurde entsteht Dateninkonsistenz.
- Delete Anomalie: Wenn wir CD-Rohlinge fr 2,80 von Maxwell lschen wollen, gehen ebenso die
Daten des Lieferanten verloren.
- Update Anomalie: Wenn ein Lieferant seinen Sitz ndert, dann muss dies mehrfach gettigt
werden.

Normalisierung (Normalformen)
Ziel der Normalisierung ist:
- Beseitigung von Redundanzen
- Vermeidung von Anomalien (funktionelle und transitive Abhngigkeiten)
- Erstellung eines klar strukturierten Datenbankmodells
Wir betrachten nun drei verschiedene Normalformen:

1.NF
Eine Relationstyp (Tabelle) befindet sich in der ersten Normalform (1NF), wenn die Wertebereiche
der Attribute des Relationstypen atomar sind.
Beispiel:
P_ReNr Datum

Name

187

Max
Musterstr. 12345
Bleistift 2
Mustermann 1
Musterort

01.01.2012

Strae

Ort

Artikel Anzahl Kosten


1,00

Ersten Normalform (1NF) sieht das Ergebnis wie folgt aus:


P_ReNr Datum
187

Name

Vorname Strae

01.01.2012 Mustermann Max

PLZ

Ort

Artikel Anzahl Kosten

Musterstr.
12345 Musterort Bleistift 2
1

1,00

2.NF
Ein Relationstyp (Tabelle) befindet sich genau dann in der zweiten Normalform (2NF), wenn er sich in
der ersten Normalform (1NF) befindet und jedes Nichtschlsselattribut von jedem
Schlsselkandidaten voll funktional abhngig ist.
Beispiel:
P_ReNr Datum
187

Name

Vorname Strae

PLZ

Ort

Artikel Stk. Kosten

Musterstr.
12345 Musterort Stift
1

01.01.2012 Mustermann Max

1,00

Nach der Anwendung der Zweiten Normalform (2NF) sieht das Ergebnis wie folgt aus:
P_ReNr

Datum

F_KundenNr

187

01.01.2012

007

P_KundenNr Name
007

Vorname Strae

Mustermann Max

PLZ

Ort

Musterstr.
12345 Musterort
1

P_RePosNr

F_ReNr

F_ArtNr

Stk.

187

69

P_ArtNr

Artikel

Kosten

69

Stift

1,00

Da ein Name (Nachname) nicht eindeutig ist, wird jedem Kunden eine Kundennummer (KundenNr)
zugeordnet. Diese ist der Primrschlssel der neuen Tabelle Kunden. Danach wird das gleiche mit
den Artikeln durchgefhrt. Des Weiteren wird eine Rechungspositionstabelle eingebaut, da eine
Rechnung von einem Kunden eine Vielzahl von Rechnungspositionen mit verschiedenen Artikeln
beinhalten kann.
Die Spalten, die von einem Schlsselkandidaten nicht vollstndig funktional abhngig sind, werden in
einer Untertabelle ausgelagert. Der Teil des Schlsselkandidaten, von dem eine ausgelagerte Spalte
funktional abhngig ist, wird Primrschlssel der neuen Tabelle. In der zweiten Normalform werden
auch die ersten Beziehungen in Datenbanken festgelegt.

3.NF
Ein Relationstyp befindet sich genau dann in der dritten Normalform (3NF), wenn er sich in der
zweiten Normalform (2NF) befindet und kein Nichtschlsselattribut transitiv von einem
Kandidatenschlssel abhngt.
Beispiel:
P_KundenNr Name

Vorname Strae

007

Max

Mustermann

PLZ

Ort

Musterstr. 1 12345 Musterort

Nach der Anwendung der Dritten Normalform (3NF) sieht das Ergebnis wie folgt aus:
P_KundenNr Name
007

Vorname Strae

Mutsermann Max

P_PLZ

Ort

12345

Musterort

F_PLZ

Musterstr. 1 12345

In der Tabelle Kunden sind die Attribute Name Vorname Strae und PLZ abhngig vom
Attribut P_KundenNr. Jedoch ist das Attribut Ort abhngig vom verstecke Primrschlssel PLZ,
denn erst mit der PLZ kann ich den Ortsnamen herausfinden.
Diese transitiv abhngigen Spalten (PLZ ORT) werden in weitere Untertabellen ausgelagert, da
sie nicht direkt vom Schlssel (P_KundenNr) abhngig sind, sondern nur indirekt.

CREATE, INSERT Anweisungen und Abfragen