• Keine Ergebnisse gefunden

VL Datenbanken I – 3–1

N/A
N/A
Protected

Academic year: 2022

Aktie "VL Datenbanken I – 3–1"

Copied!
10
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

4. Datenbankmodelle für die Realisierung

Relationenmodell

Objektorientierte Modelle

Semistrukturierte Modelle und XML

VL Datenbanken I – 3–1

Relationenmodell

Codd im Jahre 1970

Veranschaulichung eines Relationenschemas und einer Relation

. . . . . . . . . . . .

R A1 An

Tupel

Relationenschema Relationenname Attribute

}

Relation

VL Datenbanken I – 3–2

Beispiele für Relationen

Personen PANr Vorname Nachname PLZ Ort GebDatum 4711 Andreas Heuer 18209 DBR 31.10.1958 5588 Gunter Saake 39106 MD 05.10.1960 6834 Michael Korn 39104 MD 24.09.1974 8832 Tamara Jagellovsk 38106 BS 11.11.1973 9999 Christa Loeser 69121 HD 10.05.1969

Pers_Telefon PANr Telefon 4711 038203-12230 4711 0381-498-3401 5588 0391-345677 5588 0391-5592-3800 9999 06221-400177

(2)

Begriffe des Relationenmodells

Begriff Informale Bedeutung Attribut Spalte einer Tabelle

Wertebereich mögliche Werte eines Attributs (auch Domäne)

Attributwert Element eines Wertebereichs Relationenschema Menge von Attributen

Relation Menge von Zeilen einer Tabelle Tupel Zeile einer Tabelle

Datenbankschema Menge von Relationenschemata Datenbank Menge von Relationen (Basisrelatio-

nen)

VL Datenbanken I – 3–4

Begriffe des Relationenmodells II

Begriff Informale Bedeutung

Schlüssel minimale Menge von Attributen, deren Werte ein Tupel einer Ta- belle eindeutig identifizieren Primärschlüssel ein beim Datenbankentwurf aus-

gezeichneter Schlüssel

Fremdschlüssel Attributmenge, die in einer ande- ren Relation Schlüssel ist Fremdschlüsselbedingung alle Attributwerte des Fremd-

schlüssels tauchen in der an- deren Relation als Werte des Schlüssels auf

VL Datenbanken I – 3–5

Formalisierung Relationenmodell I

Attribute und Domänen

U nichtleere, endliche Menge: Universum

A∈ U: Attribut

D={D1, . . . , Dm}Menge endlicher, nichtleerer Mengen:

jedesDi: Wertebereich oder Domäne

total definierte Funktion dom:U −→ D

dom(A): Domäne vonA w∈dom(A): Attributwert fürA

(3)

Formalisierung Relationenmodell II

Relationenschemata und Relationen

R⊆ U: Relationenschema

Relationrüber R={A1, . . . , An}(kurz:r(R)) ist endliche Menge von Abbildungent:R−→Sm

i=1Di, Tupel genannt

Es giltt(A)∈dom(A)(t(A)Restriktion vontaufA∈R)

fürX ⊆Ranalogt(X)X-Wert vontMenge aller Relationen überR:REL(R) :={r|r(R)}

VL Datenbanken I – 3–7

Formalisierung Relationenmodell III

Datenbankschema und Datenbank

Menge von RelationenschemataS:={R1, . . . , Rp}: Datenbankschema

Datenbank überS: Menge von Relationen d:={r1, . . . , rp}, wobeiri(Ri)

DatenbankdüberS:d(S)

Relationr∈d: Basisrelation

VL Datenbanken I – 3–8

Unterschied zur klassischen Definition I

„klassische“ Definition einer Relation: Teilmenge des kartesischen Produktes

r1⊆dom(PANr)×dom(Vorname)×dom(Nachname) und

r2⊆dom(PANr)×dom(Nachname)×dom(Vorname) sind ungleich bei Definition mittels kartesischem Produkt!

(4)

Unterschied zur klassischen Definition II

r1 PANr Vorname Nachname 4711 Andreas Heuer 5588 Gunter Saake 6834 Michael Korn

r2 PANr Nachname Vorname 4711 Heuer Andreas 5588 Saake Gunter 6834 Korn Michael

Relationenr1undr2bestehen aus Tupelnt1, t2, t3mit t1(PANr)=4711, t1(Vorname)=‘Andreas’, t1(Nachname)=‘Heuer’

t2(PANr)=5588, t2(Vorname)=‘Gunter’, t2(Nachname)=‘Saake’

t3(PANr)=6834, t3(Vorname)=‘Michael’, t3(Nachname)=‘Korn’

VL Datenbanken I – 3–10

Integritätsbedingungen

Identifizierende AttributmengeK :={B1, . . . , Bk} ⊆R:

∀t1, t2∈r[t16=t2 =⇒ ∃B∈K:t1(B)6=t2(B)].

Schlüssel: ist minimale identifizierende Attributmenge {Vorname, Nachname, PLZ, Geburtsdatum} und {textttPANr} fürPersonen

{PANr, Telefon} fürPers_Telefon

Primattribut: Element eines Schlüssels

Primärschlüssel: ausgezeichneter Schlüssel

Fremdschlüssel:X(R1)→Y(R2)

{t(X)|t∈r1} ⊆ {t(Y)|t∈r2}

VL Datenbanken I – 3–11

