Relationele VS Niet-Relationele Databases

Achterverhaal: Terug in 2016 studeerde ik Informatica aan de Universiteit van Albany en ik moest een cursus Intro to Databases volgen.

In de cursus leerde ik twee dingen:

Relationele Databases en niet-relationele Databases, maar ik heb nooit echt het verschil tussen de twee geleerd, dus ik wilde mijn nieuwsgierigheid naar databases en de verschillen tussen de twee opnieuw aanwakkeren.

  • Gedefinieerd door E.F Codd in 1970, is een relationele database een digitale database gebaseerd op het relationele model van gegevens. De gegevens worden opgeslagen in tabellen met rijen (die een item voorstellen) en kolommen (die een specifiek soort informatie opslaan en sorteren). Relaties worden gelegd door middel van Primaire en Vreemde sleutels.

Voorbeeld van een relationeel databasemodel

Talen: SQL(Structured Query Language), MySQL, PostgreSQL, sqlite3

Voordelen:

  • Kan veel complexe query’s, databasetransacties en routineanalyses van gegevens aan.
  • ACID(Atomity, Consistency, Isolation, Durability): Set eigenschappen die zorgen voor betrouwbare databasetransacties.

Nadelen:

  • Kan geen complexe of zeer grote afbeeldingen, getallen, ontwerpen en multimediaproducten opslaan
  • Kan zeer kostbaar worden met onderhoud en nieuwe servers

Grappig! Maar wat als onze datasets te groot of ongestructureerd zijn?

Niet-Relationele Database of NoSQL

Wat is een Niet-Relationele Database?

  • Niet-relationele databases bestonden al eind jaren zestig, maar de term werd pas in 1998 gebruikt door Carlo Strozzi die de ontwikkeling van NoSQL leidde.
  • “Een NoSQL (oorspronkelijk verwijzend naar “non SQL” of “non relational”) database biedt een mechanisme voor het opslaan en opvragen van gegevens dat is gemodelleerd op andere manieren dan de tabelrelaties die in relationele databases worden gebruikt.” – Wikipedia

Types van NoSQL databases:

Column Store: Maakt gebruik van het concept keyspace die alle kolomfamilies bevat die rijen en kolommen bevatten om gegevens op te slaan en te organiseren.

Elke rij bevat een familie van kolommen

Database: Apache HBase, Cassandra

Key-Value Store: Maakt gebruik van een associatieve array (map of dictionary) als fundamenteel gegevensmodel. De gegevens worden voorgesteld als een verzameling sleutel-waardeparen en een sleutel komt maximaal eenmaal in de verzameling voor. U kunt een waarde opslaan, zoals een geheel getal, een string, een JSON-structuur of een array, samen met een sleutel die wordt gebruikt om naar die waarde te verwijzen.

Elke rij heeft zijn eigen ID en waarden

Database: Redis, Amazon DynamoDB

Grafiek: Is een database die gebruik maakt van grafiekstructuren om gegevens weer te geven en op te slaan. Dit geeft gebruikers de mogelijkheid om snel door alle verbonden waarden te gaan en inzichten te vinden in de relaties.

Alle films waarin Kevin Bacon optreedt

Database: neo4J, OrientDB, Titan

Document-georiënteerde database: Een document-georiënteerde database, of document store, is een computerprogramma dat is ontworpen voor het opslaan, ophalen en beheren van document-georiënteerde informatie, ook wel bekend als semi-gestructureerde data.

Database: MongoDB, Couchbase

Voordelen:

  • Grote hoeveelheden gestructureerde, semi-gestructureerde en ongestructureerde gegevens
  • Object-georiënteerd programmeren dat gemakkelijk te gebruiken en flexibel is (MongoDB is in principe in javascript geschreven)
  • Efficiënte, scale-out architectuur in plaats van dure, monolithische architectuur

Nadelen:

  • Minder ondersteuning omdat NoSQL-databases meestal open-source zijn
  • Beheer: NoSQL databases vereisen technische vaardigheid om te installeren en te onderhouden.
  • Minder volwassen. NoSQL-databases groeien nog steeds en veel functies worden nog steeds geïmplementeerd.

Welke te gebruiken?

Bedrijven gebruiken een mix van zowel traditionele als niet-relationele databases om aan hun zakelijke eisen en behoeften te voldoen.

Rationele database:

Traditionele relationele databases zijn zeer goed in het veilig houden van uw gegevenstransacties en het maken van complexe query’s om informatie te verkrijgen. Bedrijven die al gestructureerd zijn en geen enorme groei doormaken, houden het waarschijnlijk bij traditionele databases.

Niet-relationele databases:

Groot in het opslaan van grote hoeveelheden gegevens met weinig structuur. Bedrijven die in snel tempo groeien, zoals startups, maken meer gebruik van niet-relationele databases vanwege de schaalbaarheid en flexibiliteit. Gekoppeld aan de cloud, kunnen niet-relationele databases bedrijven ook veel geld besparen.

Data Fun Facts:

  1. Data groeit sneller dan ooit tevoren en tegen het jaar 2020 zal elke seconde ongeveer 1,7 megabyte aan nieuwe informatie worden gecreëerd voor elk mens op de planeet.
  2. Tegen die tijd zal ons geaccumuleerde digitale universum van gegevens groeien van 4,4 zettabytes vandaag naar ongeveer 44 zettabytes, of 44 biljoen gigabytes.
  3. We zien een enorme groei in video- en fotogegevens, waarbij elke minuut tot 300 uur video wordt geüpload naar YouTube alleen.
  4. Dit jaar zullen er meer dan 1,4 miljard smartphones worden verscheept – allemaal vol met sensoren die in staat zijn om allerlei soorten gegevens te verzamelen, om nog maar te zwijgen van de gegevens die de gebruikers zelf creëren.
  5. Over vijf jaar zullen er meer dan 50 miljard slimme aangesloten apparaten in de wereld zijn, allemaal ontwikkeld om gegevens te verzamelen, te analyseren en te delen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.