TRAVAUX PRATIQUES DE BASES DE DONNEES PARTIE A : CONCEPTION DU MCD ET MLD



Documents pareils
COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Bases de données relationnelles

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

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

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

TP3 : Creation de tables 1 seance

Le Langage SQL version Oracle

CREATION WEB DYNAMIQUE

TP Bases de données réparties

TP Contraintes - Triggers

Auto-évaluation Oracle: cours de base

Devoir Data WareHouse

SQL Historique

Les bases de données

Le Langage De Description De Données(LDD)

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

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

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

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

Langage SQL : créer et interroger une base

Mejdi BLAGHGI & Anis ASSÈS

Compétences Business Objects

16H Cours / 18H TD / 20H TP

A QUOI SERVENT LES BASES DE DONNÉES?

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Dossier I Découverte de Base d Open Office

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

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

Olivier Mondet

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

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

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

Le langage SQL Rappels

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

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

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

Master Exploration Informatique des données DataWareHouse

A QUOI SERVENT LES BASES DE DONNÉES?

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

I. MySQL : Serveur et SGBD

Création et Gestion des tables

Partie 0 : Gestion des tablespace et des utilisateurs... 3

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

1. Base de données SQLite

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)

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

Bases de données élémentaires Maude Manouvrier

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

I4 : Bases de Données

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

MySQL / SQL EXEMPLES

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

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

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Les BASES de DONNEES dans WampServer

OpenPaaS Le réseau social d'entreprise

1 Introduction et installation

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

BTS/CGO P10 SYSTEME INFORMATION Année

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Administration des bases de données. Jean-Yves Antoine

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

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

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

Notes de cours : bases de données distribuées et repliquées

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

Vincent Augusto

LE MODELE CONCEPTUEL DE DONNEES

Tickets 3:3. ChevauxPartants

Pour les débutants. langage de définition des 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

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

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

Systèmes de Gestion de Bases de Données

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Corrigés détaillés des exercices

Intégrité des données

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

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

Historisation des données

ÉLÉMENTS INDICATIFS DE CORRIGÉ. BARÈME GLOBAL sur 140 points

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

PROJET 1 : BASE DE DONNÉES REPARTIES

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

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

Application web de gestion de comptes en banques

1. Introduction. Bases de données Réparties, Fédérées et Réplication. Plan. Bibliographie du cours

Rappel sur les bases de données

Bases de données relationnelles & SQL

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

WEB DEVELOPER SGBD SYSTEME DE GESTION DE BASES DE DONNEES L étudiant sera capable :

MASTER II ECONOMIE ET GESTION Spécialité Management des Organisations de la Neteconomie

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

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

PHP 4 PARTIE : BASE DE DONNEES

Transcription:

TRAVAUX PRATIQUES DE BASES DE DONNEES PARTIE A : CONCEPTION DU MCD ET MLD Cette partie est à réaliser sur papier uniquement. Il s agit de réaliser un modèle conceptuel de données (MCD) suivi du modèle logique de données (MLD) dans le modèle relationnel. Le cas étudié est celui d une petite entreprise dont les règles sont énoncées ci-dessous. Dans la suite du TP, une partie de ce MLD sera implémenté sur le SGBD cible (Oracle, Access, etc.) Méthodologie : Réaliser des sous schéma (par exemple le sous schéma des employés avec les divisions) en indiquant chaque fois les règles de gestion utilisées. Penser à indiquer les cardinalités. Faire alors l union des sous schémas et vérifier la cohérence globale. Appliquer les règles de vérification ainsi que les formes normales vues en cours. Passer alors au MLD (rappel, une association de cardinalité 1-1 fusionne avec l entité) ATTENTION : Si certaines règles ou précisions vous manquent, spécifiez-les. Règles de gestion : Règle 1 : L entreprise est organisée en divisions identifiées par un numéro, désignées par un nom. Chaque division est dirigée par un employé de l entreprise. Règle 2 : Un employé est identifié par un matricule, nommé par son nom et prénom. Il travaille dans une seule division où il exerce une fonction qui peut être Président (1 pour l entreprise), Directeur (1 par division) ou Vendeur. Un employé perçoit un salaire. Les informations suivantes sur les employées seront stockées : adresse complète, téléphone, date de naissance. Règle 3 : Un employé perçoit une prime sur les ventes qu il réalise directement (vendeur) ou indirectement (directeur ou président). La prime directe s élève à 5% des ventes, les primes indirectes s élèvent à 1% des ventes. Règle 4 : Les clients de l entreprise sont identifiés par un numéro. Les informations suivantes sur les clients seront stockées : nom, prénom, adresse complète, téléphone. Règle 5 : Une commande est identifiée par un numéro de commande. Elle est réalisée par un employé pour un client. De plus les informations suivantes seront stockées : date de la commande, date de livraison, adresse complète de livraison (incluant nom, prénom, adresse et téléphone), frais de port. Règle 6 : Une commande concerne un ou plusieurs produits. Pour chaque produit commandé, on indiquera la quantité commandée. Une remise peut être effectuée en fonction de cette quantité. C est l employé (vendeur) qui décide au cas par cas du taux de cette remise. Règle 7 : Un produit est identifié par un numéro. Il possède un nom et un prix unitaire. Il est fourni par un seul fournisseur. Règle 8 : Un fournisseur est identifié par un numéro. Les informations suivantes sur les fournisseurs seront stockées : nom, prénom, adresse complète, téléphone. Règle 9 : Une commande est livrée par un messager. Un messager est identifié par un numéro, possède un nom, un prénom, une adresse complète et un téléphone. Page -- 1

