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