Vrstva abstrakce databáze

Databázová abstraktní vrstva (DBAL) je rozhraní pro programování aplikací, které sjednocuje komunikaci mezi počítačovou aplikací a systémy správy databází (DBMS) , jako je SQL Server, DB2 , MySQL , PostgreSQL , Oracle nebo SQLite . Tradičně všichni prodejci DBMS poskytují své vlastní rozhraní přizpůsobené jejich produktům, což umožňuje programátorovi implementovat kód pro všechna databázová rozhraní, která by chtěl podporovat. Abstrakce vrstvy snižují množství práce tím, že poskytují konzistentní API vývojáři a co nejvíce skrývají databázová specifika za toto rozhraní. V mnoha programovacích jazycích existuje mnoho vrstev abstrakce s různými rozhraními.

Vrstvy abstrakce databáze

Fyzická vrstva (nejnižší vrstva)

Nejnižší úroveň se připojuje k databázi a provádí skutečné operace požadované uživateli. Na této úrovni je koncepční instrukce přeložena do více instrukcí, kterým databáze rozumí. Provádění instrukcí ve správném pořadí umožňuje DAL provést koncepční instrukci.

Implementace fyzické vrstvy může používat rozhraní API specifická pro databázi nebo používat základní jazyk standardní technologie přístupu k databázi a verzi SQL .

Pro tuto vrstvu je nejspecifičtější implementace datových typů a operací.

Koncepční nebo logická úroveň (střední nebo vysoká úroveň)

Koncepční vrstva kombinuje externí koncepty a instrukce do mezilehlé datové struktury, kterou lze předávat do fyzických instrukcí. Tato vrstva je nejsložitější, protože zahrnuje vnější a fyzickou vrstvu. Také by měl pokrývat všechny podporované databáze a API.

Tato vrstva si je vědoma rozdílů mezi databázemi a je schopna ve všech případech vybudovat cestu pro provádění operací. Koncepční vrstva však spadá zpět do fyzické vrstvy pro vlastní realizaci každé jednotlivé operace.

Zobrazit úroveň (vnější úroveň)

Externí vrstva je přístupná uživatelům a vývojářům a poskytuje konzistentní rámec pro provádění databázových operací. Databázové operace jsou zastoupeny jen málo. S každou databází by se na této úrovni mělo zacházet stejně bez zjevného rozdílu navzdory různým fyzickým datovým typům a operacím.

Abstrakce databáze v API

Knihovny sjednocují přístup k databázím tím, že vývojáři aplikací poskytují jediné nízkoúrovňové programovací rozhraní. Jejich výhodou je rychlost a flexibilita, protože nejsou vázány na konkrétní dotazovací jazyk a k dosažení svého účelu potřebují implementovat pouze tenkou vrstvu. Protože jsou všechny dialekty SQL podobné, mohou vývojáři aplikací používat všechny jazykové funkce, například poskytnutím konfigurovatelných prvků pro případy specifické pro databázi, jako jsou typicky uživatelská ID a přihlašovací údaje. Tenká vrstva umožňuje stejným dotazům a operátorům pracovat napříč různými databázovými produkty s malou režií.

Populární použití pro databázové abstrakční vrstvy je v objektově orientovaných programovacích jazycích , které jsou podobné vrstvám abstrakce vrstvy API. V objektově orientovaných jazycích, jako je C++ nebo Java , může být databáze reprezentována objektem, jehož metody a členové (nebo ekvivalent v jiných programovacích jazycích) představují různé funkce databáze. Mají také výhody a nevýhody rozhraní na úrovni API.

Abstrakce na jazykové úrovni

Příkladem vrstvy abstrakce databáze na jazykové úrovni může být ODBC . ODBC je platformově nezávislá implementace vrstvy abstrakce databáze. Uživatel si nainstaluje speciální software, pomocí kterého může ODBC komunikovat s databází nebo sadou databází. Uživatel má pak možnost vytvořit propojení programu s ODBC, které pak přenáší výsledky mezi uživatelskými programy a databází. Nevýhodou této úrovně abstrakce je zvýšená režie pro převod instrukcí na konstrukce, kterým cílová databáze rozumí.

Argumenty pro DAL

Vývojové období

Vývojáři softwaru potřebují znát rozhraní API pro abstrakci databáze, ne všechna rozhraní API, která musí jejich aplikace podporovat. Čím více databází bude podporováno, tím větší bude úspora času. Širší základní instalační kapacita.

Použití vrstvy abstrakce databáze znamená, že nové instalace nepotřebují používat konkrétní DBMS, což znamená, že noví uživatelé, kteří nechtějí nebo nemohou přepínat databáze, mohou použít instalace ve své stávající infrastruktuře.

Možnost budoucího použití

S příchodem nových databázových technologií se vývojáři softwaru nebudou muset přizpůsobovat novým rozhraním.

Přidávání funkcí do databází

V závislosti na DBMS může DAL přidat funkcionalitu do databáze. DAL může používat databázové programovací nástroje nebo jiné metody k vytvoření standardních, ale nepodporovaných funkcí nebo zcela nových funkcí. Například DBVolution DAL implementuje funkci směrodatné odchylky pro několik DBMS, které ji nepodporují.

Argumenty proti DAL

Rychlost

Jakákoli úroveň abstrakce sníží celkovou rychlost v závislosti na množství kódu navíc, který je třeba provést. Čím více vrstva DBMS abstrahuje od nativního databázového rozhraní a snaží se emulovat funkce, které se nenacházejí ve všech základních komponentách, tím pomalejší je celkový výkon. To platí zejména pro abstraktní vrstvy, které se snaží sjednotit dotazovací jazyk stejným způsobem jako ODBC.

Závislost

Vrstva abstrakce databáze poskytuje další funkční závislost pro softwarový systém, což znamená, že tato vrstva, stejně jako všechno ostatní, může být časem zastaralá nebo nepodporovaná.

Omezení provozu

Úrovně abstrakce mohou omezit počet operací DBMS dostupných pro podmnožinu podporovaných databází. Zejména abstraktní vrstvy nemusí plně podporovat optimalizaci back-endu nebo funkce ladění . Tyto problémy se výrazně zvyšují s velikostí, měřítkem a složitostí databáze.

Odkazy