changequote(`{{', `}}') include({{../common.m4}}) # Eindopdracht ## Opdracht 1 1. Data bekijken en redundante kolommen in eigen tabellen zetten 2. Strokendiagram maken 3. SQL script maken om de database tabellen te initialiseren 4. SQL scripts maken om de tabellen te vullen met data uit de spreadsheet ## Opdracht 2 - Hoofdkantoren kunnen in een eigen tabel, en naar gerefereerd worden via id nummers - Merken kunnen in een eigen tabel, en naar gerefereerd worden via id nummers - Types kunnen in een eigen tabel opgeslagen worden en een referentie hebben naar een merk - Vermogen wordt in twee eenheden opgeslagen terwijl de ene eenheid van de andere afgeleid kan worden ## Opdracht 3 ![](imgs_erd.svg) ## Opdracht 4 ![](imgs_strokendiagram.svg) De keuze om bij de `Hoofdkantoor` tabel geen alternate key boven de `LocatieID` en `MerkID` te zetten is een bewuste, op deze manier kan er namelijk onderscheid blijven tussen meerdere bedrijven die in verschillende delen van een kantoorgebouw zitten. q_norm(5) De `insert` commando's worden door een script gegenereerd die de excel spreadsheet als csv inneemt, zie makefile voor implementatie. ## Opdracht 6 ![](imgs_database_diagram.svg) ## Opdracht 7 De primary/foreign key relaties zijn al aangelegd door de database initalisatie query. q_with_test(8) q_with_output(9)