4. Datenbankmodelle f¨ur die Realisierung Relationenmodell

Werbung
Relationenmodell
Begriffe des Relationenmodells
Begriff
Attribut
Wertebereich
Codd im Jahre 1970
Relationenname
R
A1
...
...
Attribute
An
} Relationenschema
...
...
Attributwert
Relationenschema
Relation
Tupel
Datenbankschema
Datenbank
Relation
Tupel
Veranschaulichung eines Relationenschemas und einer Relation
Andreas Heuer, Gunter Saake – Datenbanken I
4-2
Andreas Heuer, Gunter Saake – Datenbanken I
Pers Telefon
➠ Weitere Datenbankmodelle
4-1
Andreas Heuer, Gunter Saake – Datenbanken I
PLZ
18209
39106
39104
18209
38106
18059
69121
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
Nachname
Heuer
Saake
Korn
Möller
Jagellovsk
Hellhof
Loeser
➠ Objektorientierte Modelle
Vorname
Andreas
Gunter
Michael
Andreas
Tamara
Antje
Christa
➠ Netzwerkmodell und hierarchisches Modell
PANr
4711
5588
6834
7754
8832
9912
9999
Personen
Zwei Relationen zur Darstellung von
➠ Relationenmodell
Andreas Heuer, Gunter Saake – Datenbanken I
4-4
4. Datenbankmodelle für die Realisierung
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)
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
Formalisierung Relationenmodell I
Formalisierung Relationenmodell III
Attribute und Domänen
Datenbankschema und Datenbank
■
Menge von Relationenschemata
■
Datenbank über : Menge von Relationen
■
Datenbank
■
Relation
: Datenbankschema
nichtleere, endliche Menge: Universum
■
, wobei
: Attribut
■
über :
: Wer-
Menge endlicher, nichtleerer Mengen: jedes
tebereich oder Domäne
■
: Domäne von
dom
: Attributwert für
dom
■
: Basisrelation
total definierte Funktion dom
■
Andreas Heuer, Gunter Saake – Datenbanken I
4-6
Andreas Heuer, Gunter Saake – Datenbanken I
Begriffe des Relationenmodells II
Begriff
Schlüssel
■
: Relationenschema
) ist endliche Menge von
(kurz:
, Tupel genannt
für
REL
■
Es gilt
■
Relation über
Abbildungen
■
Restriktion von auf
(
)
Menge aller Relationen über
X-Wert von
:
4-5
dom
analog
Andreas Heuer, Gunter Saake – Datenbanken I
Relationenschemata und Relationen
Fremdschlüsselbedingung
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
Fremdschlüssel
Formalisierung Relationenmodell II
Primärschlüssel
4-8
Andreas Heuer, Gunter Saake – Datenbanken I
4-7
Unterschied zu der klassischen Definition einer Relation
als Teilmenge des kartesischen Produktes: Beispiel
■
Selektion
’Meyer’
Vorname
Andreas
Gunter
Michael
bestehen aus Tupeln
Nachname
Heuer
Saake
Korn
< PANr
4711
5588
6834
und
Relationen
Nachname
Heuer
Saake
Korn
Vorname
Andreas
Gunter
Michael
PANr
4711
5588
6834
Relationenalgebra
mit
< %
#
$
!
!
"
■
Projektion
+
*
()
'
&!
6
5
= Andreas Heuer, Gunter Saake – Datenbanken I
4-10
Unterschied zu der klassischen Definition einer Relation
als Teilmenge des kartesischen Produktes
Andreas Heuer, Gunter Saake – Datenbanken I
Integritätsbedingungen
.
-
- :
2
4
- - ,
3-
1
1
0
/
und
■
6
5
#
#
7
"
9
*
8
9
*
8
■
Primattribut: Element eines Schlüssels
■
Primärschlüssel: ausgezeichneter Schlüssel
■
Fremdschlüssel:
:
;
;
4-9
Schlüssel: ist minimale identifizierende Attributmenge
und
für
für
sind ungleich bei Definition mittels kartesischem Produkt!
Andreas Heuer, Gunter Saake – Datenbanken I
,
Identifizierende Attributmenge
dom
dom
dom
dom
dom
dom
4-12
Andreas Heuer, Gunter Saake – Datenbanken I
4-11
Relationenalgebra III
Schema im Netzwerkmodell
■
!
-
in
#
#
■
konkrete Set-Ausprägung: Besitzer (Owner) und Teilnehmer (Members)
■
Netzwerkmodell entspricht ER-Modell mit Einschränkungen
◆
◆
◆
■
Andreas Heuer, Gunter Saake – Datenbanken I
4-14
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
Netzwerkmodell
Relationenalgebra II
■
und
Formale Definition:
◆
Menge der Record-Typen als Knoten
Set-Typen als Kanten (
Kante, falls
Relationship)
Umbenennung
◆
■
Mengenoperationen
■
Netzwerkschema: gerichteter Graph
Netzwerkmodell: 1971 vom Normungsausschuß CODASYL-DBTG definiert
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
ER-Modell
Entity
Entity-Typ
Attribut
binärer 1:nBeziehungstyp
Telefon
038203-12230
0381-498-3401
0381-498-3427
0391-345677
0391-5592-3800
06221-400177
4-13
Andreas Heuer, Gunter Saake – Datenbanken I
Relationenmodell
Tupel
Relationenschema
Attribut
Relation
Netzwerkmodell
logical record
Record-Typ
Feld
Link oder auch
Set-Typ
4-15
Beispielausprägung im Netzwerkmodell
BuchExemplar
Student
Hörer
Simulation einer allgemeinen Relationship
Vorlesung
R
12 | 7.
T
DB I | 4 | 6. | ...
x13 | 1-345
L1
Lk
13 | 42.
x01 | 1-432
E1
...........
Ek
T1
WiInf I | 2 | 1. | ...
y42 | 3-987
............
Tk
Kett-Entity
4242 | 123 |...
732 | 1.
x1 | 5-555
007700 | 111 |...
Andreas Heuer, Gunter Saake – Datenbanken I
4-18
Beispielschema im NWM
Andreas Heuer, Gunter Saake – Datenbanken I
Detaildarstellung einer Beispielausprägung
Vorlesung
Student
PANr | Matrikelnr | ...
System
V_Bezeichnung | SWS | Semester | ...
hö_1
13|42.
x01 | 1-432
hö_2
007700|111
4242|123
x13 | 1-345
la
4-20
12|7.
v42 |3-987
BuchExemplar
Inventarnr | ISBN | ...
Andreas Heuer, Gunter Saake – Datenbanken I
Hörer
lfd# | Semester
4-17
Andreas Heuer, Gunter Saake – Datenbanken I
4-19
Beispiel im hierarchischen Datenmodell
Erweiterte relationale und semantische Modelle
Vorlesung
PANr | Matrikelnr | ...
Geschachtelte Relationen: Das NF -Modell
Student
V_Bezeichnung | SWS | Semester | ...
NF -Relationen erlauben komplexe Attributwerte in dem Sinne, daß
Attribute selbst wieder Relationen sein können.
hö_2
hö_1
la
Hörer
Hörer
BuchExemplar
Inventarnr | ISBN | ...
virtual
lfd# | Semester
Andreas Heuer, Gunter Saake – Datenbanken I
4-22
Hierarchisches Datenmodell
Andreas Heuer, Gunter Saake – Datenbanken I
4-24
Skizze der Speicherstrukturen im hierarchischen
Datenmodell
wie NWM, aber nur Hierarchien
System
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
...
Andreas Heuer, Gunter Saake – Datenbanken I
4-23
PNF-Relationen
Verallgemeinerte geschachtelte Relationen
Relationen in PNF haben auf jeder Stufe der Schachtelung einen flachen
Schlüssel.
Beliebige Kombination der Typkonstruktoren
A
1
PNF-Relation:
2
3
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
Erweitertes NF -Modell: eNF -Modell
PNF: Partitioned Normal Form
■
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-26
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
4-28
PNF-Relation und entschachtelte äquivalente Relation
Beispiel im NF -Modell
Fachbereich
Andreas Heuer, Gunter Saake – Datenbanken I
A
Gehalt
1
6000
2
6000
3
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
550
2800
750
4-25
Andreas Heuer, Gunter Saake – Datenbanken I
4-27
Modell nach Beeri II
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
Höhere Konzepte
◆
◆
◆
◆
Metaklassen
Methoden
Vererbung und Overriding von Methoden
Einkapselung
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
Andreas Heuer, Gunter Saake – Datenbanken I
Modell nach Beeri
Semantische Datenmodelle
Semantische Datenmodelle unterstützen weitere Abstraktionskonzepte wie
Generalisierung und Spezialisierung
■
Strukturteil
◆
■
Funktionale Datenmodelle: Alle Anwendungsobjekte werden mit EntityTypen und Funktionen modelliert.
■
IFO-Modell: IFO steht für
IST-Beziehungen,
■
SDM: viele, teilweise auch redundante Konzepte zur Modellierung
◆
◆
◆
Funktionen und Objekttypen.
■
◆
4-29
Typen und Typkonstruktoren
Objektidentität
Klassen
Strukturvererbung (oder Klassen- und Typhierarchie)
Operationenteil
◆
Andreas Heuer, Gunter Saake – Datenbanken I
4-32
Anfrageoperationen
Änderungsoperationen
Andreas Heuer, Gunter Saake – Datenbanken I
4-31
Klassifikation von OODBS
Strukturteil II
Systeme (seit 1987, Manifesto 1989, ODMG-Industrie-Standard 1993)
■
■
Klassen
◆
■
Erweiterung objektorientierter Programmiersprachen (OOPLs)
◆ C++- oder SMALLTALK-Datenmodell (etwa GemStone, ObjectStore,
POET,
)
◆
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)
◆
■
■
beschreiben Objekte mit ähnlichen Eigenschaften
Typ, Objektvorrat und Objektbehälter
Methoden
Komponenten-Beziehungen bei Klassen (VERLAGE Komponente von
BÜCHERN)
Neuentwicklungen
◆ eigenes OO Datenmodell (etwa O , Itasca, OSCAR)
Andreas Heuer, Gunter Saake – Datenbanken I
4-34
Andreas Heuer, Gunter Saake – Datenbanken I
Definition eines objektorientierten Datenbanksystems
4-36
Strukturteil
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
■
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
Definition eines Objekttyps
set of(tuple of(
Personen
Person
6
5
: tuple of(
: string,
: string),
: integer,
: string,
: string,
: integer),
: string),
: integer,
: tuple of(
Graphische Definition eines Objekttyps
#
$
#
str
str
int
str
str
Vorname
Nachname
PLZ
Ort
Straße
int
str
#
4-40
Symbole der graphischen Notation
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
Hausnummer Telefon
Andreas Heuer, Gunter Saake – Datenbanken I
Is-A-Beziehungen
◆
date
Geburtsdatum
#
"
4-38
Strukturteil III
◆
Telefone
7
Andreas Heuer, Gunter Saake – Datenbanken I
■
Adresse
9
*
8
9
*
8
: set of(
: date))
Name
int
PANr
4-37
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
Beispiel Objektrelation
: integer,
: tuple(
: string,
: string),
: tuple(
: integer,
: string,
: string,
: integer),
: set(
: string),
: date)
RDB
Lehrbuch
ER
type tuple(
Princ. of DBS
class
0-8053-1753-3
Stichworte
Stichwort
RDB
DB2
6
5
9
*
Autoren
Autor
Vossen
Witt
Elmasri
Navathe
3-89319-175-5
Verlag
Titel
ISBN
Bücher
Klassendeklarationen im O -Modell I
#
$
#
9
*
8
#
#
7
"
4-42
8
Andreas Heuer, Gunter Saake – Datenbanken I
Andreas Heuer, Gunter Saake – Datenbanken I
4-44
Klassenhierarchie a) versus Typhierarchie b)
Graphische Deklaration einer Klasse
Bücher
Personen
a)
Personen
b)
str
str
Buch
Name
Name
Mitarbeiter
Studenten
str
ISBN
Studenten
str
Versionen
Autoren
Titel
Stichworte
real
Verlag
str
int
str
str
Version
Mitarbeiter
Matrnr
real
Gehalt
Autor
Name
StudentenUndMitarbeiter
int
Matrnr
int
int
Auflage Jahr
Andreas Heuer, Gunter Saake – Datenbanken I
str
Name
Gehalt
int
money
int
Seiten
Preis
Matrnr
4-41
Andreas Heuer, Gunter Saake – Datenbanken I
str
real
Name Gehalt
4-43
Operationen
Höhere Konzepte
mindestens die Möglichkeiten wie in Relationenalgebra / SQL
■
objekt- oder klassenspezifische Operationen
■
relationale Semantik: Extraktion von Werten aus Zuständen von Objekten
geschachtelte Relationen
■
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)
:
■
■
:
■
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
Andreas Heuer, Gunter Saake – Datenbanken I
4-48
Klassendeklarationen im O -Modell II
schwach ausgeprägt bei OOPL-Erweiterungen
#
inherits
type tuple(
#
$
class
Operationen II
#
*
%
)
(
9
)
#
$
8
“OSQL” mit relationaler Semantik (nicht so mächtig wie Standard-SQL)
5
■
5
)
6
Standard-Methoden auf
-Klassen
(Selektionen mit sehr einfachen Selektionsprädikaten)
#
#
(
■
#
: integer,
: string,
:
,
:
,
: set(tuple(
: string,
: real)))
#
Andreas Heuer, Gunter Saake – Datenbanken I
4-45
Andreas Heuer, Gunter Saake – Datenbanken I
4-47
Einordnung sonstiger Datenbankmodelle
Methodendeklaration im O -Modell
Klassenlose Datenmodelle: Statt Klassen Objekte als Prototypen
■
Wissensrepräsentation / Feature-Terme: Feature-Terme in einer Subsumptionshierarchie
■
#
GOOD (Graph-Oriented Object Database Model): Ecken eines Graphen
als Werte, Objekte und Typen
9
■
$
6
#
return ( self
#
: real in class
9
6
method body
9
6
#
#
(
9
*
)
0.1
◆
■
Komplex-Objekt-Datenmodelle im Ingenieurbereich: Unterstützung von
hierarchischen Ist-Teil-Von-Beziehungen
◆
◆
Andreas Heuer, Gunter Saake – Datenbanken I
4-50
Molekül-Atom-Datenmodell
STEP-Modell mit der Datenbeschreibungssprache EXPRESS
Andreas Heuer, Gunter Saake – Datenbanken I
Klassendeklarationen im O -Modell III
4-52
Der ODMG-Standard
Die Struktur des Standards ist viergeteilt:
#
inherits
type tuple(
#
$
class
Lilog-Datenmodell, F-Logic
#
*
%
)
(
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
)
■
#
#
6
Objektmodell beschreibt Begriffe und semantische Festlegungen des OO
Datenmodells (stark C++-lastig)
#
(
■
9
)
#
$
: integer,
: string,
:
,
:
,
: set(tuple(
: string,
: real)))
: money
#
9
6
method
Beispiele zu ODL und OQL folgen in späteren Kapiteln.
Andreas Heuer, Gunter Saake – Datenbanken I
4-49
Andreas Heuer, Gunter Saake – Datenbanken I
4-51
Herunterladen