Modélisation d`une entreprise Notions de bases Définition intuitive d
Transcription
Modélisation d`une entreprise Notions de bases Définition intuitive d
Modélisation d’une entreprise Motivation Organiser le Système d’Information de l’Entreprise Système de Pilotage Système d’Information FLUX ENTRANT Système Opérant FLUX SORTANT Notions de bases Définition intuitive d’une BD (1) Définition intuitive : on peu considérer une Base de Données (BD) comme une grande quantité de données (ou ensemble d’informations), centralisées ou non, servant pour les besoins d’une ou plusieurs applications, interrogeables et modifiables par un groupe d’utilisateurs travaillant en parallèle. Exemples d’application Système Socrate : SNCF Annuaire électronique Catalogue électronique d’une bibliothèque Modèle de l’Entreprise Notions de bases Définition intuitive d’une BD (2) Définition ; une base de données est un ensemble structuré de données (1) enregistrées sur des supports accessibles par l’ordinateur (2) pour satisfaire simultanément plusieurs utilisateur (3) de manière sélective (4) en un temps opportun (5). (1) : Organisation et description de données (2) : Stockage sur disque (3) : Partage des données (4) : Confidentialité (5) : Performance SGBD (1) Définition : Le logiciel qui permet d’interagir avec une BD est Système de Gestion de Base de Données (SGBD) SGBD BD Démarche de construction d’une BD relationnelle SGBD (2) Un SGBD est un intermédiaire entre les utilisateurs et les fichiers physiques Modélisation Entité association Interview Documents Un SGBD facilite - la gestion de données, avec une représentation intuitive simple sous forme de table par exemple - la manipulation de données. On peut insérer, modifier les données et les structures sans modifier les programmes qui manipulent la base de données Base de données Fichier 1 Schéma logique en Entité-Association Transformation en relationnel Programme 1 SGBD Fichier 2 Programme 2 Schéma conceptuel en relationnel Programme 3 Fichier 3 Le modèle relationnel Généralités Notions de modèle de données : Un modèle est un ensemble d’outils utilisés pour décrire et manipuler des données Modèle relationnel Créé par CODD (69/70) La majorité des SGBD actuels sont basés sur ce modèle Les données sont organisées sous forme de tables à deux dimensions, une table correspondant à une relation. Les données sont manipulées par des opérateurs de l’algèbre relationnelle L’état de la base est défini par un ensemble de contraintes d’intégrité Normalisation Au modèle relationnel est associé la théorie de la normalisation des relations qui permet de se débarrasser des incohérences au moment de la conception d’une base de données. Concepts du modèle (1) Table (relation) : Vision tabulaire du relationnel - les données sont représentées dans une table - Exemple : la table OUVRAGES décrit un ouvrage OUVRAGES Côte Titre 12TA1 Réseaux informatique 13G01 Algorithmes génétiques Editeur Eyrolles Eyrolles Année NbExemplaire 1998 1994 10 5 Thème Interconnexion, …. Informatique, …. Concepts du modèle (2) Attribut : nom donnée à une colonne d’une table (exemple cote, titre, editeur, etc…). La première ligne de la table comporte ses attributs Nom de la table (ou de la relation) : OUVRAGES Tuple (ou n-uplet) : nom donné à une ligne comportant des valeurs saisies. Extension d’une table : le contenu de la table à savoir tous les tuples Cardinalité : nombre de tuples de la relation. Exemple la cardinalité dans OUVRAGES est 2 L’ordre des lignes et des colonnes n’est pas significatif Pas de lignes identiques Une case possède une et une seule valeur Concepts du modèle (3) Attribut Nom donné à une colonne d’une relation Prend ses valeurs dans un domaine Domaine : ensemble de valeurs possibles prises par les attributs Exemple : Notions de clé primaire Clé primaire : Groupe d’attributs minimum qui détermine un tuple d’une manière unique dans la table Exemple de clés : le numéro de la sécu, le numéro d’étudiant La clé de la table OUVRAGE est l’attribut « cote », car la cote permet de déterminer de façon unique une ligne de la table. ATTENTION : la clé de détermine par rapport à toutes les valeurs possibles de l’attribut (ou les attributs) formant la clé primaire, et surtout pas par rapport aux valeurs déjà saisie Remarque : toute table doit obligatoirement avoir une clé primaire Entier, reel, chaines de caractères Euro Salaire = {4 000..100 000) Couleur = {bleu, blanc, rouge} Schéma d’une table Le schéma d’une table, appelé aussi le schéma en intention, comporte le nom de la relation, ses attributs + format et la clé primaire. La clé primaire est souvent soulignée (et/ou mise en gras) Exemple : le schéma de la table OUVRAGES est OUVRAGES (cote : texte, titre : texte, editeur : texte, NbExemplaire, numérique, année : date, thème : texte) Problème de Redondance des données La redondance = répétition des informations Un des objectifs des SGBD est (de nous permettre) de représenter les données avec le moins de redondance possible Pour chaque ouvrage nous désirons avoir ses auteurs dans la base. Ceci nous amène à créer un attribut supplémentaire : Auteur. Or un ouvrage peut avoir plusieurs auteurs. Nous sommes donc obligés de créer des tuples supplémentaires (un pour chaque auteur). apparition de redondance Comment éliminer ces redondances ? Eliminer les redondances (1) Pour éliminer les répétitions, nous allons dans un premier temps construire une table auteur comportant tous les auteurs La table auteur est décrite par AUTEURS (NumAuteur, nomAuteur, PrénomAuteur).Nous avons rajouté l’attribut NumAuteur pour représenter la clé. NumAuteur est un numéro qui peut être donné automatiquement par le SGBD. Dans la table OUVRAGE, nous pouvons remplacer chaque nom d’auteur par son numéro. Cette représentation nous permet effectivement de réduire la table OUVRAGES, il n’y a que le numéro de l’auteur au lieu du nom et du prénom, mais il y a toujours des redondances. La redondance provient du fait qu’un OUVRAGE peut avoir plusieurs auteurs Pour éliminer ces redondances, nous allons construire une table ECRIT qui permet de relier les OUVRAGES et leurs AUTEURS. Eliminer les redondances (2) Rappelons qu’un des intérêts d’un SGBD est sa possibilité de créer des liens entre les objets Le schéma de la table ECRIT est ECRIT (cote, NumAuteur), il suffit donc de prendre les clés primaires des tables OUVRAGES et AUTEURS et former une nouvelle table, en l’occurrence ECRIT. La base de données décrivant les OUVRAGES sera composé des tables suivantes : AUTEURS (NumAuteur, Nom, Prénom) OUVRAGES (cote, Titre, NbExemplaire, Année, Editeur, Theme) ECRIT (cote, NumAuteur) Noter que nous avons supprimé l’attribut NumAuteur de la table OUVRAGES Clé étrangère Les attributs cote et NumAuteur de la table ECRIT proviennent en fait respectivement des tables OUVRAGES et AUTEURS. Ces deux attributs sont clés primaires dans chacune de ces tables Définition : nous appelons Clé étrangère toute clé primaire apparaissant dans une autre table Exemple : NumAuteur est une clé étrangère dans le table ECRIT Cote est aussi une clé étrangère dans ECRIT Par convention, une clé étrangère est soulignée en pointilé (et/ou mise en italique) Attention : la notion de clé est toujours liée à une table. Un attribut (ou groupe d’attributs) est clé primaire, ou clé étrangère dans une table donnée. Contraintes d’intégrités (2) Trois type de C.I. obligatoires Contraintes d’intégrités (1) Un des avantages des bases de données par rapport à une gestion de fichiers traditionnelle réside dans la possibilité d’intégrer des contraintes que doivent vérifier les données à tout instant. Exemple : on souhaite poser les contraintes suivantes : Le nombre d’exemplaire de chaque OUVRAGE doit être supérieur à 0 (zéro) Chaque OUVRAGE doit avoir au moins un auteur Tec. Ceci est possible grâce à la notion de contraintes d’intégrité Définition : Des contraintes d’intégrités sont des assertions qui doivent être vérifiées à tout moment par les données contenues dans la base de données. Contrainte de clé : une relation doit posséder une clé primaire Contrainte d’entité : un attribut d’une clé ne doit pas possèder de valeurs nulles (vides) Contraintes de référence (pour les clés étrangères), c’est une contrainte exprimée entre deux tables. Tout tuple d’une relation faisant référence à une autre relation doit se référer à un tuple qui existe : Contraintes d’intégrités (3) Contrainte optionnelle Contrainte de domaine : liée au domaine de définition d’un attribut Exemple : NbExemplaire > 0 Les contraintes d’intégrité sont vérifiées (exécutées) à chaque mise à jour de la base de données (ajout, suppression ou modification d’un tuple). Si lors d’un mise à jour une contrainte n’est pas satisfaite, cette mise à jour ne peut pas avoir lieu. Intuitivement, cela consiste à vérifier que l’information utilisée dans un tuple pour désigner un autre tuple est valide, notamment si le tuple désigné existe bien En d’autre terme, quand on désigne un attribut comme clé étrangère, les seules valeurs que peut prendre cet attribut sont celles qui sont déjà saisies dans la table qu’il référence. Exemple (1) Schéma de la relation AUTEURS AUTEURS (NumAuteur, Nom, Prénom) Schéma de la relation EDITEURS EDITEURS (NumEditeur, Nom, Adresse) Schéma de la relation OUVRAGES (avec la modification de l’exercice précédent) OUVRAGES (cote, Titre, NbExemplaire, Annee, NumEditeur, Theme) Clé primaire : cote Contrainte de domaine : NbExemplaire > 0 Contrainte référentielle : OUVRAGES.NumEditeur est une clé étrangère et fait référence à EDITEURS.NumEditeur ou encore OUVRAGES.NumEditeur REFRENCE EDITEURS.NumEditeur Exemple (2) Schéma d’une base de données Le schéma d’une base de données est composée de l’ensemble des schémas des tables (relations) définies dans cette base de données Exemple de schéma de la base de données permettant la gestion de notices bibliographiques : Schéma de la table ECRIT ECRIT (NumAuteur, cote) Clé primaire : NumAuteur, cote Contraintes référentielles : ECRIT.NumAuteur REFERENCE AUTEURS.NumAuteur ECRIT.cote REFERENCE OUVRAGES.cote Le fait d’écrire ECRIT.cote REFERENCE OUVRAGES.cote, c’est-àdire définir l’attribut cote dans ECRIT comme clé étrangère, implique une contrainte référentielle. Ceci se traduit par ; les seules valeurs que peut prendre cote dans ECRIT sont celles qui sont déjà saisies dans cote d’OUVRAGES. OUVRAGE 1,N Ecrit Cote Titre NbExemplaire Année Thème 1,1 1,N AUTEUR NumAuteur Nom prénom A pour éditeur 1,N EDITEUR NumEditeur Nom Adresse Contrainte de domaine : NbExemplaire > 0 Contrainte référentielle : OUVRAGES.NumEditeur REFERENCE EDITEURS.NumEditeur ECRIT (NumAuteur, cote) Contraintes référentielles : ECRIT.NumAuteur REFERENCE AUTEURS.NumAuteur ECRIT.cote REFERENCE OUVRAGES.cote Modèle Entité Association AUTEURS (NumAuteur, Nom, Prénom) OUVRAGES (cote, Titre, NbExemplaire, Annee, NumEditeur, Theme) EDITEURS (NumEditeur, Nom, Adresse) Création d’une base de données vide Remplissage d’une base de données Base de données existante(s) Création d’une nouvelle base de données Indications • Une base de données sous Access est composée de tables. • Exemple : – Une table AUTEURS permettant de stocker des indications portant sur tous les auteurs dont on désire garder les coordonnées – Une table OUVRAGES permettant se stocker des indications sur les ouvrages que chaque auteur de la table AUTEURS a écrit. – Une table ECRIT permettant de savoir qui a écrit quoi. Création d’une table en mode création Construction d’un table Création d’un champ • La table AUTEURS stocke une liste de coordonnées d’auteurs. • Chaque auteur est caractérisé par un nom et un prénom. • Deux auteurs peuvent avoir un même nom et un même prénom. Aussi afin de les reconnaître, nous leur associons un numéro unique. • Un auteur est donc caractérisé par trois caractéristiques (ou champ) : – NumAuteur (un numéro identifiant chaque auteur de manière unique) – Nom – Prénom Création d’un champ numérique automatique Donner un nom à la table Click sur l’icône enregistrement Remplissage de la table AUTEURS (1) Remplissage de la table AUTEURS (2) Click ici Zone de remplissage manuelle La table est vide pour le moment. Zone de remplissage automatique Remplissage de la table AUTEURS (3) Navigation dans une table En cours de création Passage à l’auteur précédent Les numéros s’incrémentent automatiquement Utilisation de la touche tabulation afin de passer d’un champ à un autre. Positionnement sur le nouvel auteur Passage à l’auteur suivant Positionnement sur le premier auteur Nombre d’auteurs présents dans la table. Positionnement sur le dernier auteur Création d’un champ numérique Création d’une zone déroulante (1) Le nombre d’enfants doit être inférieur à 10 Message indiquant que la valeur du champ « nb enfant » n’est pas correct Création d’une zone déroulante (2) Liste des valeurs possibles Création d’une zone déroulante (3) Saisie d’une valeur dans la liste Restriction des valeurs possibles Pour que la valeur soit obligatoirement dans la liste, il faut remplir le champ « valide si » Exercice 2 Exercice 1 • Créer la table OUVRAGES avec les champs : – – – – – Titre : texte NbExemplaire : > 0 et avec pour valeur par défaut : 10 Editeur : Flamarion ou Eyrolles ou Europia ou cepadues Cote : numéro automatique Theme : texte avec pour valeur par défaut : « policier ». • Créer la table ECRIT avec les champs : – Cote : Numérique – NumAuteur : Numérique ETUDIANT (NumEtudiant : Numéro automatique Nom : texte, Adresse : texte, Date_Naissance : date) INSCRIPTION (NumEtudiant : Numérique, Uv : texte, Date_Inscription : date Moyenne : Numérique) UNITE_VALEUR (Uv : texte, Nb_Heures : numérique > 0 et < 200, NumResponsable : numérique) RESPONSABLE (NumResponsable : numero automatique, Nom : texte, Piece : texte, Departement : liste de valeurs possibles (Mathématique, Histoire, Informatique) Création d’une clé primaire simple (1) Clic sur le bouton droit de la souris Le champ NumAuteur est la clé primaire de la table AUTEURS La valeur d’un champ dépend d’un champ d’une autre table (1) La valeur de du champ NumAuteur de la table ECRIT doit être une valeur du champ NumAuteur de la table AUTEURS Sélection de la table AUTEURS Création d’une clé primaire simple (2) 1) Sélection du champ 2) Sélection et clic sur l’icône clé 3) Création de la clé primaire La valeur d’un champ dépend d’un champ d’une autre table (2) Sélection d’une valeur Contraintes référentielles(1) Clic sur cette icône Ces liens sont dus aux créations de listes indiquant qu’il y a un lien entre les champs. La valeur de ces champs peut prendre une valeur qui n’est pas présente dans les listes respectives Contraintes référentielles(2) Double clic Contraintes référentielles(3) Affichage de plusieurs champs dans une liste de choix Insertion de tuples dans une table à partir d’une autre table (1) Cet icône indique que ce champ est lié avec le champ d’une autre table C’est bien le NumAuteur qui est stocké mais à l’écran nous voyons uniquement le nom de l’auteur Insertion de tuples dans une table à partir d’une autre table (2) Insertion de tuples dans une table à partir d’une autre table (3) Clic sur l’icône + Diderot a écrit les ouvrages de cote 3, 2, 1. Georges Simenon n’a pas encore écrit d’ouvrages On crée un nouveau tuple dans la table ECRIT indiquant quel nouvel ouvrage a écrit Diderot Le tuple a bien été créé. On indique ici que Diderot à écrit l’ouvrage de Cote 4 Exercice 1 Reprenez la base de données gérant les inscriptions des étudiants dans des unités de valeurs en y créant les clés primaires avec les dépendances fonctionnelles correspondantes. ETUDIANT (NumEtudiant, Nom, Adresse, Date_Naissance) INSCRIPTION (NumEtudiant, Uv, Date_Inscription, Moyenne) avec NumEtudiant = ETUDIANT. NumEtudiant et Uv = UNITE_VALEUR.Uv UNITE_VALEUR (Uv, Nb_Heures, NumResponsable) avec NumResponsable = RESPONSABLE.NumResponsable RESPONSABLE (NumResponsable, Nom, Piece, Departement)