SQLite
SQLite је ACID-компатибилан уграђен систем за управљање базама података садржан у релативно малој (~225 КБ[1]) C програмској библиотеци. Изворни код за SQLite је у јавном власништву.
Оригинални аутор(и) | D. Richard Hipp |
---|---|
Прво издање | август 2000. |
Стабилно издање | |
Репозиторијум | |
Написан у | C |
Оперативни систем | Вишеплатформно |
Величина | ~699 kB |
Тип | СУРБП |
Лиценца | Јавно власништво |
Веб-сајт | http://www.sqlite.org/ |
За разлику од клијент-сервер система за управљање базама података, језгро 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]
Види још
уредиРеференце
уреди- ^ Distinctive Features Of SQLite (3. март 2008), приступ 9. јул 2009.
- ^ Owens, Michael (2006). The Definitive Guide to SQLite. Apress. ISBN 978-1-59059-673-9. doi:10.1007/978-1-4302-0172-4_1.
- ^ „SQL Features That SQLite Does Not Implement”. SQLite. 1. 1. 2009. Приступљено 7. 2. 2009.
- ^ „genfkey.README”. SQLite. 25. 2. 2009. Архивирано из оригинала 26. 12. 2008. г. Приступљено 18. 3. 2009.
- ^ „Frequently Asked Questions”. SQLite. 26. 1. 2009. Приступљено 7. 2. 2009.
- ^ „sqlite - Sqlite Wrappers”. SQLite. 7. 2. 2009. Архивирано из оригинала 5. 2. 2009. г. Приступљено 7. 2. 2009.
Литература
уреди- Owens, Mike (25. 5. 2006). The Definitive Guide to SQLite (First изд.). Apress. стр. 464. ISBN 978-1-59059-673-9. Архивирано из оригинала 24. 07. 2009. г. Приступљено 14. 08. 2009.
- Newman, Chris (9. 11. 2004). SQLite (Developer's Library) (First изд.). Sams. стр. 336. ISBN 978-0-672-32685-1.
- Owens, Michael (2006). The Definitive Guide to SQLite. Apress. ISBN 978-1-59059-673-9. doi:10.1007/978-1-4302-0172-4_1.
Спољашње везе
уреди- SQLite home page
- Linux Format интервију са Ричардом Хипом
- Аудио интервију са Ричардом Хипом на FLOSS Weekly
- SQLite Туторијал Чланак који истражује снагу и једноставност SQLite-а.