TD4 - Autoformation 2

Documents pareils
INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

NF26 Data warehouse et Outils Décisionnels Printemps 2010

I4 : Bases de Données

.../5. Gestion de Bases de Données (J. Wijsen) 27 janvier 2011 NOM + PRENOM : Orientation + Année : Cet examen contient 8 questions. Durée : 2 heures.

Année Universitaire 2009/2010 Session 2 de Printemps

TP3 : Creation de tables 1 seance

Bases de Données. Plan

CREATION WEB DYNAMIQUE

Application web de gestion de comptes en banques

Bases de Données Avancées

Ecole Polytechnique de Louvain INGI Fichiers et bases de données

Compétences Business Objects

Bases de Données relationnelles et leurs systèmes de Gestion

Cours: Administration d'une Base de Données

A QUOI SERVENT LES BASES DE DONNÉES?

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Cours Bases de données 2ème année IUT

UML et les Bases de Données

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

1/ Présentation de SQL Server :

Compte-rendu de projet de Système de gestion de base de données

Introduction aux bases de données. Généralités sur les bases de données. Fonctions d'un SGBD. Définitions. Indépendance par rapport aux traitements

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

PHP 5. La base de données MySql. A. Belaïd 1

Langage SQL : créer et interroger une base

Cours: Les Jointures 1

Connecteur bi directionnel SAGE MAGENTO

Bases de données relationnelles

1 Modélisation d une base de données pour une société de bourse

Modélisation de bases de données : Le modèle relationnel

... /5. Bases de Données I (J. Wijsen) 23 janvier 2009 NOM + PRENOM : Orientation + Année : Cet examen contient 11 questions.

Olivier Mondet

Pratique et administration des systèmes

CINEMATIQUE DE FICHIERS

Le Langage De Description De Données(LDD)

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Stockage du fichier dans une table mysql:

I. MySQL : Serveur et SGBD

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Introduction aux Bases de Données

TP Contraintes - Triggers

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Chapitre 10. Architectures des systèmes de gestion de bases de données

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Conception des bases de données : Modèle Entité-Association

Entrepôt de données 1. Introduction

SESSION 2014 ÉPREUVE À OPTION. (durée : 4 heures coefficient : 6 note éliminatoire 4 sur 20)

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Les bases de données Page 1 / 8

Chapitre 07 Le modèle relationnel des données

Diagramme de classes

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Introduction aux Systèmes de Gestion de Bases de Données Relationnelles. Olivier Losson

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

Modèle conceptuel : diagramme entité-association

Historisation des données

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Le langage SQL (première partie) c Olivier Caron

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Gestion de base de données

Raja Bases de données distribuées A Lire - Tutoriel

Les bases de données

Tarif Public. Sage BOB 50 PME Mode Licence

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Les tableaux de bord de pilotage de nouvelle génération. Copyright PRELYTIS

Guide d'installation et de configuration du module

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

David LUCAS 15/01/10 Ludovic HUET Sébastien LE NECHET Jason JAMOT. Projet BO

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

Rappel sur les bases de données

Création et Gestion des tables

Optimisations des SGBDR. Étude de cas : MySQL

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

SUPPORT DE COURS / PHP PARTIE 3

Modélisation et Gestion des bases de données avec mysql workbench

Intégrité sémantique dans les bases de données relationnelles

contact@nqicorp.com - Web :

Cours SGBD 1. Concepts et langages des Bases de Données Relationnelles

Principes de la conception des bases de données

Bases de données. PTSI Lycée Eiffel. 28 février 2014

ERP open source une solution pour les entreprises. 17/02/2010 Page: 1

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

1 Position du problème

MEGA Database Builder. Guide d utilisation

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

A QUOI SERVENT LES BASES DE DONNÉES?

Le "tout fichier" Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique

INITIATION AUX BASES DE DONNEES MODELISATION et LANGAGE SQL

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Débuter avec OOo Base

