• Aucun résultat trouvé

Module Bases de Données et Sites Web Partiel du 1

N/A
N/A
Protected

Academic year: 2022

Partager "Module Bases de Données et Sites Web Partiel du 1"

Copied!
14
0
0

Texte intégral

(1)

Université Pierre et Marie Curie - Paris 6 - UFR 922 - Licence d'informatique

Module Bases de Données et Sites Web

Partiel du 1

er

avril 2005

Documents autorisés – Durée : 2h.

Exercice 1 : Autorisation 2 pts

Question 1. On considère le schéma relationnel suivant :

Enseignant (id-ens, nom, prenom, grade, domaine) Etudiant (id-et, nom, prenom, niveau, statut ) Enseigne (id-ens, id-cours)

Cours (id-cours, titre, salle, jour)

Quels sont les privilèges nécessaires pour exécuter les requêtes suivantes ? Pour chacune des requêtes, on donnera les privilèges les plus spécifiques, et les privilèges généraux permettant d’effectuer la requête.

a) SELECT nom, prenom FROM Enseignant UNION

SELECT nom, prenom FROM Etudiant where niveau = ‘doctorat’ ; Privilèges les plus spécifiques :

Privilèges généraux :

b) SELECT domaine FROM Enseignant E1, Enseigne E2 WHERE E1.id-ens=E2.id-ens

AND E2.id-cours IN

(SELECT id-cours FROM Cours WHERE jour = ‘vendredi’);

Privilèges les plus spécifiques :

Privilèges généraux :

c) INSERT INTO Enseignant(nom)

SELECT DISTINCT nom FROM Etudiant WHERE statut = ‘moniteur’ AND

nom NOT IN (SELECT nom FROM Enseignant)

(2)

Privilèges les plus spécifiques :

Privilèges généraux :

Question 2. On considère la séquence d’autorisation suivante (Max est propriétaire de R):

(1) Max GRANT INSERT ON R TO Luc, Léa WITH GRANT OPTION (2) Luc GRANT INSERT ON R TO Zoé

(3) Luc GRANT INSERT(A1) ON R TO Jules WITH GRANT OPTION (4) Léa GRANT INSERT(A1) ON R TO Zoé

(5) Jules GRANT INSERT (A1) ON R TO Léa WITH GRANT OPTION (6) Max REVOKE INSERT ON R FROM Luc

Donnez l’état du graphe à l’étape 5 puis à l’étape 6 Graphe à l’étape 5 :

Graphe à l’étape 6 :

Exercice 2 : Transactions 4 pts

On considère la relation R(a, b). Dans l'état initial, la relation R contient 2 tuples :

[1, 10]

[2, 20]

On considère les transactions T1 et T2. Les instructions SQL de chaque transaction sont numérotées.

T1 : 1.1 : update R set b = 3 * (select b from R where a=2) where a=1;

1.2 : update R set b = (select b from R where a=1) - b where a=2;

1.3 : commit;

T2 2.1 : update R set b=b + 5 where a=2;

2.2 : commit;

(3)

Le SGBD utilise de l'estampillage et gère plusieurs versions des données pour garantir l'isolation des transactions.

Question 1 Pour éviter les écritures perdues, le SGBD doit-il demander un verrou exclusif avant toute écriture?

oui

‰

non

‰

Question 2. On donne les séquences suivantes :

S1 1.1, 1.2, 1.3, 2.1, 2.2 S2 2.1, 2.2, 1.1, 1.2, 1.3 S3 1.1, 2.1, 2.2, 1.2, 1.3

On propose de traiter les séquences S1 à S3, avec le niveau d'isolation read committed ou sérializable.

Chaque séquence est traitée à partir de l'état initial de R. On considère qu'une transaction abandonne (puis ne recommence pas) lorsque le SGBD refuse de traiter une opération.

- Toutes les instructions peuvent-elles être traitées? Répondre dans le tableau ci-dessous en soulignant en bleu les instructions qui ont pu être traitées.

