Conception de Systèmes de Bases de Données Avec UML TD 1 - Correction



Documents pareils
Cours: Administration d'une Base de Données

I4 : Bases de Données

Langage SQL : créer et interroger une base

Cours: Les Jointures 1

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

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

CREATION WEB DYNAMIQUE

SQL Historique

1/ Présentation de SQL Server :

Bases de données relationnelles

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

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

Compétences Business Objects

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

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

Application web de gestion de comptes en banques

BASES DE DONNEES TP POSTGRESQL

Gestion de base de données

TP3 : Creation de tables 1 seance

Création et Gestion des tables

A QUOI SERVENT LES BASES DE DONNÉES?

Olivier Mondet

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

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

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

Stockage du fichier dans une table mysql:

TP Contraintes - Triggers

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Chapitre 07 Le modèle relationnel des données

Le Langage De Description De Données(LDD)

1 Position du problème

Bases de Données Avancées

OpenPaaS Le réseau social d'entreprise

Historisation des données

Optimisations des SGBDR. Étude de cas : MySQL

Les bases de données

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

I. MySQL : Serveur et SGBD

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

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

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

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

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

UML et les Bases de Données

Développement de base de données Microsoft SQL Server Durée : 5 jours Référence : DPSQL12. Contenu

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

Pratique et administration des systèmes

Les bases de données Page 1 / 8

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

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

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

Le langage SQL Rappels

Information utiles. webpage : Google+ : digiusto/

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)

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

BTS/CGO P10 SYSTEME INFORMATION Année

1. Base de données SQLite

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

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

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

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

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

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

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Les BASES de DONNEES dans WampServer

Rappel sur les bases de données

Objectifs du TP : Initiation à Access

TD n 10 : Ma première Base de Données

Auto-évaluation Oracle: cours de base

Introduction aux Bases de Données

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Installation d'un serveur FTP géré par une base de données MySQL

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

Table des matières. Avant-propos

Administration de Bases de Données : Optimisation

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

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

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Cours de Génie Logiciel

Gestion des transactions et accès concurrents dans les bases de données relationnelles

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

Guide DinkeyWeb. DinkeyWeb solutions d authentification et de contrôle d accès WEB

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

FileMaker 13. Guide de référence SQL

CATALOGUE FORMATIONS DOMAINE Bases de données

SUPPORT DE COURS / PHP PARTIE 3

PHP 4 PARTIE : BASE DE DONNEES

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Encryptions, compression et partitionnement des données

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

Les Utilisateurs dans SharePoint

PHP et les Bases de données - Généralités

Systèmes d information et bases de données (niveau 1)

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

Master Exploration Informatique des données DataWareHouse

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

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

Transcription:

1 1 Bases de Données Avancées Module B IUT Lumière, License CE-STAT 2006-2007 Pierre Parrend Conception de Systèmes de Bases de Données Avec UML TD 1 - Correction Etapes de conception d'un système de base de données: Analyse des scénarios Réalisation du diagramme de Cas d'utilisation identification des acteurs, systèmes, et cas d'utilisation réalisation du diagramme de cas d'utilisation globale raffinement des cas d'utilisation: vue systématique des interactions utilisateurs/système Réalisation du diagramme de Classes réalisation du diagramme de classe globale identification des classes d'exécution / classes de données raffinement des types de données (pour les classes de données), identification des clés primaires, secondaires Réalisation du schéma relationnel rédaction du schéma relationnel représentant les classes normalisation ré-écriture du diagramme de classes si besoin Rédation des requêtes SQL création requêtes paramétrées 1

I. Diagramme de Cas d'utilisation Le diagramme de Cas d'utilisation a pour objectif d'identifier les interactions entre les utilisateurs et le système. A. Analyse Acteurs: secrétaires étudiants enseignants Système(s): Serveur Intranet de l'iut Cas d'utilisation: gestion de l'emploi du temps gestion des notes stockage de fichier B. Schéma général C. Raffinement The schéma précédent n'indique pas le type d'interaction entre les acteurs et les cas d'utilisations du système. Dans deux cas, les actions possibles dépendent du rôle des acteurs: pour la gestion des notes, les étudiants ont un droit de lecture mais pas d'écriture; les secrétaires ont le droit d'écriture sur l'ensemble des données; les enseignants ont le droit d'écriture sur leur matière, et le droit de lecture sur l'ensemble des données pour la gestion des emplois du temps, les secrétaires ont le droit de lecture et d'écriture; les étudiants et les enseignants ont le droit de lecture seulement. 2

