Скачать презентацию Технологии доступа к данным Эволюция технологий доступа Скачать презентацию Технологии доступа к данным Эволюция технологий доступа

Технологии доступа к данным.ppt

  • Количество слайдов: 45

Технологии доступа к данным Технологии доступа к данным

Эволюция технологий доступа к данным • • ODBC OLE DB ADO. NET LINQ to Эволюция технологий доступа к данным • • ODBC OLE DB ADO. NET LINQ to SQL ADO. NET Entity Framework

ODBC • Технология ODBC обеспечивает общий интерфейс для доступа к разнородным базам данных стандарта ODBC • Технология ODBC обеспечивает общий интерфейс для доступа к разнородным базам данных стандарта SQL. ODBC использует язык SQL как стандарт для доступа к данным. Этот интерфейс очень удобен: одно приложение может обращаться к различным базам данных SQL через общий набор команд. Таким образом, разработчик может создавать и распространять приложения, не привязываясь к конкретной базе данных.

Архитектура ODBC Архитектура ODBC

 • Менеджер драйверов является промежуточным звеном между приложением и базами данных. Интерфейс ODBC • Менеджер драйверов является промежуточным звеном между приложением и базами данных. Интерфейс ODBC содержит набор функций, который управляет каждым инструментом базы данных. Если приложению нужно сменить используемую базу, разработчик просто заменяет один драйвер другим, и приложение может работать как обычно, без необходимости модификации кода программы. • ODBC использует низкоуровневый интерфейс, поэтому программисты на С и С++ реально задействуют все преимущества технологии ODBC

ODBC • ODBC использует низкоуровневый интерфейс, поэтому программисты на С и С++ реально задействуют ODBC • ODBC использует низкоуровневый интерфейс, поэтому программисты на С и С++ реально задействуют все преимущества технологии ODBC • ODBC становится стандартом для клиентсерверного доступа к базам данных. ODBC обеспечивает стандартный интерфейс, который требует функций SQL и оптимизирован под методы SQL.

Использование DAO для доступа к БД Использование DAO для доступа к БД

DAO • DAO базируется на технологии баз данных Microsoft Jet — процессоре баз данных, DAO • DAO базируется на технологии баз данных Microsoft Jet — процессоре баз данных, предназначенном для Microsoft Access. JET был первым объектно-ориентированным интерфейсом для связи с Access. Приложения, использующие Access, могут задействовать DAO для прямого доступа к данным. Поскольку DAO создавалась сразу же вслед за Access, применение этой технологии — самый быстрый и наиболее эффективный способ доступа к базам данных Access. DAO может работать и с отличными от Access базами данных, такими, как SQL Server и Oracle. DAO использует ODBC, но, поскольку метод DAO спроектирован специально для взаимодействия с JET, JET транслирует запросы между DAO и ODBC. Этот дополнительный шаг трансляции и является причиной замедления работы с базами данных, отличными от Access.

RDO • Чтобы преодолеть это ограничение DAO, разработчики Microsoft создали RDO. Затем было разработано RDO • Чтобы преодолеть это ограничение DAO, разработчики Microsoft создали RDO. Затем было разработано ODBCDirect, расширение DAO. , •

DAO-приложение, используя ODBCDirect, обращается к базе данных, минуя проблемы, которые вызывает JET. DAO-приложение, используя ODBCDirect, обращается к базе данных, минуя проблемы, которые вызывает JET.

OLE DB • Технология OLE DB построена на ODBC и расширяет ее до компонентной OLE DB • Технология OLE DB построена на ODBC и расширяет ее до компонентной архитектуры, которая обеспечивает высокоуровневый интерфейс доступа к данным. Эта архитектура предоставляет постоянный доступ к SQL-данным, не SQL-данным и неструктурированным источникам данных по локальным сетям и Internet. В действительности для доступа к SQLданным OLE DB использует ODBC, потому что это самая подходящая архитектура для работы с SQL.

Архитектура OLE DB Архитектура OLE DB

ADO • ADO работает с объектами DAO и RDO, а также поддерживает более простые ADO • ADO работает с объектами DAO и RDO, а также поддерживает более простые модели, чем DAO и RDO • Объектная иерархия в ADO более однородная, чем в DAO. ADO содержит несколько встроенных объектов, которые упрощают доступ к данным из информационных хранилищ.

ADO ADO

ADO. Net ADO. Net

