Initiation aux bases de donn - PowerPoint PPT Presentation

1 / 17
About This Presentation
Title:

Initiation aux bases de donn

Description:

alors qu' un enregistrement de la seconde on. n'associe qu'un seul enregistrement de la ... alors la table Livraison va tre la table p re et la table ... – PowerPoint PPT presentation

Number of Views:36
Avg rating:3.0/5.0
Slides: 18
Provided by: bernard48
Category:
Tags: alors | aux | bases | donn | initiation

less

Transcript and Presenter's Notes

Title: Initiation aux bases de donn


1
Initiation aux bases de données et à la
programmation événementielle
  • Cours N8
  • Gestion de la cohérence avec des zones de liste
    déroulantes.

Support de cours de Soheib BAARIR. Page web
pagesperso-systeme.lip6.fr/Souheib.Baarir/bdvba/su
pport.htm E-mail souheib.baarir_at_u-paris10.fr
Université Paris Ouest Nanterre la
Défense. 2009-2010. Adapté du cours de B.
COFFIN. Reproduction interdite sans autorisation
écrite de lauteur.
2
Rappel et compléments lien logique (1/3)
  • Un lien logique établit que des enregistrements
  • de deux relations (tables) sont
    complémentaires.
  • À un enregistrement de la première table, on
  • associe plusieurs enregistrements de la
    seconde,
  • alors quà un enregistrement de la seconde on
  • nassocie quun seul enregistrement de la
    première.
  • Le lien doit être réalisé à laide de la clef
    primaire de
  • la table père et dune clef externe de la table
    fils

on parle alors dun lien logique père/fils
3
Rappel et compléments lien logique (2/3)
  • La clef primaire est un champ qui ne peut pas
  • prendre la même valeur pour deux
    enregistrements
  • différents de la table.
  • Le plus simple est de laisser à ACCESS le soin
  • de gérer ses valeurs en la déclarant
  • NuméroAuto.
  • La valeur de la clef externe de la table fils
    doit
  • soit être égale à la valeur de la clef primaire
  • dun enregistrement existant de la table père,
  • soit (dans des cas particuliers) être Null.

4
Rappel et compléments lien logique (3/3)
  • Autoriser que la valeur de la clef externe (table
    fils)
  • ne soit pas renseignée (Null)
  • signifie que le champ  père  est créé après
    les
  • champs  fils , ou bien,
  • que le lien décrit une information qui apparaît
  • après la création des enregistrements père et
    fils.

5
Cas 1 Le champ père sert à définir un point
commun, entre les fils, qui apparaît après leur
création.
  • Dans une table on décrit des Commandes.
  • Dans une deuxième table, on décrit des
    Livraisons.
  • Une livraison peut concerner plusieurs commandes
  • ? alors la table Livraison va être la table père
    et la table
  • Commande sera la table fils
  • ? la clef externe de la table Commande ne doit
    pas être
  • renseignée (Null) au moment de la création
    de
  • lenregistrement (une commande)
  • elle sera mise à jour lors de la création de la
    livraison
  • (concernant plusieurs commandes).

6
Cas 2 le lien décrit un événement qui
napparaît quaprès la création du père et du fils
  • Dans une table on décrit des Å“uvres dart.
  • Dans une deuxième, on décrit des collectionneurs.
  • Un collectionneur peut posséder plusieurs Å“uvres,
  • mais elles nont quun propriétaire
  • la table Collectionneur est la table père et la
  • table Å’uvre est la table fils.
  • ?la clef externe de la table Å’uvre ne doit pas
    être
  • renseignée (Null) au moment de la création de
  • lenregistrement (réalisation de lÅ“uvre).
  • ?elle sera mise à jour au moment de la vente de
    lœuvre

