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
- Databázový systém Accuracer
- Advantage Database Server
- Oracle Berkeley DB
- CSQL
- EffiProz
- ElevateDB
- Embedded databáze císařovny
- Extensible Storage Engine
- eXtremeDB
- Vestavěná verze Firebirdu
- HSQLDB
- InfinityDB
- Vestavěná verze serveru Informix Dynamic Server
- Vestavěná verze InnoDB
- Vestavěná verze InterBase
- ITTIA DB
- Kjótský kabinet
- Vestavěná verze MySQL
- NexusDB
- RDM Embedded
- ScimoreDB
- SolidDB
- SQLite
- Microsoft SQL Server Compact
- TurboDB
- Valentina DB
- VistaDB
Poznámky
- ↑ Konkrétně Skype používá SQLite k ukládání databází korespondence
- ↑ Konkrétně AIMP používá SQLite k ukládání seznamů skladeb
- ↑ Konkrétně XnView ukládá miniatury a značky do databáze SQLite
- ↑ Příklad BerkeleyDB API
- ↑ Příklad SQLite API Archivováno 20. prosince 2012 na Wayback Machine
- ↑ 1 2 Používání SQLite Archivováno 20. prosince 2012 na Wayback Machine
- ↑ 1 2 Co není v SQLite Archivováno 20. prosince 2012 na Wayback Machine
- ↑ Jak se testuje SQLite Archivováno 21. prosince 2012 na Wayback Machine
- ↑ Jak poškodit tabulku SQLite Archivováno 9. srpna 2014 na Wayback Machine