- Donner la valeur des 2 tuples de R en fin d'exécution, selon le niveau d'isolation choisi. Répondre en complétant les colonnes 2 et 3 du tableau. Puis compléter votre réponse par une brève explication Séquence (souligner

les instr traitées

niveau: read committed

niveau serializable

Explication

1.1, 1.2, 1.3, 2.1, 2.2 [1, ...]

[2, ... ]

[1, ...]

[2, ... ]

2.1, 2.2, 1.1, 1.2, 1.3 [1, ...]

[2, ... ]

[1, ...]

[2, ... ]

1.1, 2.1, 2.2, 1.2, 1.3 [1, ...]

[2, ... ]

[1, ...]

[2, ... ]

(4)

Question 3. On complète T2 en ajoutant une nouvelle instruction qui succède à l'instruction 2.1 (et précède la validation de T2)

Donner un exemple de nouvelle instruction SQL pouvant provoquer un interblocage.

Par la suite, on appelle Instr cette nouvelle instruction. Parmi les séquences suivantes lesquelles provoquent un interblocage ? Répondre en cochant la case et justifier brièvement.

Séquence: 1.1, 1.2, 2.1, Instr

Interblocage ? oui

‰

non

‰

Justification:

Séquence: 1.1, 2.1, 1.2, Instr

Interblocage ? oui

‰

non

‰

Justification:

Séquence: 2.1, 1.1, Instr, 1.2

Interblocage ? oui

‰

non

‰

Justification:

Séquence: 2.1, Instr, 1.1, 1.2

Interblocage ? oui

‰

non

‰

Justification:

(5)

Exercice 3 : Contrôle de concurrence 3 pts

Soit la relation Vente (nv, prix, jour)

nv est le numéro d'une vente (clé)

Question 1 : Soit la transaction V qui insère une nouvelle vente avec un nouveau numéro.

a) x Å select max(nv) from Vente; on affecte la variable x avec le résultat de la requête b) insert into Vente ( x + 1, 10, '01 avril 2005'); l'insertion utilise la valeur de la variable x

c) commit;

Deux transactions V1 et V2 de type V s'exécutent simultanément. On note V1a, V1b, V1c les instructions a) b) c) de V1 respectivement et V2a, V2b, V2c celles de V2.

La séquence : V1a, V2a, V1b, V1c, V2b provoque une erreur : V2b est refusée car elle ne respecte pas la contrainte d'unicité de nv. Expliquer pourquoi ?

Modifier ou compléter l'instruction a) de V pour éviter ce refus.

Question 2 : On complète la BD avec une nouvelle relation M(n) contenant initialement un seul tuple [0].

On considère maintenant la transaction T : a) update M set n= n+1;

b) x Å select n from M;

c) insert into Vente ( x , 10, '01 avril 2005');

d) update Vente set prix = prix*0,8 where nv = x ; remise de 20% sur la vente

e) commit;

2 transactions T1 et T2 de type T s'exécutent simultanément.

La séquence suivante peut-elle s'exécuter ? Justifier votre réponse.

T1a, T1b, T2a, T2b, T1c, T1d, T1e, T2c, T2d, T2e

(6)

On distingue les ventes courtes des ventes longues selon la durée de la négociation avec le client avant de lui accorder une remise. Soit t le délai entre la fin de l'étape c) et le début de l'étape d) :

t = 10 secondes pour une vente courte, t = 10 minutes pour une vente longue.

Compléter l'instruction b) pour que plusieurs ventes rapides ne soient pas bloquées par une longue négociation en cours avec un client.

Exercice 4 : OQL Schéma, création de types, références, héritage 5 pts

On propose de concevoir le schéma d’une base de données permettant la gestion du matériel informatique d’une petite société. La base de données permet de décrire chacun des ordinateurs de l’entreprise.

L’exercice consiste en la création du schéma de cette BD. Il sera éventuellement nécessaire de créer des types intermédiaires même si l’exercice ne le précise pas.

Question 1 : On définit les objets suivants:

• Un écran est constitué d’un numéro de série et d’une taille (sous forme d’un nombre entier)

• Un disque dur est constitué d’un numéro de série, d’une marque et d’une capacité

• Une imprimante est constituée d’un numéro de série d’un nom et d’une adresse IP ; une

adresse IP est constituée de 4 nombres de 3 chiffres maximum, séparés par des . (par exemple : 127.45.63.129)

Ecrire en SQL 3 la définition des objets décrits

Type(s) « supplémentaire(s) » :

(7)

Type Ecran :

Type Disque :

Type Imprimante :

(8)

Question 2 : Définir un type Périphérique définissant des périphériques supplémentaires (Clavier, souris, etc…). Un périphérique est constitué d’un numéro de série et d’un genre de périphérique (sous forme de chaîne de caractère). Définir ensuite un type Souris et un type Clavier : Une souris est un périphérique avec un attribut supplémentaire indiquant de quelle sorte de souris il s’agit (« Optique » ,

«Normale », « TrackBall »,……). Un clavier possède quant à lui une information sur le type de clavier (« AZERTY », « QWERTY », ….)

Type périphérique :

Type Souris :

Type Clavier :

