SlideShare a Scribd company logo
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

Node Architecture and Getting Started with Express
Node Architecture and Getting Started with ExpressNode Architecture and Getting Started with Express
Node Architecture and Getting Started with Express
jguerrero999
 
Getting Started with SQLite
Getting Started with SQLiteGetting Started with SQLite
Getting Started with SQLite
Mindfire Solutions
 
Solid principles
Solid principlesSolid principles
Solid principles
Monica Rodrigues
 
Oracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewOracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ Overview
Kris Rice
 
Modern Java web applications with Spring Boot and Thymeleaf
Modern Java web applications with Spring Boot and ThymeleafModern Java web applications with Spring Boot and Thymeleaf
Modern Java web applications with Spring Boot and Thymeleaf
LAY Leangsros
 
Sql Server Basics
Sql Server BasicsSql Server Basics
Sql Server Basics
rainynovember12
 
Mongo DB
Mongo DB Mongo DB
Introduction to Hibernate
Introduction to HibernateIntroduction to Hibernate
Introduction to Hibernate
Krishnakanth Goud
 
Design patterns in PHP
Design patterns in PHPDesign patterns in PHP
Design patterns in PHP
Jason Straughan
 
Handling Billions of Edges in a Graph Database
Handling Billions of Edges in a Graph DatabaseHandling Billions of Edges in a Graph Database
Handling Billions of Edges in a Graph Database
ArangoDB Database
 
[Android] Services and Broadcast Receivers
[Android] Services and Broadcast Receivers[Android] Services and Broadcast Receivers
[Android] Services and Broadcast Receivers
Nikmesoft Ltd
 
Spring data jpa
Spring data jpaSpring data jpa
Spring data jpa
Jeevesh Pandey
 
Web Security Horror Stories
Web Security Horror StoriesWeb Security Horror Stories
Web Security Horror Stories
Simon Willison
 
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Edureka!
 
MVVM with SwiftUI and Combine
MVVM with SwiftUI and CombineMVVM with SwiftUI and Combine
MVVM with SwiftUI and Combine
Tai Lun Tseng
 
Asp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity FrameworkAsp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity Framework
Shravan A
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web APIhabib_786
 
Mobile API: Design & Techniques
Mobile API: Design & TechniquesMobile API: Design & Techniques
Mobile API: Design & Techniques
Fred Brunel
 

What's hot (20)

Node Architecture and Getting Started with Express
Node Architecture and Getting Started with ExpressNode Architecture and Getting Started with Express
Node Architecture and Getting Started with Express
 
Getting Started with SQLite
Getting Started with SQLiteGetting Started with SQLite
Getting Started with SQLite
 
Solid principles
Solid principlesSolid principles
Solid principles
 
ASP.NET Web form
ASP.NET Web formASP.NET Web form
ASP.NET Web form
 
Oracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewOracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ Overview
 
Express node js
Express node jsExpress node js
Express node js
 
Modern Java web applications with Spring Boot and Thymeleaf
Modern Java web applications with Spring Boot and ThymeleafModern Java web applications with Spring Boot and Thymeleaf
Modern Java web applications with Spring Boot and Thymeleaf
 
Sql Server Basics
Sql Server BasicsSql Server Basics
Sql Server Basics
 
Mongo DB
Mongo DB Mongo DB
Mongo DB
 
Introduction to Hibernate
Introduction to HibernateIntroduction to Hibernate
Introduction to Hibernate
 
Design patterns in PHP
Design patterns in PHPDesign patterns in PHP
Design patterns in PHP
 
Handling Billions of Edges in a Graph Database
Handling Billions of Edges in a Graph DatabaseHandling Billions of Edges in a Graph Database
Handling Billions of Edges in a Graph Database
 
[Android] Services and Broadcast Receivers
[Android] Services and Broadcast Receivers[Android] Services and Broadcast Receivers
[Android] Services and Broadcast Receivers
 
Spring data jpa
Spring data jpaSpring data jpa
Spring data jpa
 
Web Security Horror Stories
Web Security Horror StoriesWeb Security Horror Stories
Web Security Horror Stories
 
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
 
MVVM with SwiftUI and Combine
MVVM with SwiftUI and CombineMVVM with SwiftUI and Combine
MVVM with SwiftUI and Combine
 
Asp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity FrameworkAsp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity Framework
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Mobile API: Design & Techniques
Mobile API: Design & TechniquesMobile API: Design & Techniques
Mobile API: Design & Techniques
 

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

React. Flux. Redux. by Andrey Kolodnitskiy
React. Flux. Redux. by Andrey KolodnitskiyReact. Flux. Redux. by Andrey Kolodnitskiy
React. Flux. Redux. by Andrey Kolodnitskiy
Valeriia Maliarenko
 
Embracing OSS in the enterprise
Embracing OSS in the enterpriseEmbracing OSS in the enterprise
Embracing OSS in the enterprise
cyberzeddk
 
Suguk Southampton CodePlex - March 2014
Suguk Southampton   CodePlex - March 2014Suguk Southampton   CodePlex - March 2014
Suguk Southampton CodePlex - March 2014
Steven Andrews
 
SQLite.pptx
SQLite.pptxSQLite.pptx
SQLite.pptx
MirzaHammad12
 
A peek into the future
A peek into the futureA peek into the future
A peek into the future
Prateek Chauhan
 
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
Dmitry Kirillin
 
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 marriageLiam Cleary [MVP]
 
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
Evgeniy Savchenko
 
Optimizing Access with SQL Server
Optimizing Access with SQL ServerOptimizing Access with SQL Server
Optimizing Access with SQL Server
PRPASS Chapter
 
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
Tech Triveni
 
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,...
Lucidworks
 
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
Alexander Zayats
 
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...
Philippine Association of Academic/Research Librarians
 
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 firefoxGennady Feldman
 
Circuit 2015 Keynote - Carsten Ziegeler
Circuit 2015 Keynote -  Carsten ZiegelerCircuit 2015 Keynote -  Carsten Ziegeler
Circuit 2015 Keynote - Carsten Ziegeler
ICF CIRCUIT
 
Drupal 8 deeper dive
Drupal 8 deeper diveDrupal 8 deeper dive
Drupal 8 deeper dive
Amazee Labs
 
Lessons learned: Choosing your documentation system
Lessons learned: Choosing your documentation systemLessons learned: Choosing your documentation system
Lessons learned: Choosing your documentation system
Pronovix
 
DevOps+Data: Working with Source Control
DevOps+Data: Working with Source ControlDevOps+Data: Working with Source Control
DevOps+Data: Working with Source Control
Ed Leighton-Dick
 

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
 
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
 
SQLite - Overview
SQLite - OverviewSQLite - Overview
SQLite - Overview
 

Recently uploaded

GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 

Recently uploaded (20)

GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 

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