49
Karczewski Datenbanken II 1 Objekt-Relationale (OR) Datenbanken Übersicht • Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) • Objekte und Tabellen • OR-Create, -Insert, -Update, -Select • User-Defined Functions (UDFs) und Methoden Literatur O´Neil / O´Neil: Database – Principles, Programming, and Performance, 2nd Edition. Morgan Kaufmann Publishers, 2001.

KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Embed Size (px)

Citation preview

Page 1: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 1

Objekt-Relationale (OR) Datenbanken

Übersicht

• Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) • Objekte und Tabellen • OR-Create, -Insert, -Update, -Select• User-Defined Functions (UDFs) und Methoden

Literatur

O´Neil / O´Neil: Database – Principles, Programming, and Performance, 2nd Edition. Morgan Kaufmann Publishers, 2001.

Page 2: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 2

ORSQL Möglichkeiten

Relationale Tabellendefinitionen werden erweitert durch user defined types:Spalten, die mehr als einen Eintrag besitzen und solche, die eine interne Struktur haben (wie ein Record), sind erlaubt (Verletzung 1NF).Beispiel:

eid ename position dependents

dep_name dep_age

e01 Smith, John Agent Michael J. 9Susan R. 7

e02 Andrews, David Superintendent David M. Jr. 10

e03 Jones, Franklin Agent Andrew K. 11Mark W. 9Louisa M. 4

Page 3: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 3

Objekte und Tabellen

Ein Objekt-Typ besitzt Attribute unterschiedlicher Typen, analog zu Spalten einer Tabelle.

Beispiel (Oracle):

create type name_t as object -- „Create Object Type“(

lname varchar(30), -- last namefname varchar(30), -- first namemi char(1) -- middle initial

);/ -- SQL*Plus

Page 4: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 4

Nach der Definition eines Typs (mit „create type“) kann man diesen so definierten Typ wie ein gewöhnliches Attribut benutzen.

Beispiel (Oracle):

create table teachers -- „Create Table Scheme“(

tid int, -- identifiertname name_t, -- object type defined aboveroom int -- room number

);

Bis hierher existieren noch keine Objekte vom Typ name_t.

Objekte und Tabellen

Page 5: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 5

Einträge in die zuvor definierte Tabelle sind wie in SQL durch den insert-Befehl möglich. Insert wird erweitert um die Möglichkeit, Objekt-Typen zu integrieren. Dies geschieht durch Benutzung eines Objekt-Konstruktors in dem insert-Befehl.

Beispiel (Oracle):

insert into teachers values (

1234, name_t(’Einstein’, ’Albert’, ’E’), 120

);

Objekt-Konstruktor

Objekte und Tabellen

Page 6: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 6

Nach Ausführung des insert-Befehls liegt folgender Tabelleninhalt vor:

Beispiel (Oracle):

tid

1234

tnamelname fname miEinstein Albert E

room

120

Objekte und Tabellen

Page 7: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 7

Die Punkt-Notation wird konsequent genutzt, um Werte des Objekt-Typs zu nutzen:

select t.tid from teachers t where t.room = 120; -- normal SQL-select

select t.tid, t.tname.fname, t.tname.lnamefrom teachers twhere t.room = 123; -- extended SQL

select tid, tname.fname, tname.lnamefrom teacherswhere room = 123; -- doesn´t work

Der alias t muss verwendet werden, damit die mehrfache Punkt-Notation funktioniert.

Objekte und Tabellen

Page 8: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 8

Man kann die Objekt-Typ-Definition innerhalb einer anderen Objekt-Typ-Definition verwenden.

Beispiel:

create type person_t as object (

ssno int,pname name_t, -- must be defined firstage int

);/

person_t ist abhängig von name_t, d.h. man kann name_t nicht löschen bevor person_t gelöscht ist.

Objekte und Tabellen

Page 9: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 9

Eine Tabelle wird Objekt-Tabelle genannt, wenn ihre Zeilen vom Objekt-Typ sind. Das bedeutet: Jede Zeile enthält ein Objekt dieses Typs.