Relationenalgebra

Selektion:σNachname=’Meyer’(r(Personen))

Projektion:πVorname, PLZ(r(Personen))

Verbund:r(Personen)./ r(Pers Telefon)

Mengenoperationen:∩,∪,−

Umbenennung:βWohnortOrt(r(Personen))

(5)

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 einerIST-Beziehung stehen, sowie

mehr Konzepte zur Darstellung objektspezifischer Operationen, etwa Methoden (legen Operationen fest, mit denen die Anwendungsdaten (nur) manipuliert werden dürfen)

VL Datenbanken I – 3–13

Modell nach Beeri

Strukturteil

Typen und Typkonstruktoren

Objektidentität

Klassen

Strukturvererbung (oder Klassen- und Typhierarchie)

Operationenteil

Anfrage- und Änderungsoperationen

Höhere Konzepte

Metaklassen

Methoden, Vererbung und Overriding von Methoden

Einkapselung

VL Datenbanken I – 3–14

Definition eines OODBS

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-Control-Komponenten sowie Recovery-Mechanismen)

(6)

Klassifikation von OODBS

Systeme (seit 1987, Manifesto 1989, ODMG-Industrie-Standard 1993)

Erweiterung objektorientierter Programmiersprachen

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)

Neuentwicklungen

eigenes OO Datenmodell (etwa O2, Itasca, OSCAR)

VL Datenbanken I – 3–16

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

VL Datenbanken I – 3–17

Strukturteil II

Klassen

beschreiben Objekte mit ähnlichen Eigenschaften

Typ, Objektvorrat und Objektbehälter

Methoden

Komponenten-Beziehungen bei Klassen (VERLAGE Komponente von BÜCHERN)

(7)

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)

VL Datenbanken I – 3–19

Definition eines Objekttyps

set of(tuple of(PANr: integer,

Name: tuple of(Vorname: string, Nachname: string), Adresse: tuple of(PLZ: integer,

Ort: string, Strasse: string, Hausnummer: integer ), Telefone: set of(Telefon: string), Geburtsdatum: date))

VL Datenbanken I – 3–20

Beispiel Objektrelation

Bücher ISBN Titel Verlag Autoren Stichworte . . . Autor Stichwort

α1 3-8931- DB2 β1 Vossen RDB . . .

Witt

α2 0-8053- Princ. of DBS β2 Elmasri RDB . . . Navathe Lehrbuch . . .

ER

. . . . . . . . . . . . . . . . . . . . .

(8)

Klassendeklarationen im O

2

-Modell I

classPersonen

type tuple(PANr: integer,

Name: tuple(Vorname: string, Nachname: string), Adresse: tuple(PLZ: integer,

Ort: string, Strae: string,

Hausnummer: integer ), Telefone: set(Telefon: string), Geburtsdatum: date)

VL Datenbanken I – 3–22

Klassendeklarationen im O

2

-Modell II

classStudenteninheritsPersonen type tuple(Matrikelnummer: integer,

Studienfach: string, Vater:Personen, Mutter:Personen,

Zeugnis: set(tuple(Fach: string, Note: real)))

VL Datenbanken I – 3–23

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

(9)

Operationen II

schwach ausgeprägt bei OOPL-Erweiterungen

Standard-Methoden aufCOLLECTION-Klassen (Selektionen mit sehr einfachen Selektionsprädikaten)

„OSQL“ mit relationaler Semantik (nicht so mächtig wie Standard-SQL)

VL Datenbanken I – 3–25

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)

VL Datenbanken I – 3–26

Klassendeklarationen im O

2

-Modell III

classStudenteninheritsPersonen type tuple(Matrikelnummer: integer,

Studienfach: string, Vater:Personen, Mutter:Personen,

Zeugnis: set(tuple(Fach: string, Note: real))) methodZur_Verfuegung: money

(10)

Methodendeklaration im O

2

-Modell

method bodyZur Verfuegung: real in classStudenten { return ( self→Vater→Zur_Verfuegung

+self→Mutter→Zur_Verfuegung)

∗0.1 }

VL Datenbanken I – 3–28

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

VL Datenbanken I – 3–29

Referenzen

ÄHNLICHE DOKUMENTE

Institut f¨ ur Angewandte Mathematik Blatt

Wegen der dritten Bedingung muss noch eine Zahl, die 4 oder die 8 dazukommen.. Unklar sind die 3 und

• Owner Entity und Weak Entity müssen in einer 1:n- Beziehung stehen (ein Owner, mehrere Weak Entities).

• Performancegewinne und Verluste durch Zweitschlüssel – Gewinne beim Lesen.. – Verluste

Jeder Fachbereich muss eine Beziehung leiten eingehen, d.h., jeder Fachbereich wird von einem Mitarbeiter geleitet. Ein Mitarbeiter muss nicht unbedingt die Beziehung leiten

Professoren PANr Lehrstuhlbezeichnung Stufe Planstellen 4711 Datenbank- und Informationssysteme C4 4 5588 Datenbanken und Informationssysteme C4 5. [0,1]:[1,1]-Beziehung:

ISBN char(10) not null, Titel varchar(200), Verlagsname varchar(30), primary key (ISBN),. foreign

1 Attribut/mehrere Attribute, die jeden Datensatz eindeutig kennzeichnen Primärschlüssel werden immer durch?.