SQLite

A Wikipédiából, a szabad enciklopédiából
SQLite
SQLite370.svg

Fejlesztő D. Richard Hipp
Legfrissebb stabil kiadás 3.8.6 (2014. augusztus 15.) [1] +/-
Legfrissebb fejlesztői kiadás ismeretlen +/-
Programozási nyelv C
Operációs rendszer platformfüggetlen
Kategória adatbázis-kezelő rendszer
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 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 alapul, 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.[2]

Az SQLite jellemzői[szerkesztés | forrásszöveg szerkesztése]

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 a referenciális integritási kényszerek használatát csak a 3.6.19 verziótól kezdődően támogatja.[3]

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 vihető át 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ő.[4]

Az SQLite-ot kis erőforrásigényű rendszernek tervezték. A lefordított bináris könyvtár mérete (megfelelő paraméterezéssel) 500KiB alá is szorítható, annak ellenére, hogy a kód különböző architektúrák széles skáláján lefordítható.[5]

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 és fejlesztőkörnyezetből használható, így BASIC, C, C++, Common Lisp, Java, C#, Visual Basic .NET, Delphi, Free Pascal, 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.[6]

Az SQLite a szöveg típusú adatokat belsőleg alapértelmezetten UTF-8-ban tárolja, de az API UTF-16 kódolású stringekkel is megbirkózik. Csak bináris típusú rendezést (collation) valósították meg (a bináris rendezés egyúttal alkalmazható ASCII stringek rendezésére is), de a célunknak (adott esetben saját nyelvünknek) megfelelő rendező függvényt is bejegyezhetünk, melyet nekünk kell implementálnunk (vagy más library ilyen lehetőségét felhasználnunk). [7]

Tools[szerkesztés | forrásszöveg szerkesztése]

Lásd még[szerkesztés | forrásszöveg szerkesztése]

További olvasmányok[szerkesztés | forrásszöveg szerkesztése]

Hivatkozások[szerkesztés | forrásszöveg szerkesztése]

Külső hivatkozások[szerkesztés | forrásszöveg szerkesztése]