NoSQL: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ho aggiunto il nome di un database alla lista di quelli già presenti
disambigua wikilink
 
(44 versioni intermedie di 34 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 daidalle [[databaseBase di dati|basi di dati]] tradizionali ([[RDBMS]]). L'espressione ''NoSQL''fa fainfatti riferimento al linguaggio [[SQL]], che è il più comune linguaggio di interrogazione dei dati nei database relazionali, qui preso a simbolo dell'intero paradigma relazionale.
{{Avvisounicode}}
'''NoSQL''' è un movimento che promuove sistemi [[software]] dove la persistenza dei dati è caratterizzata dal fatto di non utilizzare il [[modello relazionale]], di solito usato dai [[database]] 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 (schemaless''schemeless''), evitano spesso le operazioni di unionegiunzione ([[Join (SQL)|join]]) e puntano a [[Scalabilità|scalare]] in modo orizzontale. Gli accademici e gli articoli si riferiscono a queste basi di dati come ''memorizzazione strutturata'' (''structured storage'').
 
== 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 di[[Proprietà ACIDE|ACID]]: Atomicitàatomicità, Coerenzacoerenza, Isolamento e Durabilitàisolamento, [[ACID]]durabilità. Il motivo per il quale tali caratteristiche non venivano fornite è il cosiddetto [[Teoremateorema 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]].
 
Implementazioni degne di nota sono [[BigTable]] di [[Google]] e [[Dynamo (database)|Dynamo]] di [[Amazon.com]], e le varianti open source come [[HBase]] e [[Cassandra (database)|Cassandra]].
 
== Classificazione ==
Le implementazioni di NoSQL possono essere categorizzate dal tipo di modello deidi dati adottato. Segue una descrizione delle categorie più diffuse.
 
=== DatabaseBasi di dati orientate al documento ===
{{vedi anche|baseBase 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 30 ⟶ 29:
 
* [[Colayer]]
* [[Elasticsearch]]
* [[CouchDB]]
* [[CouchBase]]
Riga 44 ⟶ 43:
** [[BaseX]]
 
=== DatabaseBase di dati a grafo ===
{{vedi anche|baseBase 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, aialle [[Base di dati orientata al documento|databasebasi orientatidi 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.
 
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 61:
* [[OrientDB]]
* [[DEX/Sparksee]]
* Unisys DMS (Data Management System) creato dalla Burroughs Corporation nel 1972
* IBM DL1 (Data Language One). Il grafo ha una struttura gerarchica
 
=== Chiave/valore archiviato su disco ===
* [[DensoDB]]
* [[Tuple space]]
* [[Memcachedb]]
Riga 77 ⟶ 80:
* [[Redis]]
 
=== Valore/chiave Eventually‐consistente''eventually''‐coerente ===
* [[Dynamo (storage system)|Dynamo]]
* [[Cassandra (database)|Cassandra]]
* [[Project Voldemort]]
 
=== Chiave-valore che conserva mediante l'implementazione di [[Algoritmo di Paxos|Paxos]] ===
* [[Keyspace (data store)|Keyspace]]
 
Riga 95 ⟶ 98:
* [[TigerLogic D3]]
 
=== DatabaseBasi addi dati a oggetti ===
{{vedi anche|baseBase di dati ada oggetti}}
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 ada oggetti sono situate in un mercato di nicchia rispetto al modello relazionale ([[Relational database management system|RDBMS]]).
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 ada oggetti detengono il record per la più grande base di dati al mondo (essendo il primo a contenere oltre 1000 [[Terabyte|TB]] allo [[Stanford Linear Accelerator Center]]) e il più alto tasso di assorbimento mai registrato per un database commerciale di oltre 1 TB per un'ora.
 
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:
 
* [[Db4o]]
* [[PostgreSQL]]
* [[Gemstone (database)|GemStone/S]]
* [[InterSystems Caché]]
Riga 135 ⟶ 139:
 
== Voci correlate ==
 
*[[Sistema di gestione di basi di dati orientato alle colonne]]
 
== Altri progetti ==
{{interprogetto}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* [http://www.linkedin.com/groups?gid=2085042 Gruppo utenti NoSQL] su [[LinkedIn]]
* [httphttps://groupswww.googlelinkedin.com/group/nosql-discussiongroups?gid=2085042 DiscussioneGruppo nosqlutenti NoSQL] su [[Google GruppiLinkedIn]]
* [https://groups.google.com/group/nosql-discussion Discussione nosql] su [[Google Gruppi]]
 
{{Database management system}}
{{Portale|informatica}}