Az adat-hozzáférési technológiák fejlődése, az ablakok pro
IT infrastruktúra az Ön vállalkozása számára
Amint új technológiákba kezdünk, elfelejtjük, hogyan fejlődött ki és mi a racionális mögött. Miután nyomon követte az adatbázis technológiák fejlesztését az ODBC-ből az ADO.NET-re, könnyebb kiválasztani a megfelelő technológiát, és optimalizálni azt a saját célokra.
A legtöbb adatbázis-tervezési rendszerben az alkalmazások egyfajta adatbázisra épülnek. Ilyen egyszerű rendszerekben az alkalmazásfejlesztő közvetlenül programozhatja az adatbázis rendszerfelületét. Bár ez a megközelítés gyors és hatékony hozzáférést biztosít az adatokhoz, problémák merülhetnek fel, amikor a feladat bővül, és a fejlesztőnek módosítania kell a programot. Ezzel a megközelítéssel ez azt jelenti, hogy minden egyes kész programnak különböző verziójúnak kell lennie különböző adatbázisok támogatásával. Ha a vállalatok kibővítik vagy összefonódnak egymással, az alkalmazásnak hozzáférést kell biztosítania a különböző platformokon alapuló adatbázisokhoz.
Az ODBC technológia közös interfészt biztosít a heterogén SQL adatbázisok eléréséhez. Az ODBC az SQL-nyelvet használja az adatok elérésének szabványaként. Az 1. ábra az ODBC architektúrát mutatja. Ez az interfész nagyon kényelmes: az egyik alkalmazás különböző SQL adatbázisokat képes elérni egy közös parancssoron keresztül. Így a fejlesztõ képes létrehozni és terjeszteni az alkalmazásokat anélkül, hogy egy bizonyos adatbázishoz kellene kötni.
1. ábra: ODBC architektúra.
Hozzáadhat egy adatbázis-illesztőprogramot is, hogy az alkalmazás működjön az adatbázisban a felhasználó választása szerint. Amint az az 1. ábrán látható, a meghajtó menedzser közbenső kapcsolat az alkalmazás és az adatbázisok között. Az ODBC interfész olyan funkciókat tartalmaz, amelyek az egyes adatbázis-eszközöket vezérlik. Ha az alkalmazásnak meg kell változtatnia az alkalmazott adatbázist, a fejlesztő egyszerűen helyettesít egy másik illesztőprogramot, és az alkalmazás a szokásos módon működik, anélkül, hogy módosítania kellene a programkódot.
2. ábra. DAO használata az adatbázis eléréséhez.
Az ODBC alacsony szintű interfészt használ, így a C és C ++ programozók valóban kihasználják az ODBC technológia összes előnyét. A Visual Basic (VB) programozói nem rendelkeznek egyszerű hozzáféréssel az ODBC felülethez. A VB 6.0 megjelenése előtt a fejlesztők magas szintű adatelérést alkalmaztak. A 2. ábra azt mutatja, hogy a VB programozók hogyan használják az adatbeviteli objektum (DAO) technológiát az adatok eléréséhez.
3. ábra. RDO használata az adatbázis eléréséhez.
A DAO alapja a Microsoft Jet adatbázis-technológia, a Microsoft Access számára tervezett adatbázis-motor. A JET volt az első objektum-orientált interfész az Access-tel való kommunikációhoz. Az Access alkalmazásokat használó alkalmazások a DAO segítségével közvetlenül hozzáférhetnek az adatokhoz. Mivel a DAO közvetlenül az Access után jött létre, ennek a technológiának a alkalmazása a leggyorsabb és leghatékonyabb módja az Access adatbázisok elérésének. A DAO az Accessen kívül más adatbázisokkal is dolgozhat, mint például az SQL Server és az Oracle. A DAO ODBC-t használ, de mivel a DAO módszert kifejezetten a JET-hez való kapcsolódásra tervezték, a JET a kéréseket fordítja le a DAO és az ODBC között. Ez a további fordítási lépés az oka annak, hogy a hozzáféréstől eltérő adatbázisokkal lassítja a munkát.
4. ábra: ODBCDirect architektúra.
E korlátozás leküzdésére a Microsoft fejlesztői RDO-t hoztak létre. A 3. ábra azt mutatja, hogy az RDO közvetlenül elérte az ODBC API-t, megkerülve a JET-et. Ezután bevezetésre került az ODBCDirect, a DAO kiterjesztés, amely az RDO-ta háttérbe szorítja. A 4. ábra azt mutatja be, hogy az ODBCDirect segítségével működő DAO alkalmazás hozzáférést biztosít az adatbázishoz, megkerülve azokat a problémákat, amelyeket a JET hív.
Néhány évvel később az ODBC az ügyfél-kiszolgáló adatbázis-hozzáférésének szabványává válik. Az ODBC olyan szabványos felületet biztosít, amely SQL függvényeket igényel, és SQL módszerekkel optimalizált. Azonban mi történik, ha olyan SQL-elveket nem használó nem-relációs adatbázisra van szüksége (például a Microsoft Exchange Server, amelynek tárolója nem tartalmaz relációs adatokat).
5. ábra: OLE DB komponensek.
Valószínűleg a nagyobb zűrzavar miatt a Microsoft fejlesztői újabb adathozzáférési objektummodellt vezettek be: az ADO. Az ADO DAO és RDO objektumokkal dolgozik, és egyszerűbb modelleket is támogat, mint a DAO és a RDO (bár redundáns funkciókkal rendelkezik, így többféle módon is végrehajthatja a műveletet). Az ADO objektum hierarchiája homogénebb, mint a DAO-ban. Az ADO számos beépített objektumot tartalmaz, amelyek egyszerűsítik az adatbázistól származó adatokhoz való hozzáférést.
A 6. ábra számos olyan módszert mutat be, amelyekben egy alkalmazás kommunikál az adatbázis-val. Például egy VB programozó használhatja az ADO-t, hogy egy alkalmazást egy OLE DB szolgáltatóhoz csatlakoztasson. Ha az adatbázis nem támogatja az OLE DB-t, az alkalmazás ODBC-t használhat. A Visual C ++ programozó használható ADO-val vagy közvetlenül az OLE DB-n keresztül.
6. ábra Az ADO alkalmazási útvonalai közötti különbség.
Példa az ADO-ban
Tekintsünk egy egyszerű példát az ADO-ra. Az 1. felsorolás bemutatja, hogyan használhat egy tipikus objektumot - a Recordset - az ADO központi objektumát. A Recordset objektum egy rekord (táblázat), és támogatja az adOpenForwardOnly, adOpenKeyset, adOpenDynamic és adOpenStatic kurzor típusokat. A kurzor lehet a szerver oldalon (alapértelmezés szerint) vagy a kliens oldalon.
Az ADO rekord eléréséhez a rowset sorozatosan kell keresnie. Több táblázathoz való hozzáféréshez egy JOIN join lekérdezést kell végrehajtania, hogy az eredményt egy sor sorban érje el. Bár a Recordset objektum az adatokhoz való hozzáférés nélkül támogatja az adatokhoz való hozzáférést, az ADO-t eredetileg azon adatokhoz tervezték, amelyekkel a kapcsolat létrejött. Ez a hozzáférési mód arra kényszeríti Önt, hogy fontos forrásokat tároljon a szerver oldalán. Ezenkívül egy rowset átviteléhez használjuk a COM rendezés nevű rendelési módszert. A COM rendezés az adattípusok átalakításának folyamata, amely természetesen értékes rendszererőforrásokat vesz fel.
A nem kapcsolódó adatokhoz való hozzáférés mechanizmusa érdekében a Microsoft kiterjeszti az ADO-t, és bevezet egy Remote Data Services (RDS) szolgáltatást. Az RDS létrehozása az ADO után történik, és lehetővé teszi a Recordset objektum átvitelét az ügyfélnek (például egy webböngészőben), ha nincs aktív kapcsolat. Azonban az RDS, mint például az ADO, a COM marshalling-ot használja, hogy a szerverről a kliensre küldjön egy sor sztringet.
Amikor a Microsoft elkezdte fejleszteni a .NET-keretrendszert, jó alkalma nyílt az adatbeviteli modell felülvizsgálatára. Döntve, hogy nem folytatja tovább az ADO technológia fejlesztését, a Microsoft szakértők új struktúrát hoztak létre az adatokhoz való hozzáférés érdekében, miközben megtartották a rövidítést. A Microsoft az ADO bizonyított objektumtechnológián alapuló ADO.NET-et fejleszt. De az ADO.NET három olyan fontos funkcióra összpontosít, amelyeket az ADO nem támogat: a nem kapcsolódó adatokhoz való hozzáférés modelljének támogatása, amely kulcsfontosságú elem a weben való munkavégzéshez; az XML-hez való szoros integráció támogatása; Integráció a .NET-keretrendszerrel (például kompatibilitás egy tipikus rendszer alap-osztálykönyvtárával).
Az ADO.NET architektúrája. A 7. ábra az ADO.NET architektúráját mutatja. A Recordset objektum, amely annyi funkciót végez az ADO-ban, nincs ott. Ehelyett az ADO.NET számos speciális objektumot biztosít, amelyek speciális feladatokat végeznek. Az 1. táblázat háromat ír le: DataAdapter, DataReader és DataSet.
7. ábra: Az ADO.NET architektúrája.
.NET adatszolgáltatók. Az ADO.NET egyik nagyon fontos összetevője, a .NET adatszolgáltató, implementálja az ADO.NET interfészeket. Különösen megvalósítja a DataReader objektumot, hogy mind az alkalmazás, mind a DataSet objektum használható.
A .NET adatszolgáltató négy fő összetevőből áll: Csatlakozás - kommunikáció az adatforrással; A parancs végrehajtja a parancsokat az adatforráson; A DataReader egy adatforrásból adatokat olvas egyirányú "csak olvasható" üzemmódban, és egy DataAdaptert, amely adatokat olvasható ki egy adatforrásból, és felhasználja egy DataSet objektum feltöltésére.
A Visual Studio .NET két .NET-adatszolgáltatót tartalmaz. Az SQL Server .NET adatszolgáltató az SQL Server 7.0 vagy újabb verzióval kommunikál. Ez a hozzáférési módszer a leghatékonyabb az SQL Server 7.0 és újabb verziói számára, mert az SQL Server .NET adatszolgáltató közvetlenül a TDR protokollon keresztül kommunikál az SQL Server szolgáltatással. Az OLE DB .NET-adatszolgáltatónak az SQL Server-től eltérő adatbázisokhoz kell csatlakoznia, mint például az Oracle vagy az IBM DB2. Ez az adatszolgáltató az OLE DB-t használja az érintett adatbázisokhoz.
8. ábra: Az útvonalak különbsége az ADO.NET-ben.
A 8. ábra bemutatja, hogy az alkalmazások miként kommunikálhatnak egy adatbázis segítségével az ADO.NET-en keresztül. Amikor kiválaszt egy elérési utat, először meghatározza, melyik .NET-adatszolgáltatót fogja használni. Ha ez az SQL Server 7.0 vagy újabb, az SQL Server.NET adatszolgáltató csatlakozik. Ha az adatbázis SQL Server 6.5 vagy más, mint az SQL Server (például az Oracle), akkor szüksége van az OLE DB .NET adatszolgáltatóra. Ne feledje, hogy az OLE DB .NET adatszolgáltatást használhatja az SQL adatbázisok 7.0 és újabb verzióihoz, de elveszíti azt a teljesítménynövekedést, amely közvetlen kapcsolatot biztosít az SQL Server rendszerrel a TDS protokollon keresztül. Azonban ebben a nemspecifikus módon van egy plusz-mobilitás, vagyis megváltoztathatja az adatbázisokat a kód módosítása nélkül.
Ezután meg kell határoznia, hogy melyik feladatot kívánja végrehajtani. Ha csak adatokat kell olvasni és megjeleníteni az adatforrásból, elég az Adatolvasó objektum. De ha adatokat kell manipulálni (például szerkeszteni vagy törölni), akkor az Adatkészlet-objektumot kell használni. Bár ezt az objektumot csak akkor kell használni, ha szükséges, mert lassabban fut le, mint a Data Reader (az Adatkészlet segítségével a Data Reader tölti be a táblázatokat).
Példa az ADO.NET-re
Vegye figyelembe, hogyan működik az ADO.NET a webszolgáltatásban. A 2. listában olyan webszolgáltatás jelenik meg, amely egy Data Set objektumot ad vissza. A 2. listában szereplő kód hasonló a 1. listában szereplő kódhoz. A 2. listában szereplő webszolgáltatás megtalálja a Szerzők táblát a Pubs adatbázisban, és azt webszolgáltatásként ábrázolja. A webszolgáltatás az SQL Server .NET adatszolgáltatást használja, amint az a következő sorban látható:
Dim conn AS Új SqlConnection ("szerver = localhost;
uid = sa; jelszó =; adatbázis = pubok)
A webszolgáltatás ezután a Command objektumot használja az adatbázis lekérdezéséhez:
Dim comm AS Új SqlCommand (sql, conn)
Ezután a webszolgáltatás a DataAdatert használja a DataSet feltöltésére:
Ne felejtsük el, hogy a kapcsolat lezárt állapotban van, amint az adatkészlet megtelt, ellentétben az ADO-ban lévő kapcsolatokkal, amelyeket meg kell nyitni, amíg kapcsolat van a RecordSet-en keresztül. Az eredményül kapott DataSet webszolgáltatásként kerül visszaadásra. Az 1. ábra a DataSet egy részét mutatja be, amelyet egy új webszolgáltatás hívása után kaptunk meg. A DataSet a sémával XML formátumban jelenik meg. Az ügyfélalkalmazás a DataGrid összetevő használatával kiválaszthatja a DataSethez való kötődést. A 3. lista mutatja a kódot, amely ezt a kötést végrehajtja. A 2. képernyő az eredményül kapott DataSet-et mutatja be, amely az ASP.NET webes alkalmazásban lévő DataGrid vezérlőhöz van kötve, amely ezt a DataSet-et sokkal kényelmesebb formában jeleníti meg. Az ASP.NET számos olyan vezérlőt támogat, amelyek automatikusan kapcsolódnak a DataSethez.
ADO használata a .NET-alkalmazásokban
Bár az ADO.NET számos új funkcióval rendelkezik, továbbra is használhatja az ADO-t. Új .NET alkalmazás kifejlesztésekor az ADO.NET-t kell előnyben részesíteni. De ha a fejlesztési folyamat folytatódik, akkor hagyhatja az ADO-t a régi projektekben és használja az ADO.NET-t az újakba. A NET Framework lehetővé teszi az ADO használatát .NET-alkalmazásokon keresztül a COM-n keresztül, amely támogatja az elmaradott kompatibilitást anélkül, hogy szükség lenne az ADO módosítására. Importálja az ADO-típusú könyvtárakat, mint összeszerelést (lásd 3. képernyő). Ezután használhatja az ADO-t, amint azt a 4. listában szereplő kód mutatja.
Összefoglalva azt szeretném hozzátenni, hogy az adatbázisokhoz való hozzáférés technológiái folyamatosan fejlődnek. Amíg egy technológiát elsajátítanak, megjelenik egy másik. Csak egy változatlan marad: az adatbázisok egyre fontosabb szerepet játszanak az alkalmazások fejlesztésében. Az általuk okozott legfrissebb technológiák és evolúciós változások ismerete segít megtalálni az aktuális feladat optimális technológiáját, és tájékozott döntést hozni a szükséges változtatások esetén.