Een datamodel is de structuur van je data: welke tabellen er zijn, welke velden elke tabel bevat en hoe tabellen via sleutels aan elkaar gekoppeld zijn. Zo weet je bijvoorbeeld welke facturen bij welke klant horen. Een goed datamodel maakt het mogelijk om cijfers uit verschillende systemen te combineren, te filteren en te groeperen zonder dat je steeds opnieuw moet uitzoeken wat waarbij hoort.
Een datamodel is de structuur van je data: welke tabellen er zijn, welke velden daarin staan en hoe de tabellen aan elkaar hangen. Je gebruikt er al een, ook als je het nooit zo hebt genoemd. Elk boekhoudpakket en elk CRM heeft er een. Wie data uit meerdere systemen wil combineren, merkt vroeg of laat dat het model bepaalt wat er mogelijk is.
Tabellen en velden
Een tabel bevat één soort gegevens. In een boekhoudpakket als Moneybird zijn dat bijvoorbeeld verkoopfacturen, inkoopfacturen, bankmutaties en offertes. Elke rij is één factuur of één mutatie. De kolommen zijn de velden: bij een verkoopfactuur onder meer de status, de factuurdatum, de vervaldatum en het bedrag exclusief btw.
Dat voorbeeld komt uit de tabellen en velden die APIboard bij die koppeling ophaalt. Als alle systemen hun tabellen en velden op één plek aanleveren, is dat de eerste stap naar een single source of truth.
Sleutels en relaties
Een factuur hoort bij een klant, maar je wilt niet op elke factuur alle klantgegevens herhalen. Daarom krijgt elke klant een unieke sleutel, zoals een klantnummer, en verwijst de factuur naar die sleutel. Die verwijzing heet een relatie.
Relaties bepalen welke vragen je kunt beantwoorden: omzet per klant, openstaande facturen per klant, aantal facturen per maand. Zonder relatie staan de tabellen los naast elkaar en kun je ze niet combineren zonder handmatig zoeken en plakken, zoals dat vaak gaat bij Excel-bestanden combineren.
Een tweede voorbeeld uit de praktijk is HubSpot. Naast contacten, bedrijven en deals haalt APIboard daar ook de tabel Associaties op. Die legt vast welk contact bij welk bedrijf of welke deal hoort. Een relatie is daar dus een tabel op zich.
Feiten en dimensies
Je kunt tabellen grofweg in twee soorten indelen. Dit komt uit het sterschema, dat Microsoft in de Power BI-documentatie beschrijft als een veelgebruikte aanpak voor datamodellen.
- Dimensietabellen beschrijven de dingen waarover je rapporteert: klanten, producten, medewerkers en datums. Ze dienen om te filteren en te groeperen.
- Feitentabellen bevatten de gebeurtenissen met getallen, zoals facturen, betalingen en uren. Ze dienen om op te tellen.
Een verkoopfactuur is dus een feit en de klant is een dimensie. Omzet per klant ontstaat door de feiten te groeperen op de dimensie. Zo’n indeling is geen eigenschap die je aanvinkt, maar volgt uit de relaties: aan de ene kant staat de klant, aan de andere kant staan veel facturen.
Wat dit betekent als je data uit meerdere systemen haalt
Elk systeem heeft zijn eigen model, met eigen tabellen, veldnamen en sleutels. Combineer je boekhouding en CRM, dan moet je bepalen hoe die modellen op elkaar aansluiten, bijvoorbeeld welke klant in het ene systeem dezelfde is als in het andere. Dat zoeken, schonen en samenvoegen valt onder ETL en vormt samen met het bewaren van de historie een datafundament.
In APIboard zie je de tabellen per koppeling terug in de Datawerkbank. Daar filter en sorteer je een tabel, kies je de kolommen die je wilt zien en exporteer je naar CSV of Excel. Je hoeft zelf geen model te tekenen om de tabellen te bekijken.
Onze tip: schrijf op welke vragen je wilt beantwoorden, bijvoorbeeld omzet per klant of openstaande facturen per klant. Dan zie je meteen welke tabellen en welke relaties je daarvoor nodig hebt, en welke je kunt laten liggen.