TP 2 : Conception de base de données



Documents pareils
1 Introduction et installation

CREATION WEB DYNAMIQUE

Bases de données relationnelles

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

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

Concevoir un modèle de données Gestion des clients et des visites

Mercredi 15 Janvier 2014

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

PHP 4 PARTIE : BASE DE DONNEES

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Dossier I Découverte de Base d Open Office

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

CESI Bases de données

CATALOGUE FORMATIONS DOMAINE Bases de données

Les bases de données Page 1 / 8

Licence Professionnelle Commerce Electronique. MySQL. Michel DUBOIS Michel Dubois : Support de cours SGBD N 1

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Java DataBaseConnectivity

Bases de données élémentaires Maude Manouvrier

Pour les débutants. langage de définition des données

Pratique et administration des systèmes

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Le langage SQL Rappels

Le Langage De Description De Données(LDD)

Cours: Administration d'une Base de Données

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

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

Olivier Mondet

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

PHP. PHP et bases de données

Les bases de données

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

La problématique de la Préservation des Bases de Données. Olivier ROUCHON CINES Groupe PIN Jeudi 7 Octobre

CQP ADMINISTRATEUR DE BASES DE DONNÉES (ABD)

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

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

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

Bases de données Cours 1 : Généralités sur les bases de données

Département Génie Informatique

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

Information utiles. webpage : Google+ : digiusto/

Création et Gestion des tables

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

Le Langage SQL version Oracle

Introduction à JDBC. Accès aux bases de données en Java

Présentation du module Base de données spatio-temporelles

Introduction au Système de Gestion de Base de Données et aux Base de Données

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

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

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

Du 10 Fév. au 14 Mars 2014

TP Contraintes - Triggers

AGRÉGATION «ÉCONOMIE ET GESTION»

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage

Utiliser une base de données

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

Bases de données cours 1

FileMaker 13. Guide ODBC et JDBC

Langage SQL : créer et interroger une base

Formation à l utilisation des Systèmes de Gestion de Bases de Données Relationnelles. organisée avec la collaboration du

Bases de données relationnelles & SQL

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Introduction aux Bases de Données

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

Bases de Données Avancées

Mysql avec EasyPhp. 1 er mars 2006

UwAmp. Serveur d'evaluation

Manuel d utilisateur du site de covoiturage «Etucovoiturage»

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

Introduction aux Bases de Données Relationnelles Conclusion - 1

Thème : Gestion commerciale

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

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

//////////////////////////////////////////////////////////////////// Administration bases de données

Rappel sur les bases de données

Installation de Concrete 5

Architecture de la plateforme SBC

Bases de Données. Plan

Optimisations des SGBDR. Étude de cas : MySQL

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

CHAPITRE 1 ARCHITECTURE

16H Cours / 18H TD / 20H TP

Gestion des bases de données

Chaîne opératoire de réalisation d une base de données. ANF «Comment concevoir une base de données» (29-30/01/2015)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

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

Bases de Données Relationnelles. Le Modèle Relationnel

INTRODUCTION : Données structurées et accès simplifié

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Objectifs du TP : Initiation à Access

PROJET DE PORTAIL INTRANET YNNA

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

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Transcription:

TP 2 : Conception de base de données La modélisation conceptuelle résulte en un schéma conceptuel qu il importe de rendre opérationnel à l aide d une représentation logique dont le formalisme dépend du type de système de gestion de base de données (SGBD) visé. Dans ce TP, vous allez aborder la conception logique relationnelle qui aboutira à un schéma implantable sur tout SGBD relationnel. I. Génération de Script SQL L objectif de cet exercice est de générer un script SQL et d interroger la base de données que vous aurez créée. Vous allez pour cela, suivre les étapes suivantes. 1) Créer le modèle conceptuel de la figure suivante avec JMerise Dictionnaire de données: Pendant la phase de conception, les données recueillies et spécifiées sont inscrites dans un dictionnaire. Ce dictionnaire est un outil important car il constitue la référence de toutes les études effectuées ensuite. On dispose du dictionnaire des données suivant : 1

