NoSQL: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
disambigua wikilink |
|||
(20 versioni intermedie di 18 utenti non mostrate) | |||
Riga 1:
'''NoSQL''' è un movimento che promuove sistemi [[software]] dove la [[persistenza (informatica)|persistenza]] dei dati è in generale caratterizzata dal fatto di non utilizzare il [[modello relazionale]], di solito usato dalle [[Base di dati|basi di dati]] tradizionali ([[RDBMS]]). L'espressione
▲'''NoSQL''' è un movimento che promuove sistemi [[software]] dove la [[persistenza (informatica)|persistenza]] dei dati è in generale caratterizzata dal fatto di non utilizzare il [[modello relazionale]], di solito usato dalle [[Base di dati|basi di dati]] tradizionali ([[RDBMS]]). L'espressione "NoSQL" fa riferimento al linguaggio [[SQL]], che è il più comune linguaggio di interrogazione dei dati nei database relazionali, qui preso a simbolo dell'intero paradigma relazionale.
Questi archivi di dati il più delle volte non richiedono uno schema fisso (''
== Etimologia del termine ==
Il termine NoSQL fu usato per la prima volta nel [[1998]] per una base di dati relazionale [[open source]] che non usava un'interfaccia SQL.
L'autore [[Carlo Strozzi (informatico)|Carlo Strozzi]], dichiarò che "come movimento, NoSQL diparte in modo radicale dal modello relazionale, e quindi andrebbe chiamato in modo più appropriato ''NoREL'', o qualcosa di simile"<ref>[http://www.strozzi.it/cgi-bin/CSA/tw7/I/en_US/NoSQL/Home%20Page Carlo Strozzi, NoSQL]</ref>.
All'opposto di quanto si potrebbe pensare, il movimento NOSQL non è contrario all'utilizzo di database relazionali. Il termine NOSQL infatti è acronimo di ''Not Only SQL'', a significare che esistono diversi casi d'uso per i quali il modello relazionale rappresenta una forzatura, ma tanti altri per i quali tale modello è ancora la soluzione migliore.
Il termine fu riutilizzato nel 2009 da un dipendente di [[Rackspace]], Eric Evans, quando [[Johan Oskarsson]] di [[Last.fm]] volle organizzare un evento per discutere di basi di dati distribuite open source<ref>[http://blog.knuthaugen.no/2010/03/a-brief-history-of-nosql.html A Brief History of NoSQL]</ref>.
Il nome era un tentativo per etichettare il crescente numero di data base non relazionali e distribuiti che spesso non forniscono le classiche caratteristiche [[Proprietà ACIDE|ACID]]: atomicità, coerenza, isolamento, durabilità. Il motivo per il quale tali caratteristiche non venivano fornite è il cosiddetto [[teorema CAP]].
== Implementazioni ==
Implementazioni degne di nota sono [[Cloudant]] di [[IBM]], [[BigTable]] di [[Google]] e [[Dynamo (database)|Dynamo]] di [[Amazon.com]], e le varianti open source come [[Apache Accumulo]], [[HBase]] e [[Cassandra (database)|Cassandra]].
Riga 20 ⟶ 18:
Le implementazioni di NoSQL possono essere categorizzate dal tipo di modello di dati adottato. Segue una descrizione delle categorie più diffuse.
===
{{vedi anche|Base di dati orientata al documento}}
[[File:Couchdb_screenshot.png|thumb|[[CouchDB]]]]
[[File:Lotusnotes.png|thumb|[[Lotus Notes]]]]
Una Base di dati orientata al documento è un programma per applicazioni orientate al documento. Questi sistemi potrebbero essere implementati come strato sopra un database relazionale o a oggetti.
Riga 29:
* [[Colayer]]
* [[
* [[CouchDB]]
* [[CouchBase]]
Riga 45:
=== Base di dati a grafo ===
{{vedi anche|Base di dati a grafo}}
[[File:GraphDatabase_PropertyGraph.png|thumb|Illustrazione di una [[base di dati a grafo]]]]
Una base di dati a grafo usa nodi e archi per rappresentare e archiviare l'informazione.
La rappresentazione dei dati mediante [[grafo|grafi]] offre un'alternativa al [[modello relazionale]] che fa uso di tabelle, alle [[Base di dati orientata al documento|basi di dati orientate al documento]] (che usano documenti), o altri, come i sistemi ad [[archivio strutturato|archivi strutturati]] (structured storage) basati su colonne o su cesti non interpretati di dati.
Riga 50 ⟶ 51:
I database a grafo sono spesso più veloci di quelli relazionali nell'associazione di set di dati, e mappano in maniera più diretta le strutture di applicazioni orientate agli oggetti.
Scalano più facilmente a grandi quantità di dati e non richiedono le tipiche e onerose operazioni di unione ([[Join (SQL)|join]]).
Dipendono meno da un rigido schema [[Modello E-R|entità-relazione]] e sono molto più adeguati per gestire dati mutevoli con schemi evolutivi.
Al contrario, i database relazionali sono tipicamente più veloci nell'eseguire le stesse operazioni su un grande numero di dati.
Riga 84 ⟶ 85:
* [[Project Voldemort]]
=== Chiave-valore che conserva mediante l'implementazione
* [[Keyspace (data store)|Keyspace]]
Riga 97 ⟶ 98:
* [[TigerLogic D3]]
=== Basi di dati
{{vedi anche|Base di dati
Un modello di banca dati ad oggetti è un modello in cui l'informazione è rappresentata in forma di oggetti come nei [[Programmazione orientata agli oggetti|linguaggi di programmazione ad oggetti]].
Le banche dati
Vennero prese in considerazione sin dagli anni ottanta e novanta, ma ebbero uno scarso impatto commerciale e vennero usate solo in campi specifici.
I campi d'applicazione sono: ingegneria, [[banche dati spaziali]], telecomunicazioni, e aree scientifiche come la [[Fisica delle particelle|fisica delle alte energie]] e la [[biologia molecolare]].
I database
Un altro gruppo di database a oggetti si focalizza sull'uso in sistemi [[Sistema real-time|real time]].
Alcuni esempi di basi dati di questo tipo sono:
Riga 138 ⟶ 139:
== Voci correlate ==
*[[Sistema di gestione di basi di dati orientato alle colonne]]
== Altri progetti ==
{{interprogetto}}
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* [
* [https://groups.google.com/group/nosql-discussion Discussione nosql] su [[Google Gruppi]]
{{Database management system}}
{{Portale|informatica}}
|