Vestavěný DBMS

Vestavěný systém správy databází  je architektura systémů správy databází, kdy je DBMS úzce propojena s aplikačním programem a běží na stejném počítači bez nutnosti profesionální správy .

Vestavěné DBMS se používají v mnoha programech, které ukládají velké množství dat, ale nevyžadují přístup z mnoha počítačů. Na „desktopu“ nezkušeného uživatele jsou také programy, které mohou obsahovat vestavěný DBMS: poštovní klienti a instant messenger (korespondenční databáze) [1] , přehrávače médií ( playlisty a obaly) [2] , prohlížeče obrázků ( metadata a náhledy) [3] , různé místní databáze, jako jsou telefonní seznamy a geografické informační systémy (poskytovaná data).

V minulosti poskytovaly lokální a souborové servery DBMS skriptovací jazyk , ve kterém mohl uživatel psát aplikační program. Takto jsou uspořádány Microsoft Access , FoxPro , Clipper , 1C: Accounting . Nevýhodou tohoto přístupu byla extrémní chudoba výsledných programů, omezené ladicí nástroje. A často neexistovalo žádné kompaktní běhové prostředí, které by bylo možné distribuovat s programem; potřebujete program - nainstalujte celý balíček. S rozšířením dynamického linkování a open source komunitou se kyvadlo obrátilo na druhou stranu: nechte programátora napsat svůj program v jazyce na vysoké úrovni , který je vhodný. DBMS bude připojen k programu a stane se jedním s ním.

Funkce

Žádný samostatný serverový program Fyzicky zabudovaný DBMS je knihovna staticky nebo dynamicky propojená s hlavním programem. Program a DBMS nekomunikují přes síťové zásuvky , ale přes specializované API [4] [5] . To má však nevýhodu: často sám programátor musí zabránit vícevláknovým závodům . Vysoká rychlost a nízká spotřeba paměti, zejména na dlouhých řetězcích a BLOBech Díky specializovanému API je počet operací čtení a zápisu minimální. Často malá podle standardů databáze, maximální velikost databáze Od jednotek gigabajtů (množství paměti PC v roce 2012) po jednotky terabajtů (řádově velikosti pevného disku). Například SQLite vždy uchovává v paměti obsah databáze (obdobně jako alokační tabulka souborů ), což omezuje velikost databáze [6] . Obvykle specializovaný dotazovací jazyk nebo není plně kompatibilní s SQL-92 Kvůli výkonu vývojáři často implementují buď neúplné SQL ( SQLite ), [7] nebo specializovaný dotazovací jazyk ( BerkeleyDB ). Kromě toho mohou embedded DBMS fungovat na úplně jiném principu než ty klient-server: ping do databáze je nulový a dotaz lze provádět po částech, s několika voláními do DBMS. Obvykle neexistují žádná uživatelská práva [7] ; jednoduchá izolace transakcí Větší databáze pro jednoho uživatele není potřeba. Obvykle jsou transakce izolovány na základě zápisu po jednom pomocí standardních mechanismů operačního systému, jako jsou zámky souborů . Přístup k jednomu souboru lze zřídit z více programů: například SQLite úspěšně funguje na málo zatížených webech [6] . Ale vysoká zátěž je pro něj příliš náročná. Zpravidla nedochází k archivaci a replikaci databáze Vestavěná databáze je pouze tak spolehlivá jako knihovna DBMS a souborový systém, na kterém je databáze umístěna. Známé embedded DBMS bývají dobře testovány [ 8] a moderní souborové systémy jsou velmi spolehlivé. Existuje však mnoho způsobů, jak ztratit data, [9] takže tato řešení jsou ve spolehlivosti horší než DBMS na straně serveru. Zpravidla neexistují žádné jazykové nástroje, které zjednodušují přístup k databázi Specializované jazyky DBMS jako xBase jsou obvykle kombinací dotazovacího jazyka a aplikačního programovacího jazyka. V programovacích jazycích pro všeobecné použití nebude správnost požadavku kontrolována při kompilaci, ale pouze při odeslání požadavku do DBMS. A samozřejmě v programovacím jazyce pro všeobecné účely budou mít struktury pro přístup k databázím (jak vestavěné, tak klient-server) velkou váhu. C# však má dotazovací jazyk LINQ , který se kompiluje do kombinace volání metod, které obvykle připravují prostý SQL .

Příklady

Poznámky

  1. Konkrétně Skype používá SQLite k ukládání databází korespondence
  2. Konkrétně AIMP používá SQLite k ukládání seznamů skladeb
  3. Konkrétně XnView ukládá miniatury a značky do databáze SQLite
  4. Příklad BerkeleyDB  API
  5. Příklad SQLite API Archivováno 20. prosince 2012 na Wayback Machine 
  6. 1 2 Používání SQLite Archivováno 20. prosince 2012 na Wayback Machine 
  7. 1 2 Co není v SQLite Archivováno 20. prosince 2012 na Wayback Machine 
  8. Jak se testuje SQLite Archivováno 21. prosince 2012 na Wayback Machine 
  9. Jak poškodit tabulku SQLite Archivováno 9. srpna 2014 na Wayback Machine