Beispiel:

create table people of person_t(

primary key(ssno));

Objekte und Tabellen

Page 10: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 10

Beispiel-Tabelle people:

nameless top-levelcolumn (Zeilen-Objekte)

named columns (alsoknown as top-levelattributes)

attributes within pname

row 1

row 3

row 2

ssno

123550123

023894455

245882134

pname

pname.lname pname.fname pname.mi

Sanchez Jose F

Delaney Patrick X

March Jacquelin E

age

23

30

59

people

row objectscolumn objectsselect *

select value(p)

Objekte und Tabellen

Page 11: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 11

select p.age from people p where p.ssno = 123550123 (wie bei SQL)

select p.pname from people p where p.age > 25Spalten werden mit vorangestelltem Typ ausgegeben, z.B. name_t(´Sanchez´, ´Jose´, ´F´)

select * from people p where p.age > 25Liefert die top-level Attribute (row objects)

ssno pname(lname,fname,mi) age--------- ------------------------------- ----245882134 name_t(´Delaney´,´Patrick´,´X´) 59023894455 name_t(´Sanchez´,´Jose´,´F´) 30

Objekte und Tabellen (select-statements)

Page 12: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 12

select value(p) from people p where age > 25Die Zeilen-Objekte werden ausgegeben (nameless top level column). Value(p) ist nicht zu verwechseln mit VALUES im insert-Befehl.

Value(p) (ssno, pname(lname,fname,mi), age)-------- ------ ---------------------- ----person_t (245882134, name_t(´Delaney´,´Patrick´,´X´), 59)person_t (023894455, name_t(´Sanchez´,´Jose´,´F´), 30)

Person_t ist der Objekt-Konstruktur, mit dem die Tabelle definiert wurde. Das Ergebnis ist ein anderes als das beim „select *“-Befehl.

Durch den Objekt-Konstruktor gibt es eine (neue) Objekt-Sicht auf die Zeilen der Tabelle.

Objekte und Tabellen (select-statements)

Page 13: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 13

select value(p) from people p where p.pname = name_t(´Sanchez´,´Jose´,´F´)

Der Objekt-Konstruktor „name_t(´Sanchez´,´Jose´,´F´)“ kann auch innerhalb der where-Klausel verwendet werden.

Value(p) (ssno, pname(lname,fname,mi), age)-------- ------ ---------------------- ----person_t (023894455, name_t(´Sanchez´,´Jose´,´F´), 30)

Objekte und Tabellen (select-statements)

Page 14: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 14

select p.pname, p.age from people pwhere p.pname.fname like ‘Pat%‘ and p.age > 50;

“Nested dot”-Notation ist erlaubt. Der Vorname startet mit Pat und das Alter ist größer als 50.

pname(lname,fname,mi) age--------------------- ---name_t(´Delaney´,´Patrick´,´X´) 59

Objekte und Tabellen (select-statements)

Page 15: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 15

Wichtig: Man muss immer den vollqualifizierten Namen mit einem Alias verwenden, um auf strukturierte Attribute zuzugreifen.

select pname.fname from peoplepname.fname ist kein Top Level-Attribut -> Der Befehl funktioniert so nicht.

select people.pname.fname from peopleAuch hier muss ein Alias benutzt werden. Das Voranstellen des Tabellennamen nutzt nichts. -> Der Befehl funktioniert so nicht.

select p.pname.fname from people p;Korrekte Alternative!

Objekte und Tabellen (select-statements)

Page 16: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 16

create table scientists of name_t(primary key (lname));Generierung der Tabelle mit Namen “scientists” des zuvor definierten Objekt-Typs “name_t”.

insert into scientists select p.pname from people p;Insert mit Einfügen mehrerer Zeilen durch Selektion aller “pnames” von “people”. In diesem Fall werden alle Namen aus people eingefügt.

insert into scientists values (‘Einstein’, ‘Albert’, ‘E’);Direktes Einfügen einer Zeile mit dem insert-Befehl.

