Simpel gezegd
Technische uitleg
Instructies / Video’s
Links
Een database is een georganiseerde verzameling gestructureerde informatie of data, die doorgaans elektronisch wordt opgeslagen in een computersysteem. Een database wordt meestal beheerd door een databasebeheersysteem (Database Management System, of DBMS). De data en het DBMS worden, samen met daaraan gekoppelde applicaties, een databasesysteem genoemd. Dit wordt vaak afgekort tot slechts ‘database’.
Data binnen de meest voorkomende soorten databases die vandaag in bedrijf zijn, worden doorgaans gemodelleerd in rijen en kolommen in een reeks tabellen om verwerking en zoekopdrachten naar data efficiënt te maken. De data kunnen vervolgens eenvoudig worden gebruikt, beheerd, gewijzigd, bijgewerkt, bewaakt en georganiseerd. De meeste databases gebruiken Structured Query Language (SQL) voor het schrijven en opvragen van data.
Een database moet aan de volgende minimale (CRUD) voorwaarden voldoen om als database gezien te worden:
- Gegevens moeten eenvoudig duurzaam kunnen worden opgeslagen (Create)
- Gegevens moeten eenvoudig kunnen worden opgezocht en doorzocht (Read)
- Gegevens moeten onderhouden kunnen worden (Update)
- Gegevens moeten verwijderd kunnen worden zonder dat dat de werking van dat systeem nadelig beïnvloedt (Delete).
Om aan deze voorwaarden te kunnen voldoen is een essentiële regel belangrijk: Een database moet integer zijn:
- Gegevens moeten consistent zijn en mogen bijvoorbeeld niet dubbel worden opgeslagen. Dit betekent ook dat de samenhang of relatie met andere gegevens moeten (blijven) kloppen.
- De gegevens moeten geautoriseerd toegevoegd, onderhouden of verwijderd worden.
We kennen de volgende typen databases:
- Relationele databases (SQL)
- Een relationele database ziet er op het eerste gezicht hetzelfde uit als een platte database. Het verschil is echter dat de tabellen niet op zichzelf staan. Via een zogenaamde JOIN-clause worden twee of meer tabellen uit de database aan elkaar verbonden.
- Niet-relationele databases (no-SQL)
- De naam NoSQL komt van Not Only SQL, oftewel niet alleen SQL. Hiermee wordt gerefereerd aan het feit dat dit soort databases SQL vermijdt. Het systeem wordt wel ter ondersteuning gebruikt, maar niet actief voor het verwerken van verzoeken. De reden hiervoor is dat dit soort databases wordt ingezet bij grote hoeveelheden gegevens.
- Flat File database
- Dit soort database, ook wel platte database genoemd, is het meest eenvoudige model database. Het is een eenvoudige tweedimensionale tabel. Alle elementen in dezelfde kolom hebben gelijksoortige waarden, en alle elementen van een rij zijn gerelateerd. Dit model, waar ook Excel-sheets op zijn gebaseerd, vormt de basis van meer complexe databasemodellen, zoals een relational database.
- Distributed database
- Bij een gedistribueerde database wordt de database opgedeeld in stukjes en op verschillende fysieke plekken (hardware) opgeslagen. De verwerkingstaken voor verzoeken worden verdeeld over deze verschillende stukjes.
- Het voordeel van een gedistribueerde database is dat de gegevens beter beschikbaar zijn. Als één van de stukjes een fout bevat, blijft de rest van de database wel gewoon werken. Verzoeken worden misschien wat trager verwerkt, maar helemaal uitvallen doet de database niet. Aan de andere kant bestaat wel het risico dat bepaalde data gedupliceerd worden.
- Object Orientated database
- In een objectgeoriënteerde database worden gegevens in de vorm van objecten weergegeven. Een object is een concreet stukje data, bijvoorbeeld de bestelling van een klant. De gegevens van de bestelling, zoals klantnaam, opleverdatum, prijs, bestelnummer enzovoort, worden schematisch weergegeven. Daarom wordt dit soort databases ook wel schematische database genoemd.
- Graphic database
- Grafische databases onderscheiden zich van de voorgaande omdat ze gespecialiseerd zijn in het structureren en linken van grafische gegevens. Dit soort databases leest en interpreteert de connecties (nodes) tussen de verschillende tabellen. Vervolgens worden de beschreven relaties ‘vertaald’ naar een natuurlijke taal. Zo kunnen deze grafische data ook door gebruikers geïnterpreteerd worden. Enkele voorbeelden van grafische databases zijn Neo4j en Amazon Neptune.