Création d'une application de gestion de base de données relationnelle Michel MATTIUZZI – FAC Micro Consultant – Formateur Microsoft Office Specialist Master Instructor Enseignant à Aix Marseille Université Création d'une application de gestion de base de données relationnelle
Réalisation : Michel Mattiuzzi - FAC Micro Définitions Une base de données est un ensemble d'informations stocké par un ordinateur selon un structure définie (BD) Un système de gestion de bases de données est un ensemble d'outils logiciels qui permet la manipulation de BD (SGBD) Les banques de données stockent un ensemble d’informations de taille importante appartenant à un même domaine, afin de les restituer ultérieurement, sous forme d’une simple consultation. Une fois mémorisées, ces informations ne sont pas appelées à évoluer. Ex : données scientifiques (températures de fusion, rayonnement solaire, ...) ou économiques (cours de la bourse). La banque peut subir des ajouts, mais pas de modifications. Cette notion est en train de disparaître. Par exemple l’annuaire électronique est une banque de données, mais son comportement ressemble plus à celui d’une base de données (traitement des demandes, tris, hiérarchie des informations). Dans une base de données, la quantité d’informations peut être plus raisonnable. Sa fonction est aussi de stocker et restituer des informations, mais pas dans le même esprit. Les domaines peuvent être multiples (comptabilité, géomarketing, finances, GRH...), mais leur point commun sera par exemple d’appartenir à une même entreprise. Le système est prévu pour subir des modifications. La restitution de l’information supporte des calculs. Les traitements possibles sont sans comparaison avec ceux d’une banque de données. Un système de gestion de bases de données (SGBD) est un logiciel destiné à aider l’utilisateur dans la création et l’utilisation d’une BdD. Voici quelques-unes des tâches auxquelles il doit faire face. 2 Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Réalisation : Michel Mattiuzzi - FAC Micro Énoncé du problème La société LES COMPTOIRS DU SUD commercialise des produits alimentaires. Ses clients sont des entreprises de commerce alimentaire et sont situés dans divers pays du monde. Cette société (fictive) souhaite informatiser la gestion de ses produits et de ses clients et de ses commandes à l'aide d'un Système de Gestion de Bases de Données Relationnelles. Elle fournit les documents et les règles issus de la gestion actuelle. Le discours Les clients de la société ont effectué au moins une commande Il faut différencier le prix de vente du prix catalogue Les produits sont classés par catégorie Etc… Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Réalisation : Michel Mattiuzzi - FAC Micro BON DE COMMANDE N° Commande : 20758 Date : 12/05/2002 Code client: CAVIN La Cave à Vin 122, route du Ventoux 84000 Avignon Ref Désignation Unité Qté PU Total 18 26 Camembert Tarte aux pommes 1 boîte 1 tarte 20 10 3,00 € 4,00 € 60,00 € 40,00 € Total HT 100,00 € TVA 19,60 € Total TTC 119,60 € LES DOCUMENTS ACTUELS FICHE CLIENT Code client : COMVA Nom : Spécialités du sud Adresse :25, impasse du Renard 84300 Orange FICHE PRODUIT Référence : 26 Désignation : Tarte aux pommes Quantité par unité : 1 tarte Prix Unitaire : 4,20 € CATEGORIE : Dessert Pâtisseries, friandises, glaces… Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Réalisation : Michel Mattiuzzi - FAC Micro Niveau conceptuel Le modèle Entité/Association Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Réalisation : Michel Mattiuzzi - FAC Micro ? Que doit-on mémoriser 1.1.1. Niveau conceptuel Nous nous limiterons à l’étude des données (MCD). Les traitements n’apparaîtront ici qu’au niveau physique. Il s’agit d’une analyse du réel, en fait d’une mise sous forme de schémas du discours. Ce formalisme permet de faire valider de façon rigoureuse l’énoncé en français du fonctionnement du système. Cette étape, fondamentale, comprend trois documents indispensables : Les règles de gestion (énoncé, à l’aide de phrases courtes et claires des contraintes du système). Le dictionnaire des données (tableau représentant toutes les données élémentaires du système). Le modèle conceptuel des données, synthèse des deux premiers. En fait, on se pose la question suivante : que doit-on mémoriser ? 1.1.2. Niveau logique On traduit - de manière quasi algorithmique - le modèle conceptuel, afin de l’adapter à une “ famille ” de SGBD. Actuellement, ces familles sont au nombre de quatre : Bases de données relationnelles, BdD hiérarchiques, BdD réseau, BdD objets L’objectif de cette phase est de préciser comment mémoriser ? Nous nous limiterons dans ce cours à l’étude des bases de données relationnelles. 1.1.3. Niveau physique Il s’agit maintenant d’adapter le modèle logique à un progiciel existant sur le marché : Access, DB2, Oracle, SQL Server, ... De plus, nous nous inquiéterons à ce moment des traitements à appliquer sur les données (ce qui est quelque part une hérésie, mais nous nous en contenterons). Donc nous nous poserons la question : que faire des données mémorisées ? Travaillant sous Access, ces traitements seront exprimés par la construction de : Requêtes, Formulaires, Etats. On établit à ce niveau : Le Modèle Conceptuel de Données (MCD) Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
1ère étape : Identification des entités Définition Une entité est un objet, une chose concrète ou abstraite qui peut être reconnue distinctement Exemples d'entités : Client, Produit, Salarié, Livre, Film… Après consultation des documents existants et des renseignement oraux obtenus, se déssinent 3 entités candidates CLIENT COMMANDE PRODUIT Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
2ème étape : les propriétés Définition Une propriété (ou attribut ) est une caractéristique associée à une entité Exemples d'attribut : l'âge d'une personne, le code d'un fournisseur, le numéro d'un produit… Chaque entité est complétée par ses propriétés PRODUIT Refproduit Désignation Unité Qté PrixVente PrixUnitaire Catégorie Description Illustration CLIENT CodeClient Nomclient AdresseClient CodePostalClient VilleClient COMMANDE N°commande Date commande TotalLigne TotalHT TVA TotalTTC Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
3ème étape :Définir les identifiants Définition Un identifiant d'une entité est constitué par un de ses attributs qui doit avoir une valeur unique pour chaque occurrence de l’entité. Exemples d'identifiant : le numéro d'immatriculation d'une voiture, le code-barre d'un produit… On souligne la propriété qui servira d'identifiant pour chaque occurrence de l'entité COMMANDE N°commande Date commande TotalLigne TotalHT TVA TotalTTC PRODUIT Refproduit Désignation Unité Qté PrixVente PrixUnitaire Catégorie Description Illustration CLIENT CodeClient Nomclient AdresseClient CodePostalClient VilleClient Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
4ème étape :Associer les entités Définition Une association est un lien entre plusieurs entités. Les associations portent un verbe (de préférence lisible à la voix active et à la voix passive) caractérisant au mieux la relation. Exemples d'association : le mariage de deux personnes, le transport d'un produit vers un entrepôt, l'affectation d'un employé à un service… CLIENT CodeClient Nomclient AdresseClient CodePostalClient VilleClient COMMANDE N° commande Date commande TotalLigne TotalHT TVA TotalTTC PRODUIT Code produit Désignation Unité Qté PrixVente PrixUnitaire Catégorie Description Illustration passer contenir Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
5ème étape : étude des cardinalités Définition Une cardinalité, dans une association, exprime le nombre de participations possibles d'une occurrence de chaque entité à l'association. Ce nombre étant variable, on note la cardinalité minimum et la cardinalité maximum. Comme il y a deux entités (au moins) associées, la cardinalité est précisée pour chaque entité Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Placement des cardinalités 1,1 CLIENT CodeClient Nomclient AdresseClient CodePostalClient VilleClient COMMANDE N° commande Date commande TotalLigne TotalHT TVA TotalTTC PRODUIT Code produit Désignation Unité Qté PrixVente PrixUnitaire Catégorie Description Illustration passer contenir Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Utilisation des symboles corrects 1,1 CLIENT CodeClient Nomclient AdresseClient CodePostalClient VilleClient COMMANDE N° commande Date commande TotalLigne TotalHT TVA TotalTTC PRODUIT Code produit Désignation Unité Qté PrixVente PrixUnitaire Catégorie Description Illustration contenir Verbe non obligatoire dans le rond On obtient un Modèle Conceptuel de Données (MCD) que l'on va vérifier au moyen des règles de normalisation Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Réalisation : Michel Mattiuzzi - FAC Micro NORMALISATION Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Première forme normale Dans une entité, toutes les propriétés sont élémentaires (une propriété calculée n'est pas élémentaire) Il existe au moins une un identifiant caractérisant chaque occurrence de l’objet représenté. COMMANDE N°commande Date commande TotalLigne TotalHT TVA TotalTTC Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Deuxième forme normale L’entité doit être en 1NF Toute propriété d’une entité doit dépendre de la clé par une DF élémentaire. C’est à dire que toute propriété de l ’entité doit dépendre de tout l’identifiant. 1,N Contenir Qté PrixVente 0,N COMMANDE N° commande Date commande PRODUIT Code produit Désignation Unité PrixUnitaire Catégorie Description Illustration Dans la table "Produits" la Qté vendue ne dépend pas seulement du code produit mais aussi du "N° commande" la Qté va figurer dans l'association Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Troisième forme normale L’entité doit être en 2NF Toute propriété doit dépendre de la clé par une DF élémentaire directe (on élimine les dépendances issues de la transitivité). Ce cas se présente dans l'entité "Produits" PRODUIT Code produit Désignation Unité PrixUnitaire Catégorie Description Illustration PRODUIT Code produit Désignation Unité PrixUnitaire CATEGORIE Code catégorie Catégorie Description Illustration 1,1 1,N Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Le Modèle Conceptuel de Données (MCD) CLIENT CodeClient Nomclient AdresseClient Code postalClient VilleClient 1,1 COMMANDE N° commande Date commande Contenir Qté PrixVente PRODUIT Code produit Désignation Unité PrixUnitaire 1,1 1,n CATEGORIE Code catégorie Catégorie Description Illustration Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Réalisation : Michel Mattiuzzi - FAC Micro Niveau Logique Le modèle Entité/Association Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Réalisation : Michel Mattiuzzi - FAC Micro ? Comment mémoriser La création d’une base de données relationnelle implique que l’on passe du niveau conceptuel au niveau logique. Les entités et les associations doivent être traduites sous forme de relations (tables) : le modèle logique ou schéma relationnel. Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Traduction des associations de cardinalités ( ,1) vers ( ,N) C’est le cas le plus simple : Chaque entité devient une relation (table). L'identifiant de l’entité située sur la patte ( ,N) de l’association migre dans la relation (table) correspondant à l’entité côté ( ,1). Code client est la clé d’une autre relation (table) : c’est une clé étrangère. Client Code client …. Commande N°Commande -,n -,1 1,1 1,n Produit Code produit Désignation Unité PrixUnitaire Catégorie Code catégorie Description Illustration Client (code client, Nomclient, AdresseClient, CodepostalClient, VilleClient) Commande (n° commande, Date commande, #CodeClient) Produits (Code produit, Désignation, Unité, Prix catalogue, #Code catégorie) Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Traduction des associations de cardinalités ( ,N) vers ( ,N) COMMANDE N° Commande PRODUIT Code produit Contenir Qté PrixVente 0,n La règle est de constituer une relation (table) avec les identifiants des entités associées (qui constituent la clé primaire de la table) la relation (table) créée se voit adjoindre les propriétés portées par l’association comme attributs supplémentaires. Ces attributs ne font pas partie de la clé. Contenir (#N°Commande, #CodeProduit, Qté, Prixvente) Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Le Schéma Relationnel final Client(codeclient, Nomclient, AdresseClient, CodepostalClient, VilleClient) Produit (Code produit, Désignation, Unité, Prix catalogue, #Code catégorie) Catégorie( Code catégorie, Catégorie, Description, Illustration) Commande (N° commande, Date commande, #CodeClient) Contenir (#N°Commande, #CodeProduit, Qté, Prix vente) Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Réalisation : Michel Mattiuzzi - FAC Micro Niveau Physique Le modèle Entité/Association Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012
Réalisation : Michel Mattiuzzi - FAC Micro Access Utilisation d'un système de gestion de base de données relationnelle pour créer physiquement l'application Déclaration de la base de données Création des tables à partir des relations précédentes Mise en relation des tables Réalisation : Michel Mattiuzzi - FAC Micro 8/24/2012