Een database is een gestructureerde verzameling gegevens die een systeem kan opvragen, aanvullen en bijwerken. De gegevens staan in tabellen met rijen en kolommen: klantgegevens, bestellingen, meterstanden. Vrijwel elk systeem in een organisatie draait op een database, van het ERP-pakket en het CRM-systeem tot de webshop en het klantportaal.
Wat doet een database precies?
Een database legt gegevens vast op een manier waarop een computer ze terug kan vinden. Dat klinkt vanzelfsprekend, maar het is precies waarin een database verschilt van een spreadsheet. In een spreadsheet staat een getal ergens; in een database staat vast wat dat getal betekent, waar het bij hoort en wie het mag wijzigen.
Die structuur bestaat uit tabellen, rijen en kolommen. Elke rij is een record, bijvoorbeeld een opdrachtgever. Elke kolom is een eigenschap van dat record, bijvoorbeeld het klantnummer. Met een query vraag je gegevens op, meestal in SQL: Structured Query Language. Een primaire sleutel zorgt dat een record uniek is, en een index maakt zoeken snel, ook als er miljoenen rijen in staan.
Het verschil met een spreadsheet is bovendien dat meerdere gebruikers en systemen tegelijk met dezelfde gegevens werken zonder elkaar te overschrijven. Dat is de reden dat een organisatie die op Excel draait, vroeg of laat tegen dubbele bestanden en verouderde versies aanloopt.
Welke soorten databases zijn er?
Databases verschillen in hoe ze gegevens ordenen. Voor de meeste organisaties zijn drie groepen relevant: relationele databases, NoSQL-databases, en de gespecialiseerde varianten daarnaast. De keuze daartussen is een ontwerpkeuze, geen smaakkwestie: hij bepaalt wat je later makkelijk of juist moeizaam kunt opvragen.
Relationele databases (SQL).
Een relationele database slaat gegevens op in tabellen die naar elkaar verwijzen. Een order verwijst naar een klant, een factuurregel naar een product. Daardoor staat elk gegeven op één plek en blijft het consistent. PostgreSQL, MySQL en Microsoft SQL Server zijn de bekendste. Dit is het model achter vrijwel alle bedrijfssoftware, en voor administratieve processen is het nog altijd de standaard.
NoSQL-databases.
NoSQL-databases laten de vaste tabelstructuur los. Ze slaan documenten of sleutel-waardeparen op en zijn daardoor flexibeler bij gegevens die per record van vorm verschillen, of bij zeer grote volumes die over meerdere servers verdeeld worden. MongoDB en Redis zijn veelgebruikte voorbeelden. De prijs voor die flexibiliteit is dat de database zelf minder bewaakt of de gegevens kloppen.
Gespecialiseerde databases.
Daarnaast bestaan er varianten voor specifieke vraagstukken. Een grafendatabase legt relaties tussen gegevens vast en is sterk in netwerkvragen, bijvoorbeeld wie met wie verbonden is. Een tijdreeksdatabase is gemaakt voor metingen die continu binnenkomen, zoals sensordata. Een objectgeoriënteerde database slaat objecten op zoals de programmeertaal ze kent.
Wat is database software, en wat is het verschil met een database?
Database software, ook wel een database management system of DBMS, is het programma waarmee je een database aanmaakt, bevraagt en beheert. De database is de verzameling gegevens; de software is de laag eromheen die toegang regelt, back-ups maakt en ervoor zorgt dat een wijziging volledig doorgaat of helemaal niet.
In de praktijk lopen de termen door elkaar. Zoek je op business database software, dan kom je vooral uit bij leveranciers die een compleet pakket verkopen waar een database in zit. Voor een organisatie is dat onderscheid wél relevant: bij zo'n pakket koop je de database niet los, en bepaalt de leverancier welke gegevens je eruit krijgt.
Welke database-technologieën Cube in de praktijk inzet en waarom, staat in het overzicht van vier database technologieën die wij het meest gebruiken.
Waar zit de database in je bedrijfssoftware?
Onder elk systeem zit er een. Het ERP-pakket heeft een database, het CRM-systeem heeft er een, de webshop ook, en het klantportaal net zo goed. Dat is zelden een probleem op zichzelf. Het wordt een probleem op het moment dat dezelfde gegevens in meerdere van die databases staan en niemand heeft afgesproken welke leidend is.
Dat is het punt waarop een dashboard drie verschillende omzetcijfers laat zien. De oplossing is geen extra rapportagetool, maar een afspraak per gegeven welke bron gelijk heeft: het principe van de single source of truth. Hoe die systemen onderling gegevens uitwisselen staat beschreven bij de API-koppeling, en welke systemen er allemaal onder bedrijfssoftware vallen staat in dat artikel.
Een database is overigens iets anders dan business intelligence. De database slaat op, business intelligence maakt zichtbaar. Zonder een betrouwbare eerste laag levert de tweede alleen discussie op.
Wanneer loop je vast op de database van je standaardpakket?
Voor verreweg de meeste organisaties is de database in het bestaande pakket prima. Het knelpunt zit zelden in de database zelf en bijna altijd in wat de leverancier eromheen toestaat. Vier signalen komen steeds terug.
Het eerste is dat je gegevens er niet uit krijgt, of alleen via een export die iemand handmatig draait. Het tweede is dat de leverancier per koppeling een tarief rekent. Het derde is dat je gegevens wilt vastleggen waar het pakket geen veld voor heeft, en die noodgedwongen in een opmerkingenveld belanden. Het vierde is dat de rapportage die je nodig hebt niet uit het pakket komt omdat de gegevens over drie systemen verdeeld staan.
Alleen het derde en vierde signaal wijzen richting een eigen datalaag. De eerste twee zijn eerst een gesprek met de leverancier, en pas daarna een technische kwestie.
Wanneer bouw je een eigen database of datalaag?
Een eigen database bouw je zelden om het pakket te vervangen, en meestal om er iets naast te zetten. In de praktijk gebeurt dat in drie situaties.
De eerste is wanneer gegevens uit meerdere bronnen samen moeten komen voordat ze bruikbaar zijn: het ERP, de webshop en een leveranciersbestand die één productcatalogus moeten vormen. De tweede is wanneer je een toepassing bouwt die het pakket niet kent, zoals een portaal, een configurator of een planningstool. De derde is wanneer het volume of de vorm van de gegevens niet past bij wat het pakket aankan, bijvoorbeeld bij metingen die per minuut binnenkomen.
In alle drie de gevallen blijft het bestaande systeem gewoon staan. De datalaag leest eruit en schrijft er waar nodig naar terug. Dat is wat een Data Management Platform doet. Of dat de juiste route is of dat een standaardoplossing volstaat, is de bredere afweging tussen standaardsoftware of maatwerk.
Hoe houd je een database veilig en beheersbaar?
Drie dingen bepalen of een database over vijf jaar nog werkt: back-ups die daadwerkelijk zijn teruggezet in een test, toegangsrechten die per rol zijn ingericht in plaats van per persoon, en een datamodel dat is vastgelegd zodat een nieuwe ontwikkelaar begrijpt wat er staat.
Daar komt de AVG bij. Persoonsgegevens in een database vragen om een bewaartermijn en om de mogelijkheid ze te verwijderen. Dat is makkelijker te ontwerpen dan achteraf in te bouwen: als klantgegevens over acht tabellen verspreid staan zonder duidelijke relatie, is een verwijderverzoek een project in plaats van een handeling.
Kort samengevat.
Een database is een gestructureerde verzameling gegevens, beheerd met database software. Relationeel is de standaard voor administratieve processen, NoSQL voor flexibele of zeer grote gegevensverzamelingen. Onder elk systeem in een organisatie zit een database; de kwaliteit van het geheel wordt bepaald door de afspraak welke bron leidend is. Een eigen datalaag bouw je wanneer gegevens uit meerdere bronnen samen moeten komen, niet om een pakket te vervangen.
Benieuwd of jouw gegevens op de juiste plek staan? Plan een vrijblijvend gesprek.
Dit sluit mooi aan...
Wat is bedrijfssoftware? Definitie, soorten en voorbeelden
Welke soorten bedrijfssoftware er zijn, en wanneer een standaardpakket gaat knellen.
Wat is business intelligence? Definitie, software en toepassingen
Van ruwe gegevens naar cijfers waarop je kunt sturen, en waarom dat zo vaak strandt.
Wat is een API-koppeling?
Het verschil met een API en een webhook, en wat een koppeling in de praktijk vraagt.
Vragen over databases? Geen probleem.
De database is de verzameling gegevens. De database software, of DBMS, is het programma waarmee je die gegevens aanmaakt, opvraagt en beheert. PostgreSQL is database software; de tabellen met jouw klantgegevens erin vormen de database.
Dat is de verzamelterm voor pakketten waarin een database zit die zakelijke gegevens beheert, zoals klanten, orders en voorraad. In de meeste gevallen koop je de database niet los, maar als onderdeel van een systeem zoals een ERP- of CRM-pakket.
Voor administratieve processen is een relationele database zoals PostgreSQL of MySQL vrijwel altijd de juiste keuze. NoSQL is passend bij gegevens die per record van vorm verschillen of bij zeer grote volumes. De toepassing bepaalt de keuze, niet andersom.
Ja, via de API van dat systeem. Wat mogelijk is hangt af van welke gegevens de leverancier vrijgeeft, hoe vaak je die mag opvragen en of je ook mag wegschrijven. Vraag dat uit voordat je een koppeling inplant.
Dat is een contractafspraak. Leg vast wie eigenaar is van de gegevens en van de broncode, waar de database draait en wat er gebeurt als de samenwerking stopt. Regel dat voordat de ontwikkeling begint.