Datenmodellierung Datenmodellierung Tätigkeit zur Strukturierung der Datenbestände Ziel: Redundanzarme systematische Beschreibung der zur jeweiligen computerunterstützten Arbeit mit einem DBMS benötigten Gegenstände, Begriffe und deren Zusammenhänge. Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 2 Datenmodellierung im Relationalen Modell 1. Bestimmung der relevanten Objekte 2. Bestimmung der relevanten Eigenschaften der Objekte 3. Bestimmung der Beziehungen zwischen den Objekten 4. Abbildung auf Tabellen 5. Normalisierung der Tabellen Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 3 Datenmodellierung im Relationalen Modell Objekte (Entities) können sein: • Dinge • Personen • Gegenstände • Vorgänge / Ereignisse • Dokumente alles was Eigenschaften hat!!! Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 4 Datenmodellierung im Relationalen Modell Entity-Types (Entitätentypen) sind abstrakte (Klassen) Zusammenfassungen von Entitäten des gleichen Typs durch Spezifikation der Eigenschaftsstruktur der zusammengefassten Entities Beispiel: Mitarbeiter durch Eigenschaften spezifiziert Intension (Intensionale Beschreibung) Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 5 Datenmodellierung im Relationalen Modell Entitätsmengen sind konkrete Mengen von Entities Beispiel: die Menge der in einem Unternehmen angestellten Personen, die sich zu jedem Zeitpunkt ändern kann Eine Abfrage bezieht sich auf eine Entitätenmenge Extension (Extensionale Beschreibung) Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 6 Datenmodellierung im Relationalen Modell Beispiel Spalte / Attribut Mitarbeiter Datensatz M# M1 M2 Name Becker Meier Wohnort Basel Lörrach Datenelement / Datenwert Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 7 Datenmodellierung im Relationalen Modell Beziehung Tabelle / Relationen R= {(M1, Becker, Basel), (M2, Meier, Lörrach)} M# Name Ort M1 M2 Becker Meier Basel Lörrach Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 8 Datenmodellierung im Relationalen Modell Tabellendefinition • Eindeutiger Tabellenname • Eindeutiger Merkmalsname pro Tabelle • Reihenfolge der Merkmale ist egal • Anzahl der Merkmale ist beliebig (endlich) • Anzahl der Datensätze ist beliebig (endlich) • Die Reihenfolge der Datensätze ist beliebig • Mit jedem Merkmal wird ein Datentyp verknüpft • Schlüsselfeld dient der eindeutigen Identifikation eines Datensatzes • Es gibt keine 2 Datensätze mit identischen Schlüsselwerten Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 9 Datenmodellierung im Relationalen Modell Atomare Attributwerte: Für das Relationale Modell gilt folgende wesentliche Einschränkung: • Der Wert eines Attributs darf nur aus einem „atomaren“ Attributwert bestehen. Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 10 Datenmodellierung im Relationalen Modell Beispiel: Die Relation Hobby(Name, Hobbies) enthalte die folgenden Tupel: • (Huber, {Drachenfliegen,Segeln, Bergsteigen}) • (Meier, Musik) • (Mueller, {Musik, Literatur, Theater}) Nicht-atomare Attributwerte sind • {Drachenfliegen, Segeln, Bergsteigen} und {Musik, Literatur, Theater}. Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 11 Datenmodellierung im Relationalen Modell Definition: erste Normalform Eine Relation ist in erster Normalform (1NF), wenn alle ihre Attribute nur atomare Attributwerte besitzen. Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 12 Datenmodellierung im Relationalen Modell Beispiel: Normalisierung in 1NF Die Relation Hobby kann auf einfache Weise in eine Relation „Hob“ in erster Normalform überführt werden: Relationenschema Hob(Name: varchar(20), Hobby: varchar(30)) und folgenden Tupeln (Huber, Drachenfliegen) (Huber, Segeln) (Huber, Bergsteigen) (Meier, Musik) (Mueller, Musik) (Mueller, Literatur) (Mueller, Theater) Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 13 Das Entity-RelationshipModell ERM bzw. E/R-Modell ERM - Relationales Datenbankschema • Das ERM ist optimal für die Modellierung des konzeptionellen Schemas für relationale DB-Systeme. • Modellierungen im ERM können „automatisch“ in ein relationales Modell transformiert werden. Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 15 ERM - Relationales Datenbankschema • Es gibt leider keine eindeutige Normierung der graphischen Darstellung des ERM und deshalb sehr viele unterschiedliche graphische Notationen. • Es gibt diverse Erweiterungen des ERM: – EERM (Extended Entity Relationship Model) Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 16 Grundkonzepte des klassischen ERM • Entity: Gegenstände; z.B.: „Paul Müller“. • Entity-Typ: Klasse von Gegenständen mit gleichen Attributen. z.B.: „Mitarbeiter“, „Kunden“, „Produkte“, „Personen“ Die Attribute „beschreiben“ die Klasse; Graphische Notation Rechteck: Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 Entity-TypName 17 Beispiele: Entity-Typen Reisen Kunden Bestellungen Flüge Mitarbeiter Prozesse Vorlesungen Produkte Flugzeuge Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 18 Grundkonzepte des klassischen ERM • Attribute: sind Eigenschaften, Merkmale von Entities (z.B.: Gewicht, Preis, Farbe, Lieferdatum) • Nicht zu verwechseln mit den Eingenschaftsausprägungen (z.B.: 50 kg, 200 Euro, grün, 26.11.2001) Graphische Notation abgerundetes Rechteck: Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 Attributname 19 Beispiel: Angestellter Name Angestellter mit den Attributen: Angest_Nr Gehalt Name Angest_Nr (für Angestellten-Nummer) Gehalt Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 20 Grundkonzepte des klassischen ERM • Relationship: Beziehung zwischen Entities; z.B.: „verheiratet mit“: „Paul Müller“ und „Maria Müller“ . • Relationship-Types (Beziehungstypen) zwischen Entity-Typen • z.B. zwischen „Kunden“ und „Produkten“ • Graphische Notation Raute: Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 RelationshipTypeName 21 Beziehungen zwischen Entity-Typen Attribut Entity-Typ 1 R-Typ Entity-Typ 2 Entity-Typ3 Die Darstellung repräsentiert eine dreistellige Beziehung. Möglich sind beliebig viele Stellen. Am häufigsten sind zweistellige (binäre) Beziehungen. Beziehungen können zusätzlich auch Attribute zugeordnet werden Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 22 Beziehungen zwischen Entity-Typen Beispiel: Professor empfiehlt Buch für Vorlesung Semester Professor empfiehlt Vorlesung Buch Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 23 Grundkonzepte des klassischen ERM Domäne: Zulässiger Wertebereich eines Attributes Graphische Notation: Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 Attributname:Domainname 24 Beispiel: Angestellter Name:string Angestellter A#: int Gehalt:int Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 25 Grundkonzepte des klassischen ERM Domäne Standard-Datentypen in MS-Access – – – – – – – – – Zahl Text Datum / Uhrzeit Währung AutoWert Ja/Nein Memo Hyperlink OLE-Objekt Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 26 Grundkonzepte des klassischen ERM Domäne In SQL können neue Domänen definiert werden Mit Integritätsregeln können in SQL die Wertebereiche von Attributen zusätzlich eingeschränkt werden Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 27 Entititypen mit Attributen Textuelle Notation (allgemein): E(A1:D1, ... , An:Dn) (mit Domänen) E: Ai: Di: Entitytyp. Attribute i = 1 ... n. Domänen i = 1 ... n. Kurzform: E(A1, ... , An) (ohne Domänen) Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 28 Beispiel: Angestellter Textuelle Notation: Entity-Typ ANGESTELLTER Angestellter(A# : integer, Name : string, Gehalt : integer) -------------------------------------------------------------------------------Entities vom Typ ANGESTELLTER: Angestellter(523, 'Bill‘, 90.000) Angestellter(122, 'John', 50.500) Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 29 Beispiel: Mitarbeiter Personalnr Raum Mitarbeiter Geb-Datum Einstellungstermin Vorname Name E-Mail Telefon Textuelle Notation: Mitarbeiter(Personalnr,Vorname, Name, E-Mail,Telefon,Raum, Geb-Datum, Einstellungstermin) Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 30 Beispiel: Mitarbeiter mit Wertebereichen Personalnr: int Raum: string Geb-Datum: date Mitarbeiter Vorname: string Einstellungstermin:date Name:string E-Mail:string Telefon:string Textuelle Notation: Mitarbeiter(Personalnr: int, Vorname:string, Name:string, E-Mail:string, Telefon:string, Raum:string, Geb-Datum:date, Einstellungstermin:date) Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 31 Beispiel: Buchempfehlung Titel liest Vorlesung Semester empfiehlt Professor Name Fach Telefon Autor Titel Priorität Buch ISBN Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 32 Beispiel: Bibliothek ADatum Titel ISBN InvNr Leser Ausleihe Buch Verlag Name Adresse RDatum Geschrieben von Lnr Name Autor Autornr Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 33 Relationships - Funktionale Beziehungen Formulieren Constraints (Integritätsregeln) für faktische Einträge in der Datenbank. und geben Hinweise zur Abbildung der Relationship-Types auf Tabellen Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 34 Relationships - Funktionale Beziehungen R E1 x ... x En wobei Ei (i= 1,...,n) Entity-Typen sind Definitionen für n=2 (R E1 x E2) 1:1 Relationship: ((x,y) R (x,z) R) y = z ((x,y) R (z,y) R) x = z N:1 Relationship: ((x,y) R (x,z) R) y = z 1:N Relationship: ((x,y) R (z,y) R) x = z N:M Relationship: keine Einschränkung Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 35 Funktionale Beziehungen / Beispiele Abteilungsleiter leitet Abteilung • 1:1-Relationship Angestellter arbeitet in Abteilung • N:1-Relationship Person besitzt Haus • 1:N-Relationship Student hört Vorlesung • N:M-Relationship Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 36 Funktionale Beziehungen / Beispiele Abteilungsleiter 1 Angestellter N Person 1 Student N Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 leitet arbeitet-in besitzt hört 1 Abteilung 1 Abteilung N Haus M Vorlesung 37 Relationships - Funktionale Beziehungen .. .. .. .. .. .. Abteilungsleiter Angestellter leitet 1:1 arbeitet in Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 N:1 .. .. .. .. . Abteilung Abteilung 38 Relationships - Funktionale Beziehungen Person .. . Student .. .. .. Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 besitzt 1:N hört N:M .. .. .. .. .. . Haus Vorlesung 39 Relationships - Beispiel N wohnt in 1 Person Stadt N 1 geb. in Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 40 Optional undefinierte Attribute Entity-Typ A Attribut A kann undefiniert sein also „Null-Wert“ haben. Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 41 Graphische Bausteine des ERM E Entity-Typ E A Attribut A A Schlüssel-Attribut A E E1 A R E2 Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 Verbindung zwischen Entity-Typ E und Attribut A A kann undefiniert sein Binäre Relationship zwischen den Entity-Typen E1 und E2 42 E/R-Modell ISA-Relationship ISA-Relationship Definition Seien E1,E2 zwei Entity-Typen. Die Relationship E1 isa E2 besteht genau dann, wenn E1 eine Spezialisierung von E2 ist. E1 heißt Subtyp des Supertyps E2. Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 44 Spezialisierungs- / Generalisierungsbeziehung Synonyme • Spezialisierung- / Generalisierung • Unter- / Oberbegriff • IST-Beziehung • is-a-Relationship • isa-Relationship Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 45 ISA-Relationship Besteht die Relationship E1 isa E2, so erbt E1 die Attribute von E2. Dies hat folgende Konsequenzen: Für E1 ist lediglich die Angabe zusätzlicher Attribute notwendig. Die Schlüsselattribute von E2 sind auch die Schlüsselattribute von E1. Auf der Instanzenebene gilt: ein Entity von E1 erbt die zugehörigen Werte aus E2. Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 46 ISA-Relationship: Beispiel ABTEILUNGSLEITER isa ANGESTELLTER ABTEILUNGSLEITER(Dienstwagen:string) ANGESTELLTER(Personalnr:int, Name:string) In diesem Fall erbt ABTEILUNGSLEITER alle Attribute von ANGESTELLTER (also „Personalnr“ und „Name“) und hat das zusätzliche Attribut „Dienstwagen“. Es besteht auch die Möglichkeit der Mehrfachvererbung, Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 47 ISA-Relationship: Beispiel Beispiel Mehrfachvererbung: STUDENT isa PERSON ANGESTELLTER isa PERSON HIWI isa Student HIWI isa ANGESTELLTER STUDENT(Fachrichtung:string) Angestellter(Fachrichtung:String) Bei Mehrfachvererbung gleichbezeichneter Attribute sind Massnahmen zur Konfliktlösung erforderlich Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 48 ISA-Relationship total t nicht disjunkt Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 partiell p Isa-Beziehung: p: partiell t: total disjunkt 49 ISA-Relationship Angestellter Partielle nicht-disjunkte isa-Beziehung Pilot Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 p Techniker 50 ISA-Relationship Totale disjunkte isa-Beziehung (Spezialisierung) Mann Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 Person t Frau 51 ISA-Relationship Partielle disjunkte isa-Beziehung (Spezialisierung) Fahrzeug Auto Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 p Fahrrad 52 ISA-Relationship Partielle nicht disjunkte isa-Beziehung (Spezialisierung) Mann Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 Person p Angestellter 53 ISA-Relationship Partielle nicht disjunkte isa-Beziehung (Spezialisierung) Sportler Fussballer Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 p Tennisspieler 54 ISA-Relationship Person partiell disjunkt p Manager Angestellter partiell nicht disjunkt p Techniker Verkäufer Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 Sekretärin Programmierer 55 Disjunkte Klassifikation Beispiel: Mitarbeiter Jeder Mitarbeiter ist entweder (oder) • Führungskraft • Fachspezialist • Lehrling Mitarbeiter Führungskraft Fachspezialist Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 t Lehrling 56 E/R-Modell Schlüsselattribute ERM - Schlüsselattribute • Jede Teilmenge der Attributmenge eines Entity-Typs, mit der die Entities dieses Typs eindeutig identifizierbar sind, heisst Schlüssel dieses Entity-Typs. • Jede minimale Menge von Schlüsselattributen heisst Schlüsselkandidat. • Der Primärschlüssel ist der beim Entwurf der DB zur eindeutigen Identifikation der Entities ausgewählte Schlüsselkandidat. Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 58 ERM - Schlüsselattribute Schlüsselkandidaten • minimaler Schlüssel Primärschlüssel • ausgewählter Schlüssel zur Identifikation der Entities in einer Tabelle Fremdschlüssel • Attributmenge die in einer anderen Relation Schlüssel ist zusammengesetzter Schlüssel • Schlüssel, der aus mehreren Attributen besteht Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 59 ERM - Schlüsselattribute Die Schlüsseleigenschaft kann nicht an der Definition eines Entity-Typs erkannt werden. Die Attribute eines Entity-Typs müssen so gewählt sein, dass dadurch die Entities eindeutig identifizierbar sind. Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 60 Schlüsselattribute - Notation Schlüsselattribute werden durch Unterstreichung gekennzeichnet: in der textlichen Notation: Mitarbeiter(Personalnr, Name, Vorname, Gebdatum) Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 61 In der graphischen Notation Mitarbnr Titel Vorlesnr liest Vorlesung Semester empfiehlt Professor Name Fach Telefon Autor Titel Priorität Buch ISBN Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 62 Beispiel: Mitarbeitereigenschaften mit Schlüssel Personalnr: int Raum: string Geb-Datum: date Mitarbeiter Vorname: string Einstellungstermin:date Name:string E-Mail:string Telefon:string Textuelle Notation: Mitarbeiter(Personalnr: int, Vorname:string, Name:string, E-Mail:string, Telefon:string, Raum:string, Geb-Datum:date, Einstellungstermin:date) Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002 63