ADO. NET • ADO. NET представляет собой набор библиотек, входящих в Microsoft. NET Framework ADO. NET • ADO. NET представляет собой набор библиотек, входящих в Microsoft. NET Framework предназначенных для взаимодействия с различными хранилищами данных из. NET приложений • Библиотеки ADO. NET включают все необходимые классы для подключения к источникам данных практически произвольного формата, выполнения запросов к этим источникам и получения результата. • Несомненным достоинством ADO. NET является возможность работы с отсоединенными источниками данных, представляющих собой структуры, организующие данные в оперативной памяти компьютера, работать с которыми возможно с использованием ставших уже привычными средств доступа к данным.

Классы ADO. NET Классы ADO. NET

Подсоединенные объекты необходимы для управления соединением, транзакциями, выборкой данных и передачей изменений данных в Подсоединенные объекты необходимы для управления соединением, транзакциями, выборкой данных и передачей изменений данных в БД, т. е. они непосредственно взаимодействуют с базой данных: • Объект Connection представляет соединение с источником данных. • Объект Transaction позволяет осуществлять транзакции. • Объект Data. Adapter представляет собой связующее звено между отсоединенными объектами ADO. NET и базой данных. С его помощью осуществляется заполнение таких объектов как Data. Set или Data. Table значениями, полученными в результате выполнения запроса к базе данных для последующей автономной работы с ними. Помимо этого, Data. Adapter реализует эффективный механизм выполнения обновления данных, хранимых в базе данных изменениями, внесенными в данные объектов Data. Set и Data. Table. • Объект Command представляет запрос к источнику данных, вызов хранимой процедуры или прямой запрос на возврат содержимого конкретной таблицы. • Объект Parameter позволяет вводить в запрос элемент, значение которого может быть задано непосредственно перед исполнением запроса. • Объект Data. Reader предназначен для максимально быстрой выборки и просмотра возвращаемых запросом записей.

Отсоединенные объекты позволяют работать с данными автономно. • Объект Data. Set представляет собой отсоединенный Отсоединенные объекты позволяют работать с данными автономно. • Объект Data. Set представляет собой отсоединенный набор данных, который может рассматриваться как контейнер для объектов Data. Table. Data. Set позволяет организовывать внутри себя структуру, полностью соответствующую реальной структуре таблиц и связей между ними в БД. • Объект Data. Table позволяет просматривать данные в виде наборов записей и столбцов. • Объект Data. Column представляет собой столбец объекта Data. Table. Набор же всех столбов объекта Data. Table представляет собой коллекцию Columns. • Объект Data. Row представляет собой строку объекта Data. Table. Набор всех строк этого объекта представляет собой коллекцию Rows. • Объект Data. View предназначен для организации возможности просмотра содержимого Data. Table различными способами. Это относится к таким операциям, как сортировка и фильтрация записей. • Объект Data. Relation представляет собой описание связей между таблицами реляционной базы данных. Он предоставляется объектом Data. Set и позволяет организовывать взаимосвязи между таблицами отсоединенного набора данных объекта Data. Set.

Поставщик данных. NET • Одной из основных идей, лежащих в основе ADO. NET является Поставщик данных. NET • Одной из основных идей, лежащих в основе ADO. NET является наличие поставщиков данных. • Поставщик данных – это набор классов, предназначенных для взаимодействия с хранилищем данных определенного типа

Поставщик данных. NET Поставщик данных. NET

Поставщик данных. NET состоит из четырех основных компонентов: • Connection — для связи с Поставщик данных. NET состоит из четырех основных компонентов: • Connection — для связи с источником данных; • Command выполняет команды над источником данных; • Data. Reader читает данные из источника данных в однонаправленном режиме «только чтение» • Data. Adapter, который читает данные из источника данных и использует их для заполнения объекта Data. Set.

 • • • . Каждый поставщик данных может обеспечивать доступ только к базе • • • . Каждый поставщик данных может обеспечивать доступ только к базе данных определенного формата ( Microsoft SQL Server используется поставщик SQL Server для . NET, для доступа к БД Oracle – поставщик Oracle для. NET и т. д) Если поставщики данных для каких-либо СУБД не выделены в ADO. NET, то для взаимодействия с ними может применяться поставщик данных Ole. Db для. NET или ODBC для. NET, которые обеспечивают доступ к любым данным, для которых существует драйвер Ole. Db, либо ODBC соответственно. Тем не менее, всегда предпочтительнее использовать тот поставщик данных, который специально предназначен для обеспечения доступа к данному источнику данных, т. к. он учитывает его особенности. Каждый поставщик. NET реализует одинаковые базовые классы – Connection, Transaction, Data. Adapter, Command, Parameter, Data. Reader имена которых зависят от поставщика. Например, у поставщика SQL Server существует объект Sql. Data. Adapter, у поставщика Ole. Db – Ole. Db. Data. Adapter и т. д. У каждого поставщика данных существует собственное пространство имен. Хотя все поставщики относятся к пространству имен System. Data, каждый из них содержит свой подраздел этого пространства, который содержит объекты, специфичные для данного поставщика. Например, объект Sql. Data. Adapter находится в пространстве имен System. Data. Sql. Client. Все поставщики данных. NET реализуют одинаковые базовые функции, поэтому код, создаваемый для доступа к данным, выглядит приблизительно одинаково независимо от поставщика.

