SQLite

SQLite ir maza izmēra iegultā relāciju datubāzu pārvaldības sistēma. Datubāzes bibliotēkas pirmkods ir publiskots. 2005.gadā projekts saņēma Google-O'Reilly Open Source Awards balvu.

Dizains 
Vārds "iegultā" nozīmē, ka SQLite neizmanto klienta-servera paradigmu, ti. SQLite nav atsevišķi strādājošs process ar kuru mijiedarbojas programmas, bet ir bibliotēka ar kuru tiek papildināta programma un tas kļūst par daļu no programmas. Tādējādi, kā saziņas protokols tiek izmantotas funkcija no SQLite bibliotēkas. Šāda pieeja samazina pieskaitāmās izmaksas, reakcijas laiku un vienkāršo programmu. SQLite visas datubāzes (ieskaitot definīcijas, tabulas, indeksus un datus) glabā vienotā standarta failā tajā datorā, kurā tiek veikta izpildāmā programma. Īstenošanas vienkāršums ir panākts, nodrošinot, ka pirms transakcijas veikšanas ieraksta visu failu, kas glabā datubāzes informāciju, tiek bloķēts.

Vairāki procesi vai plūsmas vienlaicīgi var bez problēmām nolasīt datus no vienas datubāzes. Ierakstu datubāzē var izdarīt tikai tad, ja tajā pat laikā nav citu pieprasījumu, citādi ieraksta mēģinājums neizdodas, un programma atgriež kļūdas kodu. Vēl viens scenārijs ir automātiska atkārtošana mēģinājumiem rakstīt iepriekš noteiktā laika intervālā.

Komplektā ir arī funkcionāla klienta daļa, kā izpildāmais fails sqlite3, ar kura palīdzību tiek demonstrēta bibliotēkas funkciju īstenošana. Klienta daļa strādā no komandrindas ļaujot piekļūt datubāzes failiem uz standarta OS funkciju pamata.

Pateicoties arhitektūrai SQLite var izmantot kā iegultās sistēmas, tā arī atsevišķos datoros ar gigabaitu datu masīviem.

Ierobežojumi 
Vecākas SQLite versijas tika veidota bez jebkādiem ierobežojumiem, vienīgais nosacījums bija, ka datu bāze ietilpst atmiņā, kurā tika veikti visi aprēķini, izmantojot 32 bitu veselus skaitļus. Tas radīja dažas problēmas. Sakarā ar to, ka augšējās robežas nav definētas un tāpēc pienācīgi pārbaudītas, tad tika konstatēts, ka bieži vien rodas kļūdas lietojot SQLite diezgan ekstremālos apstākļos. Un tāpēc SQLite jaunākajām versijām tika ieviesti ierobežojumi, kas tiek pārbaudīti ar kopējo testu komplektu.

SQLite bibliotēkai noteikti atbilstoši ierobežojumi, kurus akūtas nepieciešamības gadījumā ir iespējams palielināt:

 

Līdz šim brīdim tikai SQLITE_MAX_PAGE_SIZE izmērs nedrīkst būt lielāks par noklusēto. Tādējādi nemainot SQLITE_MAX_PAGE_COUNT var teikt, ka maksimālais datubāzes faila izmērs sasniedz aptuveni 32 TB (35'184'372'056'064 B).

Dažus ierobežojumus var mainīt, lai samazinātu izpildes laiku programmās, nosakot kategorijas un atbilstošās vērtības sqlite3_limit() funkcijai:

 int sqlite3_limit(sqlite3*, int id, int newVal)

 

Tas var būt noderīgi, ja SQLite tiek izmantots Web pielikumos, jo samazinātas maksimālās vērtības var novērst DoS uzbrukumus no neuzticamiem ārējiem klientiem.

Izmantošana 
SQLite bibliotēka ir uzrakstīta izmantojot C, kā arī eksistē saikne arī ar lielu skaitu citām programmēšanas valodām, tostarp C++, Java, C#, VB.NET, Python, Perl, PHP, Tcl, Ruby, Haskell, Schema, Smalltalk, Lua un Parser, kā arī ar daudzām citām valodām.

Vienkāršība un ērtā SQLite implementēšana noveda pie fakta, ka tā tiek izmantota pārlūkprogrammās, mūzikas atskaņotājos un daudzās citās programmās.

SQLite pielieto:

 Adobe Integrated Runtime – vide pielikumu palaišanai;
 Gears;
 XUL platforma;
 Skype;
 Daži Garmin GPS navigatoru modeļi;
 Android API.

Daudzas programmas atbalsta SQLite, kā datu uzglabāšanas formātu (jo īpaši Mac OS un IPHONE OS, Android), to skaitā:

 1C;
 Adobe Photoshop Lightroom;
 FlylinkDC++;
 AIMP;
 Banshee;
 Eserv;
 F-Spot;
 FAR Manager (sākot ar 3.0 versiju);
 Gajim;
 Miranda IM;
 Money IQ;
 Mozilla Firefox;
 Opera (sākot ar 10.50 versiju);
 QutIM;
 Safari;
 XnView.

Datubāzu pārvaldības sistēmas
Iegultās datubāzes