Verschillende soorten feitentabellen

Sterstructuur

Heb je ooit gehoord van de stervorming bij het modelleren van gegevens? Bij Power Partners proberen we altijd het sterschema te gebruiken. Het basisidee erachter is het volgende:

Het datamodel bestaat uit één of meer feitentabellen die verbonden zijn met één of meerdere dimensietabellen. Een feitentabel registreert metingen of metrieken voor specifieke gebeurtenissen (bijv. het aantal verkopen voor elke dag). De dimensietabel daarentegen moet kleiner zijn en meer attributen hebben (bijv. het adres van de verkoper, zijn voornaam, achternaam, ...). Deze attributen zullen kenmerken zijn voor de feitentabellen die we niet in elk van de rijen willen herhalen.

The illustration of a factTable
Voorbeeld van een zeer eenvoudig Fact en Dim tabelmodel. Om de DimVariable tabel nuttiger te maken, moeten we in de toekomst meer attributen toevoegen.

Er zijn 4 verschillende soorten feitentabellen die we in deze blogpost zullen bespreken. De additieve, de semi-additieve, de niet-additieve en de factless tabellen.

Additieve en semi-additieve feitentabellen

Eerst de eenvoudigste, de additieve feitentabel. Voor dit soort tabel kunnen we numerieke waarden op elke dimensie optellen of tellen. Laten we ons voorbeeld nemen van een verkoopgegevensmodel. In dit geval kunnen we de verkoop per verkoper optellen (met de tabel DimSalesPerson) of de verkoop per dag (met de tabel DimCalendar). Dit type tabel is heel eenvoudig te beheren en je hoeft je geen zorgen te maken over zinloze toevoegingen. Dit geldt echter niet voor elke feitentabel. Je kunt bijvoorbeeld te maken krijgen met een semi-additieve tabel. Als je bijvoorbeeld een feitentabel hebt die de dagelijkse inventaris bevat. Dan zal het optellen van de inventaris door de jaren heen niet geldig zijn, omdat het stukken inventaris meerdere keren zal optellen (als sommige objecten meerdere dagen aanwezig zijn in dezelfde inventaris). Je moet altijd nadenken voordat je rijen op bepaalde dimensies bij elkaar optelt. In dit specifieke geval blijft het berekenen van gemiddelden geldig.

An illustration of a semi-fact table containing FTE values
In ons Destin Air dashboard hebben we een goed voorbeeld van een semi-additieve tabel. We 'FTE-P' staat voor 'Full time equivalent pilots'. Die kunnen we niet optellen over de maanden, anders zouden we sommige mensen meer dan eens tellen. De kosten (code 'C') zijn echter additief.

Niet-additieve en feitloze tabellen

Niet-additieve feitentabellen zijn ons derde type feitentabellen. Deze kunnen niet worden opgeteld voor een dimensie, omdat ze meestal vooraf worden berekend voordat ze worden geladen. Een typisch geval zijn percentages (bijv. conversieratio per regio). Die kun je niet optellen omdat het dan zijn oorspronkelijke betekenis verliest.

Illustration of non-additive fact table containing the conversion ratios per region

Het laatste type feitentabellen dat we gaan bespreken zijn de feitloze tabellen. Deze tabellen bevatten alleen foreign keys. Er zijn geen feitwaarden, dus er kunnen geen sommen worden gemaakt.

Factless data model containing attendance for workshops
Attendance is een goed voorbeeld van een factless tabel. Hier staat elke rijwaarde voor iemands dagelijkse aanwezigheid voor een specifieke workshop. In dit geval hebben we geen waarde die we kunnen sommeren.

Als je meer informatie wilt, raad ik je aan dit webinar te bekijken.

Leave a comment

Je e-mailadres zal niet getoond worden. Vereiste velden zijn gemarkeerd met *

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.