Министерство образования и науки РС(Я) ГАПОУ РС(Я) «Якутский колледж связи и энергетики им. П.И. Дудкина» «Допустить к защите» Зам.директора по УР _________ М. Г. Петров «___»_________202__г. КУРСОВАЯ РАБОТА тема: ODBS Студент: ____________________ А.А Бурнашев подпись, дата Руководитель: ____________________ подпись, дата Якутск 2020 И.М Мальков Содержание ВВЕДЕНИЕ…………………………………………………………………….….......................3 Глава 1 что такое ODBS……………………………………………………………………….5 1.1 Как ODBS стандартизует доступ к базе данных…...…………………………………...5 1.2 Архитектура MyODBS……………………………………………………………………..6 1.3 Поддерживаемые платформы…………………………………………………………….7 Глава 2 Установка ODBC…………………………………………………………...8 2.1«InterBase» через «ODBC»…………………………………………………………………8 2.2«MS Access» через «ODBC»……………………………………………………………….10 2.3«MS Excel» через «ODBC»………………………………………………………………...15 2.4 «MS SQL» через «ODBC»………………………………………………………………...19 2.5 «MySQL» через «ODBC»…………………………………………………………………23 Заключение……………………………………………………………….……………………27 Cписок использованных источников………………………………………………………29 Введение В мире вычислений есть множество непонятных концепций ODBC. Для конечного пользователя это значок на панели управления Microsoft® Windows®. Для программиста приложения это библиотека, содержащая подпрограммы доступа к данным. Ко многим другим, это ответ на все возможные проблемы доступа к базе данных. Первая и самое главное, ODBC является спецификацией для API базы данных. Этот API не зависит ни от одной СУБД или операционной системы; Хотя в этом руководстве используется C, API ODBC не зависит от языка. API ODBC основан на спецификациях CLI из Open Group и ISO/IEC. ODBC 3. x полностью реализует обе эти спецификации — более ранние версии ODBC были основаны на предварительных версиях этих спецификаций, но не полностью реализовали их, и добавляет функции, которые часто требуются разработчикам приложений баз данных на основе экранов, таких как прокручиваемые курсоры. Функции API ODBC реализуются разработчиками драйверов, связанных с СУБД. Приложения вызывают эти функции в этих драйверах для доступа к данным независимо от СУБД. Диспетчер драйверов управляет взаимодействием между приложениями и драйверами. Несмотря на то, что корпорация Майкрософт предоставляет диспетчер драйверов для компьютеров под управлением Microsoft Windows® 95 и более поздних версий, написал несколько драйверов ODBC и вызывает функции ODBC из некоторых приложений, каждый может писать приложения и драйверы ODBC. На самом деле, большинство приложений и драйверов ODBC, доступных сегодня, написаны компаниями, отличными от Майкрософт. Более того, драйверы и приложения ODBC существуют на® Macintosh и различных платформах UNIX. Чтобы помочь разработчикам приложений и драйверов, корпорация Майкрософт предлагает пакет средств разработки программного обеспечения (SDK) для ODBC для компьютеров под управлением Windows 95 и более поздних версий, которые предоставляют диспетчер драйверов, библиотеку DLL установщика, средства тестирования и примеры приложений. Корпорация Майкрософт разработала с программным обеспечением Висиженик, чтобы перенести эти пакеты SDK на компьютеры Macintosh и различные платформы UNIX. Важно понимать, что ODBC предназначен для предоставления возможностей баз данных, а не дополнять их. Таким образом, средства записи приложений не должны предполагать, что использование ODBC приведет к внезапному преобразованию простой базы данных в полнофункциональное ядро реляционной базы данных. И не являются модулями записи драйвера для реализации функциональности, не найденной в базовой базе данных. Исключением является то, что разработчики, создающие драйверы, которые непосредственно обращаются к данным файлов (например, к данным в файле XBase), необходимы для создания ядра СУБД, поддерживающего по крайней мере минимальные функциональные возможности SQL. Еще одно исключение заключается в том, что компонент ODBC Windows SDK, который ранее включался в пакет SDK для компонентов доступа к данным (MDAC), предоставляет библиотеку курсоров, которая имитирует прокручиваемые курсоры для драйверов, реализующих определенный уровень функциональности. Приложения, использующие ODBC, отвечают за любые функции межбазовых баз данных. Например, ODBC не является разнородным механизмом соединения и не является обработчиком распределенных транзакций. Однако, поскольку он не зависит от СУБД, он может использоваться для создания таких межбазовых инструментов. Целью работы является: определить основные понятия ODBC рассмотреть структуру технологии ODBC и её протоколы. Установить ODBS Задачи: 1.Изучить ODBS 2.Связать БД с ODBS Предмет исследования: Предметами исследования являются сам ODBS. Глава 1 что такое MyODBS. Первое и главное: ODBC является спецификацией для API базы данных. Этот API независим от любой СУБД, операционной системы или языка программирования. ODBC API основан на спецификациях CLI от X/Open и ISO/IEC. ODBC 3.x полностью соответствует обоим этим спецификациям, более ранние версии ODBC были основаны на предварительных версиях этих спецификаций, но полностью не выполняли их, зато добавили свойства, нужные только разработчикам оконных приложений, например, прокручиваемые курсоры. Разработчики драйверов для СУБД выполняют функции ODBC API. Приложения вызывают функции в этих драйверах, чтобы обратиться к данным способом, независимым от базы данных. Администратор драйверов (Driver Manager) управляет связью между прикладными программами и драйверами. 1.1 Как ODBC стандартизирует доступ к базе данных Имеются два архитектурных требования: 1. Прикладные программы должны быть способны обратиться ко многим СУБД, используя тот же самый исходный текст без того, чтобы его перетранслировать или заново компоновать. 2. Прикладные программы должны быть способны обратиться ко многим СУБД одновременно (через разные драйверы). ODBC успешно решает эти проблемы следующим способом: ODBC является интерфейсом уровня вызовов: Чтобы решить проблему с тем, как прикладные программы обращаются ко многим СУБД, используя один и тот же исходный текст, существует стандарт CLI. ODBC содержит все функции в спецификации CLI и обеспечивает дополнительные функции, обычно требуемые прикладными программами. ODBC определяет стандартный синтаксис SQL: В дополнение к стандартному интерфейсу уровня обращения (вызова), ODBC определяет стандартный синтаксис SQL. Он базируется на спецификации X/Open SQL CAE. Если используемый ODBC синтаксис отличается от того, который применяет конкретная СУБД, производится преобразование на лету. Однако, такие преобразования редки потому, что большинство СУБД уже используют стандартный синтаксис языка SQL. ODBC предоставляет Driver Manager для управления одновременным доступом к многим СУБД: Хотя использование драйверов решает проблему одновременного доступа ко многим базам данных, код, необходимый, чтобы сделать это, может быть сложен. Прикладные программы которые разработаны, чтобы работать со всеми драйверами, не могут быть статически связаны с любыми драйверами. Вместо этого они должны загрузить драйверы во время выполнения и вызывать функции в них через таблицу указателей функций. Ситуация становится более сложной, если прикладная программа использует много драйверов сразу. Чтобы избавить программу от проблем с этим, ODBC обеспечивает Driver Manager. Администратор драйверов (Driver Manager) осуществляет все функции ODBC обычно как вызовы функций ODBC в драйверах и статически связан с прикладной программой или загружен прикладной программой во время выполнения. Таким образом, вызовы из прикладной программы функций ODBC по именам обрабатываются в Driver Manager вместо того, чтобы обращаться по указателю к каждому драйверу. ODBC предоставляет много возможностей СУБД, но не требует, чтобы каждый драйвер поддерживал их все. 1.2 Архитектура (My)ODBC Архитектура MyODBC имеет 5 главных компонентов как показано ниже: Приложение: Это программа, которая вызывает ODBC API, чтобы обратиться к данным с сервера (MySQL). Прикладная программа общается с администратором драйверов или драйвером, непосредственно использующим стандарт ODBC-обращения. Прикладная программа не заботится, где данные сохранены, как они сохранены или как система конфигурирована, чтобы обратиться к данным. Единственное, что реально надо знать, имя источника данных (Data Source Name, DSN). Ряд задач является общим для всех программ, независимо от того, как они используют ODBC. Эти задачи: Выбор сервера (MySQL) и связь с ним. Передача на рассмотрение инструкции SQL для выполнения. Получение результатов (если они есть). Обработка ошибок. Обработка транзакции или обратная перемотка. Отсоединение от сервера. Самыми главными тут являются передача на рассмотрение инструкции SQL для выполнения и получение результатов запроса (если они есть). Driver manager: Driver Manager представляет собой библиотеку, которая управляет связью между прикладной программой и драйвером или драйверами. Это делает: Обработку Data Source Names (DSN). Загрузку и выгрузку драйверов. Обрабатку ODBC-обращения к функции или передачу вызова драйверу. 1.3 Поддерживаемые платформы Драйвер MySQL ODBC может использоваться на всех основных платформах, поддерживаемых MySQL: Все версии Windows: 95/98/NT/ME/2000/XP OS/2 Mac OS X Server Amiga Все версии Unix: o AIX o BSDI o DEC o FreeBSD o HP-UX o Linux o NetBSD o OpenBSD o SGI Irix o Solaris o SunOS o SCO OpenServer o SCO UnixWare o Tru64 Unix Вообще, MyODBC (3.51) поддержан на всех платформах, которые MySQL поддерживает. Если двоичный дистрибутив не доступен для специфической платформы, то Вы можете формировать драйвер самостоятельно, скачав его исходники. Глава 2 Установка ODBS. 2.1«InterBase» через «ODBC» Суть задачи: нужно подключиться к базе данных «Biblioteka.gdb» через «ODBC» в среде разработки «Дельфи 7» и прочитать данные из таблицы «Avtori». Для начала идем в раздел «Панель управления – Администрирование – Источники данных (ODBC)», там переходим на закладку «Драйверы» и смотрим, есть ли вообще драйвер для подключения к «InterBase». Если да, то переходим на закладку «Пользовательский DNS». Рис. 1. Закладка «Драйверы» На закладке «Пользовательский DSN» жмем кнопку добавить, выбираем «Easysoft Interbase ODBC». Рис. 2. Выбор драйвера Откроется новое окно, в котором нужно прописать настройки для соединения с БД «Biblioteka.gdb». Рис. 3. Основные настройки ODBC-соединения После чего возвращаемся в изначальное окно и видим, что появилоcь новое соединение «Biblioteka». Рис. 4. Закладка «Пользовательский DNS» после добавления БД «Biblioteka» Теперь грузим «Дельфи 7», создаем новое приложения, тащим на форму компоненты: ADOConnection, ADOTable, DataSource, DBGrid. Настройку начинаем с компонента «ADOConnection1» и его строки соединения, для этого кликаем по нему 2 раза, запускается мастер. В мастере, на закладке «Microsoft OLE DB Provider ODBC Drivers». «Поставщик данных» выбираем Рис. 5. Закладка «Поставщик данных» Переходим на закладку «Подключение», где выбираем из списка источник данных «Biblioteka». Тут же можно проверить подключение. Рис. 6. Закладка «Подключение» Затем переходим в «Дельфи 7», располагаем на форме следующие компоненты: ADOConnection, ADOTable, DataSource, DBGrid. Настраиваем эти компоненты. Далее устанавливаем свойство «Active = True» у компонента «ADOTable1» и смотрим результат. Рис. 7. Таблица «Avtori» Таким образом мы осуществили странное подключение к базе данных, написанной в СУБД «InterBase 6.5» при помощи компонентов «ADO». 2.2«MS Access» через «ODBC. Суть: нужно подключиться к базе данных, созданной в СУБД «MS Access» через «ODBC» в собственном приложении на «Дельфи 7». Для начала заходим в раздел «Панель управления – Администрирование – Источники данных (ODBC)». Добавляем новый источник данных. Рис. 1. Администратор источников данных ODBC Затем выбираем «Driver do Microsoft Access». Рис. 2. Создание нового источника данных Потом, в окне «Установка драйвера ODBC…» задаем имя, описание и выбираем путь к базе данных, например, «Автовокзал.mdb». Рис. 3. Установка драйвера ODBC для MS Access После этого переходим в исходное окно «Администратор источников данных…» и видим, что «Автовокзал» добавился в источник. Рис. 4. Первоначальное окно «Администратор источников данных…» Затем запускаем приложение «Дельфи 7», размещаем на форме компоненты: ADOConnection, ADOTable, DataSource, DBGrid. Настраиваем компоненты для подключения через ODBC. Сначала кликаем по компоненту «ADOConnection1» и настраиваем строку подключения, выбираем «Microsoft OLE DB Provider for ODBC». Жмем кнопку «Далее» и переходим на закладку «Подключение». Рис. 5. Настройка строки подключения в «Дельфи 7» На закладке «Подключение» выбираем источник данных «Автовокзал» и проверяем подключение нажатием на кнопку «Проверить подключение». Рис. 6. Закладка «Подключение» Далее соединяем компоненты между собой. Компонент Настройка, значение ADOConnection1 LoginPrompt = False ADOTable1 Connection = ADOConnection1 TableName = Дни движения DataSource1 DataSet = ADOTable1 DBGrid1 DataSource = DataSource1 Теперь, если выставить свойство «Active = True» у компонента «ADOTable1», то таблица, установленная в свойстве «TableName» отобразится на компоненте «DBGrid1». Рис. 7. Таблица «Дни движения» в нашем приложении Таким образом мы подключились к БД «Автовокзал» через «ODBC», что означает «Open DataBase Connectivity». 2.3«MS Excel» через «ODBC» Постановка задачи: необходимо создать подключение к файлам «MS Excel» через «ODBC». Для создания нового подключения в «Windows XP» нужно перейти в раздел «ПУСК – Панель управления – Администрирование – Источники данных (ODBC)». Далее, на закладке «Пользовательский DSN» нажать кнопку «Добавить…». Рис. 1. АИД ODBC, закладка «Пользовательский DSN» Затем надо выбрать драйвер «Driver do Microsoft Excel (*.xls)». Рис. 2. Выбор нужного драйвера Далее нужно ввести имя и описание для нового подключения. Рис. 3. Ввод имени и описания После этого всего новое подключение появится в списке источников данных на закладке «Пользовательский DSN» окна «АИД ODBC». Рис. 4. Окно АИД ODBC, после добавления нового подключения Проверить работу только что созданного подключения можно в среде разработки «Delphi 7». Для этого в новом приложении нужно перетащить на форму компоненты: ADOConnection, ADOTable, DataSource, DBGrid. Самое важное в этом деле это настроить строку подключения в компоненте «ADOConnection1». Кликаем по нему 2 раза и запускается мастер создания строки подключения. На закладке «Поставщик «Microsoft OLE DB Provider for ODBC Driver». данных» выбираем Рис. 5. Закладка «Поставщик данных» Затем на закладке «Подключение» выбираем вариант «Использовать строку подключения» и начинаем использовать ее по полной. Т.к. в нашем подключении не указана конкретная БД, точнее файл. Нажимаем кнопку «Сборка…». Рис. 6. Закладка «Подключение» Потом выбираем источник на закладке «Источник данных компьютера» и жмем кнопку «Ок». Рис. 7. Закладка «Источник данных компьютера» Появится диалог выбора конкретного файла на диске. Ищем нужный файл и выбираем. Рис. 8. Диалог выбора файла После этого можно проверить подключение, нажав на кнопку «Проверить подключение», но наверняка все в порядке. Далее донастраиваем настройки компонентов. Параметр «ConnectionString» компонента «ADOConnection1» можно переделать, а можно и так оставить. Дело в том, что этот параметр заполнился так, что свойство «DeafaultDatabase» по сути пустует, хотя все нормально работает и к файлу «Магазины.xls» доступ есть. № п/ Компо Настройка, значение нент п 1 ConnectionString = «Provider=MSDASQL.1;Persist ADOCo nnection1 Security Info=False; Extended Properties="DSN=Файлы MS Excel; DBQ=C:\EXCEL\Магазины.xls;DefaultDir=C:\EXCEL;DriverId =790; FIL=excel 8.0;MaxBufferSize=2048;PageTimeout=5;"» LoginPrompt = False 2 ADOTa TableName = [Лист1$] ble1 3 Connection = ADOConnection1 DataSo DataSet = ADOTable1 DBGrid DataSource = DataSource1 urce1 4 1 Также для удобства можно разместить код на кнопке. Procedure TForm1.Button1Click(Sender: TObject); Var i: byte; Begin ADOTable1.Active := True; For i:= 0 to DBGrid1.Columns.Count-1 do DBGrid1.Columns.Items[i].Width:=100; End; Далее запускаем приложение и проверяем подключение к файлу «Магазины.xls» Рис. 9. «Лист1» в файле «Магазины.xls» 2.4 «MS SQL» через «ODBC». Суть: необходимо подключиться к БД «Библиотека.mdf» через «ODBC» в приложении на «Дельфи 7». В составе БД «Библиотека» есть таблица «Читатели». Создаем новое подключение в панели управления. Переходим в раздел «Панель управления – Администрирование – Источники данных (ODBC)». Далее выбираем закладку «Драйверы» и проверяем, есть ли нужный драйвер. Рис. 1. Закладка «Драйверы» в администрировании источников данных Затем переходим на закладку «Пользовательский DSN» и жмем кнопку «Добавить», после чего откроется окно в котором нужно выбрать именно этот саамы драйвер ,который ранее присмотрели. Рис. 2. Выбор драйвера «SQL Server» Далее придумываем название, описание и выбираем/вписываем SQL-сервер. Нажимаем «Далее». Рис. 3. Этап создания На следующем этапе определяем как будет осуществляться проверка подлинности. Выбираем, жмем «Далее». Рис. 4. Выбор вариантов подлинности Затем выбираем расшаренную базу данных, как БД по умолчанию. Рис. 5. Выбор БД по умолчанию Потом идет еще пара этапов и в конце проверка подключения. В случае успешного подключения будет создан источник данных и занесен в список на закладку «Пользовательский DSN». Рис. 6. Закладка «Пользовательский DSN» с только что созданным источником данных Теперь переходим в среду разработки «Дельфи 7» и перетаскиваем на форму компоненты: ADOConnection, ADOTable, DataSource, DBGrid. Настраиваем компонент «ADOConnection1». Создаем строку подключения. На закладке «Поставщик данных» выбираем «Microsoft OLE DB Provider ODBC Drivers». Рис. 7. Закладки «Поставщик данных» и «Подключение» А на закладке «Подключение» выбираем только что созданное подключение в разделе «ПУСК – Панель управления – Администрирование – Источники данных (ODBC)», как оно называется мы знаем – «Библиотека». Внизу есть, кстати, кнопка «Проверить подключение», если что. Далее идет все по накатанной, соединяем компоненты между собой. Таблица. Свойства компонентов Название Настройка, значение компонента ADOConnection1 LoginPrompt = False ADOTable1 Connection = ADOConnection1 TableName = Читатели DataSource1 DataSet = ADOTable1 DBGrid11 DataSource = DataSourse1 Затем, установив значение «Active = True» компоненту «ADOTable1», данные из таблицы «Читатели» базы данных «Библиотека» отобразятся на компоненте «DBGrid1». Рис. 8. Прочитанная таблица «Читатели» Таким образом, мы только что успешно подключились к БД «Библиотека», созданной в СУБД «MS SQL Server 2005» и прочитали данные из таблицы «Читатели». 2.5 «MySQL» через «ODBC» Суть: есть база данных «Test», созданная в среде разработки «Denwer». Нужно подключиться к этой базе данных средствами «Дельфи 7» через «ODBC» и прочитать содержимое таблицы «Users». Создаем новый источник данных. Для этого жмем кнопку «ПУСК» и идем в «Панель управления – Администрирование – Источники данных (ODBC)». Рис. 1. Закладка «Пользовательский DSN» На закладке «Пользовательский DSN» нажимаем кнопку «Добавить…». Рис. 2. Выбор драйвера Далее выбираем драйвер «MySQL ODBC 3.51 Driver», версии понятное дело могут немного отличаться, в общем, у кого какой установлен. Потом не плохо бы запустить «MySQL» (я запускал «Denwer»), т.к. в следующем окне надо задать имя для источника данных, описание и выбрать базу данных. А также можно проверить соединение, нажав кнопку «Test». Рис. 3. Конфигурирование источника данных Жмем «Ок» и возвращаемся в окно администратора источника данных. На закладке «Пользовательский DSN» появился/создался новый источник данных. Рис. 4. Закладка «Пользовательский DSN» Переходим в «Дельфи 7». Создаем новое приложение. На главную форму перетаскиваем компоненты: ADOConnection, ADOTable, DataSource, DBGrid. Приступаем к их настройке. Кликаем 2 раза по компоненту «ADOConnection1» и настраиваем строку соединения. На закладке «Поставщик «Microsoft OLE DB Provider for ODBC Drivers». данных» выбираем драйвер Рис. 5. Закладка «Поставщик данных» Далее переходим на закладку «Подключение», на которой выбираем из списка только что созданный в панели управления источник данных «Test». Проверяем подключение и настраиваем остальные компоненты. Компонент Его настройки ConnectionString = … ADOConnection1 LoginPrompt = False ADOTable1 Connection = ADOConnection1 TableName = Users DataSource1 DataSet = ADOTable1 DBGrid1 DataSourse = DataSource1 Затем устанавливаем свойство «Active = True» компоненту «ADOTable1» и смотрим результат подключения на «DBGrid1». Рис. 6. Таблица «Users» К сожалению, такой вид соединения работает только при запущенном сервере. Т.е., если вырубить «Denwer», то БД «Test» станет недоступной. Заключение В ходе анализа, посвященной теме курсовой работы, мне удалось изучить методы ODBS. "Открытый интерфейс взаимодействия с базами данных" - так звучит в переводе на русский язык ODBC. Open Database Connectivity - одна из самых ранних технологий, а также одна из самых популярных среди всех, что предложила для стандартизации доступа к источникам данных корпорация Microsoft, ибо технология эта проще большинства придуманных в более позднее время сходных технологий. Что такое ODBC? Этот продукт представляет собой интерфейс языка программирования C (API), позволяющий подключать приложения к различным СУБД (системам управления базами данных). При подключении при помощи ODBC приложение становится независимым от используемого источника данных (и от используемой СУБД). Независимость реализуется с помощью промежуточных библиотек, которые включают в себя код, специфичный для данной СУБД, и которые предоставляют унифицированный интерфейс для ODBC-приложений. Такие библиотеки называются ODBC-драйверами, и их обычно предоставляют либо сами разработчики СУБД, либо сторонние производители, так как для прикладного программиста не так уж существенно, кто предоставляет ему драйверы. Приложения, использующие этот API, ограниченны, они могут использовать только реляционные базы данных. Минус ODBC - это отсутствие объектно-ориентированного подхода. Правда, в библиотеке MFC, которую Microsoft рекомендует для разработки прикладных приложений с помощью Visual C++, есть классы для работы с данными через ODBC. Сейчас уже очень трудно представить современный офис не только без компьютера, но и без специальных программ, позволяющих автоматизировать всю работу с документацией. Можно сказать, что на сегодняшний день базовая функциональность этих программных продуктов всех наиболее известных производителей соответствует основным требованиям российского делопроизводства и обеспечивает реализацию всех основных делопроизводственных операций. ODBC - помимо своей универсальности и надежности, обладает солидным стажем присутствия на рынке и поэтому самым значительным багажом в видедрайверов для различных СУБД... Технология может считаться универсальной, так как существует уже проект unixODBC, который призван стать окончательным стандартом для ODBC на неMS Windows системах (группа разработчиков unixODBC достигла лучших на сегодняшний день результатов под Linux). Правда, отсутствие объектного API несколько отрицательно сказывается на скорости разработки приложений, однако имеются библиотеки, являющиеся оболочками для ее функций и позволяющие работать с данными как с объектами (если позволяет язык программирования, конечно). Cписок использованной литературы: https://ru.bmstu.wiki/ODBC_(Open_Database_Connectivity) http://bd-subd.ru/odbc/index.htm http://citforum.ru/database/mysql/odbc/index.shtml https://docs.microsoft.com/ru-ru/sql/odbc/reference/install/installing-odbccomponents?view=sql-server-ver15 Гагарина, Л. Г. Технология разработки программного обеспечения.