5. Objekt-relationale Systeme 5.1. Erweiterungen des Relationalen Modells 5.2. SQL-Erweiterungen 5.3. MM-DB Beschränkungen des Relationalen Modells • • • • NF1: Atomare Attribute nicht erweiterbares Typkonzept keine typspezifischen Operationen keine Vererbung Als Einschränkung besonders empfunden bei • Mengenwertigen Attributen • sicherheitsrelevanten komplexen Operationen auf mehreren Attributen eines Datensatzes • Nicht-atomaren Daten mit such-relevanter Struktur (MM-Daten) (c) schmiedecke 06 DB 14 - ORDBMS 2 Objektrelationale Erweiterungen • NF2 – Non First Normal Form – – – – Mengenwertige Attribute LOBs Tabellenwertigen Attribute Typdefinition • ORDB – Objekt-relationale Datenbank – – – – Typhierarchie und Vererbung Objektidentität Operationsdefinition (Polymorphie) (c) schmiedecke 06 DB 14 - ORDBMS 3 Wieso objekt-relational? • • • • Wichtige Konzepte bleiben erhalten: Datenunabhängigkeit Abfragekalkül Tabelle als Grundkonzept • Stonebraker-Matrix (1996) – Versuch einer Kategorisierung • atomare Daten komplexe Daten Anfragen RDB ORDB keine Anfragen Filesystem OODB so nicht zutreffend: in der Praxis starke Durchdringung OODB-ORDB (c) schmiedecke 06 DB 14 - ORDBMS 4 State of the Art • • • • Normungsprojekt SQL-3 zu ambitioniert SQL-1999 große Teilmenge von SQL-3 enthält mehrere OR-Stufen faktische Standardisierung verzögert sich durch viele proprietäre Erweiterungen von SQL-92 • (SQL-4 ist in Arbeit) (c) schmiedecke 06 DB 14 - ORDBMS 5 SQL-Erweiterungen (DDL) !" & ' " ( )&" "* + ! #$ # %" & " ! Beispiele im Folgenden aus http://www.dbai.tuwien.ac.at/education/dbs/folien/Kapitel14.pdf (c) schmiedecke 06 DB 14 - ORDBMS 6 LOBs , " - $ ! & * 1 ' - $ 2 ! + & * .' / / + - 6 ( - 96 " .' / / % !' 0 " %$ / / !0 . 3 0! 0 & * .4 ' 5 76 7 & * 50 $ " 79 (c) schmiedecke 06 " 6 8 2 ! & *# DB 14 - ORDBMS " 7 LOB-Beispiel ) & ) 9 90 5 !0 :; < . . = 6<= .= 6:= .= 6>=. 0 @ 6+ ? . 6 < . AB3 C & ! B; (c) schmiedecke 06 & 8 B; C DB 14 - ORDBMS 8 UDT (User Defined Types) , " - D (' ' " 2E %2 " "% ! $ ! "& / # - " ' " % ! % (c) schmiedecke 06 ! ! ! / DB 14 - ORDBMS 9 Beispiel wertbasierter Typ 6 F F$, 2, 96 6 9 + 9 ) 9 9 (c) schmiedecke 06 G)F9 ! 2$F6, :.<C ) & , 9. , 9. , 9. 9 !C DB 14 - ORDBMS 10 Listen-Typen (für nicht-atomare Attribute) F 0 5 H ! ! " ' " / - ) 2 " (c) schmiedecke 06 0 2! 3 " / DB 14 - ORDBMS 11 Objekt-Typen (für nicht-atomare Attribute) 2 " 0 "*& / ! ( - I" )*& ' / /9 5 )*& 5 )*& % % ! ")*& / &" - 2 (c) schmiedecke 06 & " 2 " ! " . ! JF DB 14 - ORDBMS 12 Beispiel Listen- und Objekttypen 6F F F) 6F G)F) & , F@+ !. ) & F@) & !. 9 $F6, :.<. $ 0$ C 6F F 2 F) 6F G)F) & F @) & !C 6F F 9 90 20 5 (c) schmiedecke 06 ! 2 I F6 ! F6 F) 6F G)F2 " ! 2 I 9# F . + 6K <;. 9# F . ) & ) & !C DB 14 - ORDBMS 13 Referenzen, Pfadausdrücke & ' - 1 - D - + 0 9 % ' ! 2 " " - )&" & & ' ' 5 " " / 1 & & !J @ 0" * ' 5 + % / & ' ( ' "* - 0 %H 5 ' ! 5 " & (c) schmiedecke 06 ' " / & . 5 (" " (" ! .' / / / / DB 14 - ORDBMS + /9 0 14 Vererbung , " - F 0! 8 - $ # ! !/ (c) schmiedecke 06 ! ( 5 DB 14 - ORDBMS 0 ! " ! " 15 Beispiel Vererbung 6 F F G)F ) 9 , 9. 90 + 6K , 92 9 , F4 C ! 2 I F6 <; ProfessorenTyp extends AngestelltenTyp ! ! 2 6 F F G)F ! @ + 6K <;. F@) & ! 2 6 F F G)F) & 6K <. 0 , 9 4C (c) schmiedecke 06 ! 4C DB 14 - ORDBMS 16 Operationen , " - 2 ") " - F 0 !' 2E " " ! ' /F FK $ + ! - F " & (c) schmiedecke 06 !! & " 2E 5 & &" & &" 2E " " DB 14 - ORDBMS 17 Methoden-Beispiel 6F F ) 9 90 F) 6F G)F) & ! 2 I F6 9# F . + 6K <;. 6K <. 0 90 . F K $9 F # 929# F . F K $@#96 , 9 F # 929# F C 6 F F, 92 96F F K $ F # 929# @ ) & ! F # 92F F6 L @ HKF F) 9 7 2F @/) 9C (c) schmiedecke 06 DB 14 - ORDBMS F 18 Methoden-Beispiel 6F F 2 F) 6F G)F F @ 6F F 90 F@ ! !C !! + 6K !. ) & ), & G3FG. !. !C 2F F6 0 / + ) 0 (c) schmiedecke 06 @ 00 @ 1 !! C 2E %MNNN DB 14 - ORDBMS " 19 Typisierte Tabellen Idee • Tabellentyp definerbar – Mehrere Tabellen dieses Typs erzeugbar (OF) • Tabellenhierarchie – Tabelle aus Tabelle ableitbar (UNDER) • Typenhierarchie – Untertypen ableitbar (UNDER) Problem • Tabellenhierarchie und Datentyphierarchie parallel (c) schmiedecke 06 DB 14 - ORDBMS 20 Typisierte Tabellen - Beispiel CREATE TYPE movie AS ( title VARCHAR, genre VARCHAR, length NUMBER) INSTANTIABLE REF IS SYSTEM GENERATED; CREATE TYPE dvd UNDER movie AS ( rental_price NUMBER, extras FeatureListType) INSTANTIABLE Welche Attribute und Constraints hat short_dvds? CREATE TABLE short_movies OF movie ( length WITH OPTIONS CONSTRAINT c_short CHECK (length<60) ); CREATE TABLE short_dvds OF dvd UNDER short_movies ( rental_price WITH OPTIONS CHECK c_short_price (CHECK (rental_price < 2.00) ); (c) schmiedecke 06 Beispiel aus Melton, Advances SQL:1999, San Francisco 2003 DB 14 - ORDBMS 21 Externe Daten / Datalinks • Große Datenmenge liegen of auf zentralen Servern • Daten unter die Kontrolle eines DBMS stellen: Beschreibungsdaten hinzufügen, als Suchkriterien nutzen • Daten auf dem externe Server belassen, dort verwalten, Struktur nutzen • Typ DATALINK • enthält Kontrolloptionen wie Lese-Schreibrechte, Recovery-vorgaben etc (c) schmiedecke 06 DB 14 - ORDBMS 22 Externe Typen / Data Extenders • Große Dateneinheiten sind of strukturiert – LOB wird dem nicht gerecht • Typ / Struktur außerhalb von SQL wohldefiniert – Beispiel Bildformate • Daten und Struktur unter die Kontrolle eines DBMS stellen – oft verbunden mit externer Speicherung • "Plugin"-Technik für Datentypen (nicht SQL-1999): DB2 – Data Extenders Oracle – Data Cartridges Illustra – Data Blades • Besonders wichtig für Multi-Media-Datenbanken – Typen wie image, video, audio, graphics, text... – mit der Fähigkeit, externe Standardformate zu lesen (Headerinfo) und zu speichern (c) schmiedecke 06 DB 14 - ORDBMS 23 Extern Heterogene System Quelle: (c) http://wwwdvs.informatik.uni-kl.de/courses/DigBib/SS2004/Vorlesungsunterlagen/ schmiedecke 06 DB 14 - ORDBMS DigBib.Kapitel.04.Objekt-relationale_und_Multimediale_DBS.pdf 24 ! " # ! &' &( $% $ ( &) $ ) *** + ,. ! ! " !