Navigatie overslaan

Wat zijn databases?

Definities, typen en voorbeelden van databases

Wat zijn databases?

Een database is in de eerste plaats een verzameling van gerelateerde informatie. Wanneer u een boodschappenlijst op een stukje papier schrijft, maakt u een kleine, analoge database. Maar wat is een database in de computerwetenschappen? In die context definieert u een 'database' als een verzameling informatie die als gegevens op een computersysteem is opgeslagen, zoals de inventaris in uw lokale winkel.

Waarvoor worden databases gebruikt?

Databases worden gebruikt om gegevens op te slaan en te organiseren, zodat deze eenvoudiger te beheren en te openen zijn. Naarmate een verzameling gegevens groeit en complexer wordt, wordt het moeilijker om die gegevens georganiseerd, toegankelijk en veilig te houden. Om u hierbij te helpen kunt u databasebeheersystemen (DBMS) gebruiken die een laag beheerhulpprogramma's bevatten.

Wat zijn gegevens?

Gegevens verwijzen naar informatie die is vastgelegd en opgeslagen voor één persoon, plaats, ding of object, een entiteit genoemd, evenals de kenmerken van die entiteit.

Als u bijvoorbeeld informatie over lokale restaurants vastlegt en opslaat, is elk restaurant één entiteit en zijn de naam, het adres en de openingsuren kenmerken van die entiteit. Alle informatie die u verzamelt en opslaat over uw favoriete restaurants zijn gegevens.

Typen databases

Databases zijn algemeen gegroepeerd in relationele en niet-relationele databases. Relationele databases zijn zeer gestructureerd en begrijpen een programmeertaal genaamd Structured Query Language (SQL). Niet-relationele databases zijn zeer divers en ondersteunen diverse gegevensstructuren. Omdat veel niet-relationele databases geen SQL gebruiken, worden ze vaak NoSQL-databases genoemd.

Typen gegevensstructuren

Tabelstructuren zijn relationele databasestructuren waarmee gegevens worden georganiseerd in rijen en kolommen. Rijen bevatten entiteiten terwijl kolommen entiteitskenmerken bevatten. Bij brede tabellen of bredekolomopslag worden weinig kolommen met lege kenmerken gebruikt om het totale aantal kolommen dat u in de tabel kunt hebben, sterk te verhogen. Omdat sommige ruimten leeg zijn, zijn brede tabellen een voorbeeld van een niet-relationele databasestructuur.

Met lineaire structuren worden elementen georganiseerd in een reeks.

Matrix

Gekoppelde lijst

Binaire structuur

Met structuren worden elementen georganiseerd in een hiërarchische database met knooppunten in bovenliggende en onderliggende relaties die afkomstig zijn van één hoofdknooppunt.

Grafiek

Met grafiekstructuren worden elementen georganiseerd in een niet-hiërarchisch netwerk van knooppunten met onderliggende complexe relaties.

Hash-tabel

Bij hash-gebaseerde structuren worden sleutels toegewezen aan waarden met behulp van hash-functies die gerelateerde gegevens koppelen door indexen toe te wijzen aan hash-tabellen.

Documentgeoriënteerde databases

Bij documentgeoriënteerde databases wordt de informatie over een entiteit georganiseerd in één object (het document), dat gescheiden is van andere objecten. Objecten hoeven niet aan elkaar te worden gerelateerd en een object kan worden bewerkt zonder dat dit van invloed is op andere objecten.

Relationele databases

In een relationele database, het meest voorkomende type, worden gegevens georganiseerd in tabellen die informatie bevatten over elke entiteit en vooraf gedefinieerde categorieën vertegenwoordigen via rijen en kolommen. Deze gestructureerde gegevens zijn efficiënt en flexibel te openen.

Voorbeelden van relationele databases zijn SQL Server, Azure SQL, MySQL, PostgreSQL en MariaDB.

Niet-relationele databases

In niet-relationele databases worden ongestructureerde of semi-gestructureerde gegevens opgeslagen. Deze databases gebruiken geen tabellen met kolommen en rijen zoals relationele databases. In plaats daarvan gebruiken ze een opslagmodel dat is geoptimaliseerd voor de specifieke vereisten van het type gegevens dat wordt opgeslagen. Met niet-relationele databases kunnen grotere sets gedistribueerde gegevens snel worden gebruikt, bijgewerkt en geanalyseerd.

Voorbeelden van niet-relationele databases zijn MongoDB, Azure Cosmos DB, DocumentDB, Cassandra, Couchbase, HBase, Redis en Neo4j.

Sommige niet-relationele databases worden aangeduid als NoSQL-databases. NoSQL verwijst naar gegevensarchieven die geen SQL of niet alleen SQL gebruiken voor query's. NoSQL-databases gebruiken in plaats daarvan andere programmeertalen en constructies om query's uit te voeren op de gegevens. Veel NoSQL-databases bieden ondersteuning voor SQL-compatibele query's, maar de manier waarop deze query's worden uitgevoerd, verschilt meestal van de manier waarop een traditionele relationele database dezelfde SQL-query uitvoert.