Objekte und Tabellen (create und insert)

Page 17: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 17

update scientists s set s = name_t(‘Eisenstein’, ‘Andrew’, ‘F’) where values(s) = name_t(‘Einstein’, ‘Albert’, ‘E’);Update einer Zeile mit Hilfe des Objekt-Konstruktors name_t.

insert into people values (123441998, name_t(’Einstein’, ’Albert’, ’E’), 100);Einfügen einer Zeile in “scientists” mit direkten Werten. Der Objekt-Konstruktor name_t ist nötig bei dem strukturierten Attribut.

insert into people values (321341223, null, null);insert into people (ssno) values (321341223);Zwei äquivalente Befehle, um unvollständige Zeilen mit NULL-Werten einzugeben. “pname” und “age” müssen optional sein.

Objects and Tables (insert)

Page 18: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 18

update people p set p.pname = name_t(‘Gould’, ‘Ben’, null) where ssno = 321341223;Update einer Zeile mit NULL-Werten. Der “middle initial” bleibt NULL.

update people p set p.pname.mi = ‘C’ where ssno = 321341223; Update des “middle initial” der vorherigen Änderung.

update people p set p = Person_t(332341223, name_t(‘Gould’, ‘Glen’, ‘A’), 55)

where ssno = 321341223; Update einer Person mit dem “row object”-Konstruktor. Auch der primary key ssno darf verändert werden.

Objects and Tables (update)

Page 19: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 19

Relational / Objekt-Relational

Produkt: Nummer Bezeichnung

Funktion

110222 Tee-Service

Gebrauch

106222 Kanne Gebrauch

201312 Schale Deko

Page 20: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 20

Relational / Objekt-Relational

Markt: Bezeichnung Standort Kategorie

Internationaler Töpfermarkt

Krefeld Töpfermarkt

Töpfermarkt Sommerhausen

Sommerhausen

Töpfermarkt

Internationaler Töpfermarkt

Hanau Töpfermarkt

Page 21: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 21

Relational / Objekt-Relational

WAA: Nummer Bezeichnung Standort

110222 Internationaler Töpfermarkt

Krefeld

106222 Internationaler Töpfermarkt

Krefeld

201312 Töpfermarkt Sommerhausen

Sommerhausen

201312 Internationaler Töpfermarkt

Hanau

Page 22: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 22

Beispiel ORDB

Markt: Bezeichnung Standort Kategorie Marktteilnehmer

Nummer Bezeichnung Funktion

Internationaler Töpfermarkt

Krefeld Töpfer-markt

110222 Tee-Service Gebrauch

106222 Kanne Gebrauch

Töpfermarkt Sommerhausen

Sommer-hausen

Töpfer-markt

201312 Schale Deko

Internationaler Töpfermarkt

Hanau Töpfer-markt

201312 Schale Deko

Page 23: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 23

Beispiel ORDB

Markt

BezeichnungStandortKategorieCollection of Produkt_T

Page 24: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 24

Beispiel ORDB

Page 25: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 25

Beispiel ORDB

Page 26: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 26

Beispiel ORDB

Page 27: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 27

Beispiel ORDB

Page 28: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 28

Beispiel ORDB

Page 29: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 29

Beispiel ORDB

Page 30: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 30

Beispiel ORDB

Page 31: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 31

Beispiel ORDB

Page 32: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 32

Beispiel ORDB

Page 33: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 33

Beispiel ORDB

Page 34: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 34

User Defined Functions (UDF) können zur Bindung von Funktionen an Objekte genutzt werden (Methoden-Begriff).

Die Definition von UDFs erfolgt in zwei Schritten:1. Definition des Funktionskopfes (function header)2. Definition des Funktionsrumpfes (function body)

Der function header wird zusammen mit den Attributen des Objekttyps definiert.

Der function body wird definiert mit einem speziellen Kommando mit einer Referenz zum header.

User Defined Functions

Page 35: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 35

Beispiel (Personen und ihre Mitarbeiter (dependents)):

