Le schéma de la base de données pour le projet 2

Les données sont ici.

Dans cette section, nous allons vous décrire comment doit être construit le schéma de la base de données que nous allons utiliser pour le projet 2. Nous vous demanderons d’extraire les informations de ce texte pour en créer son schéma. Dans ce schéma, nous souhaitons voir pas seulement les tables, mais aussi toutes les contraintes possibles, c’est-à-dire que chaque clé primaire et chaque clé étrangère doivent être précisées. Une fois fini, vous la validerez en soumettant votre code représentant votre schéma de la base de données sur INGInious. L’échéance de cette tâche est le 26 mars 2021 à 23:55:55.

Description de la base de données

Dans la ferme laitière et agricole, la ferme des trois chênes, nous avons des animaux, et plus précisément des vaches. Chaque vache doit être identifiable par un identifiant (id). D’autres informations complèteront cette table, comme l’identifiant de sa famille (famille_id), son sexe (sexe), si elle est présente ou non dans la ferme (presence), et si elle est apprivoisée (apprivoise). Enfin pour avoir des données plus complètes, nous enregistrerons également des informations sur leur mort, c’est-à-dire si l’animal est mort-né (mort_ne) ou décédé prématurément (decede). (Ces 2 dernières informations devront être deux attributs différents.)

Le nom de famille de chaque vache sera enregistré dans une table familles, où pour chaque ligne, nous aurons l’identifiant du nom de famille (id) et son nom (nom).

Afin de connaître les races présentes dans la ferme, nous retiendrons l’ensemble des races présentes dans celle-ci dans une table types. Pour chaque ligne, nous aurons un identifiant unique (id) et une race donnée (type). Pour rappel, un exemple de race présente dans la ferme est « Blanc Bleu Belge ». Il nous faudra aussi retenir le ou les race(s) de chaque vache. Pour cela, nous créerons une troisième table animaux_types. Nous identifierons de manière unique chacune de ces lignes via une clé composée, c’est-à-dire l’identifiant de l’animal (animal_id) et l’identifiant de la race (type_id), et ajouterons le pourcentage (pourcentage) de cette race pour cette vache.

Dans une telle ferme, les naissances sont nombreuses. Nous les répertorierons dans une table velages. Chaque vêlage doit être identifié par un identifiant (id), et nous stockerons les informations suivantes: l’identifiant de la mère (mere_id), l’identifiant du père (pere_id), et la date de naissance (date). Afin de pouvoir retrouver à quel animal chaque vêlage correspond, nous associerons chaque animal étant né dans la ferme à son vêlage grâce à leurs identifiants respectifs (animal_id, velage_id) dans une table animaux_velages.

Malheureusement, il peut y avoir des complications lors du vêlage d’une vache. Nous enregistrerons chaque complication dans une table complications, où nous conserverons un identifiant de la complication (id) et la description de celle-ci (complication). Pour rappel, une complication peut être de type « Veau trop petit à la naissance » ou encore « Aide vétérinaire au vêlage ». Afin de pouvoir faire des statistiques sur ces complications lors des vêlages, nous conserverons celles-ci dans une table velages_complications, dans laquelle nous associerons quel vêlage a eu quelle complication grâce à leurs identifiants respectifs (velage_id, complication_id).