Université de La Rochelle Département Informatique
Courtoisie de Emmanuel Coquery,
1
M. EBOUEYA
TP et suite TD
sur les Transactions et Bases de Données Réparties
Vous devez soit avoir suivi le cours SQL, chapitres portant sur le dictionnaire de données Oracle et les
droits d’accès, ou l’avoir accessible dans une fenêtre. (Ce cours n’a pas été dispensé du fait des grèves.
Le texte de ce cours est en ligne.)
Le but du jeux est de réaliser les exercices suivants, éventuellement en vous aidant d’un exemple de
réalisation succinct et incomplet, mais surtout en justifiant/commentant vos actions. Il y aura les
copies écrans de vos réalisations, et un compte-rendu personnel chacun. Vous déposez sur Moodle
(chacun et séparément) a 11h30 ce que vous avez pu faire.
Exercice 7 : Transactions, suite et pas fin
Ajoutez, si nécessaire, les énoncés SQL de spécification du mode de contrôle de concurrence les plus appropriés
pour les transactions suivantes qui portent sur le schéma de VentesPleinDeFoin du cours SQL (reprise ci-
dessous) et dont le schema est en ligne aussi..
On tient à ce que les ordonnancements produits soient sérialisables.
a)
SELECT * FROM Article;
SELECT * FROM Article
WHERE quantitéEnStock = 0;
COMMIT;
b)
UPDATE Article
SET prixUnitaire = prixUnitaire * 1.1;
COMMIT;
Licence L3 - Informatique
UE –Bases De Données
Année Universitaire 2010/2011
Université de La Rochelle Département Informatique
Courtoisie de Emmanuel Coquery,
2
c)
SELECT * FROM Article
WHERE noArticle = 10;
UPDATE Article
SET prixUnitaire = prixUnitaire * 0.9
WHERE noArticle = 10;
COMMIT;
d)
UPDATE Client
SET noTéléphone = ‘(123)456-7890’
WHERE noClient = 10;
COMMIT ;
Université de La Rochelle Département Informatique
Courtoisie de Emmanuel Coquery,
3
Exercice 8 : Manipulation d'une base de données à partir d'une autre
Vous avez travailjusqumaintenant dans la base de données masterin avec le compte L3Infoxx.
Vous avez aussi accès à la base de données L3Info, et à son compte L3Infoxx. (à vérifier).
Quels rôles jouez vous dans ces deux bases de données. Si necessaire, crée des comptes utilisateurs
ayants moins de droits globaux ou partiels.
Connectez-vous à la base o L3Info. Pour accéder à la base masterin, il suffit d'écrire
CONNECT L3Infoxx/L3Infoxx@masterin
Attention l'instruction ci-dessus vous déconnecte de L3Info. Pour revenir à L3Infoxx il faut faire un
nouveau CONNECT.
Les comptes sur masterin et sur L3Info possèdent les mêmes privilèges. En particulier, vous avez le
droit CREATE TABLE pour y créer des tables.
1. Créer un lien de base de données à utilisateur connecté de votre compte dans L3Info à votre
compte dans masterin par la commande SQL suivante émise dans votre compte de L3Info :
CREATE DATABASE LINK masterin USING 'masterin'
masterin suivant immédiatement DATABASE LINK est le nom (partiel ici) du lien de base de
données créée,
masterin entre guillemets simples suivant USING spécifie le nom de service d'une base de
données distante. Ce type de lien suppose que compte interrogateur et compte accédé aient le
même nom (dans leur base respective) et le même mot de passe au moment de la création du lien
et au moment de l'utilisation du lien. Ce lien de base de données va vous permettre d'accéder à
partir de votre compte de masterin aux tables de votre compte d'L3Info. Les propriétés de ce lien
sont accessibles par la vue USER_DB_LINKS.
2. Accéder à la structure de votre table dans la base de données masterin par la commande DESC
ou DESCRIBE de SQL*Plus. La notation TABLE@LIEN permet de préciser le lien à utiliser.
On constatera que le nom du compte peut être indiqué ou non et que le nom de la base de
données ou de son lien peut être global.
3. Accéder de votre compte de la base L3Info au contenu de votre table dans la base de dones
masterin par la commande SELECT de SQL.
4. Réaliser une jointure de votre table dans masterin avec une table que vous créez dans votre
compte de L3Info. Cette jointure peut inclure agrégats et sous-requêtes.
5. Mettre à jour votre table dans la base de données masterin à partir de votre compte dans
L3Info. Comparer la validation avec la validation des parties précédentes. Autre conclusion.
6. A contrario, on notera qu'Oracle n'autorise pas les commandes CREATE, ALTER et DROP de
définition de données distantes.
Université de La Rochelle Département Informatique
Courtoisie de Emmanuel Coquery,
4
Exercice 9 : la réplication dans une base de données répartie
Au lieu de manipuler les tables d'un compte de base de données à partir d'une base de données
distante, on va maintenant dupliquer une table dans une base de données distante.
Assurez-vous que votre compte de L3Info contient deux seuls objets. Lequel en particulier ?
Supprimer toutes les clés sur vos tables dans masterin.
1. Définir dans votre compte L3Info une vue matérialisée ou snapshot ou cliché ou copie de
votre table de la base de données masterin par la commande
CREATE MATERIALIZED VIEW TableVM REFRESH NEXT SYSDATE + 1/480 AS SELECT *
FROM monCompteActuel.Table@masterin; Est-ce possible ? Si cela ne l'est pas, demander à
l'administrateur de base de données le droit système CREATE SNAPSHOT. Est-ce alors possible ?
2. Lister les différents objets créés.
3. Accéder aux propriétés de la vue matérialisée en utilisant la vue USER_MVIEWS.
4. Interroger la vue matérialisée.
5. Mettre à jour la table maître (appartenant à la base de données MASTERIN) de votre vue
matérialisée.
6. Au bout de 3 mn (pourquoi 3 mn ?), constater que la vue matérialisée n'a pas été rafraîchie.
7. Consulter la vue USER_JOBS des travaux possédés par l'utilisateur et notamment ses
colonnes JOB (le processus de rafraîchissement), FAILURES (le nombre de démarrages et
d'échecs du travail depuis son dernier succès) et WHAT. Combien d'échecs a connu le
processus de rafraîchissement ? En fait, la procédure de rafraîchissement ne peut pas accéder à
votre compte, n'en connaissant pas le mot de passe.
8. Rafraîchir manuellement le vue matérialisée en émettant la commande EXECUTE
DBMS_REFRESH.REFRESH('VueMatérialisée');
9. Détruire le lien de base de données MASTERIN et construire un nouveau lien plus souple que
le lien de base de données à utilisateur connecté, dit lien de base de données à utilisateur fixe,
de votre compte dans L3Info à votre compte dans masterin (et plus généralement à un compte
quelconque avec un mot de passe qui ne soit pas le mot de passe de votre compte dans L3Info)
par la commande SQL suivante émise dans votre compte de L3Info: CREATE DATABASE
LINK MASTERIN CONNECT TO M1IFxx IDENTIFIED BY motDePasse USING
'MASTERIN' ; Utiliser à nouveau USER_DB_LINKS.
10. Constater et préciser le processus de rafraîchissement.
Université de La Rochelle Département Informatique
Courtoisie de Emmanuel Coquery,
5
Exercice 10 : Manipulation d’une base de données répartie en deux autres.
Avant propos : la une suite suivante est une proposition de manipulations et ne doivent pas
nécessairement être suivie à la lettre. Il est plus important de comprendre les manipulations effectuées
et justifier /commenter les resultats obtenus (copies d’ecrans, utilisation des instructions
d’interrogation du dictionnaire de données et du contexte).
Les résultats obtenus lors de ces manipulations devraient susciter des questions dont la réponse peut
se trouver dans une manipulation supplémentaire.
Il est recommandé de visualiser le résultat des manipulations au fur et a mesure dans le dictionnaire.
Manipulations
Mettez en place le système suivant :
Tester les connexions (tnsping).
Créer tous les objets nécessaires à la mise en place d'une relation avec
- une fragmentation horizontale.
- une fragmentation verticale.
Visualiser les requêtes globales avec l'analyseur
Créer les objets nécessaires à la mise à jour (INSERT/UPDATE/DELETE) des relations.
Tester la mise en place d’un schéma avec une clé primaire globale (Non nulle et unique) à partir d'une
numérotation automatique et une contrainte de domaine sur différents fragments.
es52
bd2. esn ig .cifom . ch
es14
dilbert .esnig .cifom .ch
es21
artem is .cpln .ch
es21.wo rldes14.wo rld
BD avec
schéma
global
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !