SlideShare a Scribd company logo
1 of 27
Download to read offline
An Introduction to
SQLite
The Most Popular Database In theWorld
Jay Kreibich
jay@kreibi.ch
cuDBug
20 June 2013
My history with DBs
• Undergrad at UIUC, the Web 1.0 era
• Full time software developer for 17 years
• 8 years at CITES, including many network
monitoring and management tools
• Almost 7 years atVolition, the last three years
doing data collection and analysis
Relationship with DBs
• School: Databases are for COBOL
programmers
• Early work: Databases are useful
• Later work: Database theory is amazing
My history with SQLite
• First learned about it at WWDC 2004
• Used for a number of work projects
• Tried to stuff Wikipedia dump onto an
ebook reader
So I wrote a book...
So I wrote a book...
• Great White Heron
• No, I didn’t get to choose
•August 2010
• 2.5 years to write & edit
What is SQLite?
The power of a full RDBMS...
...without all the headaches.
What is SQLite?
• Database-in-a-file
• Self-Contained
• Serverless
• Zero-configuration
• Concurrent Access
• ACID compliant
• In the Public Domain
SQLite is an SQL based RDBMS that is...
Database-in-a-File
• Database instance is a common file
• File contains schema, data, blobs, etc.
• Files are cross-platform
• Endian
• Word size (32 bit & 64 bit)
• Encoding (UTF-8, UTF-16be, UTF-16le)
Self-Contained
• The database engine is compiled directly
into the application
• No external libraries or processes
Serverless
Application Client lib ServerServer
Procs
Typical Client/Server
SQLite
Application SQLite
Zero Configuration
• No server means no server admin, no DBA
• Application can self-configure DB
Concurrent Access
• SQLite uses file locking to allow safe
concurrent access from multiple
connections, threads, or processes
• Local processes only
• Network storage typically does not work
ACID Compliant
• SQLite provides full ACID transactions
• Two different transaction methods:
• Rollback Journal
• Write-Ahead Log
• Different levels of locking and access
Public Domain
• Core source code and algorithms are
in the Public Domain
• Rigorously enforced
• “SQLite” name is still under trademark
• Causes more problems than it solves
SQLite Types
• Signed 64-bit Integers
• IEEE 754 64-bit Float Point
• Unicode Text
• BLOBs
• NULL
• (No date/time types; no “numeric” type)
Other Features
• Connection can “attach” multiple DBs
• SQLite uses manifest typing
• Column types are not rigidly enforced
• Very few issues
• DDL is transactional
Other Features
• Supports in-memory DBs (very fast)
• Depends on file access for Auth/Auth
• Right Outer Joins not supported (Left is)
• Triggers are supported
• Custom functions/aggs, but not in-DB
Other Features
• Virtual Tables
Virtual DB
Engine
Query Planner
Optimizer
API
Virtual DB
Engine
Query Planner
Optimizer
API
Application
Code
Good Uses for SQLite
• Database Junior
• Application Cache
• Archives and Data Stores
• Client/Server Stand-in
• Application File Format
• Teaching Tool
• Generic SQL Engine (external data source)
Bad Uses for SQLite
• High Transaction Rates
• Very Large Datasets
• Detailed Access Control
• Client/Server or Multi-Host
• Advanced Replication
SQLite Distribution
• Code for SQLite library
• Code for sqlite3 CLI application
Most popular?
SQLite is, most likely, the
most popular database in the world
by number of database instances.
You use it all the time.
Most popular?
• Firefox, Safari,
Chrome
• iTunes, MacOS X
• Thunderbird, Mail
• McAfee
• Adobe Air
• Dropbox
• Skype
• QuickBooks,
TurboTax
• Python, PHP,
WebSQL
Lots of Desktop Apps:
Most popular?
• 550M iOS devices
• 750M Android devices
• ~500M Symbian (Nokia) devices
• ~100M Blackberry devices
Lots of Mobile Devices:
Most popular?
~10,000,000,000 active database instances
Q & A
Jay Kreibich
jay@kreibi.ch
@jkreibich
www.sqlite.org

