Database Management Systems For Mobile Devices Robert L. Foster Jr. November 18, 2008.

Slides:



Advertisements
Similar presentations
Facts about Welcome to this video from Ozeki. In this video I will present what makes Ozeki Phone System XE the Worlds best on-site software PBX for Windows.
Advertisements

Lecture plan Information retrieval (from week 11)
 data/data-storage.html#pref data/data-storage.html#pref 
Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
Technical Architectures
DEPARTMENT OF COMPUTER ENGINEERING
Distributed Application Development B. Ramamurthy.
ODBC and JDBC Aggie Hoversten CSCI Fall 1999.
IS4401 Project Technology Issues. Introduction This seminar covers Databases When to use a Database What Database to use Development Tools Visual Studio.
1 Foundations of Software Design Lecture 27: Java Database Programming Marti Hearst Fall 2002.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
SQLite and the.NET Framework This PPT:
SQLite BY Jordan Smith Brian Wetzel Chris Hull William Anderson.
Confidential ODBC May 7, Features What is ODBC? Why Create an ODBC Driver for Rochade? How do we Expose Rochade as Relational Transformation.
Databases Dan Otero Alex Loddengaard
ODBC Open DataBase Connectivity a standard database access method developed by Microsoft to access data from any application regardless of which database.
Anders Karlsson Principal Sales Engineer, MySQL MySQL Embedded - Getting started with libmysqld.
Android Introduction Platform Overview.
Advance Computer Programming Java Database Connectivity (JDBC) – In order to connect a Java application to a database, you need to use a JDBC driver. –
Chapter Three OPERATING SYSTEMS.
Your Interactive Guide to the Digital World Discovering Computers 2012.
Getting connected.  Java application calls the JDBC library.  JDBC loads a driver which talks to the database.  We can change database engines without.
By Mihir Joshi Nikhil Dixit Limaye Pallavi Bhide Payal Godse.
Computing for Bioinformatics Introduction to databases What is a database? Database system components Data types DBMS architectures DBMS systems available.
CSCI 6962: Server-side Design and Programming
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
Survey of PC and Network Operating Systems
ODBC : Open Database Connectivity SNU OOPSLA Lab. October 2005.
1 Web Server Administration Chapter 1 The Basics of Server and Web Server Administration.
Applied Pervasive Computing Presentation : Mobile Interaction Devices.
DB Libraries: An Alternative to DBMS By Matt Stegman November 22, 2005.
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Designing and Developing WS B. Ramamurthy. Plans We will examine the resources available for development of JAX-WS based web services. We need an IDE,
File Processing Concepts – Field – combination of 1 or more characters that is the smallest unit of data to be accessed – Record – group of related fields.
Team Members Team Members Tim Geiger Joe Hunsaker Kevin Kocher David May Advisor Dr. Juliet Hurtig November 8, 2001.
Visualizing Technology© 2012 Pearson Education, Inc. Publishing as Prentice Hall1 PowerPoint Presentation To Accompany Chapter 6 System Software.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Course FAQ’s I do not have any knowledge on SQL concepts or Database Testing. Will this course helps me to get through all the concepts? What kind of.
Mobile Software Development ISCG 7424 Department of Computing UNITEC John Casey and Richard Rabeder SQLite and Permissions.
12/6/2015B.Ramamurthy1 Java Database Connectivity B.Ramamurthy.
Copyright © Curt Hill Connectivity Communicating with the Database.
Windows Azure. Azure Application platform for the public cloud. Windows Azure is an operating system You can: – build a web application that runs.
Introduction TO Network Administration
Basics of JDBC Session 14.
Copyright © 2015 McGraw-Hill Education. All rights reserved. No reproduction or distribution without the prior written consent of McGraw-Hill Education.
ViaSQL Technical Overview. Viaserv, Inc. 2 ViaSQL Support for S/390 n Originally a VSE product n OS/390 version released in 1999 n Identical features.
Sesame A generic architecture for storing and querying RDF and RDFs Written by Jeen Broekstra, Arjohn Kampman Summarized by Gihyun Gong.
The Whole new Experience - By Mahesh Chauhan. Its sounds strange but the fact is that :-  More than 90% of the CPUs in the world are not in desktops.
In the Name Of Almighty Allah. Java Application Connection To Mysql Created by Hasibullah (Sahibzada) Kabul Computer Science Faculty Afghanistan.
“COLLEGE MANAGEMENT SYSTEM” Presented by: BCA VI SEMESTER.
Settings MySQL Database and JDBC configuration Instructor: Sergey Goldman.
System Software Chapter Handles technical details Works with end users, application software, and computer hardware Four types of programs –Operating.
CHAPTER 9 File Storage Shared Preferences SQLite.
System Software Chapter Handles technical details Works with end users, application software, and computer hardware Four types of programs –Operating.
Introduction to Database Programming with Python Gary Stewart
C Copyright © 2009, Oracle. All rights reserved. Using SQL Developer.
Advance Computer Programming Market for Java ME The Java ME Platform – Java 2 Micro Edition (J2ME) combines a resource- constrained JVM and a set of Java.
2nd year Computer Science & Engineer
Fundamental of Databases
Android Mobile Application Development
Discovering Computers 2012: Chapter 8
Chapter 8 Operating Systems and Utility Programs.
Open Source distributed document DB for an enterprise
Add library banner image here
CMPE419 Mobile Application Development
Chapter 4.
Database Software.
Java Database Connectivity
ODBC and JDBC.
Java Programming Introduction
Presentation transcript:

