ADO.NET data provider-i

ADO.NET ne poseduje jedinstveni skup tipova objekata koji komuniciraju sa različitim sistemima za upravljanje bazama podataka (DBMS). ADO.NET poseduje više skupova tipova objekata koji komuniciraju sa DBMS-om. Ove skupove tipova objekata nazivamo data provider-ima. Svaki od data provider-a optimizovan je za interakciju sa konkretnim DBMS-om. Prednost ovakvog pristupa je mogućnost pojedinačnih data provider-a da imaju mogućnost manipulacije objektima koji su specifični za posmatrani DBMS. Još jedna od prednosti je način komunikacije između data provider-a i DBMS-a. Naime, s obzirom da je svaki data provider optimizovan za rad sa konkretnim DBMS-om, on komunicira direktno sa DBMS-om tj. ne postoji međusloj koji bi prilagodio zahteve korisnika konkretnom DBMS-u.


Data Provider

Veza sa bazom podataka realizuje se i održava pomoću ADO.NET komponente Data Provider. Data Provider je u stvari skup komponenti koje zajedničkom funkcionalnošću obezbeđuju efikasnu komunikaciju između baze podataka i aplikacije. Microsoft.NET Framework trenutno isporučuje neke vrste provajdera (snabdevača, isporučilaca) podataka počev od: SQL Server .NET Data Provider koji je dizajniran za rad sa Microsoft SQL Serverom i OleDb .NET Data Provider koji povezuje aplikaciju sa drugim vrstama baza podataka.

(Ako ćete koristiti MySQL, treba da instalirate MySql Data Provider)


Svaki Data Provider sastoji se od (međusobno sličnih) sledećih komponentnih klasa.

  • Connection objekat omogućava konekciju sa bazom podataka

  • Command objekat sadrži informaciju o SQL SELECT upitu ili INSERT, UPDATE, DELETE naredbi koja se sprovodi nad bazom podataka.

  • The DataReader objekat (recordset) koji učitava podatke u direktnoj konekciji sa bazom podataka.

  • The DataAdapter objekat popunjava diskonektovani DatSet ili DataTable sa odgovarajućim podacima i ažurira podatke u DB.

Scenario pristupa podacima korišćenjem ADO.NET komponenti odvija se na sledeći način:

Objekat Connection uspostavlja vezu između baze podataka i aplikacije. Ta konekcija se koristi za pristup bazi direktno pomoću Command objekta ili pomoću objekta DataAdapter. Command objekt obezbeđuje realizaciju odgovarajućeg SQL upita u direktnoj komunikaciji sa bazom držeći sve vreme pristupa konekciju otvorenom. U slučaju da vraća više od jedne vrednosti Command objekt vraća aplikaciji DataReader objekt kao snabdevača aplikacije podacima. Podaci dobijeni na ovaj način mogu biti direktno procesuirani od strane logike aplikacije. Drugi način snabdevanja aplikacije podataka realizuje se indirektno pomoću DataAdapter objekta koji popunjava objekat DataSet. Ažuriranje podataka u bazi od strane aplikacije može se izvesti korišćenjem ili objekta Command ili pomoću objekta DataAdapter.



Dodatno:

Iako će se imena konkretnih objekata svakog od konkretnih Data Provider objekata razlikovati (npr. SqlConnection, OracleConnection, OdbcConnection ili MySqlConnection), svi su izvedeni iz iste klase i implementiraju iste interfejse pa je nakon savladavanja korišćenja jednog od data provider-a relativno jednostavno koristiti sve ostale.

Microsoft .NET platforma poseduje niz ugrađenih data provider-a za različite DBMS-ove. Spisak ugrađenih data provider-a prikazan je u tabeli:

Data Provider

Prostor imena (namespace)

Biblioteka

OLE DB

System.Data.OleDb

System.Data.dll

Microsoft SQL Server

System.Data.SqlClient

System.Data.dll

Microsoft SQL Server Mobile

System.Data.SqlServerCe

System.Data.SqlServerCe.dll

ODBC

System.Data.Odbc

System.Data.Dll

Oracle

System.Data.OracleClient

System.Data.OracleClient.dll

Pored data provider-a koji su ugrađeni u .NET platformu, moguće je koristiti data provider-e koje obezbeđuju pojedinačni proizvođači besplatnih ili komercijalnih DBMS-ova poput SQLite, DB2, MySQL, PostgreSQL ili Sybase.

Pored predstavljenih prostora imena, .NET platforma poseduje skup dodatnih prostora imena koji svojim funkcionalnostima pripadaju skupu ADO.NET prostora imena. Neki od ovih prostora imena prikazani su u tabeli:

Prostor imena (namespace)

Značenje

System.Data

Definiše osnovne ADO.NET tipove koje koriste svi data provider-i

System.Data.Common

Sadrži tipove koje dele svi ADO.NET data provider-i

System.Data.Sql

Sadrži tipove koji omogućavaju otkrivanje instanci MS SQL Server-a u lokalnoj mreži

System.Data.SqlTypes

Sadrži tipove podataka koje koristi Microsoft SQL Server

Od svih ADO.NET prostora imena (namespace-a), System.Data je najopštiji. Svaka aplikacija koja želi da pristupa podacima korišćenjem ADO.NET-a mora koristiti klase definisane ovim prostorom imena.

System.Data sadrži klase koje su zajedničke za sve data provider-e. U sledećoj tabeli prikazani su osnovni članovi System.Data prostora imena.

Klasa

Značenje

Constraint

Predstavlja ograničenje primenjeno na DataColumn objekat

DataColumn

Predstavlja jednu kolonu DataTable objekta

DataRelation

Predstavlja roditelj/dete odnos između dva DataTable objekta

DataRow

Predstavlja jedan red u DataTable objektu

DataSet

Predstavlja lokalnu kopiju podataka u memoriji klijentskog računara koji se sastoji od niza povezanih DataTable objekata

DataTable

Predstavlja lokalnu kopiju tabele baze podataka

DataTableReader

Omogućava čitanje podataka iz DataTable objekta red po red

DataView

Predstavlja pogled na tabelu baze podataka i koristi se za sortiranje, filtriranje, pretraživanje i izmenu podataka



Last modified: Monday, 18 May 2020, 9:26 PM