next up previous

6.5.2 SQL-92 Erweiterungen bei Verbunden:

SQL-92

6.5.3 SQL3

SQL3 Beispiel:

CREATE OBJECT TYPE Person_adt
WITH OID NOT VISIBLE
(
PUBLIC Ausweisnr INTEGER PRIMARY KEY
PUBLIC Name VARCHAR2(30)
PRIVATE Gebdatum DATE
PUBLIC Alter INTEGER VIRTUAL
GET WITH Ermittle_Alter CHECK(VALUE.Alter > 0)
PUBLIC Vater Person_adt

PUBLIC ACTOR FUNCTION Ermittle_Alter (:p Person_adt)
RETURNS INTEGER;
RETURN (CURRENT_DATE - :p.Gebdatum)

PUBLIC ACTOR FUNKTION Einkommen (:p Person_adt)
RETURNS INTEGER;
RETURN 0

.....
);
CREATE OBJECT TYPE Student_adt
WITH OID NOT VISIBLE UNDER Person_adt
(
PUBLIC Matrnr INTEGER
PUBLIC Fach VARCHAR2(30)
PUBLIC Bafoeg INTEGER

PUBLIC ACTOR FUNKTION Einkommen (:p Student_adt)
RETURNS INTEGER;
RETURN :p.Bafoeg
);

CREATE TABLE Personen (
Person Person_adt INSTANCE
);

INSERT INTO Personen( Matrnr(Person), Name(Person), Gebdatum(Person))
VALUES Person_adt(007,'James Bond', 05-Feb-45);


next up previous

Jutta Goeers
Fri Jun 6 11:14:54 MET DST 1997