On 24/07/2018 11:19, Alessandro Pellizzari wrote:
On 23/07/2018 18:50, Davide Prina wrote:
non tanto... questo è per risolvere un problema (come dicevo
nell'altra mail i database nosql sono abbastanza recenti e ancora in
sviluppo, in molti ti mancano ancora funzionalità che potrebbe
ritenere di base o perlomeno tra 20-30 anni verranno ritenute di base).
Giusto per discutere e senza alcuna intenzione polemica, ma i DB NoSQL
sono nati prima degli SQL. :)
un file di testo è un database :-)
comunque come ho scritto in una risposta: <<mentre i database nosql sono
relativamente recenti (per l'uso che se ne fa ora, impensabile solo
15-20 anni fa) e quindi molti sono ancora in fase di "sviluppo">>
Ad esempio oracle nosql non è altro che Berkeley DB, database presente
da circa 30 anni (certamente le prime versioni non sono confrontabili
con le attuali).
Il mondo relazionale e nosql non è molto confrontabile perché vivono
in due mondi diversi e incompatibili tra loro.
Secondo me non ha più molto senso parlare di NoSQL.
Elasticsearch, MongoDB, Cassandra, Hadoop, Redis e Neo4J sono tutti
NoSQL, ma sono talmente diversi tra loro che non ha senso raggrupparli
sotto un'unica "bandiera", e tantomeno confrontarli, tra di loro o con
un DB SQL.
questo per quanto detto nelle risposte precedenti. Con i database nosql
(quelli attuali) si devono affrontare problematiche "nuove" rispetto al
passato e che non sono affrontate, né affrontabili (almeno con la
tecnologia attuale), dai database relazionali.
Perché ce ne sono così tanti e così diversi?
1. perché ognuno di questi garantisce alcune cose e non altre (ad
esempio apache cassandra non ti garantisce la consistenza del dato per
garantirti la disponibilità dello stesso o la bassa latenza... questo è
un ottimo compromesso per un sito di notizie o di vendita on-line: non
puoi far aspettare all'infinito che una pagina si carichi, al più gli
visualizzi un dato non aggiornato... poi puoi cercare di rimediare una
volta che il dato è aggiornato, ad esempio inviando una lettera di scuse
al cliente che ha fatto l'ordine indicando che il prodotto è esaurito e
offrendo uno sconto per il disagio procurato, ma intanto sei riuscito a
servire svariati milioni di ordini in pochi secondi).
Per maggiori dettagli vedi i teoremi che avevo indicato.
2. perché ognuno usa una struttura di dati o un sistema di
"interrogazione" diverso, il tutto ottimizzato per la soluzione di un
problema con un determinato risultato in mente.
Azzarderei che ormai i DB SQL sono una minoranza.
questo non è vero, non sono confrontabili. Non puoi guardare il numero
di prodotti presenti, poiché le problematiche che affrontano i db nosql
sono più ampie e più complesse e quindi affrontando i vari problemi da
diversi "punti di vista" con diverse soluzioni hai più soluzioni.
Però ci sono problemi che puoi risolvere "correttamente" solo con un
database relazionale e altri solo con un database nosql.
Ciao
Davide
--
Dizionari: http://linguistico.sourceforge.net/wiki
I didn't use Microsoft machines when I was in my operational phase,
because I couldn't trust them.
Not because I knew that there was a particular back door or anything
like that, but because I couldn't be sure.
Edward Snowden