Partie B : Création / Modification du schéma (MPD) Il s'agit de construire le schéma de la base. Nous nous intéresserons dans la suite du TP à une sous partie du schéma concernant les commandes. Table client : CLI (CodeCli, NomCli, Pays) Table commande : COM (NumCom, CodeCli, FraisPort, AnCom); Table détail commande : DET (NumCom, NumProd, Qte, Remise) Table produit : PROD (NumProd, NumFour, NomProd, TypeProd) Table fournisseur : FOUR (NumFour, NomFour, Pays, Tel); Code du client : CodeCli, Nom du client : NomCli, Pays : Pays du client (ou du fournisseur) Numéro de la commande : NumCom, Frais de port : FraisPort, Année de commande (ex 1992) : AnCom, Numéro de produit : NumProd, Quantité : Qte, Remise effectuée : Remise, Numéro de fournisseur : NumFour, Nom du produit : NomProd, Type de produit : TypeProd Nom du fournisseur : NomFour, Téléphone du fournisseur : Tel B1. Dessiner le schéma de la base en faisant ressortir les clés primaires et étrangères B2. Créer les cinq relations de la base ci-dessus (pensez aux clés primaires et étrangères) B3. Y a-t-il un ordre à respecter lors de la création de ces tables, si oui lequel? Pourquoi? B4. Vérifier vos créations : sous SQL*plus : Utiliser la commande : desc <nomtable> B5. Modifier les types précédemment définis : CodeCli devient number(4), Nom devient char(30). Peut-on changer un type en diminuant sa taille? B6. Ajouter un attribut Téléphone (Tel) pour les clients B7. Ajouter le prix unitaire (PrixUnit) pour les produit B8. Identifier les attributs qui doivent être obligatoirement renseignés (not Null) et modifier votre schéma en conséquence. - Exemple : create table PROD ( NumProd number(5) constraint Cle_Pro primary key, NumFour [number(2)] constraint Prod_Ref_Four references FOUR, Nom char(20) constraint NomProd_Not_Null not null); - Les types disponibles sont : number(n), char(n), date, number(m,n) - Faire attention à la cohérence de type des attributs de jointures (même domaine). - Consulter la liste des types sur le manuel Oracle. - Modifier le type des attributs : ALTER TABLE <nom table> MODIFY ( <attr> newtype, ) - Ajouter un attribut à une relation : ALTER TABLE <nom table> ADD ( <newattr> type, ) - Problème des Valeurs Nulles : Un attribut d'une table déclaré "not null" doit nécessairement être renseigné lors de l'insertion d'un tuple. Page -- 2

