Kapitel 3 - Datenmodellierung mit UML

Download Report

Transcript Kapitel 3 - Datenmodellierung mit UML

Kapitel 3
Dr. Brigitte Mathiak
Daten- und Informationsmodellierung

Lernziele
Kenntnis der Vorgehensweise beim DB-Entwurf
Grundkonzepte von UML Klassendiagrammen für
Datenmodellierung
Kenntnis der Abstraktionskonzepte (Generalisierung,
Aggregation)
Fähigkeit zur praktischen Anwendung der Konzepte
– Erstellung von Modellen für gegebene Anwendungsszenarien
– Festlegung der Primärschlüssel, Beziehungstypen, Kardinalitäten,
Existenzabhängigkeiten etc.
– Interpretation gegebener Modelle
Datenbanken, SS 12
Kapitel 3: Daten- und Informationsmodellierung
2
Allgemeine Vorgehensweise

reales System
Auswertungen
Modifikationen
Entwurf
Anforderungsermittlung und Analyse
Konzeptioneller Entwurf (Informationsmodellierung)
Implementierung
Logischer Entwurf (DB-Schema,-externe Schema)
physischer Entwurf (internes Schema)
Anwendungserstellung, Systemintegration
Tests
Evaluationen
Informationssystem
Verwendung
Datenbanken, SS 12
Kapitel 3: Daten- und Informationsmodellierung
3
Informationsmodellierung

Objekte
" Miniwelt "
Zusammenhänge
Sachverhalte
Informationen
Personen
Attribute
Gegenstände
Formalisierung
Tatsachen
Beziehungen
Vorgänge,
Veränderungen..
Darstellungselemente + Regeln:
-
Objekte und Beziehungen (Relationships)
Klassen von Objekten / Beziehungen
Eigenschaften (Attribute)
Informationen über Objekte und Beziehungen nur wenn:
-
relevant
unterscheidbar und identifizierbar, selektiv beschreibbar
Datenbanken, SS 12
Kapitel 3: Daten- und Informationsmodellierung
4
Abstraktionskonzepte

Informations- und Datenmodelle basieren auf drei
grundlegenden Abstraktionskonzepten:
Klassifikation: fasst Objekte (Entities, Instanzen)
mit gemeinsamen Eigenschaften zu einem neuen (Mengen-) Objekt
(Entity-Menge, Klasse, Objekttyp) zusammen.
– Instanzen/Objekten einer Klasse unterliegen gleicher Struktur (Attribute),
gleichen Integritätsbedingungen, gleichen Operationen
– mathematisch: Mengenbildung
Aggregation: Zusammenfassung potentiell unterschiedlicher
Teilobjekte (Komponenten) zu neuem Objekt
– mathematisch: Bildung von kartesischen Produkten
Generalisierung: Teilmengenbeziehungen
zwischen Elementen verschiedener Klassen
– mathematisch: Bildung von Potenzmengen (bzw. Teilmengen)
– wesentlich: Vererbung von Eigenschaften an Teilmengen
Datenbanken, SS 12
Kapitel 3: Daten- und Informationsmodellierung
5
Objektbeschreibung

 Gehalt
Uni-Angestellte
- Anzahl: 1000
• Typ: dezimal
- Attribute
• Länge: (8,2)
 PersonalNummer
• Anzahl Wiederholung: 0
• Typ: char
• Definiertheit: 10%
• Länge: 9
• Identifizierend: nein
• Wertebereich:
0...999.999.999
 Rang
• Typ: String
• Anzahl Wiederholungen: 0
• Länge: 4
• Definiertheit: 100%
• Anzahl Wiederholung: 0
• Identifizierend: ja
• Definiertheit: 100%
• Identifizierend: nein
Datenbanken, SS 12
Kapitel 3: Daten- und Informationsmodellierung
6
Beziehungsbeschreibung: prüfen

