TP1 de Bases de Données Objets
Transformation d'une base relationnelle en base objet
D'après un sujet de Michel Da Paz.

1- Quelques requêtes en SQL pour commencer.

Soit la base de données relationnelle suivante :
SQL> DESC service
cdsrv char(2) primary key,
nom varchar(25) not null,
localis varchar(20) not null,
batim varchar(10) not null,
tlphn char(10) not null


SQL> DESC personnel
cdprs char(3) primary key,
nom varchar(15) not null,
prnm varchar(15) not null,
datnais date not null,
qualif varchar(25) not null,
cdsrv char(2) not null,
dattit date,
cdspr char(3),
trtmnt number(8,2),
vactn number(8,2)
SQL> DESC patient
cdpat char(3) primary key,
nom varchar(15) not null,
prnm varchar(15) not null,
sx char(1) not null,
datnais date not null,
insee char(13),
prof varchar(25) not null


SQL> DESC consultation
cdpat char(3) not null,
cdprs char(3) not null,
datclt date

  1. Affichez tous les services (noms et localisation des services).
  2. Quels sont les noms des personnels de qualification 'DOCTEUR'?
  3. Quel est le nombre maximum de consultations pour un membre du personnel?
  4. Nom et qualification des personnes n'ayant pas de supérieur hiérarchique?
  5. Classez les patients selon leur nombre de consultations.
  6. Combien y-a-t'il de service ne possèdant pas de 'CHEF DE SERVICE'?
  7. Liste des services avec leurs employés (nom du service, nom de l'employé) (En utilisant des commandes de formatage vous n'afficherez le service qu'une fois, puis vous compterez le nombre de personne par service).

2- Partie Oracle de l'Examen de Maîtrise d'Informatique du 6 Septembre 2000.

On considère le schéma suivant :
Classe Personne
(nom : chaîne, prenom : chaîne, datenais: Date)
Classe Employé
hérite de Personne (qualification: chaîne, sect: Section, dateint: Date, superieur: Personne;, traitement: entier, vacation: entier)
Classe Malade
hérite de Personne (insee: chaîne, profession: chaîne, consultations: list(Consult))
Classe Section
(nom: chaîne, localisation: chaîne, batiment: chaîne,tel: chaîne)
Classe Consult
(pers: Personne,emp: Employé,dateclt: Date)


  1. Créez une Base de Données Objet sous Oracle correspondant au schéma ci-dessus.
  2. Écrivez les instructions nécessaires pour transférer les données de la base non-objet vers votre base objet.
  3. Écrire une requête permettant d'interroger votre base objet afin de connaître les dates, le nom du docteur et sa spécialités pour les consultations du patient MARQUET


Florence Bannay 03-10-2001