oberseminar moderne datenbanken ws03 04 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Oberseminar Moderne Datenbanken WS03/04 PowerPoint Presentation
Download Presentation
Oberseminar Moderne Datenbanken WS03/04

Loading in 2 Seconds...

  share
play fullscreen
1 / 25
Download Presentation

Oberseminar Moderne Datenbanken WS03/04 - PowerPoint PPT Presentation

samson-meyers
99 Views
Download Presentation

Oberseminar Moderne Datenbanken WS03/04

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  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 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 • Variable Länge bis 4GB • 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 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: CREATE TYPE Distinct-Typname AS (Quelltyp) FINAL Beispiele: CREATE TYPE Franken AS DECIMAL(12,2)FINAL; CREATE TYPE Euro AS DECIMAL(12,2)FINAL; 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(1000.00) = Euro(1000.00) ergibt einen Typkonflikt Erzeugen einer Instanz eines Distinct-Typs: Distinct-Typname(Quelltypwert) Franken(1311.69) Euro(170470.13) Beispiele für Distinct-Werte: Christina Böttger

  16. Strukturierte Typen • Objekttypen mit Attributen und Methoden • Bilden Typhierarchien (Einfachvererbung) • Defaultwerte und Integritätsbedingungen nicht unterstützt CREATETYPE PersonTyp AS( NameVARCHAR(30), Anschrift AdressTyp, EhepartnerREF(PersonTyp), Kinder REF(PersonTyp)ARRAY[10] )NOT FINAL; METHODAnzahlKinderRETURNS INTEGER; 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 CREATEFUNCTION PersonTyp (n VARCHAR(30)) RETURNSPersonTyp BEGIN DECLAREp PersonTyp; SETp = PersonTyp(); SETp.Name = n; RETURNp; END; Christina Böttger

  19. Typisierte Tabellen und Typisierte Sichten

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

  21. Typisierte Tabellentyp(2) Syntax: (Beispiel) CREATETABLE Personen OF PersonTyp ( REF ISoidSYSTEM GENERATED, EhepartnerWITH OPTIONS SCOPEPerson, KinderWITH OPTIONS SCOPEPerson, ); Christina Böttger

  22. Typisierte Sichten(1) • Analog zu typisierten Tabellen auf einen strukturierten Typ • Syntax: CREATEVIEW 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