Vous êtes sur la page 1sur 5

Quelques exercices pour s’entraîner

Cours : Bases de données avancées

Exercice 1 : Les triggers


1. Définir triggers et donner sa syntaxe.
2. Donner le rôle et l'utilité des triggers.
3. Pourquoi dit-on que les déclencheurs rendent les bases de données dynamiques. Quel en est le risque ?
4. Donner la syntaxe résumant la requête de création de déclencheur en MYSQL5
5. Décrire la syntaxe suivante
CREATE TRIGGER SetAuteurDate
BEFORE UPDATE ON PRODUITS FOR EACH ROW SET
(UPDATE N
SET N.Auteur = USER, N.DateMaj = CURRENT DATE);

Exercice 2 : Les transactions, reprise, concurrence d’accès


1. Définir transaction.
2. Quel est le rôle des deux commandes : COMMIT et ROLLBACK
3. Quelles sont les opérations SQL qui déclenchent des actions de lecture et écriture sur disques (Read,
Write)
4. Décrire les propriétés des transactions suivante : atomicité, cohérence, isolation et durabilité (ACID).
5. Dire pourquoi il y a incohérence dans les deux transactions ci-après

6. Qu'est ce qu'une concurrence d’accès.


7. Kobe et Abel travaillent chacun dans un bureau de gestion des salles des cérémonies.
Kobe (transaction T1) veut annuler N réservations sur une salle A1 et réserver N places sur une salle A2.
Abel (transaction T2) veut réserver M places dans la salle A1. Quels sont les problèmes que l'exécution de
T1 et T2 peuvent engendrer ?
8. Quels les problèmes dus à la concurrence.
9. Définir reprise à chaud et reprise à froid.
10. Comment procéder pour obtenir un point de reprise ?

Exercice 3 : Techniques d'accès aux fichiers (hash-code, index, arbres)


1. Quel est le rôle d'un index ? Donner ses caractéristiques.
2. Comment procéder pour optimiser les requêtes suivantes, si le nombre de lignes avoisine mille.
SELECT * FROM Produit WHERE nom = ’Tomate’;
SELECT * FROM Client WHERE numClient = 500;

3. Comment créer, supprimer et vérifier l'existence d'un index dans une table produit en utilisant
MySQL ?
4. Expliquer le principe de hachage en considérant l'exemple ci-après.

Exercice 4 : Base de données distribuée


1. Définir base de données distribuées.
2. Définir SGBD distribué. Citer quelques fonctions d'un SGBD distribué.
3. Décrire l'architecture ci-après.

4. Décrire les Composants d’un SGBDD.


5. Décrire les différentes étapes de conception d’une base de données relationnelle distribuée.
6. Illustrer par des exemples la fragmentation d'une BD relationnelle en BD distribuée.
7. Quels sont les avantages et les inconvénients.

Exercice 5 : Base de données déductives


1. Quelles sont les motivations pour la conception des base de données déductives.
2. Définir BD déductive.
3. Prédicats extensionnels et intentionnels.
4. Décrire le couplage suivante.

5. Proposer une architecture d'une SGBD déductif.


6. En utilisant le langage DATALOG, proposer une BD extensionnelle et intentionnelle pour le modèle
suivant : La base de données extensionnelle composée des régions des trains reliant les capitales des
régions. La base de données intentionnelle permet de calculer les capitales proches (prédicat
CPROCHE) comme étant les capitales atteignables l’une depuis l’autre en moins de cinq heures dans
les deux sens. Les régions proches (prédicat RPROCHE) sont celles ayant des capitales proches. Une
région a un nom, une capitale et une population donnée. Un voyage par train est caractérisés par un
numéro, un départ, une arrivée, une durée.
7. Spécifier en DATALOG la célèbre base de données des familles à partir des prédicats extensionnels
PERE et MERE indiquant qui est père ou mère de qui. La relation récursive ANCETRE a souvent été
utilisée pour étudier les problèmes de la récursion.

Exercice 6 : Base de données orientées objet

Partie A : Langages du Standard ODMG


Interpréter les codes ODL suivants:

interface Branch
( extent all_Branches,
keys BranchName )
{
attribute String BranchName;
attribute [pobox:String, place:String] Main_office;
attribute Employee Leader;
relationship Company from_Company
inverse Company::has_Branches;
relationship Set<Employee> has_employed
inverse Employee::employed_in;
};

1. Donner une représentation graphique du code précédent.


2. Compléter les schéma ODL pour les entités Appart, Vin, EmployéBuveur de l'exemple dans le cours.
3. Comment déclare les attributs index, unique et les identifiants des entités en OjectDB Java

Partie B : Une découverte au sein du campus


Lors une randonné, l’étudiant Toursia de la filière histoire de l’Université, ramasse un papier portant le
diagramme suivant.

!
1. Expliquer à Toursia ce qu’exprime ce diagramme ?
2. En utilisant le langage OQL, identifier le professeur qui donne le cours nomC=“BDOO”?
3. En utilisant le langage OQL, identifier les cours donnés par l’enseignant Kobe?
4. Fournir une liste de structure composée de nom, prénoms et adresse des enseignants.
5. Ce schéma présente-t-il des attributs complexes, si oui lesquels ?

Partie C: SQL3 pour le personnel d’un hôpital


1. Quelles sont les faiblesses du modèle relationnel ?
2. Donner les caractéristiques du modèle relationnel combiné avec le conception orientée objet.
3. Voici la modélisation du personnel d’un hôpital de la presque-ville de Dang.
!

4.1 Identifier les différents types d'hiérarchie dans ce modèle.


4.2. Donner au moins deux attributs simples présents dans la modélisation
4.3 Utiliser SQL3 pour créer des types d'objets et définir des tables pour les objets persistants.

Partie D: En considérant le schéma ci-après, compléter le code java commencé dans le cours

Projet: Traduction en ObjectDB Java


Transformer le diagramme de classe suivant en langage Java en utilisant ObjectDB. Tester le code en
créant les instances correspondant aux différentes classes.

Vous aimerez peut-être aussi