Système de Gestion de Bases de Données
Définitions Base de données : fichier ou ensemble de fichiers permettant le stockage et l'accès à des informations structurées. SGBD (Système de Gestion de Base de Données) : logiciel permettant de gérer une base de données (ex : Access)
Exemple simple en Excel Un libraire gère des œuvres littéraires : Une œuvre est une création littéraire. Une œuvre a un auteur et est dans une édition (un livre). Une édition possède un ISBN unique, a un unique éditeur et ne contient qu’une œuvre. On veut mémoriser pour chaque édition le nombre d’exemplaires en stock.
Solution : des listes ! ISBN Titre Auteur Editeur Stocks Liste des œuvres ISBN Titre Auteur Editeur Stocks 2.207.30089.7 Fondation 5 Denoël 10 2.221.09973.7 L'incident Jésus 2 Laffont 7 2.070.42167.8 Chrono-Minets Gallimard 8 2.290.03567.X Frankenstein 1 J'ai Lu 12 2.070.36822.X 1984 3 Liste des auteurs Code Nom Prénom 1 Shelley Mary W. 2 Herbert Franck 3 Orwell Georges 4 Bradbury Ray 5 Asimov Isaac
Que peut-on en faire ? Liste des œuvres par auteurs Gestion des stocks Liste des œuvres avec moins de 3 exemplaires en stock …
Exemple moins simple… ARG !! Solution en excel : Un libraire gère des œuvres littéraires : Une œuvre est une création littéraire Une œuvre a au moins un auteur et est dans une édition (un livre) Une édition possède un ISBN unique et a un unique éditeur. Elle peut contenir plusieurs œuvres. On veut mémoriser pour chaque édition le nombre d’exemplaires en stock et pour chaque exemplaire son état ARG !! Solution en excel :
Méthode Merise Méthode (française, 1978) formalisée, complète, détaillée qui garantit (en principe !) une informatisation réussie. Formalisée : utilisation d’outils logiques (graphes, règles) Complète : de la décision d’informatisation à la mise en œuvre effective Détaillée : de la technique d’interview jusqu’au commentaires des programmes
Conception d’une base de données Quatre phases : Analyse du problème Modèle conceptuel des données (MCD) Modèle logique des données (MLD) Modèle physique (réalisation dans le SGBD)
Analyse du problème Analyse des besoins des utilisateurs : Quels sont les données à traiter ? Quels traitements à effectuer ? Analyse de l’existant, interviews, étude des documents, mise en évidence des règles de gestion…
Modèle Conceptuel des Données les entités Une entité est la représentation d’un type d’objet ou d’un concept conforme aux choix de gestion de l’entreprise (ex : l’entité Livre) ; Une occurrence d’une entité est une instance (un représentant) de l’entité dans le monde réel (ex : le livre « Frankenstein ») ; Une propriété (ou attribut) : donnée élémentaire qui caractérise une entité (ex : le titre du livre) ; L’identifiant (la clé) : propriété unique qui caractérise chaque occurrence (ex : l’ISBN d’une édition)
2. Modèle Conceptuel des Données Quatre phases : Repérer les entités du problèmes Construire les entités, en choisissant leurs propriétés Établir les relations entre les différentes entités Trouver les cardinalités de chaque relation
1. Repérer les entités Un libraire gère des œuvres littéraires : Une œuvre est une création littéraire Une œuvre a au moins un auteur et est dans une édition (un livre) Une édition possède un ISBN unique et a un unique éditeur. Elle peut contenir plusieurs œuvres. On veut mémoriser pour chaque édition le nombre d’exemplaires en stock et pour chaque exemplaire son état.
1. Repérer les entités Entités : Un libraire gère des œuvres littéraires : Une œuvre est une création littéraire Une œuvre a au moins un auteur et est dans une édition (un livre) Une édition possède un ISBN unique et a un unique éditeur. Elle peut contenir plusieurs œuvres. On veut mémoriser pour chaque édition le nombre d’exemplaires en stock et pour chaque exemplaire son état Entités : Œuvres, auteurs, éditions, éditeur, exemplaires.
2. Choix des propriétés Propriétés : éléments caractérisant une entité Règles sur les propriétés (de bon sens…) Toute propriété est élémentaire Une propriété ne doit pas être « instable » ou « calculable » Toute entité doit posséder un identifiant (clé) Toute propriété dépend directement de l’identifiant Une propriété (y compris l’identifiant) ne dois pas dépendre d’une propriété autre que l’identifiant
2. Choix des propriétés Œuvres Auteurs Editeurs Editions Exemplaires NoOeuvre Titre Auteurs NoAuteur Nom Prénom Editeurs NoEditeur Nom Editions ISBN Titre Exemplaires Id_livre Etat
3. Choix des relations Une relation (ou association) est un lien entre deux ou plusieurs entités (ex : une œuvre est écrite par un auteur) Une occurrence d’une association est une instance de l’association dans le monde réel (ex : Frankenstein est écrit par Mary W. Shelley). Une relation peut posséder des propriétés.
3. Choix des relations écrit Œuvres Auteurs édition Editions Editeurs NoOeuvre Titre Auteurs NoAuteur Nom Prénom édition Editions ISBN Titre Editeurs NoEditeur Nom édite Stocks Exemplaires Id_livre Etat
3. Choix des relations Clients Commandes Autre exemple : des clients passent des commandes. Clients Noclient Nom Adresse Code postal ville Commandes NoCommande xxx Effectue Contient quantité Produits NoProduit Libellé Prix unitaire
4. Trouver les cardinalités La cardinalité d’une entité par rapport à une relation s’exprime sous forme d’un couple : (cardinalité minimale ; cardinalité maximale) Cardinalité minimale : nombre minimal de fois où une occurrence de l’entité participe à une relation de ce type vaut 0 ou 1 en général. Cardinalité maximale :nombre maximal de fois où une occurrence de l’entité participe à une relation de ce type vaut 0, 1 ou « n » (pour « plusieurs fois »)
4. Trouver les cardinalités Auteurs NoAuteur Nom Prénom Min1:Max1 Min2:Max2 Œuvres NoOeuvre Titre écrit Min1 : « étant donné un auteur, combien d’œuvres sont écrit par lui au minimum ? » Max1 : « et au maximum ? » Min2 : « et pour une œuvre, combien d’auteur participent à son écriture au minimum ? » Max2 : « et au maximum ? »
4. Trouver les cardinalités Auteurs NoAuteur Nom Prénom 1:n 1:n Œuvres NoOeuvre Titre écrit Min1 : « étant donné un auteur, combien d’œuvres sont écrit par lui au minimum ? » Max1 : « et au maximum ? » Min2 : « et pour une œuvre, combien d’auteur participent à son écriture au minimum ? » Max2 : « et au maximum ? »
4. Trouver les cardinalités écrit Œuvres NoOeuvre Titre Auteurs NoAuteur Nom Prénom édition 1:n Editions ISBN Titre 1:1 1:n Editeurs NoEditeur Nom édite Stocks 1:1 0:n Exemplaires Ref_livre Etat
Conseils Limiter la taille, factoriser si cela a du sens (ex : plusieurs personnes habitent à la même adresse : faut-il ajouter une entité adresse ?) Limiter les redondances !! (pas d’informations présente deux fois)
Construction d’un MCD FAQ (Frequently Asked Question) Cardinalité (0:n) ou (1:n) ? Répondre à « mon entité doit-elle obligatoirement apparaître dans une relation de ce type ? ». En pratique peu d’importance… Les cardinalités sont toujours 0, 1 ou n ? En pratique, il peut y avoir d’autre valeurs, mais c’est très rare (exemple du tiercé : un pari concerne exactement 3 chevaux cardinalité 3:3) Est-ce une entité ou une relation ? Si une relation contient de nombreuses propriétés, envisagez une entité… Puis-je utiliser des relations entre plus de deux entités ? Oui, mais à éviter… Exemple : Vendeurs, Lieux et Acheteurs reliés par vente. N’est-ce pas plus clair avec une entité ActesDeVente ?
Exercice : réalisation de MCD Une banque désire posséder un SGBD pour suivre ses clients. Elle désire ainsi stocker les coordonnées de chaque client (nom, prénom, adresse), et les comptes dont elle dispose ainsi que leur solde (sachant par ailleurs que certains compte ont plusieurs bénéficiaires). On stockera également les opérations relatives à ces comptes (retrait et dépôt, avec leur date et le montant).
Exercice : réalisation de MCD Une banque désire posséder un SGBD pour suivre ses clients. Elle désire ainsi stocker les coordonnées de chaque client (nom, prénom adresse), et les comptes dont elle dispose ainsi que leur solde (sachant par ailleurs que certains compte ont plusieurs bénéficiaires). On stockera également les opérations relatives à ces comptes (retrait et dépôt, avec leur date et le montant).
Exercice 1:n 0:n bénéficie 1:n Comptes Clients Concerne Opérations 1:1 Code Solde Clients NoClient Nom Prénom Adresse Concerne Opérations Id_op Type Date montant 1:1
Modèle Logique des données (MLD) Plus proche du modèle physique. Ne contient que des tables qui possèdent des propriétés et une ou plusieurs clés primaires. Toutes les tables ont un nom unique.
Passage du MCD au MLD Pour les entités. Toute entité devient une table et conserve ses propriétés et sa clé. Pour les associations. Dépend des cardinalités. Deux grand cas possibles : Relation la relation est matérialisée par l’ajout d’une clé étrangère la relation donne lieu à la création d’une table 1:1 ?:? ?:n ?:n
Passage du MCD au MLD devient EntitéA EntitéB TableA TableB IdA PropriétéA EntitéB IdB propriétéB 0:n relation 1:1 propriétéR devient TableA IdA PropriétéA TableB IdB PropriétéB RefA PropriétéR
Passage du MCD au MLD devient EntitéA EntitéB TableA TableB RelationAB IdA PropriétéA EntitéB IdB propriétéB 0:n relation 1:n propriétéR devient TableA IdA PropriétéA TableB IdB PropriétéB RelationAB RefA RefB PropriétéR
Passage du MCD au MLD cas particuliers Une relation ternaire devient une table si les cardinalités sont 1:n sur toutes les branches, sinon on place les références dans la table reliée à une cardinalité 1:1 Si plusieurs relations existent entre deux entités, on les traite séparément Les cardinalités k:k sont à traiter comme k relations 1:1 Si deux entités sont reliés par une relation de type il faut probablement les fusionner en une table. Supprimer les tables inutiles ! (tables à un seul champ) 1:1
Passage du MCD au MLD : exercice 1:n écrit 1:n Œuvres NoOeuvre Titre Auteurs NoAuteur Nom Prénom édition 1:n Editions ISBN Titre 1:1 1:n Editeurs NoEditeur Nom édite Stocks 1:1 0:n Exemplaires Ref_livre Etat Question : Trouvez le MLD équivalent…
Solution Auteurs Ecriture Œuvres Liste_oeuvres Editeurs Editions NoAuteur Nom Prénom Ecriture RefOeuvre RefAuteur Œuvres NoOeuvre Titre Liste_oeuvres RefOeuvre ISBN Editeurs NoEditeur Nom Editions ISBN Titre RefEditeur Exemplaires Ref_livre Etat ISBN