NoSQL: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Database ad oggetti: aggiungo wlink
disambigua wikilink
 
(32 versioni intermedie di 23 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 giunzione ([[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 [[Proprietà ACIDE|ACID]]: atomicità, consistenzacoerenza, isolamento, 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 [[Apache Accumulo]], [[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|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 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 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:
Riga 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}}