Chapitre 07 Le modèle relationnel des données



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

Bases de Données. Plan

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

LE MODELE CONCEPTUEL DE DONNEES

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Gestion des bases de données

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

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

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

Les bases de données Page 1 / 8

A. Définition et formalisme

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

GdsCompta. Logiciel de comptabilité générale

THEME 2 : LA TRADUCTION COMPTABLE DES FLUX

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

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

Créer une base de données

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

1 - Clients 2 - Devis 3 - Commandes 4 - Livraisons 5 - Factures 6 - Avoirs 7 - Modèles

Cours: Les Jointures 1

OASIS Date de publication

AGRÉGATION «ÉCONOMIE ET GESTION»

Les bases de données

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Chapitre IV : La Tenue Des Livres Le journal Le grand Livre

Entrepôt de données 1. Introduction

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

Créer une base de données dans CEGID sous SQL Server

Introduction aux Bases de Données

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

NF26 Data warehouse et Outils Décisionnels Printemps 2010

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

Access 2010 Entraînement 1 Garage Renault Dossier 24 MCD

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

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

Schéma relationnel et contraintes d intégrité : le cas ConduiteAuto

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

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

Introduction aux Bases de Données

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

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

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

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

Création de Sous-Formulaires

Soutien technique en informatique

Tutoriel - flux de facturation

Le langage SQL Rappels

Utiliser une base de données

NOTICE D UTILISATION

Petit guide à l'usage des profs pour la rédaction de pages pour le site Drupal du département

Projet Business Object

Information utiles. webpage : Google+ : digiusto/

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

Avertissement : ceci est un corrigé indicatif qui n engage que son auteur

CAP BOX Note utilisateurs

Comprendre Merise et la modélisation des données

Légende Taille AN : Fichier Ancienne Norme 32 ; Taille NN : Fichier Nouvelle Norme 38 Zone avec * renseignée dans les fichiers de mises à jour

Guide de l utilisateur. Demande d accréditation en ligne

LE PROBLEME DU PLUS COURT CHEMIN

TEMPÉRATURE DE SURFACE D'UNE ÉTOILE

Chapitre 1 : Introduction aux bases de données

SOMMAIRE. Travailler avec les requêtes... 3

HD 5.60 : «Ecritures des opérations diverses»? La comptabilité libérale est une comptabilité simplifiée par rapport au plan comptable (PCG) de 1999.

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

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

Le Langage De Description De Données(LDD)

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

Communiqué de Lancement

Le modèle de données

Dossier I Découverte de Base d Open Office

Cours 1 : introduction

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

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

TRAITEMENTS DE FIN D ANNEE

Utiliser Access ou Excel pour gérer vos données

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

La gestion de la maintenance assistée par ordinateur et la maintenance des logiciels

Formation à l'administration de votre site E-commerce Page 1 sur 15

Patrice BOURSIER. Professeur, Univ. de La Rochelle. Bases de Données. Notes de cours

UNIFINANZ - Consolidation financière

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

Dans cette définition, il y a trois notions clés: documents, requête, pertinence.

Durée de l'épreuve : 4 heures Coefficient : 7

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

Créer le schéma relationnel d une base de données ACCESS

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

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

LEXIQUE DES TERMES DOCUMENTAIRES LES PLUS COURANTS

Gérer une comptabilité dans Tiny

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

Améliorations Sage Gestion Commerciale version 7.71 Sage Comptabilité version 7.72

Programmation Objet - Cours II

TRAITEMENTS DE FIN D ANNEE Comptabilité

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Écrire en ligne et de manière collaborative avec Etherpad. Pour les utilisateurs (enseignants, élèves)

Transcription:

