A mobile database is either a stationary database that can be connected to by a mobile computing device (e.g., smartphones and PDAs) over a mobile network, or a database which is actually stored by the mobile device. This could be a list of contacts, price information, distance travelled, or any other information.
Many applications require the ability to download information from an information repository and operate on this information even when out of range or disconnected. An example of this is your contacts and calendar on the phone. In this scenario, a user would require access to update information from files in the home directories on a server or customer records from a database. This type of access and work load generated by such users is different from the traditional workloads seen in client–server systems of today.
Mobile databases are not used solely for the revision of company contacts and calendars, but used in a number of industries.
- Mobile users must be able to work without a network connection due to poor or even non-existent connections. A cache could be maintained to hold recently accessed data and transactions so that they are not lost due to connection failure. Users might not require access to truly live data, only recently modified data, and uploading of changing might be deferred until reconnected.
- Bandwidth must be conserved (a common requirement on wireless networks that charge per megabyte or data transferred).
- Mobile computing devices tend to have slower CPUs and limited battery life.
- Users with multiple devices (e.g. smartphone and tablet) need to synchronize their devices to a centralized data store. This may require application-specific automation features.
This is in database theory known as "replication", and good mobile database system should provide tools for automatic replication that takes into account that others may have modified the same data as you while you were away, and not just the last update is kept, but also supports "merge" of variants.
- Users may change location geographically and on the network. Usually dealing with this is left to the operating system, which is responsible for maintaining the wireless network connection.
Commercially available mobile databases include those shown on this comparison chart.
|SQL Anywhere||Sybase iAnywhere||Relational||Embedded/portable database, can synchronize with stationary database|
|DB2 Everyplace||IBM||Relational||Portable, can synchronize with stationary database|
|SQL Server Compact||Microsoft||Relational||Small-footprint embedded/portable database for Microsoft Windows mobile devices and desktops, supports synchronization with Microsoft SQL Server|
|SQL Server Express||Microsoft||Relational||Embedded database, free download|
|Oracle Database Lite||Oracle Corporation||Portable, can synchronize with stationary database|
|SQLite||D. Richard Hipp||C programming library||Public domain|
|SQLBase||Gupta Technologies LLC of Redwood Shores, California|
|Sparksee 5 mobile||Sparsity Technologies||Graph database||Small-footprint embedded/portable database for Android, iOS and BB10. It allows traversals of nodes, minimum distance computations, community search, etc.|
|Couchbase Lite||Couchbase,_Inc.||Document-oriented_database||A lightweight full-featured embedded JSON document store. Supports iOS, Android, and REST SDKs. Is sync-ready using Couchbase Sync Gateway with Sync and conflict resolution built in.|
|iBoxDB||iBoxDB||Document-oriented_database||Embeddable transactional table style document database for Android Windows Phone. Supports Mono Xamarin and Unity3D mobile development platforms.|
|Realm||Realm Inc||Object Database||A lightweight full-featured embedded object store. Supports iOS and Android.|
|CryptonorDB||Dotissi SRL||NoSql database||Client libraries are available for: C# - .NET, Windows Store, Windows Phone, Xamarin.iOS, Xamarin.Android, Unity3D, Mono and Java - Android.|