Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Zurück zur ersten Seite objekt-relationale Datenbanken Die objekt-relationale Datenbank ORACLE 9i.

Ähnliche Präsentationen


Präsentation zum Thema: "Zurück zur ersten Seite objekt-relationale Datenbanken Die objekt-relationale Datenbank ORACLE 9i."—  Präsentation transkript:

1 Zurück zur ersten Seite objekt-relationale Datenbanken Die objekt-relationale Datenbank ORACLE 9i

2 Zurück zur ersten Seite Konzepte von Oracle 9i n relationale Datenbank n objektorientierte Zusätze u können genutzt werden u müssen nicht genutzt werden n objektorientierte Erweiterungen von u Struktur- und Tabellendefinitionen u SQL und PL/SQL

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

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

5 Zurück zur ersten Seite Strukturierte Attribute durch eingebettete Objekte 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 type Person_typ as object ( create table personen of person_typ;

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

7 Zurück zur ersten Seite 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 Zurück zur ersten Seite 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), Dr. Franz Gmeiner Panoramastr. 80 88255 Baienfurt 18. 7. 1965

9 Zurück zur ersten Seite Implementierung von Methoden mit PL/SQL

10 Zurück zur ersten Seite n ORDER BY bei zusammengesetztem Typ nicht möglich n Definiere eigene Sortierfunktion n Analog zu Methodendefinition n Zwei Formen: u Map-Funktion u Order-Funktion Methoden zur Sortierung

11 Zurück zur ersten Seite 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 Zurück zur ersten Seite Mehrwertige Attribute durch geschachtelte Tabellen Dr. Franz Gmeiner Panoramastr. 80 88255 Baienfurt 18. 7. 1965 Prof. Sepp Holzer Buchenallee 80 88111 Biergarten 8. 8. 1955 Telefon: 0751/552515 0751/501-9733 Telefon: 0751/55756 0751/501-9734 0171/987654

13 Zurück zur ersten Seite 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 table personen of person_typ nested table telefonliste store as person_telefonnrn;

14 Zurück zur ersten Seite Referenzen auf andere Objekte Anne Holzer Buchenallee 80 88111 Biergarten 18. 7. 1985 Prof. Sepp Holzer Buchenallee 80 88111 Biergarten 8. 8. 1955 Papa Mama

15 Zurück zur ersten Seite Referenzen n Jedes Objekt hat Objektidentifikator n Referenzen beziehen sich auf diese OID n Realisierung von 1:n-Relationen n statt Fremdschlüsseln n Effizienzvorteile bei Richtung von n zu 1

16 Zurück zur ersten Seite 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 Zurück zur ersten Seite Einfügen in Objekttabellen: Konstruktoren insert into personen values (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 Zurück zur ersten Seite 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.


Herunterladen ppt "Zurück zur ersten Seite objekt-relationale Datenbanken Die objekt-relationale Datenbank ORACLE 9i."

Ähnliche Präsentationen


Google-Anzeigen