Доступ к данным |Доступ к данным с помощью ADO.NET | 3. Компоненты ADO.NET и объектная модель Дальше »
3. Компоненты ADO.NET и объектная модель
3.1. DataSet
3.1.1. Объект TablesCollection
3.1.2. Объект RelationsCollection
3.1.3. ExtendedProperties
3.2. Managed providers
3.3. Microsoft ADO.NET managed providers
3.4. Поддерживаемые базы данных и OLE DB провайдеры

3. Компоненты ADO.NET и объектная модель

Есть две основные части ADO.NET. «DataSet» - который передаётся между компонентами ADO.NET и управляемые провайдеры (Managed Providers).

3.1. DataSet

Объект DataSet является самым важным в ADO.NET. DataSet это простая резидентная база данных, которая обеспечивает непротиворечивую модель программирования независимо от источника данных. DataSet представляет собой законченный набор данных, включая связанные таблицы, ограничения, и отношения между таблицами. Модель объекта DataSet представлена ниже.

DataSet
|-RelationsCollection
|-ExtendedProperties
└TablesCollection
     └ DataTable
         |-Rows
         |  └ DataRows
         |-DefaultView
         |-ChildRelations
         |-ParentRelations
         |-Constraints
         |-Columns
         |  └ DataColumn
         └ ExtendedProperties
              └ PrimaryKeys

Объект DataSet используют для управления содержанием набора данных. Методы и объекты в DataSet совместимы с реляционной моделью баз данных.

3.1.1. Объект TablesCollection

ADO.NET DataSet представляет собой совокупность одной или более таблиц, представленных объектами DataTable. Объект TablesCollection содержит все объекты DataTable, имеющиеся в DataSet.
DataTable определяется System.Data и представляет отдельную таблицу memory-resident данных, которая содержит совокупность столбцов, представляемых объектом ColumnsCollection, который определяет схему и строки таблицы. DataTable содержит совокупность строк, представляемых объектом RowsCollection, который осуществляет выборку данных в таблице. Наряду с текущим состоянием, объект DataTable сохраняет своё первоначальное состояние и отслеживает все изменения, которые происходят с данными. DataSet может сохранять и перезагружать представляющие контент данные посредством XML.

3.1.2. Объект RelationsCollection

Типичный набор данных (DataSet) содержит отношения, определяемые объектом RelationsCollection. Отношения, представляемые объектом DataRelation, сопоставляют строки в одной таблице, строкам в другой таблице данных. Это работает аналогично отношениям foreign-key в реляционной базе данных. DataRelation идентифицирует соответствие столбцов в двух таблицах DataSet.
Отношения допускают передвижения от одной таблицы к другой в пределах DataSet. Основные элементы DataRelation, это: имя отношений, сами связываемые две таблицы, а также первичные ключи (primary key) и foreign key столбцы в таблицах. Отношения могут строится по более чем одному столбцу в таблице, по массиву объектов DataColumn для primary и foreign keys. Когда DataRelation создан, ADO.NET проверяет возможность установления отношений. ADO.NET добавляет отношения к RelationsCollection лишь единожды, что позволяет избежать появления последующих изменений, которые могли негативно воздействовать на заданные отношения.

3.1.3. ExtendedProperties

Объект ExtendedProperties содержит введённую информацию о пользователе, пароли или о времени, когда данные объекта DataSet должны быть обновлены.

3.2. Managed providers

Managed provider устанавливает подключения между DataSet и источниками данных, например, базой данных SQL Server. Managed providers состоит из набора интерфейсов, которые осуществляют доступ к источнику данных. Существует три исполняемых компонента:

- Подключение (Connection), команды, и параметры обеспечивают интерфейс между источником данных и объектом DataSet. Интерфейс DataSetCommand определяет столбец и отображения таблицы, а также загружает DataSet.
- Поток данных (data stream) обеспечивает высоко производительный (high-performance), forward-only доступ к данным. IdataReader читает forward-only поток записей из источника данных.
- Объекты слоя Low-level соединяются с базой данных и выполняют определенные системные команды базы данных.

