Inleiding Logisch Model - MinBZK/odl GitHub Wiki
Het projekt odl maakt gebruik van een aantal conventies om op basis van allerlei informatie de dokumentatie op te bouwen en de SQL te genereren die de ODL opbouwt die weer door DiDo wordt gebruikt om tabellen in op te slaan. Het projekt gebruikt schema's die zijn opgeslagen in .csv bestanden om de tabellen te beschrijven en dokumentatie in .csv en markdown formaat om dokumentatie over de tabellen en de database te genereren. Een beschrijving is te vinden in het logisch model.
ODL maakt een struktuur aan in de database waarin elke tabel met gegevens in de loop van de tijd wordt opgebouwd door leveringen. Die leveringen hebben een bepaalde kwaliteit. Al deze informatie wordt opgeslagen in informatie over die ene tabel. Per tabel wordt in ODL 4 soorten informatie bijgehouden:
- Gegevenstabel - deze bevat de gegevens zelf
- Metadata - gegevens die de tabel zelf beschrijven
- Leveringstabel - tabel die alle leveringen en de informatie erover beschrijft
- Datakwaliteit - tabel waarin per levering de datakwaliteit wordt vermeld
Schema bestanden bestaan altijd uit een .csv bestand om de tabel te beschrijven en een .csv bestand voor informatie over de tabel. Soms is er een databestand met konkrete data die tabelwaarden definieert.
De schemas beschrijven de attributen die nodig zijn om een tabel te beschrijven. Dez zijn te vinden in de directory root/schemas/odl onder de map odl van het projekt odl.
- bronbestand_attribuut_meta.csv - een .csv files die hieronder wordt beschreven. Deze bevat per attribuut in de tabel een rij met definties. Bijvoorbeeld is het gegeven een persoonsgegeven of niet, wat is het datatype, enz. Deze beschrijvende informatie wordt weggeschreven naar een tabel met de naam (tabelnaam)_description, in dit voorbeeld bronbestand_attribuut_meta_description.
- bronbestand_attribuut_meta.meta.csv - elk bestand bevat een metatabel met dezelfde naam, maar dan met de extensie .meta.csv. Deze tabel bevat metainformatie over bronbestand_attribuut_meta.csv; wordt weggeschreven naar de tabel bronbestand_attribuut_meta_meta.
- bronbestand_attribuut_extra.csv - elke gegevenstabel wordt aangevuld met extra atrtributen/kolommen. Deze extra kolommen voor de gegevenstabel worden in deze tabel beschreven.
- bronbestand_attribuut_extra.meta.csv - meta informatie voor de hierboven genoemde tabel
- bronbestand_bestand_meta.csv - bevat metainformatie over de tabel zelf zoals bijvoorbeeld de periodiciteit van de leveringen of welk symbool de cimale punt voorstelt. -bronbestand_bestand_meta.meta.csv - metagegevens over bovenstaande tabel
- bronbestand_levering_feit.csv - gegevens over elke levering wordt in deze tabel geregistreerd
- bronbestand_levering_feit.meta.csv - metagegevens
- bronbestand_datakwaliteit_feit.csv - indien fouten ontdekt worden in een levering dan wordt geregistreerd welke fout dat was in welke levering en in welke rij en kolom.
- bronbestand_datakwaliteit_feit.meta.csv - metagegevens
- bronbestand_datakwaliteit_codes.data.csv - bevat de foutkodes die DiDo nodig heeft voor het melden van de foutmeldingen
De .csv bestanden worden ook gebruikt om tabellen te genereren voor dokumentatie. Deze dokumentatie geeft analisten antwoord op vragen als uit welke tabel moet ik mijn gegevens ophalen, wat is het datatype en wat betekenen die kolommen? Deze tabellen zijnh hieronder te bewonderen. De dokumentatie wordt gegenereerd in het markdown formaat. Een eenvoudige manier om snel nette tekst te genereren. Per tabel kunnen twee .md files (markdown) files worden gegenereerd:
- bronbestand_attribuut_meta.prefix.md - de tekst die je nu leest. Als deze file wordt aangetroffen dan wordt deze als eerste, voor de tabel zelf in de dokumentatietekst gevoegd. Dat is een alternatief op het attribuut
Bronbestand_beschrijving
uit het metabestandbronbestand_attribuut_meta.meta.csv
. Die tekst wordt altijd direkt boven de tabel gevoegd. De prefix optie geeft de mogelijkheid om een veel uitgebreidere inleiding te geven op de tabel. bronbestand_attribuut_meta.suffix.md - tekst die aan het eind van de tabel wordt geplakt. Nuttig voor voorbeelden en dergelijke.