A moins que vous ne soyez un developpeur aguerri ou 1 fin connaisseur des bases de donnees, elles vous ont certainement deja donne du fil a retordre.

Detailed description

A moins que vous ne soyez un developpeur aguerri ou 1 fin connaisseur des bases de donnees, elles vous ont certainement deja donne du fil a retordre.

Je ne vais pas ici expliquer les bases des relations, car ce n’est jamais l’optique, mais les differentes relations possible entre nos tables. des precisions basiques paraissent precisions dans mon cours en ligne, a sa lecon 16 (payant).

Le prerequis pour suivre votre didacticiel est de savoir au moins quelque peu jouer au milieu des relations avec le menu Outils/Relations

Mes exemples cites dans ce didacticiel

se reposent sur votre base de donnees.

Exemple 1 : Le plus courant, la relation 1 a quelques

Ca, c’est vraiment J’ai relation Notre plus courante.

Imaginez la table Rel1_T_Client avec 2 champs : NomClient et PaysOrigine. NomClient est en cle primaire. Bon, ce n’est jamais une agreable idee de mettre NomClient en Cle primaire puisque dans la vie courante, plusieurs clients vont pouvoir avoir le meme nom, mais c’est Afin de simplifier.

Nous avons un 2eme champ PaysOrigine qui n’est nullement en cle primaire, forcement, puisqu’il pourra y avoir diverses fois le aussi (2 fois Belgique dans notre cas).

L’autre table s’appelle Rel1_T_Pays, et ne inclut qu’un seul champ Pays, en cle primaire (oui, cette fois, il ne est en mesure de pas y avoir 2 fois le aussi pays). Constatez que Mes champs Pays et PaysOrigine que nous allons lier ensemble ne portent pas le aussi nom, et cela ne gene en que dalle le mecanisme relationnel..

On peut bien evidemment creer une liste deroulante dans la table Rel1_T_Client, sur le champ PaysOrigine, qui se basera via le champ Pays de Rel1_T_Pays. Je ne m’appesantis nullement sur ces listes Afin de rester vraiment au sein d’ une telle histoire de relations pure et dure.

On va pouvoir donc avoir un client qui n’a aucun pays (Daniel), ainsi, des clients ayant le meme pays (Alice et Charles). NEANMOINS,, il est impossible de dire que Daniel vient du Chili Prenons un exemple, car le Chili n’existe gui?re dans Rel1_T_Pays.

C’est dans Outils/Relations que nous allons faire glisser PaysOrigine de Rel1_T_Client sur Pays de Rel1_T_Pays. (Dans un sens ou dans l’autre, aucune importance)

Et nous obtenons :

Mes champs en gras NomClient et Pays paraissent seulement les cles primaires. Et le petit 1 et le 8 couche (signe qui veut dire “Infini”) paraissent la preuve que l’integrite referentielle a bien ete appliquee. Si nous avions eu des clients qui provenaient du Chili notamment, c’est a dire s’il y avait “Chili” indique Afin de un de la clienti?le, alors, Access n’aurait nullement accepte de faire l’integrite referentielle.

Il pourra y avoir d’autres soucis, comme claque de ne pas fermer une table avant d’aller en relations, qui provoque des erreurs, mais a nouveau, referez-vous a notre lei§ons Afin de des renseignements plus basiques.

Modi?le 2 : une aussi table se rattache a diverses champs, de 1 a diverses

Ce 2eme exemple ressemble enormement au premier, mais on voit une telle fois 2 champs qui demandent a etre rattaches a une seule table externe :

Nous avons une telle fois un champ PaysOrigine et un champ PaysHabitation.

Vous savez quoi ? ca ne pose pas vraiment de probleme ! Dans outils/Relations, il suffira d’ajouter 2 fois Rel2_T_Pays, comme ceci :

J’INSISTE : Rel2_T_Pays _1 n’est PAS une copie en table Rel2_T_Pays ! C’est simplement la maniere d’Access de preciser que la meme table est utilisee 2 fois.

Modi?le 3 : la relation de 1 a 1

Notre relation 1 a 1 reste vraiment plus rare que la relation 1 a diverses. C’est aussi possible que vous n’en ayiez jamais besoin. Mais c’est bien de savoir a quoi celle-ci est en mesure de servir !

Saviez-vous qu’Access ne gere jamais un nombre illimite de champs ? Eh non ! A partir d’une centaine de champs, il va falloir s’attendre a votre qu’il vous penser que la table comporte de trop nombreux champs ! Ca vous interesse, les limites d’Access ? Cliquez ici !

