ZaZ schreef op vrijdag 2 juni 2017 @ 09:59:
[...]
Ik heb me altijd verzet tegen alle gasten die de hele tijd maar riepen dat alles in NoSQL gestopt zou moeten worden. De applicaties waar ik mee te maken heb zijn 99% apps met relationele data en door naar NoSQL te switchen verschuif je het probleem wat ze denken op te lossen en dan ook nog met minder constraint mogelijkheden.
Normaal word je soort van geforceerd je data weer op te schonen d.m.v database-updatescripts met modelwijzigingen en blijft de code ook lekker schoon. Met NoSQL heb je in mum van tijd je code allemaal checks op properties die soms wel en soms niet aanwezig zijn met vervolgens de logische afhandeling daarvan die als je niet uitkijkt ook nog eens af kan drijven. Voor je het weet is het een grote teringzooi omdat er ook niets wordt afgedwongen.
Tuurlijk zou iemand kunnen beweren dat het met goede programmeurs en doordachte code dat ook netjes zou moeten kunnen, maar wat ik heb gezien in de praktijk gaat die vlieger gewoon niet op.
NoSQL heeft natuurlijk wel een doel, maar de meeste developers krijgen daar zelden iets mee te maken.
Vaak is het argument dat het veel sneller is en als je dan kijkt naar de data zie je dat het gewoon relationele data is en het een database betreft met slechts enkele miljoenen records.
Als het dan niet performt kloppen er andere dingen niet en als je dat al niet fatsoenlijk aan de praat krijgt kan je beter maar niet aan NoSQL beginnen. Dan weet je namelijk zeker dat je daar een grote bende van gaat maken.
Separation of concerns.
Het zou allemaal ook in je applicatie kunnen, alleen ga je dan uiteindelijk min of meer toch weer zelf een relationele database bouwen rondom je documentstore. Een centraal dingetje wat je constraints doet .. want verspreid is niks .. een centraal dingetje wat ontbrekende functionaliteit oplost .. en dat het liefste in je interpreted taaltje.
Mjah het verneukeradingste is dat je in het begin nog wel eens kan denken dat je niet echt queries gaat doen op relaties. En data erin stoppen is zo eenvoudig !
Maar uiteindelijk blijken er dan toch altijd weer relaties te zijn .. anders had je het wel in fscking text bestandjes in een filesystem gedumpt, who needs a DB ?
Vaak is een jointje (weer dat deuntje

) op je user table wel handig .. en daar gaan we al ..
Al zie ik als ik stackoverflow mag geloven dat ze nu ook iets wat lijkt op joins ingebouwd.
Achja denk dat ze uiteindelijk toch wel weer een eind naar relational toe moeten groeien omdat men dus basis functionaliteit mist.
Echter ga ik dan liever van de andere kant uit, relational DB met een json columntype en indexen, wat er nu al is bij bijvb. Postgres (Maria is er geloof ik mee bezig). Kun je eventueel een deel van de meuk in een json type kwijt en belangrijke (meta)data voor performance in gewone kolommen.
(aardige is ook dat er daarmee een berg functies zijn gekomen om je resultaten naar json te laten ombouwen en vise-versa, waarmee je in combinatie met CTE's de handel op het laatst gewoon door je DB in json kunt laten uitpoepen en in je applicatie er weinig meer mee hoeft te doen dan doorsturen).
En uiteindelijk wordt sharding-like/cluster functionaliteit ook wel beter en meer gemeen goed.
Belangrijkste daarbij is dat ik die lui vertrouw dat ze geen gekke dingen doen met mijn data en eerst nadenken en dan eventueel doen in tegenstelling tot sommige noSQL cowboys.
Kortom het belangrijkste achievment van die noSQL/document store dingen is ... dat ze er bij RDBMS'en voor hebben gezorgd dat er een json column type met alle functionaliteit er omheen is gekomen, waarvoor dank

.
[
Voor 17% gewijzigd door
gekkie op 02-06-2017 10:22
]