@cathodique,
c'est pas mal !
Voir les 2 liens suivants peut-être plus adaptés que celui que j'ai indiqué précédemment
Concepts de base sur la conception d'une base de données et
Présentation des tables
Une petite mise au point de vocabulaire
MCD Modèle Conceptuel de Données
Entité dans le MCD = Table (dans la base Access)
Attribut dans le MCD = Champ
Identifiant dans le MCD = Clé Primaire
Pour les Relations (1,1 -> 1,N ou 1,1 -> 0,N ou 0,1 -> 0,N) du MCD :
La clé primaire de la table correspondant à l'entité côté 0,N migre dans la table correspondant à l'entité de côté 1,1. C'est la Clé étrangère.
Pour les Relations (1,N-> 1,N ou 0,N -> 1,N ou 0,1) :
Elles sont transformées en Tables de Liens avec pour identifiant la concaténation des clés primaires des 2 tables correspondant aux 2 entités.
Quelques remarques :
- Comme je l'ai déjà écrit inutile d'avoir une Table pour le Sexe. F et M directement dans la Table Animaux avec un contrôle de valeur.
- Concernant l'Entité (niveau MCD) Rôle, il y a un identifiant (IdRôle) et son libellé qui prend 3 valeurs possibles (Adoptant, Cédant,Fa ?) et non 3 attributs
Les clés primaires
- Une clé primaire doit être unique pour la Table concernée. C'est évident.
- Une clé primaire doit être figée dans le temps (sauf exception). Prenons par exemple la table des villes ou plutôt des Communes, on pourrait indiquer le nom de la commune comme clé primaire, mais comme c'est déjà arrivé, le nom peut changer.
Supposons que le nom de la commune change alors que votre application est en service depuis quelques temps.
Il faudra le changer dans la table Communes mais aussi, pour toutes les valeurs correspondantes (les clés étrangères de la table Personnes. Or, Access veille à conserver l'intégrité de la Base de Données et va vous signaler que ce n'est pas possible. Il y a des moyens techniques (je n'en parle pas ici).
Il y a d'autres conditions pour le choix d'une clé primaire. Par exemple, du nombre d'enregistrements de la table, de la manière dont on y accède, de ce que l'on veut privilégier, rapidité d'accès, simplification de mise en œuvre, lisibilité ...
Dans votre cas, la base de données est simple, il n'y aura pas des centaines de milliers d'enregistrements, d'avoir un résultat affiché dans la seconde. On pourra donc se permettre quelques libertés.
Prenons par exemple la table Espèce.
Elle contient 2 informations, l'identifiant et le Nom de l'Espèce.
On pourrait, le nom de l'espèce étant une donnée stable, utiliser celui-ci comme clé primaire.
Un clé interne (définie par Access) sera plus performante, prendra moins de place pour ce qui est de la clé étrangère dans la table Animaux. Mais ici, est-ce bien utile ?
Au concepteur de décider, à condition de connaitre les paramètres en jeu (ici le nombre d'enregistrements dans les tables Espèce mais surtout Animaux)
Bonne continuation