Today's workforce and consumers have become increasingly mobile. Businesses crunched by the economy or squeezed by competition look to mobile computing to gain a competitive advantage. This report examines the top contenders in the mobile database market space, starting with SQL Server Compact, Oracle Database Lite and IBM DB2 Everyplace.
Today's workforce and consumers have become increasing mobile. Information at your fingertips is becoming more the norm than the exception. Businesses crunched by the economy or squeezed by competition look to mobile computing to gain competitive advantage, reduce waste, speed up processes, and increase customer service.
Several mobile database products compete in this market space for inclusion in business and consumer applications. This report examines the top contenders: Microsoft SQL Server Compact, IBM DB2 Everyplace, Sybase SQL Anywhere, Oracle Database Lite, and SQLite.
Editor's Note: For complete reviews of all the leading mobile development platforms, see the Internet.com Special Report "Field Guide to the Mobile Development Platform Landscape".
SQL Server Compact
The embedded database offering from Microsoft is SQL Server Compact (SQL CE). The current edition of this lightweight database engine is 3.5 SP2. With a footprint of less than 2MB of disk space and 5MB of memory, SQL CE is capable of running on any Microsoft Windows embedded, mobile, desktop, or server operating system.
Despite SQL CE having a different codebase from other editions of the popular RDBMS, it integrates with the same development, design, and management tools. Microsoft SQL Server Management Studio can be used to manage SQL CE implementations and Microsoft Visual Studio (including the latest release, 2010) can be used to embed SQL CE into applications.
SQL Server developers can interact with the database engine using familiar connection protocols (ODBC, OLE DB, ADO .NET) and a subset of the same T-SQL language used across the product line. Additionally, within Visual Studio, Language-Integrated Query (LINQ) is supported as a querying mechanism for SQL CE. Support for transactions, referential integrity, and indexing is included, however stored procedures and some data types such as XML and spatial are not supported.
Applications can take advantage of database storage up to 4G for their data needs while disconnected. When ready to synchronize with a host SQL Server, either Remote Data Access (RDA) or merge replication can be utilized. Horizontal (rows) and vertical (columns) filters can be applied to merge replication to limit the size of the data transfer. RDA can be used when administrator rights on the device are not available to set up publications for merge replication. Synchronization does require a Client Access License (CAL) to the host SQL Server.
Secure data transfer is accomplished with 128-bit data encryption. Authentication and authorization for RDA is handled by Internet Information Services (IIS). Encryption is via the Secure Sockets Layer (SSL) encryption service in IIS. The database file itself is secured using RSA 128-bit data file encryption and can be password protected.
Deployment options for SQL CE include ClickOnce, Microsoft Installer package (MSI), and XCopy. If administrator rights are an issue, the files can be directly copied onto the device. The MSI package allows for a standard installation of the database engine. ClickOnce can be used to deploy the database files along with the application.
By far the best feature of SQL CE is that it is completely free. There is no cost to download it, develop against it, or deploy it. Microsoft allows redistribution by simply signing a redistribution agreement online.
Oracle Database Lite
Oracle provides a mobile database offering consisting of Database Lite Client and middle tier, Oracle Database Lite Mobile Server. The current edition, 10g, has support for the following platforms: Windows (2003, XP, Vista), Windows Mobile (5, 6), Linux (Redhat), embedded Linux, and Symbian (7, 8, 9).
Mobile Server provides bi-directional data synchronization to an enterprise instance of an Oracle database. The user interface into Mobile Server is Mobile Manager, which allows for system management, performance tuning, application management, user management, and device management. Mobile Server is deployable on Windows, Linux, Sun SPARC, HP-UX and IBM AIX.
Automatic data synchronization takes place in the background utilizing synchronization rules. Synchronization support has been extended to include SQLite databases with version 10.3 of Database Lite. Also added with the 10.3 release is support for file synchronization. Customizable conflict detection and resolution is also provided with Mobile Server, which is scalable and highly available.
FIPS-140 compliance is achieved at the database level as well as during data transmission. Secure synchronization is achieved with SSL. 128-bit AES encryption is utilized for the database.
Developers get a jumpstart on application development against Database Lite by utilizing the supplied Mobile Database Workbench (MDW) wizards. MDW is a graphical user interface for designing replicated databases. In addition to this, the Mobile Development Kit (MDK) supplies developers with an API, code samples, and tutorials. Documentation, support, and access to community forums are provided through Oracle's website (www.oracle.com).
ODBC, JDBC, and ADO.NET are supported for programming against Database Lite. SQL-92 is supported, however stored procedures and triggers are not written in PL/SQL as they would be in other Oracle editions. Instead, Java, C++, and .Net stored procedures and triggers are supported.
The mobile database size limit is 4GB of relational data. It is capable of storing up to an additional 16TB of BLOB data, however.
Oracle provides a packaging and deployment utility called Packaging Wizard. It is responsible for packaging up all the components and deploying them to the Mobile Server. The Mobile Server then manages the deployment to the individual devices.
Oracle Database Lite is a mere $60 per user. The Mobile Server, on the other hand, is $23,000 per processor for the server on which it is deployed. This makes it the most expensive of the mobile database solutions reviewed here.
IBM DB2 Everyplace
IBM's offering in the mobile and embedded database space is DB2 Everyplace, also known as DB2e. This robust database has a footprint of a mere 350KB and runs on Windows (2000, 2003, XP, Vista, CE), Linux (Linux and Embedded Linux), Symbian, QNX, and Palm OS operating systems. Version 9.1 is the latest revision of this mobile RDBMS, which has been optimized for SAP.
There are two editions of DB2e. For cases where data synchronization to a central host is not necessary, the Database Edition provides for local data storage. DB2e Enterprise Edition provides for scenarios where the mobile device requires frequent updates or remote data capture and synchronization. This edition comes packaged with DB2 Everyplace Sync Server and DB2 Everyplace Sync Client to enable secure synchronization services.
DB2 Everyplace Sync Server is capable of secure, bi-directional synchronizing of DB2e instances with popular enterprise database servers and runs on Windows (32-bit), Linux (32-bit), Solaris (64-bit), and AIX (64-bit). A servlet is provided for simple, low-volume scenarios. Scalability and high-availability can be achieved with the Sync Server farm configurations on Java application servers (such as Websphere Application Server). Sync Server supports conflict detection and resolution if the database engine supports JDBC (such as Oracle, SQL Server, and DB2). A DB2 mirror database is utilize for this purpose.
Sync administrators can use the graphical user interface, Mobile Devices Administration Center, to setup and maintain synchronization subscriptions, users, and devices. Alternately, the XML Scripting Tool provides a means to automate these same synchronization related tasks.
Applications can interact with the mobile database using DB2 Call Level Interface (CLI), ODBC, JDBC, or ADO.Net. DB2 supports a subset of standard SQL on the mobile database. Common data types are accounted for including support for BLOBs. DB2e has transaction support, failure recovery, and allows for indexing for performance tuning. Stored procedures are only supported as remote calls via the Remote Query and Stored Procedure Adapter.
Developers can take advantage of the SDK including tutorials and code samples. Documentation and support as well as links to community forums are available from the IBM website.
DB2e does not advertise a specific database size limit, but rather details limits on table size, row size, and various other characteristics. See "DB2 Everyplace database and SQL limits" in the documentation for a list of DB2e limits.
Licensing costs are per user and differ in cost by edition. A user license for DB2e Database Edition cost $72.50. Enterprise Edition costs $166. This includes the license, software subscription, and 12 months of support.