Archivi tag: BerkeleyDB

Lista database popolari nello sviluppo delle app Mobile

fonte: five-popular-databases-for-mobile- 2014 – 2017 (tradotto e migliorato by Vargas Carmen)

http://www.lillysfreshpasta.com/4-questions-to-ask-when-you-buy-fresh-pasta/
http://www.lillysfreshpasta.com/4-questions-to-ask-when-you-buy-fresh-pasta/ appissue

pouchdb

Database Tipo di dati immagazzinamento Licenza Piattaforme supportate
BerkeleyDB
(Oracle)
relazionale, oggetti, coppie chiave-valore, documenti AGPL 3.0 Android, iOS (?)
Couchbase Lite documenti Apache 2.0 Android, iOS
LevelDB coppie chiave-valore New BSD Android, iOS (2017 OS X, Linux, Windows Phone, Illumos
SQLite relazionale Dominio Pubblico Android, iOS, Windows Phone, Blackberry
UnQLite coppie chiave-valore, documenti BSD 2-Clause Android, iOS, Windows Phone
Siaqodb oggetti, documenti (database che corre su .NET…) Siaqodb MonoMac, Universal Windows Platform (UWP), Xamarin.iOS, Xamarin.Android, Xamarin.Mac and Unity3D.
pouchdb (javascript) Pouchdb

BerkeleyDB

Berkeley DB è una famiglia di librerie open-source che consentono di gestire i dati sia in modo relazionale tradizionale (usando SQL) o come coppie chiave-valore (in cui entrambe le chiavi e i valori sono array di byte) o come oggetti Java o come documenti XML . Indipendentemente delle API che si sceglie, Berkeley DB promette l’indicizzazione, memorizzazione nella cache, transazioni, scrittura-singola / accesso de multi-lettura, ricerca full-text (per l’interfaccia SQL),  ripristino automatico dei guasti, replica, compressione e crittografia. Supporta inoltre sia in memoria e su disco i database.

Un’altra caratteristica interessante di Berkeley DB è che l’API SQL fornisce piena compatibilità con quella di SQLite. Di conseguenza, è possibile creare delle applicazioni SQLite utilizzano Berkeley DB come il motore di storage (immagazzinamento) sottostante, senza doverlo riscrivere. Tutto quello che se deve fare è creare un collegamento  (link) a una versione adatta della libreria Berkeley DB. Questa combinazione di SQLite e Berkeley DB  è stata segnalato como una che dona un eccellente rendimento in caso di altamente di app e dati altamenti concorrenti, e di una intensa scrittura di dati sul datbase.

Berkeley DB prevede API attacchi (BINDING)  per svariati linguaggi di programmazione, tra cui C ++ e Java, ed è stato compilato, eseguito e testato su diversi sistemi operativi, tra cui Android e iOS. Tuttavia, potrebbe essere messo al di fuori dalla sua licenza AGPL, nel caso in cui si desidera utilizzarlo nella vostra applicazione, ma non si desidera di distribuire il proprio codice sorgente, in cambio.

Si noti inoltre che, soprattutto a causa del suo sforzo per fornire funzionalità che ci si aspetta nei database client / server tradizionali, Berkeley DB è considerata come una soluzione relativamente pesante. Quindi, a meno che non si voglia assolutamente una caratteristica che viene offerto solo da Berkeley DB, si possono trovare e sgliere nel mercato altre alternative più leggere.

Aggiornamento: Anche se Berkeley DB supporta tecnicamente iOS, non può essere utilizzato in App “Apps Store” a causa di incompatibilità con licenza termini e condizioni di App Store.

Couchbase Lite

Couchbase Lite è un databaseorientato ai documenti (document-oriented) dove i dati vengono memorizzati come documenti JSON. Ciascun documento può avere uno o più allegati, che sono essenzialmente dati binari memorizzati e non interpretati  e caricati separatamente dal documento stesso. Couchbase Lite supporta indici persistenti (chiamati Viste – visualizzazioni), e usa Mappa-ridotta  per gestire e interrogare i dati.

Couchbase Lite, insieme a Couchbase Sync Gateway e Couchbase Server, sono i tre componenti della soluzione di database NoSQL JSON soluzione per mobile database offerto da Couchbase chiamato Couchbase Mobile. Una delle caratteristiche chiave di Couchbase mobile è built-in di sincronizzazione (attraverso Couchbase Sync Gateway) tra le banche dati locali (Couchbase Lite) e database nel cloud (Couchbase Server), che allevia lo sviluppatore dall’onere di scrivere il proprio codice di sincronizzazione. Al fine di supportare questa funzionalità, Couchbase Lite è dotato di un meccanismo di risoluzione dei conflitti che è molto simile a quello usato da Git.

Couchbase Lite fornisce un’API nativa sia per Android che per iOS, così come dei plug-in per gli strumenti, piu  ampiamente utilizzati (multipiattaforma), nello  sviluppo mobile: PhoneGap (Cordova)  e Xamarin.

aggiornamento (2017): couchbase Mobile è una piattaforma completa per lo sviluppo nel mondo delle app sia mobile, che web e anche per la Internet delle cose… vedi,  couchbase for mobile developer. e anche couchbase Mobile collegamento,

LevelDB

LevelDB è una libreria open-source (scritto da Google) che implementa un archivio di chiave-valore, in cui sia le chiavi che i valori sono array di byte, dove i dati vengono memorizzati in ordine di chiave (sulla base di alcuni, probabilmente personalizzati, funzione di confronto). LevelDB supporta aggiornamenti batch atomici, permette l’ iterazione in avanti e indietro soprai dati contenuti, istantanee (cioè consistenti viste, di sola lettura, dell’intero database del negozio), caching, l’integrità dei dati (utilizzando checksum), e la compressione dei dati automatica (utilizzando la libreria di compressione Snappy ). Un importante limitazione imposta dalla libreria è quella di che in qualsiasi momento, che massimo un processo puo interaggire con un database specifico in un determinato momento uno solo).

