Назначение технологии ADO.NET
Большинство информационных систем используют во время работы различные системы управления базами данных (СУБД). СУБД и базы данных под ее управлением являются фундаментом системы. Но кроме фундамента в системе есть еще бизнес-логика и пользовательские интерфейсы, которые реализуются в виде приложений на различных языках программирования. Для связывания СУБД и приложения, написанного, например на С#, нужен промежуточный слой – посредник. Именно эту функцию выполняет технология ADO.NET.
В основе ADO.NET лежит платформа .NET Framework.
ADO.NET – это библиотека классов, при помощи которых можно устанавливать подключение к базе данных и выполнять запросы.
При этом следует понимать, что хотя все реляционные СУБД построены на единой модели данных и используют диалекты языка SQL, они все же имеют некоторые отличия. Например, диалект используемый в MS SQL SERVER называется T-SQL, а ORACLE и MySQL используют PL-SQL. В разных диалектах могут отличаться типы данных и отдельные функции.
Технология ADO.NET построена так, чтобы скрыть от разработчика эти отличия и предоставить унифицированный интерфейс доступа к базам данных. Таким образом, даже при полной замене СУБД в работе приложений ничего не изменится.
Основные объекты ADO.NET
Основные функции в ADO.NET выполняют следующие объекты:
- Connection – устанавливает подключение к источнику данных;
- Command – позволяет выполнят операции с данными, которые хранятся в базе;
- DataReader – производит считывание данных, полученных в результате запроса.
- DataSet – позволяет сохранить данные из базы в специальном наборе и работать с ними далее независимо от самой базы
- DataTable – сохраняет данные независимо от базы в таблицу;
- DataAdapter – объект-посредник между источником данных и DataSet.
Схематично архитектура работы информационной системы с использованием ADO.NET изображена на рисунке.
Рисунок 1.
Провайдеры баз данных
Для использования одних и тех же объектов с различными СУБД необходим специальный провайдер.
Провайдер базы данных (драйвер) – программный интерфейс, который позволяет соединиться с базой данных. Провайдеры создаются для конкретной СУБД.
По умолчанию ADO.NET содержит ряд встроенных провайдеров СУБД:
- Провайдер MS SQL SERVER;
- Провайдер OLE DB (обеспечивает доступ к старым версиям MS SQL SERVER, Access, DB2, MySQL, ORACLE);
- Провайдер ODBC (универсальный драйвер);
- Провайдер для ORACLE;
- Провайдер для EntityClient;
- Провайдер для SQL SERVER Compact 4.0.
Подключенный и отключенный уровни работы
Работать с данными через ADO.NET можно с поддерживанием постоянного подключения к источнику данных и без поддерживания постоянного подключения (независимо). Работа с подключением требует постоянного поддерживания подключения. Чтение при этом происходит непосредственно из базы, а запись производится непосредственно в базу. Работа независимо от источника данных предполагает однократное сохранение данных из базы в специальных наборах данных и манипулирование этим набором. Объекты ADO.NET, которым нужно подключение к источнику данных, зависят от вида провайдера, а объекты для независимой работы от провайдера никак не зависят.
Чтобы каким-то образом отличать подключение через различные провайдеры, в ADO.NET принята система префиксов. Каждый провайдер имеет свои версии основных объектов, которые отличаются друг от друга различными префиксами.
Например, объект Connection в версии для MS SQL SERVER называется SqlConnection, в версии для OLE DB – OleDbConnection, в версии для ODBC – OdbcConnection.
Те объекты, которые не требуют постоянного подключения, имеют одно универсальное имя – DataSet, DataTable и др.