Database Management Systems For Mobile Devices Robert L. Foster Jr. November 18, 2008

Light Weight DBMS? Definition Purpose Examples Tradeoffs

Formal Definition There isn’t one... Major DBMS’s can run on most operating systems providing full functionality: MySQl Oracle etc... What about embedded systems? Why do we need one?

DBMS For Mobile Devices DBMS’s 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, PDA’s, and radios have 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 on 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” DBMS’s dedicated to addressing these specific issues. How do we choose which system is the best for a given device?

Examples What’s good for the goose is not necessarily what’s 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 should 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 SmallSQL Pyrrho DBMS ScimoreDB HSQLDB Embedded MySQL

HSQLDB Hyperthreaded Structured Query Language Written in Java Offers JDBC Driver k Cross Platform OpenOffice & Mathematica

ScimoreDB Embedded Distributed Query Language (DQL) Text based query language Windows Only C++ ACID Independent process or 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 what’s it good for?

SQLite ACID C Cross Platform 500K Uses a Single Database File FREE!

SQLite Continued... Not a 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 (Resides 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 *pFilename); int getDataFromDB(sqlite3* db, const char* sqlCommand, char** & data, int & rows, int & cols); int clearOldData(sqlite3* db, const char* sqlCommand); int insertResults(sqlite3* db, int currentTime, const char* sqlCommand); int clearEntries(sqlite3* db, const char* sqlCommand);

Code Samples Continued... DatabaseManager #include"SQLDatabaseCalls.h" //Basic Interface Provided to Client Code void* DbHandleCreate(); intDbHandleClose(void* pHandle); booladdDatatoTable(const char* sqlCommand); boolclearTable(const char* sqlCommand); boolclearTableEntry(const char* sqlCommand); char** queryEntry(const char* sqlCommand, int & rows, int & cols); void freeTable(char** table);

Code Samples Continued... Client Code # include "DbManager.h" //Uses The DatabaseManager and handles all type issues and structures bool addPolicy(SPolicy* policy, SMode* oldMode, char* content); bool deletePolicy(const char * modeID, const char * policyID); bool queryPolicy(int argc, char** argv, int & messagelen, char*& xmlBuf); bool deleteComplaint(int argc, char** argv); bool deleteConflict(int argc, char** argv); bool deleteMode(int argc, char** argv); bool findComplaint(int argc, char** argv, int & messagelen, char*& xmlBuf); bool findConflict(int argc, char** argv, int & messagelen, char*& xmlBuf); bool findDecision(int argc, char** argv, int & messagelen, char*& xmlBuf);

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 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 Incomplete 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 nagement_systems “SQLite.” Wikipedia: The Free Encyclopedia. 15 November 2008 “HSQLDB.” 15 November “SmalSQL Database - the Java Desktop Database with JDBC interface.” 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 “SQLite Documentation.” 15 November