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 Produkte Zusammenfügen der Teilsysteme 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 Spediteur Händler (1,*) (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