Выполнение команд • Одним из основных элементов из набора классов ADO. NET, способным выполнять Выполнение команд • Одним из основных элементов из набора классов ADO. NET, способным выполнять любой SQL оператор является класс Command. Для того чтобы использовать класс Command необходимо установить тип команды, установить текст запроса SQL и привязать ее к соединению с БД.

Типы команд • Command. Type. Text - Выполнение прямого оператора SQL, текст которого устанавливается Типы команд • Command. Type. Text - Выполнение прямого оператора SQL, текст которого устанавливается в свойстве Command. Text. Это значение по умолчанию. • Command. Type. Stored. Procedure - Выполнение хранимой процедуры, имя которой установлено в свойстве Command. Text. • Command. Type. Table. Direct - Выполняет опрос всей таблицы базы данных, имя которой задается в свойстве Command. Text. Этот тип команды используется для обратной совместимости с некоторыми драйверами OLE DB и не поддерживается поставщиком данных SQL Server.

Методы класса Command • Execute. Reader() - Выполнение запроса SQL и возврат объекта Data. Методы класса Command • Execute. Reader() - Выполнение запроса SQL и возврат объекта Data. Reader, представляющего однонаправленный курсор, с доступом только для чтения. • Execute. Non. Query() - Выполнение SQL команд, предназначенных для вставки, изменения, удаления записей БД. Результатом работы команды является количество строк, обработанных командой. • Execute. Scalar() - Выполнение SQL команды и возврат первой строки результата запроса. Обычно используется для выполнения команды, содержащей агрегирующие функции типа COUNT(), MAX() и т. д.

Отсоединенные наборы данных Основной идеей использования отсоединенных наборов данных является изменения алгоритмов взаимодействия приложения Отсоединенные наборы данных Основной идеей использования отсоединенных наборов данных является изменения алгоритмов взаимодействия приложения с базой данных : • подключения к набору данных, • выполнения запроса • создания копии данных на стороне клиента, • отключения от БД, • осуществление манипуляций с данными на стороне клиента, • при необходимости внесения изменений в базу данных, подключение к ней, передача изменений и отключение. Таким образом, все основные манипуляции с данными происходят в отсоединенной наборе данных, представляющем собой копию данных, хранящихся в БД, а внесение изменений происходит в одной пакетной операции. Все это уменьшает время, в течение которого должно быть открыто соединение с БД, ускоряет работу и упрощает логику взаимодействия приложения с данными.

Класс Data. Set • • • Объект Data. Set представляет собой контейнер, содержащий объекты Класс Data. Set • • • Объект Data. Set представляет собой контейнер, содержащий объекты Data. Table и Relation. Data. Table, представляет собой таблицу, состоящую из строк и столбцов. Строки таблицы представлены объектом Data. Row, который, в свою очередь, представляет собой коллекцию столбцов таблицы (объект Data. Column). Данные в Data. Set отсоединены от БД. Все изменения данных кэшируются в объектах Data. Row. При возникновении необходимости передачи изменений в данных объекта Data. Set существует возможность передачи только изменившейся части данных, что позволяет значительно экономить ресурсы канала связи, т. к. в этом случае передается гораздо меньший объем данных.

Применение Data. Set • Необходимость реализации сериализации данных на диск. Data. Set позволяет легко Применение Data. Set • Необходимость реализации сериализации данных на диск. Data. Set позволяет легко сохранять данные в файле XML. При этом возможны варианты сохранения только данных, только структуры данных, либо и того и другого. • Необходимость организации навигации по набору данных в двух направлениях. Как уже упоминалось, Data. Reader обеспечивает перемещение по набору только вперед. С помощью же Data. Set возможна организация постраничного просмотра данных. • Необходима привязка нескольких элементов управления к одному набору данных. Data. Set, в отличие от Data. Reader содержит средства организации сортировки и фильтрации данных.

