Références entre enregistrements avec les OID

Les OID peuvent être une alternative aux clés étrangères pour référencer des enregistrements.

SyntaxeModèle logique

Dans une définition de table ou de type :

Appuyer sur espace pour rester en pause.
1
attribut =>o nom_table_d_objets

SyntaxeLDD SQL3

Appuyer sur espace pour rester en pause.
1
CREATE TYPE  type_objet AS OBJECT ...
2
3
CREATE TABLE table1 OF type_objet ...
4
5
CREATE TABLE table2 (
6
 ...
7
 clé_étrangère REF type_objet,
8
 SCOPE FOR (clé_étrangère) IS table1,
9
 );

RemarqueSCOPE FOR

Renforce l'intégrité référentielle en limitant la portée de la référence à une table particulière (alors que REF seul permet de pointer n'importe quel objet de ce type)

Exemple

Appuyer sur espace pour rester en pause.
1
CREATE OR REPLACE TYPE typCours AS OBJECT(
2
pkannee number(4),
3
pknum number(2),
4
titre varchar2(50),
5
type char(2),
6
refintervenant REF typIntervenant,
7
debut date,
8
MEMBER FUNCTION fin RETURN date
9
);
10
/
11
12
CREATE TABLE tCours OF typCours (
13
CHECK (pkannee>2000 and pkannee<2100),
14
type NOT NULL,
15
CHECK (type='C' or type='TD' or type='TP'),
16
refintervenant NOT NULL,
17
SCOPE FOR (refintervenant) IS tIntervenant,
18
PRIMARY KEY(pkannee, pknum)
19
);