Bases de données et langage SQL Introduction, modèle entité / association Philippe.Dosch@loria.fr IUT SRC DE VERDUN 10/09/2003
Exemples introductifs Gestion de CD Artiste Album Les têtes raides Les oiseaux Jurassic 5 Quality control Jurassic 5 Power in number Afrika Bambaataa Time zone Mardi gras BB Alligatorsoup Mister Bungle California...... Bases de données et langage SQL p.1/47
Exemples introductifs Gestion de CD (suite) Comment stocker les données : énumération simple dans un fichier? dans plusieurs? autre solution? Comment éviter les erreurs de saisie multiple? les redondances? Comment implanter les traitements (ajout, modification, suppression, recherche, édition)? Et pour l ajout du genre musical? de l année de sortie? des titres des albums? Bases de données et langage SQL p.2/47
Exemples introductifs Gestion d une bibliothèque Données à gérer : les livres, les adhérents, les emprunts Mais aussi : les éditeurs, les différents exemplaires, les modes d emprunt, les cotisations, les livres en restauration... Et les traitements : gestion quotidienne, relance de livres non rendus, recherche des cotisations non payées... Bases de données et langage SQL p.3/47
Exemples introductifs Gestion d une compagnie aérienne Données à gérer : vols, destinations, pilotes, passagers, réservations, équipages, tarifs, classes, agences, etc. Contraintes : terminaux informatiques répartis géographiquement, beaucoup de données, beaucoup de traitements... Bases de données et langage SQL p.4/47
Motivation Domaine d application : stockage et manipulation de données Solution possible : utiliser des systèmes à gestion de fichiers Mais solution limitée : redondance de données, problèmes d accès concurrents, pas de contrôle des données, système bas-niveau... Solution : les bases de données! Bases de données et langage SQL p.5/47
Cadre d utilisation Gestion (salaires, stocks...) Transactionnel (comptes, centrales d achat...) Réservations (trains, avions...) Librairies électroniques (bibliothèques, journaux, Web...) Documentation technique (nomenclatures, plans, dessins...) Bureautique (formulaires, textes, images, sons...) Génie logiciel (programmes, manuels, tests...) Bases de données et langage SQL p.6/47
Plan du cours Voici les différents points qui seront étudiés lors de cette série de cours : Introduction aux SGBD Le modèle entité / association Le modèle relationnel L algèbre relationnelle Le langage SQL Bases de données et langage SQL p.7/47
Introduction aux bases de données Introduction aux bases de données p.8/47
Définitions Une base de données est un ensemble structuré de données, enregistrées sur un support informatique secondaire (i.e. persistent, type disque dur) Un Système de Gestion de Bases de Données (SGBD) est un logiciel qui permet à des utilisateurs de travailler sur des bases de données Introduction aux bases de données p.9/47
Définitions Un SGBD-R est un SGBD relationnel. Par rapport à un SGBD, les SGBD-R possèdent une certaine «intelligence» qui leur permet d exploiter les relations entre les différentes données. Ils sont ainsi capables : gérer les conflits d accès d assurer l intégrité des données d annuler des modifications de maintenir des index (pour l optimisation des accès) Introduction aux bases de données p.10/47
Définitions Notez bien : un SGBD-R ne devine rien, il ne fait qu exploiter les informations fournies par le développeur. Il est donc nécessaire de bien concevoir les base de données, en mettant en particulier en évidence les relations existant entre les différentes informations pour que celles-ci puissent être exploitées par la suite... Introduction aux bases de données p.11/47
Organisation d un SGBD On peut décomposer un SGBD en un système comportant trois niveaux différents : le niveau physique : noyau du SGBD, c est lui qui effectue toutes les opérations bas-niveau le niveau logique : couche dédiée à l interfaçage entre le SGBD et le développeur le niveau externe : surcouche du niveau logique, proposant des outils plus haut-niveau Introduction aux bases de données p.12/47
Organisation d un SGBD Niveau physique accès aux données, gestion sur mémoire secondaire (persistante) des données, des index partage de données et gestion de la concurrence d accès reprises sur pannes (fiabilité) distribution des données et interopérabilité Introduction aux bases de données p.13/47
Organisation d un SGBD Niveau logique définition des structures de données : Langage de Description de Données (LDD) consultation et mise à jour des données : Langages de requêtes (LR) et Langages de Manipulation de données (LMD) Niveau externe gestion des vues environnement et langage de programmation interfaces homme-machine outils d aide (conception, saisie, déboguage) Introduction aux bases de données p.14/47
Les fonctions d un SGBD Description : permet de décrire la structure logique et physique des données Utilisation : permet d interroger, créer, modifier, supprimer les données de ma base Intégrité : un SGBD assure la cohérence et l intégrité des données Confidentialité : vérification des utilisateurs et des opérations effectuées Introduction aux bases de données p.15/47
Les fonctions d un SGBD Concurrence d accès : gestion des accès simultanés de plusieurs utilisateurs aux mêmes données Sécurité de fonctionnement : récupération des données en cas d incidents système / machine Contrôle de la redondance : en dehors des aspects conceptuels, les SGBD offre des outils permettant de contrôler la redondance d informations, via les vues notamment Introduction aux bases de données p.16/47
Les modèles de données Les SGBD déchargent les développeurs de certains aspects de la gestion de données, il est cependant nécessaire de leur fournir une description rigoureuse de ces données. Pour cela, plusieurs phases sont nécessaires : modélisation conceptuelle : description du système d information modélisation logique : interfaçage avec le SGBD (tout en restant indépendant) modélisation physique : implantation Introduction aux bases de données p.17/47
Les modèles conceptuels Ce sont des modèles très abstraits, utilisés pour : l analyse du monde réel la conception du système d information la communication entre les différents utilisateurs du système Ils sont exprimés dans un formalisme indépendant de tout SGBD. Le modèle conceptuel que nous étudierons est le modèle «entité/association». Introduction aux bases de données p.18/47
Les modèles logiques On utilise généralement deux types de langages au niveau logique : un langage de définition de données (LDD) pour décrire les structures un langage de manipulation de données (LMD) pour appliquer des opérations aux données Introduction aux bases de données p.19/47
Les modèles logiques Ces langages restent abstraits : le LDD est indépendant de la représentation physique des données le LMD est indépendant de l implantation des opérations Le modèle logique que nous étudierons est le modèle «relationnel». Introduction aux bases de données p.20/47
Les modèles physiques Ils permettent de traduire la solution obtenue grâce aux modèles précédents d un point de vue technique. On obtient ainsi l expression définitive de la solution technique. Ces modèles dépendent du SGBD utilisé. Introduction aux bases de données p.21/47
Avantages pour les traitements Les modèles conceptuels et logiques présentent certains avantages : Simplicité d accès : les structures et les langages sont plus simples à utiliser, dénués de considérations physiques Indépendance physique : on peut modifier l implantation physique sans modifier les programmes d application Indépendance logique : on peut modifier les programmes d application sans modifier l implantation physique Introduction aux bases de données p.22/47
En bref... Les principaux avantages de l utilisation de SGBD sont : la gestion des gros volumes d information la persistance et fiabilité le partage des données (utilisateurs, programmes) une manipulation des données indépendante de la représentation physique Mais nécessitent pour cela une analyse préliminaire, basée sur plusieurs phases de modélisation Introduction aux bases de données p.23/47
Un modèle conceptuel : Le modèle entité/association (E/A) Un modèle conceptuel : le modèle entité/association (E/A) p.24/47
Introduction Le modèle E/A est un modèle conceptuel conçu dans les années 1970 Il se base sur la représentation de deux types d information, les entités et les associations, pour décrire conceptuellement des données Il utilise une représentation graphique Livre ISBN Titre Auteur Prix 1,1 1,n Fournit Editeur Num Nom Adresse Un modèle conceptuel : le modèle entité/association (E/A) p.25/47
Les entités / types entité Une entité est un objet concret ou abstrait de l univers réel, qui possède une existence intrinsèque (ex : le livre «Le dahlia noir») Un type entité est un ensemble d entités définies par un même ensemble de types d attributs (ex : le type entité «livre») les entités sont donc des occurrences des types entité les attributs (ex : titre, auteur) ont généralement des valeurs différentes pour deux entités données Un modèle conceptuel : le modèle entité/association (E/A) p.26/47
Les entités / types entité Un ou plusieurs attributs du type entité ont des valeurs discriminantes, uniques pour une entité donnée. On les appelle des clés ou encore des identifiants. Livre ISBN Titre Auteur Prix Nom du type entité Clé ou identifiant Autres attributs Un modèle conceptuel : le modèle entité/association (E/A) p.27/47
Les entités / types entité Un type entité est décrit par : son nom une description qui indique quels objets ou concepts du monde réel il décrit la liste des attributs qui le compose, en précisant le ou les attributs clés (en les soulignant) Une occurrence (une entité) d un type entité est décrite en donnant une et une seule valeur à un instant donné à chacun de ses attributs Un modèle conceptuel : le modèle entité/association (E/A) p.28/47
Les attributs d entités Les attributs d un type entité peuvent être : composés, c est-à-dire subdivisés en attributs simples (ex : une adresse composée d une rue, d un code postal, d une ville) calculés, c est-à-dire ayant une valeur calculée à partir d autres attributs (ex : un âge, calculé à partir d une date de naissance) Un modèle conceptuel : le modèle entité/association (E/A) p.29/47
Les attributs d entités Les attributs d un type entité sont décrits par : leur nom leur type (chaîne de caractères, entier, date...) Certains attributs peuvent prendre des valeurs particulières, de type énuméré (ex : bleu, rouge pour une couleur) Un modèle conceptuel : le modèle entité/association (E/A) p.30/47
Les attributs d entités Enfin, les attributs d entités peuvent : avoir une valeur nulle (représentée généralement par NULL), qui indique que la valeur n est pas connue appartenir à un domaine donné, qui correspond à l ensemble des valeurs que peuvent prendre ces attributs (ex : entier compris dans une fourchette de valeurs) Un modèle conceptuel : le modèle entité/association (E/A) p.31/47
Les associations / types association Un type association est un concept qui permet de décrire des liens sémantiques (des relations) entre des types entité Un type association peut être caractérisé par des attributs Une type association est spécifié de manière précise par des cardinalités, qui précisent le nombre de relations que deux types entité peuvent avoir Une association est une occurrence d un type association pour deux entités données Un modèle conceptuel : le modèle entité/association (E/A) p.32/47
Les associations / types association Exemple Cardinalités Livre ISBN Titre Auteur Prix 1,1 1,n Fournit Type association Types entités Editeur Num Nom Adresse Un modèle conceptuel : le modèle entité/association (E/A) p.33/47
Les associations / types association Un type association est décrit par : son nom une description qui indique la nature de l association entre les types entité sa collection, c est-à-dire la liste des types entité associés (reliés) la description de ses attributs éventuels les cardinalités associées à chaque type entité participant à l association Un modèle conceptuel : le modèle entité/association (E/A) p.34/47
Les cardinalités Association 1 1 Ex : les grossistes ne fournissent qu un seul produit et les produits ne sont fournis que par un seul grossiste Grossiste 1,1 1,1 Fournit Produit Dans une cardinalité (x, y), x représente la cardinalité minimum et y la cardinalité maximum Un modèle conceptuel : le modèle entité/association (E/A) p.35/47
Les cardinalités Association 1 n Ex : les grossistes fournissent plusieurs produits et chaque produit n est fourni que un seul grossiste Grossiste 1,n 1,1 Fournit Produit La cardinalité 1 n (un à plusieurs) peut aussi être une cardinalité 0 n (0 à plusieurs) Un modèle conceptuel : le modèle entité/association (E/A) p.36/47
Les cardinalités Association 0 n ou 1 n Ex : les clients peuvent commander plusieurs produits. Les produits sont commandés au maximum par un client et peuvent ne pas être commandés Client 1,n 0,1 Achète Produit Un modèle conceptuel : le modèle entité/association (E/A) p.37/47
Les cardinalités Association m n Ex : les grossistes fournissent plusieurs produits et les produits peuvent être fournis par plusieurs grossistes Grossiste 1,n 1,n Fournit Produit Un modèle conceptuel : le modèle entité/association (E/A) p.38/47
Attributs d association Dans une association de type m n, il est possible de caractériser la relation par des attributs Ex : un grossiste fournit une quantité donnée de produits à une date donnée Grossiste Fournit 1,n 1,n quantité date Produit Un modèle conceptuel : le modèle entité/association (E/A) p.39/47
Remarques sur les attributs Pour chaque attribut déterminé, bien se poser la question de savoir si cet attribut est relatif à une entité ou à une association, et à laquelle : le nom du produit dépend de quoi? du produit et rien que du produit la quantité commandée dépend de quoi? de la commande passée à une date donnée l adresse du fournisseur dépend de quoi? uniquement du fournisseur Un modèle conceptuel : le modèle entité/association (E/A) p.40/47
Quelques conseils Le modèle E/A doit incorporer tous les besoins de la future base de données Il est nécessaire de disposer de toutes les informations liées à l univers pour définir précisément le modèle E/A Tout type entité a au moins une clé et au moins un autre attribut que la clé Les attributs d un type (entité, association) doivent avoir un sens pour toutes les occurrence de ce type Un modèle conceptuel : le modèle entité/association (E/A) p.41/47
Quelques conseils Un type association relie deux ou plusieurs types entité Un type association peut relier un type entité à lui-même (association unaire) Ex : des binômes pour une entité «Etudiant» Le choix des identificateurs (types entité, types relation, attributs) est très important! Les cardinalités généralement recontrées sont du type 0 1, 0 n, m n mais elles peuvent également être du type 2 5 si cela se justifie! Un modèle conceptuel : le modèle entité/association (E/A) p.42/47
Un exemple complet Un modèle conceptuel : le modèle entité/association (E/A) p.43/47
Spécifications Des clients sont caractérisés par un numéro de client, leur nom, leur prénom, date de naissance, adresse Ils commandent des produits à une date donnée et dans une quantité donnée Les produits sont caractérisés un numéro de produit, leur désignation et leur prix unitaire Chaque produit est fourni par un grossiste unique Chaque grossiste peut fournir plusieurs produits Les grossistes sont caractérisés par un numéro de fournisseur et leur raison sociale Un modèle conceptuel : le modèle entité/association (E/A) p.44/47
Marche à suivre Elle est toujours la même (à faire dans l ordre) : 1. Recenser les attributs en présence 2. Identifier les types entité 3. Identifier les types association entre les types entité 4. Attribuer les attributs de chaque type entité et association 5. Évaluer les cardinalités des types association Un modèle conceptuel : le modèle entité/association (E/A) p.45/47
Une solution Client Produit NumCli Nom Prénom DateNaiss Adresse 1,n Commande Date Quantité 1,n NumProd Design Prix 1,1 Fournit Le schéma obtenu est appelé Modèle Conceptuel des Données (MCD) 1,n Grossiste NumGross RaisonSoc Un modèle conceptuel : le modèle entité/association (E/A) p.46/47
Références Jérôme Darmont, Bases de données, maîtrise de sciences économiques, université de Lyon 2 Pierre Laroche, Conception des bases de données, pôle lorrain de gestion, université de Nancy 2 Olivier Dahan, Normalisation des bases de données et SQL, I-Con, Paris M. Scholl et al., Bases de données relationnelles, Vertigo CNAM, Paris Un modèle conceptuel : le modèle entité/association (E/A) p.47/47