Adatbázis absztrakciós réteg

Az adatbázis-absztrakciós réteg (DBAL) olyan alkalmazásprogramozási felület, amely egyesíti a kommunikációt a számítógépes alkalmazások és az adatbázis-kezelő rendszerek (DBMS) között, mint például az SQL Server, DB2 , MySQL , PostgreSQL , Oracle vagy SQLite . Hagyományosan minden DBMS-szállító saját, termékeihez szabott felületet biztosít, lehetővé téve a programozó számára, hogy kódot implementáljon az összes támogatni kívánt adatbázis-interfészhez. Az absztrakciós rétegek csökkentik a munka mennyiségét azáltal, hogy konzisztens API -t biztosítanak a fejlesztőnek, és amennyire csak lehetséges elrejtik az adatbázis sajátosságait e felület mögé. Az absztrakciónak sok rétege van különböző interfészekkel számos programozási nyelvben.

Adatbázis-absztrakciós rétegek

Fizikai réteg (legalacsonyabb réteg)

A legalacsonyabb szint csatlakozik az adatbázishoz és végzi el a felhasználók által igényelt tényleges műveleteket. Ezen a szinten a fogalmi utasítást több utasításra fordítják, amelyeket az adatbázis megért. Az utasítások megfelelő sorrendben történő végrehajtása lehetővé teszi a DAL számára a fogalmi utasítás végrehajtását.

A fizikai réteg megvalósítása használhat adatbázis-specifikus API-kat, vagy használhatja az alapul szolgáló szabványos adatbázis-elérési technológia nyelvét és az SQL verzióját .

Az adattípusok és műveletek megvalósítása a legspecifikusabb erre a rétegre.

Fogalmi vagy logikai szint (közepes vagy magas szint)

A fogalmi réteg a külső fogalmakat és utasításokat egy köztes adatszerkezetté egyesíti, amelyek fizikai utasításokba adhatók át. Ez a réteg a legösszetettebb, mivel átfogja a külső és a fizikai réteget. Ezenkívül le kell fednie az összes támogatott adatbázist és API-t.

Ez a réteg tisztában van az adatbázisok közötti különbségekkel, és minden esetben képes útvonalat építeni a műveletek végrehajtásához. A fogalmi réteg azonban az egyes műveletek tényleges végrehajtásához a fizikai rétegre esik vissza.

Szint megtekintése (külső szint)

A külső réteg elérhető a felhasználók és a fejlesztők számára, és konzisztens keretet biztosít az adatbázis-műveletek végrehajtásához. Az adatbázis-műveletek csak gyengén vannak ábrázolva. Ezen a szinten minden adatbázist egyformán kell kezelni, a különböző fizikai adattípusok és műveletek ellenére látható különbségek nélkül.

Adatbázis-absztrakció az API-ban

A könyvtárak egységesítik az adatbázis-hozzáférést azáltal, hogy egyetlen alacsony szintű programozási felületet biztosítanak az alkalmazásfejlesztőknek. Előnyük a gyorsaság és a rugalmasság, mivel nincsenek egy adott lekérdezési nyelvhez kötve, és céljuk eléréséhez csak egy vékony réteget kell megvalósítaniuk. Mivel minden SQL dialektus hasonló, az alkalmazásfejlesztők használhatják az összes nyelvi funkciót, talán az adatbázis-specifikus esetekhez konfigurálható elemek, például általában felhasználói azonosítók és hitelesítő adatok biztosításával. A vékony réteg lehetővé teszi, hogy ugyanazok a lekérdezések és operátorok különböző adatbázistermékeken dolgozzanak kis többletköltséggel.

Az adatbázis-absztrakciós rétegek népszerű alkalmazása az objektum-orientált programozási nyelvekben , amelyek hasonlóak az API-réteg absztrakciós rétegeihez. Az objektum-orientált nyelvekben, mint például a C++ vagy a Java , egy adatbázist olyan objektum ábrázolhat, amelynek metódusai és tagjai (vagy ennek megfelelői más programozási nyelvekben) különféle adatbázis-funkciókat képviselnek. Megvannak az API szintű interfészek előnyei és hátrányai is.

Absztrakció nyelvi szinten

Nyelvi szintű adatbázis-absztrakciós rétegre példa az ODBC . Az ODBC az adatbázis-absztrakciós réteg platformfüggetlen megvalósítása. A felhasználó speciális szoftvert telepít, amellyel az ODBC kommunikálhat egy adatbázissal vagy adatbázis-készlettel. Ezután a felhasználónak lehetősége van programkapcsolatot létrehozni az ODBC-vel, amely az eredményeket továbbítja a felhasználói programok és az adatbázis között. Ennek az absztrakciós szintnek a hátránya, hogy megnövekedett többletköltség az utasítások olyan konstrukciókká konvertálásához, amelyeket a céladatbázis megért.

Érvek a DAL mellett

Fejlesztési időszak

A szoftverfejlesztőknek ismerniük kell az adatbázis-absztrakciós API-t, nem minden API-t, amelyet alkalmazásuknak támogatnia kell. Minél több adatbázist kell támogatni, annál nagyobb az időmegtakarítás. Szélesebb alap beépítési kapacitás.

Az adatbázis-absztrakciós réteg használata azt jelenti, hogy az új telepítéseknek nem kell egy adott DBMS-t használniuk, vagyis azok az új felhasználók, akik nem akarnak vagy nem tudnak adatbázist váltani, telepíthetik meglévő infrastruktúrájukra a telepítéseket.

A jövőbeni felhasználás lehetősége

Az új adatbázis-technológiák megjelenésével a szoftverfejlesztőknek nem kell alkalmazkodniuk az új interfészekhez.

Függvények hozzáadása adatbázisokhoz

A DBMS-től függően a DAL funkcionalitással bővítheti az adatbázist. A DAL adatbázis-programozási eszközöket vagy más módszereket használhat szabványos, de nem támogatott szolgáltatások vagy teljesen új szolgáltatások létrehozására. Például a DBVolution DAL megvalósítja a szórás függvényt több olyan DBMS-hez, amely nem támogatja azt.

Érvek a DAL ellen

Sebesség

Bármilyen szintű absztrakció csökkenti a teljes sebességet attól függően, hogy mennyi extra kódot kell végrehajtani. Minél jobban elvonatkoztat a DBMS-réteg a natív adatbázis-felülettől, és olyan funkciókat próbál emulálni, amelyek nem találhatók meg az összes mögöttes összetevőben, annál lassabb az általános teljesítmény. Ez különösen igaz azokra az absztrakciós rétegekre, amelyek az ODBC-hez hasonlóan próbálják egységesíteni a lekérdezési nyelvet.

Függőség

Az adatbázis-absztrakciós réteg egy másik funkcionális függőséget biztosít egy szoftverrendszer számára, ami azt jelenti, hogy ez a réteg, mint minden más, idővel elavulttá vagy nem támogatottá válhat.

Működési korlátozás

Az absztrakciós szintek korlátozhatják a támogatott adatbázisok egy részhalmazára elérhető DBMS-műveletek számát. Előfordulhat, hogy az absztrakciós rétegek nem támogatják teljes mértékben a háttéroptimalizálást vagy a hibakeresési funkciókat . Ezek a problémák jelentősen nőnek az adatbázis méretével, méretével és összetettségével.

Linkek