BUSINESS INTELLIGENCE

Transcription:

Base de Données Avancées B Enseignant : Pierre Parrend Licence Professionnelle CE-Stat 06.03.2006 TD4 - Autoformation 2 1 Formes normales 1.1 Exercice 1 Considérez la relation suivante : VenteVoiture(NumVoiture, DateVente, NumVendeur, Commission, Réduction). On suppose que chaque voiture (type de voiture) peut être vendue par plusieurs vendeurs, et que par conséquent {NumVoiture, NumVendeur} soit la clé primaire. Les autres dépendances sont : DateVente -> Réduction, NumVendeur -> Commission. Compte tenu de la clé primaire donnée, la relation est-elle en 1NF, en 2NF, ou en 3NF? Expliquez. Comment procéder pour la normaliser complètement (c'est à dire la passer en BCNF)? Réponse La seule clé candidate possible est (numvoiture, numvendeur). La relation est en 1 NF (forme normale 1). En eet : 1. Les attributs ont des valeurs simples (critères de 1NF respectés), 2. Une DF (dépendance fonctionnelle) existe entre numvendeur et Commision, c'est à dire entre une sous-partie de la clé et un attribut (critères de 2FN non respecté), 3. De plus, une DF existe entre DateVente et Commission, c'est à dire entre deux (ensembles d') attributs ne faisant pas partie de la clé candidate (critère de 3FN non respecté). Le passage en BCNF (Forme Normale de Boyce-Codd) consiste à isoler chaque dépendance fonctionnelle dans un schéma relationnel : reduction(datevente, Réduction), vendeur(numvendeur, Commission), vente(numvoiture, NumVendeur, DateVente). 1

1.2 Exercice 2 Considérez la relation suivante : Livre (Titre, Auteur, CategorieLivre, Prix, AliationAuteur, Editeur). Les dépendances suivantes sont valables : Titre -> Editeur, CategorieLivre CategorieLivre -> Prix Auteur -> AliationAuteur 1. Quelle est la forme normale dans laquelle se trouve cette relation? Expliquez. 2. Eectuez la normalisation, jusqu'à ce que vous ne puissiez plus décomposer les relations. Donnez les raisons de chaque décomposition. 3. A quelle forme normale se conforme maintenant les relations? Réponses La seule clé candidate possible est l'attribut Titre. Forme normale de la relation : 2NF. En eet : En eet : 1. Les attributs ont des valeurs simples (critères de 1NF respectés), 2. La clé candidate est composée d'un seul attribut. Par conséquent, aucun sous-ensemble de la clé candidate ne peut être source de DF. Pat conséquent, la relation est en 2NF, 3. De plus, une DF existe entre CatégorieLivre et Prix, entre Auteur et Af- liationauteur, c'est à dire entre deux (ensembles d') attributs ne faisant pas partie de la clé candidate (critère de 3FN non respecté). Le passage en 3NF consiste à isoler les DF ayant pour source des attributs hors de la clé candidate : livre(titre, Auteur, Editeur, CatégorieLivre), prixlivre(categorielivre, Prix), auteur(auteur, AliationAuteur). Les schémas relationnels résultants respectent également les critères de la BCNF (Car une seule clé candidate existe). 2 Etude de Cas Vous proposerez une solution à la situation suivante, en veillant à ce que vos tables de données soient conformes à la forme normale de Boyce-Codd (BCNF). 2

2.1 Enoncé Réalisez la conception de la Base de Données correspondant à la situation suivante, à l'aide de la méthodologie UML: Diagrammes de Cas d'utilisation, Diagrammes de Classes, Schéma relationnel des tables de données Requêtes SQL de création de ces tables. Vous devez réaliser une Base de Données d'utilisateurs pour une bibliothèque. Les informations de cette Base de Données sont : les ches d'identité des utilisateurs (Nom, Prénom, Age, Adresse, numéro de téléphone, date de premier emprunt), les données concernant les livres (Auteur, Titre, Edition, Identiant dans le catalogue de la bibliothèque), les emprunts (Utilisateur, Livres empruntés). 2.2 Questions 1. Analysez maintenant vos relations an de vérier la forme normale dans laquelle elles se trouvent. 2. Quelle requête SQL permet de trouver l'ensemble des livres empruntés (actuellement et auparavant) pour un utilisateur? 3. Quelle requête SQL permet pour un livre de savoir s'il est disponible ou s'il est emprunté (attention il peut exister plusieurs exemplaires d'un livre dans le catalogue de la bibliothèque)? 2.3 Réponses 2.3.1 Diagramme de Cas d'utilisation : Analyse Acteurs Les acteurs de ce scénario sont : Les bibliothécaires, qui gèrent les emprunts d'ouvrages, Les utilisateurs de la bibliothèques, qui peuvent consulter le catalogue pour savoir si les ouvrages qu'ils cherchent sont disponibles. 3

