Analyse et Conception de Systèmes Informatiques (ACSI) Cours 1 : Présentation L'algèbre relationnelle Le modèle entité-relation (E-A) Cours 2 : Le langage SQL Cours 3 : SQL avancé Cours 4 : Méthodes de modélisation Cours 5 : Administration et sécurité 2 Présentation Pourquoi une base de données ? Problèmes Définition Objectifs Différents types de base de données Les bases hiérarchiques Les bases en réseau Les bases relationnelles Les bases de données objet Les bases de données XML 3 Pourquoi une base de données ? Problèmes Format des données Intégrité des données Accès aux données Sécurité des données Sauvegarde des données 4 Pourquoi une base de données ? Définitions Une base de données est un lot d'informations stocké dans un dispositif informatique. Un système de base de données (SGBD) est un module informatique chargé de gérer les données en en permettant la création, la modification, la suppression et la lecture. 5 Pourquoi une base de données ? Objectifs L'indépendance : la BD est un module dissocié du système d'information. L'accès : la BD gère les accès aux données en gérant les accès concurrentiels. La cohérence : la BD assure l'intégrité des données. La sécurité : la BD gère les accès aux données en fonctions des utilisateurs. L'administration : la BD peut être administrée au sauvegardée de façon autonome. 6 Différents types de base de données Base hiérarchique Présentation Lie les enregistrements dans une structure arborescente où chaque enregistrement n'a qu'un seul possesseur. 7 Différents types de base de données Base en réseau Présentation Est une base hiérarchique mais permet en plus d'établir des relations transverses. 8 Différents types de base de données Base relationnelle Présentation Stocke les informations décomposées et organisées dans des matrices appelées relations ou tables. 9 Différents types de base de données Base objet Stocke les informations groupées sous forme de collections d'objets persistants. Base XML S'appuie sur le modèle de données fourni par XML. 10 L'algèbre relationnelle La sélection La projection L'intersection L'union La différence Le produit cartésien La jointure La division cartésienne 11 La sélection A partir d'un ensemble A, obtenir les données B correspondant à des critères donnés. Présentation A B Exemple Opérateur unaire. ID Nom Prénom 1 Simpson Marge 2 Simpson Homer 3 Simpson Bart 4 Simpson Lisa 12 La projection A partir d'un ensemble Présentation A, obtenir uniquement A les données B pertinentes B. Exemple Opérateur unaire. ID Nom Prénom 1 Simpson Marge 2 Simpson Homer 3 Simpson Bart 4 Simpson Lisa 13 L'intersection A partir des ensembles A et B, obtenir les données C qui existent à la fois dans A et Dans B. Présentation A C B Exemple Opérateur binaire. ID Prénom ID Prénom 1 Bart 5 Marie 2 Lisa 6 Lisa 3 Marge 7 Jacques 14 L'union A partir des ensembles A et B, obtenir les données C qui existent soit dans A soit dans B. Présentation A C B Exemple Opérateur binaire. ID Prénom ID Prénom 1 Bart 5 Marie 2 Lisa 6 Lisa 3 Marge 7 Jacques 15 La différence A partir des ensembles A et B, obtenir les données C qui existent dans A mais pas dans B. Présentation A C B Exemple Opérateur binaire. ID Prénom ID Prénom 1 Marge 5 Marie 2 Lisa 6 Lisa 3 Homer 7 Jacques 16 Le produit cartésien A partir des ensembles A et B, obtenir toutes les combinaisons possibles C. Présentation A B C Exemple Opérateur N-aire. ID Prénom ID Nom 1 Bart 5 Simpson 2 Lisa Prénom Nom Bart Simpson Lisa Simpson 17 La jointure A partir des ensembles A et B, obtenir le produit cartésien C limité à une valeur commune. Présentation A B C Exemple Opérateur N-aire. ID Prénom ID Nom 1 Marge 1 Simpson 2 Homer Prénom Nom Marge Simpson 18 Le division cartésienne A partir des ensembles A et B, obtenir les données C qui combinées à l'ensemble B donnent l'ensemble A. Présentation A B C Exemple Prénom Nom Nom Lisa Simpson Simpson Bart Simpson Prénom Opérateur N-aire. Lisa Bart 19 Le modèle relationnel L'entité L'attribut L'identifiant L'occurrence L'association ou relation La cardinalité ou multiplicité 20 L'entité Concept concret ou abstrait du monde à modéliser. Elle se représente par un cadre contenant son nom. Présentation Nom Exemple Personne 21 L'attribut Donnée élémentaire qui Présentation sert à caractériser les Nom entités et les Attribut 1 Attribut 2 associations. .... Les attributs sont listés dans l'entité. Attribut n Exemple Personne Nom Prenom Date_naiss 22 L'identifiant Attribut(s) particulier(s) permettant d'identifier chaque occurrence d'une entité. Les attributs servant d'identifiant sont soulignés. Présentation Nom Identifiant Attribut 2 .... Attribut n Exemples Personne Nom Prenom Date_naiss Personne ID Nom Prenom Date_naiss 23 L’occurrence Élément particulier d'une entité ou d'une association. Présentation L’occurrence ne fait pas partie du modèle E-A mais est expliquée ici Exemple pour mieux ID Nom comprendre l'entité. 1 Cartman Prénom Date_naiss Eric 01/05/2002 2 Broflovski Kyle 05/60/2003 3 Marsh Stanley 15/07/2001 4 MacCormick Kenny 26/08/2002 5 Stotch Butters 11/09/2002 24 Récapitulatif Entité Identifiant Champs Nom Occurences Identifiant Champ_1 Champ_2 Champ_N id_val_a ch_1_a ch_2_a ch_N_a id_val_b ch_1_b ch_2_b ch_N_b id_val_c ch_1_c ch_2_c ch_N_c id_val_d ch_1_d ch_2_d ch_N_d id_val_e ch_1_e ch_2_e ch_N_e 25 L'association ou relation L'association binaire Les cardinalités Association un à un Association un à plusieurs Association plusieurs à plusieurs Association plurielle Association N-aire Association réflexive 26 L'association binaire Permet de relier deux entités entre elles. Elle se représente par le biais d'un ovale ou d'un losange contenant son nom et ses éventuels attributs. Leur nom est généralement un verbe. Présentation Entite_1 Entite_2 Lie Attributs Exemple Personne Profession Exerce date_origine 27 Les cardinalités (1/2) Couple de valeurs indiqué à l'extrémité de chaque lien d'une association. Présentation Entite_1 Entite_2 Lie Min,Max La cardinalité minimum indique le caractère optionnel (0) ou obligatoire (1) de la relation. Min,Max Attributs Exemple Personne La cardinalité maximum indique la caractère unique (1) ou multiple (n) de la relation. Profession 0,1 Exerce 0,n date_origine 28 Les cardinalités (2/2) Couples de cardinalités possibles Associations selon les cardinalités maximums Entite_1 Entite_2 Lecture Card. Lecture 0,1 Lien vers 0 ou 1 1 1 Association 1 à 1 1,1 Lien vers 1 1 n Association 1 à plusieurs 0,n Lien vers 0 ou N n 1 Association 1 à plusieurs 1,n Lien vers 1 ou N n n Association plusieurs à plusieurs 29 L'association un à un Est caractérisée par des cardinalités maximales à 1. Présentation Entite_1 Entite_2 Lie Min,1 Min,1 Attributs Ces associations sont à proscrire dans un modèle E-A car les 2 entités peuvent être fusionnées. Exemple Personne Profession 0,1 Exerce 0,1 date_origine 30 L'association un à plusieurs Est caractérisée par une cardinalité maximale à 1 et une cardinalité maximale à n. Présentation Entite_1 Entite_2 Lie Min,n Min,1 Attributs Ici, une personne exerce au plus 1 profession et une profession peut être exercée par aucune ou plusieurs personnes. Exemple Personne Profession 0,1 Exerce 0,n date_origine 31 L'association plusieurs à plusieurs Est caractérisée par des cardinalités maximales à n. Ici, une personne exerce aucune ou plusieurs professions et une profession peut être exercée par aucune ou plusieurs personnes. Présentation Entite_1 Entite_2 Lie Min,n Min,n Attributs Exemple Personne Profession 0,n Exerce 0,n date_origine 32 L'association plurielle Deux entités peuvent Présentation être liées plusieurs Entite_1 Lie fois, c'est l'association plurielle. Lie Entite_2 Exemple Personne Exerce Profession Enseigne 33 L'association n-aire Il est possible d'associer autant d'entités que nécessaire. Présentation Entite_1 Min,Max Lie Min,Max Entite_2 Attributs Min,Max Entite_2 Il est toutefois rare de voir des associations à des degrés supérieurs des ternaires. Exemple Personne 0,n Enseigne Jour Heure 0,n Matiere 0,n Universite 34 L'association réflexive L'association réflexive Présentation permet d'associer une Entite_1 entité à elle-même. Lie Attributs Dans cet exemple, une Exemple personne est parent d'une autre personne. Personne est_parent 35 Conception du modèle Recueil et compréhension des besoins Interprétation Conception Les usages Les aberrations 36 Recueil et compréhension Il n'existe pas de modèle de données idéal. Le modèle doit correspondre à un besoin précis. Il est indispensable que chaque décision, chaque façon de faire soit réfléchie. En cas de multiples possibilités, il faut s'assurer que le fonctionnement mis en place répondra au besoin. 37 Interprétation (1/3) Une base données doit permettre de stocker toutes les informations nécessaires à son utilisation. Toute la complexité réside dans l'organisation de ces attributs. Toute redondance est interdite. Il faut essayer de créer un modèle à la fois évolutif mais aussi suffisant pour le besoin. 38 Interprétation (2/3) Un choix difficile est notamment le fait d'utiliser un attribut dans l'entité ou de créer une association. Exemple : Personne ID Nom Prenom Adresse CP Ville ou Personne ID Nom Prenom Adresse 0,1 Réside date_debut date_fin 0,N ID Voie CP Ville 39 Interprétation (3/3) Le choix des cardinalités est également primordial. Personne Exemple : ID Nom Prenom Adresse 0,1 Réside 0,N date_debut date_fin ID Voie CP Ville ou Personne ID Nom Prenom Adresse 1,N Réside type date_debut date_fin 0,N ID Voie CP Ville 40 Objectifs Au vu de ces exemples, il peut être tentant de créer un modèle le plus généraliste possible. Attention toutefois à ce type de modèles qui mèneront à des bases de données trop complexes. Les performances seront alors moindre et les fonctionnalités mise en place pas forcément utilisées. 41 Usages Pour nommer les entités et les attributs, il est interdit d'utiliser espaces et accents. Les relations sont nommées par des verbes à la forme active ou passive. Attention à la casse, certaines bases de données y sont sensibles d'autre non. Il est donc fréquent de devoir appliquer une normalisation propre à l'entreprise. Nous appliquerons dans ce cours pour les attributs et entités la règle : 1ère lettre 42 majuscule puis minuscules. Aberrations Toute répétition d'entité doit être supprimée. Les relations binaires un pour un ne doivent pas apparaître dans un modèle E-A mais si nous verrons qu'elles existent fréquemment dans un modèle de données. Les relations N-aires sont souvent complexes à comprendre et à interpréter. Il faut donc toujours se demander si celles-ci sont indispensables. 43 Exemple de mauvaise ternaire Pour déterminer si une ternaire est nécessaire, il faut se demander si chaque couple peut être opposé à la troisième entité. Ici un couple Facture/Client ne peut concerner plusieurs produits, il n'y a en effet qu'une facture pour plusieurs produits. Facture 1,n Concerne 0,n Produit 0,n Produit Quantite 1,n Client Facture 1,n Contient Quantite 1,1 Regle 1,n Client 44 Exemple de mauvaise ternaire Une autre méthode permet d'identifiant les ternaires erronées : L'attribut de l'association dépend-il des 3 entités liées ? Voiture 0,n Loue 0,n Duree Prix 0,n Client Ici, le prix ne dépend pas du client mais de la voiture et de la durée de location. 45