Partie C : Insertion / Mise à jour / suppression de données C1. Insérer un jeu de données cohérent dans vos relations (un ou deux tuples par relation) C2. Est-il possible d'ajouter un attribut à une relation comprenant déjà des données? Si oui quelles sont les conditions à respecter? C3. Est-il possible de changer la taille d un attribut d une relation contenant des données? C4. Mettre en majuscule les noms des clients (fonction UPPER) C5. Multiplier par deux les remises associées aux commandes passées après 1996 C6. Supprimer les clients français C7. Supprimer les clients qui ont commandé avant 1991 C8. Vider toutes vos tables. Y a-t-il un ordre à respecter? Si oui, pourquoi? C9. Supprimer toutes vos tables. Y a-t-il un ordre à respecter? Si oui, pourquoi? Exemples : - insert into PRO values (120, 10, Balai, 18); - update PRO set PrixUnit = PrixUnit * 2 where NumFour = 10; - delete from PRO where NumFour = 10; - Méthode imbriquée : Delete from PRO where numpro in (select numpro from..) Page -- 3

Partie D : Insertion massive de données Mise en place Copier les fichiers CREATE.sql, CLI.ctl, COM.ctl, DET.ctl, PRO.ctl, FOUR.ctl sur votre compte à partir de http://www.prism.uvsq.fr/~bouga Le chemin où trouver ces fichiers vous sera donné lors du TP. Exécuter le script CREATE.sql (en tapant @CREATE ou start CREATE dans sqlplus) Questions D1. Sous unix, charger les cinq relations exemple : sqlldr / CLI.ctl CLI.log D2. Y a-t-il un ordre à respecter lors du chargement des relations, si oui pourquoi D3. Vérifier que vous avez l'intégralité des données : 91 Clients, 1078 Commandes, 2809 Détails, 77 Produits et 29 Fournisseurs. Il vous en manque?? i. Vérifier les log créés lors du chargement (exemple : more CLI.log) ii. Trouvez le problème et résolvez le (le cas échéant en rechargeant les données corrigées après les avoir supprimées). Exemples : LOAD DATA (Charger des données) INFILE * (les données se trouvent dans ce fichier) APPEND (On veut les ajouter dans la table.) INTO TABLE CLI (c est dans la table CLI) FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' (champs terminés par des ;) ( encadrés éventuellement par des " ) (CodeCli,NomCli,Pays,Tel) (liste des attributs indiqués ci-dessous) BEGINDATA (les données commencent après cet inst ) 1, Maria,Pologne,4867427275 (1 er tuple codecli = 1, nomcli = Maria, etc.) 2,"Ana",Autriche","4905219433" (2 ème tuple.) 3,"Antonio","Espagne","7062001573" (3 ème tuple ) Page -- 4

Partie E : Manipulation des données Répondez aux questions suivantes en interrogeant votre base : E1. Liste des clients? E2. Liste des clients français triés par ordre alphabétique? E3. Noms des clients français ou anglais? E4. Quels sont les produits vendus à "Antonio" E5. Quels sont les fournisseurs de produits de prix < 50 FF E6. Y a-t-il des fournisseurs de produits de prix < 50 FF et supérieur à 400 FF? E7. Noms des clients ayant commandé en 1992 ou 1993 E8. Numéro des fournisseurs qui fournissent le produit Chef le moins cher? E9. Nom des fournisseurs qui fournissent le produit Chef le moins cher? E10. Donner pour chaque fournisseur la liste des noms des produits par ordre alphabétique E11. Y a-t-il des fournisseurs qui sont clients (même nom ) E12. Quels sont les fournisseurs qui ne fournissent que des produits de prix < 50 FF E13. Quels sont les fournisseurs qui ne fournissent aucun produits de prix < 50 FF E14. Noms des clients qui n'ont pas passé de commandes? E15. Couples des numéros de clients différents? E16. Nombre de produits dans la base E17. Pour chaque type de produit, donner le prix moyen et le prix max.? E18. Même question mais uniquement pour les types où il y a plus de 10 produits. E19. Donner pour chaque client, la liste des produits commandés et leur nombre pour l'ensemble des commandes passées. E20. Calculez, pour chaque ligne de commande, le prix total à payer. (Penser à la remise et à la quantité) E21. Calculez le total à payer par commande E22. Calculez le total à payer par client E23. Quels sont les clients qui ont commandé plus de 10000 FF Table client : Table commande : Table détail commande : Table produit : Table fournisseur : CLI (CodeCli, NomCli, Pays, Tel) COM (NumCom, CodeCli, FraisPort, AnCom); DET (NumCom, NumProd, Qte, Remise) PROD (NumProd, NumFour, NomProd, TypeProd, PrixUnit) FOUR (NumFour, NomFour, Pays, Tel); Page -- 5