.. _ref-projet2schema: Le schéma de la base de données pour le projet 2 ================================================ **Les données sont** :download:`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*).