Einführung Relationales-Modell - Fakultät für Mathematik und

Werbung
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 (n1)
• 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
Herunterladen