Раньше, чаще всего использовалась двухъярусная архитектура обработки данных, которая основывалась на подключении. В настоящее время, поскольку обработка данных все более тяготеет к многоярусной архитектуре, программисты переключают своё внимание на офлайновые подходы, обеспечивающие лучшую масштабируемость для прикладных программ. Одним из самых важных компонент ADO.NET, обеспечивающих современные требования, является DataSetCommand. Он загружает DataSet и обеспечивает мост между объектом DataSet и его исходным источником данных для целей обработки и сохранения информации. Осуществляется это посредством вызовов соответствующих SQL команд на источнике данных. Объектная модель для Managed provider, отображающая уровни между DataSet и источником данных, представлена ниже.

DataSetCommand
|-SelectCommand
|-InsertCommand
|-UpdateCommand
|-DeleteCommand
└ TableMappings
    └ TableMapping
         └ ColumnMappings
              └ ColumnMapping
Command
|-Connection
|   └ Properties
|-Parameters
|    └ Parameter
└ Properties
     └ Property
Exception
└ ADO Errors
DataReader

Как Вы видите, объект DataSetCommand определяет четыре базовые метода. Эти методы/команды обеспечивают create, read, update и delete функции для определенного DataTable в пределах DataSet.
Managed provider использует собственный OLEDB через COM Interop, чтобы получить доступу к данным. OLEDB - провайдер поддерживает, как ручные, так и автоматические транзакции. Для автоматических транзакций, OLEDB провайдер сам включится в транзакцию и будет получать необходимые детали об исполнении операций от Component Services Context.

3.3. Microsoft ADO.NET managed providers

Микрософт выпускает два managed providers для ADO.NET.

SQL managed provider.

Является посредником между таблицей в пределах DataSet и таблицей или представлением базы данных SQL Server (версия 7.0 и выше). Объект SQLDataSetCommand является посредником связи между таблицей DataSet и таблицей или представлением сервера баз данных.

ADO managed

provider. Является посредником связи между таблицей в пределах DataSet и таблицей или представлением в любом источнике данных, для которого имеется провайдер OLEDB. Объект ADODataSetCommand поддерживает связь между таблицей DataSet и таблицей или представлением в источнике данных.

Оба они поддерживают подключение, команды и параметры для соответствующих источников данных, а также инструментарий класса DataSetCommand, который обеспечивает уровень отображения между источником данных и DataSet. Также, они поддерживают IDataReader, который предоставляет средства high-performance доступа к данным.
Managed provider использует собственный OLEDB через COM Interop, чтобы получить доступу к данным. OLEDB - провайдер поддерживает, как ручные, так и автоматические транзакции. Для автоматических транзакций, OLEDB провайдер сам включится в транзакцию и будет получать необходимые детали об исполнении операций от Component Services Context.
ADO.NET SQL Server managed provider использует специальный протокол, называемый табличным потоком данных (tabular data stream), с помощью которого осуществляется связь с SQL Server. При этом OLEDB, ADO или ODBC не используются. Всё управление осуществляется кодом.

3.4. Поддерживаемые базы данных и OLE DB провайдеры

ADO managed provider проектировался, чтобы работать с большинством OLEDB провайдеров. Следующие провайдеры были проверены и работают с ADO .NET:

Driver Provider
SQLOLEDB SQL OLE DB Provider
MSDAORA Oracle OLE DB Provider
JOLT Jet OLE DB Provider
MSDASQL/SQLServer ODBC SQL Server ODBC Driver via OLE DB for ODBC Provider
MSDASQL/Jet ODBC Jet ODBC Driver via OLE DB Provider for ODBC Provider

Примечание: SQL managed provider поддерживает SQL Server версии 7.0 и выше.
MSDASQL/Oracle ODBC DRIVER (Oracle ODBC драйвер через OLE провайдера базы данных для ODBC) в настоящее время ADO.NET не поддерживается.

Доступ к данным |Доступ к данным с помощью ADO.NET | 3. Компоненты ADO.NET и объектная модель Дальше »
Скачать электронную карту Ангарска бесплатно
Сайт управляется системой uCoz