Systèmes Nous nous situons dans une architecture d'application web classique. Les sytèmes sont donc : le serveur web, le serveur de traitement, le serveur de gestion des données, la base de données. Cas d'utilisation Les cas d'utilisation sont les suivants : un utilisateur consulte le système, pour chercher un ouvrage donné, un(e) bibliothécaire ajoute un utilisateur, un(e) bibliothécaire réalise l'emprunt d'un ouvrage pour un utilisateur. 2.3.2 Diagramme de Cas d'utilisation Le diagramme suivant est le diagramme de Cas d'utilisation correspondant à l'analyse que nous venons de réaliser : 2.3.3 Diagramme de Classes Le diagramme suivant est le diagramme de Classes correspondant au diagramme de Cas d'utilisation précédent, complété par les informations données par l'énoncé concernant les caractéristiques des diérents types de données. 4

2.3.4 Schémas relationnels Les schémas relationnels correspondant à ce diagramme de Classe sont les suivants : Livre(titre, auteur, edition, identiant), Emprunt(utilisateur, emprunt), Utilisateur(nom, prenom, age, adresse, numtelephone, datapremieremprunt). 2.3.5 Analyse des formes normales Schéma relationnel 'Livre'. Les clés candidates sont : le titre et l'auteur (on considère qu'un auteur n'écrit qu'un seul ouvrage avec un titre donné), l'identiant. Les dépendances fonctionnels sont : 1. identiant (titre, auteur), 2. titre, auteur edition. 5

La situation la plus simple est d'avoir une clé primaire composée d'un seul attribut. On choisit donc 'identiant'. Validation des critères de 1NF : pas d'atributs à valeur multiple. La table est donc en 1NF. Validation des critères de 2 NF : un seul attribut compose la clé. Il ne peut donc pas exister de DF entre un sous-ensemble de la clé et un (ou plusieurs) attributs. La table est donc en 2NF. Validation des critères de 3NF : il existe une DF entre (titre, auteur) et édition. La table n'est donc pas en 3NF. An d'obtenir des schémas relationnels conformes à la 3NF, on sépare les DF dans des tables de données distinctes : livre(identiant, #titre, #auteur), edition(titre, auteur, edition). Comme il existe maintenant une seule DF par table, les schémas relationnels proposés sont également conforme à la BCNF. Schéma relationnel 'Emprunt'. La clé candidate est utilisateur. La dépendance fonctionnelle est : utilisateur livre. Il existe une seule clé candidate. Par conséquent, le choix de la clé primaire est direct. Validation des critères de 1NF : pas de champs à valeur multiple.la table est donc en 1NF. Validation des critères de 2 NF : un seul attribut compose la clé. Il ne peut donc pas exister de DF entre un sous-ensemble de la clé et un (ou plusieurs) attributs. La table est donc en 2NF. Validation des critères de 3NF : il existe un seul attribut hors de la clé. Il ne peut donc y avoir de DF entre deux attributs hors de la clé. Le schéma relationnel respecte donc la 3FN. De plus, comme une seule clé candidate existe, la BCNF est également respectée. Schéma relationnel 'Utilisateur'. La seule clé candidate possible est (Nom, Prenom). En eet, les autres attributs à valeur xe, comme le numéro de téléphone, peuvent être amenés à évoluer. Les DF sont : Nom, Prenom adresse, datepremieremprunt, adresse numerodetelephone. Analyse du type de normalisation de la Base de Données 6

