1 / 25

Oberseminar Moderne Datenbanken WS03/04

Oberseminar Moderne Datenbanken WS03/04. Objektrelationale Datenbanken. Erweiterungsmöglichkeiten von relationalen Datenbanken um objektorientierte Konzepte. Gliederung. Einführung Übersicht SQL:1999 & SQL:2003 Allgemeine Konzepte Large Object Benutzerdefinierte Typen

Download Presentation

Oberseminar Moderne Datenbanken WS03/04

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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

More Related