SqLite Intro


  • SQlite is an open source embedded database. The original implementation was designed by D. Richard Hipp.
  • Hipp was designing software used on board guided missile systems and thus had limited resources to work with.
  • The resulting design goals of SQLite were to allow the program to be operated without a database installation or administration.
  • In 2000 version 1.0 of SQLite was released. This initial release was based off of GDBM (GNU Database Manager). Version 2.0 replaced GBDM with a custom implementation of B-tree data structure.
  • Version 3.0 added many useful improvements such as internalization and manifest typing.
  • This version was also partially funded by America Online and shows how SQLite has quickly grown from an unheard of pet project to the widely used open source system it is today.
Reference - http://en.wikipedia.org/wiki/SQLite#cite_note-1


  • The SQLite Consortium is a membership association dedicated to the development of SQLite. Their goals are to keep SQLite both high quality and public domain. Key members include Adobe, Bloomberg, Mozilla and Symbian.

Major Users

  • Adobe - Uses SQLite in Photoshop and Acrobat\Adobe reader. The Application file Format of SQLite is used in these products.
  • Apple - Several functions in Mac OS X use SQLite:
    • Apple Mail
    • Safari Web Browser
    • Apeture
  • The iPhone and iPod Touch platforms may also contain SQLite implementations (unknown due to closed source nature of those systems.)
  • Mozilla - Uses SQLite in the Mozilla Firefox Web Browser. SQLite is used in Firefox to store metadata.
  • Google - Google uses SQLite in Google Desktop and in Google Gears. SQLite is also used in the mobile OS platform, Android.
  • McAfee- Uses SQLite in its various Anti-virus programs
  • Phillips - Phillips mp3 players use SQLite to store and track metadata. (you can even access the database on the usb based mp3 players that phillips produced)
  • PHP - Php comes with SQLite 2 and 3 built in. Python- SQLite is bundled with the Python programming language.
Reference - http://www.sqlite.org/famous.html

Specifications for SQLite

  • “SQLite is different from most other SQL database engines in that its primary design goal is to be simple”
  • SQLite works well with:
    • Application file format – transactions guarantee ACID, triggers provide undo/redo feature
    • Temporary data analysis – command line client, import CSV files and use sql to analyze & generate reports
    • Testing – stand-in for enterprise DB during application testing (limits potential damage!)
    • Embedded devices – small, reliable and portable
  • SQLite is:
    • Portable - uses only ANSI-standard C and VFS, file format is cross platform (little vs big endian, 32 vs 64 bit)
    • Reliable – has 100% test coverage, open source code and bug database, transactions are ACID even if power fails
    • Small – 300 kb library, runs in 16kb stack and 100kb heap