SQLite

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

Fejlesztő D. Richard Hipp
Legfrissebb stabil kiadás 3.10.2 (2016. január 20.) [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 nem alkalmazza a hagyományos SQL rendszerekben megszokott szigorú mezőtípus-kezelést: 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 a Perlre emlékeztető gyengén típusos adatkezelés található benne: a mezőknek típus helyett affinitásuk (preferált típus) van. Például string típusú adat beilleszthető integer affinitású oszlopba; ha az SQLite sikeresen tudja konvertálni integerré, akkor úgy tárolja, egyébként meghagyja az adat eredeti típusát.[4] 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. A szigorúan típusos oszlopokat szimulálhatjuk az egyes mezőkre megadott megszorításokkal. [5]

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ó.[6]

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.[7]

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).[8]

Eszközök[szerkesztés | forrásszöveg szerkesztése]

Kapcsolódó szócikkek[szerkesztés | forrásszöveg szerkesztése]

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

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

További információk[szerkesztés | forrásszöveg szerkesztése]