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