erweitertes Entity-Relationship

Werbung
2. Semantische Datenmodellierung
Datenmodell: System von Konzepten zur Beschreibung relevanter Daten
Datenbankmodell: System von Konzepten zur Beschreibung von
Datenbanksystemen (hierarchisches, Netzwerk-,
relationales, objektorientiertes Modell)
Datenmodellierung: Erstellung von Datenbankschemata, deren Syntax
und Semantik durch das zugrunde liegende
Datenbankmodell festgelegt sind
Karczewski
Datenbanken I
1
Prinzipielle Vorgehensweise beim
Datenbankentwurf
Ausschnitt aus der
Realwelt (Miniwelt)
Datenmodellierung
Datenbankschema
Parallel zum Datenmodellierung erfolgt der
Funktionsentwurf -> Veranstaltung Softwaretechnik
Karczewski
Datenbanken I
2
Datenbank-Entwurfsprozess (1)
• Planung
• Analyse
• Design
• Implementierung
Karczewski
Datenbanken I
3
Datenbank-Entwurfsprozess (2)
Vgl. Bild 2-2
Tafelbild
Karczewski
Datenbanken I
4
Grundlagen der Datenmodellierung
• erweitertes Entitity-Relationship-Modell (eERM)
• Klassendiagramm der Unified Modelling Language (UML)
• Darstellung von Äquivalenzen
• Transformation vom eERM zum UML-Klassendiagramm
Karczewski
Datenbanken I
5
Unser Beispiel
Ein erstes Beispiel: Produktdaten einer Keramischen Werkstatt
Bezeichnung: Teekanne
Glasur: graublau
Dekor: Wichtel
Preis: 59,00
...
Karczewski
Datenbanken I
6
Unser Beispiel
• Weitere Informationen:
•
•
•
•
•
•
•
•
•
•
Bestellungen
Dekore auf Produkten (z. B. Teekannen)
Glasuren
Rohstoffe
Märkte
Geschäftspartner wie
Kunden
Händler
Spediteure
Veranstalter
Karczewski
Datenbanken I
7
erweitertes Entity-Relationship-Modell
Objekttyp (Entity Typ):
Kunde
• Entity ist ein Objekt der realen Welt
• Entity-Typ ist Repräsentant aller Objekte gleichen Typs
• Entity-Typ wird durch ein Rechteck dargestellt
• Rechteck enthält Namen des Entity-Typs im Singular
Karczewski
Datenbanken I
8
erweitertes Entity-Relationship-Modell
Beziehungstyp (Relationship Typ):
bestellt
oder
8
8: bestellt
• Relationship beschreibt, wie Entitäten untereinander assoziiert sind
• Relationship Typ ist Repräsentant aller Beziehungen gleichen Typs
• Relationship Typ wird durch eine Raute dargestellt
• Raute enthält Namen des Relationship Type
Karczewski
Datenbanken I
9
erweitertes Entity-Relationship-Modell
Attribut:
Kunde
• Attribute beschreiben Eigenschaften
von Entity- oder Relationship-Typen
Nachname
Strasse
Adresse
• Attribut wird durch abgerundetes
Rechteck dargestellt
Stadt
PLZ
• Komplexe Attribute können durch Auflistung
ihrer elementaren Datentypen in Ovalen dargestellt werden
• Attribute werden mitunter nur textuell dargestellt
Bsp: Kunde (Nachname, Adresse)
Karczewski
Datenbanken I
10
erweitertes Entity-Relationship-Modell
Kardinalität
Binärer Beziehungstyp:
(0,*)
Dekor
(0,1)
5
Produkt
5: ist versehen mit
Jedes Produkt wird mit keinem oder einem Dekor versehen.
Zu einem Dekor gibt es (möglicherweise) kein Produkt oder
beliebig viele.
Karczewski
Datenbanken I
11
Konkrete Beziehungen
Kaffeetasse S
Sonnenblume
Kaffeetasse S
Fische
Kaffeekanne K
Wichtel
Kaffeetasse K
...
• Anzahl der Linien zwischen konkreten
Dekors und konkreten Produkten lässt
Rückschlüsse auf Kardinalität ziehen
• Kardinalität gibt mögliche (auch
zukünftige) Mengen an konkreten
Beziehungen an
Karczewski
Datenbanken I
Teetasse S
Teekanne S
Dessertteller
...
12
erweitertes Entity-Relationship-Modell
Rekursiver binärer Beziehungstyp:
Teilprodukt
(0,*)
Produkt
(0,*)
• Produkt besteht aus keinen oder mehreren
Teilprodukten
• Produkt gehört zu keiner oder mehreren
Produktgruppen
• Teilprodukt und Produktgruppe sind Rollen,
in denen Produkte vorkommen können
Karczewski
Datenbanken I
4
Produktgruppe
4: besteht aus
13
erweitertes Entity-Relationship-Modell
ternärer Beziehungstyp:
Kunde
(0,*)
„Kunden bestellen Produkte auf Märkten“
Merkmal: Beziehung tritt zwischen
Entitäten dreier Entity-Typen gleichzeitig auf
8
(0,*)
Produkt
(0,*)
Markt
8: bestellt
Karczewski
Datenbanken I
14
erweitertes Entity-Relationship-Modell
Verschiedene Schreibweisen der Kardinalitäten und ihre Interpretation
Vergleich eERM und UML-Klassendiagramm
s. Tafel
Karczewski
Datenbanken I
15
erweitertes Entity-Relationship-Modell
Geschäftspartner
Generalisierung/Spezialisierung:
D
Händler
Spediteur
Kunde
Veranstalter
Andere Darstellungsweisen:
Geschäftspartner
Geschäftspartner
ist
Händler
Karczewski
...
Händler
Datenbanken I
...
16
erweitertes Entity-Relationship-Modell
Totale Spezialisierung:
Disjunkte Spezialisierung:
Jede Instanz des Supertyps
entspricht mindestens einem
Subtyp (Doppelstrich).
Eine Instanz eines Supertyps kann
zu maximal einem Subtyp gehören
(D im Dreieck).
Partielle Spezialisierung:
Nicht jede Ausprägung des
Supertyps wird
notwendigerweise spezialisiert
(einfacher Strich).
Karczewski
D
D
Überlappende Spezialisierung:
Eine Instanz eines Supertyps
kann zu mehreren Subtypen
gehören, die Spezialisierung ist
überlappend / overlapping
(O im Dreieck).
Datenbanken I
O
O
17
Different Inheritance structures
• disjoint and complete
• disjoint and incomplete
• overlapping and complete
• overlapping and incomplete
Karczewski
Datenbanken I
18
Disjoint and Complete
abstract class
Instrument
{disjoint, complete}
WindInstrument
PercussionInstrument
There are no instruments which are
neither Wind- nor PercussionInstrument.
WindInstrument
PercussionInstrument
Karczewski
Datenbanken I
There are no instruments which are
simultaneously Wind- and PercussionInstrument
19
Disjoint and Incomplete
Normal (not abstract) class
Instrument
{disjoint, incomplete}
WindInstrument
PercussionInstrument
There are some instruments which are
neither Wind- nor PercussionInstrument.
WindInstrument
PercussionInstrument
Karczewski
Datenbanken I
There are no instruments which are
simultaneously Wind- and PercussionInstrument
20
Overlapping and Complete
abstract class
Instrument
{overlapping, complete}
WindInstrument
KeyboardInstrument
There are no instruments which are
neither Wind- nor KeyboardInstrument.
WindInstrument
Karczewski
KeyboardInstrument
Datenbanken I
There are some instruments which are
simultaneously Wind- and KeyboardInstrument.
21
Overlapping and Incomplete
Normal (not abstract) class
Instrument
{overlapping, incomplete}
WindInstrument
KeyboardInstrument
There are some instruments which are
neither Wind- nor KeyboardInstrument.
WindInstrument
Karczewski
KeyboardInstrument
Datenbanken I
There are some instruments which are
simultaneously Wind- and KeyboardInstrument
22
Overlapping and Incomplete
Overlapping can be solved by defining a new class. This class
contains all elements of the former intersection set.
Instrument
WindInstrument
KeyboardInstrument
{disjoint, complete}
AccordionInstrument
WindInstrument
AccordionInstrument
KeyboardInstrument
Is there an alternative model? How can incompleteness be solved?
Karczewski
Datenbanken I
23
Beispiel Keramische Werkstatt
Vorgehensweise beim Entwurf:
Geschäftspartner
Entwurf der Teilsysteme z. B.:
Anschließend:
Rohstoffe
Zusammenfügen der Teilsysteme
Produkte
Märkte
oder:
Geschäftspartner
Ausgehend von einem Objekt bzw.
einem Teilsystem:
zusätzlich Rohstoff
Entwurf des Gesamtsystems
zusätzlich Produkt
(Frage stellen: zu welchen Objekten
gibt es welche Beziehungen)
zusätzlich Markt
...
Karczewski
Datenbanken I
24
Teilsystem Rohstoffe
Händler
Spediteur
Spediteur
Händler
1
Spediteur
Händler
(1,*)
(1,*)
1
(1,*)
Rohstoff
Rohstoff
Rohstoff
1: liefert (Bestelldatum, Lieferdatum, Preis, Menge)
1. Analyse, welche
Enity-Typen miteinander in Beziehung stehen
Karczewski
2. Analyse, wie der
Relationship-Typ
bezeichnet wird
und welche
Attribute er besitzt
Datenbanken I
3. Analyse, welche
Kardinalitäten der
Relationship-Typ
hat
25
Teilsystem Geschäftspartner
Geschäftspartner
O
Händler
Spediteur
Kunde
Veranstalter
AttributSpezialisierung
(0,*)
Beziehungs- 7
Spezialisierung
(0,*)
Typ
Produkt
Karczewski
Datenbanken I
26
Teilsystem Produkt
Glasur
(0,*)
6
(1,1)
(0,1)
Dekor
(0,*)
(0,*)
Produkt
(0,*)
5
4
4: besteht aus (Anzahl)
5: ist versehen mit
6: ist glasiert mit
Dekor: (Bezeichnung, Foto)
Glasur: (Oberflächenstruktur, Farbe, Beanspruchung)
Produkt: (Nummer, Bezeichnung, Fassungsvermögen, Preis, Funktion, Foto)
Karczewski
Datenbanken I
27
Integration der TeilSysteme der
Keramischen Werkstatt
Geschäftspartner
O
(0,*)
Händler
Spediteur
Kunde
(1,*)
(1,*)
Veranstalter
(0,*)
(0,*)
1
(1,*)
7
Rohstoff
Glasur
(1,*)
6
Dekor
(0,*)
(0,*)
(0,1)
(0,*)
(1,*)
(0,*)
(1,1)
Markt
(0,*)
(0,*)
Produkt
(0,*)
5
9
(0,*) (0,*)
(0,1)
2
8
3
(0,*)
10
(1,*)
4
Karczewski
Datenbanken I
Bedingung
28
Entity-Typen:
Geschäftspartner (Name, Vorname, Adresse, Telefonnummer, email)
Händler (
Spediteur (
Kunde (
Veranstalter (Typ)
Markt (Bezeichnung, Standort, Termin, Öffnungszeiten, URL, Rahmen, Ranking,
Standgebühr / m2)
Bedingung (Kategorie 1, ... 2, ...3, Endanteil)
Rohstoff (Art, Bezeichnung, Brennbereich min, Brennbereich max,
chemische Formel, Körnung in mm Durchmesser, Schamottanteil in
Prozent)
Produkt (Produktnummer, Bezeichnung, Grösse, Fassungsvermögen, Preis,
Funktion, Foto)
Glasur (Oberflächenstruktur, Farbe, Beanspruchung)
Dekor (Bezeichnung, Foto)
Relationship-Typen:
1: liefert (Bestelldatum, Lieferdatum, Gesamtpreis)
2: hat als Ansprechpartner [funktionale Abhängigkeit]
3: hat Bedingung
4: besteht aus (Anzahl)
5: ist versehen mit [funktionale Abhängigkeit]
6: ist glasiert mit [funktionale Abhängigkeit]
7: erhält geliefert (Anzahl, Lieferdatum, Gesamtpreis, ArtAuslieferung)
8: bestellt (Anzahl, Bestelldatum, Liefertermin, BestellArt, ArtAuslieferung)
9: wird angeboten auf (Anzahl)
10: wurde verkauft (Anzahl)
Karczewski
Datenbanken I
29
Ausprägungen einzelner Attribute:
Veranstalter - Typ: Verein, Galerie, Einzelperson
Markt - Rahmen: Töpfermarkt, Kunsthandwerkermarkt, Kirmes
Ranking: sehr renommiert (+), renommiert (0), wenig renommiert (-)
Standgebühr / m2: ab ca. 15 EUR bis 80 EUR „und mehr“
Bedingung – Kategorie 1: Nur selbst hergestellte Ware: ja/nein
Kategorie 2: Historische Kleidung erforderlich: ja/nein
Kategorie 3: Bewerbungsunterlagen mit Fotos: ja/nein
Endanteil: Reduzierte Standgebühren zu Gunsten einer zusätzlichen einmaligen Zahlung am Ende von (z.B.) 10%
der Einnahmen: Prozentsatz
Glasur - Oberflächenstruktur: matt, seidenmatt, glänzend
Farbe: graublau, türkis, steingrau
Beanspruchung: spülmaschinenfest ja/nein
Dekor - Bezeichnung: Sonnenblume, Fische, Rose, Wichtel (varchar)
Bild: (BLOB)
Produkt - Name: Teeservice, Kaffeservice, Dessertteller, Tasse, Untertasse,
Vase, Schale, Zuckerdose
Funktion: Gebrauch, Dekoration
Grösse: [z.B. Durchmesser bei Tellern, Tassen etc.] (decimal)
Fassungsvermögen in l: 1,2 l (bei Kannen, Vasen, ...) (decimal)
Preis: ... (decimal)
Rohstoff - Art: Arbeitsmaterial (Ton), Pigmente, Gestaltungsmaterial (Glasur),
[Werkzeug (zum Drehen / Abdrehen), Maschinen]
Bezeichnung: ....
Brennbereich min:
Brennbereich max:
chemische Formel:
Körnung in mm Durchmesser:
Schamottanteil in Prozent:
Karczewski
Datenbanken I
30
Herunterladen