Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Oberseminar Moderne Datenbanken WS03/04

Ähnliche Präsentationen


Präsentation zum Thema: "Oberseminar Moderne Datenbanken WS03/04"—  Präsentation transkript:

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

2 Gliederung Einführung Übersicht SQL:1999 & SQL:2003
Allgemeine Konzepte Large Object Benutzerdefinierte Typen Typisierte Tabellen/Sichten OO-Konzepte in Oracle9i Christina Böttger

3 Definition ORDBMS = RDBMS + OODBMS
ORDBMS ist Erweiterung relationaler DBMS mit objektorientieren Konzepten Grundkonstrukte semantischer Datenmodelle und Einführung (abstrakter) Benutzerdatentypen ORDBMS = RDBMS + OODBMS Christina Böttger

4 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) Christina Böttger

5 Objektorientierte Konzepte
Neue Datentypen Komplexe Objekte Vererbung Polymorphismus Speichern von Operationen Benutzerdefinierbare Zugriffsmethoden Christina Böttger

6 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) Christina Böttger

7 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 Christina Böttger

8 Neue Basisdatentypen BLOB CLOB BFILE

9 Large Object (LOB) BLOB (Binary Large Object)
Bilder/Audio Variable Länge bis 4GB CLOB (Character Large Object) Alphanumerische Zeichenkette BFILE (Binary File) Lokator auf externe Datei Dateigröße bis zu 4GB Christina Böttger

10 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 Christina Böttger

11 Beispiel LOB-Typen EMPTY_BLOB() bzw. EMPTY_CLOB() initialisieren
CREATE DIRECTORY MITARBEITER_BILDER AS ‘D:\Image\’ ; INSERT INTO MitarbeiterTupelTabelle VALUES ( ‘Billy’, EMPTY_BLOB(), BFILENAME(‘MITRBEITER_BILDER’, billy.gif’), EMPTY_CLOB(), BFILENAME(‘MITARBEITER_BEWERBUNG’,’billy.rtf’) ); EMPTY_BLOB() bzw. EMPTY_CLOB() initialisieren LOB-Lokator (notwenig) Christina Böttger

12 Benutzerdefinierte Datentypen (UDT)
Distinct – Datentypen Strukturierte Datentypen (Datentypen mit interner Struktur)

13 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 Christina Böttger

14 Distinct-Typen(2) Erzeugen eines Distinct-Typs:
SQL:1999 und SQL:2003 Distinct-Typen(2) Erzeugen eines Distinct-Typs: CREATE TYPE Distinct-Typname AS (Quelltyp) FINAL Beispiele: CREATE TYPE Franken AS DECIMAL(12,2) FINAL; CREATE TYPE Euro AS DECIMAL(12,2) FINAL; test Christina Böttger

15 Operationen auf Distinct-Typen
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( ) = Euro( ) ergibt einen Typkonflikt Erzeugen einer Instanz eines Distinct-Typs: Distinct-Typname(Quelltypwert) Franken( ) Euro( ) Beispiele für Distinct-Werte: Christina Böttger

16 Strukturierte Typen Objekttypen mit Attributen und Methoden
SQL:1999 und SQL:2003 Strukturierte Typen Objekttypen mit Attributen und Methoden Bilden Typhierarchien (Einfachvererbung) Defaultwerte und Integritätsbedingungen nicht unterstützt CREATE TYPE PersonTyp AS ( Name VARCHAR(30), Anschrift AdressTyp, Ehepartner REF(PersonTyp), Kinder REF(PersonTyp)ARRAY[10] )NOT FINAL; METHOD AnzahlKinder RETURNS INTEGER; Datentypen mit interner Struktur Christina Böttger

17 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 Christina Böttger

18 Instanz strukturierte Typen
Erzeugen einer Instanz mit Default-Konstruktor: Typname() Initialisierung mittels Mutator oder überladenen Konstruktor CREATE FUNCTION PersonTyp (n VARCHAR(30)) RETURNS PersonTyp BEGIN DECLARE p PersonTyp; SET p = PersonTyp(); SET p.Name = n; RETURN p; END; Christina Böttger

19 Typisierte Tabellen und Typisierte Sichten

20 Typisierte Tabellentyp(1)
basiert auf strukturierte Types Instanzen (Zeilen) sind Objekte dieses Typs Tabellennamen OID-Spalte Spalten(Columns) = Attribute R OID A1 ... An OIDs sind vom Typ REF(ST) Zeilen(Row) = Objekte Attributewerte Christina Böttger

21 Typisierte Tabellentyp(2)
Syntax: (Beispiel) CREATE TABLE Personen OF PersonTyp ( REF IS oid SYSTEM GENERATED, Ehepartner WITH OPTIONS SCOPE Person, Kinder WITH OPTIONS SCOPE Person, ); Spaltenoption: Spaltenname WITH OPTIONS Optionsliste Option: SCOPE Typisierte Tabelle | DEFAULT Wert | Integritätsbedinung Christina Böttger

22 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) ); Christina Böttger

23 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 Christina Böttger

24 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) Christina Böttger

25 Objekttypen Drei Typarten Objekttypen TabellenTyp VARRAY-Typen
CREATE TYPE <Typ> [AS OBJECT . . .]; CREATE TYPE <Typ> [AS TABLE . . .]; CREATE TYPE <Typ> [AS VARRAY . . .]; Christina Böttger


Herunterladen ppt "Oberseminar Moderne Datenbanken WS03/04"

Ähnliche Präsentationen


Google-Anzeigen