Logischer Entwurf von Datenbanken Relationales Datenbankschema Wintersemester 16/17 DBIS 1 Typischer Datenbankentwurf Anforderungsanalyse und -spezifikation Miniwelt Konzeptioneller Entwurf E/R-Diagramm Logischer Entwurf Relationales DBSchema Datendefinition Durch Wahl eines Produkts SQL-Anweisungen gemäß SQLDialekt des gewählten DBMS (Übung: DB2) Wintersemester 16/17 DBIS Alternative: UML-Diagramm Alternativen: Bachman-Diagramm (NetzwerkDB-Modell) Hierarchisches DB-Schema (Hierarchisches DB-Modell) Alternativen: Wahl eines anderen RDBMS 2 Inhalt des Kapitels • Vorbemerkung • Ausgangslage, Entwicklungsziele, • Historie • Begriffe und Eigenschaften • Relationen und Tabellen • Relationsschema • Schlüssel, Integrität • Relationale Abbildung des E/R-Modells • Beziehungstypen • Nichtatomare Attribute Wintersemester 16/17 DBIS 3 Ausgangslage (1960er Jahre) • Datenbanksysteme "weit entfernt" vom gelegentlichen Endbenutzer • Datenbank nur aus Anwendungsprogramm heraus ansprechbar, dazu sind Programmierkenntnisse erforderlich • Datenbanksprache (DL/1, CODASYL) schwer zu erlernen • GET UNIQUE, GET NEXT, GET NEXT WITHIN PARENT • Datenbanksystem nur für kleinen Kreis von Spezialisten zugänglich, dadurch "Entwicklungsstau" • Komplizierter Umgang mit Datenbanksystem führt zu Fehlern • Datenbank wird inkonsistent, DBMS kann dies nicht feststellen • Fatal vor allem bei kritischen Anwendungen (z.B. Prozessteuerung in der Industrie, Finanzbereich) Wintersemester 16/17 DBIS 4 Entwicklungsziele Relationales Modell • Einfaches Datenmodell mit mathematisch fundierter Grundlage • Einfache Datenbanksprache (auch für Ad-hoc-Anfragen) mit mathematisch fundierter Grundlage • Verhalten von Datenbanksprachanweisungen (Semantik) ist wohldefiniert auf mathematischer Grundlage • Benutzer beschreibt nur noch, was er haben möchte (lesen, einfügen, ändern, löschen), das wie überlässt er dem DBS • Überwachung von Konsistenz/Integrität möglichst weitgehend durch das DBMS und nicht durch den Benutzer • Semantik der Daten muss dem DBMS offengelegt werden, sodass automatische Überprüfungen möglich sind • Deskriptive Anfragen anstatt Navigation Wintersemester 16/17 DBIS 5 Ergebnisse der Entwicklung • Datenmodell leichter zu verstehen, Datenbanksprache leichter zu erlernen (breiterer Benutzerkreis, weniger Entwicklungsstau) • Datenbankzugriffe auch ad-hoc möglich, nicht zwingend per Anwendung • Inkonsistente Datenbanken unwahrscheinlicher • Ineffizienter Datenbankzugriff unwahrscheinlicher • DBMS ist für das „wie“ des Datenzugriffs verantwortlich • Optimale Ausführungsstrategie wählbar (Zugriffsplan, Optimizer) Wintersemester 16/17 DBIS 6 Entwicklungsweg relationaler DBMS • Erste Prototypen ab Mitte der 1970er System R (IBM, später DB2), Ingres (Univ. of California) • Erste Produkte ab Ende der 1970er SQL/DS, DB2, Ingres, Oracle • Stärkere Verbreitung in der Praxis ab Mitte der 1980er und 1990er Informix, Sybase, MS SQL Server, MySQL Wintersemester 16/17 DBIS 7 Eigenschaften • Wenige, einfache und mathematisch fundierte Konzepte und Begriffe • Beschreibung ausschließlich logischer Aspekte (konzeptuelles Schema), physische Aspekte (internes Schema) nicht Gegenstand des Modells • Modellierung in Form von Relationen, Grundlage zur Darstellung der Daten sowie der Datenabfrage und -Manipulation • Grundlegende Begriffe: • Relation • Relationsschema • Datenbankschema • Schlüssel Wintersemester 16/17 DBIS 8 Definition „Relation“ • Gegeben seien Wertebereiche/Domänen D1, D2, ..., Dn • Eine Relation R ist eine Teilmenge des kartesischen Produkts der Domänen D1, D2, ..., Dn • R D1 × D2 × ... × Dn (n1) • n = Stelligkeit (Grad) der Relation • Element r = (d1, d2, ..., dn) mit diєDi wird als Tupel von R bezeichnet, di als die i-te Komponente des Tupels Wintersemester 16/17 DBIS 9 Darstellung der Relation • Relationen können als Tabellen dargestellt / aufgefasst werden • Ein Tupel entspricht der Tabellenzeile • Die Komponente des Tupels entspricht dem Wert in Tabellenspalte Relation R D1 D2 ... Dn d1 d2 ... dn Tupel ... Wintersemester 16/17 DBIS 10 Ein einfaches Beispiel • Domänen: D1 = {rot, blau, grün}, D2 = {0,1} • Kartesisches Produkt: D1 × D2 = {(rot,0), (rot,1), (blau,0), (blau,1), (grün,0), (grün,1)} • Mögliche 2-stellige Relationen: • R1 = {(rot,0), (grün,1)} rot 0 grün 1 rot 0 • R2 = { } • R3 = {(rot,0)} Wintersemester 16/17 DBIS 11 Definition „Relationsschema“ • Bisher wurden Relationen (Mengen von Tupeln) betrachtet • Aus Datenbanksicht ist aber auch das zugehörige Schema von Interesse, das einen Relationstyp beschreibt Abstraktion von konkreter Relation zum Relationstyp • Relationsschema besteht aus • Schemaname • Menge von Domänen(namen) D1, D2, ..., Dn • Menge von Attributnamen A1, A2, ..., An (Tabellenspalten mit aiєDi) • Zusätzlichen Integritätsbedingungen Wintersemester 16/17 DBIS 12 Ein Beispiel in Textform • Eine Farbtabelle (wie vorhin) • Schemaname: FarbTabelle, • kurz: FarbTabelle(Farbe, Wert) • Domänen: D1 = {rot, blau, grün}, D2 = {0,1} • Attributnamen: Farbe (D1), Wert (D2) • Integritätsbedingung: Farbe rot darf nicht mit Wert 1 ein Tupel bilden Wintersemester 16/17 DBIS 13 Ein Beispiel in Tabellenform • Relationsschema Angest (Name, Beruf, Wohnort, GebJahr) • Domänen/Integritätsbedingungen hier nicht aufgeführt • Darstellung von Schema + Daten • Schemaname: Angest • Attributnamen: Name, Beruf, Wohnort, GebJahr Attributname Schemaname Angest Tupel (Darstellung als Tabellenzeilen) Name Müller Meier Schulze Beruf Schreiner Schmied Bergmann Wohnort GebJahr Schema Jena Jena Seiffen 1960 1958 1935 Daten, konkrete Relation Attributwert Wintersemester 16/17 DBIS 14 Definition „Datenbankschema“ • Datenbankschema = Menge von Relationsschemata (mit verschiedenen Schemanamen) und zugehörigen Integritätsbedingungen (relationsschemaübergreifend) • Keine strikte Unterscheidung zwischen Relationsschema und Relation: Wenn von „Relation“ die Rede ist, wird meist darunter auch das Schema subsumiert (d.h. Daten + Schema oder auch nur Schema) Wintersemester 16/17 DBIS 15 Definition „1. Normalform“ • Eine Relation ist in 1. Normalform, wenn jedes Attribut aufgrund der Schemadefinition nur atomare Wertebereich hat. • Mengenwertige, strukturierte und geschachtelte Attribute sind verboten • Entscheidung abhängig vom Anwendungskontext • Beispiel: Attribut "Adresse" (PLZ, Ort, Strasse, Nr) in 4 Attribute splitten • Das relationale Modell verlangt Modellierung in 1. Normalform • Typische Datentypen für atomare Attribute: Integer, Real, Decimal, Char, String, Boolean Wintersemester 16/17 DBIS 16 Weitere Normalformen • 2. Normalform: Die 1.NF ist erfüllt und jedes Nicht- Schlüsselattribut ist funktional voll abhängig vom Primärschlüsselattribut • 3. Normalform: Die 2.NF ist erfüllt und es gibt kein Nicht- Schlüsselattribut, das von einem anderen NichtSchlüsselattribut abhängig ist (transitive Abhängigkeit) Wintersemester 16/17 DBIS 17 Definition „Schlüssel“ • Relationen sind Mengen, es dürfen also in einer Relation keine identischen Tupel auftauchen • Relationenmodell verlangt daher für jede Relation einen Schlüssel als identifizierende Attributkombination • Minimalitätseigenschaft • Wahl eines Primärschlüssels bei mehreren Schlüsselkandidaten • Künstliche Schlüssel Müller Müller Wintersemester 16/17 DBIS Schreiner Schreiner Jena Jena 1960 1960 18 Definition „Fremdschlüssel“ • Besitzt eine Attributkombination einer Relation R1 in einer Relation R2 (Primär-)Schlüsseleigenschaft, kann sie in R1 als Fremdschlüssel mit Bezug auf den (Primär-)Schlüssel in R2 bezeichnet werden • Fremdschlüssel ist üblicherweise kein Schlüssel in R1! • Fremdschlüssel als Definitionsmittel für referentielle Integrität, wobei Werte als Verweise dienen (keine "Pointer") • Namensidentität nicht zwingend, aber Kompatibilität der Wertebereiche • Relationen dürfen beliebig viele Fremdschlüssel haben Wintersemester 16/17 DBIS 19 Beispiel Fremdschlüssel • R1 = Angest (PNR, Name, Beruf, Wohnort, GebJahr, ANR) • R2 = Abteilung (ANR, AOrt, Mgr, Budget) • "ANR" kann als Fremdschlüssel in der Relation "Angest" bezüglich des Primärschlüssels "ANR" in "Abteilung" vereinbart werden • Bedeutung: Für "ANR" in "Angest" dürfen nur Werte auftreten, die auch als ANR-Wert in "Abteilung" vorkommen • Reine Lehre: Waisenkinder sind verboten, Einfügereihenfolge! • SQL / Produkte: Möglichkeiten der Aufweichung (on update/delete ...) Wintersemester 16/17 DBIS 20