Comment construire une base de données
Dans DB Browser, vous allez d’abord créer une base de données (voir les supports de formation). Dans l’onglet Structure de la base de données, sélectionnez « Créer une table ». Dans un premier temps, nommez la table « Cohorte ». Plus bas, dans les champs, cliquez sur « Ajouter un champ ». Nous allons suivre une convention d’appellation dans laquelle le nom du champ va contenir le nom de la table (tous les champs de cette table commenceront par cohorte_). Nous faisons cela pour éviter la duplication des noms de champs. Le premier champ sera toujours l’identifiant unique de l’enregistrement. Ici, nous l’appelons cohort_id. Vous verrez dans le tableau de comparaison ci-dessus que SQLite peut gérer un nombre limité de types de données. Dans ce cas, notre choix est de le sélectionner dans le menu déroulant. Ce sera une « clé primaire » et « Not NULL », ce qui signifie qu’elle sera unique et toujours présente dans chaque enregistrement que vous ajoutez. Après cela, ajoutez les champs cohort_cross_date, cohort_parent_1 et cohort_parent_2, tous trois sous forme de texte. Ensuite, nous allons ajouter un champ appelé « cohort_location » avec une validation pour le texte. Cela signifie que le champ va accepter un nombre limité d’options. Idéalement, tous vos champs de texte seront conçus de cette façon. La façon de procéder dans DB Brower est de programmer une vérification pour voir si les données d’entrée correspondent à l’une des options que vous lui avez données au préalable. Faites défiler vers la droite et localisez la colonne « Check ». Entrez cohort_location== »tank_1″ OR cohort_location== »tank_2″. Essentiellement, vous enchaînez les valeurs autorisées pour cohort_location avec le booléen OR. Notez également que vous devez utiliser le double signe égal. La syntaxe pour cela est field_name == « option » OR field_name== »some_other_option », et vous pouvez continuer à ajouter des OR.
La table individuelle est créée de manière similaire, mais ici nous allons introduire une clé étrangère à la table cohorte. Cela signifie que nous allons la lier à la table des cohortes, afin que seuls les id des cohortes qui ont été créées puissent être saisis dans cette table. Cela permet de garder les données propres et d’améliorer la vitesse des jointures de tables que vous pourriez choisir de faire à l’avenir. Tout d’abord, créez le champ « individual_id » en tant que type de données TEXT et en tant que clé primaire, non NULL et unique. Ensuite, lorsque vous créez « ind_cohort_id » comme type de données TEXTE, faites défiler jusqu’à la colonne Clé étrangère. Lorsque vous cliquez sur le champ approprié, un menu déroulant apparaît. Dans le premier menu déroulant, choisissez la table (dans ce cas, cohorte) et dans le suivant, le champ (« cohort_id »). Dans la boîte de texte, tapez ON DELETE SET NULL ON UPDATE CASCADE. Vous pouvez également choisir « NO ACTION » si vous souhaitez conserver la référence à la cohorte dans la table individuelle même si l’enregistrement de la cohorte lui-même est supprimé. Observez la fenêtre du script SQL ci-dessous. Elle devrait montrer FOREIGN KEY(`ind_cohort_id`) REFERENCES `cohort`(`cohort_id`). Si cette ligne n’apparaît pas, décliquez et recliquez les champs PK, U et NN. Vous devez également configurer la clé étrangère lorsque vous créez la table. C’est une bizarrerie de DB Browser (ou un bug). Enfin, terminez avec « location » comme type de données TEXT.
Enfin, configurez la table « physique ». Vous remarquerez de nouveaux types de données. Tout d’abord, le physical_id est un entier (INT) et est également auto-incrémental (AI). Cela garantit que chaque mesure que vous effectuez sera traitée comme unique. Chaque fois que vous travaillez avec des données qui se présentent sous forme de nombres entiers, comme des comptages, veillez à valider les données pour vous assurer qu’elles sont des entiers. Le champ « physical_cohort_or_ind » indique si l’organisme mesuré est suivi en tant qu’individu ou uniquement en tant que membre de la cohorte (parce qu’il est trop petit pour être marqué et distingué des autres membres de la cohorte). Ce type de données est TEXT, avec Check (physical_cohort_or_ind==’cohort’ OR physical_cohort_or_ind==’ind’). Enfin, les mesures de poids et de longueur sont de type de données NUMERIQUE. Notez que l’unité de mesure est codée dans le nom du champ. Vous pouvez également avoir un champ distinct pour les unités si vous pensez travailler avec différents instruments et sur différentes échelles. L’important est de garder les unités séparées de la mesure numérique, afin que vos données soient bien rangées et prêtes pour les transformations et l’analyse.