Notion de base de données
Transcription
Notion de base de données
Initiation aux bases de données LEGTA Neuvic Janvier 1999 page 1/13 NOTION DE BASE DE DONNÉES DÉCOUVERTE DE ACCESS Une base de données est un ensemble d'informations (texte, image, son, lien internet, etc.) cohérentes, disposant de programmes pour les gérer. Elle est composée de tables, dont les éléments sont appelés des enregistrements (les lignes assimilables à des fiches), ils sont eux-mêmes constitués de champs (par exemple des rubriques). En fait la structure peut être plus complexe et les champs peuvent comporter eux-mêmes plusieurs enregistrements. On pourrait dire que des fiches peuvent contenir à leur tour des fichiers. Le modèle papier va permettre de créer des fiches, mais va rendre difficile leur consultation dans un autre ordre que l'ordre alphabétique du champ principal. Des systèmes ont été inventés avec des trous que l'on ouvre ou non, sur les bords des fiches papier, qui permettent d'effectuer des tris sur un nombre important de fiches, en passant des aiguilles dans ces trous et en laissant choir les fiches. On a aussi utilisé les cartes perforées, avant même l'existence des ordinateurs. Une base de données est d'abord constituée de tables et de relations entre les tables. S'il s'agit simplement de fiches décrivant un groupe musical, une seule table suffit, mais si l'on veut y inclure leur albums et les morceaux, on utilisera deux autres tables. La table Album ne contiendra pas d'information sur les morceaux ni les groupes, mais elle sera reliée à elles. Cela permet d'éviter les redondances, c'est-à-dire de devoir saisir plusieurs fois les mêmes données. Une table peut être présentée sous forme d'un tableau dont les lignes sont les enregistrements (les fiches) et les colonnes, les champs (les rubriques). Nom du groupe Beatles Jefferson Airplane Pays Angleterre USA Nombre de musiciens Commentaires 4 Disparu 6 Séparés deux ans après le départ de Grace Slick I MÉTHODOLOGIE DE LA CRÉATION D'UNE BASE DE DONÉES : La phase d'étude, qui précède la création de la base de données, est appelée l'analyse. Diverses méthodes ont été crées, par exemple la méthode Merise, nous n'aborderons ici que l'analyse élémentaire. Un certain nombre d'auteurs indique que la démarche d'analyse est la plus importante du projet et va jusqu'à dramatiser cette étape, en disant que si elle Ce polycop ne se suffit pas à lui-même, il ne saurait dispenser de la prise de notes Initiation aux bases de données LEGTA Neuvic Janvier 1999 page 2/13 est mal réalisée, rien ne fonctionnera. Une base mal réalisée n'est pas nécessairement inutilisable et les outils de création des bases sont suffisamment puissants et simples d'emploi, pour qu'il soit souvent possible de corriger une éventuelle erreur. Par contre si l'on s'aperçoit de l'erreur après avoir saisi les informations... cela peut obliger à les saisir entièrement de nouveau ! Il ne faut donc pas craindre de passer du temps sur l'analyse ! Un polycop séparé, traite de cette question. II EXEMPLE : GESTION DU NE COLLECT ION DE DISQUES Nous allons d'abord faire la liste des informations que nous souhaitons gérer. Il ne s'agit pas de réaliser ici une gestion parfaite d'une collection mais simplement de servir d'exemple pour aborder la création d'une base de données. Cette liste est appelée dictionnaire des données. Nous pouvons prendre en considération les éléments suivants : nom du groupe ou du chanteur, pays d'origine, date de création, style(s) de musique, discographie, morceaux. Le fait de ne pas mettre toutes les informations dans une même table (dans une même fiche) permet de ne pas avoir à saisir plusieurs fois les noms des groupes ou du titre de l'album. Informations ou dictionnaire des données Nom du groupe du chanteur ou du musicien Groupe, ou seul Pays Style Commentaires Titre de l'album Public ou studio Autre interprète présent Commentaires sur l'album Titre du morceau Commentaires sur le morceau Table Album Table Groupe Table morceaux En l'état actuel, nous avons affaire à trois tables totalement indépendantes, rien ne les relie et rien ne permet de savoir à quel album appartien un morceau, par exemple. C'était bien le but recherché, mais il est nécessaire pour le fonctionnement de la base, de relier les tables entre elles. Le lien entre la table Nom du groupe et la table Album se fera par un champ supplémentaire souvent appelé clef étrangère, ajouté à la table Album : le champ Nom du groupe. Le lien entre la table Morceau et la table Album, se fera par un champ supplémentaire ajouté à la table Morceau : le champ Titre de l'album. On pourra ajouter également le champ Nom du groupe à la table Albums. L'un des intérêts en est que ces champs n'auront pas besoin d'être saisis une seconde fois car ils proviendront des tables qui les contiennent déjà. Si l'on saisit plusieurs fois les mêmes informations dans une base de données, on parle de « redondance ». La Ce polycop ne se suffit pas à lui-même, il ne saurait dispenser de la prise de notes Initiation aux bases de données LEGTA Neuvic Janvier 1999 page 3/13 structuration de la base en tables liées entre elles, permet de ne pas avoir de redondance et donc de gagner en temps, en cohérence et en performance. Access fournit des outils d'analyse qui permettent de détecter les redondances et de réorganiser la base en créant automatiquement de nouvelles tables pour éviter cela, en particulier dans les bases à structure complexe. III PREMIÈRE ÉTAPE : CRÉATION DE LA BASE ET DES TABLES Cliquez sur Démarrer, Programmes puis Microsoft Access, La fenêtre suivante s'ouvre automatiquement. Choisissez : Fichier / Nouvelle base de données. Par la suite, vous pourrez cliquer sur le bouton Annuler en bas de cette fenêtre et démarrer à votre guise. Choisissez Base de données vide. A la différence de la plupart des logiciels, Access vous demande de créer d'abord le fichier dans lequel la base sera stockée. Donnez le nom qui vous convient, par défaut Access propose bd1.mbd ou un autre numéro si celui-ci a déjà été utilisé. La raison en est que Access doit créer les éléments de la base, avant de pouvoir les utiliser. La fenêtre Base de données s'ouvre et donne accès aux Tables, Requêtes, Formulaires, États, Pages, Macros et Modules, par les liens sur Ce polycop ne se suffit pas à lui-même, il ne saurait dispenser de la prise de notes Initiation aux bases de données LEGTA Neuvic Janvier 1999 page 4/13 lesquels vous pouvez cliquer pour afficher la liste de tous les objets de ce type dans la base de données. Une nouvelle fenêtre s'ouvre et vous propose de choisir le dossier dans lequel vous enregistrerez votre base. Placez-vous dans votre dossier sur le serveur. Il faut ensuite choisir un nom pour la base et cliquer sur le bouton : Créer. Création des tables : Nous allons créer les diverses tables que nous avons conçues lors de l'analyse. Commençons par la table Album. Cliquez sur le lien Tables s'il n'est pas déjà sélectionné et double-cliquez ensuite sur : Créez une table en mode création, la fenêtre suivante s'ouvre : Dans la colonne Nom du champ, il faut écrire le nom que l'on a choisi. Ensuite il faut choisir le Type de données, la copie d'écran suivante indique les types disponibles, il y en a neuf, ils sont décrits en annexe à la fin du polycop. Il suffit de cliquer dans la case Type de données, le type Texte apparaît ainsi que cette flèche. En cliquant dessus, la liste se déroule et l'on peut choisir le type que l'on souhaite. Ce polycop ne se suffit pas à lui-même, il ne saurait dispenser de la prise de notes Initiation aux bases de données LEGTA Neuvic Janvier 1999 page 5/13 En bas de la fenêtre, un autre menu apparaît, sous l'onglet Général, qui propose différents choix, décrits eux aussi à la fin de ce polycop, en annexe. Définissez ainsi les différents champs de la table : Titre de l'album texte, Studio Oui/Non, Autre artiste présent texte, Commentaires mémo. Pour le champ Nom, préciser Null interdit : oui dans le menu du bas. Il suffit de cliquer à nouveau dans le nom du champ pour choisir Null interdit, si cela n'a pas été fait au moment de la définition du type du champ. Cela signifie que l'on ne pourra pas laisser ce champ vide et avoir un album sans titre. Nous allons maintenant définir la clef primaire de cette table, c'est à dire un champ qui identifie de façon unique tous les enregistrements (au sens des bases de données et non celui de la musique) et permet d'y accéder beaucoup plus rapidement. Il est donc légitime ici de choisir le champ Titre de l'album comme clef primaire car c'est le seul qui identifie de façon unique l'enregistrement. En fait, une fois que l'on a choisi un champ comme clef primaire, Access empêche qu'il y ait des doublons, c'est à dire deux albums avec le même titre alors que par exemple, il peut y avoir plusieurs fois le même interprète. Il interdit également que le champ soit vide. Il rend donc inutile de préciser Null interdit, comme nous l'avons fait précédemment. Pour définir la clef primaire, cliquez dans le champ Titre de l'album et ensuite cliquez sur l'icône : Clé primaire : Dans la barre de fonctions de Access, en haut de l'écran. La même clef apparaît à côté du nom du champ. Cliquez ensuite sur la croix de fermeture, en haut à droite de la fenêtre et répondez Oui à la question : Voulez-vous enregistrer les modifications Ce polycop ne se suffit pas à lui-même, il ne saurait dispenser de la prise de notes Initiation aux bases de données LEGTA Neuvic Janvier 1999 page 6/13 apportées à la structure de la Table 'Table 1' ? Donnez alors un nom à votre table, par exemple Album. Si vous n'avez pas défini de clef primaire, Access vous propose d'en définir une avant d'enregistrer la table, faites-le avec le champ Titre. Faites de même pour créer les deux autres tables. Les indications ne sont plus fournies, c'est à vous de faire les choix, avec ces deux tables proposées. IV LES LIENS ENTRE LES TABLES : Il s'agit d'associer les tables de façon cohérente. Les liens s'établissent en reliant entre eux un champ de chaque table. Ces champs ne doivent pas nécessairement avoir le même nom, mais ils doivent avoir exactement les mêmes caractéristiques. Nous choisirons d'utiliser exactement les mêmes champs et donc les mêmes noms. Pour cela nous rajouterons le champ Nom du groupe dans la table Album et le champ Titre de l'album dans la table Morceau, comme suit. Cliquez sur l'icône Relations ou bien sur Outils, Relations dans le menu. Une nouvelle fenêtre s'ouvre. Cliquezsur le nom de chaque table et cliquez sur Ajouter. Cliquez ensuite sur Relations, Afficher la table dans le menu ou sur l'icône correspondante. Cette fenêtre s'ouvre : Vous obtenez à peu près cela. Il existe trois types de relation entre les tables, elles sont ainsi appelées : un-à- plusieurs : un groupe peut avoir réalisé plusieurs albums, noté (1,n). un-à-un : cela est rarement le cas, car alors on peut mettre les éléments qui composent ces deux tables dans une seule table, noté (1,1). Ce polycop ne se suffit pas à lui-même, il ne saurait dispenser de la prise de notes Initiation aux bases de données LEGTA Neuvic Janvier 1999 page 7/13 Plusieurs-à-plusieurs : en fait, lorsque l'on veut définir ce genre de relation entre deux tables T1 et T2, on créé une table T3 intermédiaire puis une relation un à plusieurs de T1 vers T3 et une relation de un à plusieurs de T3 vers T2, noté (n,n). 1 Nous allons créer une relation entre la table Album et la table Groupe à l'aide du champ commun : Nom du groupe. C'est une relation du type un-àplusieurs, un groupe peut réaliser plusieurs albums. Nous créerons une relation entre la table Album et la table Morceaux à l'aide du champ commun : Titre de l'album. C'est également une relation du type un-à-plusieurs, un album contient plusieurs morceaux. Cliquez dans la table Album sur le champ Nom du groupe et faites glisser le pointeur de la souris sur le même champ de la table Groupe, en gardant la bouton gauche appuyé. Une fenêtre s'ouvre : Vous y retrouvez les paramètres du lien que vous êtes en train d'établir. Cliquez ici pour appliquer l'intégrité référentielle. Cliquez ensuite sur le bouton Créer. L'intégrité référentielle est un système de règles que Access utilise pour garantir que les relations entre les enregistrements dans les tables liées, sont valides et que vous n'effacez pas ou ne modifiez pas par erreur des données liées. Cela empêchera par exemple de supprimer un album, sans avoir supprimé ses morceaux avant, il n'y aura donc pas de morceaux sans album. Vous obtenez un lien qui indique 1 du côté de la table Albums et ∞ du côté de la de la table Groupes. Faites de même entre les tables Albums et Morceaux avec le champ Titre de l'album. Cliquez sur la croix dans l'angle supérieur droit pour fermer cette fenêtre et cliquez sur le bouton Oui pour la question Enregistrer les modifications à la mise en forme de 'Relations' ? 1 Il n'existe pas de relation plusieurs à un (n,1) car ce n'est qu'une relation un-à-plusieurs dans l'autre sens. En fait il n'existe qu'une sorte de relation : de un à plusieurs, si l'on admet que la relation un-à-un n'est que rarement justifiée. Ce polycop ne se suffit pas à lui-même, il ne saurait dispenser de la prise de notes Initiation aux bases de données LEGTA Neuvic Janvier 1999 page 8/13 La base de données relationnelle est crée, en particulier du fait que nous venons de créer les relations entre les tables de la base. I LES FORMULAIRES : Un formulaire est un outil destiné à faciliter la saisie (l'entrée) des données dans une base de données. Il sert aussi à la consultation de la base. Nous allons créer un formulaire de saisie pour entrer les données dans la table de façon simple. Pour une première approche nous allons nous servir des outils d'assistance de Access pour la création de formulaires. Dans la fenêtre Base de données, cliquez sur l'onglet Formulaires puis choisissez Nouveau. Dans la fenêtre qui s'ouvre, cliquez sur Assistant Formulaire et cliquez sur OK. Dans la fenêtre qui s'ouvre, choisissez ici le nom de la première table dont vous voulez utiliser les champs et cliquez ensuite sur le bouton ajouter pour chacun des champs que vous voulez dans le formulaire. Commencez par la table Groupe dont vous ajouterez tous les champs, passez à la table Albums dont vous ajouterez tous les champs sauf le champ Nom du groupe, car il est déjà présent avec la table Groupe. De la même façon, choisissez ensuite la table Morceaux dont vous ajoutez tous les champs sauf le champ Titre de l'album. Cliquez sur le bouton Suivant une fois ceci terminé. Ce polycop ne se suffit pas à lui-même, il ne saurait dispenser de la prise de notes Initiation aux bases de données LEGTA Neuvic Janvier 1999 page 9/13 Dans la nouvelle fenêtre, vérifiez que le bouton : Formulaire avec sousformulaires(s) est coché puis cliquez sur le bouton Suivant. Dans la fenêtre suivante, vérifiez que les deux boutons Tabulaire sont cochés, comme indiqué sur la page suivante. Ils définissent la présentation du formulaire. Une fois que ceci sera terminé, n'hésitez pas à recommencer et à modifier les options choisies. Cliquez ensuite sur le bouton Suivant. Dans la fenêtre suivante, Access propose différentes présentations, choisissez celle qui vous convient, l'exemple de ce polycop est réalisé avec le style Couleur 2. Cliquez à nouveau sur Suivant. La nouvelle fenêtre affiche les noms que Access va donner à ce qu'il appelle les sous-formulaires, c'est-à-dire qu'il a besoin d'un formulaire par table pour réaliser le formulaire global. Il indique ainsi les noms qu'il va utiliser, ne les changez pas et en cliquant sur le bouton Terminer, la création du formulaire et des sous-formulaires démarre de façon automatique. Le formulaire ainsi créé, doit avoir à peu près l'allure suivante : Ce polycop ne se suffit pas à lui-même, il ne saurait dispenser de la prise de notes Initiation aux bases de données LEGTA Neuvic Janvier 1999 page 10/13 Vous pouvez commencer la saisie. Dès que vous avez entré quelques informations, vous pouvez utilisez les boutons de défilement pour voir leurs fonctions. Vous constaterez aussi que les tables sont bien liées de façon correcte. Par contre, il ne vous est pas possible d'effectuer des recherches autrement que séquentiellement, c'est à dire en faisant défiler les informations. V LES REQUÊTES : Les outils que l'on peut mettre en place pour effectuer des recherches s'appellent des requêtes. Elles ont beaucoup d'autres applications : modifier ou analyser les données de différentes manières, elles peuvent servir pour un formulaire, pour effectuer des calculs. Vous pouvez aussi les utiliser comme source d'un formulaire ou d'un état, etc. Nous allons créer une requête qui permettra de trouver les albums d'un groupe donné et les morceaux de chaque album. Dans la fenêtre Base de données, cliquez sur l'onglet Requêtes puis sur le bouton Nouveau. Comme précédemment, cliquez sur la table Groupe, sur la table Album et sur la table Morceaux. Vous obtenez l'écran suivant: Ce polycop ne se suffit pas à lui-même, il ne saurait dispenser de la prise de notes Initiation aux bases de données LEGTA Neuvic Janvier 1999 page 11/13 Il n'est bien évidemment pas nécessaire de se servir de toutes les tables pour une requête, ni de tous les champs de chaque table. Cliquez dans chaque table sur un champ que vous voulez utiliser pour votre requête et faites-le glisser (sans lâcher le bouton de la souris) sur la première ligne d'une colonne dans le tableau en-dessous. Vous obtenez le résultat suivant Cliquez ensuite sur la ligne Critères de la colonne Nom du Groupe et tapez un nom que vous avez déjà entré dans votre base. Cliquez sur Affichage, Mode feuille de données dans la barre de menu en haut, pour voir le résultat de Ce polycop ne se suffit pas à lui-même, il ne saurait dispenser de la prise de notes Initiation aux bases de données LEGTA Neuvic Janvier 1999 page 12/13 votre requête. Revenez sur Affichage, Création pour modifier votre requête. Cliquez ensuite sur la croix de fermeture en haut à droite et enregistrez votre requête sous le nom que vous souhaitez. Si vous n'entrez aucun critère, vous obtiendrez toutes les informations de votre base. Si vous voulez par exemple la liste de tous les albums, il suffit de créer une requête avec uniquement la table Album, vous pouvez en plus préciser de présenter la liste par ordre alphabétique, vous pouvez cliquer dans la ligne Tri et choisir l'ordre de tri. Une fois votre requête enregistrée, il suffira de cliquer sur sont nom dans la liste des requêtes pour l'exécuter. VI LES ÉTATS : Les états permettent de mettre en forme des données pour les imprimer. Dans la fenêtre Base de données, cliquez sur l'onglet Etats, puis sur le bouton Nouveau. Choisissez Assistant Etat dans la nouvelle fenêtre. Choisissez ensuite les tables et les champs que vous souhaitez voir figurer dans votre état. Pour faire un essai vous pouvez commencer par prendre uniquement la table Album afin de produire une liste de tous les albums enregistrés. Lorsque la question Souhaitez-vous ajouter un niveau de regroupement ? paraît, cliquez simplement sur suivant. Pour les autres fenêtres choisissez comme vous le souhaitez. A la fin, vous verrez sur l'écran,un exemple de l'état qui sera imprimé. Ce polycop ne se suffit pas à lui-même, il ne saurait dispenser de la prise de notes Initiation aux bases de données LEGTA Neuvic Janvier 1999 page 13/13 Types de données parmi lesquels vous pouvez choisir celui à attribuer à un champ d'une table Microsoft Access. Microsoft Access dispose de neuf types de données de champ Texte Mémo Numérique Du texte avec au maximum 255 caractères. 50 caractères par défaut. Indexable et triable Du texte jusqu'à 64 000 caractères, non indexable ni triable, utilisable pour des résumés, des remarques, etc. Enregistre les nombres a priori dans le format dans lequel ils ont été rentrés Date/Heure Permet d'avoir des nombres de 15 chiffres avec quatre chiffres après la virgule. Ce format empêche les arrondis lors des calculs. Permet de numéroter automatiquement et séquentiellement les NuméroAuto enregistrements Oui/Non Affiche oui ou non Permet de stocker toutes sortes d'objets : des images, des sons, des Objet OLE fichiers, de manière générale tout type de fichier créé avec d'autres programmes que Access Lien Des liens vers des pages HTML sur l'Internet ou sur un intranet (réseau hypertexte local), plus généralement vers des ressources en réseau Assistant liste Pour créer un champ qui permet de choisir dans une liste déroulante une de choix valeur provenant d'une autre table ou d'une liste de valeurs. Monétaire Ce polycop ne se suffit pas à lui-même, il ne saurait dispenser de la prise de notes Initiation aux bases de données LEGTA Neuvic Janvier 1999 page 14/13 Ces champs ont des propriétés qui peuvent être choisies dans le menu du bas de la fenêtre de définition des champs Taille du champ Nombre de caractères ou taille du nombre et décimales, pour limiter la taille de la table Format Décimales Masque de saisie Légende Valeur par défaut Valide si Message si erreur Null interdit Chaîne vide autorisée Indexé Définit le nombre de chiffres après la virgules des champs numériques ou monétaires Se réalise à l'aide d'un assistant de Access, permet d'imposer un format pour les données saisies, par exemple la façon dont est saisie la référence d'un produit Permet de remplacer le nom du champ par un texte plus explicite dans un formulaire ou un état. Permet de gagner du temps dans les saisies en donnant une valeur au départ sans intervention de l'utilisateur. On y place la valeur la plus courante du champ Limite les possibilités de saisie, impose des conditions aux réponses possibles, par exemple des limites pour des nombres Message d'erreur qui sera affiché si l'on entre une valeur non autorisée, par exemple si les conditions imposées dans Valide si ne sont pas satisfaites. Si cette propriété est fixée à Oui pour ce champ, on ne pourra pas le laisser vide. Pour les zones de texte, si l'on répond non avec null interdit, on ne pourra pas répondre en entrant simplement un espace. Si l'on indexe un champ, les recherches sur ce champ seront plus rapides. En fait il crée une autre table invisible dans laquelle s'effectuent les recherches. Les champs qui sont des clefs sont toujours indexés. Ce polycop ne se suffit pas à lui-même, il ne saurait dispenser de la prise de notes