Databases onderscheiden zich aan de hand van CA, CP en AP. De CAP theorema stelt dat het onmogelijk is voor een database of dergelijk systeem om gelijktijdig aan de volgende drie punten te voldoen:
C: Consistency
- Alle clients in het netwerk zien of dezelfde meest recente data of een error op hetzelfde moment
A: Availability
- Iedere request verkrijgt een response zonder error maar deze response zijn niet altijd de nieuwste data
P: Partition Tolerance
- Het systeem blijft functioneren wanneer een client uitvalt, berichten vertraagd raken of niet aankomen
Bij dit onderscheid wordt ervan uitgegaan dat er meerdere clients zijn. In de situatie waarin de tool zich bevindt is dit niet het geval. De database bevindt zich op de tool zelf en de client is in dit geval de App. Omdat de tool (RPI) gebruik maakt van een mobiele hotspot connectie betreft de tool altijd maar een client die verbonden is tenzij er een ander device dezelfde hotspot-connectie zit en uitgerekend naar het juiste ip address gaat.
Daarom zal het onderscheiden van de databases plaatsvinden op basis van prestaties. Voor het opslaan van data voor analytische doeleinden worden NoSQL en NewSQL over het algemeen aanbevolen. Dit komt doordat deze databases over het algemeen sneller omgaan met zowel het opslaan als presenteren van data. Van deze twee wordt NewSQL geadviseerd, dit om onnodige complexiteit binnen de applicatie te voorkomen. NewSQL heeft de low-latency en de high-throughput van NoSQL, maar wel met de flexibiliteit en het gemak van een full relational database met SQL support. Daarbij komt dat NoSQL zoveel gefocust is op low-latency dat cross-table join operations en consistency plaatsmaken voor scalability. Hierdoor blijft noSQL over het algemeen sneller dan newSQL wanneer er grotere hoeveelheden data in opgeslagen zijn. Dit is in het snelheidsoverzicht hieronder te zien. De enige uitzondering op deze test is PostgreSQL. PostgreSQL is door de jaren heen goed onderhouden en met de tijd mee geëvolueerd.
De Big-O is een wiskundige notatie die het limiterende gedrag van een functie omschrijft wanneer deze naar een specifieke waarde of oneindigheid leidt. De verschillende datastructuren kunnen aan de hand van de Big-O notatie vergeleken worden om te zien hoe ze prestatie gewijs scoren zodra er meer elementen in de database zitten. De B-tree is een van deze datastructuren en past automatisch zijn diepte aan. Hierbij behoud de B-tree het aantal levels zo laag mogelijk. Deze datastructuur houdt de gesorteerde gegevens bij en staat het toe om zoekopdrachten, sequentiële toegang, toevoegingen en verwijderingen in logaritmische tijd uit te voeren.
Zo maakt PostgreSQL gebruik van de B-Tree structuur. Deze structuur gaat als een van de betere om met de tijd- en ruimte complexiteit. Deze B-Tree structuur scoort op alle punten (zie de tabellen hieronder): Θ(log(n)), wat inhoudt dat zodra de data 10x zo groot worden de tijd 2x zolang is. Ook de online resultaten bevestigen dat PostgreSQL nog altijd een zeer grote concurrent is van de newSQL databases.
Database | Type | 1.000.000 records vullen | Aantal records per seconde | Lezen en schrijven tegelijkertijd | API call: Users | API call: UserInfo | API call: AgeInfo | API call: Selectie |
---|---|---|---|---|---|---|---|---|
MongoDB | NoSQL Document | 00:05:36 | 2.976 | Ja | 00:00:13 | 00:00:02.5 | 00:00:02 | 00:00:04 |
MariaDB | (old) SQL | 02:17:56 | 120 | Ja | 00:00:10 | 00:00:10 - 00:00:13 | 00:00:01 | --:--:-- |
PostgreSQL | (old) SQL | 00:06:22 | 2.620 | Ja | 00:00:12 | 00:00:00.5 | 00:00:00.5 | 00:00:00.2 |
Cockroach | NewSQL | 01:11:05 | 234 | Ja | 00:00:11 | 00:00:01.5 | 00:00:01 | 00:00:03 |
Juist door het goed onderhouden en de over het algemeen beste prestaties van de database is gekozen voor het gebruik van PostgreSQL.
Bibliografie
Betts, R. (2018, november 15). NoSQL vs. NewSQL: Choosing the Right Tool. Opgehaald van VOLTDB: https://www.voltdb.com/blog/2015/04/09/nosql-vs-newsql-choosing-right-tool/
Mohr, Austin. (2018, november 16) Quantum Computing in Complexity Theory and Theory of Computation (PDF). p. 2. http://www.austinmohr.com/Work_files/complexity.pdf
Piekos, J. (2018, november 14). SQL VS. NOSQL VS. NEWSQL: FINDING THE RIGHT SOLUTION. Opgehaald van Dataconomy: https://dataconomy.com/2015/08/sql-vs-nosql-vs-newsql-finding-the-right-solution/
PostgreSQLi ja kahe NewSQL andmebaasisüsteemi omavaheline võrdlus. (2018, november 15). Opgehaald van Openthesis: http://www.openthesis.org/document/view/602386_0.pdf
Zicari, R. V. (2018, november 16). On RDBMS, NoSQL and NewSQL databases. Interview with John Ryan. Opgehaald van ODBMS Industry Watch: http://www.odbms.org/blog/2018/03/on-rdbms-nosql-and-newsql-databases-interview-with-john-ryan/
1 thought on “Welk database-type past het best?”
Comments are closed.