© Éditions Eyrolles
229
chapitre n° 3
Le niveau physique : de SQL2 à SQL3
Script SQL3
La collection collAvi contient la référence refAvi et l’attribut de l’association.
Associations n-aires
Nous recensons n+1 bases de travail sous SQL3 pour décrire une association n-aire entre n
classes C1, C2... Cn. La première solution ne privilégie aucun accès aux données, il s’agit de la
solution universelle. Les autres solutions privilégient l’accès aux données par une des n tables.
Solutions 1 Définition d’un type contenant n attributs REF ou FOREIGN KEY, qui référencent les
n types dérivés des classes C1 à Cn.
Solutions 2 à n+1 Définition d’une collection dans un type dérivé de la classe Cj. Cette collection contient n-1 références vers les types dérivés des n-1 autres classes.
L’exemple 3-29 modélise les temps de vol des avions sur chaque tronçon. Un tronçon est caractérisé par un aéroport de départ et un aéroport d’arrivée. Supposons qu’on désire aussi connaître
la compagnie qui a affrété le vol, la date du vol et l’appareil.
Tableau 3.26 Association plusieurs-à-plusieurs SQL3
Schéma logique
Script SQL3 (Oracle)
Compagnie[comp, nomcomp,
collAvi{refAvi, dateaff}]
Avion[immat, typeav]
CREATE TYPE avion_type AS OBJECT
(immat VARCHAR(6), typav VARCHAR(10))
CREATE TYPE compagnie_type AS OBJECT
(comp VARCHAR(4), nomcomp VARCHAR(30),
CREATE TABLE Avion OF avion_type
(CONSTRAINT pk_avion PRIMARY KEY(immat))
CREATE TABLE Compagnie OF compagnie_type
(CONSTRAINT pk_compagnie PRIMARY KEY(comp))
CREATE TYPE elt_coll_avi AS OBJECT
(refAvi REF avion_type, dateaff DATE)
CREATE TYPE coll_avi_type AS TABLE OF elt_coll_avi
collAvi coll_avi_type)
NESTED TABLE collAvi STORE AS tempAvi
229
chapitre n° 3
Le niveau physique : de SQL2 à SQL3
Script SQL3
La collection collAvi contient la référence refAvi et l’attribut de l’association.
Associations n-aires
Nous recensons n+1 bases de travail sous SQL3 pour décrire une association n-aire entre n
classes C1, C2... Cn. La première solution ne privilégie aucun accès aux données, il s’agit de la
solution universelle. Les autres solutions privilégient l’accès aux données par une des n tables.
Solutions 1 Définition d’un type contenant n attributs REF ou FOREIGN KEY, qui référencent les
n types dérivés des classes C1 à Cn.
Solutions 2 à n+1 Définition d’une collection dans un type dérivé de la classe Cj. Cette collection contient n-1 références vers les types dérivés des n-1 autres classes.
L’exemple 3-29 modélise les temps de vol des avions sur chaque tronçon. Un tronçon est caractérisé par un aéroport de départ et un aéroport d’arrivée. Supposons qu’on désire aussi connaître
la compagnie qui a affrété le vol, la date du vol et l’appareil.
Tableau 3.26 Association plusieurs-à-plusieurs SQL3
Schéma logique
Script SQL3 (Oracle)
Compagnie[comp, nomcomp,
collAvi{refAvi, dateaff}]
Avion[immat, typeav]
CREATE TYPE avion_type AS OBJECT
(immat VARCHAR(6), typav VARCHAR(10))
CREATE TYPE compagnie_type AS OBJECT
(comp VARCHAR(4), nomcomp VARCHAR(30),
CREATE TABLE Avion OF avion_type
(CONSTRAINT pk_avion PRIMARY KEY(immat))
CREATE TABLE Compagnie OF compagnie_type
(CONSTRAINT pk_compagnie PRIMARY KEY(comp))
CREATE TYPE elt_coll_avi AS OBJECT
(refAvi REF avion_type, dateaff DATE)
CREATE TYPE coll_avi_type AS TABLE OF elt_coll_avi
collAvi coll_avi_type)
NESTED TABLE collAvi STORE AS tempAvi