create type name_t as object -- „Create Object Type“(

lname varchar(30), -- last namemi char(1), -- middle initialfname varchar(30)-- first name

);/

create type person_t as object (

ssno int,pname name_t, -- must be defined firstage int

);/

create type depPerson_t as table of person_t;/

User Defined Functions

Page 36: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 36

Example (Function Header):

create type Employee_t as object( ENR int,

Person person_t,depPerson depPerson_t,member function NumberOfDepreturn integer,member function BigBossreturn varchar

);/

Die function header (auch mehrere möglich) werden hinter allen Attribut-Definitionen definiert. Die Schlüsselwörter “member function” und “return” mit entsprechendem Datentyp sind notwendig.

User Defined Functions

Page 37: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 37

Beispiel (Funktionsrumpf):

create type body Employee_t asmember function NumberOfDepreturn integer isbegin

return self.depPerson.count;end NumberOfDep;

member function BigBossreturn varchar isbegin

if self.depPerson.count > 2then return 'Big Boss';else return 'Boss';end if;

end BigBoss;end;/

User Defined Functions

Der Rumpf der Funktionen erhält den selben Namen wie der zuvor definierte Objekt-Typ (Verbindung zwischen Kopf und Rumpf).

Der Name und return-Typ muss hier wiederholt werden.

Innerhalb “begin” und “end” wird die Funktion definiert.

Mindestens ein return-Befehl ist nötig.

Page 38: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 38

Beispiel (Tabellen-Definition):

create table Employee of Employee_t(

primary key (ENR)) nested table depPerson store as dep_tab;

User Defined Functions

Diese Tabellendefinition realisiert die gewünschte Tabelle.

Der Primärschlüssel kann erst hier definiert werden.

Die “nested table”-Klausel erlaubt die Nutzung von Tabellen innerhalb der Tabelle.

Möglich sind auch mehrere “nested tables” innerhalb einer Tabelle.

Page 39: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 39

Beispiel (Insertion):

insert into Employee values (1, person_t(11, name_t('Josef', 'R', 'Ewing'), 59), depPerson_T(person_t(33, name_t('Franz', 'X', 'Nonsense'), 33), person_t(44, name_t('Uschi', 'K', 'Glas'), 48), person_t(55, name_t('Mika', 'L', 'Most'), 52)));

insert into Employee values (2, person_t(22, name_t('Karla', 'M', 'Hut'), 34), depPerson_T(person_t(66, name_t('Hans', 'L', 'Moser'), 72), person_t(77, name_t('Paul', 'A', 'Popp'), 41)));

User Defined Functions

Das Einfügen geschieht wie bisher. Die UDFs ändern das bisherige Vorgehen nicht!

Page 40: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 40

Beispiel (Selection):

select ENR, E.NumberOfDep() from Employee E;

ENR E.NUMBEROFDEP()---------- --------------- 1 3 2 2

User Defined Functions

Beispiel (Selection):

select ENR, E.BigBoss() from Employee E;

ENR E.BIGBOSS()---------- ------------

1 Big Boss2 Boss

Der Resultat-Wert des Funktionsaufrufs wird als eigene Spalte ausgegeben.Die Klammern müssen angegeben werden.Der alias ist Pflicht!

Page 41: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 41

Beispiel ORDB (UDF)

Page 42: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 42

Beispiel ORDB (UDF)

Page 43: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 43

Beispiel ORDB (Ref)

Produkt

Nummer: intBezeichnung: StringFunktion: StringSubprodukt: collection of Produkt

anzsub: int… weitere Methoden zur Stückliste

Page 44: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 44

Beispiel ORDB (Ref)

Page 45: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 45

Beispiel ORDB (Ref)

Page 46: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 46

Beispiel ORDB (Ref)

Page 47: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 47

Beispiel ORDB (Ref)

Page 48: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 48

Beispiel ORDB (Ref)

Page 49: KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen

Karczewski Datenbanken II 49

Beispiel ORDB (Ref)