Bryan Morgan looks at three popular mobile database products that offer support for multiple operating platforms and programming languages.

Bryan Morgan is a veteran software developer and writer. As the founder of the Wireless Developer Network (http://www.wirelessdevnet.com/) and a writer for WirelessWeek.com and Wireless Internet magazine, he has reported on wireless technologies since 1999.

Database Options for the Mobile Application Developer

Introduction

Perhaps the one constant across all web and enterprise application development
projects is the use of a relational database management system (RDBMS)
to handle efficient storage and retrieval of table-based data. The RDBMS has
grown to the point where most popular systems (such as Oracle
9i, Microsoft
SQL Server, and IBM
DB/2) also include the ability to code application logic directly within
the database in the form of stored procedures and triggers. Advanced databases
such as Oracle 9i and the Sybase
Adaptive Server Enterprise even include functioning Java Virtual Machines
within the database to be used for the development of Java stored procedures
or servlets that operate on underlying data. These industrial-strength enterprise
database products are all accessible through the common Structured Query
Language (SQL) and are most commonly queried through a standardized
database API such as ODBC
or JDBC.

These technologies have grown in popularity to a point where it's
difficult to work on any IT project of moderate size without working with
a relational data store. Faced with rising requests from product managers and
users to "mobilize" existing applications, enterprise developers may
be shocked to learn that database access on mobile platforms can be deemed to be
rudimentary, at best. Platforms such as Palm OS and Windows CE support a native
filesystem for storing data in a tabular format; however, these filesystems are
flat in nature and cannot be queried via SQL. This leaves developers facing the
harsh reality of hand-coding a custom data storage and retrieval solution for
each mobile platform supported by their application. I should also mention that
the system database APIs for all mobile platforms are entirely different
(naturally), and you'll also be required to write your own
data-synchronization code to ensure that edits on the handheld make it back to
the enterprise database.