# Data
# Wat is data?
Data is een gegevensverzameling, ook wel dataset genoemd welke in de meeste gevallen gepresenteerd is in een tabelvorm.
Waarbij de rijen, ook wel records genoemd, in de tabel overeenstemt met een lid uit de gegevensverzameling.
De kolom stemt overeen met een variabele. Elke rij bevat een waarde voor de verschillende variabelen of attributen.
Voorbeelden van variabelen: datum, tijdstip, getal, tekst,…
Een dataset heeft verschillende kenmerken welke de eigenschappen en structuur bepalen zoals onder andere het datatype van de variabelen, het aantal variabelen
Andere vormen van datasets welke geen tabelvorm zijn: XML, JSON,…
De waarden kunnen getallen zijn, maar ook gegevens van nominaal of ordinaal niveau zijn. Voor elke variable zullen normaal gesproken de waarden van hetzelfde niveau zijn, al kunnen er wel gegevens ontbreken, wat op een of andere manier dient te worden aangegeven.
Er bestaan dus verschillende data structuren en die data zal een steeds een bepaald type zijn. Dit wordt dan opgeslagen in een zeker data formaat.
# Data als developer
Als developer wordt data meestal opgeslagen in een databank. Een databank is een digitale verzameling van data welke je kan vergelijken met een bestand waarin gegevens opgeslagen en met elkaar verbonden worden.
Binnen een hogeschool kan men gebruik maken van een database die alle data bijhoudt die belangrijk zijn voor de onderwijsactiviteiten van de hogeschool. Denk daarbij aan de gegevens van de studenten, lectoren, lessen, lokalen, studiegelden,…
Een databank kent heel wat voordelen:
- Je kan eenvoudig gegevens in de databank toevoegen.
- Het is eenvoudig om gegevens te wijzigen en verwijderen in de databank.
- Je kan snel gegevens opzoeken in de databank.
- Je kan filteren op gegevens.
# Databank Structuur
Als je gegevens gaat bijhouden van specifieke objecten kan je dit gelijkstellen aan tabellen. Elke eigenschap van het object komt dan overeen met een kolom. En elk element van het type object zal dan overeenkomen met een rij in de tabel men noemt dit ook een record.
# Databank Soorten
# RDBMS
RDBMS staat voor relational database management system en wijst op het relationele model van de data. Meest gekende RDBMS is MySQL, Microsoft SQL Server, SQLite, Oracle, PostgreSQL…
*[RDBMS]: Relational database management system
Voorbeeld van een MySQL Database
Hoeveel items heeft Customer 1 aangekocht en welke producten?
Begrippen
Tables
(Data) Value
Row of record
Columns of fields
- Info over een record
Relaties maken het mogelijk om makkelijk en efficient data op te halen, zouden we alles in 1 table plaatsen dat zou dit niet alleen onoverzichtelijk zijn maar ook te veel data om te downloaden.
- Declaratief VS Imperatief
- Imperatief voorbeeld:
- Open de deur
- Ga naar buiten.
- Neem de lege glasbak
- Breng de glasbak binnen
- Declaratief voorbeeld:
- Ga de glasbak halen
- Imperatief voorbeeld:
Voorbeeld SQL
SELECT * FROM customers;
SELECT * FROM items WHERE item_code = "C_1";
SELECT * FROM purchases WHERE NOT item_code = "B_2";
2
3
# NoSQL
Een NoSQL databank verwijst naar een “niet-SQL” of “niet-relationele database”. Een NoSQL databank gaat voor het opslaan en ophalen van gegevens niet werken met tabellarische relaties zoals in een relationele databank.
Er bestaan 3 populaire modellen van NoSQL databases.
# Key-Value Model
In dit NoSQL-databasemodel is een key vereist om gegevens op te halen en bij te werken. Het key-value datamodel is zeer eenvoudig en daardoor goed schaalbaar. Deze eenvoud en schaalbaarheid gaan echter ten koste van de complexiteit van de query.
# Document Model
Deze NoSQL-databases vervangen de klassieke rijen- en kolommenstructuur door een documentopslagmodel. Elk document is gestructureerd, waarbij vaak gebruik wordt gemaakt van het JavaScript Object Notation (JSON)-model. Het documentgegevensmodel wordt geassocieerd met objectgeoriënteerd programmeren waarbij elk document een object is.
Het onderverdelen van data in verschillende documenten is dan ook het grote verschil tussen key-value en document model. Simpel gezegd is het Document model een uitbreiding van het key-value model en zal gepaster zijn voor complexe queries.
JSON Voordelen
- Gebruiksvriendelijk
- Leesbaar
- Voelt vertrouwd aan, zijn in essentie allemaal objecten.
JSON Nadelen
- Text gebaseerd (UTF-8)
- Neemt veel plaats in, in zijn leesbare vorm
- Gelimiteerd aantal datatypes
- Number
- Boolean
- String
- Array
Een zeer populaire document database technologie of platform is MongoDB (opens new window). Het gaat de data opslaan als collecties van documenten, deze documenten worden opgeslagen in BSON, een meer database-friendly variant van JSON. Een MongoDB database bestaat uit meerdere collecties.
Meld je aan op de MongoDB University (opens new window):
- Doorloop het eerste hoofdstuk tot en met “Quiz 3: What is a document”.
- Doorloop het tweede hoofdstuk tot en met “Quiz: JSON vs BSON”.
# Graph Model
Deze klasse van databases maakt gebruik van structuren zoals “data nodes, edges and properties”, waardoor het eenvoudiger wordt om relaties tussen entiteiten in een toepassing te modelleren.
Andere database modellen gaan complexe queries aanspreken met JOIN operations, wat de query ‘zwaar’ maakt. Bij het graph model zit de relatie zelf opgeslagen in de data waardoor je sneller data kan ophalen.
Een zeer populaire graph database technologie of platform is GraphQL (opens new window). Het zal de uitsluitend de data teruggeven die je opvraagt en niet de andere informatie, hierdoor gaat het vaak sneller.