Слайд 2
Технология ADO
- интерфейс программирования приложений для доступа к данным, разработанный
компанией Microsoft (MS Access, MS SQL Server) и основанный на технологии
компонентов ActiveX. ADO позволяет представлять данные из разнообразных источников (реляционных баз данных, текстовых файлов и т. д.) в объектно-ориентированном виде.
Слайд 3
Проблемы ADO
Наиболее заметная из них — громоздкость (в
плане физического размера) отключенного набора записей. Потребность в этом
средстве возрастает по мере развития веб-ориентированных вычислений, поэтому в данном случае понадобился свежий подход.
Слайд 4
ADO.NET
- технология, предоставляющая доступ к данным для приложений, основанных на Microsoft
.NET. Является не развитием более ранней технологии ADO, а самостоятельной
технологией, частью фреймворка .NET.
Слайд 5
Три стороны ADO.NET
Библиотеки ADO.NET можно применять тремя концептуально
различными способами:
в подключенном режиме,
в автономном режиме,
с помощью
технологии Entity Framework.
Слайд 6
Подключенный режим
На данном уровне работа базами данных ведётся
через объекты подключения, объекты чтения данных и поставщика данных
предназначенного для нужной СУБД. Для получения данных выполняются следующие шаги.
Создание, настройка и открытие объекта подключения.
Создание и настройка объекта команды, указывающего объект подключения в аргументе конструктора или через свойство Connection.
Вызов метода ExecuteReader () настроенного объекта команды.
Обработка каждой записи с помощью метода Read () объекта чтения данных.
Объекты чтения данных предоставляют поток данных, для чтения в прямом направлении. Чтение происходит каждый раз по одной записи. Следовательно объекты чтения обрабатывают только select запросы. Открытие и закрытие подключения к БД полностью возлагается на программиста.
Слайд 7
Автономный уровень
Автономный уровень ADO.NET позволяет отображать реляционные данные
с помощью модели объектов в память. Типы данных из
System.Data воспроизводят не только отображение строк и столбцов, а также отношения между таблицами, первичные ключи и т. д. Так как отображение данных происходит в память, подключение не занимает времени СУБД, подключаясь и отключаясь автоматически, при чтении и обновлении данных, автономный уровень снимает с программиста лишнюю работу. Но у данного уровня есть недостаток, представьте что требуется считать из БД 20000 записей, и при использовании автономного уровня, все это ляжет в память приложения, не очень разумное использование, здесь на выручку приходит подключаемый уровень который считает все последовательно.
Слайд 8
Entity Framework
Entity Framework выводит абстракцию на новый уровень
- объектной модели. Теперь отображение происходит на бизнес-объекты приложения,
что позволяет работать с данными как с обычными объектами языка. Сущности (еntities) — это концептуальная модель физической базы данных, которая отображается на предметную область. Формально говоря, эта модель называется моделью сущностных данных (Entity Data Model — EDM). Модель EDM представляет собой набор классов клиентской стороны, которые отображаются на физическую базу данных. Тем не менее, нужно понимать, что сущности вовсе не обязаны напрямую отображаться на схему базы данных, как может показаться, исходя из названия. Сущностные классы можно реструктурировать для соответствия существующим потребностям, и исполняющая среда EF отобразит эти уникальные имена на корректную схему базы данных.
Слайд 9
Архитектура ADO.NET
В ADO.NET используется многоуровневая архитектура, которая обращается
вокруг небольшого числа ключевых концепций, таких как объекты Connection,
Command и DataSet. Однако архитектура ADO.NET серьезно отличается от классической архитекуры ADO.
Слайд 10
Поставщики данных
Поставщик данных (data provider) — это набор классов
ADO.NET, которые позволяют получать доступ к определенной базе данных,
выполнять команды SQL и извлекать данные.
Однако независимо от используемого поставщика данных, каждый из них определяет набор классов, обеспечивающих основную функциональность.
Слайд 11
Поставщики данных
ADO.NET поставляется с тремя пространствами имен клиента
базы данных: одно для SQL Server, другое для источников данных Open
Database Connectivity (ODBC) и третье для любой базы данных, доступной через OLE DB.
Слайд 14
Название поставщиков
Конкретные имена этих основных классов различаются у
различных поставщиков (например, SqlConnection, OracleConnection, OdbcConnection и MySqlConnection), но
все эти объекты порождены от одного и того же базового класса (в случае объектов подключения это DbConnection), который реализует идентичные интерфейсы (вроде IDbConnection)
Слайд 15
Общий принцип действия
Но даже несмотря на то, что
разные поставщики данных .NET используют различные классы, все они
некоторым образом стандартизированы.
Точнее говоря, каждый поставщик основан на одном и том же наборе интерфейсов и базовых классов. Так, например, объект Connection реализует интерфейс IDbConnection, который определяет такие ключевые методы, как Open() и Close(). Подобная стандартизация гарантирует, что каждый класс Connection будет работать одинаковым образом и предоставит один и тот же набор ключевых свойств и методов.
Слайд 16
Достоинства ADO.NET
Поскольку каждый поставщик использует одни и те
же интерфейсы и базовые классы, можно писать обобщенный код
доступа к данным работая с интерфейсами.
Поскольку каждый поставщик реализован отдельно, он может использовать соответствующую оптимизацию.
Кроме того, специализированные поставщики могут добавлять нестандартные средства, которых не имеют другие поставщики (например, возможность SQL Sever выполнять XML-запросы).
Слайд 17
Фундаментальные классы ADO.NET
System.Data
Содержит ключевые классы контейнеров данных, которые
моделируют столбцы, отношения, таблицы, наборы данных, строки, представления и
ограничения. Дополнительно содержит ключевые интерфейсы, которые реализованы объектами данных, основанными на соединениях
Слайд 18
Фундаментальные классы ADO.NET
System.Data.SqlClient
Содержит классы, используемые для подключения к
базе данных Microsoft SQL Server, в том числе SqlDbCommand,
SqlDbConnection и SqlDbDataAdapter. Эти классы оптимизированы для использования интерфейса TDS к SQL Server
Слайд 19
Фундаментальные классы ADO.NET
System.Data.OleDb
Содержит классы, используемые для подключения к
поставщику OLE DB, включая OleDbCommand, OleDbConnection и OleDbDataAdapter. Эти
классы поддерживают большинство поставщиков OLE DB, но не те, что требуют интерфейсов OLE DB версии 2.5
Слайд 20
Фундаментальные классы ADO.NET
System.Data.OracleClient
Содержит классы, необходимые для подключения к
базе данных Oracle (версии 8.1.7 и выше), в том
числе OracleCommand, OracleConnection и OracleDataAdapter. Эти классы используют оптимизированный интерфейс OCI (Oracle Call Interface — Интерфейс вызовов Oracle)
Слайд 21
Фундаментальные классы ADO.NET
System.Data.Odbc
Содержит классы, необходимые для подключения к
большинству драйверов ODBC, такие как OdbcCommand, OdbcConnection, OdbcDataReader и
OdbcDataAdapter. Драйверы ODBC поставляются для всех видов источников данных и конфигурируются через значок Data Sources (Источники данных) панели управления