La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Question 1. Modélisation conceptuelle et traduction relationnelle (6 points) La Galice (région espagnole) a un réseau de refuges qu’elle gère à l’intention.

Présentations similaires


Présentation au sujet: "Question 1. Modélisation conceptuelle et traduction relationnelle (6 points) La Galice (région espagnole) a un réseau de refuges qu’elle gère à l’intention."— Transcription de la présentation:

1 Question 1. Modélisation conceptuelle et traduction relationnelle (6 points) La Galice (région espagnole) a un réseau de refuges qu’elle gère à l’intention des pèlerins-randonneurs de Compostelle. Les refuges sont gérés localement par des volontaires. Chaque refuge est localisé à proximité d’un village lequel est identifié par une borne kilométrique du chemin. Ainsi le refuge 350 est situé à 350 km du point de départ du chemin de pèlerinage. Chaque refuge a ses particularités. Certains dits de type I peuvent avoir une cheminée à bois, une cuisine avec un frigo et un téléphone. D’autres refuges de type II n’ont pas de cuisine, mais plutôt un bistro. Tous les refuges en Galice ont une ou plusieurs salles, l’aménagement de chacune pour le coucher est homogène (un seul type de lit) : lits simples, ou à deux ou à trois étages. Le nombre de lits varie selon la capacité autorisée pour chaque salle. La répartition des pèlerins-randonneurs est faite par le volontaire lors de l’inscription. Le prix plancher demandé est modique. Il est le même pour tous les lits d’un refuge. Lors de l’inscription, chaque personne doit présenter son numéro, fournir son nom, prénom, adresse. Suite au départ des pèlerins-randonneurs, il peut y avoir insertion de commentaires dans leur fiche qui justifieraient éventuellement un refus d’hébergement subséquent dans un autre refuge. Pour répondre aux besoins d’hébergement des pèlerins-randonneurs, une seule nuit est permise dans le même refuge. On mémorise le nombre de places demandées par la personne, la (ou les) salles affectées. Dans ce type de logement, les groupes peuvent être amenés à partager des salles, même s’ils font des réservations distinctes. On ne souhaite pas mémoriser le lit occupé par chaque personne. On s’assurera simplement qu’il y a assez de lits pour tous. Le volontaire doit être habilité à cette fonction au moyen d’une certification qui est attribuée au terme d’une formation. Sa fiche comprend un numéro d’identification (id), son nom, prénom, date de naissance, adresse et téléphone, ainsi que le matricule de sa certification. a) Proposez une modélisation conceptuelle entité-association de cette base en précisant vos hypothèses complémentaires éventuelles. b) Traduisez ce schéma en un ensemble de tables relationnelles en expliquant les règles appliquées.

2 Nosalle Sortedelit Capacitémax SALLE REFUGE Noborne Nombourg Prixnuit Type (I/II) VOLONTAIRE Id Nom Prénom Datenaissance Adresse Téléphone Matriculecertif PELERIN Numéro Nom Prénom Adresse Commentaire Nbpersonnes Loge Date Nbplaces Gère A 1,1 1,n 0,n 1,1 QUESTION 1. a)

3 Salle(nosalle, sortedelit, capacitémax, noborne) Pèlerin(numéro, nom, adresse, commentaire, nbpersonnes) Refuge(noborne, nombourg, prixnuit, type (I/II), idvolontaire ) Volontaire(id, nom, prénom, datenaissance, adresse, téléphone, matriculecertif) Loge(nosalle, numéro, date, nbplaces) d’après les règles de traduction vues en cours QUESTION 1. b)

