Унифицированные средства доступа к серверам баз данных
Внутренние механизмы доступа к БД
API СУБД
Например, функции PHP для работы dBase:
dbase_add_record -- Adds a record to a database dbase_close -- Closes a database dbase_create -- Creates a database int dbase_create ( string filename, array fields ) - создает новую базу данных dbase_delete_record -- Deletes a record from a database dbase_get_header_info -- Gets the header info of a database dbase_get_record_with_names -- Gets a record from a database as an associative array dbase_get_record -- Gets a record from a database as an indexed array dbase_numfields -- Gets the number of fields of a database dbase_numrecords -- Gets the number of records in a database dbase_open -- Opens a database dbase_pack -- Packs a database dbase_replace_record -- Replaces a record in a database
Поддержка SQL
собственные подмножества языка
Внешние средства интеграции приложений БД
Библиотека Borland Database Engine (BDE)
Ключевой механизм BDE (Borland Database Engine), обеспечивающий работу визуальных компонент баз данных, действует как интерфейс между вашим приложением и самой базой данных. BDE реализован в виде набора системных DLL файлов. Взаимодействие компонентных объектов с BDE никак не специфицирует конкретную базу данных и не зависит от реализации обмена информацией на нижнем уровне иерархии. Именно BDE обращается в свою очередь к драйверам, специфическим для базы данных указанного типа, возвращая вашему приложению запрошенные фактические данные. BDE играет роль, аналогичную контроллеру драйверов ODBC (Open Database Connectivity) производства фирмы Microsoft, изолируя приложения от нижнего уровня взаимодействия с базой данных и увеличивая общую производительность связи за счет использования кэш-памяти. Используя BDE, вы получаете доступ ко всем локальным стандартным базам данных вашего компьютера, к источникам данных ODBC и к SQL серверам баз данных в архитектуре сетевой связи клиент/сервер.
Унифицированная технология BDE применяется во всех продуктах производства корпорации Borland: C++Builder, Borland C++, Delphi, IntraBuilder и JBuilder. Чтобы получить доступ к содержимому базы данных, приложению необходимо знать только идентификатор ее псевдонима (alias).
Если созданное с помощью С++ Builder приложение в процессе работы обращается к базам данных, оно, как правило, использует для этой цели библиотеку BDE (Borland Database Engine), основанную на технологии IDAPI (Integrated Database Application Program Interface). Эта библиотека устанавливается автоматически при установке С++ Builder. По умолчанию она устанавливается в каталог C:\Program Files\Borland\Common Files\BDE.
Следует отметить, что файлы, входящие в состав библиотеки BDE, предназначены для использования не только приложениями, созданными с помощью С++ Builder, но и многими другими продуктами Borland (Visual dBase, Paradox, Delphi, Borland C++, IntraBuilder), созданными на их основе приложениями, а также офисными приложениями Corel (например, электронной таблицей Quattro Pro), генератором отчетов Crystal Reports (Seagate Software) . Поэтому при наличии нескольких использующих BDE приложений все 32-разрядные приложения (в том числе C++ Builder) используют установленную последней 32-разрядную версию BDE. В этом случае по умолчанию программа установки C++ Builder предложит поставить BDE в каталог, где установлена уже используемая версия BDE.
BDE обеспечивает для созданных приложений:
- непосредственный доступ к локальным базам данных (dBase, Paradox, текстовые файлы)
- доступ к SQL-серверам (Oracle, Sybase, MS SQL Server, InterBase, Informix, DB2) с помощью драйверов Borland SQL Links
- доступ к любым источникам данных, имеющим драйвер ODBC (Open DataBase Connectivity), например, к файлам электронных таблиц (Excel, Lotus 1-2-3), серверам баз данных, не имеющим драйверов SQL Links (например, Gupta/Centura)
- создание приложений клиент-сервер, использующих разнородные данные
- высокую производительность при работе с плоскими таблицами
- использование SQL (Structured Query Language - язык запросов к серверным СУБД), в том числе при работе с локальными данными
- изоляцию приложения от средств языковой поддержки
- изоляцию приложения от конфигурации системы и сети
Microsoft Jet Database Engine
Эта статья о JET Red используется в Microsoft Access. Для осуществления JET Blue ISAM, см. Extensible Storage Engine.
Microsoft Jet Database Engine является Database Engine, на котором несколько продуктов Microsoft были построены. Базы данных является основным компонентом базы данных, сбор информации, хранящейся на компьютере на систематической основе. Первая версия Jet была разработана в 1992 году, состоящий из трех модулей, которые могут быть использованы для управления базой данных.
JET стоит совместных Engine Technology, иногда именуются Microsoft Jet Engine или просто Jet. Microsoft Access и Visual Basic используют или использовали Jet как лежащие в их основе базы данных. С тех пор он был заменен для общего использования, однако, сначала Microsoft Desktop Engine (MSDE), а потом по SQL Server Express. Jet сейчас является частью Microsoft Windows и больше не компонента Microsoft Data Access Components (MDAC). Для больших потребностей базы данных, базы данных Jet может быть повышен (или, в терминологии Microsoft, "до размера"), чтобы флагман Microsoft базу данных продуктов, SQL Server.
На протяжении многих лет, Jet стало почти синонимом Microsoft Access, в той степени, где многие люди относятся к базе данных Jet, как "доступ к базе данных". Даже Microsoft сотрудники делают это иногда. Есть партии, которые видят это как неправильное и заявляют, что Jet представляет собой базу данных, и доступ к базе данных разработки приложений инструмент (база данных строитель).
Архитектура Jet
Jet позволяет манипуляции реляционными базами данных и является частью реляционной системы управления базами данных (СУБД). Он предлагает единый интерфейс, что другое программное обеспечение можно использовать для доступа к базам данных Microsoft и обеспечивает поддержку для обеспечения безопасности, целостности, обработки транзакций, индексирование, записи и страницы замок, и репликации данных. В более поздних версиях, двигатель был расширен, чтобы иметь возможность запускать SQL запросы, хранить символьные данные в формате Unicode, создать базы данных мнений и позволяют двунаправленной репликации с Microsoft SQL Server.
Библиотеки Jet
Есть три модуля для Jet: Одним из них является родной Jet ISAM драйвер, динамические библиотеки (DLL), которые могут непосредственно управлять Microsoft Access файлы базы данных (MDB) с использованием индексированных последовательного метода доступа (ISAM). Еще один из модулей содержит драйверы ISAM, DLL, которые позволяют доступ к различным базам данных ISAM, среди них Xbase, Paradox, FoxPro и Btrieve, в зависимости от версии Jet. Окончательный модуль Data Access Objects (DAO) DLL. DAO предоставляет API, что позволяет программистам доступ JET баз данных с использованием любого языка программирования.
Open DataBase Connectivity (ODBC)
Тема нашего сегодняшнего разговора - ODBC. Если вы хоть раз писали СУБД (системы управления базами данных), то вам, наверное, знакома эта аббревиатура. Расшифровывается ODBC как Open DataBase Connectivity (вольный перевод - открытая система связи с базами данных). Open (открытая) в данном случае означает "расширяемая", "легко наращиваемая", "открытая для модификаций". Вы сами это поймете, если посмотрите на архитектуру построения ODBC:
Как легко заметить, она действительно легко наращиваемая. Для добавления нового типа БД нужно лишь написать драйвер и зарегистрировать его. Еще одно преимущество, вытекающее из такого построения ODBC - пользовательское приложение общается с физической БД через менеджер драйверов, фактически ничего не зная о типе используемой БД (общение менеджера драйверов и самих драйверов более менее стандартно, так что с точки зрения пользователя все источники данных обладают практически одинаковыми свойствами). Таким образом, вы легко можете поменять физический тип базы данных, а приложение даже не узнает об этом (конечно, существуют исключения из-за особенностей поддержки языка SQL различными типами БД, но они несущественны).
Физически ODBC представляет собой набор динамических библиотек DLL, которые обслуживают подключение и работу с конкретным типом базы данных.При запросе на подключение к определенной, заранее описанной базе "активизируется" определенная DLL - драйвер этого типа БД. Обращение к определенной базе данных происходит по имени так называемого источника данных ODBC (или DSN - data source name). Можно представить DSN как своего рода объявление БД на данном компьютере, причем DSN может быть пользовательским, т.е. находится в области видимости только одного польователя, в сеансе которого был создан этот DSN, и системным, т.е. видимым всеми пользователями данного компьютера.
Управление источниками данных ODBC (да и вообще настройкой всей системы ODBC) осуществляется с помощью специальной программы - ODBC-администратора. Давайте разберем, где его можно найти в различных версиях Windows:
Windows 9х - сам исполняемый файл odbcad32.exe лежит в каталоге Windows\System. Запускать его можно напрямую либо через Панель управления (значок "Источники данных ODBC (32-бит)"). Если на компьютере установлен BDE, запустите администратор BDE и из меню Object выберите пункт ODBC Administrator.
Windows 2000 - исполняемый файл odbcad32.exe лежит в каталоге WinNT\System32, а запускать его можно через Панель управления -> Администрирование -> Источники данных ODBC. К сожалению, у меня нет возможности проверить, как с ODBC в NT3.51 / 4 - не думаю, что там ребята из Microsoft сильно его спрятали.
Почему ODBC?
Ведь есть же BDE, скажете вы. Да, возможно вы правы. Однако здесь есть "но". У обоих движков есть свои преимущества и недостатки. ODBC намного лучше работает с "родными, от Microsoft" источниками данных продуктов Microsoft Office - типа Access, Excel, MS SQL Server (вообще-то из-за Access я и затеял всю эту писанину). Кроме того, в стандартный дистрибутив BDE, который можно на каждом шагу найти в Интернете, я что-то ни разу не встречал SQL Links, впрочем, как я ни разу не встречал и отдельного дистрибутива SQL Links. А именно после установки SQL Links в BDE появлется возможность создавать алиасы к Access, MS SQL Server, Oracle и др. типам баз данных. Устанавливать же полную версию C++Builder или Delphi на компьютер пользователя может не каждый. А ODBC на "голой" машине уже содержит драйверы Access, Excel, FoxPro и SQL Server. В общем, для общего развития не помешает освоить и ODBC, тем более что access'овские базы, с которыми мы будем работать через ODBC, очень надежны (не в пример стандартным BDE'шным paradox'овым, у которых то и дело сыпятся индексы, а про такое поле как счетчик я вообще молчу), практически на любом компьютере пользователя установлен Office, что позволяет вносить коррективы "на месте", да и удобство всей базы в одном файле тоже иногда сказывается.
JDBC
Контрольные вопросы
CC-BY-CA Анатольев А.Г., 31.01.2012