Gestion des Notes: Gestion des Emplois du temps: II. Diagramme de Classes Le diagramme de Classes a pour objectif de représenter finement l'architecture interne du logiciel, ainsi que de distinguer les classes d'exécution des classes de données. A. Diagramme de classes global 3

B. Classes d'exécution et classes de données Les classes de données identifiées dans le Diagramme de Classes global sont les suivantes: relevenotes emploi du temps donneesetudiants Les classes d'exécutions sont les suivantes: gestionnotes.manipulation gestionnotes.consultation gestionedt.manipulation gestionedt.consultation stockage.manipulation C. Attributs des classes Diagramme de classe pour les classes de Données. Remarques: l'identification des attributs des classes permet d'identifier les classes de données complémentaires qui doivent être réalisées, Les associations entre classe en UML permettent de ne pas exprimer de manière explicite les liens vers les classes, c'est à dire les clés étrangères. Ces clés devront être inégrées au schéma relationnel. Le schéma suivant représente les classes de données avec leurs attributs. 4

D. Clés primaires, clés étrangères Les clés primaires des futures tables sont les suivantes: gestionnotes.relevenotes semestre, Etudiant gestionnotes.notesmatiere matiere, Etudiant gestionedt.emploidutemps salle, Cours, heuredebut gestionedt.cours id stockage.donneesetudiants nomfichier, Etudiant personnes.etudiants id personnes.enseignant nom, prenom Les clés étrangères sont les suivantes: gestionnotes.relevenotes Etudiant (clé primaire de la table Etudiant) gestionnotes.notesmatiere Etudiant (clé primaire de la table Etudiant) gestionedt.emploidutemps Cours (clé primaire de la table Cours) gestionedt.cours 5

