Théorie
Transcription
Théorie
ACCESS 2000 S.G.B.D.R. Système de Gestion de Base de Données Relationnelles Présentation Base de données (ou SGBD) Une base de données est un programme qui permet de créer et de gérer des fiches pour répertorier une grande quantité d’éléments. Chaque fiche (ou enregistrement) est constituée de plusieurs lignes. Chaque ligne représente un champ (ici : les cases qui contiennent Martin, Jean, 1 rue des piafs, etc…), accompagné de son nom de champ (ici : Nom, Prénom, Adresse, etc…). Les données sont ici présentés sous le format appelé Formulaire. Mais il existe également le format tableau ou Feuille de données. De façon générale, les bases de données permettent de créer, trier, rechercher ces enregistrements et de pouvoir imprimer des états qui sont des classements de ces données selon certains critères (regroupements des gens selon les villes par exemple). 1 SGBD Relationnelle Souvent, dans une grande quantité de fiches, des informations se répètent (par exemple : la ville). C’est de la mémoire utilisée inutilement. Une SGBDR permet de créer des tables qui sont des ensembles de fiches. Une table contiendra par exemple les informations sur les individus et une autre table sur les villes. Une liaison est ensuite établie entre la table « individus » et la table « villes ». Les fiches de chaque individu contiendra un champ indiquant le n° de la fiche « ville ». Les applications n’étant jamais aussi simples que dans l’exemple ci-dessus, il est conseillé d’utiliser une méthode appelée MCD (Modèle Conceptuel de Données). MCD A l’aide du MCD, nous allons analyser les informations à stocker et les décomposer afin de déterminer quelles tables et relations nous seront utiles. 1 - Nous devons d’abord répertorier les informations que nous désirons stocker. Nous allons donc déterminer les champs nécessaires à notre base de données ainsi que les types de ces champs. Les types de champs qu’Access nous permet de créer sont les suivants : • • • • • • • • Texte : jusqu’à 255 caractères de texte Numérique : contient des nombres Monétaire : contient des nombres formatés avec le symbole monétaire Date/heure : contient des dates ou des heures Compteur/N° auto : contient un nombre incrémenté1 à chaque enregistrement Oui/non : prend un état oui-non ou 0-1 Mémo : contient un texte supérieur à 255 caractères OLE : contient du son ou des images par copier-coller Nous devrons également définir la taille de certains champs (texte ou mémo) qui correspond au nombre de caractères que le champ sera susceptible de contenir. 1 Qui est augmenté de 1 2 Exemple : Nous sommes responsable du personnel dans une entreprise et désirons stocker des informations sur chacun des salariés. Les fiches actuelles se présentent sous la forme suivante. Le dictionnaire des données récapitule les informations présentes sur les fiches. Champs N° matricule Civilité Nom Prénom Adresse Code postal Ville Tel Situation de Famille Date de naissance Lieu naissance N° SS Diplôme Année diplôme Ecole - université Nom enfant Prénom enfant Date naissance enfant Date début absence Cause absence Date reprise Type Texte Texte Texte Texte Texte Texte Texte Texte Texte Date/heure Texte Numérique Texte Date/heure Texte Texte Texte Date/heure Date/heure Texte Date/heure Taille 8 12 30 30 50 5 25 10 1 25 30 30 30 30 40 3 2 - Nous devons regrouper les informations par catégories : IMPORTANT Chaque fois qu’il y a possibilité de trouver plusieurs fois la même information pour un enregistrement, il faut créer une nouvelle table. Un employé peut avoir plusieurs enfants, plusieurs diplômes et plusieurs absences. Pour le premier exemple, une ville pouvait correspondre à plusieurs personnes. Dans cet exemple, il semble cohérent de trouver 4 catégories d’informations 1. 2. 3. 4. Celles qui sont uniques et concernent directement l’employé Celles qui sont multiples et définissent sa formation Celles qui sont multiples et décrivent ses enfants Et celles qui sont multiples et définissent ses absences. Nous pourrons alors définir quatre tables à partir des ces informations. 3 – Il est nécessaire de définir des clés primaires Définition : Pour éviter la saisie multiple d’un même enregistrement, un (ou parfois une combinaison de plusieurs) des champs de la table doit être défini comme clé primaire. Cette clé ne peut jamais contenir les mêmes données d’un enregistrement à un autre. On peut utiliser un n° de sécurité sociale ou de téléphone comme clé primaire mais pas le nom de famille (qui pourrait se répéter), ou encore une combinaison entre le nom + prénom + adresse, etc… Ce qui se fait couramment, bien que cela n’interdise pas la saisie multiple d’un même enregistrement, est de créer un champ spécifique correspondant par exemple au n° de fiche avec des données Num Auto (le champ s’incrémente à chaque nouvel enregistrement). Dans l’exemple présent, nous pouvons utiliser le champ « Matricule » dans la table Employé, et créer un champ de N° fiche avec un compteur automatique pour chacune des autres tables. 4 – Il faut définir les relations entre les tables Dans chacune des tables Enfants, Diplômes et Absences, nous allons insérer le champ supplémentaire « Matricule » permettant de faire la liaison avec l’enregistrement correspondant de la table Employés. 4 Nous obtiendrons donc le schéma suivant : Nous pouvons remarquer dans la copie d’écran d’Access ci-contre que les liaisons sont représentées par des traits entre les tables. Au début et à la fin de chaque liaison, nous trouvons les caractères 1 et ∞ (signe de l’infini) : cela signifie que pour 1 employé nous pouvons trouver plusieurs enfants, plusieurs absences et plusieurs diplômes. Ceci correspond aux cardinalités des relations. Atte ntio n : Lorsqu’une relation fait intervenir un champ « clé primaire », le 1 se trouvera automatiquement du côté de la clé primaire. Les différents champs qui sont en liaison entre les tables ne porteront pas forcément le même nom (ici : « Matricule ») mais devront absolument être de même type (texte, numérique, …) « N° » est la clé primaire des trois tables de droite. « Matricule » est appelé clé externe ou encore clé étrangère (définissant ainsi le champ qui est en relation avec une autre table). A ce stade, vous devez avoir compris comment nous pouvons bâtir la structure d’une base de données. Nous allons donc pouvoir nous entraîner sur quelques exercices. Pour chaque exercice, créez sur papier (nous n’utiliserons pas encore l’ordinateur) le dictionnaire des données, puis les différentes tables, et enfin les clés primaires, les relations et leurs cardinalités. Montrez le résultat final, sous forme de tables reliées par des liaisons et avec les cardinalités adaptées, à votre formateur. Exercice 1 : Le médecin et ses patients Vous pouvez utiliser le terme « Prescriptions » au lieu d’indications… C’est plus approprié. 5 Exercice 2 : La livraison de repas à domicile Sachez qu’Access permet d’insérer des champs calculés (ici : Prix total, Total), mais nous nous en passerons pour l’exercice. Atte ntio n : Chaque client peut passer plusieurs commandes, chaque commande peut comporter plusieurs articles et chaque article peut être commandé plusieurs fois. Nous nous trouvons dans une relation de type plusieurs à plusieurs qui nous obligent à créer une table intermédiaire Lignes de commande. Exercice 3 : Gestion des contrats d’apprentissage On doit, en plus des informations sur les apprentis, pouvoir trouver dans votre base de données les informations suivantes : Entreprise : raison sociale, adresse, n° tél. du dirigeant, activité, tuteur(s), n° tél. du ou des tuteur(s), fonction du ou des tuteur(s), contrats d’apprentissage effectués CFA : nom, prénom , adresse et tél. des formateurs, apprentis gérés par les formateurs, n° des contrats avec les dates, les entreprises et les tuteurs concernés. Remarque importante : Pour continuer et donc passer à la partie « Utilisation », il est indispensable de savoir se servir de la barre des tâches puisque vous aurez à basculer constamment entre le cours et le programme Access que vous utiliserez. 6