Validation des critères de 1NF : pas de champs à valeur multiple.la table est donc en 1NF. Validation des critères de 2 NF : aucun sous-ensemble de la clé n'est source de dépendance fonctionnelle. Par conséquent, la table est donc en 2NF. Validation des critères de 3NF : il existe une DF entre deux attributs hors de la clé. Par conséquent, le schéma relationnel ne respecte pas la 3eme Forme Normale. An d'obtenir des schémas relationnels conformes à la 3NF, on sépare les DF dans des tables de données distinctes : Utilisateur (Nom, Prenom, adresse, datepremieremprunt), Coordonnées (adresse, numerodetelephone). 2.3.6 Diagramme de Classes modié Les analyses réalisées dans la question précédente conduisent à la réécriture du Diagramme de Classe représentant le système. Le système modié est la bibliothèque. On observe dans ce Diagramme de Classes des redondances de données, qui peuvent être simpliées par le biais d'associations entre classes. La modication du Diagramme de Classes conduit aux diagramme suivant : 7

Attention : Ces modications concernent les classes, et donc le programme. Les relations de données restent inchangées. 2.3.7 Requêtes SQL de création des tables Les requêtes SQL de création des tables de données sont, d'après les schémas précédents : Création de la table Edition CREATE TABLE Edition ( titre varchar(50) NOT NULL, auteur varchar(50) NOT NULL, edition varchar(50), Primary Key(titre, auteur) ); Création de la table Livre CREATE TABLE Livre ( identifiant int(8) NOT NULL, 8

titre varchar(50) NOT NULL, auteur varchar(50) NOT NULL, Primary Key(identifiant), Foreign Key(titre,auteur) ); Création de la table Emprunt CREATE TABLE Emprunt ( idlivre int(8) NOT NULL, nomutilisateur varchar(50) NOT NULL, prenomutilisateur varchar(50) NOT NULL, Primary Key(ideLivre, nomutilisateur, prenomutilisateur), Foreign Key(idLivre), Foreign Key (nomutilisateur, prenomutilisateur) ); Création de la table Utilisateur CREATE TABLE Utilisateur ( nom varchar(50) NOT NULL, prenom varchar(50) NOT NULL, adresse varchar(50), datepremieremprunt int(8), 9

Primary Key (nom, prenom) ); Création de la table Coordonnees CREATE TABLE Coordonnees ( adresse varchar(50) NOT NULL, numerodetelephone int(10), Primary Key (adresse) ); 2.3.8 Requêtes SQL d'utilisation des tables Ensemble des libres empruntés par un utilisateur On pose 'nomutil' la variable permettant d'identier le nom de l'utilisateur recherché, dans la requête paramétrique. Select Livre.identifiant, Livre.titre, Livre.auteur From Livre, Emprunt, Utilisateur, Coordonnees Where Utilisateur.nom = 'nomutil' and Emprunt.idLivre = Livre.IDLivre and Emprunt.nomUtilisateur = Utilisateur.nom and Emprunt.prenomUtilisateur = Utilisateur.prenom and Utilisateur.adresse = Coordonnees.adresse Disponibilité d'un livre On pose 'titre' la variable permettant d'identier le nom du livre recherché, 'auteur' la variable identiant le nom de son auteur. 10

Select Livre.identifiant, Emprunt.identifiant from Livre, Emprunt where Livre.titre = 'titre' and Livre.auteur = 'auteur' and Emprunt.titre = Livre.titre 11