4. Datenbankmodelle f¨ur die Realisierung

Werbung
4. Datenbankmodelle für die Realisierung
➠ Relationenmodell
➠ Netzwerkmodell und hierarchisches Modell
➠ Objektorientierte Modelle
➠ Weitere Datenbankmodelle
Andreas Heuer, Gunter Saake – Datenbanken I
4-1
Relationenmodell
Codd im Jahre 1970
Relationenname
R
A1
...
...
Attribute
An
} Relationenschema
...
...
Relation
Tupel
Veranschaulichung eines Relationenschemas und einer Relation
Andreas Heuer, Gunter Saake – Datenbanken I
4-2
Andreas Heuer, Gunter Saake – Datenbanken I
PANr
4711
4711
4711
5588
5588
9999
Ort
DBR
MD
MD
DBR
BS
HRO
HD
Straße
BHS
STS
BS
RS
GS
AES
TS
HNr
15
55
41
31
12
21
38
Pers Telefon
PLZ
18209
39106
39104
18209
38106
18059
69121
Nachname
Heuer
Saake
Korn
Möller
Jagellovsk
Hellhof
Loeser
Vorname
Andreas
Gunter
Michael
Andreas
Tamara
Antje
Christa
PANr
4711
5588
6834
7754
8832
9912
9999
Personen
Zwei Relationen zur Darstellung von
Geb.datum
31.10.1958
05.10.1960
24.09.1974
25.02.1976
11.11.1973
04.04.1970
10.05.1969
Telefon
038203-12230
0381-498-3401
0381-498-3427
0391-345677
0391-5592-3800
06221-400177
4-3
Begriffe des Relationenmodells
Begriff
Attribut
Wertebereich
Attributwert
Relationenschema
Relation
Tupel
Datenbankschema
Datenbank
Andreas Heuer, Gunter Saake – Datenbanken I
Informale Bedeutung
Spalte einer Tabelle
mögliche Werte eines Attributs (auch
Domäne)
Element eines Wertebereichs
Menge von Attributen
Menge von Zeilen einer Tabelle
Zeile einer Tabelle
Menge von Relationenschemata
Menge von Relationen (Basisrelationen)
4-4
Begriffe des Relationenmodells II
Begriff
Schlüssel
Primärschlüssel
Fremdschlüssel
Fremdschlüsselbedingung
Andreas Heuer, Gunter Saake – Datenbanken I
Informale Bedeutung
minimale Menge von Attributen, deren Werte ein Tupel einer Tabelle eindeutig identifizieren
ein beim Datenbankentwurf ausgezeichneter Schlüssel
Attributmenge, die in einer anderen
Relation Schlüssel ist
alle Attributwerte des Fremdschlüssels tauchen in der anderen
Relation als Werte des Schlüssels
auf
4-5
Formalisierung Relationenmodell I
Attribute und Domänen
nichtleere, endliche Menge: Universum
■
: Wer-
Menge endlicher, nichtleerer Mengen: jedes
tebereich oder Domäne
■
: Attribut
■
: Domäne von
dom
: Attributwert für
dom
■
total definierte Funktion dom
■
Andreas Heuer, Gunter Saake – Datenbanken I
4-6
Formalisierung Relationenmodell II
Relationenschemata und Relationen
: Relationenschema
■
) ist endliche Menge von
(kurz:
, Tupel genannt
für
REL
■
Es gilt
■
Relation über
Abbildungen
■
)
X-Wert von
analog
Restriktion von auf
(
dom
Menge aller Relationen über
:
Andreas Heuer, Gunter Saake – Datenbanken I
4-7
Formalisierung Relationenmodell III
Datenbankschema und Datenbank
Menge von Relationenschemata
■
Datenbank über : Menge von Relationen
■
Datenbank
■
Relation
: Datenbankschema
■
, wobei
über :
: Basisrelation
Andreas Heuer, Gunter Saake – Datenbanken I
4-8
Unterschied zu der klassischen Definition einer Relation
als Teilmenge des kartesischen Produktes
dom
dom
dom
dom
dom
und
dom
sind ungleich bei Definition mittels kartesischem Produkt!
Andreas Heuer, Gunter Saake – Datenbanken I
4-9
Unterschied zu der klassischen Definition einer Relation
als Teilmenge des kartesischen Produktes: Beispiel
Vorname
Andreas
Gunter
Michael
PANr
4711
5588
6834
Nachname
Heuer
Saake
Korn
Vorname
Andreas
Gunter
Michael
mit
bestehen aus Tupeln
und
Relationen
Nachname
Heuer
Saake
Korn
PANr
4711
5588
6834
Andreas Heuer, Gunter Saake – Datenbanken I
4-10
Integritätsbedingungen
Identifizierende Attributmenge
:
■
Schlüssel: ist minimale identifizierende Attributmenge
und
für
für
Primattribut: Element eines Schlüssels
■
Primärschlüssel: ausgezeichneter Schlüssel
■
Fremdschlüssel:
■
Andreas Heuer, Gunter Saake – Datenbanken I
4-11
Relationenalgebra
■
Selektion
■
’Meyer’
Projektion
Andreas Heuer, Gunter Saake – Datenbanken I
4-12
Relationenalgebra II
■
Verbund
Straße
BHS
BHS
BHS
STS
STS
TS
Ort
DBR
DBR
DBR
MD
MD
HD
Andreas Heuer, Gunter Saake – Datenbanken I
Nachname
Heuer
Heuer
Heuer
Saake
Saake
Loeser
Vorname
Andreas
Andreas
Andreas
Gunter
Gunter
Christa
Telefon
038203-12230
0381-498-3401
0381-498-3427
0391-345677
0391-5592-3800
06221-400177
4-13
Relationenalgebra III
Umbenennung
■
Mengenoperationen
■
Formale Definition:
Andreas Heuer, Gunter Saake – Datenbanken I
4-14
Netzwerkmodell
Netzwerkmodell: 1971 vom Normungsausschuß CODASYL-DBTG definiert
ER-Modell
Entity
Entity-Typ
Attribut
binärer 1:nBeziehungstyp
Andreas Heuer, Gunter Saake – Datenbanken I
Relationenmodell
Tupel
Relationenschema
Attribut
Relation
Netzwerkmodell
logical record
Record-Typ
Feld
Link oder auch
Set-Typ
4-15
Schema im Netzwerkmodell
■
Netzwerkschema: gerichteter Graph
◆
-
in
und
◆
Menge der Record-Typen als Knoten
Set-Typen als Kanten (
Kante, falls
Relationship)
■
konkrete Set-Ausprägung: Besitzer (Owner) und Teilnehmer (Members)
■
Netzwerkmodell entspricht ER-Modell mit Einschränkungen
◆
◆
◆
■
alle Relationships binär
nur many-to-one Relationships erlaubt
Relationships haben keine Attribute
Grund: leichtere Graphendarstellung, günstigere Implementierung
Andreas Heuer, Gunter Saake – Datenbanken I
4-16
Beispielschema im NWM
Vorlesung
Student
PANr | Matrikelnr | ...
la
V_Bezeichnung | SWS | Semester | ...
hö_1
BuchExemplar
Inventarnr | ISBN | ...
Andreas Heuer, Gunter Saake – Datenbanken I
hö_2
Hörer
lfd# | Semester
4-17
Beispielausprägung im Netzwerkmodell
BuchExemplar
Student
Hörer
Vorlesung
12 | 7.
DB I | 4 | 6. | ...
x13 | 1-345
13 | 42.
x01 | 1-432
WiInf I | 2 | 1. | ...
y42 | 3-987
4242 | 123 |...
732 | 1.
x1 | 5-555
007700 | 111 |...
Andreas Heuer, Gunter Saake – Datenbanken I
4-18
Detaildarstellung einer Beispielausprägung
System
007700|111
4242|123
x13 | 1-345
13|42.
x01 | 1-432
12|7.
v42 |3-987
Andreas Heuer, Gunter Saake – Datenbanken I
4-19
Simulation einer allgemeinen Relationship
R
T
L1
E1
...........
Ek
T1
Lk
............
Tk
Kett-Entity
Andreas Heuer, Gunter Saake – Datenbanken I
4-20
Hierarchisches Datenmodell
wie NWM, aber nur Hierarchien
Einführung: IBM 1969 mit System IMS
■
Eine Hierarchie ist ein Netzwerkschema, das ein Wald ist (‘Menge von
Bäumen’).
■
Eine reine Hierarchie kann keine allgemeinen Beziehungen darstellen,
so daß sogenannte “virtual records” (‘Zeiger’) eingeführt werden, um die
Baumstruktur zu durchbrechen.
Andreas Heuer, Gunter Saake – Datenbanken I
4-21
Beispiel im hierarchischen Datenmodell
Vorlesung
Student
PANr | Matrikelnr | ...
la
BuchExemplar
V_Bezeichnung | SWS | Semester | ...
hö_2
hö_1
Hörer
Hörer
Inventarnr | ISBN | ...
Andreas Heuer, Gunter Saake – Datenbanken I
virtual
lfd# | Semester
4-22
Skizze der Speicherstrukturen im hierarchischen
Datenmodell
System
...
Andreas Heuer, Gunter Saake – Datenbanken I
4-23
Erweiterte relationale und semantische Modelle
Geschachtelte Relationen: Das NF -Modell
NF -Relationen erlauben komplexe Attributwerte in dem Sinne, daß
Attribute selbst wieder Relationen sein können.
Andreas Heuer, Gunter Saake – Datenbanken I
4-24
Beispiel im NF -Modell
Fachbereich
PANr
Informatik
Mathematik
Belegschaft
Nachname Telefone
Telefon
4711
Heuer
5588
Saake
7754
8832
6834
Möller
Jagellovsk
Korn
Andreas Heuer, Gunter Saake – Datenbanken I
038203-12230
0381-498-3401
0381-498-3427
0391-345677
0391-5592-3800
Gehalt
6000
6000
550
2800
750
4-25
PNF-Relationen
PNF: Partitioned Normal Form
Relationen in PNF haben auf jeder Stufe der Schachtelung einen flachen
Schlüssel.
A
1
PNF-Relation:
2
3
Andreas Heuer, Gunter Saake – Datenbanken I
D
B
2
4
1
4
1
C
3
2
1
1
1
Nicht PNF:
A
B
C
D
1
2
1
2
2
3
3
4
4-26
PNF-Relation und entschachtelte äquivalente Relation
A
1
2
3
Andreas Heuer, Gunter Saake – Datenbanken I
D
B
2
4
1
4
1
C
3
2
1
1
1
A
1
1
2
2
3
B
2
4
1
4
1
C
3
2
1
1
1
4-27
Verallgemeinerte geschachtelte Relationen
Erweitertes NF -Modell: eNF -Modell
Beliebige Kombination der Typkonstruktoren
■
set of: Mengenbildung
■
tuple of: Tupelkonstruktion
■
list of: Listen
■
bag of: Multimengen
Typkonstruktoren können beliebig kombiniert werden, so daß etwa set of bag
of integer erlaubt ist.
Andreas Heuer, Gunter Saake – Datenbanken I
4-28
Semantische Datenmodelle
Semantische Datenmodelle unterstützen weitere Abstraktionskonzepte wie
Generalisierung und Spezialisierung
■
Funktionale Datenmodelle: Alle Anwendungsobjekte werden mit EntityTypen und Funktionen modelliert.
■
IFO-Modell: IFO steht für
■
SDM: viele, teilweise auch redundante Konzepte zur Modellierung
Andreas Heuer, Gunter Saake – Datenbanken I
IST-Beziehungen,
Funktionen und Objekttypen.
4-29
Objektorientierte Modelle inkl. ODMG
Objektorientierte Datenbankmodelle bieten
■
mehr Konzepte zur Darstellung der Struktur
◆
◆
◆
■
komplexe Werte, die mit Typkonstruktoren wie set of, tuple of und list
of beschrieben werden können,
Objektidentität, die gespeicherte Objekte von Werten, die sie besitzen,
unterscheiden kann,
Vererbung von Attributen zwischen Objekttypen, die in einer IST-Beziehung stehen, sowie
mehr Konzepte zur Darstellung objektspezifischer Operationen, etwa Methoden (legen Operationen fest, mit denen die Anwendungsdaten (nur)
manipuliert werden dürfen)
Beispiel: Studenten
Andreas Heuer, Gunter Saake – Datenbanken I
4-30
Modell nach Beeri
■
Strukturteil
◆
◆
◆
◆
■
Typen und Typkonstruktoren
Objektidentität
Klassen
Strukturvererbung (oder Klassen- und Typhierarchie)
Operationenteil
◆
◆
Anfrageoperationen
Änderungsoperationen
Andreas Heuer, Gunter Saake – Datenbanken I
4-31
Modell nach Beeri II
■
Höhere Konzepte
◆
◆
◆
◆
Metaklassen
Methoden
Vererbung und Overriding von Methoden
Einkapselung
Andreas Heuer, Gunter Saake – Datenbanken I
4-32
Definition eines objektorientierten Datenbanksystems
Datenbanksystem, das
■
auf einem objektorientierten Datenbankmodell mit Strukturteil, Operationenteil und höheren Konzepten basiert,
■
auf der konzeptuellen Ebene durch neue Datentypen und neue Funktionen
erweiterbar ist,
■
weitere Datenbank-Eigenschaften besitzt (wie Persistenz, Speicherungsstrukturen und Zugriffspfade, Transaktionen und Concurrency-ControlKomponenten sowie Recovery-Mechanismen)
■
und neben den Operationen des Operationenteils (Anfrage- und Datenmanipulationssprache) auch eine komplette Programmier-Umgebung beinhaltet.
Andreas Heuer, Gunter Saake – Datenbanken I
4-33
Klassifikation von OODBS
Systeme (seit 1987, Manifesto 1989, ODMG-Industrie-Standard 1993)
Erweiterung relationaler Datenbanksysteme
◆ Relationales Datenmodell
Typkonstruktoren
Objektidentität
(etwa DASDBS, AIM/P, POSTGRES,
)
◆ speziell: Objekt-relationale Datenbanksysteme (etwa Illustra, UniSQL,
jetzt auch viele RDBS wie DB2)
■
Neuentwicklungen
◆ eigenes OO Datenmodell (etwa O , Itasca, OSCAR)
■
Erweiterung objektorientierter Programmiersprachen (OOPLs)
◆ C++- oder SMALLTALK-Datenmodell (etwa GemStone, ObjectStore,
POET,
)
■
Andreas Heuer, Gunter Saake – Datenbanken I
4-34
Strukturteil
■
Typen und Typkonstruktoren
◆
◆
■
Standard-Datentypen wie INTEGER und STRING
Typkonstruktoren wie SET OF und TUPLE OF: kompliziertere Typen
Objektidentität
◆
◆
◆
◆
vom System vergeben
eindeutig
unveränderbar
für den Benutzer unsichtbar
Andreas Heuer, Gunter Saake – Datenbanken I
4-35
Strukturteil II
■
Klassen
◆
◆
◆
■
beschreiben Objekte mit ähnlichen Eigenschaften
Typ, Objektvorrat und Objektbehälter
Methoden
Komponenten-Beziehungen bei Klassen (VERLAGE Komponente von
BÜCHERN)
Andreas Heuer, Gunter Saake – Datenbanken I
4-36
Strukturteil III
■
Is-A-Beziehungen
◆
◆
Klassenhierarchie: Objektmenge der Unterklasse ist Teilmenge der Objektmenge der Oberklasse
(STUDENTEN sind eine Teilmenge der PERSONEN)
Typhierachie: Typ der Unterklasse hat mehr Eigenschaften als Typ der
Oberklasse
(STUDENTEN haben neben den Eigenschaften von Personen auch
noch MATRIKELNUMMER und STUDIENFACH)
Andreas Heuer, Gunter Saake – Datenbanken I
4-37
Definition eines Objekttyps
set of(tuple of(
: tuple of(
: set of(
: date))
: string,
: string),
: integer,
: string,
: string,
: integer),
: string),
: integer,
: tuple of(
Andreas Heuer, Gunter Saake – Datenbanken I
4-38
Symbole der graphischen Notation
x
abstrakte Klasse
Typkonstruktion
freie Klasse
Zustandsfunktion
Tupelkonstruktion
Is-A Beziehung
Mengenkonstruktion
Subtyp-Beziehung
Standard-Datentyp x
Andreas Heuer, Gunter Saake – Datenbanken I
4-39
Graphische Definition eines Objekttyps
Personen
Person
Name
int
Adresse
Telefone
PANr
date
Geburtsdatum
str
str
int
str
str
Vorname
Nachname
PLZ
Ort
Straße
Andreas Heuer, Gunter Saake – Datenbanken I
int
str
Hausnummer Telefon
4-40
Graphische Deklaration einer Klasse
Bücher
Buch
str
ISBN
str
Versionen
Autoren
Titel
str
Stichworte
Verlag
str
Version
Autor
int
int
Auflage Jahr
Andreas Heuer, Gunter Saake – Datenbanken I
int
money
Seiten
Preis
4-41
Beispiel Objektrelation
Bücher
0-8053-1753-3
Princ. of DBS
Andreas Heuer, Gunter Saake – Datenbanken I
DB2
3-89319-175-5
Verlag
Titel
ISBN
Autoren
Autor
Vossen
Witt
Elmasri
Navathe
Stichworte
Stichwort
RDB
RDB
Lehrbuch
ER
4-42
Klassenhierarchie a) versus Typhierarchie b)
Personen
a)
Personen
b)
str
str
Name
Name
Mitarbeiter
Studenten
Studenten
Mitarbeiter
real
str
int
Matrnr
real
Gehalt
str
Name
Gehalt
Name
StudentenUndMitarbeiter
int
Matrnr
int
Matrnr
Andreas Heuer, Gunter Saake – Datenbanken I
str
real
Name Gehalt
4-43
Klassendeklarationen im O -Modell I
class
type tuple(
: string,
: string),
: tuple(
: integer,
: string,
: string,
: integer),
: set(
: string),
: date)
: integer,
: tuple(
Andreas Heuer, Gunter Saake – Datenbanken I
4-44
Klassendeklarationen im O -Modell II
inherits
type tuple(
class
: integer,
: string,
:
,
:
,
: set(tuple(
: string,
: real)))
Andreas Heuer, Gunter Saake – Datenbanken I
4-45
Operationen
mindestens die Möglichkeiten wie in Relationenalgebra / SQL
■
relationale Semantik: Extraktion von Werten aus Zuständen von Objekten
geschachtelte Relationen
■
■
■
objekterzeugende Semantik: Erzeugung neuer Objekte als Anfrageergebnis mit Zuständen, die von vorhandenen Objekten extrahiert wurden
Ergebnis ist eine dynamisch erzeugte Klasse
objekterhaltende Semantik: Auswahl der in der Datenbank vorkommenden
Objekte mit neuen Zuständen
Ergebnis ist dynamisch erzeugte Ober- / Unterklasse
Andreas Heuer, Gunter Saake – Datenbanken I
4-46
Operationen II
schwach ausgeprägt bei OOPL-Erweiterungen
Andreas Heuer, Gunter Saake – Datenbanken I
“OSQL” mit relationaler Semantik (nicht so mächtig wie Standard-SQL)
■
Standard-Methoden auf
-Klassen
(Selektionen mit sehr einfachen Selektionsprädikaten)
■
4-47
Höhere Konzepte
■
objekt- oder klassenspezifische Operationen
■
werden wie Eigenschaften von Ober- zu Unterklassen vererbt
■
Implementierung einer Methode kann bei Vererbung noch verändert werden (Overriding)
■
System wählt selbständig zur Laufzeit passende Implementierung (dynamisches Binden)
Andreas Heuer, Gunter Saake – Datenbanken I
4-48
Klassendeklarationen im O -Modell III
inherits
type tuple(
class
: integer,
: string,
:
,
:
,
: set(tuple(
: string,
: real)))
: money
method
Andreas Heuer, Gunter Saake – Datenbanken I
4-49
Methodendeklaration im O -Modell
return ( self
: real in class
method body
)
0.1
Andreas Heuer, Gunter Saake – Datenbanken I
4-50
Der ODMG-Standard
Die Struktur des Standards ist viergeteilt:
■
Objektmodell beschreibt Begriffe und semantische Festlegungen des OO
Datenmodells (stark C++-lastig)
■
Datenbanksprachen ODL (Object Definition Language) und OQL (Object Query Language): mögliche Schnittstelle zur Datendefinition und
-manipulation
■
Spracheinbettungen (oder Bindings) für C++, Java und SMALLTALK
■
Bezug zur OMG, zu CORBA und zur ANSI-C++-Version
Beispiele zu ODL und OQL folgen in späteren Kapiteln.
Andreas Heuer, Gunter Saake – Datenbanken I
4-51
Einordnung sonstiger Datenbankmodelle
■
GOOD (Graph-Oriented Object Database Model): Ecken eines Graphen
als Werte, Objekte und Typen
■
Klassenlose Datenmodelle: Statt Klassen Objekte als Prototypen
■
Wissensrepräsentation / Feature-Terme: Feature-Terme in einer Subsumptionshierarchie
◆
■
Lilog-Datenmodell, F-Logic
Komplex-Objekt-Datenmodelle im Ingenieurbereich: Unterstützung von
hierarchischen Ist-Teil-Von-Beziehungen
◆
◆
Molekül-Atom-Datenmodell
STEP-Modell mit der Datenbeschreibungssprache EXPRESS
Andreas Heuer, Gunter Saake – Datenbanken I
4-52
Herunterladen