Time Dimension v1.41 (Dutch)

In een data warehouse gebruiken we vaak een tabel met gegevens over tijd, een tijdsdimensie, om makkelijker met berekeningen over tijd om te kunnen gaan. Databases zijn nu eenmaal sneller in het aan elkaar knopen van gegevens, dan uitvoeren van berekeningen op kalenders. De tijdsdimensie maakt het mogelijk om aan een datum allerlei betekenissen te hangen. Zo kunnen we bij een datum vertellen welk jaar het is, maar ook welk fiscaal jaar die datum in hoort, of de datum wel geldig was, of het een werkdag of feestdag was, etcetera. Daarmee kunnen we in de analyse kijken of er bijvoorbeeld op bepaalde dagen meer verkocht wordt.

De generator gebruikt men als volgt: eerst vult men hieronder alle velden met instellingen in. Vervolgens drukt men op de knop en wordt er een bestand naar de browser gestuurd met daarin allerlei gegevens. Die kan worden ingeladen in een Oracle database.

Versie-notities staan onderaan deze pagina.

Dimensienaam: De tabelnaam van de dimensie. Maximaal 30 tekens.
Beginjaar: Eindjaar: Let op: Het begin- en eindjaar mogen niet meer dan 100 jaar van elkaar verwijderd zijn, en het beginjaar mag niet eerder beginnen dan 1900 (en niet later dan 2100). Als ze meer dan 15 jaar van elkaar verschillen levert de huidige website geen resultaat (beperking van de provider op CPU).
Tijdssleutel start bij: De tijdssleutel start vrij hoog om ruimte voor eigen toevoegingen te houden.
SQL-code voor tabel toevoegen: Indien ja, dan wordt er bij een SQL-output code gegenereerd om de tijdsdimensietabel in de database aan te maken. Bij CSV-output worden er insert-statements gegenereerd als extra kolom.
Tel feestdagen als vrije dagen: Indien ja, dan tellen feestdagen niet mee als werkdagen. Indien nee, dan tellen feestdagen op doordeweekse dagen gewoon als werkdagen.
Afwijkend fiscaal jaar: JaNee Indien het fiscale jaar afwijkt van het kalenderjaar, dan toevoegen.
  De startmaand wordt gebruikt bij selectie van een afwijkend fiscaal jaar.
Extra boekhoudkundige perioden toevoegen:
In de boekhouding wordt soms gewerkt met perioden, bijvoorbeeld 201013, 201014 etc. om de 13e en 14e maand-uitkering aan te duiden. Met deze optie worden er extra regels toegevoegd aan de dimensie (en een extra veld) om die perioden toe te kunnen rekenen aan de laatste dag van de maand (periode 01-11) of 31 december (periode 12..16). Het tweede veld geeft aan hoeveel perioden er totaal nodig zijn.
Uitvoerformaat: SQL
CSV
SQL is een Oracle SQL-script. CSV is Comma Separated, leesbaar met Excel.


Opmerkingen bij v1.41:

  • Tijd-ID voor onbekende regel (-1) toegevoegd, om referentieële integriteit niet te breken als je foutcode -1 wil gebruiken.

Opmerkingen bij v1.4:

  • Er is een periode-sleutel toegevoegd. Hiermee kan een extra periodetelling worden gedaan om zaken die niet op een bepaalde datum maar in een bepaalde periode vallen, toe te rekenen aan de laatste dag van die periode (bijv. 13e maand wordt toegerekend aan december). De TIJD_IDs voor deze periode-regels wijken af van de andere TIJD_IDs zodat je kan zien waarmee je te maken hebt. Overigens zou dit misschien beter in een aparte tabel D_PERIODE kunnen worden ondergebracht.

Opmerkingen bij v1.3:

  • Er zijn kolommen toegevoegd voor de laatste datum van kwartaal en jaar, en indicaties (0 of 1) of een bepaalde datum de laatste dag van een maand, kwartaal of jaar is. Hiermee kan eenvoudig worden gefilterd op einddatums.
  • Er is een kolom (dimensie)_ID_VORIG_JAAR toegevoegd. Als de relatie tussen feiten en dimensie over deze kolom wordt gelegd in plaats van over de primaire sleutel, dan zie je de cijfers zoals ze in het voorgaande jaar waren terwijl je een datum in dit jaar selecteert. Voorbeeld: een feittabel bevat een regel met TIJD_ID 1000 voor een cijfer in 2010 en een regel met TIJD_ID 1310 voor een cijfer in 2011. Als we vervolgens een alias maken van de feittabel (FEIT2) en vanuit de tijddimensie de echte feittabel koppelen op D_TIJD_ID, en FEIT2 op D_TIJD_ID_VORIG_JAAR, dan kunnen we met één tijddimensie de cijfers voor dit jaar en vorig jaar naast elkaar leggen.

Opmerkingen bij v1.2:

  • ISO weeknummers en jaarnummer bij dat weeknummer toegevoegd. Zie het article in de Wikipedia over weeknummers voor meer details.
  • De kolommen voor schoolvakanties zijn verwijderd omdat er geen eenduidige tabel van te maken viel binnen de scope van dit stukje gereedschap. Zo hebben voortgezet onderwijs en basisonderwijs verschillende vakantiedata en zijn de vakantieperiodes buiten de zomervakantie alleen suggesties en geen verplichting, waar iedereen van af mag wijken.