Imaginez que vous avez une table absolument gigantesque gerant notamment l’etat de patient tout d’un hopital. Il y aura evidemment le nom, le age, le poids, puis le taux de cholesterol, de glycemie, ainsi, ensuite son nombre de globules rouges, blancs, machins bidules, trucs. bref, je ne suis nullement medecin, mais je peux imaginer qu’on a besoin de 200 precisions diverses pour un meme patient. Alors donc, comme vous n’arriverez pas a mettre 200 champs dans une aussi table, vous creerez deux tables, qui seront liees de 1 a 1.

Vous comprenez le principe ? Bon, pour ne pas nous attarcder concernant le milieu medical, nous allons prendre un modi?le tout bete : Nous allons creer une table avec les informations generales de la clienti?le, et une 2eme table avec les precisions Telecom (Telephone, fax, e-mail, . )

Il va i?tre fort important que des deux champs lies (Ici NomClient et NomClient) soient en cle primaire, sinon, si l’un des deux ne l’est nullement, ca ne fera nullement une relation 1 a 1 mais 1 a diverses.

ATTENTION : Normalement, le sens dans lequel vous tirez un champ Afin de aller par l’autre n’a aucune importance. En tout cas pour bien et cela concerne nos champs de 1 a diverses. Mais dans le cas des champs relies de 1 a 1, ca A VRAIMENT de l’importance. Il convient bien tirer de la table principale (ici Rel3_T_Client) VERS la ou les autres tables liees de 1 a 1 (ici Rel3_T_ClientTelecom).

Notre raison en est que comme les deux tables seront liees avec integrite referentielle, il faudra donc qu’un client qui existe dans une table doit exister au sein d’ l’autre. Mais dans le contexte tout d’un NOUVEAU client, comment pourrait-il etre lie puisque le temps de le creer dans une table, y n’existe pas dans l’autre, vous comprenez ?

Si je cree Francois comme nouveau client dans Rel3_T_Client, le temps que je ferme la table, ainsi, que j’aie le rajouter dans Rel3_T_:Telecom, Access va hurler : “He ! Vous ne pouvez jamais rajouter Francois dans la premiere table, puisqu’il n’existe jamais dans la 2eme !” Et reciproquement !

Et on fera comment alors .

Eh bien, en faisant bien gaffe de tirer les champs une table principale par l’autre et nullement l’inverse, vous pourrez alors creer votre nouveau client au sein d’ Rel3_T_Client sans pour autant qu’il y ait de relation avec l’autre table Rel3_T_Telecom. C’est d’ailleurs de que j’ai fera.

NEANMOINS, vous ne pouvez PAS creer de nouveau client dans Rel3_T_Telecom avant de l’avoir cree dans Rel3_T_Client.

A part ca, ne creez aucun tables multiples “pour faire joli” ou pour la jouer ton genre “Je sais choisir nos relations 1 a 1”. Tant que vous pourrez tout stocker dans une aussi table, ca facilite les choses. d’autant que vous pouvez creer des requetes qui affichent tels ou tels champs.

Exemple 4 : la relation sans integrite referentielle

On peut dire de la maniere generale que “normalement”, chacune des tables d’une base de donnees seront reliees “1 a plusieurs”, les unes au milieu des autres. Les relations 1 a 1 seront rares.

Les relations sans integrite referentielle vont pouvoir se faire n’importe De quelle fai§on : vous pourrez tirez n’importe quel champ de n’importe quelle table, aussi si leur type de donnees est differents, de l’instant que vous ne cochez gui?re “integrite referentielle”. Quand vous creez une liste deroulante basee dans une autre table, a J’ai fin de l’assistant, il vous devoile “Voulez-vous que des relations soient creees ?”. Si vous repondez Oui, vous aurez une relation sans integrite referentielle.

Si vous entrez dans une base de donnees dans laquelle vous constatez que la quasi totalite des tables sont liees nos unes aux autres sans integrite, vous pourrez etre limite certain qu’elle fut creee via un quidam qui ne connait gui?re le fonctionnement des relations.

Il existe toutefois des cas ou deux tables ont interet a etre reliees sans integrite referentielle.

Imaginons une table Rel4_T_Client, avec le nom du client, ainsi, sa metropole d’origine qui est une liste deroulante qui va puiser les precisions dans Rel4_T_Ville :

La plupart des gens proviennent d’une vilel Suisse, mais souvent, il y en a un qui vient de la metropole francaise, voire italienne ou enfin de chaque ville du monde.

Single licence :

Unlimited licence :
Latest Update :
Upload Time :
Structure :
Software Version :
Attached File :
Documentation :
Tags :