Лекция ТП 21_10_20. 1 Архитектура odbc, jdbc, oci, ole db и ado допустим, есть клиент, написанный к примеру наесть база данных
Скачать 217.26 Kb.
|
1 Архитектура ODBC, JDBC, OCI, OLE DB и ADO Допустим, есть клиент, написанный к примеру наесть база данных (ORACLE, MS SQL) и целая куча разных Desktops БД (Access, dBase, Paradox, Excel и т.д.). Как же происходит взаимодействие Прежде всего, в системе устанавливается Microsoft Driver Manager (odbc32.dll). Эта ка взаимодействует иногда си. Для работы с этой кой есть администратор, который позволяет подключать драйверы то что мы видим в панели управления. Есть ODBC Administrator – это ничто иное, как odbcad32.exe, odbccp32.dll и odbccp32.cpl – видим в панели управления. С помощью этих средств мы запускаем администратор (через пиктограмму odbccp32.cpl), и там можно устанавливать имя базы, подключать драйверы, псевдонимы давать базам данных и т.д. и т.д. Для каждой базы данных в системе должен быть соответствующий драйвер. Например, ODBC driver для ORACLE (как правило, есть в системе драйвер для MS SQL Server – тоже есть драйвер, который чаще всего интегрирован, поскольку это базы все простенькие, – odbcjt32.dll – для разных Desktop– овских СУБД. Рис. 17.1. Архитектура ODBC Таким образом, промежуточное программное обеспечение достаточно большое. Клиент в ручном режиме настраивает псевдоним и указывает путь для базы данных, выбирает драйвер. Когда клиент обращается, то он обращается ку, берет нужный драйвера нужный драйвер бывает часто записан в этих файлах, а в последнее время в реестре Windows (лезет в реестр Windows и находит драйвер, подключает этот драйвер и обращается к БД). ODBC API включает около 56 функций. Это было создано в 1992 году, поэтому она реализована на уровне функций, те. имеет функциональное представление. Чуть позже был разработан BDE , который фактически условно считается объектно- ориентированным, но объектно-ориентированного там мало, все равно там есть тоже функции. BDE лучше обеспечивает доступ к Desktop–овским СУБД, поскольку у Borland более простые базы данных. Там можно настраивать разные языки. Но сейчас это правда никому ненужно, т.к. все драйверы стали делать универсальными, - им все равно. Драйверы пропускают просто данные вне зависимости от языка. В результате получилось так, что для использования BDE надо инсталлировать 17мб и неясно, что из них можно выбросить, в то время как реализация конкретного доступа на ODBC потребует меньше мегабайта. Стандарт JDBC первоначально разработанный, чтобы иметь доступ к БД по такой же архитектуре сначала включал в себя моста дальше подключались ODBC–шные драйвера. Нос течением времени научились делать и свои драйверы более прямые, и естественно здесь, как говорится, многократное преобразование, а там получилось одно преобразование и обращения к БД стали более быстрыми. 2 Стандарт OCI предназначен только для доступа к базам данных ORACLE. В отличие от Microsoft предлагает немного другой драйвер. Те. имеется клиент, sqloci32.dll, который соединяется с NET8. Драйвер NET8 всегда есть в базе данных ORACLE. Microsoft, в свою очередь, подключается к ORACLE, минуя NET8 с любой операционной системой, если вы устанавливаете Office, то там этот драйвер есть. Однако сам ORACLE для себя делает более маленькую ку, потому что у него всегда есть хорошо отлаженный драйвер NET8. Стечением времени чисто функциональный подход к созданию промежуточного программного обеспечения стал немножко входить в диссонанс с объектно- ориентированными средами разработки, и было разработано два новых стандарта OLE и ADO. Что собой представляют OLE DB и ADO фактически Общая более современная структура доступа от приложения к БД по мнению Microsoft на сегодня выглядит следующим образом Рис. 17.2. Современная структура доступа от приложения к БД Есть приложение или клиент, драйверы OLE DB или поставщики, имеется ADO. Вот как по структуре от Microsoft может быть реализован доступ к SQL – им данными к не SQLским данным (например, к каким-то текстовым данным, тоже есть драйверы. OLE DB провайдеры чисто объектно-ориентированные: там есть классы, объекты, методы. Однако поскольку OLE DB сам стандарт достаточно тяжелый, такие книги по нему, то для упрощения доступа сделан простой интерфейс ADO, с помощью которого из многих сред таких как Visual Basic, Delphi, и др. можно по-простому обращаться вот таким образом. ODBC никуда не исчез, потому что есть OLE DB провайдеры. Microsoft сделал только семь провайдеров для себя любимого, для ORACLE, для ODBC для всех других баз данных, для текстовых и т.д. всего их 7 штук. Желающих дальше разрабатывать этот провайдер не оказалось, и эта система вот так вот и осталась. Если есть прямой провайдер к MS SQL и ORACLE то можно напрямую (1). ADO позволяет иметь доступ либо вот так (2), если провайдера нет, и (3), если провайдер имеется. 3 connection – организует соединение базы данных, те. инкапсулирует все сведения о соединении имя базы данных и т.д. и т.д. command – объект имеющий методы для выполнения команд. streams – работа с потоками. fields – для работы с полями. Рис. Набор объектов ADO Такова архитектура ADO для доступа базам данных, те. это небольшой комплект объектов, у которого есть некоторый набор методов, с помощью которых считывать записи напрямую через потоки, если из файлов считывать и т.д. Таким образом к сегодняшнему дню сформировано целое направление промежуточного программного обеспечения (ODBC, JDBC, ADO, OLE DB , BDE , OCI), назначение которого дать возможность разрабатывать клиентские приложения на различных языках и подключаться к существующим базам данных. Для этого нужные только драйверы и вот это промежуточное ПО, которое может работать с этими драйверами. Тем самым был развязан узел между поставщиками баз банных и поставщиков языков, они конечно поставляли языки но средства были очень и очень ограничены. 4 Технология Open Database Connectivity ODBC (англ. Open Database Connectivity) — это программный интерфейс (API) доступа к базам данных, разработанный фирмой Microsoft, в сотрудничестве сна основе спецификаций Call Level Interface (CLI), который разрабатывался организациями SQL Access Group, X/Open и Microsoft. Впоследствии CLI был стандартизован ISO ISO/IEC 9075-3:2003. Стандарт CLI призван унифицировать программное взаимодействие с СУБД, сделать его независимым от поставщика СУБД и программно-аппаратной платформы. Вначале х годов существовало несколько поставщиков баз данных, каждый из которых имел собственный интерфейс. Если приложению было необходимо общаться с несколькими источниками данных, для взаимодействия с каждой из баз данных было необходимо написать свой код. Для решения возникшей проблемы Microsoft и ряд других компаний создали стандартный интерфейс для получения и отправки источникам данных различных типов. Этот интерфейс был назван Open Database Connectivity, или открытая связь с базами данных. C помощью ODBC прикладные программисты могли разрабатывать приложения для использования одного интерфейса доступа к данным, не беспокоясь о тонкостях взаимодействия с несколькими источниками. Это достигается благодаря тому, что поставщики различных баз данных создают драйверы, реализующие конкретное наполнение стандартных функций из ODBC API с учётом особенностей их продукта. Приложения используют эти функции, реализованные в соответствующем конкретному источнику данных драйвере, для унифицированного доступа к различным источникам данных. MFC усовершенствовала ODBC для разработчиков приложений. Истинный интерфейс ODBC является обычным процедурным API. Вместо создания простой оболочки процедурного API разработчики MFC создали набор абстрактных классов, представляющих логические сущности в базе данных. |