1、Database Management Systems For Mobile Devices,Robert L. Foster Jr. November 18, 2008,Light Weight DBMS?,Definition Purpose Examples Tradeoffs,Formal Definition,There isnt one. Major DBMSs can run on most operating systems providing full functionality: MySQl Oracle etc. What about embedded systems?
2、Why do we need one?,DBMS For Mobile Devices,DBMSs for mobile device should be dedicated to optimizing at least one of the following, preferably both: power optimization memory management commonality: small footprints,Power Optimization,Mobile devices such as laptops, cell phones, PDAs, and radios ha
3、ve a limited power supply. How can we optimize our DBMS to use as few resources as possible while providing the necessary functionality? What is the necessary functionality for a mobile device?,Power Optimization Continued.,Query Add Delete Atomicity?,Memory Management,How much memory is available o
4、n the device at any given time? How much of the devices internal memory should be dedicated to the DB? How frequently can disk accesses be made before latency issues arise?,Examples,There are numerous “light weight” DBMSs dedicated to addressing these specific issues. How do we choose which system i
5、s the best for a given device?,Examples,Whats good for the goose is not necessarily whats good for the gander. Mobile phones have increasingly larger amounts of memory, and faster internet connections. Multi-Touch technology and GPS capabilities are a drain on batteries, and memory.,Metrics,What sho
6、uld we consider when choosing a light weight DBMS for a device? Operating System Acidity Contents (Blobs, Clobs, etc.) Max Sizes: Database Tables Row Size Columns Per Row Views (caching),Metrics Continued. Capabilities?,Union Intersect Inner Joins Outer Joins Merge Language? Cost,Options,SQLite Smal
7、lSQL Pyrrho DBMS ScimoreDB HSQLDB Embedded MySQL,HSQLDB,Hyperthreaded Structured Query Language Written in Java Offers JDBC Driver 100-600k Cross Platform OpenOffice & Mathematica,ScimoreDB Embedded,Distributed Query Language (DQL) Text based query language Windows Only C+ ACID Independent process o
8、r part of your application Free 4MB (A relatively small footprint in comparison),SmallSQL,Java JDBC Driver 200k No Installation Required Provides no network interface or user management.so whats it good for?,SQLite,ACID C Cross Platform 500K Uses a Single Database File FREE!,SQLite Continued.,Not a
9、stand alone process A library? Linked Function Calls Dynamically Typed (Read Weakly) C, C+, Java, C#, and LISP bindings available SQLite3,More on SQLite,SQLite3 - Stand alone application provides: create database define tables insert and change rows run queries manage database Single application (Re
10、sides on the host machine),SQLite Code Samples,Because of weak typing and the use of a single database file several layers may be necessary. SQLiteDatabaseCalls #include “sqlite3.h“ /*Minimal SQLite3 Interface this provides the only access to SQLite3 library functions*/ sqlite3* createDatabase(char
11、*pFilename); int getDataFromDB(sqlite3* db, const char* sqlCommand, char* ,Code Samples Continued.,DatabaseManager #include “SQLDatabaseCalls.h“ /Basic Interface Provided to Client Code void* DbHandleCreate(); int DbHandleClose(void* pHandle); bool addDatatoTable(const char* sqlCommand); bool clearT
12、able(const char* sqlCommand); bool clearTableEntry(const char* sqlCommand); char* queryEntry(const char* sqlCommand, int ,Code Samples Continued.,Client Code # include “DbManager.h“ /Uses The DatabaseManager and handles all type issues and structures bool addPolicy(SPolicy* policy, SMode* oldMode, c
13、har* content); bool deletePolicy(const char * modeID, const char * policyID); bool queryPolicy(int argc, char* argv, int ,SQLite IRL,125 million copies in Mozilla Firefox. 20 million Mac OS X computers, each of which contains multiple copies of SQLite. (In Mac OS X v10.4 Apple introduced SQLite as a
14、 persistence layer of the Core Data API.) 300 million downloads of Skype. (The Skype service has 100 million registered users.) Nokia phones with Symbian OS version 9.4 or later. (The first one is Nokia 5800) Every iPhone and iPod touch. Google Android phones like the T-Mobile G1,Tradeoffs,Incomplet
15、e Functionality Support ACID compliance Boundary Limitations (Max Sizes) Access Control Coding/Implementation overhead,References,“Comparison of relational database management systems.” Wikipedia: The Free Encyclopedia. 15 November 2008 “SQLite.” Wikipedia: The Free Encyclopedia. 15 November 2008 “HSQLDB.” 15 November 2008 “SmalSQL Database - the Java Desktop Database with JDBC interface.” 15 November 2008 “Scimore - High performance distributed, client/server and fully feature embeded SQL database.” 15 November 2008 “SQLite Documentation.” 15 November 2008 ,