4 Question 2. Normalisation relationnelle (2 points) Il faut construire une ou plusieurs tables avec les attributs propriétaire,occupant,adresse,numappart,nbpièces,nbpersonnes. Un tuple (pr,o,a,n,nb1,nb2) a la signification suivante : l’occupant o habite avec nb2 personnes l’appartement de numéro n ayant nb1 pièces dont le propriétaire est p. L’analyse fournit l’ensemble suivant de dépendances fonctionnelles : Occupant -> adresse Occupant -> numappart Adresse, numappart -> propriétaire Adresse, numappart -> occupant Adresse, numappart -> nbpièces Occupant -> nbpersonnes. 1) Quelles sont les clés de la table ? 2) Est ce que la table ainsi constituée est en 3 ème forme normale ? Si oui, pourquoi. Si non, normaliser.

5 QUESTION 2. 1)Clés : occupant adresse, numappart 2)Toutes les DF sont de la forme clé -> attribut donc la table est en 3FN

6 Question 3. Normalisation relationnelle avancée ( 2 points) La table ci-dessous décrit des hôpitaux (H) qui commandent des fournitures (F1) à des fournisseurs (F2). HF1F2 Pitiépapier toilettePaulo PitiéseringuesJacques Bichatpapier toiletteJacques Pitiépapier toiletteJacques Montrez que la table n’est pas en 5 ème forme normale.

7 QUESTION 3. Projection P1 sur (H, F1) P1HF1 PitiéPapier toilette PitiéSeringues BichatPapier toilette Projection P2 sur (H, F2) P2HF2 PitiéPaulo PitiéJacques BichatJacques Projection P3 sur (F1, F2) P3F1F2 Papier toilettePaulo SeringuesJacques Papier toiletteJacques

8 QUESTION 3. suite P1 P2HF1F2 PitiéPapier toilettePaulo PitiéSeringuesPaulo PitiéPapier toiletteJacques PitiéSeringuesJacques BichatPapier toiletteJacques P1 P3HF1F2 PitiéPapier toilettePaulo BichatPapier toilettePaulo PitiéSeringuesJacques PitiéPapier toiletteJacques BichatPapier toiletteJacques

9 QUESTION 3. suite suite P2 P3HF1F2 PitiéPapier toilettePaulo PitiéSeringuesJacques BichatSeringuesJacques PitiéPapier toiletteJacques BichatPapier toiletteJacques (P1 P2) (P1 P3)HF1F2 PitiéPapier toilettePaulo BichatPapier toilettePaulo PitiéSeringuesJacques PitiéPapier toiletteJacques BichatPapier toiletteJacques C’est la table initiale Donc la table initiale n’est pas décomposable sans perte en 2 tables plus simples mais elle est décomposable en 3 tables plus simples sans perte Donc elle n’est pas en 5FN

10 Question 4. SQL et « triggers » (sur 3 points) Dans une base de données relationnelle bancaire, on suppose que l’on a les deux tables ci- dessous : COMPTEBANCAIRE ( numcompte, solde, nbopérat, typecompte, numclient) CLIENT ( numclient, nom, adresse, CSP, catégorie) TYPECOMPTE ( typecompte, intitulé, tauxintérêt, tauxdécouvert) COMPTEBANCAIRE décrit, pour chaque compte détenu dans la banque : son numéro (numcompte), le solde du compte (solde), le nombre d’opérations effectuées sur ce compte depuis sa création (nbopérat), le type de compte : PEA, PEP, etc.. (typecompte), le numéro du client possesseur de ce compte (numclient). CLIENT contient les coordonnées des clients : numéro (numclient), nom (nom), adresse (adresse), catégorie socio-professionnelle (CSP), catégorie : o 1 pour les clients ayant plus de 15 000 € dans la banque, o 3 pour les clients ayant moins de 15 000 € et ayant eu au moins un découvert,  2 pour les autres. TYPECOMPTE décrit les caractéristiques des différents types de compte, par exemple : PEP est un Plan d’Epargne Populaire dont le taux d’intérêt est de 4,75% et le taux de découvert de 0%. a) Ecrire un trigger qui empêche une opération amenant le solde d’un compte en dessous de – 5000 € pour les clients ne relevant pas de la catégorie 1. b) Ecrire la requête SQL qui recherche les clients ayant 10 comptes ou plus ouverts dans la banque. c) Ecrire l’arbre algébrique et la requête SQL qui donne les noms des clients de catégorie 3 ayant au moins : - un compte débiteur (c’est-à-dire dont le solde est négatif) - et un compte créditeur (c’est-à-dire dont le solde est positif) avec un taux d’intérêt supérieur à 2%.