Beteiligte Objekte:
- Professor als Prüfer
- Student als Prüfling
- Vorlesung als Prüfungsstoff
Attribute der Beziehung:
- Datum
- Uhrzeit
- Note
Anzahl: 100 000 pro Jahr
Datenbanken, SS 12
Kapitel 3: Daten- und Informationsmodellierung
7
Prozeßbeschreibungen: Zeugnisausstellung

Häufigkeit: halbjährlich
benötigte Daten
 Prüfungen
 Studienordnungen
 Studenteninformation
 ...
Priorität: hoch
Zu verarbeitende Datenmenge
 500 Studenten
 3000 Prüfungen
 10 Studienordnungen
Datenbanken, SS 12
Kapitel 3: Daten- und Informationsmodellierung
8
Unified Modeling Language (UML)

standardisierte graphische Notation / Sprache zur Beschreibung
objektorientierter Software-Entwicklung
Kombination unterschiedlicher Modelle bzw. Notationen, u.a.
– Booch
– Rumbaugh (OMT)
– Jacobson (UseCases)
Standardisierung durch Herstellervereinigung OMG
(Object Management Group):
– 1997: UML 1.1
– 2001: UML 1.4
– 2003: UML 2.0
Infos: www.uml.org
J. Rumbaugh, I. Jacobson, Grady Booch:
The Unified Modeling Language Reference Manual (2nd Edition)
Addison-Wesley, 2004
Datenbanken, SS 12
Kapitel 3: Daten- und Informationsmodellierung
9

UML: Bestandteile
UML umfasst
 Modellelemente (Klassen, Interfaces, Anwendungsfälle ...)
 Beziehungen (Assoziationen, Generalisierung, Abhängigkeiten ...) und
 Diagramme
Software-Entwicklung
Anwendungsfälle
Klassendiagramme
Modularisierung
Klassendiagramme
verfeinert
Komponentendiagramme
Code (Klassendefinition)
Anforderungen

Analyse

Entwurf

Implementierung
Objektstruktur
Datenbanken, SS 12
Kapitel 3: Daten- und Informationsmodellierung
Aktivitäten
Szenarien
Sequenzdiagramme
Kooperations-,
Zustandsdiagramme
Verteilungsdiagramme,
Code (Methoden)
Objektverhalten
10
UML: Darstellung von Klassen und Objekten
Klassensymbol: Angabe von Klassenname, Attribute (optional),
Methoden (optional)
 i. a. werden nur relevante Details gezeigt
Student
Student
MatrNr: int
Name: String
Student
semester(): int
sumSWS(): short
Student
MatrNr: int
Name: String
semester(): int
sumSWS(): short
Analoge Darstellung von Klasseninstanzen (Objekten)
 keine Methodenangabe
rudi
:Student
S2: Student
MatrNr: 12345
Name: Maier
Datenbanken, SS 12
Kapitel 3: Daten- und Informationsmodellierung
11

UML: Darstellung von Klassen (2)
Detaildarstellung auf Implementierungsebene
 Attributspezifikation:
Sichtbarkeit Name: Typ = Default-Wert { Eigenschaften }
 Operationen:
