Vous êtes sur la page 1sur 3

Les références dans les BD Objet-relationnelle

On se propose de partir de l’approche relationnelle vers l’approche objet relationnelle en


utilisant le contexte d’un employé effectuant diverses interventions sur des véhicules.

EMPLOYE
NumEmploye Departemen sal @ Adresse Lieux interventions
t Veh No Rue Rue vill Code Vill Distanc @contra
e posta e e t
l
1256 9989

Véhicule
Nu Type Marque Dat
Ligne m e
Ligne
1256 33 4chevau Peugeo
9989 Contrat
x t
34 5chevau Audi Nu Montan Dat
x m t e

La ligne 1256 contient les attributs du véhicule ayant pour Num 33


1. Définitions
ROWID : Désigne une pseudo-colonne qui contient l’adresse physique de chaque
enregistrement d’une base de données Oracle
OID : Chaque objet (table, type, objets, des tables..) a un identificateur unique OID sur 16
positions
REF : Chaque objet possède un OID via une pseudo colonne de type REF
1
2. Création des tables objet relationnelle

2.1. Table Contrats


 Création du type
CREATE OR REPLACE TYPE contrat_typ as OBJECT
(no_int VARCHAR2(8),
date_int DATE,
Montant NUMBER)
 Création de la table
CREATE TABLE Contrats OF contrat_typ
(CONSTRAINT PK_Con PRIMARY KEY(no_int))

2.2. Table Véhicule


 Création du type
CREATE OR REPLACE TYPE veh_typ as OBJECT
(no_immat VARCHAR2(8),
date_immat DATE,
typ_v VARCHAR2(7),
Marque VARCHAR2(15))
 Création de la table
CREATE TABLE vehicules OF veh-typ
(CONSTRAINT PK_Veh PRIMARY KEY(no_immat))

2.3. Table Employé


 Création du type adresse_typ
CREATE OR REPLACE TYPE adresse_typ AS OBJECT
(no_rue NUMBER(8),
rue VARCHAR(20),
ville VARCHAR (30)
code_postal VARCHAR2(10))
 Création d’un type avec référencement

1
CREATE OR REPLACE TYPE Lieu_inervention AS OBJECT
(ref_contrat REF contrat-typ,
Ville VARCHAR2(15)
Distance NUMBER)
 Création du type Lieux_intervention à partir du type lieu-inter
CREATE OR REPLACE TYPE Lieux_intervention AS TABLE OF lieu-inter

 Création du type employe_type


CREATE OR REPLACE TYPE employe_typ AS OBJECT (
numero VARCHAR2(5),
dept VARCHAR2(20),
veh REF veh_typ,
ADR adresse_type,
Lieux_interventions lieux_intervention

 Création de la table Employe


CREATE TABLE Employes OF employe-typ
(CONSTRAINT PK_employe PRIMARY KEY(numero))
Nested TABLE lieux_interventions STORE AS tab_int

Vous aimerez peut-être aussi