Database Options for the Mobile Application Developer
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.