Datenbankmodelle 1 Das Entity-Relationship-Modell
Datenbankmodelle ER-Modell hierarchisches Modell Netzwerkmodell relationales Modell objektorientierte Modelle ER Modell - 2
Was kann modelliert werden? statische Eigenschaften Objekte Beziehungen dynamische Eigenschaften Operationen Beziehungen zwischen Operationen Integritätsbedingungen über Objekte, Beziehungen und Operationen ER Modell - 3
Abstrakte & konkrete Modelle Abstrakt Daten: ER-Modell Algorithmen: Flussdiagramme, Struktogramme Konkret Daten: hierarchisches Modell, Netzwerkmodell, Relationenmodell Algorithmen: PASCAL, Java, C++ ER Modell - 4
Entity-Relationship-Modell Modellierung von Objekttypen (Entities) Wer und was? Objekt der realen oder der Vorstellungswelt Beziehungstypen (Relationships) Wer mit wem? kauft Artikel 2-stellige Beziehung: X kauft Artikel Y ER Modell - 5
Typen & Exemplare Das ER-Modell beschreibt immer Beziehungen zwischen Typen! kauft Artikel Zugehörige Exemplarbeziehungen wären z.b. Harry Hirsch kauft Buch "Java EE kompakt" Egon Eitel kauft Buch "Java Persistence API" kauft Buch "Datenbanken in 21 Tagen" ER Modell - 6
Mehrstellige Beziehungen An einer Beziehung können auch 3 oder mehr Entities beteiligt sein: Shop kauft Artikel Sprechweise: Ein X kauft einen Artikel Y in einem Shop Z. ER Modell - 7
Transformation mehrstelliger Beziehungen N-stellige Beziehungen können immer in 2-stellige transformiert werden aber wie? Sind drei 2-stellige Beziehungen äquivalent zu einer 3-stelligen? Verkäufer Artikel kauft verkauft Verkäufer bedient Artikel kauft ER Modell - 8
Transformation mehrstelliger Beziehungen - Veranschaulichung Beispiel: Artikel Verkäufer A0001 Micky Tom A0002 Daisy Tom A0002 Micky Jerry kauft verkauft bedient Artikel Artikel Verkäufer Verkäufer A0001 Tom A0001 Micky Micky Tom A0002 Tom A0002 Daisy Daisy Tom A0002 Jerry A0002 Micky Micky Jerry Wer hat Tom den Artikel A0002 verkauft? ER Modell - 9
Korrekte Transformation mehrstelliger Beziehungen Die korrekte Transformation erfordert einen zusätzlichen Entity-Typ! ER Modell - 10
Funktionale Beziehungen funktionale Beziehungen Die Beziehung hat Abbildungscharakter: Jedem Objekt vom Typ E1 wird durch die Beziehung f genau eines vom Typ E2 zugeordnet. E1 f E2 Beispiel: Artikel gehört_zu Warengruppe ER Modell - 11
ER-Modell - Rollen Nähere Bezeichnung der Art der Teilnahme an einer Beziehung Käufer Ware kauft Artikel Ersatzartikel ersetzter Artikel ersetzt Insbesondere notwendig bei rekursiven Beziehungen! ER Modell - 12
Attribute Beschreibung der näheren Eigenschaften von Objekten und Beziehungen Ausführliche Angabe in der Form Name : Wertebereich Basistypen int, float, text, char evtl. mit Längen: int(5), char(10) evtl. mit Bereichen Beispiel: alter : int [0-110] ArtNr: int(5) Name: char(12) Gewicht: int Artikel Menge der angebotenen Datentypen hängt vom eingesetzten Werkzeug ab ER Modell - 13
Attribute - Beispiel Beispiel: KndNr ArtNr Name Preis Käufer kauft Ware Artikel Datum Preis ER Modell - 14
Integritätsbedingungen Wichtiges Modellierungsziel Die DB soll ein Abbild der realen Welt sein. Nur gültige Zustände sollen auch dargestellt werden können. Entitytypen, Beziehungen und Attribute allein reichen nicht aus Worüber sagt das Beispielsmodell nicht aus? KndNr ArtNr Name Preis Käufer kauft Ware Artikel ER Modell - 15 Datum Preis
Schlüssel Schlüssel bestimmt das Objekt eindeutig - d.h. es gibt keine 2 Exemplare mit den gleichen Werten im Schlüssel Sie sollen helfen Duplikate in der DB zu vermeiden Kennzeichnung durch Unterstreichung Alternative: Spezielle Icons, oder Markierung der Verbindungslinie Falls mehrere alternative Schlüssel existieren, kann/muss im graphische ER-Modell nur einer gekennzeichnet werden! KndNr Name Anschrift ER Modell - 16
Zusammengesetzte Schlüssel Atomarer Schlüssel Der Schlüssel besteht aus genau einem Attribut. Zusammengesetzter Schlüssel Manchmal reicht ein Attribut nicht aus, um ein Objekt eindeutig zu identifizieren. Besonders häufig bei Objekten in Hierarchien: KonzernNr, WerkNr, FilialNr, LagerNr,... Beispiel: FilialNr KndNr Name Anschrift ER Modell - 17 Wenn die Filialen die nnummern unabhängig voneinander vergeben
Optionale Attribute Kennzeichnung optionaler Attribute Ein Wert kann angegeben werden - falls bekannt. Es muss aber nicht in jedem Fall ein Wert vorhanden sein. Unterschiedliche Methoden zur Kennzeichnung im Umlauf. Beispiel: FilialNr KndNr Name Anschrift Geburtsdatum ER Modell - 18
Attribute vereinfacht Kompaktere Darstellung - mit Dia ER Modell - 19
Kardinalität Wer steht wie oft mit wem in Beziehung? Achtung: Unterschiedliche Verwendungen im Umlauf! Beispiele: Chen-Notation (1976) Schlageter/Stucky-Notation (1977) ISO-Notation (1982) IDEF1X IE ("Krähenfuß") UML... ER Modell - 20
Chen-Notation Erster Ansatz (1976) Gibt an: Wie viele Objekt sind einem Objekt der anderen Seite maximal zugeordnet? N 1 Artikel gehört_zu Warengruppe Wird gelesen: Einem Artikel ist 1 Warengruppe zugeordnet. Einer Warengruppe können N Artikel zugeordnet werden. N M kauft Artikel ER Modell - 21
Chen-Notation (II) Problematisch: Die Notation ist nur bei 2-stelligen Beziehungen anwendbar. Ursache: Es wird eine Aussage über die Anzahl der Objekte, die der anderen Seite zugeordnet sind gemacht! Was nun, wenn dort mehrere Objekte sind? Beispiel: Ein Gutschein, der nur beim Kauf eines Artikels angewandt werden kann: Gutschein? N kauft? Artikel Einem Gutschein ist immer genau ein zugeordnet. Ein Artikel kann aber von vielen n gekauft werden! ER Modell - 22
Schlageter/Stucky-Notation Eingeführt 1977 um das Problem mit mehrstelligen Beziehungen zu lösen. Ähnlich wie Chen-Notation jedoch verdreht. Gibt an: Mit wie viel anderen Objekten steht ein Objekt in Beziehung? 1 N Artikel gehört_zu Warengruppe Gutschein 1 N kauft N Artikel ER Modell - 23
ISO - Notation Ausführlichste Notation: [min,max] ähnlich Schlageter/Stucky Gibt an: Wie oft nimmt ein Objekt mindestens (min) und wie oft höchstens (max) an einer Beziehung teil? Beispiel: [1,1] [0,*] Artikel gehört_zu Warengruppe ER Modell - 24
ISO-Notation (Beispiel) [min, max] - Notation (ISO TC97/SC5/WG3 1982) Shop [0,*] [0,*] kauft [0,*] Artikel [1,1] [1,1] wohnt_in gehört_zu [0,1] [0,*] [0,*] von nächste Filiale nach [0,*] Ort Warengruppe ER Modell - 25
Übung: Kardinalitäten Wie sieht das ISO-Beispiel in der Chen-Notation aus? ER Modell - 26
Identifizierende Beziehungen - Schwache Objekte - Abhängige/schwache Objekte Sie haben keine eigene Existenzberechtigung ohne das (starke) Objekt von dem sie abhängen. Identifizierende Beziehung Eine funktionale Beziehung, die zum Schlüssel gehört. Zugehöriges starkes Objekt ist ab Erzeugung fixiert. Es kann das starke Objekt zu dem es gehört nie wechseln! ER Modell - 27
Beispiel: Identifizierende Beziehungen Beispiel: Bestellung Bestellung besteht aus Bestellkopf Bestellposten BestellNr: 6712312 : Harry Hirsch Datum: 11.01.2011 PosNr ArtNr Stück 1 4711 2 2 6789 1 3 1234 5 PosNr ArtNr BestellNr Stück Posten [1,1] gehört_zu [1,4] Datum Bestellung ER Modell - 28
Darstellung mit Dia: Alternative Darstellung identifizierender Beziehungen ER Modell - 29
Unterschiede? Wohnung [1,1] [1,*] Haus Wohnung [1,1] [1,*] Besitzer ER Modell - 30
ER-Modell - Beispiel Privatkunde Firma Beschreibung [1,1] [1,1] [1,1] Ist_ein Ist_ein Shop beschreibt [0,1] [0,1] [0,*] [0,*] [0,*] kauft [0,*] Artikel [1,1] [1,1] wohnt_in gehört_zu [0,1] [0,*] [0,*] von nächste Filiale nach [0,*] Ort Warengruppe ER Modell - 31
Erweiterungen des ER-Modells IS-A-Beziehungen Verallgemeinerung vorhandener Entities. z.b. PRIVATKUNDE ist ein KUNDE Kann als spezieller abhängiger Typ aufgefasst werden. Partitionierung/Spezialisierung Zerlegung einer vorhandenen Menge in Sonderfälle. ER Modell - 32
Kompakte Notation für IS-A Beziehung statt: Privatkunde Firma ist_ein ist_ein Privatkunde Firma ER Modell - 33
Generalisierung vs. Spezialisierung Manche Erweiterungen des ER-Modells sehen hier aussagekräftigere Modellierungsmöglichkeiten vor. Spezialisierung Zerlegung einer Ausgangsmenge in Spezialfälle. Hier kann noch unterschieden werden, ob die Zerlegung vollständig ist. Generalisierung Bildung von Oberbegriffen. Die Mitglieder der Ausgangsmenge sind nur teilweise der zeitweise Mitglieder des Generalisierungstyps. ER Modell - 34
Arten von Subtypen Disjunkte / nicht disjunkte Untermengen Vollständige / nicht vollständige Überdeckung Beispiele: Privatkunde Firmenkunde Geschäftspartner Lieferant andere ER Modell - 35
IDEF1X vs. IE ER Modell - 36
Vollständige kompakte Notation disjunkt vollständig Privatkunde Firma Geschäftspartner nicht disjunkt nicht vollständig Lieferant ER Modell - 37
UML Primär eingesetzt zur objektorientierten Modellierung Klassen Attribute, Methoden Beziehungen zwischen Klassen Kann auch zur Datenbankmodellierung eingesetzt werden ER Modell - 40
ERM UML Beispiel ERM: KndNr ArtNr Name Preis [1,*] [0,*] kauft Artikel Käufer Ware Datum Beispiel UML: Artikel KndNr Name 0..* 1..* Käufer Ware ArtNr Preis Datum ER Modell - 41