SQLite je ACID-kompatibilan ugrađen sistem za upravljanje bazama podataka sadržan u relativno maloj (~225 KB[1]) C programskoj biblioteci. Izvorni kod za SQLite je u javnom vlasništvu.

SQLite
Originalni autor(i)D. Richard Hipp
Prvo izdanjeavgust 2000. (2000-08)
Stabilno izdanje
3.8.10.2 / 20. maj 2015.
Repozitorijum Uredi na Vikipodacima
Napisan uC
Operativni sistemVišeplatformno
Veličina~699 kB
TipSURBP
LicencaJavno vlasništvo
Veb-sajthttp://www.sqlite.org/

Za razliku od klijent-server sistema za upravljanje bazama podataka, jezgro SQLite-a nije samostalan proces sa kojim aplikacija komunicira. Umjesto toga, SQLite biblioteka je uvezana i postaje sastavni dio aplikacije. Biblioteka može biti dinamično pozivana. Aplikacija koristi SQLite funkcionalnost kroz proste funkcionalne pozive, koji smanjuju latenciju u pristupu bazama podataka kako su funkcionalni pozivi unutar jednog procesa efikasniji od međuprocesne komunikacije. Kompletna baza podataka (definisanje, table, indeksi i sami podaci) kao jedan međuplatformni fajl na mašini domaćinu. Ovako prost dizajn je postignut zaključavanjem kompletnog fajla baze podataka na početku transakcije.

SQLite je ugrađen u sve veći broj popularnih programa. Na primjer, Mozila fajerfoks pohranjuje mnoštvo konfiguracionih podataka, (bukmarkovi, kukiji, itd.), u interno upravljanu SQLite bazu podataka. Kao drugi primjer, Guglov Android operativni sistem za mobilne telefone i druge male uređaje sadrži SQLite.

Istorija uredi

SQLite je napravio D. Ričard Hip (engl. D. Richard Hipp) u proljeće 2000. dok je radio za General Dynamics po ugovoru sa Mornaricom SAD.[2]Hip je softver koristio na brodu razaraču koji je nosio vođene projektile, koji je originalno bio baziran na HP-UX-u sa IBM informiks bazom podataka. Plan projektanata je bio da se omogući funkcionisanje programa bez potrebe da se koristi baza podataka. U avgustu 2000-e, izdata je 1.0 verzija, bazirana na gdbm (GNU Upravljaču Baza podataka). SQLite 2.0 je zamijenio gdbm implementacijom koja je koristila modifikovano B-stablo i dodavala podršku za prenošenje.

Osobine uredi

SQLite provodi većinu SQL-92 standarda za SQL. Na primjer, ima djelimičnu podršku za okidače i podržava i najkompleksnije pretrage, ali neprimjetno ignoriše ograničenja referencijalnog integriteta (ograničenje stranog ključa)[3]osim u slučaju da se koristi kodna .genfkeykomanda za sqlite3alat školjke da se izrade okidači.[4]

SQLite koristi neuobičajenu tipolologiju za SQL-kompatibilne SUBP. Umjesto da dodijeli tip koloni, kao u većini SQL baziranih sistema, tipovi su dodijeljeni pojedinačnim vrijednostima; u jezičkom smislu to je dinamično tipologisano. Još više, to je sedmično tipologisano u istom maniru kao što Perl: može se umetnuti veza u kolonu djelioca (iako će SQLite pokušati da prvo pretvori vezu u djelioca ako je željeni tip djelilac). Ovo dodaje fleksibilnost kolonama, posebno kada je uvezano sa dinamično tipologisanom skriptnom jeziku. Ova tehnika nije prenosiva na druge SQL baze podataka. Nemogućnost da obezbijedi referencijalni integritet iz statično tipologisanih kolona, u tipičnim bazama podataka je najviše kritikovana. SQLite sajtovi ovo opisuju kao "stroga sklonost (strict affinity)" način, ali ova osobina nije još dodata.[5]

Neki računarski procesi ili niti mogu pristupati istim bazama podataka bez problema. Nekoliko mogućnosti čitanja mogu biti ostvarene paralelno. Mogućnost upisa je ostvarena samo ukoliko trenutno nije u toku drugi pokušaj pristupa bazi, inače pokušaj upisa propada sa porukom greške (ili automatski ponovo pokušava kada je podešeno tako). Ovakva situacija kod istovremenog pristupa bi se promijenila kod korištenja privremenih tabli.

Samostalan program sqlite3 se koristi za formiranje baze podataka, definisanje tabela unutar njih, umetanje i promjena redova, pokretanje upita i upravljanje fajlovima sa SQLite bazom podataka. Ovaj program je jedan izvršni fajl na lokalnoj mašini. On takođe služi kao primjerak za pisanje aplikacija koje koriste SQLite biblioteku.

SQLite takođe koristi spajalice za veliki broj programskih jezika, uključujući Bejsik, C, C++, Clipper, Common Lisp, Java, C#, Visual Basic, Delphi, Curl, Lua, Tcl, REBOL, R, PHP, Perl, Rubi, Objective-C (on Mac OS X), Piton, newLisp, Haskell, OCaml, Smalltalk i Scheme. Takođe postoje COM (ActiveX) omotači koji omogućavaju pristup SQLite-u na Vindouzu preko skriptnih jezika kao što su Javaskript i VBScript. Ovo omogućava korištenja baza podataka kod HTML aplikacija (HTA).[6]

Vidi još uredi

Reference uredi

  1. ^ Distinctive Features Of SQLite (3. mart 2008), pristup 9. jul 2009.
  2. ^ Owens, Michael (2006). The Definitive Guide to SQLite. Apress. ISBN 978-1-59059-673-9. doi:10.1007/978-1-4302-0172-4_1. 
  3. ^ „SQL Features That SQLite Does Not Implement”. SQLite. 1. 1. 2009. Pristupljeno 7. 2. 2009. 
  4. ^ „genfkey.README”. SQLite. 25. 2. 2009. Arhivirano iz originala 26. 12. 2008. g. Pristupljeno 18. 3. 2009. 
  5. ^ „Frequently Asked Questions”. SQLite. 26. 1. 2009. Pristupljeno 7. 2. 2009. 
  6. ^ „sqlite - Sqlite Wrappers”. SQLite. 7. 2. 2009. Arhivirano iz originala 5. 2. 2009. g. Pristupljeno 7. 2. 2009. 

Literatura uredi

Spoljašnje veze uredi