Code de la donnée Désignation Type Taille num_vendeur Numéro du vendeur N - nom_vendeur Nom du vendeur A 20 ville_vendeur Ville où travaille le vendeur A 15 num_client Numéro du client N - nom_client Nom du client A 20 rue_client Rue où habite un client AN 20 CodePClient Code postal du client AN 5 Ville_Client Ville où habite client A 15 DateNClient Date de naissance du client Date - Email Adresse e-mail du client AN 320 NumFacture Numéro de facture N - DateFacture Date de création de la facture Date - NumProduit Identifiant du produit N - LibProduit Libellé du produit AN 30 PrixProduit Prix du produit N - Quantite Quantité commandée N - Le dictionnaire des données est un document qui regroupe toutes les données que vous aurez à conserver dans votre base. Pour chaque donnée, il indique : Le code de la donnée : il s'agit d'un libellé désignant une donnée La désignation : il s'agit d'une mention décrivant ce à quoi la donnée correspond Le type de donnée : o A ou Alphabétique : lorsque la donnée est uniquement composée de caractères alphabétiques (de 'A' à 'Z' et de 'a' à 'z') o N ou Numérique : lorsque la donnée est composée uniquement de nombres (entiers ou réels) o AN ou Alphanumérique : lorsque la donnée peut être composée à la fois de caractères alphabétiques et numériques o Date : lorsque la donnée est une date (au format AAAA-MM-JJ) o Booléen : Vrai ou Faux La taille : qui s'exprime en nombre de caractères ou de chiffres. Et parfois des remarques ou observations complémentaires (par exemple si une donnée est strictement supérieure à 0, etc). 2) Générer le modèle relationnel. Le script SQL pour MySQL sera généré automatiquement. Le système de gestion de base de données par défaut est MySQL. 3) Enregistrez le script généré sous le nom de «MySQLScript.sql». Consultez le script généré. 4) Vous allez changer de système cible en générant différents scripts pour SQLite, Postgre SQL et Oracle. Comparer les scripts générés avec celui de MySQL. Que remarquez-vous? 5) Vous allez vous connecter à une base de données. La base de données sera implantée sur un serveur MySQL. Pour cela : a. Vous allez installer Uwamp qui est un package de type WAMP regroupant Apache, PHP, MySQL, SQLite et phpmyadmin. Vous allez télécharger Uwamp à l adresse suivante (http://www.uwamp.com/fr/), vous sélectionnerez Télécharger Exe/Install et installerez Uwamp 2

b. Vous démarrez l'interface de contrôle de UwAmp et vérifiez que les modules Apache et MySql sont bien démarrés. c. Vous allez créer votre base de données. Pour cela, vous allez sur PHPMyadmin, saisir les identifiants de connexion qui sont par défaut : i. Utilisateur : root ii. Mot de passe :root Créer votre base données qui se nommera «Vente». d. JMerise permet d'établir une connexion JDBC avec une base de données. Avant d'essayer de vous connecter, assurez-vous que le pilote JDBC soit correctement installé en allant sous dans le sous-répertoire: / lib de votre dossier JMerise. e. Vous allez vous connecter à la base de données «Vente» à partir de JMerise en allant sous l onglet: Base de donnéesconnexion à la base de données et saisir les identifiants de connexion ainsi que le nom de la base de données. f. Vous allez exécuter le script SQL : Base de donnéesexécuter le script SQL g. Vérifier que les tables ont bien été créées en allant soit sous phpmyadmin soit sous l onglet Rétro-ConceptionImporter les tables. 6) Après la création de vos tables, vous aurez besoin de les remplir. Rédigez le script SQL d insertion d un jeu d essai. Exécuter le script d insertion. 7) A l aide du langage SQL, vous interrogerez la base de données notes pour extraire : a) Nom des vendeurs b) Liste des vendeurs triés par ville c) Contenu intégral de la table VENDEUR d) Liste des clients de la ville de Marseille e) Liste des clients qui ont acheté au moins un produit II. Vol Pour les besoins de la gestion d un aéroport, on dispose d un logiciel de gestion de base de données relationnelle. On dispose de la structure des tables et d un jeu d essai non exhaustif et qui a pour but de rendre plus concret le sous-système d information de l aéroport. AVION Immatriculation Date_achat Nom_T F-BORG 12-MAI-99 Sportavia D-ABEN 25-DEC-96 Boeing 737 D-EC123 01-AVR-89 Heinkel D-B140 15-OCT-98 Boeing 737 INTERVENTION Num_ int Immatriculation Objet Date SSN_M Heure_ debut 1196 F-BORG Control 12-MAR-2003 15403990252 0930 1530 520 D-ABEN Panne 26-MAI-2005 17812663215 0800 1700 575 D-ABEN Control 27-MAI-2005 17812663215 0700 1000 230 D-EC123 Panne 12-OCT-2012 26904663212 0600 2330 2320 D-B140 Panne 11-SEP-2008 26904663212 0800 1100 Heure_ fin 3

