SQLite је ACID-компатибилан уграђен систем за управљање базама података садржан у релативно малој (~225 КБ[1]) C програмској библиотеци. Изворни код за SQLite је у јавном власништву.
За разлику од клијент-сервер система за управљање базама података, језгро SQLite-а није самосталан процес са којим апликација комуницира. Умјесто тога, SQLite библиотека је увезана и постаје саставни дио апликације. Библиотека може бити динамично позивана. Апликација користи SQLite функционалност кроз просте функционалне позиве, који смањују латенцију у приступу базама података како су функционални позиви унутар једног процеса ефикаснији од међупроцесне комуникације. Комплетна база података (дефинисање, табле, индекси и сами подаци) као један међуплатформни фајл на машини домаћину. Овако прост дизајн је постигнут закључавањем комплетног фајла базе података на почетку трансакције.
SQLite је уграђен у све већи број популарних програма. На примјер, Мозила фајерфокс похрањује мноштво конфигурационих података, (букмаркови, кукији, итд.), у интерно управљану SQLite базу података. Као други примјер, Гуглов Андроид оперативни систем за мобилне телефоне и друге мале уређаје садржи SQLite.
Историја
SQLite је направио Д. Ричард Хип (енгл. D. Richard Hipp) у прољеће 2000. док је радио за General Dynamics по уговору са Морнарицом САД.[2]Хип је софтвер користио на броду разарачу који је носио вођене пројектиле, који је оригинално био базиран на HP-UX-у са ИБМ информикс базом података. План пројектаната је био да се омогући функционисање програма без потребе да се користи база података. У августу 2000-е, издата је 1.0 верзија, базирана на gdbm (ГНУ Управљачу База података). SQLite 2.0 је замијенио gdbm имплементацијом која је користила модификовано Б-стабло и додавала подршку за преношење.
Особине
SQLite проводи већину SQL-92 стандарда за SQL. На примјер, има дјелимичну подршку за окидаче и подржава и најкомплексније претраге, али непримјетно игнорише ограничења референцијалног интегритета (ограничење страног кључа)[3]осим у случају да се користи кодна .genfkey
команда за sqlite3
алат шкољке да се израде окидачи.[4]
SQLite користи неуобичајену типолологију за SQL-компатибилне СУБП. Умјесто да додијели тип колони, као у већини SQL базираних система, типови су додијељени појединачним вриједностима; у језичком смислу то је динамично типологисано. Још више, то је седмично типологисано у истом маниру као што Перл: може се уметнути веза у колону дјелиоца (иако ће SQLite покушати да прво претвори везу у дјелиоца ако је жељени тип дјелилац). Ово додаје флексибилност колонама, посебно када је увезано са динамично типологисаном скриптном језику. Ова техника није преносива на друге SQL базе података. Немогућност да обезбиједи референцијални интегритет из статично типологисаних колона, у типичним базама података је највише критикована. SQLite сајтови ово описују као "строга склоност (strict affinity)" начин, али ова особина није још додата.[5]
Неки рачунарски процеси или нити могу приступати истим базама података без проблема. Неколико могућности читања могу бити остварене паралелно. Могућност уписа је остварена само уколико тренутно није у току други покушај приступа бази, иначе покушај уписа пропада са поруком грешке (или аутоматски поново покушава када је подешено тако). Оваква ситуација код истовременог приступа би се промијенила код кориштења привремених табли.
Самосталан програм sqlite3 се користи за формирање базе података, дефинисање табела унутар њих, уметање и промјена редова, покретање упита и управљање фајловима са SQLite базом података. Овај програм је један извршни фајл на локалној машини. Он такође служи као примјерак за писање апликација које користе SQLite библиотеку.
SQLite такође користи спајалице за велики број програмских језика, укључујући Бејсик, C, C++, Clipper, Common Lisp, Јава, C#, Visual Basic, Delphi, Curl, Lua, Tcl, REBOL, R, PHP, Perl, Руби, Objective-C (on Mac OS X), Питон, newLisp, Haskell, OCaml, Smalltalk и Scheme. Такође постоје COM (ActiveX) омотачи који омогућавају приступ SQLite-у на Виндоузу преко скриптних језика као што су Јаваскрипт и VBScript. Ово омогућава кориштења база података код HTML апликација (HTA).[6]
Види још
Референце
Литература
Спољашње везе