Conception de Systèmes d`Information
Transcription
Conception de Systèmes d`Information
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Pôle informatique 2011/2012 Ecole Nationale Supérieure des Mines de Saint-Etienne Conception de Systèmes d’Information Antoine Zimmermann [email protected] (adapté du cours de Laurent Vercouter) © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Contenu du cours Evaluation = moyenne de deux notes examen écrit sur les aspects théoriques (individuel) mise en œuvre pratique dans un mini-projet (en double binôme) © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Plan Introduction sur les Systèmes d’Information Notions de base Mise en œuvre technique Le Modèle Entité-Association Concepts Exemple Le modèle relationnel Concepts Algèbre relationnelle Théorie des dépendances et de la normalisation © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Qu’est ce qu’un Système d’Information Système = ensemble auto-réglable et interagissant avec l’environnement qui fonctionne en vue d’un objectif précis environnement entrées sorties régulation Information = donnée enrichie d’un modèle d’interprétation © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Définition © 2011, Antoine Zimmermann Système de pilotage Système d’information Système opérant Flux de produits, argent, information Flux de matières premières, argent, information Selon Le Moigne, le système d’information est vu comme un sous-système de l’entreprise lié au système opérant et au système de décision Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Fonctions du SI Un SI a deux fonctions principales [Dumoulin] La production d’information Collecter des informations Traiter et transmettre des informations Mémoriser des informations La mise en œuvre d’outils de gestion Fonctions technologiques (matériels, logiciels, méthodes, savoir-faire, …) Fonction économique Fonction sociale © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Informatique et SI L’informatique facilite la gestion d’un SI mais ne le couvre pas dans son ensemble. SI Opérationnel SI Informatisé SIO – Système d’Information Opérationnel = toute l’activité autour du SI SII – Système d’Information Informatisé = uniquement le contenu informatisé (fichiers, bases, logiciels, …) © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE SI sans Informatique Les bibliothèques et administrations utilisaient des SI bien avant l’invention de l’ordinateur Un SI peut être mis en œuvre à l’aide de cahiers, registres, indexes, etc mais un SI sans informatique a peu d’intérêt car les tâches ne peuvent être automatisées (le SI doit être exploité par un opérateur humain) © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Communication entre SI Les SI d’entreprises partenaires (associées, filiales, client/fournisseur) doivent communiquer par des moyens « classiques » (courrier, …) par des outils informatiques : EDI (Echange de Données Informatisées) Le(s) Système(s) d’Information peut atteindre une taille et une envergure gigantesque Par ex., Google > 100 000 000 000 de documents © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Plan Introduction sur les Systèmes d’Information Notions de base Mise en œuvre technique Le Modèle Entité-Association Concepts Exemple Le modèle relationnel Concepts Algèbre relationnelle Théorie des dépendances et de la normalisation © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Stockage des données L’informatisation du SI nécessite la mise en place de supports matériels et logiciels de stockage des données. L’information est numérisée et conservée sous la forme de fichiers. Le moyen d’organiser, d’accéder à et de manipuler ces fichiers est à définir © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Système de Gestion de Fichiers Système utilisé pour gérer les données d’un disque (disquette, disque dur, CD-Rom, …) Un fichier = une suite ordonnée de données 2 types d’accès aux données d’un fichier Séquentiel (depuis l’adresse de début du fichier) Accès direct (selon un décalage par rapport à l’adresse de début) Système de Gestion de Fichiers (SGF) : gère les accès aux fichiers, application par application Inconvénient : Structure trop simple (applications indépendantes) Redondance d’information © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE SGF: inconvénients par l’exemple Exemple : Comment stocker les relations d’amitié dans des fichiers? 1 fichier pour toutes les relations Problème d’efficacité (fichier très gros) Problème d’accès (comment trouver les relations de Jules ou de Jim seulement) Problème de droit (qui a accès à quoi ?) 1 (petit) fichier par utilisateur Problème de redondance Problème de cohérence © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Base de Données Une Base de Données (BDD) est un ensemble structuré de données ayant un sens et accessibles par l’ordinateur pour satisfaire simultanément plusieurs utilisateurs nom, tél., mél., adresse, relation sociale Une BDD est conçu, construite et remplie avec des données dans un but précis © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Base de Données (suite) La structure de la BDD dépend du modèle choisi Hiérarchique ou réseaux (≈ 1960) Relationnel (≈ 1970/1980) Objet (≈ 1990) XML (arborescent) (≈ 2000) Graphe (en part. RDF) (≈ 1985/2005) Une BDD peut avoir n’importe quelle taille (agenda personnel ≈ 100 entrées ; Facebook ≈ 600+ millions d’utilisateurs) © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Au-delà des fichiers : Système de Gestion de Base de Données Un Système de Gestion de Bases de Données (SGBD) est un ensemble d’outils logiciels permettant la manipulation de BDD BD1 BD2 ... BDn SGBD Ap1 Ap2 Plusieurs BD un SGBD Apk Plusieurs applications Les applications n’ont pas besoin de savoir comment les données sont physiquement stockées Facilite la manipulation des données pour des non-informaticiens Fournit des fonctionnalités d’administration de la base © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Qu’est-ce qu’un SGBD ? Un programme permettant aux utilisateurs de créer et de maintenir des bases de données Définir : des types de données (nombre, texte, date, etc.) Construire : peupler la BDD Manipuler : mettre à jour, insérer, supprimer (e.g., ajouter/retirer un ami) Retrouver des données selon des critères (e.g., “donne-moi le nom de mes amis ayant développé une appli Facebook et qui ont moins de 18 ans”) Gérer les droits d’accès (e.g., accès aux mots de passe) © 2011, Antoine Zimmermann 17 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Principes fondamentaux des SGBD (1) Fidélité image fidèle de la réalité qu'elle modélise Unicité pas de redondance d'information dans la BD Indépendance indépendant du modèle de stockage Concurrence Gestion d’accès simultanés à une même donnée. Performance temps d’exécution raisonnable © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Principes fondamentaux des SGBD (2) Confidentialité Accessibilité des données dépendant de l’utilisateur Intégrité garanties de fiabilité et de cohérence. Robustesse tolérant aux problèmes matériels, logiciels ou humains © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Principes fondamentaux (détails 1) Problème de l’unicité La redondance implique Une duplication des efforts Du gâchis d’espace de stockage Des possibles incohérences lors de mises à jour Problème de la concurrence Le partage des données implique Un contexte multi-utilisateur (parfois > 1000 utilisateurs accèdent simultanément) Contrôle des accès concurrents Cohérence finale des données en cas de mises à jour simultanées © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Principes fondamentaux (détails 2) Problème de la confidentialité Restreindre accès aux données privées (adresse postale, date de naissance, etc) Sécurité des données sensibles (mots de passe, secret défense, etc) Droits d’accès différents selon les personnes Étudiants : peuvent lire leur propre note d’examens Enseignants : accès à toutes les notes et droit de les modifier Problème de l’intégrité Assurer la cohérence des données en Spécifiant des types pour chaque élément de données (e.g., naissance est un date postérieure à aujourd’hui) Intégrité référentiel (e.g., les amis d’un utilisateur de facebook doivent être des utilisateurs de facebook) Contrainte d’unicité (e.g., un identifiant unique par membre) © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Niveaux de représentation d’une BDD niveau externe (sous-schéma conceptuels) définition des « interfaces » d’accès aux données géré par le concepteur de la BDD et/ou les utilisateurs niveau conceptuel (e.g. modèle Entité-Association) identification des concepts concrets et abstraits de la réalité géré par le concepteur de la BDD niveau logique (e.g. modèle relationnel) formalisation de la structure des données géré par le concepteur de la BDD niveau physique (e.g. système de fichiers, index) stockage physique des données géré par le SGBD © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Acteurs du développement Partie porteuse du besoin qui définit l’objet du projet, le calendrier et le budget Maître d’œuvre Partie en charge de la réalisation technique du projet © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Cycle de développement en V © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Cycle de développement en spirale © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Cycle de vie d’une BDD Modèle Logique de Données Modèle Conceptuel de Données Monde réel Concevoir Créer la structure Langage de Description de Données Requêtes spécifiques Concepteur Implanter Maintenir Administrateur Langage de manipulation de données © 2011, Antoine Zimmermann Utilisateur Manipuler Optimiser Outils d’indexation, SGBD, … Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Plan Introduction sur les Systèmes d’Information Notions de base Mise en œuvre technique Le Modèle Entité-Association Concepts Exemple Le modèle relationnel Concepts Algèbre relationnelle Théorie des dépendances et de la normalisation © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Le modèle EntitéAssociation (ou EAR) © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Origine du modèle Entité-Association Proposé par Chen en 1976 Modèle sémantique pour comprendre et visualiser l’organisation des données Également appelé modèle EAR (Entité-AttributRelation) Objectif : concevoir un Modèle Conceptuel de Données (MCD) © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Les outils de l’analyse et conception 1 étape : spécifier le cahier des charges en langue naturelle e 2 étape : formaliser les spécifications du cahier des charges d’une manière indépendante du système utilisé → on utilisera le modèle Entité-Association ère (mais il en existe d’autres, e.g., UML) 3 étape : traduire les spécifications formelles dans un modèle logique (dépendant du système utilisé) → on utilisera le modèle Relationnel (mais il en existe e d’autres, e.g., Orienté Objet, Graphes, etc) 4e étape : implémenter le modèle dans un SGBD © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE ère 1 étape : spécification textuelle Exemple : Notre boutique vend des DVD. Chaque DVD a un numéro de référence et nous avons un stock de DVD identiques. Nous voulons enregistrer le titre du film, le réalisateur, la date de sortie et les acteurs principaux ainsi que le genre (action, drame, etc). Nous avons une offre de fidélité pour les clients réguliers donc nous devons enregistrer les achats faits par nos clients enregistrés. Généralement, le concepteur de la BDD n’écrit pas la spécification. Elle est imposé par le client ou le patron. © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE 2 étape : le modèle Entité-Association e Il décrit ce qui sera stocké dans la base de données sans imposer une architecture particulière. Il est suffisamment simple à comprendre pour être présenté aux non informaticiens donc peut être conçu en collaboration avec le maître d’ouvrage. Il documente la BDD car sa signification est clairement définie. Sert de point de départ pour l’implémentation de la BDD © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Modèle EA (1) : Entité Entité : objet concret ou abstrait reconnaissable pour lequel on souhaite enregistrer des informations. Correspond généralement à un nom commun dans le cahier des charges objet du monde réel ayant une existence physique (e.g., une personne, une voiture, une maison) objet ayant une existence conceptuelle (e.g., une entreprise, un travail, un cours d’université) on décrit un type d’entité pour décrire un ensemble d’entités existantes (e.g., l’ensemble des clients d’un magasin) une entité est un élément d’un type d’entité (e.g., Paul est une entité de type Personne) Client représentation graphique → © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Modèle EA (2) : Attribut Attribut : une information au sujet d’une entité avec une valeur pouvant être enregistrée (un nombre, du texte, une date) Une entité de type Acteur peut être décrite par : son nom sa date de naissance sa nationalité Chaque attribut a un type Une entité particulière a une valeur pour chaque attribut Acteur Représentation graphique → © 2011, Antoine Zimmermann Nom : String Naissance : Date … Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Modèle EA (2) : Clé Clé : un attribut ou un groupe d’attributs permettant d’identifier de manière unique une entité parmi les entités d’un certain type Les valeurs de ces attributs sont différentes pour chaque entité de ce type (e.g., numéro de sécu pour le type Personne) film-42, Punishment Park, 1971 Film Film-ID Titre DateDeSortie © 2011, Antoine Zimmermann film-216, Mulholland Dr., 2001 Ceci est l’ensemble de tous les films Description d’une entité de type Film Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Modèle EA (3) : Association Association : relation liant deux ou plusieurs entités Correspond généralement à un verbe dans le cahier des charges film-42, Punishment Park, 1971 film-216, Mulholland Dr., 2001 personne-123, David Lynch, 20/01/1946 Association"est réalisé par" © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Modèle EA (4) : Cardinalité Cardinalité : indique le nombre minimal et maximal d’entités pouvant être en relation avec une même entité dans une association E.g., un Film a au moins un réalisateur. Une Personne peut ne pas réaliser de film mais peut en réaliser plusieurs Film Film-ID Titre DateDeSortie 1,n réalisé par 0,n Personne Personne-ID Nom Naissance Signifie "un Film est réalisé par 1 ou plusieurs Personne" © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Modèle EA (4) : Cardinalité Cardinalité : indique le nombre minimal et maximal d’entités pouvant être en relation avec une même entité dans une association E.g., un Film a au moins un réalisateur. Une Personne peut ne pas réaliser de film mais peut en réaliser plusieurs Film Film-ID Titre DateDeSortie 1,n réalisé par 0,n Personne Personne-ID Nom Naissance Signifie "une Personne réalise 0 ou plus Film" © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Modèle EA (5) : Propriété d’une association Propriété d’une association : une association peut avoir des propriétés si elles dépendent des entités de part et d’autre de l’association Personne Personne-ID Nom Naissance 0,n joue dans Role : String 0,n Le rôle dépend de la personne et du film © 2011, Antoine Zimmermann Film Film-ID Titre DateDeSortie Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Modèle EA (6) : cas particuliers Association entre entités de même type parent 2,2 Personne Personne-ID Nom Association impliquant 3 types d’entités Salle 0,n planning date 0,n Cours © 2011, Antoine Zimmermann 1,n Groupe Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Comment concevoir la 2 étape e Lister les types d’entités évidentes qui forment le cœur du sujet de l’application (e.g., les livres pour une bibliothèque) Lister les informations pertinentes pour chaque type d’entités (leurs caractéristiques, e.g., titre, auteur) Ne garder que ce qui est utile pour l’application (e.g., numéro de sécu utile pour un SI d’hôpital mais pas pour une base de clients) © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Plan Introduction sur les Systèmes d’Information Notions de base Mise en œuvre technique Le Modèle Entité-Association Concepts Exemple Le modèle relationnel Concepts Algèbre relationnelle Théorie des dépendances et de la normalisation © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Le modèle Relationnel © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE 3 étape : le modèle relationnel e Un Modèle Conceptuel de Données (comme le modèle Entité-Association) n’est pas directement implantable car indépendant de tout choix technologique Traduction nécessaire vers un Modèle Logique de Données Suit une approche spécifique de modélisation (hiérarchique, objet, relationnelle, graphe…) Utilise un langage formel de spécification de la structure logique des données © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Modèle relationnel Proposé par Codd en 1970 « Tout est table » 1 table == 1 relation n-aire e.g., la table User est une relation entre un login, un mot de passe, un email, un nom, etc. Définit un ensemble d’opération sur les tables pour combiner des informations de différentes tables (algèbre relationnelle) Asssocié à un langage de requête (SQL) pour retrouver de l’information provenant des tables © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Table / Relation Song(Title, Artist, Album, Release-date, Composer) Song Title Artist Album Aphex Twin Drukqs ... Cocorosie Noah's Ark ... Christmas Song Mogwai EP + 2 ... I Luv The Valley OH! Xiu Xiu Fabulous Muscles ... Vordhosbn Beautiful Boyz © 2011, Antoine Zimmermann ... Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Table / Relation Song(Title, Artist, Album, Release-date, Composer) 1 colonne == 1 attribut Song Title Artist Album Aphex Twin Drukqs ... Cocorosie Noah's Ark ... Christmas Song Mogwai EP + 2 ... I Luv The Valley OH! Xiu Xiu Fabulous Muscles ... Vordhosbn Beautiful Boyz © 2011, Antoine Zimmermann ... Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Table / Relation Song(Title, Artist, Album, Release-date, Composer) Song Title Artist Album Aphex Twin Drukqs ... Cocorosie Noah's Ark ... Christmas Song Mogwai EP + 2 ... I Luv The Valley OH! Xiu Xiu Fabulous Muscles ... Vordhosbn Beautiful Boyz 1 ligne == 1 tuple © 2011, Antoine Zimmermann ... Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Concepts du modèle relationnelle (1) Un attribut (ou colonne) Ai est une variable qui prend ses valeurs dans un domaine Di Soit U = {A1 , A2, ..., An} Une relation R (ou table) définie sur U est un sous-ensemble du produit cartésien D1 × D2 × … × Dn On peut voir une relation comme un ensemble de tuples ou de lignes Le schéma de relation de R s’écrit R(A1:D1, A2:D2, ..., Ak:Dk). Les attributs constituant la clé de R sont écrits en premier dans le schéma de relation et sont soulignés. Une BD relationnelle est un ensemble de relations R1,R2,...,Rm © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Concepts du modèle relationnelle (2) Un attribut (ou colonne) Ai est une variable qui prend ses valeurs dans un domaine Di Soit U = {A1 , A2, ..., An} Une relation R (ou table) définie sur U est un sous-ensemble du produit cartésien D1 × D2 × … × Dn On peut voir une relation comme un ensemble de tuples ou de lignes Le schéma de relation de R s’écrit R(A1:D1, A2:D2, ..., Ak:Dk). Les attributs constituant la clé de R sont écrits en premier dans le schéma de relation et sont soulignés. Une BD relationnelle est un ensemble de relations R1,R2,...,Rm © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Concepts of relational databases (1) Une table ou relation : une ensemble de lignes 1 Une ligne est appelée tuple : ensemble de valeurs décrivant les éléments de la table Dans la table Song, chaque ligne représente en fait une chanson particulière Toutes les lignes ont la même structure 1 Le terme « tuple » provient de la séquence quadruple, quintuple, sextuple, septuple, octuple, etc. © 2011, Antoine Zimmermann 51 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Concepts of relational databases (2) Une colonne est un ensemble de valeurs liées à une propriété des objets décrits dans la table Toutes les valeurs dans une colonne appartiennent au même type de données (e.g., entier, date, chapine de caractère, texte) Un nom de colonne est un attribut (ou champ). L’attribut Release-date représente la date de sortie d’une chanson La valeur d’un attribut d’un tuple peut être absente (on utilise alors la valeur spéciale Null) Une colonne peut jouer le rôle d’identifiant ou clé (e.g., Song-ID) ce qui permet d’identifier une unique ligne © 2011, Antoine Zimmermann 52 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Concepts of relational databases (3) Le type de données décrivant le type de valeurs apparaissant dans chaque colonne est appelé le domaine Un domaine est un ensemble de valeurs atomiques e.g., release date: le domaine est un ensemble de dates number of tracks: le domaine est une valeur entre 1 et 99 (la limite sur un CD audio) Null représente soit une valeur inconnue, soit une valeur absente pour le tuple © 2011, Antoine Zimmermann 53 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Concepts of relational databases (4) Un schéma de relation définit les attributs d’une table Un schéma de relation R est noté : R(A1:D1,A2:D2,…,An:Dn) R est le nom de la table, A1, A2,…, An sont les attributs D1, … , Dn correspond aux domaines des attributs e.g., Song(Title:String, Release-date:Date, …) Chaque tuple t est une liste ordonnée de n valeurs t = (v1, v2, …, vn) ("Vordhosbn", "Aphex Twin", "Drukqs", 2001, "R. D. James") © 2011, Antoine Zimmermann 54 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Concepts of relational databases (5) Un attribut, ou l’association de plusieurs attributs, a ou ont le rôle de clé. On appelle ces attributs les clés primaires de la table. Elles ne peuvent pas être Null e.g., numéro de sécu, plaque d’immatriculation, numéro étudiant (on souligne la clé dans le schéma) Song(SongID, Title, Artist,...) La même valeur pour une clé primaire ne peut pas être utilisée pour 2 tuples différents La clé permet d’accéder à une unique ligne de la table © 2011, Antoine Zimmermann 55 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Concepts of relational databases (6) Une clé étrangère est un attribut qui fait référence à une clé primaire d’une autre table Song(SongID, Title, ArtistID, AlbumID ...) Artist(ArtistID, ArtistName, RealName, Birthday, ...) Album(AlbumID, Title, ReleaseDate, Label, ...) Contraintes référentielles : les valeurs des clés étrangères dans une table doivent exister dans la table qui possède cette clé primaire © 2011, Antoine Zimmermann 56 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE jointures Jointure naturelle Thêta-produit dont la condition est une égalité de valeurs entre des attributs de deux relations Jointure extérieure Jointure naturelle à laquelle on ajoute les tuples de chaque relation n’ayant pas trouvé de correspondance dans l’autre Semi-jointure Jointure naturelle à laquelle on ajoute les tuples de la première relation n’ayant pas trouvé de correspondance dans l’autre La jointure naturelle est l’opérateur le plus utilisé avec les sélections et projections, car le plus intéressant © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Requête sur une BDD relationnelle Qu’est-ce qu’une requête ? Une expression en algèbre relationnel, i.e., des opérations sur les tables Le résultat d’une requête sur des table(s) est aussi une table Opérations de filtrage : Sélection (filtre / critère) = sélection de lignes Projection = sélection de colonnes Opérations combinant 2 tables: Produit cartésien (toutes les possibilités) Jointure (faire le lien entre différentes tables) Union (union d’ensembles de lignes) Différence (élimination de lignes) © 2011, Antoine Zimmermann 58 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Opérations d’algèbres relationnelles Opérations unaire UnOp ( Table1 ) → Table2 Sélection (ou restriction) : choix de lignes Projection : choix de colonnes Opérations binaire ( Table1 ) BinOp ( Table2 ) → Table3 Sur des tables avec la même structure : opérateurs ensemblistes Union Intersection Différence Sur des tables avec différentes structures Produit cartésien Jointure © 2011, Antoine Zimmermann 59 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Sélection Choix de lignes selon une condition booléenne σ condition © 2011, Antoine Zimmermann ( Table ) 60 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Sélection Choix de lignes selon une condition booléenne σ Person Name condition ( Table ) Age Address Birthplace James B. 47 London, UK London, UK Clark K. 35 Metropolis, USA Krypton Lois L. 28 Metropolis, USA Metropolis, USA Tarzan 25 London, UK Forest, Benin Personnes vivant à Londres : σAddress="London, UK"(Person) © 2011, Antoine Zimmermann Name Age Address James B. 47 London, UK London, UK Tarzan 25 London, UK Forest, Benin 61 Birthplace Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Sélection Choix de lignes selon une condition booléenne σ condition Person ( Table ) Name Age Address Birthplace James B. 47 London, UK London, UK Clark K. 35 Metropolis, USA Krypton Lois L. 28 Metropolis, USA Metropolis, USA Tarzan 25 London, UK Forest, Benin Personnes vivant à Londres : σAddress="London, UK"(Person) Personnes vivant où elles sont nées : σAddress=Birthplace(Person) © 2011, Antoine Zimmermann Name Age Address James B. 47 London, UK London, UK Lois L. 28 Metropolis Metropolis 62 Birthplace Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Sélection (contd.) Personnes agées de moins de 30 ans : σAge<30(Person) Name Age Address Birthplace Lois L. 28 Metropolis Metropolis Tarzan 25 London, UK Forest, Benin Ceci est une table © 2011, Antoine Zimmermann 63 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Sélection (contd.) Personnes agées de moins de 30 ans : σAge<30(Person) Name Age Address Birthplace Lois L. 28 Metropolis Metropolis Tarzan 25 London, UK Forest, Benin Ceci est aussi une table ! © 2011, Antoine Zimmermann 64 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Selection (contd.) Personnes de moins de 30 ans: Name σAge<30(Person) Age Address Birthplace Lois L. 28 Metropolis Metropolis Tarzan 25 London, UK Forest, Benin Composition de sélection : personnes de moins de 30 ans vivant à Londres : σAddress="London, UK"(σAge<30(Person)) Name Tarzan © 2011, Antoine Zimmermann Age Address Birthplace 25 London, UK Forest, Benin 65 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Selection (contd.) Personnes de moins de 30 ans: Name σAge<30(Person) Age Address Birthplace Lois L. 28 Metropolis Metropolis Tarzan 25 London, UK Forest, Benin Composition de sélection : personnes de moins de 30 ans vivant à Londres : σAddress="London, UK"(σAge<30(Person)) Conjonction de sélection: σAddress="London, UK" and Age<30(Person)) équivalent à la composition Name Tarzan © 2011, Antoine Zimmermann Age Address Birthplace 25 London, UK Forest, Benin 66 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Formalisme pour la sélection Sélection / constant: σi = a(T) est l’ensemble des lignes L de la table T où L(i) = a σi = a(T) = { L | L ∈ T et L(i) = a } Sélection / inter-colonnes: σi = j(T) est l’ensemble des lignes L de la table T où L(i) = L(j) σi = j(T) = { L | L ∈ T et L(i) = L(j) } Opérateurs de comparaison ≠, <, >, ≤, ≥ peuvent être utilisés Opérateurs booléens AND, OR © 2011, Antoine Zimmermann 67 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Projection Choix de colonnes dans une table π column(s) © 2011, Antoine Zimmermann ( Table ) 68 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Projection Choix de colonnes dans une table π column(s) Person Name ( Table ) Age Address James B. 47 London, UK London, UK Clark K. 35 Metropolis, USA Krypton Lois L. 28 Metropolis, USA Metropolis, USA Tarzan 25 London, UK Forest, Benin Nom et âge des personnes : πName,Age(Person) © 2011, Antoine Zimmermann Birthplace Name Age James B. 47 Clark K. 35 Lois L. 28 Tarzan 25 69 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Projection (contd.) Nom des personnes vivant à Londres: πName(σAddress="London, UK"(Person)) © 2011, Antoine Zimmermann Name Age Address Birthplace James B. 47 London, UK London, UK Tarzan 25 London, UK Forest, Benin 70 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Projection (contd.) Nom des personnes vivant à Londres : πName(σAddress="London, UK"(Person)) Name Age Address Birthplace James B. 47 London, UK London, UK Tarzan 25 London, UK Forest, Benin Name James B. Tarzan © 2011, Antoine Zimmermann 71 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Formalisme pour la projection Projection sur des colonnes: πi1,...,ik(T) est l’ensemble des lignes de la table T obtenues en ne gardant que les colonnes i1, i2, ..., ik πi1,...,ik(T) = { ( L(i1), ..., L(ik) ) | L ∈ T } ! Le résultat de n’importe quelle opération sur des tables est aussi une table ⇒ on peut combiner les opérations ! Le résultat des sélections ou projections peuvent être une table vide © 2011, Antoine Zimmermann 72 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Produit cartésien Chaque ligne de la première table est combinée avec toutes les lignes de la seconde table Table1 ⊗ Table2 © 2011, Antoine Zimmermann 73 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Produit cartésien Chaque ligne de la première table est combinée avec toutes les lignes de la seconde table Table1 ⊗ Table2 Name Man James B. Address London Clark K. Metropolis Tarzan London Woman Name Lois L. Metropolis Catwoman Toutes les pairs homme-femme : Name1 Address1 Man ⊗ Woman © 2011, Antoine Zimmermann Address Gotham City Name2 Address2 James B. London Lois L. Metropolis James B. London Catwoman Gotham City Clark K. Metropolis Lois L. Metropolis Clark K. Metropolis Catwoman Gotham City Tarzan London Lois L. Metropolis Tarzan London Catwoman Gotham City 74 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Produit cartésien (contd.) Man Name James B. Address London Clark K. Metropolis Tarzan London City CName Population Country London 7,556,900 UK Metropolis 8,391,881 USA Dans quels pays vivent les hommes de la table Man ? 1) Man ⊗ City Name Address CName Population © 2011, Antoine Zimmermann Count James B. London London 7,556,900 UK James B. London Metropolis 8,391,881 USA Clark K. Metropolis London 7,556,900 UK Clark K. Metropolis Metropolis 8,391,881 USA Tarzan London London. 7,556,900 UK Tarzan London Metropolis 8,391,881 USA 75 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Produit cartésien (contd.) 2) Suivi d’une sélection : σAddress=CName(Man ⊗ City) Name Name Address CName Population Country James B. London London 7,556,900 UK James B. London Metropolis 8,391,881 USA Clark K. Metropolis London 7,556,900 UK Clark K. Metropolis Metropolis 8,391,881 USA Tarzan London London 7,556,900 UK Tarzan London Metropolis 8,391,881 USA Address CName Population Country James B. London London 7,556,900 UK Clark K. Metropolis Metropolis 8,391,881 USA Tarzan London London 7,556,900 UK © 2011, Antoine Zimmermann 76 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Produit cartésien (contd.) Couples homme-femme vivant dans la même ville σAddress =Adrress (Man ⊗ Woman) 1 2 Name1 Name1 Clark K. © 2011, Antoine Zimmermann Address1 Name2 Address2 James B. London Lois L. Metropolis James B. London Catwoman Gotham City Clark K. Metropolis Lois L. Metropolis Clark K. Metropolis Catwoman Gotham City Tarzan London Lois L. Metropolis Tarzan London Catwoman Gotham City Address1 Metropolis Name2 Lois L. Address2 Metropolis 77 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Formalisme pour le produit cartésien T1 ⊗ T2 est l’ensemble de toutes les lignes qui peuvent être obtenues en concaténant une ligne de la table T1 avec une ligne de la table T2 Τ1 ⊗ Τ2 = { L1L2 | L1 ∈ T1 and L2 ∈ T2 } ! Le produit cartésien T1 ⊗ T2 est souvent suivi d’une sélection dans laquelle une colonne de T1 et une colonne de T2 sont égalisées La succession d’un produit cartésien et d’une sélection est si courante qu’il existe une opération pour cela, la Jointure © 2011, Antoine Zimmermann 78 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Jointure Produit cartésien suivi d’une sélection 2 © 2011, Antoine Zimmermann 79 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Jointure Produit cartésien suivi d’une sélection 2 Name Man James B. Address London Clark K. Metropolis Tarzan London City CName Population Country London 7,556,900 UK Metropolis 8,391,881 USA Dans quel pays vivent les hommes de la table Man ? Name Address σAddress=CName(Man ⊗ City) CName Population Country James B. London London 7,556,900 UK Clark K. Metropolis Metropolis 8,391,881 USA Tarzan London London. 7,556,900 UK © 2011, Antoine Zimmermann 80 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Jointure (contd.) Couple homme-femme dans la même ville Man Name Address Woman Name James B. Clark K. Metropolis Tarzan London Name1 Clark K. © 2011, Antoine Zimmermann Lois L. London Catwoman Address Metropolis Gotham City σAddress =Address (Man ⊗ Woman) Address1 Metropolis 1 Name2 Lois L. 2 Address2 Metropolis 81 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Formalisme pour la jointure que L1(i) = L2(j) T 2 = { L1L2 | L1 ∈ T1 and L2 ∈ T2 and L1(i) = L2(j) } Lien avec le produit et la sélection: Soit m le nombre de colonnes de T1 T 2 © 2011, Antoine Zimmermann = σi = j+m(T1 ⊗ T2) 82 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Union Man Name James B. Address Woman London Clark K. Metropolis Tarzan London Lois L. Catwoman Name L’ensemble des personnes : James B. Man ∪ Woman Address Metropolis Gotham City Address London Clark K. Metropolis Tarzan London Lois L. Metropolis Catwoman © 2011, Antoine Zimmermann Name Gotham City 83 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Union Man Name James B. Address Woman London Clark K. Metropolis Tarzan London L’ensemble des personnes : Man ∪ Woman Address Lois L. Metropolis Catwoman Name James B. London Metropolis Tarzan London Lois L. Metropolis Personnes vivant à Metropolis: σAddress="Metropolis"(Man ∪ Woman) Gotham City Address Clark K. Catwoman © 2011, Antoine Zimmermann Name Gotham City Name Address Clark K. Metropolis Lois L. Metropolis 84 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Différence Man Name James B. Address Woman London Clark K. Metropolis Tarzan London Name Lois L. Catwoman Address Metropolis Gotham City Quelles sont les villes pour lesquelles nous connaissons au moins une femme et pas d’homme ? πAddress(Woman) – πAddress(Man) © 2011, Antoine Zimmermann Address Gotham City 85 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Formalisme de ces 2 opérations Soit T1 et T2 2 tables avec le même nombre de colonnes et les colonnes ont les mêmes domaines. Formaliser l’union T1 ∪ T2 est l’ensemble contenant les lignes de T1 et celles de T2. T1 ∪ T2 = { L | L ∈ T1 ou L ∈ T2 } Formaliser la différence T1 – T2 est l’ensemble contenant les lignes de T1 qui ne sont pas dans T2. T1 – T2 = { L | L ∈ T1 et L ∉ T2 } © 2011, Antoine Zimmermann 86 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Arbre de requête Quelles sont les couples possibles avec une homme de Londres et une femme de Metropolis ? πName ,Name (σAddress ="Metropolis"(σAddress ="London"(Man ⊗ Woman))) 1 2 2 1 OR πName (σAddress ="London"(Man)) ⊗ πName (σAddress ="Metropolis"(Woman)) 1 © 2011, Antoine Zimmermann 1 2 2 87 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Arbre de requête Quelles sont les couples possibles avec une homme de Londres et une femme de Metropolis ? πName ,Name 1 2 4 col., 2 lignes σAddress ="Metropolis" and Address ="London" 2 1 4 col., 6 lignes 2 col., 3 lignes Man ⊗ 2 col., 2 lignes Woman 2*3+2*2+4*6+4*2 = 42 cellules manipulées © 2011, Antoine Zimmermann 88 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Arbre de requête Quelles sont les couples possibles avec une homme de Londres et une femme de Metropolis ? πName ,Name 1 2 1 col., 2 lignes 4 col., 2 lignes σAddress ="Metropolis" and Address ="London" π 2 1 4 col., 6 lignes 2 col., 3 lignes ⊗ 2 col., 2 lignes ⊗ Name1 1 col., 1 ligne πName 2 col., 2 lignes 2 col., 1 ligne σAddress ="London" σAddress ="Metropolis" 2 1 2 col., 3 lignes Man Woman 2*3+2*2+4*6+4*2 = 42 cellules manipulées © 2011, Antoine Zimmermann 2 Man 2 col., 2 lignes Woman 2*3+2*2+2*2+2*1+1*2+1*1 = 19 cells manipulated 89 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Du modèle Entité-Association vers le modèle relationnel Un modèle Entité-Association peut se traduire simplement en un modèle relationnel Schéma de données plus formalisé Possibilité d’utiliser l’algèbre relationnel pour exprimer des requêtes 3 règles simples de transformation © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE EA vers modèle relationnel Règle 1 : un type d’entité devient une table et conserve tous les attributs et clés de l’entité Règle 2 : pour une association de R vers R’, si la cardinalité est 0:1 ou 1:1, on ajoute une clé étrangère vers R’ aux attributs de R Règle 3 : pour une association de cardinalité autre que 0:1 ou 1:1, on ajoute une relation ayant comme clé primaire les clés des entités associées et comme autres attributs ceux de l’association © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE EA vers modèle relationnel Modèle EA Entité Clé Attribut Association 0:1 – x,n 1,1 – x,n x,n – y,m © 2011, Antoine Zimmermann Modèle relationnel Table Clé primaire Attribut Clé étrangère (peut être Null) Clé étrangère (non Null) Nouvelle table avec clé primaire égale à l’union des clés des entités associées Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE EA vers modèle relationnel Modèle EA : Team Player Player-ID FirstName LastName Position plays in 1,1 2,n Team-ID TeamName Country Coach Modèle relationnel Player Player-ID FirstName LastName Position Team-ID © 2011, Antoine Zimmermann Team Team-ID TeamName Country Coach L’association devient une clé étrangère dans la table car cardinalité = 1 93 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE EA vers modèle relationnel Modèle EA : Match Player Player-ID FirstName LastName Position 0,n plays in scoredPts 0,n Match-ID Spectators Score1 Score2 Modèle relationnel Player Player-ID FirstName LastName Position Team-ID © 2011, Antoine Zimmermann Plays-In Match-ID Player-ID scoredPts Match Match-ID Spectators Score1 Score2 L’association devient une table avec 2 clés primaires 94 Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Cohérence des données Les relations définissent la structure des données mais pas la cohérence de contenu. Exemple de contenu incohérent : une même personne enregistrée avec deux dates de naissance différentes La gestion de la cohérence des données consiste à rendre impossible la saisie de données incohérente 2 concepts clés Dépendances fonctionnelles Formes normales © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Dépendances fonctionnelles (1) Une dépendance fonctionnelle (DF) représente le fait qu’à la valeur d'un ou plusieurs attributs, on associe une valeur pour un autre attribut Soit R(A1,A2,…, An) et une DF de Ai vers Aj se note : Ai → Aj Par exemple, il existe une DF entre le numéro et le nom d’un propriétaire numero → nom © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Dépendances fonctionnelles (2) Une DF A → B est dite élémentaire si un sousensemble de la clé n'est pas source de la DF ∀a ∈ A, A − {a} → B Une DF A → B est dite directe s'il n'existe pas d'ensemble d'attributs C tel que A → C et C → B © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Normalisation Lors de la conception d’une BDD, plusieurs possibilités de modélisation existent (dont plusieurs bonnes !) La qualité d’un modèle dépend de plusieurs facteurs quantité d'information à stocker facilité d'expression des requêtes prévention d'erreur de mise à jour et d'incohérences La normalisation d’une BDD implique le respect de critères de protection de l’intégrité des données 6 formes normales existent 1ère, 2ème, 3ème, 4ème, 5ème formes normales + celle de Boyce-Codd La 3ème, voire celle de Boyce-Codd, est largement suffisante © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE 1 forme normale ère Une relation est dite normalisée si un même attribut n'est pas présent plusieurs fois dans une relation et si aucun attribut n'est décomposable en d'autres attributs. Toute relation normalisée est en première forme normale (1FN) Student(stud-ID: int, prof-ID: int, course: string, s-name: string, p-name: string, mark: int) stud-ID prof-ID course s-name p-name mark 1 11 physics Smith Einstein 17 1 12 maths Takashi Euler 12 2 25 maths Peréz Euler 4 Inconvénient : Les DF ne sont pas respectées © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE 2 ème forme normale Une relation est dite en deuxième forme normale (2FN) si Elle est en 1FN Toutes les DF issues de sa clé sont élémentaires Student(stud-ID: int, prof-ID: int, course: string, s-name: string, p-name: string, mark: int) stud-ID prof-ID course s-name p-name mark 1 11 physics Smith Feynman 17 1 12 maths Smith Euler 12 2 12 maths Peréz Feynman 4 Inconvénient : Les DF des attributs hors clé ne sont pas respectées © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE 3 ème forme normale Une relation est dite en troisième forme normale (3FN) si Elle est en 2FN Toutes les DF issues de sa clé sont directes Student(stud-ID: int, s-name: string), Prof(prof-ID: int, p-name: string) et Mark(stud-ID: int, prof-ID: int, course: string, mark: int) stud-ID s-name 1 Smith 2 Peréz Inconvénient : stud-ID prof-ID course mark 1 11 physics 17 1 12 maths 12 2 11 maths 4 prof-ID p-name 11 Feynman 12 Euler Les DF dont la source n’est pas dans la clé ne sont pas respectées © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Forme normale de Boyd-Codd Une relation est dite en forme normale de Boyd-Codd (FNBC) si Elle est en 2FN La source de chaque DF est la clé de la relation Student(stud-ID: int, s-name: string), Prof(prof-ID: int, p-name: string, course: string) et Mark(stud-ID: int, course: string, mark: int) stud-ID s-name 1 Smith 2 Peréz © 2011, Antoine Zimmermann stud-ID course mark 1 physics 17 1 maths 12 2 maths 4 prof-ID p-name course 11 Feynman physics 12 Euler maths Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Suite du cours Mercredi 30 novembre TD/TP « modélisation de BDD » Mercredi 7 décembre TD/TP sur le langage SQL Mercredi 4 janvier TD/TP « approches de la performance » Mercredi 11 janvier Modélisation du projet à réaliser Mercredi 18 janvier TP d’interfaçage (OpenOffice Base, PHP) Mercredi 25 janvier, 1er et 8 février, vendredi 10 février Développement du projet © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Références Plus de détails sur les supports suivants : « Les bases de données relationnelles », A. Flory, F. Laforest, ed. Economica, 2005 « Bases de données et systèmes d’information », N. Boudjlida, ed. Dunod, 1999 Quelques cours en ligne : http://www.metz.supelec.fr/metz/personnel/vialle/course/SI/index.ht m http://www.crescenzo.nom.fr/CMBasesDeDonnees/ http://www.emse.fr/~juganaru/CSI/index.html http://www.volle.com/rennes2/index.htm Ce cours s’est largement inspiré de ces supports © 2011, Antoine Zimmermann Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE Tous les supports de ce cours sont disponibles ici : http://www.emse.fr/~zimmermann/teaching/csi © 2011, Antoine Zimmermann