Disclaimer: Questa è una domanda ampia, quindi potrebbe essere spostata su un'altra fonte (se gli amministratori lo trovano appropriato).I database relazionali potrebbero scalare anche (o meglio) delle loro controparti NoSQL se abbandoniamo le relazioni?
Tutti i ragazzi fantastici sembrano far cadere database relazionali a favore delle loro controparti NoSQL. Ognuno avrà le sue ragioni, dai problemi di ridimensionamento al semplice essere al margine della tecnologia. E, non sono qui per mettere in discussione le loro motivazioni.
Tuttavia, ciò che mi interessa è se le transizioni NoSQL abbiano mai convalidato i guadagni in termini di prestazioni (manutenzione) rispetto a un RDBMS tradizionale quando le relazioni sono state eliminate. Perché dovremmo utilizzare un RDBMS quando il motivo principale che esiste viene eliminato? Alcuni motivi vengono in mente
- 30+ anni di ricerca accademica e di lavoro nello sviluppo di questi sistemi
- Un linguaggio ben noto in Structured Query Language (SQL).
- stabile e maturo supporto ORM attraverso tecnologie (Hibernate, ActiveRecord)
Chiaramente, nel mondo moderno, dove scala orizzontale è importante, v'è la necessità di assicurarsi che i frammenti siano fault tolerant, aggiornato nel tempo intervalli richiesti dall'app, ecc. Tuttavia, tali esigenze non devono necessariamente essere responsabilità di un sistema che memorizza i dati (esempio: ZooKeeper).
Inoltre, riconosco che la ricerca dovrebbe essere dedicata a NoSQL e che il tempo trascorso in questa arena porterà chiaramente a tecnologie Internet migliori. Tuttavia, un confronto di ordinamenti tra NoSQL e offerte RDBMS tradizionali (meno relazioni) sarebbe utile per prendere decisioni di business.
UPDATE 1: Quando mi riferisco ai database NoSQL, sto parlando di archivi di dati che non possono richiedere schemi di tabelle fisse e di solito evitare operazioni di join. Quindi, l'enfasi nella domanda sulla caduta delle relazioni in un tradizionale RDBMS SQL
Il motivo principale per cui utilizzo ancora un RDBMS è piuttosto semplice, in realtà: backup e ripristini! Nessun database NoSQL arriva persino vicino a PostgreSQL o Oracle per la solidità. Inoltre, molte persone sono molto cattive nella comprensione del modello relazionale (definisce una _relazione tra le colonne di una riga_, non le relazioni tra le tabelle) e il modello normale, il che significa che gli RDBMS hanno una scarsa pressione sul fronte delle prestazioni - ma è il colpa degli sviluppatori, non gli RDBMS. Oggi non vedo alcun motivo per utilizzare NoSQL, tranne per le ricerche basate su testo/albero che sono più efficienti con quelle. – fge