Vous êtes sur la page 1sur 2

Interrogation 2021-2022

Bases de Données Avancées _Master 1 SIR


Corrigé-Type

CISCO Une entreprise spécialisée dans le matériel réseau souhaite développer une base de données
Relationnelle-Objet pour gérer des candidats pour un offre d’emploi. Le développeur chargé de cette
mission a proposé la modélisation ci-dessous pour stoker le numéro, le nom, le prénom et les informations
relatives au diplôme (Domaine, Filière et la Spécialité) de chaque candidat. Ainsi, le code SQL3 utilisé
pour créer la table Candidats est montré ci-dessous :

 Create or replace type Tcandidat as Object (Numero Number, Nom varchar(20), Prénom
varchar(20), Domaine varchar(20), Filière varchar(20), spécialité varchar(20)) ;
 Create table Candidats of Tcandidat ;
Diplômes

Numéro Nom Prénom Domaine Filière spécialité


1341 HARAZI SELMA MI Informatique SIR
1342 ABDELHADI ILYES MI Informatique SIR
1343 KADA ISSAM MI Informatique SIR
1344 MEGHNINE ISLEM MI Informatique SIR
1345 LATRECHE MOHAMED MI Informatique SIR
1346 ISSOLAH IMENE MI Informatique SIR
1347 BENMESBAH SALIM MI Informatique IL

 Critiquez cette modélisation (1 Points)


Cette représentation pose des problèmes de redondance, de maintien de cohérence lors des mises à
jour

 Comment peut-on améliorer cette modélisation ? (1 Points)


Décomposer la table Candidats en deux tables : Ajouter une table pour stocker les diplômes. Dans
la table Candidats, on stocke des OID d’objets de la table diplômes.

 Ecrire le code SQL3 permettant d’implémenter votre solution en précisant tous les types et les tables
nécessaires. (2 Points)

 Create or replace type TDiplome as Object (Domaine varchar(20), Filière varchar(20), Spécialité
varchar(20)) ;
 Create tabe Diplomes of TDiplome ;
 Create or replace type Tcandidat as Object (Numero Number, Nom varchar(20), Prénom
varchar(20), diplôme ref TDiplome) ;
 Create tabe Candidats of Tcandidat;
 Le développeur veut stocker ainsi la liste des compétences de chaque candidat, on représente chaque
compétence par la technologie maitrisée et le niveau de maitrise « Low, Medium, High».
 Définir le type Tcompétence (0.5 Points)
 Create or replace type TCompétance as Object (Technologie varchar(20), Niveau varchar(20)) ;
 Modifier le Type Tcandidat pour permettre le stockage de la liste des compétences (1 Points)
 CREATE TYPE t_set_compétances AS TABLE OF ref TCompétance;

 Alter type Tcandidat add attribute compétances t_set_compétances cascade;

 Le développeur veut ajouter la compétence « JAVA, High » pour le candidat BENMESBAH Salim ; écrire la
requête SQL3 permettant d’exprimer ce besoin (1 Points).

INSERT INTO THE ( SELECT compétances FROM Candidats WHERE Numero = 1347 ) VALUES
(TCompétance (‘JAVA’, ‘High’ ) ) ;

 Le développeur veut afficher la liste des candidats avec leur diplôme; écrire la requête SQL3 permettant
d’exprimer ce besoin (0.5 Points).
SELECT C.nom, C.prénom, C. diplôme .Domaine, C. diplôme .filière, C. diplôme .Spécialité

FROM Candidats C;

 Le développeur veut afficher la liste des candidats avec leurs compétences ; écrire la requête SQL3 permettant
d’exprimer ce besoin (0.5 Points)
SELECT C.nom, C.prénom, cp.* FROM Candidats C, TABLE (C. compétences) cp

 A travers cet exercice, donner deux avantages de l’approche objet sur l’approche relationnelle (0.5 Points).
 Adapté aux objets complexes
 Possibilité de définir de nouveaux types
 Possibilité de définir des collections imbriquées.

Vous aimerez peut-être aussi