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

Jegyzetek

  1. A Skype különösen az SQLite -ot használja a levelezési adatbázisok tárolására
  2. Az AIMP az SQLite -ot használja a lejátszási listák tárolására
  3. Különösen az XnView miniatűröket és címkéket tárol az SQLite adatbázisban
  4. ↑ BerkeleyDB API példa 
  5. SQLite API példa archiválva : 2012. december 20. a Wayback Machine -nél 
  6. 1 2 SQLite használatával Archiválva : 2012. december 20. a Wayback Machine -nél 
  7. 1 2 Ami nincs az SQLite -ban Archiválva : 2012. december 20. a Wayback Machine -nél 
  8. Hogyan tesztelik az SQLite-t? Archivált 2012. december 21. a Wayback Machine -nél 
  9. Hogyan lehet megrontani egy SQLite táblát Archiválva : 2014. augusztus 9. a Wayback Machine -nél