Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von...

25
Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte

Transcript of Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von...

Page 1: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

Oberseminar Moderne Datenbanken

WS03/04

Objektrelationale Datenbanken

Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte

Page 2: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Gliederung Einführung Übersicht SQL:1999 & SQL:2003 Allgemeine Konzepte

Large Object Benutzerdefinierte Typen Typisierte Tabellen/Sichten

OO-Konzepte in Oracle9i

Page 3: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Definition

ORDBMS ist Erweiterung relationaler DBMS mit objektorientieren Konzepten

Grundkonstrukte semantischer Datenmodelle und Einführung (abstrakter) Benutzerdatentypen

ORDBMS = RDBMS + OODBMS

Page 4: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Grenzen bei RDB Unzureichende Vielfalt an

Datentypen nur eine Art von Beziehungen

(„gehört zu“) keine Unterstützung komplexer

Datenstrukturen Fehlendes Verhalten Keine Unterstützung von Objekt-

Hierarchien (Vererbung)

Page 5: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Objektorientierte Konzepte Neue Datentypen Komplexe Objekte Vererbung Polymorphismus Speichern von Operationen Benutzerdefinierbare

Zugriffsmethoden

Page 6: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Erweiterungen in SQL:1999 und SQL:2003 (1) Trigger Neue Basisdatentypen:

BOOLEAN,BLOB,CLOB,BIGINT Neue Typkonstruktoren: ROW,

ARRAY,REF, MULTISET Benutzerdefinierte Datentypen

(Distinct-Typ und strukturierte Typen)

Page 7: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Erweiterungen in SQL:1999 und SQL:2003 (2) Typhierarchien (Subtypen) Typisierte Tabellen und Tabellen-

hierarchien (Subtabellen) Typisierte Sichten und

Sichthierarchien (Subsichten) Rekursion Generierte Spalten, Sequenz-

generatoren,Identitätsspalten

Page 8: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

Neue Basisdatentypen

BLOBCLOBBFILE

Page 9: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Large Object (LOB) BLOB (Binary Large Object)

Bilder/Audio Variable Länge bis 4GB

CLOB (Character Large Object) Alphanumerische Zeichenkette Variable Länge bis 4GB

BFILE (Binary File) Lokator auf externe Datei Dateigröße bis zu 4GB

Page 10: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Operationen auf Large Object

EMPTY_BLOB EMPTY_CLOB BFILENAME IS [NOT] NULL

Nicht erlaubt BLOB/CLOB-Attribute als Teil eines

Schlüssels oder in booleschen arith. Ausdrücken (Vergleich)

GROUP BY, ORDER BY

Page 11: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Beispiel LOB-Typen

INSERT INTO MitarbeiterTupelTabelleVALUES ( ‘Billy’,

EMPTY_BLOB(), BFILENAME(‘MITRBEITER_BILDER’, billy.gif’),

EMPTY_CLOB(), BFILENAME(‘MITARBEITER_BEWERBUNG’,’billy.rtf’)

);

EMPTY_BLOB() bzw. EMPTY_CLOB() initialisierenLOB-Lokator (notwenig)

CREATE DIRECTORY MITARBEITER_BILDER AS ‘D:\Image\’ ;

Page 12: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

Benutzerdefinierte Datentypen (UDT)

Distinct – Datentypen

Strukturierte Datentypen (Datentypen mit interner Struktur)

Page 13: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Distinct – Typen(1)

Kopie eines existierten Basistypen mit neuem Namen Wiederverwendung Strenge Typisierung (basiert auf

Namensäquivalenz) Nicht-optionales Schlüsselwort FINAL

schliesst Subtypbildung aus Systemdefinierte Vergleichsoperatoren

basierend auf dem Quelltyp Cast-Operatoren zur Konversion zwischen

Distinct- und Quelltyp

Page 14: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Distinct-Typen(2)

Erzeugen eines Distinct-Typs:

CREATE TYPE Distinct-Typname AS (Quelltyp) FINAL

CREATE TYPE Franken AS DECIMAL(12,2) FINAL;CREATE TYPE Euro AS DECIMAL(12,2) FINAL;

Beispiele:

Page 15: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Operationen auf Distinct-Typen

