© Éditions Eyrolles
241
chapitre n° 3
Le niveau physique : de SQL2 à SQL3
Contraintes
Quelle que soit la contrainte d’une association d’héritage (partition, exclusivité et totalité) à
programmer, le schéma SQL3 est identique. En revanche, chaque contrainte devra être
programmée soit par des méthodes, soit avec les principes étudiés dans ce chapitre pour SQL2
(déclencheurs, procédures et contraintes de vérification).
Héritage multiple
De même que pour l’héritage simple, la traduction de l’héritage multiple sous SQL3 se programme
à l’aide de la directive UNDER.
Le schéma SQL3 implémentant l’exemple 2-35 est composé de quatre types et quatre tables
objet-relationnelles. Le type Stagiaire_type hérite simultanément des types PNT_type et
PNC_type.
Tableau 3.34 Héritage de tables SQL3
Schéma logique
Script SQL3
PNC[indice, prime]
Personnel[numPers, nomPers]
PNT[brevet, validiteLicence]
CREATE TABLE Personnel
(numPers NUMBER, nomPers VARCHAR(20),
CONSTRAINT pk_Personnel PRIMARY KEY(numPers))
CREATE TABLE PNC UNDER Personnel
(indice NUMBER, prime NUMBER(8,2))
CREATE TABLE PNT UNDER Personnel
(brevet VARCHAR(10), validiteLicence DATE)
Tableau 3.35 Héritage multiple de types SQL3
Schéma logique
Script SQL3
PNC[indice, prime]
Personnel[numPers, nomPers]
PNT[brevet, validiteLicence]
Stagiaire[dateStage]
CREATE TYPE Personnel_type
(numPers NUMBER, nomPers VARCHAR(20))
CREATE TYPE PNC_type UNDER Personnel_type
(indice NUMBER, prime NUMBER(8,2))
CREATE TYPE PNT_type UNDER Personnel_type
(brevet VARCHAR(10), validiteLicence DATE)
CREATE TYPE Stagiaire_type
UNDER PNC_type, PNT_type (dateStage DATE)
CREATE TABLE Personnel OF Personnel_type
(CONSTRAINT pk_Personnel PRIMARY KEY(numPers))
CREATE TABLE PNC OF PNC_type
CREATE TABLE PNT OF PNT_type
CREATE TABLE Stagiaire OF Stagiaire_type
241
chapitre n° 3
Le niveau physique : de SQL2 à SQL3
Contraintes
Quelle que soit la contrainte d’une association d’héritage (partition, exclusivité et totalité) à
programmer, le schéma SQL3 est identique. En revanche, chaque contrainte devra être
programmée soit par des méthodes, soit avec les principes étudiés dans ce chapitre pour SQL2
(déclencheurs, procédures et contraintes de vérification).
Héritage multiple
De même que pour l’héritage simple, la traduction de l’héritage multiple sous SQL3 se programme
à l’aide de la directive UNDER.
Le schéma SQL3 implémentant l’exemple 2-35 est composé de quatre types et quatre tables
objet-relationnelles. Le type Stagiaire_type hérite simultanément des types PNT_type et
PNC_type.
Tableau 3.34 Héritage de tables SQL3
Schéma logique
Script SQL3
PNC[indice, prime]
Personnel[numPers, nomPers]
PNT[brevet, validiteLicence]
CREATE TABLE Personnel
(numPers NUMBER, nomPers VARCHAR(20),
CONSTRAINT pk_Personnel PRIMARY KEY(numPers))
CREATE TABLE PNC UNDER Personnel
(indice NUMBER, prime NUMBER(8,2))
CREATE TABLE PNT UNDER Personnel
(brevet VARCHAR(10), validiteLicence DATE)
Tableau 3.35 Héritage multiple de types SQL3
Schéma logique
Script SQL3
PNC[indice, prime]
Personnel[numPers, nomPers]
PNT[brevet, validiteLicence]
Stagiaire[dateStage]
CREATE TYPE Personnel_type
(numPers NUMBER, nomPers VARCHAR(20))
CREATE TYPE PNC_type UNDER Personnel_type
(indice NUMBER, prime NUMBER(8,2))
CREATE TYPE PNT_type UNDER Personnel_type
(brevet VARCHAR(10), validiteLicence DATE)
CREATE TYPE Stagiaire_type
UNDER PNC_type, PNT_type (dateStage DATE)
CREATE TABLE Personnel OF Personnel_type
(CONSTRAINT pk_Personnel PRIMARY KEY(numPers))
CREATE TABLE PNC OF PNC_type
CREATE TABLE PNT OF PNT_type
CREATE TABLE Stagiaire OF Stagiaire_type
