C#. ADO .NET. Постачальники даних (провайдери). Простори імен ADO .NET

Вступ в ADO .NET. Постачальники даних (провайдери). Простори імен ADO .NET


Зміст


1. Загальні відомості про ADO .NET. Постачальники даних (провайдери)

У платформу Microsoft .NET входить ряд просторів імен, які містять засоби взаємодії як з локальними так і з віддаленими базами даних. Класи, що розміщуються в цих просторах імен складають основу технології доступу до баз даних під назвою ADO .NET (ActiveX Data Object для .NET).

Ці засоби ADO .NET забезпечують доступ до різних постачальників даних (data provider), які ще називаються провайдерами. Кожен провайдер запрограмований на взаємодію з конкретною системою керування базами даних (СКБД). Тобто, немає єдиного універсального набору класів (типів), які взаємодіють з різними СКБД.

Використання окремого провайдера для доступу до відповідної СКБД дозволяє:

  • програмувати особливого постачальника даних для доступу до будь-якої унікальної конкретної СКБД;
  • забезпечити пряме підключення конкретного постачальника даних до механізму СКБД без використання додаткових міжрівневих засобів відображення.

Для кожного конкретного провайдера (постачальника даних) визначено:

  • простір імен з відповідними типами (класами) що безпосередньо взаємодіють з цим провайдером;
  • простір імен, що містить базову функціональність, яка взаємодіє з будь-яким постачальником даних.

 

2. Перелік об’єктів постачальників даних. Таблиця

У термінології ADO .NET прийнято визначати поняття об’єкту даних на основі його базового класу. Так, наприклад, екземпляр класу DbConnection вважається об’єктом Connection, а екземпляр класу DbCommand прийнято називати об’єктом Command.

У нижченаведеній таблиці відображені основні об’єкти постачальників даних ADO .NET.

Тип об’єкту Базовий клас Інтерфейс Призначення
Connection DbConnection IDbConnection Забезпечує підключення до джерела даних та відключення від нього, доступ до об’єктів транзакцій
Command DbCommand IDbCommand Реалізує SQL-запит або збережувану процедуру. Також забезпечує доступ до об’єкту читання даних конкретного постачальника даних
DataReader DbDataReader

IDataReader,

IDataRecord

Представляє доступ до даних тільки для читання. Читання даних відбувається в одному напрямку з допомогою курсору на стороні серверу
DataAdapter DbDataAdapter

IDataAdapter,

IDbDataAdapter

Забезпечує обмін даними між сховищем даних і викликаючим процесом з допомогою команд вибірки, вставки, зміни та видалення інформації
Parameter DbParameter

IDataParameter,

IDbDataParameter

Реалізує іменований параметр у параметризованому запиті
Transaction DbTransaction IDbTransaction Інкапсулює транзакцію в базі даних

З класів (інтерфейсів) вищенаведених основних об’єктів успадковані класи конкретних провайдерів, які мають префікс відповідної СКБД.

Наприклад, з класу DbConnection успадковані класи SqlConnection, OracleConnection, OdbcConnection та OledbConnection. А з класу DbCommand успадковані класи SqlCommand, OracleCommand, OdbcCommand, OledbCommand.

На рисунку 1 відображено взаємодію клієнтського додатку з базою даних через постачальника даних (провайдера).

C#. ADO .NET. Взаємодія клієнтського додатку з базою даних

Рисунок 1. Взаємодія клієнтського додатку з базою даних

Клієнтським додатком може бути будь-який тип додатку: консольний додаток, додаток типу Windows Forms, WPF-додаток, веб-сторінка ASP .NET, WCF-служба, кодова бібліотека .NET і т.д.

 

3. Постачальники даних (провайдери). Перелік. Простори імен

У пакет .NET Framework входить набір засобів для роботи з різними Microsoft постачальниками даних та постачальниками даних інших розробників (зокрема, Oracle).

Нижче, у таблиці, відображені постачальники даних, які підтримуються в .NET Framework. Для кожного постачальника вказуються:

  • простори імен, які потрібно підключити при використанні;
  • імена збірок, що містять реалізацію.

 

Постачальник даних Простір імен Збірка
Microsoft SQL Server System.Data.OleDb System.Data.Dll
Microsoft SQL Server Mobile System.Data.SqlClient System.Data.Dll
ODBC System.Data.SqlServerCe System.Data.SqlServerCe.dll
OLE DB System.Data.Odbc System.Data.Dll
Oracle Client System.Data.OracleClient System.Data.OracleClient.dll

Нижче подано коротку характеристику кожного провайдера.

3.1. Microsoft SQL Server. Постачальник даних Microsoft SQL Server забезпечує прямий доступ до баз даних типу SQL Server. Усі необхідні засоби для роботи з цим провайдером розміщуються в просторі імен System.Data.SqlClient. Відповідно рядок підключення цього простору імен на мові C# буде наступний:

using System.DataSqlClient;

3.2. OLE DB (Object Linking and Embedding, Database). Постачальник даних OLE DB має таку саму базову функціональність, що й Microsoft SQL Server. Однак, цей постачальник використовує додатковий рівень взаємодії з базою даних що дає зниження продуктивності порівняно з Microsoft SQL Server. Провайдера OLE DB потрібно використовувати якщо виникає необхідність взаємодії з базою даних Microsoft Access.

Даний провайдер постачається у просторі імен System.Data.OleDb. Відповідно рядок підключення провайдера OLE DB буде наступний:

using System.Data.OleDb;

3.3. ODBC (Open DataBase Connectivity). Це є програмний інтерфейс для різних розробників при створенні додатків, що використовують доступ до даних без використання конкретного провайдера. Щоб використовувати засоби ODBC потрібно підключити простір імен System.Data.Odbc

using System.Data.Odbc;

3.4. Oracle Client. Постачальник даних Oracle Client призначений для взаємодії з базами даних Oracle. Існує два можливих різновиди збірок цього типу провайдера. Перша збірка від компанії Microsoft, яка розміщується в просторі імен System.Data.OracleClient.dll. Друга – від компанії Oracle, яку можна завантажити з офіційного сайту Oracle www.oracle.com.

3.5. Сторонні постачальники даних ADO .NET. Технологія ADO .NET дозволяє підключати сторонніх постачальників для доступу до СКБД будь-якого типу. Ці системи можуть бути як комерційні так і з відкритим вихідним кодом. Прикладами таких постачальників можуть бути SQLite, IBM DB2, MySQL, PostgreSQL, TurboDB, Sybase та інші.

 

4. Додаткові простори імен. Перелік

Бібліотека Microsoft .NET Framework містить додаткові простори імен, які використовуються при програмуванні задач пов’язаних з ADO .NET. До таких просторів імен можна віднести наступні:

  • Microsoft.SqlServer.Server – містить типи для роботи служби інтеграції CLR та SQL Server 2005;
  • System.Data – визначає основні типи ADO .NET, що використовуються всіма провайдерами. Простір імен містить базові класи та інтерфейси які представляють автономний (від’єднаний) рівень (режим) взаємодії з базою даних;
  • System.Data.Common – містить типи для спільного використання усіма постачальниками ADO .NET. Сюди також входять спільні абстрактні класи;
  • System.Data.Sql – містить типи (класи), що визначають об’єкти Microsoft SQL Server, які встановлені в поточній локальній мережі;
  • System.Data.SqlTypes – містить типи, що використовуються Microsoft SQL Server а також підтримку типів CLR;
  • System.Data.EntityClient – містить типи, що забезпечують функціональність рівня клієнту сутності. Ці типи відображають концепцію Entity Framework для постачальника даних ADO .NET.

 


Споріднені теми