Chapitre 07 Le modèle relationnel des données Introduction Ce chapitre est un prolongement de l'étude du modèle relationnel vu en classe de première. L'idée principale est de faire comprendre aux élèves comment est organisée une base de données relationnelle. Les modèles relationnels proposés dans le manuel tiennent compte de l'évolution du formalisme qui permet de montrer plus aisément le lien entre les relations (clés étrangères) et qui facilite la rédaction des jointures des requêtes en SQL. La mise en situation propose de revoir les principaux concepts du modèle relationnel (vocabulaire spécifique, principe de construction d'une relation ) et d'étudier la normalisation c'est-à-dire la suppression de toutes les incohérences du modèle relationnel en suivant des règles strictes. Pour plus de simplicité, le sujet proposé concerne la facturation client. L'étude d'une base de données de comptabilité financière (plus complexe) sera étudiée dans les exercices. L'ensemble des modèles relationnels contenus dans le chapitre sont disponibles sur le CDROM sous forme de base de données Access. Si l'enseignant le souhaite, les élèves pourront intervenir directement dans les bases de données et voir les liens avec les modèles relationnels. Mise en situation La base de données est fournie sur le CDROM. Il peut être intéressant d'étudier le modèle relationnel des données en parallèle de la base de données. Doc. 1 Modèle relationnel des données Clé primaire : un ou plusieurs attributs permettant d'identifier de manière unique une occurrence d'une relation (ou un enregistrement d'une table sous une base de données). Clé étrangère : attribut relié à la clé primaire d'une autre relation. Attribut : nom permettant de décrire une relation. Relation : ensemble cohérent d'attributs et contenant une clé primaire. Une relation comprend l'ensemble des attributs qui dépendent de la clé primaire. Dans la relation FACTURE, pour un numéro de facture donné (clé primaire) on ne trouve qu'une date (attribut) et qu'un numéro de client (clé étrangère). Par contre l'attribut "Désignation_produit" ne dépend pas fonctionnellement de numéro de facture (pour un numéro de facture donné, on peut avoir plusieurs désignations de produit). "Désignation_produit" dépend donc de "Num_produit": à un numéro de produit correspond une et une seule désignation.

Les relations sont reliées entre-elles par les clés étrangères. La clé primaire d'une relation devient clé étrangère dans une autre relation en suivant le principe de dépendance fonctionnelle. Une facture peut comporter plusieurs lignes de produits. On ne peut donc pas mettre les produits vendus dans la relation FACTURE (on ne pourrait avoir qu'un seul produit vendu par facture). La création de la relation LIGNE_FACTURE permet donc de résoudre ce problème : la clé primaire est constituée du numéro de facture et du numéro de produit et permet d'identifier une ligne d'une facture. Par exemple : F001 P001 F001 P002 Par contre, il sera impossible de facturer sur une même facture deux fois le même produit puisque la clé primaire doit être unique. Doc. 2 Comparaison entre des relations non normalisées et normalisées 1ère forme normale : L'attribut "Adresse" est remplacé par les attributs "Rue", "Ville" et "CP". Il a donc été décomposé. Principe : pour être en 1 e forme normale, une relation ne peut pas contenir un attribut décomposable. 2ème forme normale : L'attribut "Désignation_produit" a été supprimé de la relation puisqu'il ne dépend que de "Num_produit". Principe : pour être en 2 e forme normale, une relation ne peut pas comporter d'attribut qui ne dépend que d'une partie de la clé primaire. Elle doit déjà être aussi en 1 e forme normale. 3ème forme normale : Les attributs "Num_produit", "Désignation_produit", "Prix_HT" ont été supprimés de la relation FACTURES pour créer une nouvelle relation PRODUIT. En effet, ces attributs ne dépendent pas de Num_facture mais de Num_produit (un attribut non clé) Principe : pour être en 3 e forme normale, une relation ne peut avoir d'attribut non clé qui dépend d'un autre attribut non clé. Elle doit être aussi en 2 e forme normale. 2 Chapitre 07

Exercices Ex. 1 Modification d'un modèle relationnel SALARIÉ (Matricule, Nomsal, Prénomsal, Rue, Ville, CP, Matricule : clé primaire POSTE (Codeposte, Libelléposte, Niveauposte, SALAIRE (Codesalaire, Montantsal, Codesalaire : clé primaire - Un salarié occupe un poste unique donc la relation SALARIÉS prend comme clé étrangère "Codeposte". Pour un salarié donné, on n'obtiendra qu'un seul code de poste. - D'après l'énoncé, les salaires dépendent uniquement des postes. L'attribut "Codesalaire" devient donc clé étrangère de la relation POSTE. SALARIÉ (Matricule, Nomsal, Prénomsal, Rue, Ville, CP, Codeposte) Matricule : clé primaire Codeposte : clé étrangère en référence à Codeposte de POSTE POSTE (Codeposte, Libelléposte, Niveauposte, Codesalaire) Codesalaire : clé étrangère en référence à Codesalaire de SALAIRE SALAIRE (Codesalaire, Montantsal) Codesalaire : clé primaire Primerisque dépend du poste (un poste donnera lieu à l'octroi d'une prime de risque ou non). POSTE (Codeposte, Libelléposte, Niveauposte, Primerisque, Codesalaire) Codesalaire : clé étrangère en référence à Codesalaire de SALAIRE Ex. 2 Normalisation d'un modèle relationnel Cet exercice propose dans le modèle relationnel des noms de clés étrangères différents des noms des clés primaires. Ce modèle relationnel est destiné à gérer les frais engendrés par les visites des représentants commerciaux d'une société. Oui, chaque visite sera identifiée par un numéro unique (ex : V01, V02 ). La date et le numéro de représentant peuvent ne pas varier ; ils ne sont pas clé primaire. 3