More Related Content

What's hot

introduction to web technology
introduction to web technologyintroduction to web technology
introduction to web technology
vikram singh
 
Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentation
guest11106b
 

What's hot (20)

Deep dive into swift UI
Deep dive into swift UIDeep dive into swift UI
Deep dive into swift UI
 
Microsoft SQL Server Query Tuning
Microsoft SQL Server Query TuningMicrosoft SQL Server Query Tuning
Microsoft SQL Server Query Tuning
 
Javascript essentials
Javascript essentialsJavascript essentials
Javascript essentials
 
Chapter 1 introduction to sql server
Chapter 1 introduction to sql serverChapter 1 introduction to sql server
Chapter 1 introduction to sql server
 
SQL Joins.pptx
SQL Joins.pptxSQL Joins.pptx
SQL Joins.pptx
 
Windows Presentation Foundation
Windows Presentation Foundation  Windows Presentation Foundation
Windows Presentation Foundation
 
introduction to web technology
introduction to web technologyintroduction to web technology
introduction to web technology
 
MYSQL.ppt
MYSQL.pptMYSQL.ppt
MYSQL.ppt
 
Sql Server Performance Tuning
Sql Server Performance TuningSql Server Performance Tuning
Sql Server Performance Tuning
 
Database Programming
Database ProgrammingDatabase Programming
Database Programming
 
Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentation
 
Types of keys in database management system by Dr. Kamal Gulati
Types of keys in database management system by Dr. Kamal GulatiTypes of keys in database management system by Dr. Kamal Gulati
Types of keys in database management system by Dr. Kamal Gulati
 
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
 
SQLite - Overview
SQLite - OverviewSQLite - Overview
SQLite - Overview
 
REST API
REST APIREST API
REST API
 
LINQ in C#
LINQ in C#LINQ in C#
LINQ in C#
 
Workshop 21: React Router
Workshop 21: React RouterWorkshop 21: React Router
Workshop 21: React Router
 
PHP complete reference with database concepts for beginners
PHP complete reference with database concepts for beginnersPHP complete reference with database concepts for beginners
PHP complete reference with database concepts for beginners
 
Big query
Big queryBig query
Big query
 
Introduction of sql server indexing
Introduction of sql server indexingIntroduction of sql server indexing
Introduction of sql server indexing
 

Similar to Introduction to SQLite: The Most Popular Database in the World

10 Things Learned Releasing Databricks Enterprise Wide
10 Things Learned Releasing Databricks Enterprise Wide10 Things Learned Releasing Databricks Enterprise Wide
10 Things Learned Releasing Databricks Enterprise Wide
Databricks
 
SharePoint Saturday The Conference DC - How the bcs saved my marriage
SharePoint Saturday The Conference DC - How the bcs saved my marriageSharePoint Saturday The Conference DC - How the bcs saved my marriage
SharePoint Saturday The Conference DC - How the bcs saved my marriage
Liam Cleary [MVP]
 
JavaScript debugging diagnostic web tools and firefox
JavaScript debugging diagnostic web tools and firefoxJavaScript debugging diagnostic web tools and firefox
JavaScript debugging diagnostic web tools and firefox
Gennady Feldman
 
Lessons learned: Choosing your documentation system
Lessons learned: Choosing your documentation systemLessons learned: Choosing your documentation system
Lessons learned: Choosing your documentation system
Pronovix
 

Similar to Introduction to SQLite: The Most Popular Database in the World (20)

React. Flux. Redux. by Andrey Kolodnitskiy
React. Flux. Redux. by Andrey KolodnitskiyReact. Flux. Redux. by Andrey Kolodnitskiy
React. Flux. Redux. by Andrey Kolodnitskiy
 
