De feiten (en daarmee uw data) die verzameld en geregistreerd worden door de processen binnen uw organisatie moeten ergens opgeslagen worden. Zo kunnen ze bewerkt of verwijderd worden. Of je data nu on-premise of in de cloud staat, u heeft een database nodig waarin deze data wordt opgeslagen.
Er zijn veel verschillende databases waar u uit kunt kiezen. Maar hier noem ik de meest voorkomende van dit moment.
- Relationele databases
- Document Store
- Hadoop (Eco Systemen)
- Graph Databases
In deze blog licht ik elk van deze databases toe. Ik leg niet uit hoe deze databases onder de motorkop werken, want dat is voor deze blog niet relevant. Het doel is om een beeld te krijgen van wat er is en hoe je kunt bepalen welke database het meest geschikt is.
1. Relationele Database
Een relationele database is software die gemaakt is om feiten en beschrijvingen in tabellen te kunnen registreren, wijzigen en verwijderen zoals we dit kennen uit de statistiek. De databases zijn relationeel omdat de tabellen onderling een relatie met elkaar hebben (3 V’s). Een voorbeeld hiervan kun je zien in figuur 1.
Feiten kunnen vastgelegd worden door schermen (IoT) of smart devices (Smart Phones, Tablets, Weerstations, Senoren). Om van een simpel voorbeeld uit te gaan zie je in figuur 2 en 3 een voorbeeld van medewerkergegevens die worden opgeslagen in een database.
1.1 SQL
Voor relationele databases is een uniforme taal ontwikkeld, namelijk (ANSI) SQL (Structured Query Language). Dit zorgt voor de context voor de data. Hierdoor kunt u een vraag stellen aan de database en krijgt u antwoord in de vorm van een tabel.
In de basis geef je eerst aan (horizontaal) welke kolommen je nodig hebt (SELECT), daarna geef je aan van welke tabel (FROM). Hierbij een voorbeeld: Wanneer ik van de Employees tabel (zie afbeelding) alle voor- en achternamen wil hebben dan voer ik binnen SQL de volgende opdracht uit: ”SELECT LNAME, FNAME FROM Employees”
Zo krijg ik dus alle voor- en achternamen van alle werknemers. Belangrijke kenmerk van een Relationele Database Management System (RDBMS) is dat u via de tabellen en kolommen data zoekt.
De Relationele Database is de oudste en de minst flexibele vorm om je data in op te slaan. Om de data van een scherm op te kunnen slaan in een Relationele Database is een onderliggende tabel vereist. Ook wanneer in het scherm een extra veld wordt toegevoegd moet je in de database een extra kolom toevoegen. Bij een relationele database bepaal je de datastructuur dus van tevoren.
2. Document Store
In tegenstelling tot Relationele Databases is de relatie tussen datastructuren bij een Document Store opgeslagen in het document zelf. Het schema hoeft dus niet van tevoren bekend te zijn. Hiermee bent u dus flexibel in het invoeren van uw data. Én dat is een groot voordeel wanneer u te maken heeft met onbekende data van onbekende leveranciers.
Er zijn 2 type documenten die we kunnen opslaan in een Document Store:
- XML (Tag based format )
- JSON (Curly brackets format)
Niet iedere database kan met allebei de bestandsformaten omgaan. In de regel maakt het niet uit welk formaat u kiest. Link blog 3. Maar wel is het belangrijk om te bepalen welke waarde u hieruit wilt halen en hoe u deze data gevisualiseerd wilt hebben.
Het nadeel van een Document Store ten opzichte van een Relationele Database is dat het uitvragen van data meer tijd kost en minder gestandaardiseerd is. (Linken hierover meer in de blog van week 22 “SQL versus NoSQL).
3. Hadoop (Ecosystemen)
Hadoop is een verzamelbak van alle bestandsformaten die er mogelijk zijn. Het is vergelijkbaar met een folder op je computer waarin je alle bestandstypen kunt zetten die je maar wilt. Hadoop werkt met het De Hadoop Distributed File System (HDFS). Hierin kunt u qua capaciteit en performance (scale out) lineair opschalen. Hadoop is ook Open Source. U heeft dus voor het gebruik van Hadoop geen licenties nodig, én dat scheelt een hoop geld.
Om de data die opgeslagen is in Hadoop te ontsluiten, heeft u weer andere tools nodig. Veel gebruikte tools hiervoor zijn Hive, Pig, Sprak en MapReduce (link hierover meer in de blog van week 22 “SQL versus NoSQL).
4. Graph Database
Met een grafische database kunt u op een simpele manier ingewikkelde hiërarchische en complexe structuren uitvragen en opslaan. Met een grafische structuur, zie figuur 6, wordt de data opgeslagen.
Conclusie
Nu u weet welke database types er zijn en in welke vorm ze afwijken van elkaar, kunt u een keuze maken. De belangrijkste vraag is wat u met uw data wilt doen en welke context u uw data wilt meegeven. Het antwoord op deze vraag helpt u bij de keuze voor welke database het meest geschikt is voor uw organisatie.