7
Première conclusion.
En dehors des deux cas particuliers, la clef
externe de chaque enregistrement de la table fils
doit toujours être renseignée et égale à la clef
primaire dun enregistrement existant de la
table père
Si la valeur dune clef externe dun
enregistrement est renseignée mais nest pas
égale à la clef primaire dun enregistrement
existant, alors la base de données est
INCOHÉRENTE !
8
Garantir la cohérence de la BD
  1. Ne pas attribuer à une clef externe une valeur
    sans être certain quelle est égale à la clef
    primaire dun enregistrement existant.
  2. Ne pas supprimer un enregistrement de la table
    père tant quil est lié à au moins enregistrement
    de la table fils.
  3. Ne pas modifier la valeur dune clef primaire !

9
Gestion par imposition dune contraintes
dintégrité
Une valeur insérée dans le champ référence
fournisseur de la table article doit
obligatoirement exister comme clé primaire de la
table fournisseur (le champ N Siret)
CREATE TABLE Article ( code article
Autoincrement NOT NULL, prix article
INT, date fabrication DATE,
référence fournisseur INT NOT NULL,
CONSTRAINT A1 PRIMARY KEY (code article),
CONSTRAINT A2 FOREIGN KEY (référence
fournisseur) REFERENCES fournisseur (N
Siret) )
10
Gestion de la cohérence par lapplication.
Plusieurs possibilités (à choisir en fonction de
critères ergonomiques)
  • Plutôt que de saisir la clef externe, se
    rattacher à un enregistrement choisi parmi ceux
    qui existent dans la base.
  • ? Utilisation, dans un formulaire lié à la table
    fils, dune Zone de liste
  • déroulante permettant dafficher les
    enregistrements pères
  • possibles et de sélectionner le bon.
  • Saisir la valeur de la clef externe, puis
    vérifier quelle correspond bien à la clef
    primaire dun enregistrement existant.
  • ? Utilisation de formulaire/Sous-formulaire
    liés.

11
Exemple gestion par zone de liste déroulante.
12
La zone de liste déroulante
  • Cest un contrôle que lon peut insérer dans un
  • formulaire
  • Cest un objet lié à un ensemble de valeurs
  • ? les enregistrements dune relation définie
    par
  • une requête.
  • La zone de liste déroulante permet de
    sélectionner
  • un des enregistrements (de la relation liée)
    parmi
  • les autres.

13
La zone de liste déroulante la propriété Contenu
Avec VBA
  • Contenu / RowSource
  • Pour notre utilisation, uniquement une relation
  • décrite par une requête sélection.
  • Calculée lors du chargement du formulaire
  • Recalculée par programmation à laide de la
  • méthode Requery de lobjet.

14
La zone de liste déroulante la propriété
Colonne liée
  • Colonne liée / BoundColumn
  • colonne champ !
  • les champs de la requête sont numérotés à partir
    de la
  • gauche en commençant à 1.
  • la valeur de zone de liste déroulante est égale
    à la valeur
  • du champ repéré par la propriété  colonne
    liée .

15
La zone de liste déroulante la propriété
Contrôle source
  • Contrôle source / ControlSource
  • Utiliser pour gérer la valeur de la clef
    externe.
  • À chaque instant, la valeur du champ lié est
  • égale à la valeur de la zone de liste
    déroulante (colonne liée).

16
La zone de liste déroulante la propriété
Largeurs colonnes
  • Largeurs colonnes / ColumnWidths
  • Donne la largeur de laffichage de chacun des
    champs
  • (de gauche à droite dans lordre de la
    requête).
  • Si la largeur dun champ est de  0 cm , alors
    la valeur
  • du champ nest pas affichée pendant la
    sélection,
  • tous les champs affichables sont visibles,
    sinon, seul le
  • premier champ affichable (largeur gt0) est
    visible.

17
Astuce
  • La zone de liste déroulante permet de
    sélectionner
  • un des enregistrements (de la relation liée)
    parmi
  • les autres.
  • Pour que la recherche de lenregistrement désiré
  • soit efficace, il faut trier les
    enregistrements de la
  • relation
  • ? Utiliser la clause Order By.
  • ? Ainsi, il suffit de taper les premiers
    caractères de
  • la valeur cherchée pour se déplacer dans le
    jeu
  • denregistrements.
Write a Comment
User Comments (0)
About PowerShow.com