Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ПСУБД.docx
Скачиваний:
81
Добавлен:
14.03.2016
Размер:
1.07 Mб
Скачать

Вопрос23! Объектная модель данных ole db. Основные понятия.

OLE DB (Object Linking and Embedding Database - связывание и встраивание объектов баз данных)- представляет собой интерфейс прикладного программирования (API), который позволяет приложениям СОМ (Component Object Model - объектная модель компонентов) "потреблять" данные от источника данных OLE DB.

Источник OLE DB включает данные, хранимые в различных форматах (не только в формате баз данных SQL). Приложение использует провайдер OLE DB для доступа к источнику данных. Провайдер OLE DB представляет собой компонент COM, позволяющий принимать вызовы OLE DB API и выполнять все необходимое для обработки запроса к источнику данных. Раньше интерфейс прикладного программирования OLE DB рекомендовался к использованию с базами данных, отличных от баз данных Microsoft SQL Server, а также и к базам Microsoft SQL Server, если недостаточно функциональности, даваемой ADO.

ADO (ActiveX Data Object) основана на объектной модели, в которой объекты имеют наборы коллекций, методов и свойств, обеспечивающие поддержку баз данных. Объекты ADO функционируют на уровне OLE DB. Технология ADO обеспечивает установление соединений ODBC и работу с уровнем OLE DB.

С помощью ADO открывается подключение к базе данных, после чего нужные данные извлекаются и помещаются в набор записей, состоящих из полей. Затем эти данные подвергаются манипуляциям и обновлениям на сервере, после чего подключение закрывается. Кроме того, ADO предлагает так называемый отключенный набор записей, который используется в том случае, когда удержание подключения к базе данных в открытом состоянии в течение длительного времени нежелательно. Существенная проблема - неприемлемо большой размер отключенного набора данных. Основные компоненты ADO - Connection, Command, RecordSet, Field.

Объектная модель ADO.NET существенно отличается от объектов, доступных в ADO, и ADO.NET является не надстройкой над ADO, а отдельной технологией.

Инфраструктура ADO.NET поставляется с тремя пространствами имен клиента базы данных: одно предназначено для работы с Microsoft SQL Server, второе - для источников данных ODBC, третье - для любой базы данных, доступной через OLE DB.

Пространства имен, предназначенные для доступа к данным .NET.

System. Data - все обобщенные классы доступа к данным.

System.Data.Common - классы, разделяемые (или переопределяемые) индивидуальными поставщиками данных.

System.Data.EntityClient - классы Entity Framework.

System.Data.Linq.SqlClient - классы поставщика LINQ to SQL.

System.Data.Odbc - классы поставщика Odbc.

System.Data.OleDb - классы поставщика OleDb.

System.Data.ProviderBase - новые базовые классы и классы фабрик подключений.

System.Data.Sql - новые обобщенные интерфейсы и классы для доступа к данным SQL Server.

System.Data.SqlClient - классы поставщика SQL Server.

System.Data.SqlTypes - типы данных SQL Server.

Концепция доступа к данным в ADO.NET основана на использовании двух компонентов:

- НАБОРА ДАННЫХ (представляется объектом класса DataSet) со стороны клиента. Это локальное временное хранилище данных;

- ПРОВАЙДЕРА ДАННЫХ (представляется объектом класса DataProvider). Это посредник, обеспечивающий взаимодействие приложения и базы данных со стороны базы данных (в распределенных приложениях – со стороны сервера).

ADO.NET. Объектная модель

Объектная модель ADO.NET предполагает существование (при написании приложения для работы с базой данных — использование) двух множеств классов, выполняющих четко определенные задачи при работе с базой данных: классы отсоединенных объектов и классы подсоединенных объектов.

Классы подсоединенных объектов обеспечивают установление соединения с базой данных и управление базой со стороны приложения, эти классы являются специфическими для разных типов баз данных (например, мы будем писать Connection, но на самом деле есть три класса SqlConnection, OleDbConnection, ODBCConnection, которые имеют схожую функциональность, но отличаются внутренней реализацией). Классы отсоединенных объектов обеспечивают сохранение, использование и преобразование полученной от базы данных информации на стороне приложения. Классы отсоединенных объектов являются разделяемыми, то есть не зависят от типа источника данных (OLE DB, ODBC или SQL Server).

Классы подсоединенных объектов

Command - используется как оболочка для операторов SQL или вызова хранимых процедур.

CommandBuilder - используется для генерирования команд SQL (таких как INSERT, UPDATE, DELETE) из оператора SELECT.

Connection - используется для подключения к базе данных и подобна подключению ADO.

DataAdapter - используется для хранения команд select, insert, update, delete, которые затем применяются для наполнения DataSet и обновления БД.

DataReader - используется для однонаправленных подключенных объектов чтения данных.

Parameter - используется для определения параметров хранимой процедуры.

Transaction - используется для транзакции базы данных, помещенной в оболочку объекта.

Классы отсоединенных объектов

DataSet - предназначен для использования в отключенном режиме, содержит набор DataTable и отношений между этими таблицами.

DataTable - контейнер данных, который состоит из одного или более экземпляров DataColumn, и после заполнения будет иметь одну или более строк DataRow, содержащих данные.

DataRow - множество значений, имитирующих строку из таблицы БД или электронной таблицы.

DataColumn - определение столбца (имя-тип данных).

DataRelation - отношение между двумя классами DataTable внутри класса DataSet, используется для описания отношений внешнего ключа и отношения "главная - подробности".

Constraint - определяет правило для класса DataColumn (или набора столбцов), например, требование уникальности.

DataColumnMapping - отображает имя таблицы из базы данных на DataTable внутри DataSet.

Библиотеки ADO.NET можно применять тремя способами:

- в подключенном режиме;

- в отключенном режиме;

- с помощью технологии Entity Framework.

При использовании подключенного уровня (connected layer) кодовая база явно подключается к соответствующему хранилищу данных и отключается от него. При таком способе использования ADO.NET обычно происходит взаимодействие с хранилищами данных с помощью объектов подключения, объектов команд и объектов чтения данных.

Автономный уровень (disconnected layer) позволяет работать с набором объектом DataTable (содержащемся в DataSet), который представляет на стороне клиента копию внешних данных. При получении DataSet с помощью соответствующего объекта адаптера данных подключение открывается и закрывается автоматически. Такой подход позволяет быстро освобождать подключения для других вызовов и повышает масштабируемость системы. Получив объект DataSet, вызывающий код может просматривать и обрабатывать данные без затрат на сетевой трафик.

Entity Framework (начиная с .NET 3.5SP1) позволяет скрыть многие низкоуровневые детали работы с базами данных и обрабатывать данные при помощи генерации LINQ - запроса.