Embracing OSS in the enterprise
Embracing OSS in the enterpriseEmbracing OSS in the enterprise
Embracing OSS in the enterprise
 
Suguk Southampton CodePlex - March 2014
Suguk Southampton   CodePlex - March 2014Suguk Southampton   CodePlex - March 2014
Suguk Southampton CodePlex - March 2014
 
SQLite.pptx
SQLite.pptxSQLite.pptx
SQLite.pptx
 
A peek into the future
A peek into the futureA peek into the future
A peek into the future
 
SQLite forensics - Free Lists, unallocated space, carving
SQLite forensics - Free Lists, unallocated space, carvingSQLite forensics - Free Lists, unallocated space, carving
SQLite forensics - Free Lists, unallocated space, carving
 
10 Things Learned Releasing Databricks Enterprise Wide
10 Things Learned Releasing Databricks Enterprise Wide10 Things Learned Releasing Databricks Enterprise Wide
10 Things Learned Releasing Databricks Enterprise Wide
 
SharePoint Saturday The Conference DC - How the bcs saved my marriage
SharePoint Saturday The Conference DC - How the bcs saved my marriageSharePoint Saturday The Conference DC - How the bcs saved my marriage
SharePoint Saturday The Conference DC - How the bcs saved my marriage
 
DevOps in the Microsoft world part 1
DevOps in the Microsoft world part 1DevOps in the Microsoft world part 1
DevOps in the Microsoft world part 1
 
Optimizing Access with SQL Server
Optimizing Access with SQL ServerOptimizing Access with SQL Server
Optimizing Access with SQL Server
 
Sq lite presentation
Sq lite presentationSq lite presentation
Sq lite presentation
 
UI Dev in Big data world using open source
UI Dev in Big data world using open sourceUI Dev in Big data world using open source
UI Dev in Big data world using open source
 
Participating in the Community - Beyond Code: Presented by Cassandra Targett,...
Participating in the Community - Beyond Code: Presented by Cassandra Targett,...Participating in the Community - Beyond Code: Presented by Cassandra Targett,...
Participating in the Community - Beyond Code: Presented by Cassandra Targett,...
 
How we build project for Open Source
How we build project for Open SourceHow we build project for Open Source
How we build project for Open Source
 
LIBRARIANS AS WEB DEVELOPERS: GAUGING THE BEST TECHNOLOGIES IN ACCESSING INFO...
LIBRARIANS AS WEB DEVELOPERS: GAUGING THE BEST TECHNOLOGIES IN ACCESSING INFO...LIBRARIANS AS WEB DEVELOPERS: GAUGING THE BEST TECHNOLOGIES IN ACCESSING INFO...
LIBRARIANS AS WEB DEVELOPERS: GAUGING THE BEST TECHNOLOGIES IN ACCESSING INFO...
 
JavaScript debugging diagnostic web tools and firefox
JavaScript debugging diagnostic web tools and firefoxJavaScript debugging diagnostic web tools and firefox
JavaScript debugging diagnostic web tools and firefox
 
Circuit 2015 Keynote - Carsten Ziegeler
Circuit 2015 Keynote -  Carsten ZiegelerCircuit 2015 Keynote -  Carsten Ziegeler
Circuit 2015 Keynote - Carsten Ziegeler
 
Drupal 8 deeper dive
Drupal 8 deeper diveDrupal 8 deeper dive
Drupal 8 deeper dive
 
Lessons learned: Choosing your documentation system
Lessons learned: Choosing your documentation systemLessons learned: Choosing your documentation system
Lessons learned: Choosing your documentation system
 
DevOps+Data: Working with Source Control
DevOps+Data: Working with Source ControlDevOps+Data: Working with Source Control
DevOps+Data: Working with Source Control
 

Recently uploaded

Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
Muhammad Subhan
 

Recently uploaded (20)

The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 

