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.

Slides:



Advertisements
Présentations similaires
Bases de Données Avancées: Bases de Données Relationnelles
Advertisements

Bases de données : modèlisation et SGBD
1 Bases de donn é es relationnelles. 2 Introduction au mod è le relationnel les donn é es sont repr é sent é es par des tables, sans pr é juger de la.
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Systèmes d’information
Contrôles d'accès aux données
Chap 4 Les bases de données et le modèle relationnel
Exercice Votre client CBEAUCBON.COM h é berge actuellement son site sur deux machines accessibles directement depuis internet. Aucun service de s é curit.
L’utilisation des bases de données
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
SQL: Contraintes et Triggers
Les transactions.
Chapitre 3 La normalisation du modèle relationnel
(Procedural Language / Structured Query Language)
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Module 4 : Implémentation de l'intégrité des données.
Sélection de colonnes (la projection)
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
 L’information est conservée sous forme de tables  Contient: ◦ Un nom ◦ Une clé primaire ◦ Une liste de colonnes ◦ Les informations/données (sous forme.
Définition des contraintes Vérification des contraintes Triggers
06/04/06 LES BASES DE DONNEES INTRODUCTION CogniTIC – Bruxelles Formation - Cepegra.
Le langage SQL.
INTRODUCTION AUX BASES DE DONNEES Base et métabase
INTRODUCTION AUX BASES DE DONNEES Dépendances et normalisation Exercices Université Panthéon-Assas Paris 2 L2 Economie-Gestion.
JI Les systèmes d’autorisation et d’authentification dans AMI Fabian Lambert.
Dossier de camps sur l’intranet. PETIT RAPPEL Un dossier de camp est constitué de 2 parties :  La partie administrative - dates et lieu de camp - composition.
Création d’un site WEB 1 – Un site WEB c’est quoi ? 2 – Questions à se poser avant la construction d’un site WEB 3 – Principes de fonctionnement d’un site.
1) Qu’est-ce que BCDI? BCDI est un logiciel informatique de recherche documentaire : C’est le catalogue informatique du CDI. Au collège on travaille principalement.
Description d’une boussole d’orientation. Le cadran de la boussole est divisé de 0 à 360 dans le sens des aiguilles d'une montre. Un cercle comporte 360.
Développement d’application avec base de données Semaine 3 : Modifications avec Entité Framework Automne 2015.
Bases de données : modèlisation et SGBD Séance 3.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 10 Support de cours rédigé par Bernard COFFIN Université.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 5 Support de cours rédigé par Bernard COFFIN Université.
BTN4U Gérer vos réservations du bout des doigts. BTN4U Gérer les réservations du bout des doigts Consultable toujours et partout Possibilité de multi-tâches.
1 Les bases de données Séance 7 Les fonctions avancées : Opérateurs ensemblistes, Sous-requêtes et transactions.
Chapitre 4 Gestion des disques Module S41. Plan du cours 1. Utilisation de l'outil Gestion des disques 2. Utilisation des disques de base 3. Utilisation.
Un outil de communication : la liste de diffusion Mis à jour en juillet 2008 Anne Maincent-Bourdalé CRDoc IUT Paul Sabatier.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 1 Support de cours rédigé par Bernard COFFIN Université.
INTRANET.SANTEFRANCAIS.CA ANTOINE DÉSILETS Coordonnateur au réseautage et Agent de communication Formation sur l’utilisation de l’Intranet 1.
A RETOURNER À LA FEHAP - Service Adhésion 179 rue de Lourmel Paris - tél. O fax : O Madame, Monsieur le Pr é sident,
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 6 Support de cours rédigé par Bernard COFFIN Université.
Initiation aux bases de données et à la programmation événementielle Outil de création des tables Support de TD rédigé par Bernard COFFIN Université Paris.
Migration Plan adressage EPLE Migration Plan d'adressage EPLE.
Développement d’applications Problèmes relatifs aux BD.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Du panier à la commande client Créer un panier Identification Validation de la commande Paiement Formulaire de création de compte Etats de la commande.
Formation à l’utilisation de K-Sup V5 février 2009 CRISI - COM.
Langages d’interrogation et de manipulation. N. ChaignaudGM4 - Base de données2 1. Algèbre relationnelle  Ensemble d’opérations permettant de manipuler.
COOPERATION TECHNIQUE BELGE GESTION FINANCIERE DES PROJETS APERCU GLOBAL DES PROCESSUS.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 7 Support de cours rédigé par Bernard COFFIN Université.
Master sciences et techniques de géomatique environnementale
INFSO-RI Enabling Grids for E-sciencE Sécurité sur la Grille C. Loomis (LAL-Orsay) Tutorial EGEE Utilisateur (LAL) 8 octobre 2007.
TRESORERIE Cash Call Envoi de fonds Comptabilisation (Formation des comptables/projets) 1.
Conférence préparatoire aux examens intrasemestriels.
FORMATIONENT/SVT Saint Orens Vendredi 15 novembre 2013.
Chapitre 9 Gestion des maîtres d'opérations
Les applications O.Legrand G. Seront. Les applications Chaque application a son Linux.
Protection contre les découverts La protection contre les découverts est un outil permettant au client de respecter ses paiements et de détenir les fonds.
Chapitre 5 Administration des accès aux objets dans les unités d'organisation Module S42.
SQL : 4 fonctions d'exploitation de SGBD SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage informatique ayant pour.
SQL partie 1 Langage de Définition de Données. SQL est un langage de définition de données  SQL est un langage de définition de données (LDD), c'est-à-dire.
Les Bases de données Définition Architecture d’un SGBD
Structured Query Language
Généralité sur les bases de données
Technologies d’intelligence d’affaires
6. PRODUCTION DU CODE DE LA BASE DE DONNEES
SQL InfoBanque 16/11/2018 Halim M'SILTI.
7 Contraintes d’intégrité en SQL
5 Introduction au modèle relationnel 5.1 Concepts de base
Transcription de la présentation:

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.

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)

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)

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.

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

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.

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

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

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

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 € dans la banque, o 3 pour les clients ayant moins de € 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%.

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;

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

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

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));

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.

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

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 ?

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…

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