Introduction: Le cours de bases de données se divise en trois grandes parties: conception d'un modèle conceptuel de données, passage au modèle logique de données, utilisation de la base. La conception repose sur le formalisme entité-association. On commence par passer en revue les différentes notions utiles: entité, association (binaire, n-aire ou réflexive), attribut, identifiant (fort et faible), cardinalité, ce qui permet d'élaborer les premiers MCD. On étudie ensuite leur conformité en introduisant un certain nombre de règles de vérification (p. ex., existence d'identifiant, non-polysémie des attributs, etc.) et surtout de normalisation (jusques et y compris la forme normale de BoyceCodd). L'obtention à partir du MCD d'un ensemble de relations (tables) normalisées est alors immédiate. Elle est formalisée dans un court chapitre qui précise également le cas des entités faibles et des associations réflexives, et met en évidence les avantages et les inconvénients du schéma relationnel par rapport au MCD. On montre ensuite comment interroger une base de données relationnelles, tout d'abord d'un point de vue théorique avec les opérateurs de l'algèbre relationnelle (Restriction, Projection, Jointure, et opérateurs ensemblistes classiques), ensuite à un niveau plus pratique avec SQL, qui enrichit l'algèbre relationnelle du concept d'agrégat. La souplesse expressive de SQL (p. ex., possibilité d'imbrications de requêtes) et ses limitations (p. ex., pas de récursivité) sont étudiées. Les notions introduites en cours et appliquées en TD sont mises en oeuvre sur machines avec le logiciel Access. On en profite pour décrire brièvement le formalisme de requêtes visuelles QBE (query by example). Ce cours est complété par une introduction à l'algorithmique des graphes. C'est un panorama général du domaine, qui passe en revue sans les approfondir les notions fondamentales de: graphes et multigraphes (définitions et codages), arbres et arborescences (id.), parcours en profondeur et applications, parcours en largeur, graphes sans circuits et d'ordonnancement, arbre recouvrant minimal. La formule retenue est celle d'un cours interactif, où les définitions et les propositions alternent avec de petits exercices qui permettent à l'étudiant d'en chercher une illustration immédiate ou une démonstration. Un fascicule est distribué qui regroupe l'ensemble des définitions, des résultats et des schémas utiles Leçon Bases de données Chapitre 2 - Le modèle MERISE partie 1 2.1. Presentation Pour concevoir et représenter une base de données, on utilise MERISE qui est une méthodologie utilisée dans boucoup d'outils de developement informatique. MERISE permet de concevoir un système d'informations d'une façon standardisée et méthodique. La meilleur façon de comprendre le fonctionnement d'un système d'information utilisant MERISE est de s'aider de cet exemple : Un directeur d'une entreprise de vente de matériel informatique voudrait gérer ses clients, ses fournisseur et les produits qu'il vend grâçe à une base de données simple. Dans ce cas pratique : - l'entreprise de vente de matériel informatique est appelée le domaine - les clients, les fournisseurs et les produits sont des entités de la base de données - les informations sur les clients (nom, prénom...), les fournisseurs (raison sociale...), les produits (référence, libellé du produit, prix) sont les propriétés de ces tables. 2.2. Le dictionnaire de données Pour concevoir sa base de données, il faut d'abord définir les données que l'on veut stocker dans cette dernière. Dans notre cas pratique nous utiliserons ces données qui sont représentées cidessous dans ce qu'on appele un dictionnaire de données : Nom de la propriété Type de donnée Longueur de donnée N° client N 4 nom client AN 32 prenom client AN 32 adresse client AN 50 code postal client N 8 ville client AN 32 téléphone client AN 10 N° fournisseur N 4 raison sociale AN 32 adresse fournisseur AN 50 code postal fournisseur N 8 ville fournisseur AN 32 téléphone fournisseur N 10 Référence produit N 4 libellé produit AN 50 prix produit N 5 N = Numérique AN = Alpha-Numérique Le dictionnaire de données est une liste complête des propriétés utilisées dans une base de données. Chaque propriété représente une information qu'on souhaite stocker et comporte un type. Mais une propriété n'est pas l'information elle-même, c'est comme une case dans laquelle on mettra toujours la même information mais pour plusieurs enregistrements, appellés aussi occurences. 2.3. Le Modèle Conceptuel de Données (MCD) Le MCD est la base de MERISE. Il représente les données d'un système d'informations de façon claire et précise les dépendances fonctionnelles des informations. Pour cela, plusieurs élements sont utiles : - l'entité : objets physiques ou abstraits ayant des caractéristiques similaires - la relations : assiciation liant plusieurs entitées entre elles - la propriétée : chaque entitée est composée de proprietés et chaque propriété est caractérisée par un type de données, le dictionnaire de données (vu en 2.2) est composée de l'ensemble des propriétés de toutes les entitées d'une base de données. - l'dentifiant : l'identifiant ou clef unique (toujours souligné dans les représentations schèmatiques) est une propriété d'une entité permettant de distinguer les différentes données. - la cardinalitée minimum : nombre minimum de fois qu'une entitée est concernée par une association. - la cardinalitée maximum : nombre maximum de fois qu'une entitée est concernée par une association. Reprenons notre exemple : Pour notre entreprise de vente de matériel informatique, nous allons utiliser les entitées suivantes : CLIENT, FOURNISSEUR, PRODUIT Ces entitées sont composées des propriétés citées dans le dictionnaire de données et se représentent de la anière suivante : 2.4. Le Modèle Logique de Données (MLD) Le MLD permet de voir de façon claire l'organisation des données, cette façon de représenter la base de donnée est assez pratique pour les développeurs. Le MLD est obtenu à partir d'une conversion du MCD selon les trois regles relationnelles suivantes : - type d'entité (=relation) : un schèma de relation contenant les attributs du type de l'entité et qui a comme clef celle du type de l'entité. - types d'associations liés à un type d'entité avec une cardinalité 1,1 : représentés dans le même schèma de relation correspondant à l'entité qui participe avec la cardinalité 1,1 par ajout de la clef de l'entité intervenant dans l'association ainsi que les attributs eventuels de l'association. - type d'association : un schèma de relation qui a pour attributs ceux de l'association (si elle en a) et pour clef les clef des entités participantes. Voiçi la conversion du MCD (présenté en 2.3) en MLD : CLIENT(num_clt, nom_clt, prenom_clt, adresse_clt, cp_clt, ville_clt, tel_clt) PRODUIT(ref_pdt, lib_pdt, prix_pdt, #num_fourn) FOURNISSEUR(num_fourn, rs_fourn, adresse_fourn, ville_fourn, tel_fourn) Acheter(num_clt, ref_pdt) Pour plus d'information sur la méthodologie MERISE, je vous conseille ce site personnel de Mathieu Vidal que j'ai trouvé par hasard et qui me parait assez complêt :