11 QUESTION 4. a) CREATE TRIGGER t1 BEFORE INSERT OR UPDATE ON comptebancaire FOR EACH ROW WHEN (new.solde IS NOT NULL) BEGIN IF (:new.solde < -5000) THEN SELECT categorie FROM client WHERE numclient=:new.numclient; IF (categorie 1) THEN raise_application_error (-20300, ‘Decouvert non autorise’); END IF; END;

12 QUESTION 4. b) SELECT * FROM client WHERE numclient IN (SELECT numclient FROM comptebancaire GROUP BY numclient HAVING COUNT(*) >= 10) ;

13 QUESTION 4. c) numclient nom numclient Tauxinteret > 2% Solde > 0 Type compte Solde < 0  Catégorie = 3 Client Comptebancaire Typecompte

14 QUESTION 4. c) suite SELECT nom FROM client WHERE catégorie = 3 AND numclient IN (SELECT numclient FROM comptebancaire WHERE solde < 0 ) INTERSECT (SELECT numclient FROM comptebancaire WHERE solde > 0 AND typecompte IN (SELECT typecompte FROM typecompte WHERE tauxinteret > 2));

15 Question 5. Contrôle de concurrence (sur 3 points) On suppose que x, y, z et t sont des granules d’une base de données. On suppose, de plus, que l’on a cinq transactions qui souhaitent accéder à ces granules. On donne une exécution ci-dessous des cinq transactions : r1(x) r2(y) w1(y) w3(x) w1(t) w5(x) r4(z) r2(z) w4(z) w5(z) r3(t) r5(t) où r désigne une opération de lecture, w une opération d’écriture. Ces opérations sont indicées par la transaction demanderesse et suivies entre parenthèses par le granule concerné. 1) Tracer le graphe de conflit-sérialisabilité. 2) Cette exécution est-elle conflit-sérialisable ? Si oui, donnez une exécution en série qui lui soit conflit-équivalente.

16 t1 t4 t3 t5 t2 QUESTION 5. 1) 2) conflit-sérialisable car le graphe est acyclique Exécution conflit-équivalente avec l’exécution en série 2-4-1-3-5

17 Question 6. Administration de base de données (sur 4 points) a) A quoi sert la table system_privilege_map ? b) Expliquer la commande exp (objectif, principes de fonctionnement, paramètres à mentionner). c) Donner un exemple de création de clé primaire avec une clé étrangère associée sur des tables existantes. d) Comment connaître la liste des contraintes positionnées ?

18 QUESTION 6. a)À connaître la liste des privilèges élémentaires que l’on peut gérer par les commandes GRANT et REVOKE b) Commande d’export Permet de décharger des données de la base dans un fichier pour sauvegarder On peut le faire : -au niveau de la BD complète -au niveau d’un utilisateur : seuls ses objets sont exportés -au niveau d’une table (inclut les index, contraintes, etc.) Les paramètres à préciser : -nom de l’utilisateur -Type (complet, cumulatif, incrémental) -Les tables concernées -Le nom du fichier DUMP (résultat), etc…

19 QUESTION 6. suite c)ALTER TABLE avion ADD CONSTRAINT avion_p_numav PRIMARY KEY (numav); ALTER TABLE revision ADD CONSTRAINT revision_f_numav FOREIGN KEY (numav) REFERENCES avion(numav); d) Consulter les tables dba_constraints ou user_constraints


Télécharger ppt "Question 1. Modélisation conceptuelle et traduction relationnelle (6 points) La Galice (région espagnole) a un réseau de refuges qu’elle gère à l’intention."

Présentations similaires


Annonces Google