Title: Initiation aux bases de donnes et la programmation vnementielle
1Initiation aux bases de donnéeset à la
programmation événementielle
- VBA sous ACCESS
- Cours N 7
Support de cours rédigé par Bernard
COFFIN Université Paris 10 Nanterre
2007/2008
2Il ne suffit pas de connaître les propriétés des
principaux contrôles et de savoir écrire une
requête simple en SQL pour faire une BD sous
ACCESS
Il faut dabord savoir comment répartir les
données à mémoriser entre les différentes tables
et définir les liens logiques qui relient ces
tables
Principe de base une table permet de mémoriser
des occurrences dune information complexe et
cohérente
Occurrence réalisation dun concept
Information complexe information que lon peut
décomposer en éléments. Les éléments
dinformations sont les données (doù Base de
données ). Une donnée est décrite par un champ
de la table
Information cohérente les données ne sont pas
placées au hasard, elles décrivent le même
concept, participent à un sens (signification)
commun
Un enregistrement de la table correspond à une
occurrence de linformation complexe et cohérente
de la définition
3Le sens dune donnée dépend des autres données
qui lui sont associées
Autrement dit, placer une donnée dans une table
ou dans une autre en modifie la signification
Une donnée a une place et une seule celle qui
lui donne la signification souhaitée
Pour construire une bonne base de données, il
faut dabord savoir ce quon veut représenter (de
même que pour construire un bon formulaire, il
faut dabord savoir comment on veut lutiliser)
4Premièrement définir les concepts que lon
veut utiliser
Exemple vu en TD on veut enregistrer des
informations sur des écrivains et leurs uvres
Que faut-il définir ? un seul concept (luvre
et son auteur) ou bien deux concepts séparés
a priori, cest une information complexe et
cohérente
5Un seul concept ? Décrire lauteur (nom, prénom,
sexe, années de naissance et de décès) et luvre
dans un même enregistrement de la table
(unique) Les descriptions risquent de ne pas être
cohérentes Ex. Victor Hugo 1803/1885, Les
travailleurs de la mer dans un enregistrement et
Victor Hugo1804/1900, Les misérables dans un
autre Interdit dans une BD bien conçue Règle
fondamentale une information (complexe ou non)
ne doit pas être mémorisée plusieurs fois (on
parlerait de redondances) Exception on peut
utiliser des redondances à condition quelles
soient gérées automatiquement
6Deux concepts ? La description dun auteur est
une information complexe et cohérente La
description dune uvre est une information
complexe et cohérente Donc deux concepts séparés
mais associés ils sont complémentaires Une
association de 1 à plusieurs A une occurrence
dauteur correspondent n (plusieurs, 0 possible)
occurrences duvre A une occurrence duvre ne
correspond quune seule occurrence dauteur
(cest un choix de gestion, pour gérer les
uvres coproduites, il faut faire un autre choix
et on aboutit à une autre BD) Cest un lien
père/fils (père du côté un et fils du côté
plusieurs) Lien réalisé par le couple clef
primaire du père clef externe du fils Ne jamais
utiliser un autre moyen !
7Représentation graphique
Plusieurs conventions possibles pour représenter
schématiquement une BD relationnelle On
représente une table par un rectangle
8Représentation graphique
Le lien logique est représenté par une flèche
allant de la clef externe de la table fils à la
clef primaire de la table père
9A partir de quand faut-il deux tables ? Dans un
enregistrement, un champ ne peut avoir quune
seule valeur Si dans lensemble des données
constituant une information complexe, on peut
distinguer deux sous-ensembles tels quune
occurrence de lun peut être associé à n
occurrences de lautre, alors il faut deux tables
et un lien logique Le premier de ces
sous-ensembles correspond à la table père Le
second à la table fils
10Deux, cest plusieurs ? En principe oui Sauf si
cest toujours deux, ni plus, ni moins Dans ce
cas-là, on utilise deux champs avec des noms
différents Plusieurs, cest un nombre pouvant
varier, dune occurrence du père à lautre
11- Une association de plusieurs à plusieurs
- Exemple gestion des commandes dans une
entreprise - Concepts identifiés sans problème
- Client nom, adresse, etc.
- Produit nom du produit, description, prix
unitaire, etc. - Commande numéro, date, liste des produits
commandés avec la quantité commandée pour chacun
deux - Les concepts Client et Produit sont représentés
par des tables - Le concept Commande doit également être
représenté par une table - Client / Commande est une association de un à
plusieurs (lien logique) - Commande / Produit est une association de
plusieurs à plusieurs - Un lien logique simple ne peut pas décrire cette
association - Il faut ajouter une table pour gérer cette
association
12Représentation graphique dune association n/n
Quelle clef primaire pour cette table ?
13Si une occurrence de Produit ne peut être
associée quune seule fois à une occurrence de
Commande, on utilise une clef composée des deux
clefs externes
14Si une occurrence de Produit peut être associée
plusieurs fois à une occurrence de Commande, on
utilise une clef autonome
15Où placer le champ correspondant à la donnée
Quantité commandée ? Règle pour placer un champ
dans une table, il faut quil dépende entièrement
de sa clef primaire La valeur de la quantité
commandée dépend à la fois de la commande et du
produit concerné Il faut placer le champ dans la
table qui décrit lassociation Commande / Produit
16(No Transcript)
17Le sens et la place Trois taux de remises dans
trois tables différentes, quels sont leurs sens
respectifs ?
Taux de remise permanente
Pour placer un champ dans une table, il faut
quil dépende entièrement de sa clef primaire
Taux de remise valable uniquement pour le produit
et la commande concernés
Taux de remise exceptionnelle
18- Association ternaire (entre trois tables)
- Exemple gestion des commandes dans une
entreprise - Nouveaux choix de gestion
- Un client peut avoir plusieurs adresses de
livraisons - Dans une commande, le client indique pour chaque
produit à laquelle de ses adresse il doit être
livré - La pluralité des adresses nécessite une nouvelle
table - Lassociation Commande / Produit concerne aussi
ladresse elle devient ternaire - La table représentant lassociation est liée aux
trois autres par des liens logiques - La clef primaire est composée des trois clefs
externes
19(No Transcript)
20Un formulaire simple pour la saisie des commandes
Formulaire lié sa source est SELECT FROM
tabCommande
21Un formulaire simple pour la saisie des commandes
Procédure événementielle Private Sub
Choix_client_AfterUpdate() sfLigne_commande!Choix_
adresse.Requery End Sub
22Un formulaire simple pour la saisie des commandes
Étiquette dont la légende permet dafficher le
prix unitaire Procédures événementielles gérant
laffichage Private Sub Choix_produit_AfterUpdat
e() etPrix.Caption Choix_produit.Column(2)
"" End Sub Private Sub Form_Current() If Not
IsNull(Choix_produit.Column(2)) Then
etPrix.Caption Choix_produit.Column(2) ""
Else etPrix.Caption "" End If End Sub