SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Sqlite
SqliteSqlite
Sqlite
 
Ehcache Architecture, Features And Usage Patterns
Ehcache Architecture, Features And Usage PatternsEhcache Architecture, Features And Usage Patterns
Ehcache Architecture, Features And Usage Patterns
 
Introduction to .net framework
Introduction to .net frameworkIntroduction to .net framework
Introduction to .net framework
 
Database in Android
Database in AndroidDatabase in Android
Database in Android
 
What is JavaScript? Edureka
What is JavaScript? EdurekaWhat is JavaScript? Edureka
What is JavaScript? Edureka
 
C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#
 
JPA and Hibernate
JPA and HibernateJPA and Hibernate
JPA and Hibernate
 
MongoDB - Aggregation Pipeline
MongoDB - Aggregation PipelineMongoDB - Aggregation Pipeline
MongoDB - Aggregation Pipeline
 
Introduction to C# Programming
Introduction to C# ProgrammingIntroduction to C# Programming
Introduction to C# Programming
 
Introduction to Swagger
Introduction to SwaggerIntroduction to Swagger
Introduction to Swagger
 
Hosting a website on IIS Server
Hosting a website on IIS ServerHosting a website on IIS Server
Hosting a website on IIS Server
 
Murach: An introduction to web programming with ASP.NET Core MVC
Murach: An introduction to web programming with ASP.NET Core MVCMurach: An introduction to web programming with ASP.NET Core MVC
Murach: An introduction to web programming with ASP.NET Core MVC
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
 
Ch 5: Introduction to heap overflows
Ch 5: Introduction to heap overflowsCh 5: Introduction to heap overflows
Ch 5: Introduction to heap overflows
 
Spring 3.x - Spring MVC - Advanced topics
Spring 3.x - Spring MVC - Advanced topicsSpring 3.x - Spring MVC - Advanced topics
Spring 3.x - Spring MVC - Advanced topics
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introduction
 
Servlets
ServletsServlets
Servlets
 
Java Exception handling
Java Exception handlingJava Exception handling
Java Exception handling
 
Introduction VAUUM, Freezing, XID wraparound
Introduction VAUUM, Freezing, XID wraparoundIntroduction VAUUM, Freezing, XID wraparound
Introduction VAUUM, Freezing, XID wraparound
 
Java & advanced java
Java & advanced javaJava & advanced java
Java & advanced java
 

Ähnlich wie 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
 

Ähnlich wie 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
 
NoSQL
NoSQLNoSQL
NoSQL
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

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