Een database opbouwen
In DB Browser maakt u eerst een database aan (zie cursusmateriaal). Selecteer op het tabblad Databasestructuur de optie “Tabel maken”. Geef de tabel eerst de naam “Cohort”. Verder naar beneden in Velden, klik op “Veld toevoegen”. We gaan een naamgevingsconventie volgen waarbij de veldnaam de tabelnaam gaat bevatten (alle velden in deze tabel zullen beginnen met cohort_). We doen dit om duplicatie van veldnamen te voorkomen. Het eerste veld wordt altijd de unieke identificatie voor de record. Hier noemen we het cohort_id. U zult in de vergelijkingstabel hierboven zien dat SQLite een beperkt aantal datatypes aankan. In dit geval is onze keuze tekst-selecteren uit het drop-down menu. Het wordt een “Primary key” en “Not NULL”, wat betekent dat het uniek zal zijn en altijd aanwezig in elk record dat je toevoegt. Hierna voegen we de velden cohort_cross_date, cohort_parent_1 en cohort_parent_2 toe, alle drie als tekst. Vervolgens voegen we een veld toe genaamd “cohort_locatie” met validatie voor tekst. Dit betekent dat het veld een beperkt aantal opties zal aanvaarden. Idealiter worden al uw tekstvelden op deze manier ontworpen. De manier om dit in DB Brower te doen is door een controle te programmeren om te zien of de ingevoerde gegevens een van de opties is die je van te voren hebt gegeven. Scroll naar rechts en zoek de kolom “Controle”. Voer cohort_locatie==”tank_1″ OF cohort_locatie==”tank_2″ in. In wezen rijgt u de toegestane waarden voor cohort_locatie aan elkaar met de Booleaanse OF. Merk ook op dat u het dubbele gelijkheidsteken moet gebruiken. De syntaxis hiervoor is field_name == “option” OR field_name==”some_other_option”, en u kunt OR’s blijven toevoegen.
De individuele tabel wordt op soortgelijke wijze aangemaakt, maar hier introduceren we een foreign key naar de cohort-tabel. Dit betekent dat we deze koppelen aan de cohort-tabel, zodat alleen de id’s van cohorten die zijn aangemaakt in deze tabel kunnen worden ingevoerd. Dit houdt de gegevens schoon, en verbetert de snelheid van elke tabel joins die je in de toekomst zou willen doen. Maak eerst het veld “individual_id” aan als een TEXT datatype en als Primary Key, Not NULL en Unique. Vervolgens creëert u “ind_cohort_id” als een TEXT gegevenstype en scrollt u naar de kolom Foreign Key. Wanneer u op het juiste veld klikt, verschijnt een uitklapmenu. Kies in het eerste drop-down menu de tabel (in dit geval cohort) en in het volgende het veld (“cohort_id”). In het txt-vak typt u ON DELETE SET NULL ON UPDATE CASCADE. U kunt ook “NO ACTION” kiezen als u de verwijzing naar het cohort in de individuele tabel wilt behouden, zelfs als het cohortrecord zelf wordt verwijderd. Bekijk het SQL-scriptvenster hieronder. Het zou FOREIGN KEY(`ind_cohort_id`) REFERENCES `cohort`(`cohort_id`) moeten tonen. Als deze regel niet verschijnt, verwijder dan de PK, U en NN velden en klik ze terug. Je moet ook de foreign key instellen wanneer je de tabel aanmaakt. Dit is een gril van DB Browser (of een bug). Tenslotte, eindig met “location” als een TEXT data type.
Finitief, stel de “physieke” tabel in. U zult nieuwe datatypes opmerken. Allereerst is de “physical_id” een geheel getal (INT) en is ook auto-incremental (AI). Dit zorgt ervoor dat elke meting die u doet als uniek wordt behandeld. Wanneer u werkt met gegevens die als gehele getallen worden geleverd, zoals tellingen, zorg er dan voor dat u de gegevens valideert om er zeker van te zijn dat het gehele getallen zijn. Het veld “physical_cohort_or_ind” geeft aan of het gemeten organisme als individu wordt gevolgd of alleen als deel van de cohort (omdat het te klein is om te worden gemerkt en onderscheiden van de andere leden van de cohort). Dit gegevenstype is TEXT, met Check (physical_cohort_or_ind==’cohort’ OR physical_cohort_or_ind==’ind’). Ten slotte zijn de metingen van gewicht en lengte van het gegevenstype NUMERIC. Merk op dat de meeteenheid in de veldnaam wordt gecodeerd. U kunt ook een afzonderlijk veld voor eenheden hebben als u verwacht met verschillende instrumenten en op verschillende schalen te zullen werken. Het belangrijkste is dat u de eenheden gescheiden houdt van de numerieke meting, zodat uw gegevens netjes zijn en klaar voor transformaties en analyses.