Класс Data. Adapter • Data. Adapter является связующим звеном между базой данных и Data. Класс Data. Adapter • Data. Adapter является связующим звеном между базой данных и Data. Set. Точнее, он связывает БД и объект Data. Table, расположенный внутри Data. Set. • Data. Adapter содержит три основных метода, позволяющих ему выполнять все необходимые операции, связанные с извлечением и обновлением данных

Методы класса Data. Adapter • Fill - Выполнение запроса типа Select, определенного в свойстве Методы класса Data. Adapter • Fill - Выполнение запроса типа Select, определенного в свойстве Select. Command и добавление таблицы, получаемой в результате данного запроса в Data. Set. • Fill. Schema() - Выполнение запроса типа Select, текст которого расположен в свойстве Select. Command и добавление таблицы, содержащей только структуру данных полученных в результате выполнения запроса в Data. Set. • Update() - Применяет все изменения, внесенные в Data. Table к источнику данных. При этом исполняются команды вставки, обновления и удаления, расположенные в свойствах Insert. Command, Update. Command, Delete. Command.

LINQ • Language Integrated Query (LINQ) – проект Microsoft по добавлению синтаксиса языка запросов, LINQ • Language Integrated Query (LINQ) – проект Microsoft по добавлению синтаксиса языка запросов, напоминающего SQL, в языки программирования платформы. NET Framework • LINQ выпущен вместе с Visual Studio 2008 в конце ноября 2007 года. • Запрашиваемые данные могут быть представлены в форме: – XML (запросы LINQ к XML) – баз данных (LINQ к SQL, LINQ к наборам данных и LINQ к экземплярам) – объектов (LINQ к объектам) и т. д. 32

Архитектура LINQ 33 Архитектура LINQ 33

Операция запроса в LINQ Источник: Введение в запросы LINQ , http: //msdn. microsoft. com/ru-ru/library/bb Операция запроса в LINQ Источник: Введение в запросы LINQ , http: //msdn. microsoft. com/ru-ru/library/bb 397926. aspx 34

LINQ to SQL • LINQ to SQL – простая, но достаточно мощная система объектно-реляционного LINQ to SQL • LINQ to SQL – простая, но достаточно мощная система объектно-реляционного отображения (ORM) • LINQ to SQL позволяет производить отображение реляционных данных на объектную модель • LINQ to SQL поддерживает все основные возможности, необходимые для разработчиков, на SQL: – – Выбор Вставка Обновление Удаление 35

Работа с реляционными данными по технологии ADO. NET 36 Работа с реляционными данными по технологии ADO. NET 36

Работа с реляционными данными по технологии LINQ to SQL 37 Работа с реляционными данными по технологии LINQ to SQL 37

Отображение LINQ to SQL 38 Отображение LINQ to SQL 38

 • ADO. NET Entity Framework (EF) – объектно- ориентированная технология доступа к данным, • ADO. NET Entity Framework (EF) – объектно- ориентированная технология доступа к данным, является object-relational mapping (ORM) решением для. NET Framework от Microsoft • Возможность взаимодействия посредством LINQ to Entities и с использованием Entity SQL • Используется ADO. NET Data Services и связка из Windows Communication Foundation и Windows Presentation Foundation 39

Преимущества приложений ADO. NET Entity Framework • Могут работать концептуальной моделью в терминах предметной Преимущества приложений ADO. NET Entity Framework • Могут работать концептуальной моделью в терминах предметной области • Освобождаются от жестких зависимостей от конкретного ядра СУБД или схемы хранения • Сопоставления между концептуальной моделью и схемой, специфичной для конкретного хранилища • Возможность работы с согласованной моделью объектов приложения, которая может быть сопоставлена с различными схемами хранения • Несколько концептуальных моделей могут быть сопоставлены с единой схемой хранения • Поддержка LINQ 40

Компоненты Entity Framework • • Модель Entity Data Model (EDM) Компонент Object Services Компонент Компоненты Entity Framework • • Модель Entity Data Model (EDM) Компонент Object Services Компонент LINQ to Entities Язык Entity SQL Поставщик Entity. Client Компонент метаданных ADO. NET Набор средств, которые создают сопоставления и разделяемые классы, представляющие сущности концептуальной модели • Поставщик данных Sql. Client 41

Entity Data Model 42 Entity Data Model 42

Архитектура Entity Framework 43 Архитектура Entity Framework 43

Архитектурный аспект DDD • • • Сущность (Entity) Объект со значением (Value Object) Агрегат Архитектурный аспект DDD • • • Сущность (Entity) Объект со значением (Value Object) Агрегат (Aggregate) Службы (Services) Репозитории (Repositories) Фабрики (Factories) 44