Beágyazott DBMS
A beágyazott adatbázis-kezelő rendszer olyan adatbázis-kezelő rendszerek architektúrája , ahol a DBMS szorosan kapcsolódik az alkalmazási programhoz, és ugyanazon a számítógépen fut anélkül, hogy szakmai adminisztrációt igényelne .
A beágyazott DBMS-eket sok olyan program használják, amelyek nagy mennyiségű adatot tárolnak, de nem igényelnek hozzáférést sok számítógéptől. A tapasztalatlan felhasználó „asztalán” is találhatók olyan programok, amelyek tartalmazhatnak beágyazott DBMS-t: levelezőkliensek és azonnali üzenetküldők (levelezési adatbázisok) [1] , médialejátszók ( lejátszási listák és borítók) [2] , képnézegetők ( metaadatok és miniatűrök) [3] , különféle helyi adatbázisok, például telefonkönyvek és földrajzi információs rendszerek (megadott adatok).
Korábban a helyi és a fájlkiszolgáló DBMS-ek olyan szkriptnyelvet biztosítottak , amelyen a felhasználó alkalmazásprogramot írhatott. Így van elrendezve a Microsoft Access , a FoxPro , a Clipper , az 1C: Accounting . Ennek a megközelítésnek a hátránya a létrejövő programok rendkívüli szegénysége, a korlátozott hibakereső eszközök. És gyakran nem volt olyan kompakt futtatókörnyezet, amelyet a programmal el lehetett volna terjeszteni; szüksége van egy programra - telepítse a teljes csomagot. A dinamikus linkelés és a nyílt forráskódú közösség elterjedésével az inga másfelé lendült: hagyja, hogy a programozó olyan magas szintű nyelven írja meg a programját, amelyik számára kényelmes. A DBMS csatlakozik a programhoz, és eggyé válik vele.
Jellemzők
Nincs külön szerver program
A fizikailag beágyazott DBMS egy olyan
könyvtár , amely statikusan vagy dinamikusan kapcsolódik a fő programhoz. A program és a DBMS nem
hálózati socketeken keresztül kommunikál , hanem egy speciális
API -n keresztül [4] [5] . Ennek azonban van egy hátránya: gyakran magának a programozónak kell megakadályoznia a
többszálú versenyeket .
Nagy sebesség és alacsony memóriafogyasztás, különösen hosszú
karakterláncokon és BLOB-
okon
A speciális API-nak köszönhetően az olvasási-írási műveletek száma minimális.
Az adatbázis szabványai szerint gyakran kicsi, az adatbázis maximális mérete
A gigabájt egységektől (a PC-memória mennyisége 2012-ben) a terabájt egységig (a merevlemez méretének nagyságrendjéig). Például az
SQLite mindig a memóriában tartja az adatbázis tartalomjegyzékét ( a fájlallokációs táblához hasonlóan ), ez korlátozza az adatbázis méretét
[6] .
Általában speciális lekérdezési nyelv, vagy nem teljesen kompatibilis az
SQL-92- vel
A teljesítmény érdekében a fejlesztők gyakran vagy hiányos SQL-t (
SQLite ),
[7] vagy speciális lekérdezési nyelvet (
BerkeleyDB ) alkalmaznak. Ráadásul a beágyazott DBMS-ek egészen más elven működhetnek, mint a kliens-szerverek: az adatbázisba irányuló
ping nulla, a lekérdezés pedig részenként, több DBMS-hívással is végrehajtható.
Jellemzően nincsenek felhasználói jogok
[7] ; egyszerű
tranzakciós elkülönítés
Nincs szükség nagyobb egyfelhasználós adatbázisra. A tranzakciókat általában
egyenkénti írási alapon izolálják szabványos operációs rendszer-mechanizmusok, például
fájlzárak használatával . Egy fájlhoz több programból is hozzá lehet férni: az
SQLite például sikeresen működik enyhén terhelt oldalakon
[6] . De a nagy terhelés túl nehéz neki.
Az adatbázis
archiválása és
replikációja általában nincs
A beágyazott adatbázis csak annyira megbízható, mint a DBMS-könyvtár és
a fájlrendszer , amelyen az adatbázis található. A jól ismert beágyazott DBMS-ek általában jól teszteltek
[ 8] , és a modern fájlrendszerek nagyon megbízhatóak. Az adatok elvesztésének azonban számos módja van,
[9] így az ilyen megoldások megbízhatósága gyengébb, mint a szerveroldali DBMS.
Általános szabály, hogy nincsenek olyan nyelvi eszközök, amelyek egyszerűsítenék az adatbázishoz való hozzáférést
A speciális DBMS-nyelvek, mint például az
xBase , általában egy lekérdezési nyelv és egy alkalmazásprogramozási nyelv kombinációja. Az általános célú programozási nyelvekben a kérés helyességét nem a fordításkor ellenőrzik, hanem csak akkor, amikor a kérést elküldik a DBMS-nek. És természetesen egy általános célú programozási nyelvben az adatbázis-hozzáférési struktúrák (mind a beágyazott, mind a kliens-szerver) nehézsúlyúak lesznek.
A
C# -nak azonban van egy LINQ lekérdezési nyelve , amely metódushívások kombinációjába fordítódik, amelyek általában sima
SQL -t készítenek elő .
Példák
- Accuracer adatbázisrendszer
- Advantage Database Server
- Oracle Berkeley DB
- CSQL
- EffiProz
- ElevateDB
- Empress Embedded Database
- Bővíthető tárolómotor
- eXtremeDB
- A Firebird beágyazott verziója
- HSQLDB
- InfinityDB
- Az Informix Dynamic Server beágyazott verziója
- Az InnoDB beágyazott verziója
- Az InterBase beágyazott verziója
- ITTIA DB
- Kiotói kabinet
- A MySQL beágyazott verziója
- NexusDB
- RDM beágyazott
- ScimoreDB
- SolidDB
- SQLite
- Microsoft SQL Server Compact
- TurboDB
- Valentina DB
- VistaDB
Jegyzetek
- ↑ A Skype különösen az SQLite -ot használja a levelezési adatbázisok tárolására
- ↑ Az AIMP az SQLite -ot használja a lejátszási listák tárolására
- ↑ Különösen az XnView miniatűröket és címkéket tárol az SQLite adatbázisban
- ↑ BerkeleyDB API példa
- ↑ SQLite API példa archiválva : 2012. december 20. a Wayback Machine -nél
- ↑ 1 2 SQLite használatával Archiválva : 2012. december 20. a Wayback Machine -nél
- ↑ 1 2 Ami nincs az SQLite -ban Archiválva : 2012. december 20. a Wayback Machine -nél
- ↑ Hogyan tesztelik az SQLite-t? Archivált 2012. december 21. a Wayback Machine -nél
- ↑ Hogyan lehet megrontani egy SQLite táblát Archiválva : 2014. augusztus 9. a Wayback Machine -nél