! % # $ # $ " # $ 3. Das Relationale Datenmodell 1. 2. 3. 4. 5. 6. 7. 8. Datenstruktur und Integritätsbedingungen Abbildung zwischen ERM und RDM Implementierung in SQL Anomalien und Normalformen des RDM Relationenalgebra und Abfragen Modellexterne Integritätsbedingungen, Trigger und Checks Entwurfskonzepte für relationale Datenbanken ODBC Elemente der Datenmodelle ERM: RDM • Entitätstypen, • Beziehungstypen, • Attribut-Wertebemengen, • • • • • Spezialisierungen. Relationen (Tupelmengen) Schlüssel Integritätsbedingungen Attribut-Wertemengen R(Attr1, Attr2,..,AttrN) Integritätsbedingung 1 … IntegritätsbedingungN (c)schmiedecke 06 DB-8 - RDM Die wichtigsten Begriffe des RDM Datenbankschema - Menge von Relationenschemata Relationenschema - Objekttyp im UoD, Relation (+ evtl. Integritätsbedingungen) R(Attr1, Attr2,..,AttrN) Integritätsbedingung 1 … Integritätsbedingung N Attribut - Objekteigenschaft (mit Wertebereich) Relation - Teilmenge des kart. Produkts der Attribut-Wertebereiche, R(Attr1, Attr2,…,AttrN) ⊂ W(Attr1)xW(Attr2)x…xW(AttrN) - grundlegende Datenstruktur des RDM (Tabelle) Tupel Rel.-Schema Attr1 Attr2 … AttrN Tupel W11 W12 … W1N W21 W22 … W2N - Tabellenzeile - Objekt des Objekttyps Integritätsbedingg.Beschreibung der zulässigen Tupel einer Relation (c)schmiedecke 06 DB-8 - RDM Relation Eigenschaften von Relationen - zweidimensionale Tabelle Beschränkung auf “atomare” Attributwerte Eindeutigkeit der Tupel, Variabilität der Tupelposition Eindeutigkeit des Attributnamens, Variabilität der Attributposition - Information für den Benutzer ausschließlich durch Werte ausgedrückt - Darstellung relationenübergreifender Information durch Fremdschlüssel - Normalformenlehre (NFL) für den Aufbau von Relationenschemata (c)schmiedecke 06 DB-8 - RDM Schlüssel • Tupel besitzen eindeutige Identität • Schlüssel: – identifizierende Attributmenge – im Extremfall alle Attribute • Primärschlüssel – minimale identifizierende Attributmenge – ggf. Auswahl unter Schlüsselkandidaten • Fremdschlüssel – Attributmenge, die Primärschlüssel einer (referenzierten) Relation ist – stellt Beziehung zu jeweils einem Tupel her – kann auch Teil des Primärschlüssels der referenzierenden Relation sein Hinweis: Oft werden Surrogatschlüssel, d.h.künstliche Primärschlüssel (IDs) gebildet, weil die natürlichen Primärschlüssel zu komplex sind, d.h. aus zu (c)schmiedecke 06 vielen Attributen bestehen. DB-8 - RDM Integritätsbedingungen • Modellinhärente (allgemeine) Integritätsbedingungen: – Primärschlüsselbedingung (Relationen-Integrität) Die Werte der Primärschlüsssel sind eindeutig und nicht "null". – Fremdschlüsselbedingung (Referentielle Integrität) Zu jedem Wert eines Fremdschlüssels muss ein Primärschlüssel-Wert in der referenzierten Relation existieren. • Schemaspezifische (oder anwendungsspezifische) Integritätsbedingungen – beliebige, durch das UoD bedingte Integritätsbedingungen z.B. Existenzabhängigkeit, Wertemengenbegrenzung – implementierungspezifische Integritätsbedingungen z.B. Zeitstempelattribut für jedes Tupel, max. Relationengröße vor Archivierung (c)schmiedecke 06 DB-8 - RDM Abbildung des ERM auf das RDM • Primäres Transformationsziel: • Weitere Ziele • Formale Transformationsregeln • Faustregeln – Gleichwertigkeit – d.h. Erhaltung der Informationskapazität: im relationalen Datenbankschema sollen genauso viel Daten zulässig sein wie im ERM – Entscheidend ist die Abbildung der Beziehungen und anwendungsspezifischen Integritätsbedingungen – – – – minimale Redundanz minimale Anzahl von Relationen minimaler Verlust an Semantik Natürlichkeit/Verständlichkeit des resultierenden Schemas – geeignet für die automatische Transformation – minimale Redundanz angestrebt – Ergebnis oft unübersichtlich, schwer durchschaubar – erfordern Sachkenntnis des Übersetzers – flexible Lösungen zugunsten der Lesbarkeit – minimale Relationenzahl angestrebt (c)schmiedecke 06 DB-8 - RDM Formale Transformationsregeln • jeder Entitytyp wird auf eine Relation abgebildet • jeder Beziehungstyp wird auf eine Relation abgebildet • jedes mehrwertige Attribut wird auf eine Relation abgebildet • jede Spezialisierung wird auf eine Relation abgebildet • (die Regel-Details werden hier weggelassen) • Danach werden nach festen Regeln Tabellen wieder zusammengefasst. (c)schmiedecke 06 geht immer, führt aber über eine "Tabellenflut" zu nicht gut nachvollziehbaren Strukturen DB-8 - RDM Beispielmodell Konzeptuelles Schema: 1,* Fachbereich 0,* 1,1 Gehört zu Ist Dekan Ist eingeschrieben 0,1 1,1 Dozent (c)schmiedecke 06 1,1 0,* Prüfung DB-8 - RDM 0,* Student Intuitive Transformation • Fachbereich(FB, FBBez, Dekan) • Dozent(DozID, Name, Kontakt, FB) • Student(Matr, Name, Beginn, Kontakt, FB) • Prüfung(DozID, Matr, Fach, Datum, Note) Legende: Primärschlüssel, Fremdschlüssel (c)schmiedecke 06 DB-8 - RDM Faustregeln 1. 2. 3. Zunächst werden die Primärschlüssel der Entitätstypen bestimmt. Jeder Entitätstyp wird auf eine Relation abgebildet Skalare Attribute werden unmittelbar übernommen (c)schmiedecke 06 DB-8 - RDM Faustregeln 4. Für jedes mehrwertige Attribut A einer Relation R wird eine Relation angelegt, die den Primärschlüssel von R und das Attribut A enthält (sowie einen Diskriminator zur Bildung eines Primärschlüssels) Telefon Matr. Kontakt Student Matr TelPos Kontakt 272727 1 03055446677 272727 2 [email protected] 292929 1 040666666 PS aus Student (c)schmiedecke 06 DB-8 - RDMPS Diskriminator Faustregeln 5. 1:1-Beziehungstypen werden auf Fremdschlüssel in einer der beteiligten Relationen abgebildet. Optimierung: FS ggf. bei der existenzabhängigen Relation anlegen – ermöglicht NOT NULL-Bedingung und spart Speicherplatz Alternative: Verschmelzung zu einer Relation widerspricht aber der 3.Normalform 6. 1:N-Beziehungstypen werden auf Fremdschlüssel in der "Kind"-Relation abgebildet. 7. M:N-Beziehungstypen werden auf eine Relation abgebildet, deren Primärschlüssel aus den Primärschlüsseln der beteiligten Relationen besteht. Attribute des Beziehungstyps werden dieser Relation zugeordnet. DozID. Dozent M Prüfung N Matr. Fach Note Matr DozID Fach Note 272727 1 27 1.3 272727 2 14 2.7 292929 1 27 3.0 Student (c)schmiedecke 06 DB-8 - RDM Faustregeln 8. Ternäre (und höhere) Beziehungtypen werden auf eine Relation abgebildet, deren Primärschlüssel aus den Primärschlüsseln der beteiligten Relationen besteht. Attribute des Beziehungstyps werden dieser Relation zugeordnet. DozID. Dozent Note FachID M Prüfung Fach N Matr. Student (c)schmiedecke 06 DB-8 - RDM Matr DozID FachID Note 272727 1 27 1.3 272727 2 14 2.7 292929 1 27 3.0 Faustregeln 9. Rekursive Relationshiptypen vom Typ 1:1 oder 1:N werden als FS in dieselbe Relation abgebildet, sonst eigene Relation wie bei M:N Alternative: immer Abbildung auf eine Relation wie bei M:N 10. Für Spezialisierungen werden Relationen für den Supertyp und alle Subtypen angelegt, die alle denselben PS haben. Gemeinsame Attribute werden bein Supertyp angelegt, spezielle bei den Subtypen. Der Supertyp erhält zusätzlich ein diskriminierendes Attribut (Typkennzeichen) – bei nicht disjunkter Zerlegung mehrere. Student Matr. Student DirektStudent (c)schmiedecke 06 AufbauStudent DirektStudent DB-8 - RDM Matr Typ Name 272727 D Stefan 282828 A Karsten 292929 A Hanna Matr Abi Praktikum 272727 2000 Stefan (c)schmiedecke 06 DB-8 - RDM