Enseignant (clé primaire de la table Enseignant) stockage.donneesetudiants Etudiant (clé primaire de la table Etudiant) personnes.etudiants / personnes.enseignant / stockage.donneesetudiants Etudiant (clé primaire de la table Etudiant) Les élements suivants ont été identifiés: types de données pour l'ensemble des attributs clés primaires clés secondaires Les propriétés suivantes sont vérifiées: pas de cycles entre les classes pas de clés étrangères comportant plus de deux attributs (limite arbitraire de complexité) Il est donc possible d'établir les schémas relationnels pour les classes de données identifiés III. Schéma relationnel A. Schéma relationnel des tables de données identifiées Cas particulier: les listes de données (exemple: les notes) doivent être stockées dans une table spécifique Remarque: les types de données Object (ex.: String, classes) doivent être convertis en types de données relationels (ex.: varchar, clés étrangères) les clés primaires et étrangères doivent être indiquées gestionnotes.relevenotes(varchar semestre, #int idetudiant, int moyennegale) gestionnotes.notesmatiere(varchar matiere, #int idetudiant, int moyenne) gestionnotes.notesdetail(varchar matiere, #int idetudiant, int note) gestionedt.emploidutemps(varchar salle, #int idcours, int heuredebut, int heurefin) gestionedt.cours(int id, varchar matiere, varchar classe, #varchar nomenseignant, #varchar prenomenseignant) stockage.donneesetudiants(varchar nomfichier, #int idetudiant, int volumestockage) personnes.etudiants(int id, varchar nom, varchar prenom, varchar classe) personnes.enseignant(varchar nom, varchar prenom, varchar domaineenseignement, int telephone) 6

B. Normalisation Les problématiques de normalisation seront étudiées ultérieurement dans le cours. C. Diagramme de classe raffinés Une premier diagramme de classe raffiné a été réalisé lors de l'étude des attributs des classes. L'étude des clés a montré que les critères d'absence de cycle et de faible complexité des clés étrangères sont respectés. L'étude de normalisation n'a pas été encore abordée dans le cadre du cours. Par conséquent, le diagramme de classe raffiné est identique au diagramme de classes de données comprenant les attributs IV.Requêtes SQL A. Création des tables Les requêtes SQL de création des tables sont les suivantes: CREATE TABLE ReleveNotes( semetre varchar, int idetudiant FOREIGN KEY REFERENCES Etudiants(id), int moyennegale, CONSTRAINT Cle_Primaire PRIMARY KEY (semetre, idetudiant) CREATE TABLE NotesMatiere( matiere varchar, idetudiant FOREIGN KEY REFERENCES Etudiants(id), moyenne int, CONSTRAINT Cle_Primaire PRIMARY KEY (matiere, idetudiant) CREATE TABLE NotesDetail( matiere varchar, idetudiant FOREIGN KEY REFERENCES Etudiants(id), note int, CONSTRAINT Cle_Primaire PRIMARY KEY (matiere, idetudiant, note) CREATE TABLE EmploiDuTemps( salle varchar, idcours int FOREIGN KEY REFERENCES Cours(id), heuredebut int, heurefin int, CONSTRAINT Cle_Primaire PRIMARY KEY (salle, idcours, heuredebut) CREATE TABLE EmploiDuTemps( id int PRIMARY KEY, matiere varchar, classe varchar, nomenseignant varchar, 7

prenomenseignant #varchar, CONSTRAINT Cle_Secondaire FOREIGN KEY (nomenseignant, prenomenseignant) REFERENCES Enseignant (nom, prenom) CREATE TABLE DonneesEtudiants( nomfichier varchar, idetudiant int FOREIGN KEY REFERENCES Etudiants(id), volumestockage int, CONSTRAINT Cle_Primaire PRIMARY_KEY (nomfichier, idetudiant) personnes.etudiants(int id, varchar nom, varchar prenom, varchar classe) CREATE TABLE Etudiants( id int PRIMARY KEY, nom varchar, prenom varchar, classe varchar personnes.enseignant(varchar nom, varchar prenom, varchar domaineenseignement, int telephone) CREATE TABLE Enseignant( nom varchar, prenom varchar, domaineenseignement varchar, telephone int, CONSTRAINT Cle_Primaire PRIMARY_KEY (nom, prenom) B. Requêtes paramétrées Les interactions entre les utilisateurs et le systèmes, telles qu'elles ont été identifiées dans le diagramme de Cas d'utilisation, sont les suivantes: gestionnotes.relevenotes(varchar semestre, #int idetudiant, int moyennegale) gestionnotes.notesmatiere(varchar matiere, #int idetudiant, int moyenne) gestionnotes.notesdetail(varchar matiere, #int idetudiant, int note) gestionedt.emploidutemps(varchar salle, #int idcours, int heuredebut, int heurefin) gestionedt.cours(int id, varchar matiere, varchar classe, #varchar nomenseignant, #varchar prenomenseignant) stockage.donneesetudiants(varchar nomfichier, #int idetudiant, int volumestockage) personnes.etudiants(int id, varchar nom, varchar prenom, varchar classe) personnes.enseignant(varchar nom, varchar prenom, varchar domaineenseignement, int telephone) manipulation de l'emploi du temps par les secrétaires INSERT INTO EmploiDuTemps (salle, id, heuredebut, heurefin) 8

consultation de l'emploi du temps par les enseignants. Hypothèse: un enseignant recherche les informations qui correspondent aux cours qu'il donne. Le nom de l'enseignant concerné est passé en paramètre, il est noté $ens Par exemple, m. Martin consulte son emploi du temps Select * from EmploiDuTemps INNER JOIN Cours USING EmploiDuTemps.idCours = Cours.id where Cours.nomEnseignant = $ens consultation de l'emploi du temps par les étudiants Hypothèse: les étudiants de la classe $classe (passé en paramètre) consultent leur emploi du temps Select * from EmploiDuTemps INNER JOIN Cours USING EmploiDuTemps.idCours = Cours.id where Cours.classe = '$classe' manipulation des notes par les secrétaires Hypothèse: les secrétaires peuvent visualiser les notes, les moyennes, la moyenne générale. Elles doivent pouvoir calculer la moyenne générale d'un étudiant, repéré par son identifiant $id. Select * from NoteMatiere Select * from ReleveNote INSERT INTO ReleveNote (semestre, $id, Select AVG (moyenne) from NoteMatiere where idetudiant = $id) manipulation des notes par les enseignants Hypothèse: les enseignants doivent pouvoir ajouter une note $note, calculer la moyenne de leur matière, et consulter les résultats globaux des étudiants Select * from ReleveNote INSERT INTO NoteMatiere (semestre, $id, Select AVG (moyenne) from NoteDetail where idetudiant = $id) INSERT INTO NoteDetail (semestre, $id, $note) manipulation des notes par les étudiants Hypothèse: les étudiants doivent pouvoir consulter leurs résultats Select * from NoteDetail Select * from NoteMatiere Select * from ReleveNote 9