Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Engelram Achziger Geändert vor über 9 Jahren
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.