Wat is het verschil tussen een traditionele database en een moderne database?


Antwoord 1:

De meeste "moderne" databases zijn "traditionele" databases! Dat wil zeggen, de meeste databases die tegenwoordig worden gebruikt, volgen het traditionele ACID / relationeel / SQL-patroon - van de top 5 van databases op DB-Engines Ranking zijn SQL / ACID / relationele systemen.

In de afgelopen 10 jaar is er echter een "volgende generatie" databases geweest die het traditionele model hebben doorbroken. Ze vallen in een paar categorieën:

  • Databases die voornamelijk probeerden een grotere wereldwijde schaal te bieden dan mogelijk was wanneer ACID-transacties nodig waren - dit omvat Cassandra en DynamoDBDatabases die een flexibeler schema bieden dat de flexibiliteit van applicatie-ontwikkeling verbetert - het beste voorbeeld is MongoDBDatabases die een betere economie bieden voor de opslag van echt massale hoeveelheden gegevens - het beste voorbeeld is Hadoop.

Dit artikel gaat dieper in op deze ideeën. Mijn boek gaat nog verder in :-)


Antwoord 2:

Ik wil mijn antwoord vooraf laten gaan door te stellen dat veel 'traditionele' databases nog steeds wijdverbreid worden gebruikt door enkele van de toonaangevende Fortune 500-bedrijven en voortdurend nieuwe en opwindende functies toevoegen. In dat opzicht is het grote verschil tussen een 'traditionele' en 'moderne' database eigenlijk alleen een kwestie van wanneer deze voor het eerst op de markt komt.

Als ik uw betekenis begrijp, mengt u waarschijnlijk “moderne” databases met de NoSQL-variëteit, die recenter zijn opgedoken dan hun relationele tegenhangers. Databases zoals MongoDB zijn tussenbeide gekomen om een ​​betere afhandeling van "Big Data" en realtime-applicaties te bieden.

NoSQL-databases kunnen enorme hoeveelheden gegevens opslaan met weinig tot geen structuur. Ze stellen ook geen limieten aan de soorten gegevens die u samen kunt opslaan, zodat u meer nieuwe typen kunt toevoegen als uw behoeften veranderen. En u kunt gegevens op één plaats opslaan zonder vooraf het type gegevens te definiëren.

Hier zijn enkele van de belangrijkste voordelen van NoSQL-databases:

  1. Eerst en vooral zijn ze meestal heel eenvoudig te installeren en in te stellen. Ze bevatten geen schema, dus uw code definieert uw schema. De mogelijkheid om een ​​document-gebaseerd datamodel af te leiden is een van de meest aantrekkelijke voordelen van NoSQL-databases. MongoDB slaat bijvoorbeeld de gegevens op in de vorm van BSON (Binary JSON). Dat stelt het in staat om arrays en andere complexe gegevenstypes op te slaan. De documentquerytaal die wordt ondersteund door databases zoals MongoDB ondersteunt dynamische query's. Ze zijn eenvoudig te schalen. Door de structurering van de gegevens in NoSQL-databases zijn geen complexe joins nodig. is vrij eenvoudig in vergelijking met andere relationele databases. U hoeft de toepassingsobjecten niet toe te wijzen aan de gegevensobjecten. Maakt snellere toegang tot de gegevens mogelijk vanwege de aard van het gebruik van intern geheugen voor opslag. NoSQL-databases zijn ongevoelig voor SQL-injecties. Kan ook worden gebruikt als een bestandssysteem, wat helpt bij taakverdeling. De ondersteuning voor Sharding is een handige functie. Sharding is het proces waarbij de gegevens op verschillende machines worden opgeslagen naarmate de gegevens groter worden, wat resulteert in horizontale schaling. Met sharding kunnen meer gegevens worden weggeschreven en teruglezen omdat de gegevensgroei toeneemt.

Houd er rekening mee dat het niet allemaal op zijn kop staat. NoSQL-databases offeren structuur op voor grotere snelheid. Dat maakt hen een slechte keuze voor toepassingen zoals betaalsystemen.

Er zijn minder client-apps beschikbaar voor NoSQL-databases dan voor meer gevestigde zoals MySQL. Dat gezegd hebbende, Navicat voor MongoDB is een client die ik heb gebruikt en die ik erg leuk vind.

Hoop dat het helpt!