BASE DE DONNÉES Support de cours de base de données de la filière MMIC de l'IUT

BASE DE DONNÉES Support de cours de base de données de la filière MMIC de l'IUT de Mesures Physiques d'Orsay 2008-2009 Table des matières 1 -Intérêts........................................................................................................................................2 1.1 -Organisation et cohérence des informations.......................................................................2 1.2 -Traitements des données.....................................................................................................2 1.3 -Utilisations..........................................................................................................................3 2 -MERISE..................................................................................................................................... 4 2.1 -Modèle conceptuel de données-MCD................................................................................ 4 2.2 -Modèle logique de données-MLD....................................................................................17 2.3 -Modèle physique de données-MPD..................................................................................22 2.4 -Conclusion........................................................................................................................ 23 2.5 -Références.........................................................................................................................23 3 -Le langage SQL .......................................................................................................................24 3.1 -Concept :...........................................................................................................................25 3.2 -Fonctionnalités avancées.................................................................................................. 34 3.3 -Syntaxe SQL ...................................................................................................................37 4 -PgAdmin III..............................................................................................................................42 4.1 -Introduction.......................................................................................................................42 4.2 -Création de table...............................................................................................................43 4.3 -Créer une clé étrangère..................................................................................................... 44 4.4 -Insérer les données dans les tables....................................................................................44 4.5 -Requêtes............................................................................................................................45 5 -Annexe......................................................................................................................................47 5.1 -Commandes SQL .............................................................................................................47 5.2 -Applications client de PostgreSQL ..................................................................................50 5.3 -Applications relatives au serveur PostgreSQL ................................................................ 50 1 - Intérêts Dans de nombreuses entreprises, associations, sites, vous pouvez trouver des bases de données. Pourquoi un tel engouement? 1.1 - Organisation et cohérence des informations 1.1.1 - Éviter la répétition d'une même information Dans un inventaire, plusieurs articles proviennent du même fournisseur; une base de données permet d'éviter de répéter le nom du fournisseur pour chaque article. De plus, pour chaque achat d'un même client, inutile de répéter toutes les informations liées au client, seul un identifiant est nécessaire. De même dans une gestion de bibliothèque, plusieurs livres ont le même auteur, une base de données permet d'éviter de répéter toutes les informations sur l'auteur pour chaque livre. 1.1.2 - Éviter les problèmes de graphie Une base de données permet d'homogénéité l'orthographe des noms : traits d'union ou pas, majuscules ou pas, accent ou pas. Par exemple, est-ce que St NAZAIRE est la même ville que Saint Nazaire ou que Saint-Nazaire? Est-ce que Jean-Jacques ROUSSEAU est bien le même que Jean Jacques ROUSSEAU ou JJ ROUSSEAU? 1.2 - Traitements des données Une base de données permet des tris, des regroupements et des classements de toutes sortes. Dans une bibliothèque, nous pouvons par exemple souhaiter connaître : – tous les livres empruntés le mois dernier, – tous les livres empruntés le mois dernier, par des femmes, – tous les livres empruntés le mois dernier, par les hommes de plus de 50 ans ayant plus de cinq ans d'adhésion à la bibliothèque, – tous les livres empruntés le mois dernier par les femmes de moins de 25 ans ayant plus de deux ans d'adhésion à la bibliothèque et n'ayant jamais rendu de livre en retard, – etc. Pour répondre à ces questions nous utilisons des requêtes. Parmi toutes les informations stockées, une requête permet de récupérer celles qui correspondent à certains critères. 1.3 - Utilisations Pour créer une base de données, nous utilisons couramment la méthode Merise. C'est une méthode d'analyse, de conception et de gestion de projet. Les Systèmes de Gestion de Base de Données (SGBD) sont apparu dans les années 60. Ils permettent de créer des bases de données, de mettre à jour leurs données, d'y rechercher des informations particulières et de les visualiser. Il existe de nombreux SGDB : PostgreSQL, sbase, Oracle, Sybase, Access, MySQL,... Les SGDB utilisent généralement le langage SQL. Les bases de données sont des outils couramment utilisés : – gestion de réservation de billets, d'achat sur internet, … – gestion des résultats d'expériences, … – gestion d'emploi du temps, gestion du personnels, … – gestion d'une médiathèque, d'une vidéothèque, … – gestion de vos DVD, CD, … – ... 2 - MERISE Cette section regroupe les notions de base concernant le modèle entité-association, le schéma relationnel et la traduction de l’un vers l’autre. Quand nous construisons directement les tables d’une base de données dans un logiciel de gestion des bases de données (PostgreSQL, Oracle, SQL Server, DB2, base, Access, MySQL, ...), nous sommes exposés à deux types de problème : – nous ne savons pas toujours dans quelle table placer certaines colonnes (par exemple, l’adresse de livraison se met dans la table des clients ou dans la table des commandes ?) ; – nous avons du mal à prévoir les tables de jonction intermédiaires (par exemple, la table des interprétations qui est indispensable entre les tables des films et la table des acteurs). Il est donc nécessaire de recourir à une étape préliminaire de conception. Les techniques présentées ici font partie de la méthodologie Merise (Méthode d’Étude et de Réalisation Informatique pour les Systèmes d’Entreprise) élaborée en France en 1978 (cf. [4]) qui permet notamment de concevoir un système d’information d’une façon standardisée et méthodique. Le but de ce support de cours est d’introduire le schéma entité-associations (Section 2.1), le schéma relationnel (Sections 2.2 et 2.3) et d’expliquer la traduction entre les deux (Section 2.2.3). 2.1 - Modèle conceptuel de données-MCD Avant de réfléchir au schéma relationnel d’une application, il est bon de modéliser la problématique à traiter d’un point de vue conceptuel et indépendamment du logiciel utilisé. C’est le but de cette partie. 2.1.1 - Dictionnaire des données Il est utile, voir indispensable, d'effectuer un inventaire brut des données qui seront stockées et/ou calculées par la base de données. Il faut donc différencier deux types de données, les données stockées et les données qui peuvent être déduites ou calculés à partir des données stockées. Ce document sera présenté sous forme de tableau de 3 colonnes, avec dans la première colonne le nom de la donnée, dans la seconde si cette donnée est calculée ou stockée et dans la troisième un commentaire descriptif de la donnée. 2.1.2 - Schéma entité-association Une entité est une population d’individus n’ayant que des caractéristiques comparables. Par exemple, dans une entreprise qui achète et vend des produits, nous avons l’entité client, l’entité article et l’entité fournisseurs (voir illustration 1). Une association est un lien entre plusieurs entités. Dans notre exemple illustration 2, l’association acheter fait le lien entre les entités articles et clients, tandis que l’association livrer fait le lien entre les entités articles et fournisseurs. Nous avons souvent intérêt à distinguer deux verbes pour décrire l’association, l’un dans un sens l’autre dans l’autre sens. . . Un attribut est une propriété d’une entité ou d’une association (voir illustration 3). Toujours dans notre exemple, le prix unitaire est un attribut de l’entité article, le nom du client est un attribut de l’entité client. La quantité commandée est un attribut de l’association acheter, la date de livraison est un attribut de l’association livrer. Illustration 1: Exemple d'entités Illustration 2: Exemple d'associations Illustration 3: Exemples d'attributs Chaque individu d’une entité doit être identifiable de manière unique. C’est pourquoi les entités doivent posséder un attribut sans doublon : l’identifiant. Le numéro de client est l’identifiant de l’entité client (nous soulignons cet attribut sur le schéma, voir l'illustration 4). Remarques : – un attribut ne doit pas figurer dans deux entités ou associations différentes (donc il faut spécialiser l’attribut nom en nom du client, nom du produit et nom du fournisseur) ; – une entité possède au moins un attribut (son identifiant) ; – une association peut ne pas posséder d’attribut. La cardinalité d’un lien entre une entité et une association est le minimum et le maximum de fois qu’un individu de l’entité peut être concerné par l’association. Un client a au moins acheté un article et peut acheter n articles (n étant indéterminisé), tandis qu’un article peut avoir été acheté entre 0 et n fois (même si ce n’est pas le même n) et n’est livré que par 1 fournisseur. Nous obtenons alors le schéma entité-association complet de l'illustration 5. Remarque : Si une cardinalité est connue et vaut 2, 3, etc. on considère qu’elle est indéterminisé (n), de telle sorte que nous ne puissions avoir que des cardinalités 0, 1 ou n. Illustration 4: Exemples d'identifiants Illustration 5: Exemple de cardinalités 2.1.3 - Cas particuliers Exemple d’association binaire réflexive : dans l'illustration 6, un employé est dirigé par un employé (sauf le directeur général) et un employé peut diriger plusieurs employés. Pour distinguer les deux liaisons, nous utilisons la notion de rôle avec l’ajout d’étiquettes (ici supérieur, personnel). Exemple d’association entre trois entités (association ternaire) : dans ce cas, un avion, un pilote ou un aéroport peuvent être utilisés 0 ou plusieurs fois par l’ensemble des vols (d’où les cardinalités) ; voir les illustrations 7 et 8. Illustration 6: Exemple d'association réflexive Illustration 7: Exemple d'association ternaire Exemple de plusieurs associations entre deux mêmes entités : dans ce cas, un être humain peut être propriétaire, locataire et/ou chargé de l’entretien. Nous supposons qu’un être humain ne loue qu’un logement au maximum, qu’un logement n’est occupé que par une personne au maximum et qu’un logement est entretenu par une et une seule personne ; voir l'illustration 9. Illustration 8: Deuxième exemple d’association ternaire. Pour une pièce donnée, nous avons de 0 à n couples (ouvrier, date fabrication) différents. Illustration 9: Exemple d'associations plurielles 2.1.4 - Règles de normalisation Un bon schéma entité-associations doit répondre à différentes règles. Normalisation des entités Toutes les entités qui sont remplaçables par une association doivent être remplacées (voir l'illustration 10). Normalisation des noms Le nom d’une entités d’une association ou d’un attribut doit être uploads/Management/ bon-cours-merise.pdf

  • 33
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Dec 11, 2021
  • Catégorie Management
  • Langue French
  • Taille du fichier 0.9099MB