Sichtbarkeit Name (Parameterliste) : Rückgabeausdruck { Eigenschaften }
 Sichtbarkeit: öffentlich / public (+), geschützt / protected (#), privat (-)
 unterstrichen: Klassen-Attribute / -Operationen
 Darstellung von Bedingungen (Constraints) innerhalb geschweifter { .. }
Window
Window
size: Area
visibility: Boolean
display()
hide()
Window
{abstrakt, autor=Joe}
+size: Area = (100,100)
#visibility: Boolean = false
+default-size: Rectangle
-xptr: Xwindow*
+display()
+create()
-attachXWindow(xwin:Xwindow*)
Datenbanken, SS 12
Kapitel 3: Daten- und Informationsmodellierung
12
UML: Assoziationen
Repräsentation von Beziehungen (relationships)
optional: Festlegung eines Assoziationsnamens, seiner
Leserichtung (bzw.), von Rollennamen, Sichtbarkeit von
Rollen (+, -, #) sowie Kardinalitätsrestriktionen
Klasse 1
Person
Datenbanken, SS 12
Assoziationsname
Rolle 1
Rolle 2
 ArbeitetIn
Rolle 1
Rolle 2
Klasse 2
Abteilung
Kapitel 3: Daten- und Informationsmodellierung
13
UML: Kardinalitätsrestriktionen
Verfeinerung der Semantik eines Beziehungstyps durch
Kardinalitätsrestriktionen:





x .. y
0 ..*
1 ..*
0 .. 1
1
mindestens x, maximal y Objekte nehmen an der Beziehung teil
optionale Teilnahme an der Beziehung (alternativ ' * ' = 'many')
obligatorische teilnahme an der Beziehung
"es kann nur einen geben" (oder keinen)
genau 1
für binäre Assoziation:
 Multiplizität min1..max1 (min2..max2) bedeutet, dass zu jedem E2 (E1) - Element
wenigstens min1 (min2) und höchstens max1 (max2) Instanzen von E1 (E2)
enthalten sein müssen (mit 0 <= mini <= maxi, maxi >= 1)
 Bezugnahme zur „gegenüberliegenden“ Klasse
.. erlaubt Unterscheidung, ob Beziehungsteilnahme
 optional (Mindestkardinalität = 0) oder
 obligatorisch (Mindestkardinalität  1 ) ist
e1 nimmt an [min2, max2]
Beziehungen vom Typ R teil
E1
Datenbanken, SS 12
min1..max1
min2..max2
R
E2
Kapitel 3: Daten- und Informationsmodellierung
e2 nimmt an [min1, max1]
Beziehungen vom Typ R teil
14
UML: Assoziations-Klassen
 notwendig für Beziehungen mit eigenen Attributen
 gestrichelte Linie
 Name der Assoziations-Klasse entspricht dem der Assoziation
Prüfungstermin
*
Studenten
*
Professoren
 alternativ:
Prüfungstermin
Studenten
Datenbanken, SS 12
*
*
*
Kapitel 3: Daten- und Informationsmodellierung
*
Professoren
15
Übung – Wie modelliert man…
Punkte und Dreiecke
Farben von Dreiecken
Tisch und Tischbein
Fahrzeug und Rad
Buch und Bücherregal
Autor und Buch
Autor, Buch und Bücherregal
Arbeiter und Arbeitgeber
Arbeiter, Arbeitgeber und Lohn
Datenbanken, SS 12
Kapitel 3: Daten- und Informationsmodellierung
16
UML: Is-A Beziehungen
Is-A-Beziehung zwischen Klassen (Entity-Mengen)
 E1 is-a E2 bedeutet, dass jedes Objekt aus E1 auch ein Objekt aus E2 ist,
jedoch mit zusätzlichen strukturellen Eigenschaften
 Substitutionsprinzip: alle Instanzen einer Subklasse sind auch
Instanzen der Superklasse
Vererbung von Eigenschaften (Attribute, Integritätsbedingungen,
Methoden ...) der Superklasse an alle Subklassen
 Wiederverwendbarkeit, Erweiterbarkeit
 keine Wiederholung von Beschreibungsinformation, Fehlervermeidung
Superklasse
Subklasse 1
Subklasse 1
Datenbanken, SS 12
Superklasse
Subklasse 1
Subklasse 1
Kapitel 3: Daten- und Informationsmodellierung
Kennzeichen
Halter
Fahrzeug
Baujahr
PKW
LKW
17
Spezialisierung: Definitionen

Klasse: Menge von Entities (Entity-Mengen, Superklassen,
Subklassen)
Subklasse: Klasse S, deren Entities eine Teilmenge einer
Superklasse G sind (is-a-Beziehung), d.h. S  G,
d. h. jedes Element (Ausprägung) von S ist auch in G.
Spezialisierung: Z (G) = {S1, S2, ... Sn}
Menge von Subklassen Si mit derselben Superklasse G
Zusätzliche Integritätsbedingungen: Vollständigkeit
(Überdeckung) und Disjunktheit von Spezialisierungen
 Z heisst vollständig (complete), falls gilt: G =  Si i = 1..n
andernfalls partiell (incomplete).
 Z ist disjunkt (disjoint), falls Si ∩ Sj = { } für i ≠ j
andernfalls überlappend (overlapping).
Datenbanken, SS 12
Kapitel 3: Daten- und Informationsmodellierung
18

Arten von Spezialisierungen
X
Y
disjunkte Spezialisierungen
(Partitionierung)
Superklasse
Z
Subklassen
überlappende
Spezialisierungen
X
Y
X
Z
Y
vollständig, disjunkt (complete, disjoint)
vollständig, überlappend (complete, overlapping)
X
Y
X
Y
Z
partiell, disjunkt (incomplete, disjoint)
Datenbanken, SS 12
Z
Z
partiell, überlappend (incomplete, overlapping)
Kapitel 3: Daten- und Informationsmodellierung
19
Übung – Wie modelliert man…
Dackel und Hund
Waldi und Hund
Frauen, Männer und Menschen
Frauen, Männer und Hochzeit
Angestellter und Chef
Datenbanken, SS 12
Kapitel 3: Daten- und Informationsmodellierung
20
UML: Part-Of Beziehungen
Part-of-Beziehung (Teil-von-Beziehung) zwischen Komponenten
und Aggregatobjekten
 Elemente einer Subkomponente sind auch Elemente aller
Superkomponenten dieser Subkomponente
 Referenzsemantik ermöglicht, dass ein Objekt gleichzeitig Elemente
verschiedener Komponenten bzw. Subkomponente von mehreren
Superkomponenten sein kann - Netzwerke, (n:m) Beziehungen möglich
 Wertesemantik (Komposition): Teil-Objekt gehört genau zu einem
Aggregat-Objekt; Existenzabhängigkeit!
Aggregatklasse
Aggregatklasse
Komp. Klasse 1
Komp. Klasse 1
Komp. Klasse 1
Aggregation
Datenbanken, SS 12
Kapitel 3: Daten- und Informationsmodellierung
Komp. Klasse 1
Komposition
21
Kombination von Generalisierung und Aggregation
Fahrzeuge
Motorisierte Fahrzeuge
Unmotorisierte Fahrzeuge
Segler
Rahmen
Rohre
Datenbanken, SS 12
LKW
Fahrräder
Lenker
PKW
Räder
Felgen
Speichen
Kapitel 3: Daten- und Informationsmodellierung
22
Kombination von Generalisierung und Aggregation

Fahrzeuge
Motorisierte Fahrzeuge
Unmotorisierte Fahrzeuge
Segler
Rahmen
Rohre
Datenbanken, SS 12
LKW
Fahrräder
Lenker
PKW
Räder
Felgen
Speichen
Kapitel 3: Daten- und Informationsmodellierung
23
Übung
Was ist die Beziehung zwischen Deckel und Topf?
Raum und Tisch?
Baum und Blatt?
Buch und Buchstabe?
Buch und Titel?
Dackel und Hund?
Lassie und Hund?
Buch und Lesen?
Beamer, Sehen und Student?
Auto, Fahrer, Geschwindigkeit?
Party, Haus, Gast, Geburtstag?
…
Datenbanken, SS 12
Kapitel 3: Daten- und Informationsmodellierung
24
Zusammenfassung

DB-Entwurf umfasst




Informationsanalyse
konzeptioneller Entwurf (-> Informationsmodell)
logischer Entwurf (-> logisches DB-Schema)
physischer Entwurf (-> physisches DB-Schema)
UML-Klassendiagramme:




standardisiert
Spezifikation von Verhalten (Methoden), nicht nur strukturelle Aspekte
genauere Kardinalitätsrestriktionen (Multiplizitäten)
Unterstützung der Abstraktionskonzepte der
Generalisierung / Spezialisierung, Aggregation / Komposition
keine festen Regeln zur eigentlichen Informationsmodellierung
(i.A. mehrere Modellierungsmöglichkeiten einer Miniwelt)
Datenbanken, SS 12
Kapitel 3: Daten- und Informationsmodellierung
25