Similar presentations:
1_Vvedenie_v_ADO(1)
1. Технология ADO .Net
12. Предыстория
23. Работа приложения с данными
Большинству приложенийтребуется тот или иной тип
доступа к данным
Приложение
XML-хранилища
Центральная
БД
Локальная
БД
3
4. Доступ к данным: история
ODBC (Open DataBase Connectivity)DAO (Data Access Objects) – объектная модель для
доступа к MS Jet
OLE DB – открытый низкоуровневый интерфейс,
определяющий стандарт доступа к любым данным,
как к реляционным, так и нет (основа инициативы
UDA)
ADO (ActiveX Data Objects) – высокоуровневый
интерфейс к OLE DB
ADO.NET
4
5. Доступ к данным: проще
DAOODBC
ADO.NET
RDO
ADO
OLE DB
5
6. ODBC - Open DataBase Connectivity
это технология, которая используетсяпрограммами для получения доступа к
различным базам данных (или
источникам данных). Для
использования необходимо, чтобы на
компьютере был установлен требуемый
драйвер ODBC и задан источник
данных.
6
7. ODBC
Всю информацию об источниках данных иODBC драйверах Windows хранит в реестре.
Обращение к БД происходит по имени
зарегистрированного источника данных DSN
(Data Source Name), Таким образом, перед
использованием источник данных
необходимо зарегистрировать на компьютере
пользователя.
Зарегистрировать новое подключение можно
через "Администратор источника данных"
7
8. ODBC - Open DataBase Connectivity
Цель – один код дляразных БД
Использует SQL в
качестве рабочего
языка
Построено на наборе
драйверов,
обеспечивающих
доступ к конкретным
СУБД
ODBC
DAO
ADO.NET
RDO
ADO
OLE DB
8
9. DAO
Data Access ObjectsDAO
предоставляет модель
ODBC
ADO.NET
объектов для доступа
к локальным базам данных
ADO
(ISAM источники FoxPro,
OLE DB
Paradox,
Lotus 1-2-3 и т.п) или к
базам данных SQL через
Jet (напрямую или через
ODBC)
Только реляционные базы
данных
RDO
9
10. OLE DB - Object Linking and Embedding, Database (Связывание и внедрение объектов )
OLE DB, в отличие от ODBC, являетсяобъектно-ориентированным API,
основанным на COM-интерфейсах.
OLE DB провайдеры могут работать не
только с реляционными базами данных,
но и с любой другой информацией
которую можно представить в
табличном виде
10
11. OLE DB
Для подключения через OLE DB нетребуется регистрация источника
данных в системе, как это принято в
ODBC. Вся информация хранится либо
в файлах с расширением udl, либо
указывается непосредственно в строке
подключения.
11
12. Как много девушек хороших…
DBMS, SQL (DML + DDL), ODBC, DAO,RDO, UDA, RDS, OLE DB, ADO, …
Мы выбираем !
ADO . NET
DAO
ODBC
ADO.NET
RDO
ADO
OLE DB
12
13. Архитектура ADO.NET
1314. Опреление
Microsoft ADO.NET (ActiveX DataObjects) — объектная модель доступа к
данным, набор средств, позволяющих
приложению управлять и
взаимодействовать со своим файловым
или серверным хранилищем данных.
Библиотеки ADO.NET включают классы,
которые служат для подсоединения к
источнику данных, выполнения
запросов и обработки их результатов.
14
15. ОБЪЕКТНАЯ МОДЕЛЬ ado.net
Recordset =15
DataTable, DataSet, DataAdapter, DataReader.
16. Подсоединенные объекты
(= подключенные объекты)16
17. Подсоединенные объекты
используются для управлениясоединением, транзакциями, для
выборки данных и передачи изменений
они взаимодействуют непосредственно
с БД. Большинство подключенных
объектов реализовано в рамках того,
что называется поставщиками
данных.
17
18. ПОСТАВЩИКИ ДАННЫХ .NET -
ПОСТАВЩИКИ ДАННЫХ .NET .NЕТ data provider - это набор классов,предназначенных для взаимодействия с
хранилищем данных определенного типа.
18
19.
Архитектура .NET Framework включает всебя четыре поставщика:
SQL Client .NET Data Provider,
Oracle Client .NET Data Provider,
ODBC .NET Data Provider
OLE DB .NET Data Provider.
Поставщики ODBC и OLE DB .NET
являются связующими компонентами с
действующими технологиями ODBC и OLE
DB. С их помощью можно взаимодействовать
с различными хранилищами данных
посредством ODBCдрайверов и OLE DBпоставщиков соответственно.
19
20. Поставщики данных, входящие в состав .NET Framework (пример)
2021. Специализированные поставщики (преимущества)
Специализированные поставщики данныхобеспечивают гораздо большую производительность
по сравнению с обобщенными поставщиками.
Специализированные поставщики данных лучше
приспособлены для выполнения функции,
специфичных для конкретных СУБД
Специализированные поставщики данных дают
возможность работать с типами данных,
специфичными для конкретных СУБД. Это во многих
случаях позволяет не выполнять преобразования
данных и избежать потери точности при таких
преобразованиях.
21
22. Общие поставщики (преимущества)
Можно ограничиться минимальным наборомфункций, общим для всех источников данных, и
воспользоваться поставщиком данных либо ODBC,
либо OleDb. Для этих поставщиков характерны
слабая производительность и скудные
возможности, но они позволяют написать код, не
зависящий от СУБД.
ADO.NET предоставляет стандартные интерфейсы
и базовые классы для наиболее распространенных
объектов. Работая с типами данных,
представленными либо в базовом интерфейсе,
либо в реализованном интерфейсе, можно
избежать ошибок преобразования типов во время
выполнения. Недостатком этого подхода является
то, что приходится ограничиваться минимальным
набором общих функций.
22
23. Базовые классы
Каждый поставщик данных .NET реализуетодинаковые базовые классы — ProviderFactory,
Connection, ConnectionStringBuilder, Command,
DataReader, Parameter и Transaction, имена которых
зависят от поставщика.
Например, у поставщика SQL Client .NET Data
Provider есть объект SqlConnection, а у поставщика
ODBC .NET Data Provider это объект QdbcConnection.
Независимо от типа поставщика объект
Connection реализует одинаковые базовые функции
посредством одних и тех же базовых интерфейсов.
23
24. Пример
2425. Зачем ???
В предыдущих технологиях доступа кданным Microsoft нет отдельных
библиотек и классов для разных
хранилищ данных. Почему компания
решилась на такое существенное
изменение. Основных причин три:
производительность, возможность
расширения и пролиферация.
25
26. Повышенная производительность
Как переход к использованию поставщиков данных .NЕТповышает производительность? Создавая ADOкод, вы,
взаимодействуя с БД, по сути, используете интерфейсы ADO в
качестве «посредника». Вы указываете ADO, какой поставщик
следует использовать, и модель передает ему все ваши
вызовы. Поставщик выполняет необходимые действия и
возвращает вам результат через библиотеку ADO. У
поставщиков данных .NET промежуточный уровень отсутствует.
Вы обращаетесь непосредственно к поставщику, и тот
взаимодействует с хранилищем данных с помощью
низкоуровневых интерфейсов программирования последнего.
Взаимодействие с SQL Server в ADO.NET посредством
поставщика SQL Client .NET Provider происходит быстрее, чем в
ADO с помощью OLE DBпоставщика SQL Server, поскольку в
ADO.NET использовано на один уровень меньше.
26
27. Базовые классы
Подсоединенных объектов27
28. Класс Connection
Применяется для соединения с БД иотсоединения от нее. С помощью свойств
этого объекта можно задать тип источника,
его расположение пр. Объект Connection
выступает в качестве канала, по которому
другие классы, например DataAdapter и
Command, взаимодействуют с БД для
передачи изменении и выборки их
результатов.
28
29. Класс ConnectionStringBuilder
Новый класс в ADO.NET версии 2.0. Этот классоблегчает процесс построения строк подключения
для поставщика данных .NET. Каждый класс
ConnectionStringBuilder предоставляет свойства,
которые соответствуют опциям, доступным в той
самой строке подключения поставщика данных.
Создав строку подключения с помощью класса
ConnectionStringBuilder, можно получить доступ к
строке подключения средствами свойства
ConnectionString класса ConnectionStringBuilder.
29
30. Класс Command
Могут осуществлять запрос к БД, вызовхранимой процедуры или прямой
запрос на возврат содержимого
конкретной таблицы. Команда может
возвратить или нет какой-либо
результат (в зависимости от этого
выполнение объекта Command
запускается различными методами)
30
31. Класс DataReader
Класс DataReader предназначен для максимальнобыстрой выборки и просмотра возвращаемых
запросом записей. Он позволяет просматривать
результаты запроса по одной записи за раз. При
переходе к следующей записи содержимое
предыдущей отбрасывается. Объект DataReader не
поддерживает обновление, и возвращаемые им
данные доступны только для чтения. Поскольку класс
DataReader реализует лишь ограниченный набор
функций, он очень прост и имеет высокую
производительность.
31
32. Класс Transaction
используется для выполнения группы команд вместекак неделимую операцию. Примером может быть
банковское приложение, в котором кредит не
должен появиться, если невозможно выполнить
соответствующий дебет. Классы транзакции
позволяют объединять подобные группы команд и
выполнять их как единое целое. В классе Connection
есть метод BeginTransaction, позволяющий создавать
объекты Transaction. С помощью объекта Transaction
удается подтвердить или отменить все коррективы,
сделанные в ходе транзакции.
32
33. Класс Parameter
Используется для созданияпараметризованного объекта Command. Для
использования параметров создайте классы
Parameter, соответствующие всем
параметрам запроса, и добавьте их в класс
Parameters объекта Command. Класс
Parameter ADO.NET предоставляет свойства
и методы, позволяющие определить тип
данных и значение параметров.
33
34. Класс DataAdapter
Класс DataAdapter воплощает новуюконцепцию моделей доступа к данным
Microsoft. Это своеобразный шлюз между БД
и отсоединенными объектами модели
ADO.NET. Он устанавливает подключение
или, если подключение уже установлено,
содержит достаточно информации, чтобы
воспринимать данные автономных объектов
и взаимодействовать с базой данных
предписанным образом.
34
35. Класс ProviderFactory
ProviderFactory — новый класс в ADO.NETверсии 2.0, действующий как фабрика
объектов, которая дает возможность
создавать образцы других классов для
поставщика данных .NET. Каждый класс
ProviderFactory предлагает метод Create, в
котором создаются объекты Connection,
ConnectionStringBuilder, Command, Parameter,
DataAdapter и CommandBuilder.
35
36. Отсоединенные объекты
= (автономные) объекты36
37. Отсоединённые данные
Прежние технологии – постоянноесоединение с источником данных:
Соединение не закрывается до
завершения работы с источником
Чем больше соединений, тем ниже
производительность системы
Плохая масштабируемость приложения
В ADO.NET эти проблемы решаются
использованием по умолчанию
отсоединённых данных
37
38. Соединение с БД
ПриложениеОбновление
Запрос
данных
Соединение
Обновленные
Данные
данные
Данные
Соединение
Обновленная
База данных
база данных
Данные
38
39. Отсоединенные объекты
Объекты, составляющие автономнуючасть модели ADO.NET, не
взаимодействуют напрямую с
подсоединенными объектами, для этого
используется DataAdapter.
Автономные объекты не должны знать
о базе данных, поэтому они могут
совместно использоваться различными
базами.
39
40. Отсоединенные объекты
Автономные приложения ADO.NETподключаются к базе как можно позже и
отключаются как можно раньше.
При работе в автономном режиме ADO.NET
ведет пул реальных физических подключений
для различных запросов, таким образом
многократно повышая свою
производительность с помощью подобного
пула подключений.
40
41. Базовые классы
(Отсоединенные объекты)41
42. Класс DataSet
содержит набор данных.Данные в нем отсоединены от БД. Все
изменения данных кэшируются в объектах
DataRow.
Кроме того, класс DataSet предоставляет
функции чтения и записи в файл и область
памяти. Можно сохранить только
содержимое объекта DataSet, только его
структуру или и то и другое. ADO.NET
хранит эти данные в виде XML-документа.
42
43.
DataSetDataTable
DataColumns
Constraints
DataRows
43
44. Класс DataTable
похож на таблицу базы данных. Он состоитиз объектов DataColumn, DataRow и
различных налагаемых па них ограничений.
Он хранит данные в формате строк и
столбцов.
При автономной работе с данными живое
соединение с БД не понадобится, однако вы
не увидите изменений, внесенных другими
пользователями после выполнения вами
исходного запроса.
44
45. Класс DataColumn
соответствует столбцу таблицы. Вдействительности же DataColumn
содержит не данные, хранящиеся в
объекте DataTable, а информацию о
структуре столбца. Такая
разновидность информации называется
метаданными (metadata).
45
46. Класс Constraint
Класс DataTable содержит еще односвойство — Constraint — типа
ConstrsantsCollection. Оно позволяет
создавать объекты ForeignKeyConstraint
и ассоциировать различные столбцы с
определенными условиями, которым
должны соответствовать данные из
DataTable.
46
47. Класс DataRow
Объект DataTable предоставляет через наборRows содержимое всех записей данных.
Когда вы изменяете содержимое записи,
DataRow кэширует эти изменения, чтобы
позже передать их в БД.
При изменении значения поля записи объект
DataRow хранит оригинальное и текущее
значения поля, что обеспечивает успешное
обновление содержимого БД.
47
48. Класс DataRelation
позволяет задать отношения междуразличными таблицами, с помощью которых
можно проверять соответствие данных из
различных таблиц, а также просматривать
родительские и дочерние строки из
различных объектов DataTable. Кроме того,
объекты DataRelation предоставляют
свойства, позволяющие обеспечить
ссылочную целостность.
48
49. Класс DataView
Выбрав результаты запроса в объектDataTable, его содержимое можно
просматривать разными способами
посредством объекта DataView.
Просматривать содержимое одного
объекта DataTable можно
одновременно посредством нескольких
объектов DataView.
49
50. Классы DataSet со строгим контролем типов
— это класс, наследованный от классаDataSet и включающий свойства и
методы, основанные на указанной вами
схеме данных.
Кроме того, этот класс содержит другие
классы для объектов DataTable и
DataRow, они позволяют создавать
более эффективный код доступа к
данным.
50
51.
КОНЕЦ51
database