Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/01/2008, 17h13   #1
Membre régulier
 
Inscription : juillet 2005
Messages : 86
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 86
Points : 89
Points : 89
Par défaut Clé primaire : ce n'est jamais écrit

bonjour,
Malgré de nombreuses recherches, je n'ai jamais trouvé de justification satisfaisante. Pour une clé primaire plutôt qu'un champ indexé sans doublon ?

Dans les deux cas, on a :
garantie de l'unicité des saisies
relation possible 1 à plusieurs
rapidité liée à l'index

Que fait Access en plus sur une clef primaire qu'il ne fait pas sur un champ indexé sans doublon ?

Merci pour vos explications
bellande est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 17h29   #2
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
tu peux appliquer l'intégrité référentielle...
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 21h58   #3
Membre régulier
 
Inscription : juillet 2005
Messages : 86
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 86
Points : 89
Points : 89
Bonsoir Maxence,
Le problème est qu'un simple champ indexé sans doublons permet aussi de faire une relation avec intégrité référentielle (donc sans clé primaire).
je sèche toujours...
Merci d'avoir répondu
bellande est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 22h31   #4
Membre régulier
 
Homme Yann
Administrateur de base de données
Inscription : décembre 2006
Messages : 255
Détails du profil
Informations personnelles :
Nom : Homme Yann
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : décembre 2006
Messages : 255
Points : 70
Points : 70
Envoyer un message via MSN à Yann39
Une clé primaire peut être référencée dans une autre table en tant que clé étrangère, pour le champ indexé j'ai des doutes.

Et une clé primaire ne peut pas être nulle, alors qu'un champ indexé sans doublons peut l'être.
Yann39 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 22h48   #5
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 897
Points : 3 897
un clef primaire est l'index qui est pris par défaut parmi les différents indexs existants est qui défini l'ordre de la table, ce n'est pas toujours négligeable.
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 22h48   #6
Membre régulier
 
Inscription : juillet 2005
Messages : 86
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 86
Points : 89
Points : 89
Par défaut pas simples les clés primaires

Bonsoir,

pour la question du NULL, je mets la propriété NULL INTERDIT à OUI
et ca fait pareil que la clé primaire.

Un champ indexé sans doublon peut en effet servir de clé étrangère.
Cependant, il ne doit pas être très fréquent qu'une clé primaire serve aussi de clé étrangère pour une autre relation. (si j'ai bien compris ce que tu veux dire).

merci de m'avoir répondu
bellande est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 23h07   #7
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
Citation:
Envoyé par gordond Voir le message
Cependant, il ne doit pas être très fréquent qu'une clé primaire serve aussi de clé étrangère pour une autre relation.
relation 1----1
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2008, 15h04   #8
Membre régulier
 
Inscription : juillet 2005
Messages : 86
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 86
Points : 89
Points : 89
bonjour,
ok, merci pour toutes vos réponses. On me pose souvent cette question donc je cherchais des avis éclairés. Je répondrai donc que la clef primaire est l'index le mieux géré par Access. Au delà de cela, je n'aurai pas d'autres arguments.
bellande est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2008, 19h47   #9
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 897
Points : 3 897
si tu utilise une requete du genre:
quand tu as plusieurs indexs tu ne saurais déterminer le bon résultat.
access établissant par défaut l'index de son choix qui semble immuable mais imprévisible: (après testes) ne dépend pas du nom ni de sa longueur, de l'ordre dans la table, de l'ordre de création, du contenu, de l'ouverture d'access (peut être pb cache) (peut être un critère qui m'aurait échappé? ).
donc pas forcemment celui que tu veux.
mais je ne doute pas qu'il existe d'autre cas particulier où la clef primaire prend tout son sens.

il faut remarquer aussi que dans une base SQL la clef primaire peut être constituée de plusieurs champs et là la nuance est plus clair.

Citation:
mieux géré par Access
je dirais plutot c'est l'index par défaut.
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2008, 21h13   #10
Membre régulier
 
Inscription : juillet 2005
Messages : 86
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 86
Points : 89
Points : 89
bonsoir,
Merci pour ces précisions, je vais conserver cela dans un coin car ça va me resservir.
bellande est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2008, 23h27   #11
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 364
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 364
Points : 29 286
Points : 29 286
Petite précision supplémentaire :
Une clé primaire peut porter sur plusieurs champs.
Chose qu'un champ indexé sans doublon ne peut faire.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2008, 11h46   #12
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
un champ indexé... non
Mais tu peux créer un index Unique multi-champ qui n'est pas une clé primaire
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2008, 13h22   #13
En attente de confirmation mail
 
Inscription : février 2005
Messages : 1 731
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : février 2005
Messages : 1 731
Points : 2 010
Points : 2 010
Par défaut Clé primaire: très utile pour les tables attachées ODBC

Petite contribution à la réflexion,

On peut considérer la question sous l'angle de l'analyse et de la conception du modèle de données:
La mise en relation de deux entités du modèle de données s'effectue au moyen d'une relation entre clé primaire et clé étrangère.

Donc la notion de clé primaire pourrait résulter directement de l'analyse et, éventuellement, n'avoir de sens que dans ce contexte.

Citation:
Envoyé par vodiem Voir le message
un clef primaire est l'index qui est pris par défaut parmi les différents indexs existants est qui défini l'ordre de la table, ce n'est pas toujours négligeable.
J'aime bien cette explication de vodiem.

Si dans une table il existe plusieurs index uniques, alors il est utile pour l'analyste d'en désigner un comme plus particulièrement significatif.
Cet index est la clé primaire.
Les autres index sont donc des... (on réfléchit)... des clés secondaires

Mais là où ça devient plus sérieux, c'est lorsque vous voulez travailler avec une table attachée ODBC qui a plusieurs index uniques, mais aucune clé primaire.
Quand Access attache la table ODBC, il ne sait pas quel index utiliser et du coup n'en utilise aucun !!!
En conséquence, la table ODBC n'est pas modifiable en l'état et il faut l'intervention de l'utilisateur pour créer un pseudo index local nécessaire aux modifications !!!

En revanche, si on spécifie une clé primaire alors Access l'utilise automatiquement comme index d'accès et modification des données d'une table ODBC: c'est beaucoup plus simple.
_
=JBO= est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h23.


 
 
 
 
Partenaires

Hébergement Web