Distinct-Typname(Quelltypwert)

Erzeugen einer Instanz eines Distinct-Typs:

Franken(1311.69)Euro(170470.13)

Vergleich zweier Distinct-Werte: — Distinct-Typen unterliegen der strengen Typisierung— Zwei Distinct-Werte sind vergleichbar g.d.w. ihre Distinct-

Typen identisch sind— Beispiel: Franken(1000.00) = Euro(1000.00) ergibt

einen Typkonflikt

Beispiele für Distinct-Werte:

Page 16: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Strukturierte Typen Objekttypen mit Attributen und

Methoden• Bilden Typhierarchien (Einfachvererbung)• Defaultwerte und Integritätsbedingungen

nicht unterstütztCREATE TYPE PersonTyp AS (Name VARCHAR(30),Anschrift AdressTyp,Ehepartner REF(PersonTyp),Kinder REF(PersonTyp)ARRAY[10]

)NOT FINAL;METHOD AnzahlKinder RETURNS

INTEGER;

Page 17: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Einkapselung von strukturierten Typen Attribute behandelt wie Methoden

(Funktionen) Vollständige Einkaspelung

• Attrubite nur über Methoden zugreifbar• Sichtbarkeitsstufen: PUBLIC und PRIVATE

Jedes Attribut besitzt Observer – Funktion zum Lesen Mutator – Funktion zum Ändern

Page 18: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Instanz strukturierte Typen Erzeugen einer Instanz mit Default-

Konstruktor: Typname() Initialisierung mittels Mutator oder

überladenen KonstruktorCREATE FUNCTION PersonTyp (n VARCHAR(30)) RETURNS PersonTypBEGIN

DECLARE p PersonTyp;SET p = PersonTyp();SET p.Name = n;RETURN p;

END;

Page 19: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

Typisierte Tabellen und Typisierte Sichten

Page 20: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Typisierte Tabellentyp(1) basiert auf strukturierte Types Instanzen (Zeilen) sind Objekte dieses

Typs

OID A1 ... An

...

...

...

R

Tabellennamen OID-Spalte Spalten(Columns) = Attribute

Zeilen(Row) = ObjekteOIDs sind vomTyp REF(ST)

Attributewerte

Page 21: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Typisierte Tabellentyp(2)

CREATE TABLE Personen OF PersonTyp(

REF IS oid SYSTEM GENERATED,Ehepartner WITH OPTIONS SCOPE Person,Kinder WITH OPTIONS SCOPE Person,

);

Syntax: (Beispiel)

Spaltenoption:

Spaltenname WITH OPTIONS Optionsliste

Option: SCOPE Typisierte Tabelle | DEFAULT Wert | Integritätsbedinung

Page 22: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Typisierte Sichten(1) Analog zu typisierten Tabellen auf

einen strukturierten Typ

Syntax:CREATE VIEW GutBezahlteMitarbeiter OF

MitarbeiterTyp AS(

SELECT * FROM ONLY(Manager), WHERE Gehalt > Franken(10000)

);

Page 23: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Typisierte Sichten(2) Einschränkung

•nur eine Tabelle oder Sicht enthalten•Tabelle bzw. Sicht typisiert,

beschränkter Zugriff auf flache Extension (ONLY)

•Verbundsoperationen und Gruppierung nicht erlaubt

Page 24: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Objektrelationale Erweiterungen in Oracle9i Neue Basistypen(LOB zusätzl. NCLOB,

kein BOOLEAN) Referenztypkonstruktor Benutzerdefinierte Datentypen

Kollektionstypen• Tabellentyp• Variabler Arraytyp (VARRAY)

Objekttypen Objekttabellen Objektsichten (mit Subsichtenbildung)

Page 25: Oberseminar Moderne Datenbanken WS03/04 Objektrelationale Datenbanken Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte.

14.11.2003 Christina Böttger

Objekttypen Drei Typarten

• Objekttypen

• TabellenTyp

• VARRAY-Typen

CREATE TYPE <Typ> [AS OBJECT . . .];

CREATE TYPE <Typ> [AS TABLE . . .];

CREATE TYPE <Typ> [AS VARRAY . . .];