Kein Folientitel

Werbung
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Übersicht
Inhalt:
 Überblick
 Entity Relation Ship Diagramm
 Attribute
 Relationenmodell (Tabellendarstellung)
 Normalisierung
 Integritätsbedingungen
Christoph Riewerts
Seite 1
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Überblick
Phasen:
Begriffe/Merkmale:
Analyse-Phase
Informationsobjekte
ERD (oder auch ERM)
Design-Phase
Tabellen
Datenbankschema
Integritätsbedingung
Programmier-Phase
Datensätze, Indizes
Speicherstrukturen
Seite 2
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Entity Relationship (ER) Diagramm
ER-Diagramm (ERD):
Ein ER-Diagramm ist die grafische Darstellung von Informationsobjekten (auch Entitäten
genannt) und deren Beziehungen untereinander (Peter Chen).
Informationsobjekt:
Ein Informationsobjekt ist ein individuelles und identifizierbares Exemplar von Dingen,
Personen oder Begriffen der realen oder der Vorstellungswelt.
• gezeichnet im ERD als Rechteck
• Namensvergabe: Substantiv
• wird durch Attribute näher beschrieben
• Beispiele (für Personen, Dinge, Aktionen und abstrakte Begriffe):
Kündigung
Mitarbeiter
Projekt
Bestellung
Fertigmeldung
Artikel
Abteilung
Seite 3
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Entity Relationship (ER) Diagramm
Beziehung:
Eine Beziehung assoziiert wechselseitig zwei (oder mehr) Entitäten (Informationsobjekte):
• gezeichnet im ERD als Raute mit einer Linie zur jeweiligen Entität
• Namensvergabe:
– Verb, um die Darstellung Entität-Beziehung-Entität von links nach rechts lesen zu
können oder
– Substantiv, wenn aus Gründen der Vereinheitlichung ein Hauptwort gefordert ist
oder mehr als 2 Entitäten assoziiert sind.
• wird durch Attribute näher beschrieben
• Es gibt drei Typen von Beziehungen (nach Chen): 1:1, 1:n und n:m, die man mit dem
Konditionalzeichen c erweitern kann, so dass Kann- und Muss-Beziehungen
unterschiedlich dargestellt werden können, wie z.B. 1:c, 1:mc und n:mc mit
n = 1,2,3,4,… und
m = 1,2,3,4,…
c = 0 oder 1
und
mc = 0,1,2,3,4,…
Seite 4
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Entity Relationship (ER) Diagramm
1:1-Beziehung (Muss-Beziehung)
1:c-Beziehung (Kann-Beziehung)
1:n-Beziehung (Muss-Beziehung):
Zu jedem Vater gibt es ein oder
mehrere Kinder, jedes Kind hat
genau einen Vater.
1:mc-Beziehung (Kann-Beziehung):
Es gibt Männer, die haben keine
Kinder.
Seite 5
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Entity Relationship (ER) Diagramm
n:m-Beziehung (Muss-Beziehung):
Ein Schüler muss mindestens einen
Kurs besuchen. Umgekehrt muss jeder
Kurs von mindestens einem Schüler
belegt werden.
nc:mc-Beziehung (Kann-Beziehung):
Ein Schüler kann ein Fach oder mehrere
Fächer belegen, ein Fach kann von
mehreren Schülern belegt sein, jedoch
auch von keinem.
Implizite Beziehung:
(heißt im INNOVATOR
„hierarchische Beziehung“)
1
Buch
gibt es
als
mc
Bibliotheksexemplar
Seite 6
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Entity Relationship (ER) Diagramm
Implizite Beziehung (is part of):
Implizite Beziehung (is a):
•
Artikel auf Lager oder
auch nicht
•
Geschäftspartner kann
ein Lieferant oder
ein Kunde sein.
1
n
Rechnung
1
Sortimentsartikel
Rechnungsposition
enthält
c
Lagerartikel
ist vorh. als
c
Lieferant
1
Geschäftspartner
ist ein
c
Kunde
Rekursive Beziehung (mit Rollenbezeichnungen):
c
Baugruppe
besteht
aus
Bauteil
mc
Teil
Mitarbeiter
c
ist Chef
von
Vorgesetzter
mc
Mitarbeiter
Untergebener
Seite 7
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Entity Relationship (ER) Diagramm
Gegenüberstellung von (1,m,n)- und (min, max)-Notation:
Eine Beziehung R = (E1, E2) wird in der (min, max)-Notation
durch Angabe der zwei Komplexitätsgrade Comp(E1, R) und
Comp(E2, R) beschrieben, wobei für die Eckwerte von min
und max gilt: 0 ge min ge 1 ge max ge *
mit ge = grössergleich:
(1,M,N)-Notation
Weitere alternative
Darstellungsformen
der Kardinalität
(„Krähenfüße“):
(min, max)-Notation
Comp(E1, E2)
Comp(E1, R)
Comp(E2, R)
1:1
(1,1)
(1,1)
1:c
(0,1)
(1,1)
1:n
(1,*)
(1,1)
1:nc
(0,*)
(1,1)
mc:nc
(0,*)
(0,*)
Bitte bei (min, max)-Notation Umkehrung beachten!
Seite 8
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Entity Relationship (ER) Diagramm
Übung:
Tragen Sie in das
nebenstehende
ERD zusätzlich die
(min, max)-Notation
ein.
Lieferant
1
besitzt
c
Konto
1
erhält
mc
Bestellung
nc
enthält
m
Artikel
1
besteht
aus
n
Bestellposition
Seite 9
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Attribute
Attribute von Entitäten:
• Identifizierende Attribute (Schlüsselattribute):
– Primärschlüssel (i. d. R. durch Unterstrich gekennzeichnet, obligatorisch, kann
zusammengesetzt sein)
– Sekundärschlüssel (alternativer Primärschlüssel)
– Fremdschlüssel (existiert in anderen Entitäten als Primärschlüssel)
• Beschreibende Attribute (sind optional):
– sollten funktional vom Primärschlüssel abhängen (2.Normalform)
– sollten untereinander nicht funktional abhängen (3. Normalform)
• Darstellung:
– als Liste
Mitarbeiter = (Pers-Nummer, Name, Geburtsdatum)
–
in einer Ellipse als Erweiterung im ERD:
Kontostand
Kontonr
Konto
Seite 10
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Attribute
Attribute von Beziehungen:
• Primärschlüssel von den assoziierten Informationsobjekten ( = Fremdschlüssel)
• Beschreibende Attribute (sind optional)
• Beispiel: n:m-Beziehung
Mitarbeiter = (Pers-Nummer, Name, Geburtsdatum, ..)
Projekt = (Projekt-ID, Projektlaufzeit, ..)
Primärschlüssel
Mitarbeiter
n
Primärschlüssel
arbeitet
in
mc
Projekt
arbeitet in = (Pers-Nummer, Projekt-ID, Kapazität)
Kapazität ist ein beschreibendes Attribut
Seite 11
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Relationenmodell
Relationenmodell:
• Beim Übergang von der Analyse zum Design und damit bei der Wahl einer
Relationalen Datenbank wird das Datenmodell in ein Relationenmodell überführt.
• In einer relationalen Datenbank sind alle Informationen explizit auf der logischen
Ebene genau auf eine Art repräsentiert: als Werte in Tabellen (= Relationen) (E.F.
Codd)
Primärschlüssel
•
•
•
Reihenfolge der Zeilen und
Reihenfolge der Spalten sind
ohne Bedeutung.
Die Raute des Informationsmodells wird umgesetzt und
erscheint als FremdschlüsselBeziehung in einer Tabelle.
Attributwerte sind immer vom
gleichen Typ (Domäne)
Vormerkung
BuchSignatur
Name
Datum
SN-32
Mayer
01.02.2007
BB-45
Mayer
01.02.2007
AW-90
Müller
06.02.2007
SN-32
Müller
13.02.2007
Ausprägung
(Tupel)
Attribute (Spalte)
Seite 12
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Relationenmodell
1:n Beziehung im Relationenmodell:
Der Primärschlüssel der 1-Relation erscheint als zusätzliches Attribut in der n-Relation und
wird dort als Fremdschlüssel bezeichnet:
Abteilungs-_
Kürzel
Abteilung
Tabelle
Name
Anzahl MA
1
beschäftigt
n
AngestellterID
Angestellter
Seite 13
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Relationenmodell
Übung zur 1:n Beziehung im Relationenmodell:
Wie sehen die 2 Tabellen aus incl. Fremdschlüssel, wenn man die Relation „beschäftigt“ nicht
dem Angestellten zuordnet - wie vorgeschrieben - , sondern der Abteilung (s. Bild)?
Diskutieren Sie diese Alternative.
Abteilungs-_
Kürzel
Abteilung
Tabelle
Name
Anzahl MA
1
beschäftigt
n
AngestellterID
Angestellter
Seite 14
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Relationenmodell
Mehrfachattribute:
• Sind in der 1. Normalform (s. Normalisierung) nicht erlaubt
• Beispiel: Mitarbeiter ist in mehreren Wohnorten gemeldet
Mitarbeiter = (Mitarbeiter-Nummer, Adressen, Name)
•
Lösung 1, wenn Anzahl der Wohnsitze begrenzt und bekannt
Mitarbeiter = (Mitarbeiter-Nummer, Adresse1, Adresse2, Adresse3, Name)
•
Lösung 2 (Entität statt Attribut)
Mitarbeiter = (Mitarbeiter-Nummer, Name)
Adresse = (Wohnsitz)
•
Frage: wenn jetzt mehrere Mitarbeiter dieselbe Adresse haben?
Seite 15
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Relationenmodell
n:m Beziehung im Relationenmodell:
Aus einer n:m Beziehung im Datenmodell werden zwei 1:n Beziehungen mit einer
sogenannten Beziehungsentität:
Mitarbeiter
Tabelle
n
arbeitet
in
mc
Projekt
Seite 16
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Normalisierung
Unnormalisierte Tabelle:
• Redundante Datenhaltung
• Speicheroperationen wie Neuzugang, Löschen und Aktualisieren können zu einer
inkonsistenten Datenhaltung führen
• Schwierige Handhabung (z.B. wegen der Mehrfach-Attribute)
Mitarbeiter
MA-Nr.
Name
Abt-Nr
Abt-Name
Zeit [%]
Projektnr
Projektname
112224
Meyer
E7
Entwicklung
80
20
S30001
S30002
SW-Installation
HW-Installation
112225
Graf
K
Konstruktion
100
S30020
PM-Einsatz
112226
König
K
Konstruktion
20
80
S30020
S30021
PM-Einsatz
CASE-Konzept
112227
Keiser
ZEU
Zentraleinkauf
100
S30022
PC-Angebot
Aufgabe: Bringen Sie die Tabelle in die 1. Normalform.
Seite 17
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Normalisierung
1. Normalform
Eine Tabelle (Relation) ist in der 1. Normalform, wenn jedes Attribut zu einem bestimmten
Schlüsselwert höchstens einen(!) Attributwert besitzt
Mitarbeiter
MA-Nr.
Name
Abt-Nr
Abt-Name
Zeit [%]
Projektnr
Projektname
112224
Meyer
E7
Entwicklung
80
S30001
SW-Installation
112224
Meyer
E7
Entwicklung
20
S30002
HW-Installation
112225
Graf
K
Konstruktion
100
S30020
PM-Einsatz
112226
König
K
Konstruktion
20
S30020
PM-Einsatz
112226
König
K
Konstruktion
80
S30021
CASE-Konzept
112227
Keiser
ZEU
Zentraleinkauf
100
S30022
PC-Angebot
Aufgabe: Bringen Sie die Tabelle in die 2. Normalform.
Seite 18
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Normalisierung
2. Normalform
Eine Tabelle (Relation) ist in der 2. Normalform, wenn sie in der 1. Normalform ist und
jedes nicht dem Schlüssel angehörende Attribut funktional abhängig ist vom
Gesamtschlüssel, nicht aber von einzelnen Schlüsselteilen.
Mitarbeiter
MA-Nr.
Name
Abt-Nr
Abt-Name
Projektzugehörigkeit
112224
Meyer
E7
Entwicklung
112225
Graf
K
Konstruktion
112226
König
K
Konstruktion
112227
Keiser
ZEU
Zentraleinkauf
Projekt
Projektnr
Projektname
S30001
SW-Installation
S30002
HW-Installation
S30020
PM-Einsatz
S30021
CASE-Konzept
S30022
PC-Angebot
MA-Nr.
Projektnr
Zeit [%]
112224
S30001
80
112224
S30002
20
112225
S30020
100
112226
S30020
20
112226
S30021
80
112227
S30022
100
Aufgabe: Bringen Sie die Tabelle(n) in
die 3. Normalform.
Seite 19
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Normalisierung
3. Normalform
Eine Tabelle (Relation) ist in der 3. Normalform, wenn sie in der 2. Normalform ist und
jedes Attribut direkt vom Schlüssel abhängig ist.
Abteilung
Mitarbeiter
MA-Nr.
Name
112224
Meyer
E7
112225
Graf
K
112226
König
K
112227
Keiser
ZEU
Projekt
Projektnr
Abt-Nr
Abt-Nr
Projektname
S30001
SW-Installation
S30002
HW-Installation
S30020
PM-Einsatz
S30021
CASE-Konzept
S30022
PC-Angebot
Abt-Name
E7
Entwicklung
K
Konstruktion
ZEU
Zentraleinkauf
Projektzugehörigkeit
MA-Nr.
Projektnr
Zeit [%]
112224
S30001
80
112224
S30002
20
112225
S30020
100
112226
S30020
20
112226
S30021
80
112227
S30022
100
Seite 20
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Normalisierung
Übung:
Kennzeichnen Sie in den vier Tabellen aus dem Normalisierungsbeispiel (s.v.) diejenigen
Attribute, die Fremdschlüssel sind.
Wandeln Sie danach die Tabellen in ein ERD um unter Verwendung der Tabellennamen für
die Entitäten. Die richtigen Kardinalitäten können aus den Beispieleinträgen abgeleitet
werden.
Spezifizieren Sie abschließend bitte noch den Prozess „Mitarbeiter-Tabelle
zusammenstellen“, der aus den einzelnen Attributen der normalisierten Tabellen die
unnormalisierte Mitarbeiter-Tabelle erzeugt. Verwenden Sie dazu das DFD (mit dem
Innovator) und modellieren Sie die normalisierten Tabellen als Datenspeicher.
Seite 21
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Integritätsbedingungen
Integritätsbedingungen sind notwendig, um mit den Abhängigkeiten der Tabellen
(Fremdschlüsselbeziehungen) „richtig“ umgehen zu können:
• Anwendungsbezogene Integrität (domain integrity):
– Zwischen den Attributen bestehen inhaltliche Abhängigkeiten, z.B. Summenattribut
– Wertebereich von Attributen soll eingehalten werden
– Zwei Beziehungen sollen sich gegenseitig ausschließen
– ….
• Ganzheitliche Integrität (entity integrity):
– Kein Attribut, das Teil eines Primärschlüssels einer Tabelle ist, darf Nullwerte
annehmen.
• Referenzielle Integrität / Beziehungsintegrität (referential integrity):
– Für jeden vom Nullwert verschiedenen Fremdschlüssel muss ein entsprechender
Primärschlüssel aus derselben Domäne existieren.
– Für jeden Fremdschlüssel sind festzulegen:
• Darf der Fremdschlüssel Nullwerte annehmen?
• Was soll mit dem Fremdschlüssel geschehen, wenn der Primärschlüssel gelöscht
bzw. modifiziert wird?
Seite 22
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Integritätsbedingungen
Beispiele für Beziehungsintegrität (Löschen des Primärschlüssels):
1.) Weitergabe der
Löschung
(CASCADE), d.h. alle
Tupel der Tabelle mit
einem Fremdschlüssel,
der dem gelöschten
Primärschlüssel
entspricht, werden
ebenfalls gelöscht.
Seite 23
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Integritätsbedingungen
Beispiele für Beziehungsintegrität (Löschen des Primärschlüssels):
2.) Bedingte Löschung
(RESTRICT, default), d.h. ein
Tupel in der Tabelle mit dem
Primärschlüssel kann nur
dann gelöscht werden, wenn
in der referierenden Tabelle
kein Tupel mehr mit einem
Fremdschlüssel existiert, der
dem Primarschlüssel
entspricht.
Seite 24
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Integritätsbedingungen
Beispiele für Beziehungsintegrität (Löschen des Primärschlüssels):
3.) Nullsetzen bei der
Löschung (SET NULL),
d.h. alle
Fremdschlüsselwerte, die
dem Primärschlüssel
entsprechen, werden in
der referenzierten Tabelle
zu Null gesetzt.
Seite 25
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.4
Feb 2012
Informationsmodellierung
Normalisierung
Lösung der Übungsaufgabe aus dem Vorlesungsskript, speziell das DFD:
Seite 26
Herunterladen