“LevelDB ha buone prestazioni in una vasta gamma di carichi di lavoro (lavori specifici)” per quello che dicono i suoi autori, e per i risultati di un punto di riferimento (benchmarking) che si sono messi insieme per dimostrare la loro richiesta attraverso il LevelDB with SQLite and Kyoto Cabinet (un’altra implementazione memoria dei coppie di chiave-valore).

LevelDB è scritto in C ++. sviluppatori iOS possono utilizzare direttamente nelle loro applicazioni o attraverso uno dei numerosi involucri Objective-C che sono disponibili per esso. Gli sviluppatori Android possono utilizzare LevelDB tramite JNI e NDK.

SQLite

SQLite è una libreria open-source C per la gestione dei database relazionali che possono essere memorizzati sia su disco che in memoria. Supporta la tipizzazione dinamica (dei tipi sono assegnati a dei valori, piuttosto che a delle colonne), le transazioni, la ricerca full-text, l’accesso sscrittura singola / multiplelettura, svariata ed efficienti gamma di query (filtri)- (utile per la memorizzazione di dati geografici), e la caching condivisa (attraverso connessioni aperte,  allo stesso database, fatte da un unico filo (thread)).

SQLite immagazzina ogni database come un singolo file su disco,  in un formato multipiattaforma. Ciò implica che è possibile creare un database SQLite su una macchina e poi utilizzarlo su un’altra macchina con un’architettura completamente diversa semplicemente copiando il file corrispondente.
Gli autori di SQLite credono che sia “il database SQL più diffuso”. Attacchi (bind) per SQLite sono disponibili nella maggior parte dei linguaggi di programmazione tradizionali. SQLite è anche incluso in entrambi i sistemi operativi sia iPhone che Android.

UnQLite

Ce un’infinità di persone che crede erroneamente che UnQLite sia la controparte NoSQL di SQLite, anche se i due prodotti sono completamente indipendenti. UnQLite è un database open-source che espone sia un ccoppie di chiave-valore che un’interfaccia di immagazinamento tipo documento. Supporta sia in memoria che su disco le databases, anche le transazioni, più lettori concorrenti, e cursori per l’attraversamento lineare. Come SQLite, UnQLite utilizza un formato di file (multi-piattaforma) cross-platform, e memorizza ogni database in un singolo file su disco.

Non importa quale interfaccia di immagazzinamento si utilizza, il motore di archiviazione di UnQLite funziona con coppie di chiave-valore. Una caratteristica distintiva di UnQLite è che si può cambiare in fase di esecuzione il motore di archiviazione che viene utilizzato. Al momento, UnQLite è dotato di due motori di storage built-in, uno per il disco e uno per la  database in-memory.

UnQLite è scritto in C, e può quindi essere utilizzato sia IOS che delle applicazioni Android (in quest’ultimo, attraverso JNI).

aggiornamento 2017 – altre opinioni:

Implementazioni Open source delle database orientate ai documenti: (fonte wiki / modificato)

  • Apache Jackrabbit – Java (Apache License)
  • BaseX – xml, base di dati XML (Licenze BSD)
  • Apache CouchDB  (Apache License)
  • MongoDB – Database orientato al documento, (GNU AGPL v3.0)
  • OrientDB – Database orientato al documento, ma con una gestione ottimizzata delle relazioni fra documenti come avviene in un database a grafo. Open source con licenza commerciale friendly (Apache License)
  • RavenDB – Transazionale .NET basato su database a documento RESTful (commercial o GNU AGPL v3.0)
  • Redis – Uno store con coppie chiave-valore con supporto per liste ed insiemi (BSD License)
  • Riak – Decentralizzato, tolleranza all’errore, datastore di documenti scalabile orizzontalmente (Apache License)
  • ThruDB ( Licenza BSD)
  • Persevere JSON è un database JSON e un JavaScript Application Server. Fornisce un’interfaccia RESTful JSON per l’acceso alla creazione, lettura, aggiornamento e cancellazione dei dati. Supporta anche le interrogazioni JSONQuery/JSONPath.
  • DBSlayer old è un leggero database abstraction layer (su MySQL) che può parlare ai client via JSON su HTTP usato dal New York Times.