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, ,... Huber, ,... Müller, ,... Meier, ,... 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 Baienfurt Prof. Sepp Holzer Buchenallee Biergarten

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 Baienfurt Studenten Sarah Heimer Hirschgraben Ravensb 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 Baienfurt

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 Baienfurt Prof. Sepp Holzer Buchenallee Biergarten Telefon: 0751/ / Telefon: 0751/ / /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 Biergarten Prof. Sepp Holzer Buchenallee Biergarten 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'), ' ', 'm', telefontab('0751/552515', '0751/ ', '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