Eén type niet-relationele database, een objectdatabase, maakt gebruik van objectgeoriënteerd programmeren. Objecten worden gecodeerd met een status (feitelijke gegevens) die is opgeslagen in een veld of variabele en een gedrag dat wordt weergegeven via een methode of functie. Objecten kunnen blijvend in permanente opslag worden bewaard en rechtstreeks worden gelezen en toegewezen zonder een API of hulpprogramma, wat snellere toegang tot gegevens en betere prestaties oplevert. Objectdatabases zijn echter niet zo populair als andere databasetypen en kunnen lastig te ondersteunen zijn.

In-memory databases en caches

Alle gegevens in een in-memory database worden opgeslagen in het RAM (Random Access Memory) van een computer. Wanneer u dit type database bijwerkt of hiervoor een query uitvoert, hebt u rechtstreeks toegang tot het hoofdgeheugen. Er is geen schijf bij betrokken. Gegevens worden snel geladen omdat toegang tot het hoofdgeheugen (dat zich in de buurt van de processor op het moederbord bevindt) veel sneller is dan toegang tot een schijf.

In-memory databases worden vaak gebruikt voor het opslaan van kopieën van veelgebruikte informatie, zoals prijzen of inventarisgegevens. Dit wordt opslaan in cache genoemd. Wanneer u gegevens in cache opslaat, wordt er een kopie van de gegevens op een tijdelijke locatie opgeslagen, zodat de gegevens sneller worden geladen wanneer deze opnieuw worden aangevraagd. Meer informatie over opslaan in cache.

Databasevoorbeelden

Databases lijken misschien onzichtbare mysteries, maar de meesten van ons werken er elke dag mee. Hier volgen enkele algemene voorbeelden van relationele databases, NoSQL-databases en in-memory databases:

Financiële transacties

Banken gebruiken databases om klanttransacties bij te houden voor alles, van het opvragen van saldi tot overschrijvingen tussen rekeningen. Deze transacties moeten bijna onmiddellijk plaatsvinden en de gegevens van enorme hoeveelheden transacties moeten altijd actueel zijn. Voor deze doeleinden gebruiken banken online transactionele verwerkingssystemen die zijn gebouwd met relationele databases die een groot aantal klanten, frequente gegevenswijzigingen van transacties en snelle reactietijden kunnen verwerken.

E-commercecatalogi

Als u een e-commercewebsite hebt, bevat uw catalogus afzonderlijke producten met elk hun eigen kenmerken. Een documentgeoriënteerde database, een voorbeeld van een niet-relationele database, gebruikt afzonderlijke documenten om alle kenmerken van één product te beschrijven. U kunt de kenmerken in het document wijzigen zonder dat dit van invloed is op een van uw andere producten. In-memory databases worden vaak gebruikt om veelgebruikte e-commercegegevens in de cache op te slaan, zoals inventaris en prijzen, om het ophalen van gegevens te versnellen en de belasting van de database te verlagen.

Sociale netwerken

Wanneer u lid wordt van een sociaal netwerk, wordt uw informatie toegevoegd aan een niet-relationele database van iedereen die dat netwerk gebruikt. Wanneer u verbinding maakt met andere personen in dat netwerk, wordt u onderdeel van een sociale grafiek. Daarom kunt u een gefilterde lijst met uw vrienden of professionele contacten zien en nieuwe mensen ontdekken die deze vrienden en contacten kennen.

Gepersonaliseerde resultaten

Niet-relationele databases zorgen voor online persoonlijke aanpassingen die zo gangbaar zijn geworden dat u dit misschien niet eens merkt. Als u een vlucht via een reiswebsite boekt, ziet u ook opties voor het boeken van hotels en huurauto's. De database van de website bevat een schat aan ongestructureerde informatie (uw vluchtgegevens, reisvoorkeuren, vorige auto- of hotelreserveringen) die wordt gebruikt om u persoonlijke suggesties te bieden om tijd, geld of moeite te besparen. In-memory databases worden ook gebruikt als sessieopslag voor het efficiënt bewaren van tijdelijke gebruikersgegevens, zoals zoekvoorkeuren of winkelwagens, tijdens het gebruik van de toepassing.

Bedrijfsanalyses

Wanneer organisaties inzichten willen verkrijgen op basis van hun eigen gegevens, helpen relationele databases hen bij het beheren van hun analyses. Een helpdesk voor technologie kan bijvoorbeeld problemen van klanten bijhouden in verschillende dimensies, waaronder het type probleem, de tijd om het probleem op te lossen en de klanttevredenheid. In een relationele database met een tabelstructuur worden klantprobleemgegevens in slechts twee dimensies tegelijk georganiseerd. Met een online analytisch verwerkingssysteem kan de helpdesk echter naar meer dan een tabel tegelijk kijken, waardoor met multidimensionale analyses snel grote hoeveelheden gegevens kunnen worden verwerkt.