TYPE AVION Nom_T Nom_constructeur Nb_places Boeing 737 Boeing 200 Heinkel Heinkel Flugzeugwerke 2 Sportavia René Fournier 1 MECANICIEN SSN_M Nom_M Adresse_M Numero_tel 15403990252 Marx 45 rue des pins 13010 Marseille 0658991230 17812663215 Laroue 12 rue des remparts 84000 Avignon 0695123078 26904663212 Liane 78 avenue des mers 13006 Marseille 0676306289 PILOTE SSN_P Numero_brevet Nom_P Adresse _P 19603657812 12 Joe 6 rue des martyrs 69100 villeurbanne 29032145678 36 Martin 5 avenue des ports 13008 Marseille 17862365413 85 Tricon 8 rue des bleus 13015 Marseille VOL Nom_T SSN_P Nombre_vols Boeing 737 29032145678 2 Sportavia 19603657812 100 1. Pourquoi le nom du type de l avion est-il présent dans plusieurs tables? 2. Certains avions ont gardé des immatriculations numériques alors que depuis l année 1934 les immatriculations ont changé et sont toutes devenues alphabétiques. La société de vol souhaite donc se conformer aux nouvelles normes et mettre à jour les immatriculations de ses différents avions. Quelles conséquences en tirez-vous sur le choix de l identifiant? 3. Déterminer le modèle entité association 4. Créer vos tables de base de données sous phpmyadmin. Vous nommerez votre base de données «AEROPORT». ATTENTION : Le moteur de stockage doit être «InnoDB» qui est un moteur de stockage pour le SGBDR MySQL. Si vous omettez de spécifier ce moteur de stockage, vous ne pourrez pas spécifier les contraintes d intégrité référentielle (clé étrangère). 5. Spécifier vos clés étrangères. Pour pouvoir ajouter une clé étrangère, vous pouvez soit écrire le script SQL soit passer par l interface phpmyadmin en sélectionnant la table onglet StructureVue relationnelle. Dans ce cas, la description de la clé étrangère doit spécifier le mode de gestion choisi lors des mises à jour (ON UPDATE) ou de suppression (ON DELETE). Les différents modes de gestion de l intégrité référentielle sont les suivants : ON DELETE NO ACTION / ON UPDATE NO ACTION : est la valeur par défaut et correspond à aucun traitement particulier n'est entrepris en cas de mise à jour ou suppression d'informations référencées. En cas de tentative de suppression d'une ligne possédant une clé référencée par des clés étrangères dans des lignes 4

d'autres tables, une erreur est générée et l'instruction DELETE est restaurée (idem pour le UPDATE). ON DELETE CASCADE / ON UPDATE CASCADE : la suppression/ modification est propagée à tous les éléments dépendants. ON DELETE SET NULL / ON UPDATE SET NULL : en cas de suppression d'un élément, les éléments qui le référence voit leur clef étrangère posséder le marqueur NULL. De même en cas de modification de la valeur de la clef. Le lien d'intégrité est alors brisé. ON DELETE SET DEFAULT / ON UPDATE SET DEFAULT : en cas de suppression comme en cas de mise à jour de la clef référencée, la référence passe à la valeur par défaut définie lors de la création de la table. ON DELETE RESTRICT / ON UPDATE RESTRICT : ce mode rejette l update si, avant exécution, il existe des lignes dépendant de la ligne modifiée. 6. Procédez à la rétro-conception en générant le modèle entité association à partir de vos tables de la base de données «AEROPORT» onglet Rétro-ConceptionImporter les tables et construisez le MCD. 7. Comparez le modèle obtenu par rapport au modèle que vous avez défini à la question 3). Que pensez-vous de cette manière de procéder? 8. Vérifier et exécuter le script d insertion «script_aerop.sql» correspondant au jeu d essai qui vous est fourni. ATTENTION au type des données que vous choisissez et au nom des colonnes. 9. A l aide du langage SQL, vous interrogerez la base de données pour extraire : a) L avion dont la durée d intervention est inférieure à 4h. b) La liste des pilotes qui habitent soit à Marseille soit à Villeurbanne c) Le numéro de téléphone des mécaniciens qui ont intervenu après 08h du matin d) Le nombre de vols effectués par le pilote «Joe» e) Le nombre d interventions réalisées par le mécanicien «Laroue». f) Le type d interventions effectuées sur l avion «Boeing 737» g) L avion qui a été le moins contrôlé h) Toutes les interventions opérées sur les avions pilotés par le pilote «Martin». i) Le nom des avions qui n ont pas été contrôlés pour une panne j) Pour chaque avion (immatriculation et nom) le nombre de pilotes triés par ordre croissant des noms de l avion 10. Les besoins pour la gestion de l aéroport ont évolué faisant apparaître de nouvelles données qui doivent être prises en considération dans votre base de données: Chaque avion possède un propriétaire. On doit connaître le nom, l adresse et le numéro de téléphone du propriétaire. La maintenance des avions est assurée par les mécaniciens de l aéroport. Par sécurité, les interventions sont toujours effectuées par deux mécaniciens (l un répare, l autre vérifie). Quel est l impact de ces nouvelles données sur votre base de données? 11. Ecrire une requête SQL permettant de déterminer tous les propriétaires d un avion ayant déjà subi au moins une intervention. 5