Non, c'est impossible car pour un numéro de visite il ne peut y avoir qu'un seul représentant (Num_repr est clé étrangère de la relation VISITE). Les relations REPRESENTANT et VISITE sont en 1 e, 2 e et 3 e forme normale La relation OCCASIONNER est en 1 e forme normale, mais pas en 2 e forme normale. L'attribut Montant_frais ne dépend que d'une partie de la clé primaire (Code_frais). Montant_frais doit donc être transféré dans la relation FRAIS. OCCASIONNER (Nvisite, Cfrais) Nvisite, Cfrais : clé primaire Nvisite : clé étrangère en référence à Num_visite de VISITE Cfrais : clé étrangère en référence à Code_frais de FRAIS La relation FRAIS n'est pas en 1 e forme normale : Libellé_frais est décomposable. Il faut créer l'attribut Type_frais (Remboursable, non remboursable) et Libellé_frais (restaurant, hôtel ) Elle est en 2 e et 3 e forme normale. FRAIS (Code_frais, Type_frais, Libellé_frais, Montant_frais) Code_frais : clé primaire Ex. 3 Gestion comptable : étude du modèle relationnel PLAN_DE_COMPTE : 607, Achats de marchandises ECRITURE : 0001, 12/05/N, facture n 12345 ENREGISTREMENT : 0001, 607, 100, 0 Si on avait écrit seulement la relation ECRITURE, on n'aurait pu saisir qu'une seule ligne par numéro d'écriture (donc à l'encontre du principe de la partie double). La relation ENREGISTREMENT permet donc pour un numéro d'écriture d'avoir plusieurs lignes donc plusieurs comptes (au moins deux). Non, dans la pratique ce n'est pas cohérent et le modèle relationnel ne le permet pas. L'attribut "Libellé_écriture" dépend de la clé primaire "Num_écriture". Il ne peut donc y avoir qu'un seul libellé par numéro d'écriture Libellé de la classe ne dépend que du numéro de la classe. Les deux attributs forment donc une relation CLASSE. Attention, il faut modifier la relation PLAN_DE_COMPTE pour insérer la clé étrangère Num_classe (Pour un numéro de compte on n'obtient qu'un numéro de classe) : CLASSE (Num_classe, Libellé_classe) Num_classe : clé primaire PLAN_DE_COMPTE (Num_compte, Libellé_compte, Num_classe) Num_compte : clé primaire Num_classe : clé étrangère en relation avec Num_classe de CLASSE 4 Chapitre 07

Ex. 4 Création d'un modèle relationnel Il faut penser à renommer les champs (il existe plusieurs fois le champ "numéro"), à mettre en première forme normale la relation BANQUE (décomposition de l'adresse). La mise en place des clés étrangères correspond aux règles de gestion. FACTURE (Num_facture, Date_facture, Net_à_payer) Num_facture : clé primaire REGLEMENT (Num_règlement, Type, Num_facture, Num_banque) Num_règlement : clé primaire Num_banque : clé étrangère en référence à Num_banque de BANQUE Num_facture : clé étrangère en référence à Num_facture de FACTURE BANQUE (Num_banque, Nom_banque, Rue, CP, Ville) Num_banque : clé primaire Il suffit juste d'ajouter l'attribut "Numérocompte" dans la relation banque. BANQUE (Num_banque, Nom_banque, Rue, CP, Ville, Numérocompte) Num_banque : clé primaire Ex. 5 Application informatique Le corrigé complet est proposé dans le fichier Access C07 Ex5 Appli info Corrigé.mdb contenu dans le CDROM. Il faut prendre garde à la longueur des champs (Num_compte: longueur = 6). Pour éviter une double saisie, le champ Num_écriture ne doit être sélectionné qu'une fois dans le formulaire. Les données doivent être affichées par écriture. 5. 6. L'écriture d'achat de timbres en espèces ne peut être saisie puisque le numéro de compte 530000 Caisse n'a pas été créé dans le plan de compte (contrainte d'intégrité référentielle). Il faut donc saisir le compte 530000 dans la table PLAN_DE_COMPTE pour passer l'écriture. 5