Databasebeheersystemen

Databasebeheerders gebruiken databasebeheersystemen (DBMS) om gegevens te beheren, met name wanneer ze werken met big data. Big data verwijst naar grote hoeveelheden gestructureerde en ongestructureerde gegevens die vaak in realtime of bijna in realtime door het systeem worden ontvangen. Een DBMS helpt ook bij het beheren van gegevens die worden gebruikt in meerdere toepassingen of gegevens die zich op meerdere locaties bevinden.

Verschillende beheersystemen bieden verschillende niveaus van organisatie, schaalbaarheid en toepassing. Naast het type gegevens dat u wilt organiseren en hoe u er toegang toe wilt krijgen, is de DBMS die u gebruikt ook afhankelijk van waar uw gegevens zich bevinden, het type architectuur dat uw database gebruikt en hoe u wilt schalen.

Bevinden uw gegevens zich on-premises of in de cloud, of beide?

In on-premises databases bevinden gegevens zich op persoonlijke on-premises hardware (vaak een privécloud genoemd). Als u gegevenscapaciteit wilt toevoegen, moeten databasebeheerders ervoor zorgen dat de on-premises servers voldoende ruimte beschikbaar hebben of hun infrastructuur uitbreiden met nieuwe hardware om ruimte te maken.

In clouddatabases bevinden gestructureerde of ongestructureerde gegevens zich op een privé-, openbaar of hybride cloud-computingplatform (dat wil zeggen een platform waarin privé- en openbare cloudopslag worden gecombineerd). Omdat clouddatabases zijn ontworpen voor een gevirtualiseerde omgeving, zijn ze in hoge mate schaalbaar en beschikbaar. Ze helpen ook om de kosten te verlagen, omdat u niet zoveel hardware hoeft te kopen en u alleen betaalt voor de opslag die u gebruikt.

Is uw databasearchitectuur gecentraliseerd, gedistribueerd of federatief?

In een gecentraliseerde database bevinden alle gegevens zich in één systeem, op één plek. Dit ene systeem is het toegangspunt voor alle gebruikers.

Een gedistribueerde database kan zowel relationele als niet-relationele databasetypen omvatten. In gedistribueerde databases worden de gegevens opgeslagen op meerdere fysieke locaties, ofwel op meerdere on-premises computers of verspreid over een netwerk met onderling verbonden computers.

In een federatieve database worden verschillende actieve databases op afzonderlijke servers samengevoegd tot één groot object. Een blockchain is een type federatieve database die wordt gebruikt voor het veilig beheren van financiële grootboeken en andere transactierecords.

Groeit u mee met uw gegevens door omhoog of uit te schalen?

Omhoog (of omlaag) schalen, ook wel verticaal schalen genoemd, is het proces van het toevoegen van resources, zoals geheugen of krachtigere CPU's, aan een bestaande server.

Bij uitschalen (of inschalen), ook wel horizontaal schalen genoemd, voegt u meer machines toe aan uw pool met resources.

Door horizontaal in plaats van verticaal te schalen wordt de levenscyclus van bestaande hardware uitgebreid, kunt u upgraden zonder vendor lock-in, worden de kosten beperkt en ontstaat er flexibiliteit op de lange termijn.

Azure-databases

Vereenvoudig uw gegevensbewerkingen met volledig beheerde databases waarmee schaalbaarheid, beschikbaarheid en beveiliging worden geautomatiseerd. Kies uit relationele databases, NoSQL-databases en in-memory databases op basis van systeemeigen en opensource-engines.

Kennismaken met de Azure SQL-databases

Breng eenheid in uw SQL-portfolio zonder dat dit ten koste gaat van de compatibiliteit. Migreer, moderniseer en implementeer toepassingen op uw manier, van rand naar cloud, met behulp van vertrouwde SQL Server-technologie.

Zonder zorgen schalen met Azure Database for PostgreSQL

Azure Database for PostgreSQL helpt u uw workload snel en met vertrouwen te schalen met hoge beschikbaarheid, optimalisatie van prestaties met AI en geavanceerde beveiliging.

Meer informatie over Azure PostgreSQL

Krachtige apps bouwen met Azure Cosmos DB

Azure Cosmos DB is een volledig beheerde NoSQL-database met open API's en gegarandeerde snelheid op elke schaal.

Meer informatie over Azure Cosmos DB

Veel verkeer efficiënt verwerken met Azure Cache voor Redis

Azure Cache voor Redis helpt u bij de verwerking van duizenden gelijktijdige gebruikers met bijna-onmiddellijk-snelheid door een laag voor snelle caching toe te voegen aan de architectuur van uw app.

Meer informatie over Azure Cache voor Redis
Kunnen we u helpen?