Université 8 mai 1945 ‐ GUELMA Jeudi 21 Janvier 2016
Département Informatique 8h – 10h
Master 2 MAC
Année Universitaire : 2015‐2016 Resp. : Dr M. A. Ferrag
Examen – Bases de Données Avancées
Exercice 1 : (Bases de données orientées objets SQL 3 – 4 pts)
On veut définir en SQL3 le schéma d’une base de données touristique. On veut définir un type
Ville, qui a un nom, des restaurants et des musées. Un restaurant a un nom, une adresse et une
liste de 3 menus. Chaque Musée possède un nom et le jour de fermeture et chaque Menu
possède un nom et un prix.
1) Définir les types Musée et Menu. (2 pts)
2) Définir le type Restaurant. (1 pts)
3) Définir le type Ville. (1 pts)
Exercice 2 : (Bases de données réparties ‐ 6 pts)
1) Quelles sont les architectures d’une base de données répartie ? (1 pts)
2) Citez les deux approches de conception utilisées dans les bases de données réparties. (1
pts)
3) Quelles sont les points à considérer lors de la conception descendante d’une base de
données répartie. (1,5 pts)
4) Soit les deux tables suivantes :
EMPLOYES
CléEmp NomEmp Profession DateEmp Salaire DepEmp
1 Mohamed Technicien 01/10/93 2004 3
2 Amine Ingénieur 01/05/88 1300 2
3 Soufiane Vendeur 01/03/80 2500 1
4 Rida Ingénieur 01/03/80 2500 3
DEPARTEMENT
CléDep NomDep DirecteurDuDep Ville
1 Commercial 3 Annaba
2 Production 2 Guelma
3 Développement 4 Annaba
5 Informatique 6 Guelma
CléEmp et CléDep sont des clés primaires.
DepEmp et DirecteurDuDep sont des clés étrangères
Proposez une fragmentation et une allocation des tables EMPLOYES et DEPARTEMENT. (2,5 pts)
Page 1|2
Exercice 3 : (Bases de données NoSQL – 10 pts)
1) Quels sont les types de SGBD NoSQL ? (4 pts)
2) Pourquoi les grands acteurs d'Internet, notamment Google, Amazon, LinkedIn,
Facebook, [Link], Ubuntu One, etc., conçoivent et exploitent des bases de
données de type NoSQL ? (1,5 pts)
3) Traduisez les requêtes SQL (ci‐après) en SGBD NoSQL (MongoDB) (4,5 pts)
Requête 1 : Nous voulons par exemple insérer dans la table T_MODE_PAIEMENT une ligne
comportant les valeurs "CB" et "Carte bancaire" dans les colonnes
respectives PMT_CODE et PMT_LIBELLE.
INSERT INTO T_MODE_PAIEMENT (PMT_CODE, PMT_LIBELLE)
VALUES('CB','Carte bancaire')
Requête 2 : Nous voulons par exemple trouver les noms et prénoms des clients dont le titre est
‘M.’
SELECT CLI_NOM, CLI_PRENOM FROM T_CLIENT WHERE TIT_CODE = 'M.'
Requête 3 : Nous voulons par exemple trouver les utilisateurs dont le statut est ’A ‘ et l’âge est
50.
SELECT * FROM users WHERE statut = "A" AND age = 50
Bon Courage
Page 2|2