SQLite
SQLite | |
![]() | |
![]() | |
Fejlesztő | D. Richard Hipp |
Legfrissebb stabil kiadás | 3.6.10 (2009. január 15.) |
Programozási nyelv | C |
Operációs rendszer | platformfüggetlen |
Kategória | adatbázis-kezelés |
Licenc | közkincs |
A SQLite weboldala |
Az SQLite önálló, kisméretű (kb. 500 KiB), C forrású programkönyvtárként (library) megvalósított ACID-kompatibilis relációs adatbázis-kezelő rendszer, illetve adatbázismotor.
A kliens-szerver architektúrájú adatbázis-kezelő rendszerekkel ellentétben az SQLite motor nem egy különálló folyamat, amellyel a program kommunikál, hanem a program részét alkotja, ahhoz hozzálinkelt programkönyvtár lévén. Dinamikusan is meghívható. A program így függvényhívásokon keresztül használhatja az SQLite által lehetőségeit, funkcionalitását, és ez csökkenti az adatbázis eléréséhez szükséges várakozási időt (latency), mivel a függvényhívások egyszerűen gyorsabbak, mint a folyamatok közötti kommunikáció (inter-process communication). A teljes adatbázis (definíciók, táblák, indexek és maguk az adatok is) egyetlen platformfüggetlen fájlban tárolódik a programot futtató számítógépen. Ez az egyszerű felépítés azon alapszik, hogy a zárolási technika (locking) az egész adatbázis-állományt zárolja egy tranzakció kezdetekor.
A szoftvert D. Richard Hipp tervezte és alkotta meg. Az SQLite forráskódja nyílt, közkincsnek számít.
Egyre több népszerű szoftver használja az SQLite-ot, például a Mozilla Firefox újabb verziói a konfigurációs adatokat, könyvjelzőket, sütiket tárolják SQLite adatbázisban. Bővebb lista található a SQLite weboldalán.[1]
Az SQLite jellemzői
Az SQLite megvalósítja az SQL-92 szabvány nagy részét, így pl. részlegesen támogatja a triggereket és a legtöbb komplex / összetett lekérdezést, de nem támogatja a referenciális integritási kényszerek használatát.[2]
Az SQLite szokatlan típuskezelést használ az SQL adatbázis-kezelőhöz: egy adattípus nem egy tábla oszlopaihoz, hanem az egyedi értékekhez van hozzárendelve, más szóval dinamikus típuskezelést használ. Emellett gyengén típusos adatkezelés található benne, ami kicsit emlékeztet a Perl módszerére: string típusú adat beilleszthető integer oszlopba, igaz, hogy ekkor a SQLite először a stringet integerre konvertálja, ha az oszlop preferált típusa integer. Ez nagyobb rugalmasságot ad az oszlopoknak, ami hasznos lehet dinamikus típuskezelésű script-nyelvekben való alkalmazás esetén, azonban ez a technika nem átvihető más SQL adatbázis-kezelőkbe. Általános kritika, hogy az SQLite képtelen a tipikus adatbázisokban található szigorúan típusos oszlopok kezelésére. Az SQLite weboldal említ egy „szigorú affinitási” (strict affinity) üzemmódot, de ez csak a SQLite 3-as verziójától kezdve elérhető.[3]
Ugyanazt az adatbázist több processz és szál használhatja egyidejűleg problémamentesen. Az olvasási kérelmek kiszolgálása párhuzamosan történik. Az írási kérelmek végrehajtása akkor történik meg, amikor nincs folyamatban más kérelem kiszolgálása, egyébként az írási kérelem sikertelen lesz és hibakóddal tér vissza, illetve lehetőség van egy beállítható várakozási idő elteltével a kérelem ismétlésére. Ez a konkurens hozzáférési állapot megváltozhat ideiglenes táblák használata esetén.
Különálló program – az sqlite3 – segítségével kezelhetők az adatbázisok (adatbázisok és táblák létrehozása, SQL utasítások). Ez a program egyetlen végrehajtható állomány a gazdaszámítógépen. Mivel ennek a forráskódja is nyílt, gyakorlati példaként szolgálhat egyéb SQLite könyvtárat használó alkalmazások írásához.
Az SQLite számos programnyelvből használható, így BASIC, C, C++, Common Lisp, Java, C#, Visual Basic .NET, Delphi, Curl, Lua, Tcl, R, PHP, Perl, Ruby, Objective-C (Mac OS X-en), Python, newLisp, Haskell, OCaml, Smalltalk és Scheme nyelvekhez rendelkezik illesztőfelülettel. Létezik COM (ActiveX) burkolat (wrapper) is, amelynek segítségével a Windowsban használható script-nyelvekből (pl. Javascript, VBScript) is elérhető a SQLite, ezáltal adatbázis-kezelési lehetőségek adhatók a HTML alkalmazásokhoz.[4]
Tools
Lásd még
- Relációs adatbázis-kezelő
- w:List of relational database management systems
- w:Comparison of relational database management systems
- w:SQLite Manager
- w:SQLPro SQL client
További olvasmányok
- Owens, Michael. The Definitive Guide to SQLite. Apress (2006). ISBN 978-1-59059-673-9
- SQLite Tutorial An article exploring the power and simplicity of SQLite.
Hivatkozások
- ↑ http://sqlite.org/famous.html
- ↑ SQL Features That SQLite Does Not Implement
- ↑ Sqlite FAQ
- ↑ sqlite - Sqlite Wrappers