Software, Systemudvikling og systemer

SQLite - den lille mobile database

I år er det 15 år siden, ideen til den mest udbredte mobile database opstod.

Dr. Richard Hipp havde et problem den 29. maj 2000.
Han arbejdede på et client/server-projekt, hvor databasen på serveren nogle gange ikke svarede. Dr. Richard Hipp havde ikke kontrol over database-serveren, men alligevel fik han skylden, hvis hans client-program ikke kunne præsentere data fra databasen. Han vidste, at det ikke var store, komplicerede SQL-forespørgsler, databasen skulle håndtere, hvilket fik ham i gang med at bygge en lille, hurtig database til lokal brug.


Det var starten på SQLite, der siden hen er blevet den foretrukne database i embedded devices og for app-udviklere verden over.


Dr. Richard Hipp ser ikke SQLite som en konkurrent til eksisterende enterprise-databaser som MySQL, SQL Server, Oracle, DB2 og PostgreSQL, men derimod som et komplementært produkt. Hvor enterprise-databaserne lægger vægt på skalerbarhed, samtidighed, centralisering og kontrol, så tilbyder SQLite lokal data-storage for apps og embedded devices som spilkonsoller, set-top-bokse og GPS-systemer. I stedet for at anvende filsystemet til at gemme diverse filer og data for en app kan udviklere få en relationel database med et minimalt memory-forbrug. Som det hedder på hjemmesiden for SQLite:
"SQLite konkurrerer ikke med client/server-databaser. SQLite konkurrerer med fopen()."

Inspireret af PostgreSQL

Dr. Richard Hipp lægger dog ikke skjul på, at netop en enterprise-database har været en stor inspiration for hans arbejde med at udvikle SQLite. På PostgreSQL-konferencen PGCon 2014 gav han en keynote, hvor han fortalte, at SQLite var skrevet på baggrund af PostgreSQL 6.5-dokumentationen. Den dag i dag skeles der stadig til storebror PostgreSQL. Hvis SQLite udviklerne står over for en teknisk udfordring , anvender de WWPD-pricippet: ”What Would PostgreSQL Do”.


Den PostgreSQL-inspirerede lille database er blevet en stor succes, siden dr. Richard Hipp fik ideen for snart 15 år siden og kan betegnes som de facto-standard for mobile databaser. Der er ingen, der kender det præcise antal apps og embedded devices, som anvender SQLite, da databasen kan downloades gratis fra SQLites hjemmeside, men der er tale om et meget stort antal.


Apple anvender SQLite i stor stil. Mac OS X,  Apple Mail og Safari har den lille database indbygget, ligesom også iPhone, iPod Touch og iTunes anvender SQLite. Google anvender SQLite på Android-platformen og i Chrome-browseren, mens Skype samt Adobe Lightroom er andre eksempler på programmer, der anvender den lille, effektive database. Dertil kommer tusindvis af diverse apps, som anvender SQLite til lokal storage af data.

Endelig er der en række frameworks som eksempelvis Core Data og ORMLite, der anvender SQLite som underliggende database-engine og tilbyder udviklere en mere objektorienteret tilgang til data ved at foretage den objekt-relationelle mapping. Baseret på udbredelsen af smartphones gættede  Richard Hipp forrige år på, at SQLite kører på to milliarder forskellige devices og anvendes af en halv million forskellige applikationer.

Automatiske test

Richard Hipp tilskriver test-suiten SQLLogicTest en stor del af æren for SQLites succes. Test-suiten indeholder tusindvis af automatiske tests, der sikrer pålideligheden og korrektheden af forespørgsler mod SQLite. I sin keynote på PGCon 2014 fortalte Richard Hipp, at han har anvendt SQLLogicTest til at sammenligne resultaterne fra syv millioner forskellige queries mod fem forskellige databaser: SQLite, MySQL, Oracle, SQL Server og PostgreSQL. Ifølge Richard Hipp lykkedes det at få samtlige databaser til at crashe med segmentation faults eller give ukorrekte data, undtagen PostgreSQL.