Question 3 : Définir le type ordinateur : un ordinateur est constitué d’un numéro de série, d’un nom et d’une adresse IP. Chaque ordinateur possède un écran et un ou plusieurs disques durs et éventuellement des périphériques (disques et périphériques n’appartiennent qu’à un et un seul ordinateur). Chaque ordinateur peut être connecté à une ou plusieurs imprimantes ; plusieurs ordinateurs peuvent être connectés à la même imprimante.

(9)

1) Dessiner le schéma entité association correspondant à cette description

(10)

2) Ecrire le type ordinateur en SQL3

Question 4 : Définir une table LesOrdinateurs permettant le stockage de l’ensemble des ordinateurs de l’entreprise.

(11)

Question 5 : La table LesOrdinateurs est-elle suffisante pour stocker tous les objets de la base ? Justifiez votre réponse et définissez, si besoin, les autres tables nécessaires.

Exercice5 : Insertions et Requêtes 6 pts

Soit le schéma suivant en SQL 3 :

CREATE TYPE Employe AS OBJECT ( nom VARCHAR2(50), prenom VARCHAR2(50), numero NUMBER(5), salaire NUMBER(6) );

CREATE TYPE LesEmployes AS VARRAY(50) Of Employe;

@compile

CREATE TYPE Departement AS OBJECT ( Code NUMBER(5), Nom VARCHAR2(50), Budget NUMBER(10), membres LesEmployes );

@compile

CREATE TYPE Installation AS OBJECT ( dat DATE,

dept REF Departement );

@compile

CREATE TYPE LesInstallations AS VARRAY(50) OF Installation;

@compile

CREATE TYPE Logiciel AS OBJECT ( nom VARCHAR2(50), prix NUMBER(6), installes LesInstallations );

@compile

CREATE TABLE EnsDepartements OF Departement;

CREATE TABLE EnsLogiciels OF Logiciel;

(12)

Question 1 (insertion): Ecrire en SQL3 les requêtes suivantes 1.1) Insérer :

• le département « Informatique » de code 10521, dont le budget est de 100 000 euros, qui possède deux employés :

o Gérard Dupont (numéro 1) dont le salaire est de 15 000 euros/an o Pierre Durand (numéro 2) dont le salaire est de 23 000 euros/an

• et le département « Comptabilité » de code 23652, dont le budget est de 20 000 euros, qui possède un employé :

o Jean Martin (numéro 3) dont le salaire est de 12 000 euros/an

1.2) Insérer le logiciel « Word » dont le prix est de 13 000 euros/an qui n’a pas été installé

(13)

1.3) Insérer le logiciel « Oracle » dont le prix est de 30000 euros/an et qui a été installé dans le département « Informatique » le 12-03-2005

1.4) Ajouter l’installation du logiciel Oracle dans le département Comptabilité au 15-04-2005

Question 2 : Ecrire les requêtes suivantes en SQL3

2.1) Sélectionner les départements dont le budget est supérieur à 50000 euros

(14)

2.2) Sélectionner les noms et numéros des départements dont l’un des employés gagne plus de 20 000 euros

2.3) Sélectionner les départements dans lesquels le logiciel ORACLE est installé

2.4) Expliquer ce que fait la requête suivante :

SELECT dept.nom

FROM EnsDepartements dept, EnsDepartements dept2

WHERE dept.Budget=dept2.Budget AND dept2.nom='Ressources Humaines';

Références

Documents relatifs

Partie 1 : Essentiels de l’ordinateur - Windows 10 (durée : 7 h avec un formateur + 1 h e-learning) Ce parcours traite des connaissances et compétences de base dans les

Quel est le composant qui assure la liaison entre le processeur et la mémoire

3- Ne cessant d’améliorer notre commande, nous avons constaté qu’un phénomène d’oscillation de l’eau autour d’un niveau provoque de nombreux démarrage et arrêt

Ils sont ensuite émis sans vitesse par la source S, puis accélérés par un champ électrostatique uniforme qui règne entre S et P tel que.. U sp

Les élèves ne disposant pour l’instant que d’informations qualitatives sur l’énergie potentielle et l’énergie cinétique d’un système, le but de

Les réactifs sont les ions Ag + et le cuivre métallique car les courbes correspondantes ont un coefficient directeur négatif.. Les produits sont le métal Ag et les ions Cu 2+ car

Un régulateur est dit à action proportionnelle (P) lorsque la valeur de sa tension de sortie est proportionnelle à l’erreur détectée .Quand l’erreur a été corrigée,

Temps passé devant un écran (télévision, ordinateur, smartphone, …) Module : Statistique à une variable.. Compléter