Introduction to SQLite: The Most Popular Database in the World

  • 1. An Introduction to SQLite The Most Popular Database In theWorld Jay Kreibich jay@kreibi.ch cuDBug 20 June 2013
  • 2. My history with DBs • Undergrad at UIUC, the Web 1.0 era • Full time software developer for 17 years • 8 years at CITES, including many network monitoring and management tools • Almost 7 years atVolition, the last three years doing data collection and analysis
  • 3. Relationship with DBs • School: Databases are for COBOL programmers • Early work: Databases are useful • Later work: Database theory is amazing
  • 4. My history with SQLite • First learned about it at WWDC 2004 • Used for a number of work projects • Tried to stuff Wikipedia dump onto an ebook reader
  • 5. So I wrote a book...
  • 6. So I wrote a book... • Great White Heron • No, I didn’t get to choose •August 2010 • 2.5 years to write & edit
  • 7. What is SQLite? The power of a full RDBMS... ...without all the headaches.
  • 8. What is SQLite? • Database-in-a-file • Self-Contained • Serverless • Zero-configuration • Concurrent Access • ACID compliant • In the Public Domain SQLite is an SQL based RDBMS that is...
  • 9. Database-in-a-File • Database instance is a common file • File contains schema, data, blobs, etc. • Files are cross-platform • Endian • Word size (32 bit & 64 bit) • Encoding (UTF-8, UTF-16be, UTF-16le)
  • 10. Self-Contained • The database engine is compiled directly into the application • No external libraries or processes
  • 11. Serverless Application Client lib ServerServer Procs Typical Client/Server SQLite Application SQLite
  • 12. Zero Configuration • No server means no server admin, no DBA • Application can self-configure DB
  • 13. Concurrent Access • SQLite uses file locking to allow safe concurrent access from multiple connections, threads, or processes • Local processes only • Network storage typically does not work
  • 14. ACID Compliant • SQLite provides full ACID transactions • Two different transaction methods: • Rollback Journal • Write-Ahead Log • Different levels of locking and access
  • 15. Public Domain • Core source code and algorithms are in the Public Domain • Rigorously enforced • “SQLite” name is still under trademark • Causes more problems than it solves
  • 16. SQLite Types • Signed 64-bit Integers • IEEE 754 64-bit Float Point • Unicode Text • BLOBs • NULL • (No date/time types; no “numeric” type)
  • 17. Other Features • Connection can “attach” multiple DBs • SQLite uses manifest typing • Column types are not rigidly enforced • Very few issues • DDL is transactional
  • 18. Other Features • Supports in-memory DBs (very fast) • Depends on file access for Auth/Auth • Right Outer Joins not supported (Left is) • Triggers are supported • Custom functions/aggs, but not in-DB
  • 19. Other Features • Virtual Tables Virtual DB Engine Query Planner Optimizer API Virtual DB Engine Query Planner Optimizer API Application Code
  • 20. Good Uses for SQLite • Database Junior • Application Cache • Archives and Data Stores • Client/Server Stand-in • Application File Format • Teaching Tool • Generic SQL Engine (external data source)
  • 21. Bad Uses for SQLite • High Transaction Rates • Very Large Datasets • Detailed Access Control • Client/Server or Multi-Host • Advanced Replication
  • 22. SQLite Distribution • Code for SQLite library • Code for sqlite3 CLI application
  • 23. Most popular? SQLite is, most likely, the most popular database in the world by number of database instances. You use it all the time.
  • 24. Most popular? • Firefox, Safari, Chrome • iTunes, MacOS X • Thunderbird, Mail • McAfee • Adobe Air • Dropbox • Skype • QuickBooks, TurboTax • Python, PHP, WebSQL Lots of Desktop Apps:
  • 25. Most popular? • 550M iOS devices • 750M Android devices • ~500M Symbian (Nokia) devices • ~100M Blackberry devices Lots of Mobile Devices:
  • 27. Q & A Jay Kreibich jay@kreibi.ch @jkreibich www.sqlite.org