1 / 18

objekt-relationale Datenbanken

objekt-relationale Datenbanken. Die objekt-relationale Datenbank ORACLE 9i. Konzepte von Oracle 9i. relationale Datenbank objektorientierte Zusätze können genutzt werden müssen nicht genutzt werden objektorientierte Erweiterungen von Struktur- und Tabellendefinitionen SQL und PL/SQL.

Download Presentation

objekt-relationale Datenbanken

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. objekt-relationale Datenbanken Die objekt-relationale Datenbank ORACLE 9i

  2. Konzepte von Oracle 9i • relationale Datenbank • objektorientierte Zusätze • können genutzt werden • müssen nicht genutzt werden • objektorientierte Erweiterungen von • Struktur- und Tabellendefinitionen • SQL und PL/SQL

  3. Objekt-Tabellen statt Tupel-Tabellen Tupel-Tabelle Personen Objekt-Tabelle Personen Meier, 1.5.60, ... Huber, 11.5.69, ... Müller, 1.12.60, ... Meier, 7.5.80, ... Trennung von Strukturdefinition und Tabellendefinition als Objektmenge statt Tupelmenge Personen_typ: Name, Geburtsdatum, ...

  4. Aggregation: eingebettete Objekte Dr. Franz Gmeiner Panoramastr. 80 88255 Baienfurt 18. 7. 1965 Prof. Sepp Holzer Buchenallee 80 88111 Biergarten 8. 8. 1955

  5. Strukturierte Attribute durch eingebettete Objekte create type Person_typ as object ( create type Name_typ as object (titel varchar2(10), vorname varchar2(50), nachname varchar2(50)); create type adress_typ as object (strasse varchar2(50), hausnr varchar2(5), plz char(5), ort varchar2(50)); create table personen of person_typ;

  6. Dr. Franz Gmeiner Panoramastr. 80 88255 Baienfurt 18. 7. 1965 Studenten 12345 Hirschgraben 8 88212 Ravensb. AI Sarah Heimer 18. 4. 1980 Vererbung, Klassenhierarchien Personen

  7. Unterklassen create type person_typ as object (pname name_typ, . . . ) not final; create type student_typ under person_typ (Studiengang varchar(3), Matrikelnummer integer) not final; create type hiwi_typ under student_typ (Beginn date, Ende date, Wochenstd integer, Aufgabe varchar(100)); create table personen of person_typ; Hier dürfen auch Studenten und Hiwis eingetragen werden

  8. Methoden Zu Objekt-typ gehören auch Methoden, z. B. create type person_typ as object (pname name_typ, adresse adress_typ, gebdat date, geschlecht char(1), Panoramastr. 80 88255 Baienfurt Dr. Franz Gmeiner 18. 7. 1965

  9. Implementierung von Methoden mit PL/SQL

  10. Methoden zur Sortierung • ORDER BY bei zusammengesetztem Typ nicht möglich • Definiere eigene Sortierfunktion • Analog zu Methodendefinition • Zwei Formen: • Map-Funktion • Order-Funktion

  11. Beispiel Map-Funktion create type name_typ as object (titel varchar2(10), vorname varchar2(50), nachname varchar2(50), map member function namensort return varchar2); create type body name_typ as map member function namensort return varchar2 is begin return nachname || vorname; end namensort; end name_typ;

  12. Mehrwertige Attribute durch geschachtelte Tabellen Dr. Franz Gmeiner Panoramastr. 80 88255 Baienfurt Telefon: 0751/552515 0751/501-9733 18. 7. 1965 Prof. Sepp Holzer Buchenallee 80 88111 Biergarten Telefon: 0751/55756 0751/501-97340171/987654 8. 8. 1955

  13. Beispiel: mehrwertige Attribute create type telefonarray as varray(5) of varchar2(30); -- maximal 5 Telefonnummern pro Person oder create type person_typ as object (pname name_typ, adresse adress_typ, gebdat date, geschlecht char(1), telefonliste telefonarray, member function alter_jahre return integer); create tablepersonenofperson_typ nested tabletelefonliste store asperson_telefonnrn;

  14. Referenzen auf andere Objekte Anne Holzer Buchenallee 80 88111 Biergarten Papa Mama 18. 7. 1985 Prof. Sepp Holzer Buchenallee 80 88111 Biergarten 8. 8. 1955

  15. Referenzen • Jedes Objekt hat Objektidentifikator • Referenzen beziehen sich auf diese OID • Realisierung von 1:n-Relationen • statt Fremdschlüsseln • Effizienzvorteile bei Richtung von n zu 1

  16. Beispiel für Referenzen create type person_typ; -- Vorwärtsdeklaration create type person_typ as object (pname name_typ, adresse adress_typ, gebdat date, geschlecht char(1), telefonliste telefonarray, ref_vater ref person_typ, ref_mutter ref person_typ, member function alter_jahre return integer, pragma restrict_references (alter_jahre, wnps, wnds));

  17. Einfügen in Objekttabellen:Konstruktoren insert intopersonenvalues (person_typ(name_typ('Dr.', 'Martin', 'Hulin'), adress_typ ('Panoramastrasse', '80', '88255', 'Baienfurt'), '18.10.58', 'm', telefontab('0751/552515', '0751/501-9733', '0171/987654'), NULL, NULL);

  18. SELECT über Objekte Select p.adresse.ort from personen p where p.name.titel = 'Prof.' p ist Variable für Objekte der Klasse Person_typ.

More Related