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 je een boodschappenlijst op een stukje papier schrijft, maak je een kleine, analoge database. Maar wat is een database in de computerwetenschappen? In die context definieer je een "database" als een verzameling informatie die als gegevens op een computersysteem is opgeslagen, zoals de inventaris in je 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 je hierbij te helpen kunt je databasebeheersystemen (DBMS) gebruiken die een laag hulpprogramma's voor databeheer 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 je 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 je verzamelt en opslaat over je favoriete restaurants zijn gegevens.
Typen databases
Typen databases zijn algemeen gegroepeerd in relationele en niet-relationele databases. Relationele databases zijn zeer gestructureerd en begrijpen een programmeertaal genaamd SQL (Structured Query Language). 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 je 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 database-elementen georganiseerd in een hiërarchische database met knooppunten in bovenliggende en onderliggende relaties die afkomstig zijn van één hoofdknooppunt.
Grafiek
Met grafiekstructuren worden database-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, PostgreSQLen 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 je dit type database bijwerkt of hiervoor een query uitvoert, heb je 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 je 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 caching.
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 je een e-commercewebsite hebt, bevat je 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. Je kunt de kenmerken in het document wijzigen zonder dat dit van invloed is op een van je 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 je lid wordt van een sociaal netwerk, wordt jouw informatie toegevoegd aan een niet-relationele database van iedereen die dat netwerk gebruikt. Wanneer je verbinding maakt met andere personen in dat netwerk, word je onderdeel van een sociale grafiek. Daarom kun je een gefilterde lijst met 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 je dit misschien niet eens merkt. Als je een vlucht via een reiswebsite boekt, zie je ook opties voor het boeken van hotels en huurauto's. De database van de website bevat een schat aan ongestructureerde informatie (je vluchtgegevens, reisvoorkeuren, vorige auto- of hotelreserveringen) die wordt gebruikt om je 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 daatabasebeheersystemen bieden verschillende niveaus van organisatie, schaalbaarheid en toepassing. Naast het type gegevens dat je wilt organiseren en hoe je er toegang toe wilt krijgen, is de DBMS die je gebruikt ook afhankelijk van waar jouw gegevens zich bevinden, het type architectuur dat je database gebruikt en hoe je wilt schalen.
Bevinden de 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 je 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 je niet zoveel hardware hoeft te kopen en je alleen betaalt voor de opslag die je gebruikt.
Is je 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.
Groei je mee met jouw 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, voeg je meer machines toe aan je pool met resources.
Door horizontaal in plaats van verticaal te schalen wordt de levenscyclus van bestaande hardware uitgebreid, kun je upgraden zonder vendor lock-in, worden de kosten beperkt en ontstaat er flexibiliteit op de lange termijn.
Azure-databases
Vereenvoudig 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.
Databases in Azure verkennen en de gewenste database zoeken
Meer informatie over de migratie van databases naar Azure
Creëer een beheerde clouddatabase met je gratis Azure-account
Kennismaken met de Azure SQL-databases
Breng eenheid in je SQL-portfolio zonder dat dit ten koste gaat van de compatibiliteit. Migreer, moderniseer en implementeer toepassingen op jouw manier, van rand naar cloud, met behulp van vertrouwde SQL Server-technologie.
Databases in Azure verkennen en de gewenste database zoeken
Meer informatie over Azure SQL Database
Meer informatie over Azure SQL-basisbeginselen in een begeleid leerpad
Zonder zorgen schalen met Azure Database for PostgreSQL
Azure Database for PostgreSQL helpt je om jouw workload snel en met vertrouwen te schalen met hoge beschikbaarheid, optimalisatie van prestaties met AI en geavanceerde databasebeveiliging.
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.
Veel verkeer efficiënt verwerken met Azure Cache voor Redis
Azure Cache voor Redis helpt je bij de verwerking van duizenden gelijktijdige gebruikers met bijna-onmiddellijk-snelheid door een laag voor snelle caching toe te voegen aan de architectuur van je app.
Ga aan de slag met bouwen via Azure
Probeer Azure cloud-computing-services maximaal 30 dagen gratis uit, of ga aan de slag met prijzen voor betalen per gebruik. Je zit nergens aan vast: je kunt op elk gewenst moment opzeggen.