Das Entity-Relationship-Modell (ERM) Konzeptionelle Informationsmodellierung Das Entity-Relationship-Modell (ER-Modell) Konzepte ER-Diagramme Beispiele Das Erweiterte ER-Modell (EER-Modell) Subklassen, Superklassen Spezialisierung, Generalisierung Hierarchien, Verbände, Kategorien Konsistenzsicherung im EERM Seite 1 Entity und Eigenschaften Ein Entity (Objekt, Gegenstand) ist ein individuell identifizierbares Exemplar von Dingen, Personen oder Begriffen der realen oder der Vorstellungswelt Entities werden durch Eigenschaften beschrieben Eigenschaften werden Entities zugeordnet und ermöglichen deren Charakterisierung / Beschreibung Klassifizierung u.. eindeutige Identifizierung Eine Eigenschaft hat einen NAMEN und einen, ggf. mehrere EigenschaftsWERT(e) Seite 2
Klassifizierung von Eigenschaften einfache (atomare) / zusammengesetzte: Adresse Straße Land PLZ Ort Straßenname Hausnummer einwertige / mehrwertige: einwertig: Geburtsdatum, Größe, Geschlecht,... mehrwertig: Kinder, Hobbies, Sprachkenntnisse, Berufe,... eigenständige / abgeleitete: eigenständig: Geburtsdatum abgeleitet: Alter NLL-Wert: kein Eigenschaftswert bekannt ungleich dem Zahlenwert 0 Seite 3 Entity-Typ und Entity-Menge Ein Entity-Typ beschreibt die gemeinsame Struktur, die individuelle Entities einer Gruppe strukturell ähnlicher Entities haben müssen Die Entity-Menge eines bestimmten Entity-Typs ist die aktuelle Menge von individuellen Entities, deren Struktur durch den Entity-Typ beschrieben ist Beispiel für einen Entity-Typ: Student mit den Eigenschaften: Name, Adresse, MatrNr, GebDatum,... Beispiele für Instanzen, die die Entitymenge bilden: Franz Lehmann,..., 9822001, 13.4.79,... Erika Schulz,..., 9724022, 22.12.81,...... Seite 4
Wertemenge und Entity-Schlüssel Die Wertemenge einer einfachen Eigenschaft eines bestimmten Entity-Typs enthält die Werte, die der betreffenden Eigenschaft zugewiesen werden können Ein Entity-Schlüssel ist eine Eigenschaft oder eine Kombination von Eigenschaften, mit deren Wert(en) die in einer Entity-Menge enthaltenen Entities eindeutig identifiziert werden können Die Auswahl eines Entity-Schlüssels erfolgt nach Eindeutigkeit laufende Zuteilbarkeit Kürze Schreibbarkeit nveränderbarkeit, Langlebigkeit Seite 5 Beziehung, Beziehungstyp und Beziehungsmenge Eine Beziehung (Relationship) assoziiert zwei (oder mehr) Entities bestimmten Typs Ein Beziehungstyp beschreibt die gemeinsame Struktur, die individuelle Beziehungen einer Gruppe strukturell ähnlicher Beziehungen haben müssen Die Beziehungsmenge eines bestimmten Beziehungstyps ist die aktuelle Menge von individuellen Beziehungen, deren Struktur durch den Beziehungstyp beschrieben ist Angestellter arbeitet für Abteilung ang1 arb1 a1 ang2 arb2 a2 ang3 arb3... Seite 6
Rollen von Entity-Typen in Beziehungstypen Die Rolle eines Entity-Typs in einem Beziehungstyp bezeichnet die Funktion, die Entities dieses Typs in diesen Beziehungen ausüben Sie werden durch einen (eindeutigen) Namen bezeichnet Rekursive Beziehungstypen entstehen dort, wo der gleiche Entity-Typ mit sich selbst assoziiert wird Rekursive Beziehung: Angestellter nterstellung entspricht: ang1 ang2 ang3 ang4 ang5 unterst1 unterst2 unterst3 unterst4 = ist Vorgesetzter = ist ntergebener unterst1 ang1 unterst3 ang2 ang4 unterst2 ang3 unterst4 ang5 Seite 7 Grad eines Beziehungstyps Der Grad eines Beziehungstyps ist die Anzahl der Rollen der teilnehmenden Entity-Typen Lieferant liefert für Projekt l1 lief1 proj1 l2 lief2 proj2... lief3 proj3 Teil...... teil1 teil2 teil3 ternäre Beziehungsmenge Seite 8
Strukturbeschränkungen eines Beziehungstyps Eine Kardinalitätsverhältnisbeschränkung für einen an einem bestimmten Beziehungstyp beteiligten Entity-Typ spezifiziert die Anzahl der Beziehungen des Typs, an denen ein Entity dieses Typs teilnehmen kann Beispiel Angestellter arbeitet für eine Abteilung >>> 1:1 Abteilung hat mehrere Angestellte >>> 1:n Seite 9 Strukturbeschränkungen eines Beziehungstyps Eine Partizipationsbeschränkung für einen an einem bestimmten Beziehungstyp beteiligten Entity-Typ spezifiziert, ob die Existenz eines Entity dieses Typs davon abhängt, dass er an einer solchen Beziehung beteiligt ist Beispiel für jede Abteilung muss es einen Leiter geben Angestellter leitet Abteilung ang1 leit1 abt1 ang2 leit2 abt2 ang3 leit3 abt3 ang4 Seite 10
Beziehungseigenschaften analog zu den Entity-Typen können auch Beziehungstypen Eigenschaften aufweisen; sie ergänzen die Beschreibung des Beziehungstyps z.b.: Buch_ist_ausgeliehen mit der Eigenschaft RückgDatum Seite 11 Schwache Entity-Typen Entity-Typen, die keine identifizierenden ("Schlüssel-") Eigenschaften besitzen, heißen schwache Entity-Typen die Identifikation erfolgt über ein Entity, das über die Beziehung eines bestimmten ("identifizierenden") Beziehungstyps mit einem Entity eines anderen ("identifizierenden") Entitytyps verbunden ist Angestellter hat_angeh Angehörige ang1 hat1 angeh1: Stefan, m, 8.1.77 ang2 hat2 angeh2: Stefan, m, 8.1.77 ang3 hat3 angeh3: Klaus, m, 2.7.67 ang4... ang5... Seite 12
Entity-Relationship-Diagramm Schema-Konstrukte Entity-Typen: Name # Primärschlüssel * Pflichtattribut optionales Attribut Beziehungstypen: 1:1 1:1 (optional) 1:n 1:n (optional) Seite 13 Entity-Relationship-Diagramm Beispiel-Datenbank: Bibliothek Buchhandel # ISBN * Autor * Titel Preis Buchh. hat Bücher Buch ist im Buchh. Katalog # BuchNr # ExemplarNr Leser # LeserNr * Name * Vorname Straße PLZ Ort Buch wird von Leser ausgeliehen # RückgDatum Leser leiht Buch aus Seite 14
Entity-Relationship-Diagramm Schema-Konstrukte (ältere Darstellung) Entity-Typ Beziehungstyp schwacher Entity-Typ identifizierender Beziehungstyp Eigenschaft Schlüsseleigenschaft zusammengesetzte Eigenschaft R (min, max) E strukturelle Beschränkung (min, max) bezügl. der Teilnahme von E an R Seite 15 Beispiel: Tagungsorganisation Person # P_ Ident * Name * Vorname * Adresse Telefon Vortragender * VortrThema Honorar Teilnehmer * AnmeldDatum * Gebühr_bezahlt Tagung # T_Ident * Tagungsthema * Ort * Beginn * Ende Seite 16
Beispiel: Kochrezept Zutat # Z_Ident * Bezeichnung Rezept * Menge Speise # S_Ident * Bezeichnung * Kategorie Seite 17 Beispiel: Prüfungsverwaltung Student # MatrNr * Name * Vorname * Adresse * GebDatum Studiengang # S_Ident * StgBezeichnung macht Prüfung * PrDatum * Note Prüfung # P_ Ident * Fach * Prüfer Seite 18
Beispiel: Bibliothek / Buchhandel Autor # A_Ident * Name * Vorname BiblBestand # B_Ident Buch # ISBN * Titel * ErschJahr Verlag # V_Ident * VerlagsName Sachbezug # S_Ident * Schlagwort Seite 19 Beispiel: Versandhandel Artikel # ANr * ABezeichnung * VerkPreis * BMenge Bestellung # BNr * BDatum * LMenge * LPreis Lieferung # LNr * LDatum Kunde # KNr * Name * Vorname * Adresse Seite 20
Datenbank-Entwurfsprozess Hauptphasen Sammlung und Analyse der Informationsbedürfnisse Anwendung von Methoden der Systemanalyse, Dokumentenanalyse,... Konzeptueller Entwurf modellieren, abstrahieren, aufdecken von Mängeln und Inkonsistenzen Ergebnis: Datenmodell mit folgenden Eigenschaften: möglichst wenige, grundlegende Konzepte Ausdrucksfähigkeit Einfachheit Eindeutigkeit Logischer Entwurf Wahl des einzusetzenden DBMS Transformation des konzeptuellen Modells in ein logisches mittels DDL Physischer Entwurf Festlegung der Speicherorganisation Leistungsüberlegungen Seite 21 Datenbank-Entwurf Begriffe Datenmodell Menge von Konzepten, die gebraucht werden, um die Struktur einer Datenbasis zu beschreiben konzeptuelles Datenmodell: anwendungsnah, systemunabhängig logisches Datenmodell: Schnittstelle zur Implementierung physisches Datenmodell: gerätespezifisch, für Systemspezialisten bekannte Datenmodelle: hierarchisches Datenmodell Netzwerk-Datenmodell relationales Datenmodell Schema Beschreibung einer Datenbasis unter Verwendung eines Datenmodells Datenbeschreibungssprache (data definition language DDL) Sprache zur Beschreibung der Schemata in einem Datenbanksystem Seite 22
Datenbank-Entwurfsprozeß Phasen Mini-Welt Phase 1: Sammlung und Analyse der Informationsbedürfnisse Phase 2: Konzeptueller Entwurf Phase 3: Logischer Entwurf Gedanken-Modell Konzeptuelles Schema Logisches Schema Wahl des DBMS; die folgenden Phasen sind DBMS-abhängig Phase 4: Physischer Entwurf Physisches Schema Seite 23 Datenbank-Entwurf 3-Ebenen-Architektur externe Ebene: Sicht eines Anwenderprogramms, ntermenge des konzeptuellen Schemas >>> externe Schemata konzeptuelle Ebene: globale, logische Gesamtstruktur aller Daten und ihrer Beziehungen >>> konzeptuelles Schema interne Ebene: datenbankspezifische Eigenschaften der Daten, physische Datenorganisation >>> internes Schema Seite 24
Datenbank-Entwurf 3-Ebenen-Architektur externes Schema 1 externes Schema 2 externes Schema n externe Ebene Abbildung konzeptuelles Schema konzeptuelle Ebene Abbildung internes Schema interne Ebene physische Speicher Seite 25 Zusammenhang: 3-Ebenen-Architektur und DB -Entwurfsphasen 3-Ebenen-Architektur Datenbank-Entwurfsphasen mwelt mwelt "Modell" "Modell" externe Sicht externe Sicht konzeptuelles Einzelschema konzeptuelles Einzelschema konzeptuelles Schema konzeptuelles Schema physisches Schema Seite 26
Erweitertes ER-Modell Subklassen und Superklassen Eine ntermenge eines Entitytyps wird Subklasse genannt Alle Subklassen eines Entitytyps bilden die Superklasse Die Beziehung zwischen einer Superklasse und einer ihrer Subklassen nennen wir eine (is_a)-beziehung ("ist ein") Ein Entity einer Subklasse repräsentiert das gleiche Realwelt-Entity wie ein Entity der Superklasse Mitglieder einer Subklasse müssen auch Mitglieder einer Superklasse sein Ein Entity einer Superklasse kann Mitglied in keiner, einer oder mehreren Subklassen sein Seite 27 Erweitertes ER-Modell Vererbung, Spezialisierung, Generalisierung Vererbung Ein Entity einer Subklasse erbt alle Eigenschaften des zugehörigen Entity's der Superklasse sowie alle Beziehungsinstanzen der Beziehungstypen, an denen die Superklasse teilnimmt Eine Subklasse ist ein eigener Entitytyp Spezialisierung ist der Prozess der Definition der Subklassen eines Entity-Typs Generalisierung (mkehr des Spezialisierungsprozesses) Eigenschaften, die die Charakteristik der Subklassen ausmachen, werden ignoriert und zur Superklasse abstrahiert Seite 28
Erweitertes ER-Modell Schema-Konstrukte total partiell d Disjunktheitsbeschränkung Vereinigungsoperation total o Vollständigkeitsbeschränkung Teilmengen- symbol Seite 29 Spezialisierung im EER-Diagramm Beispiel Angestellter d Gehalt d Lohn/h Sekretärin Techniker Ingenieur Manager Gehaltsempf. Lohnempf. Tippgeschw. Ausbildung IngTyp leitet gehört zu Projekt Firma Seite 30
Generalisierung im EER-Diagramm Beispiel PKW FahrgestNr PolizKennz Preis MaxGeschw Plätze LKW FahrgestNr PolizKennz Preis LadeGewicht Achsen PKW MaxGeschw Plätze Fahrzeug FahrgestNr PolizKennz Preis d LKW LadeGewicht Achsen Seite 31 Prädikativ definierte Subklassen Beispiel Name Adresse GebDatum Angestellter "Sekretärin" "Ingenieur" "Techniker" Sekretärin Techniker Ingenieur d Tippgeschw. Ausbildung IngTyp Seite 32
Spezialisierung mit sich überlappenden Subklassen TeileNr Beschreibg Fabrikat o EigenFabrikat FremdFabrikat HerstDatum Schicht Lieferant ListenPreis Seite 33 Erweitertes ER-Modell Beschränkungen Prädikativ definierte Subklassen: Bedingung auf den Wert bestimmter Eigenschaften bestimmt die Zugehörigkeit zu einer Subklasse; z.b. die Tätigkeitsart eines Angestellten Attributdefinierte Subklassen: Subklasse wird nur auf Grund eines Attributes der Superklasse gebildet Disjunktheitsbeschränkung: Ein Entity kann höchstens einer Subklasse angehören; im EER- Diagramm durch "d" gekennzeichnet Vollständigkeitsbeschränkung: Die Entity-Mengen der Subklassen sind überlappend; im EER- Diagramm durch "o" gekennzeichnet. Seite 34
Erweitertes ER-Modell Beschränkungen Totale Spezialisierung: Jedes Entity der Superklasse ist Mitglied mindestens einer Subklasse. Partielle Spezialisierung: Entities der Superklasse müssen keiner Subklasse angehören. Mögliche Kombinationen: disjunkt, total überlappend, total disjunkt, partiell überlappend, partiell Seite 35 Erweitertes ER-Modell Einfüge- und Löschregeln Direkt aus den Beschränkungsbedingungen abgeleitet: Wird ein Entity aus einer Superklasse gelöscht, so wird es automatisch auch aus allen Subklassen gelöscht, in denen es vorkommt. Wird ein Entity in eine Superklasse eingefügt, so wird es automatisch in alle prädikativ definierten Subklassen eingefügt, für die es das Prädikat erfüllt. Wird ein Entity in eine Superklasse einer totalen Spezialisierung eingefügt, wird es in mindestens eine Subklasse eingefügt. Seite 36
Erweitertes ER-Modell Verbände / Hierarchien Subklassen können in weitere Subklassen unterteilt werden und in mehr als einer Klassen-Subklassen-Beziehung Subklasse sein Es entstehen Verbände bzw. Hierarchien Dabei können Attribute über alle Stufen vererbt werden Subklassen, die zu mehr als einer Superklasse in Beziehung stehen, heißen gemeinsame Subklassen Seite 37 Verband im EER-Diagramm Angestellter d d Sekretärin Techniker Ingenieur Manager Gehaltsempf. Lohnempf. TechnLeiter Seite 38
Erweitertes ER-Modell Kategorien Kann eine Subklasse aus Entity's verschiedener Superklassen gebildet werden, so heißt diese Subklasse Kategorie Die Superklassen bilden dann durch die Vereinigungsoperation (union = "u") die Subklasse als Kategorie Beispiel: Eigentümer eines Fahrzeugs ist ein Entity einer der Superklassen Person / Bank / Firma, im nterschied zum Technischen Leiter, der Entity in jeder zugehörigen Superklasse ist. Eine Kategorie kann partiell oder total sein; totale Kategorien können gleichwertig sowohl als Spezialisierung wie als Generalisierung dargestellt werden Beispiel: Kontoinhaber bzw. Eigentum Seite 39 Kategorie im EER-Diagramm Name Adresse BAdresse FAdresse BName FName Person Bank Firma u Eigentümer besitzt Fahrzeug Seite 40