Библиотека DB-Library
Библиотека DB-Library реализует интерфейс программирования приложений для совместной работы с широко распространенной СУБД Microsoft SQL Server. Данная библиотека является весьма обширной и содержит более 100 функций. Основными из них являются: dblogin(); dbopen() – подключение к БД; dbopen(); dbexit() – установка/разрыв соединения с БД; dbcmd() – передача инструкции (пакета инструкций) SQL в СУБД в текстовом виде; dbSQLexec() – требование к СУБД выполнить текущий пакет инструкций; dbcancel() – прекращение выполнения пакета инструкций SQL; dbresults() – получение результатов выполнения очередной инструкции SQL в текущем пакете; dbbind(), dbdata(), dbnextrow(), dbnumcols(), dbdatlen() и др. – обработка результатов запросов на выборку данных. Логика работы прикладной программы, обрабатывающей данные, хранящиеся в базе данных под управлением Microsoft SQL Server, выглядит следующим образом: · при помощи указанных выше функций (dblogin(), dbopen()) прикладная программа формирует сведение об авторизации и пытается установить соединение с СУБД; · при помощи СУБД программа открывает конкретную базу данных, с которой будет происходить работа (dbopen()); · при помощи специальной функции (dbcmd()) программа передает в СУБД текст SQL-инструкции, которую далее необходимо будет выполнить; в библиотеке DB-Library поддерживается так называемый пакетный режим работы. Данный режим подразумевает возможность создания пакетов инструкций. Так, вызывая функцию dbcmd() несколько раз, вы можете передать в СУБД текст нескольких команд SQL, которые впоследствии будут выполнены как одна команда; · используя функцию dbSQLexec(), программа вызывает выполнение инструкций, переданных ранее при помощи вызовов функций dbcmd(); · вызывая функцию dbresults(), программа может определить, удалось ли СУБД выполнить очередную инструкцию (как правило, число вызовов dbresults() соответствует числу инструкций в очередном пакете);
· в случае если мы имеем дело с запросом, возвращающим набор строк в качестве результата (запросом на выборку), программа при помощи вызовов функции dbbind() осуществляет связывание каждого поля результатов запроса с некоторой областью оперативной памяти. Далее при помощи функции dbnextrow() программа выполняет переход к следующей строке результатов запроса, что приводит к помещению в буфер новых данных; · при помощи функции dbexit() программа разрывает соединение с базой данных. Библиотека DB-Library представляет собой большой и сложный механизм. Так, в библиотеке предусмотрены специальные механизмы обработки ошибок, разные способы передачи результатов выполнения запросов в прикладную программу и т.д. Краткие итоги: В лекции рассматриваются разные технологии формирования запросов на языке SQL в прикладных программах (программный SQL). Дается понятие статического SQL, динамического SQL и приводятся соответствующие основные операторы. Рассматриваются интерфейсы программирования приложений (API) (протокол ODBC, протокол JDBC, библиотека DB-Library).
Контрольные тесты
Задача 1. Что такое программный SQL?
Вариант 1. Особенности программного SQL по сравнению с интерактивным
ð используются принципиально другие операторы ð пользователь пишет программу на языке SQL ð+ могут использоваться те же операторы SQL ð+ запрос на языке SQL встраивается в программу на алгоритмическом языке
Вариант 2. Какие специальные конструкции (дополнительные операторы) должны быть в программном SQL?
ð оператор цикла ð оператор ветвления ð+ оператор, определяющий начало запроса на языке SQL ð+ оператор, определяющий окончание запроса на языке SQL ð+ операторы, указывающие дополнительные переменные для обработки результатов запроса
ð операторы, определяющие передачу управления от программы на алгоритмическом языке программе на языке SQL
Вариант 3. За счет чего последовательность запросов, встроенных в прикладную программу будет выполняться быстрее, чем та же последовательность запросов, выполняемая в интерактивном режиме?
ð+ запросы могут выполняться с опережением ð+ запросы компилируются один раз ð+ заранее выполняются действия по анализу и компиляции запросов ð+ компьютер не ожидает ответных действий пользователя
Задача 2. Как происходит работа с программой при использовании статического SQL?
Вариант 1. Как должен выглядеть запрос на языке в прикладной программе в этом случае?
ð+ должно быть указано фактическое имя таблицы ð имя таблицы может быть указано как параметр ð+ должны быть указаны фактические имена атрибутов ð имена атрибутов могут быть указаны как параметры ð в запросах могут широко использоваться переменные ð+ переменные могут использоваться в запросах только на месте констант
Вариант 2. Как компилируется и компонуется прикладная программа с встроенным запросом на языке SQL?
ð прикладная программа компилируется вместе с текстом запроса ð+ текст запроса компилируется отдельно ð сформированный модуль запроса вставляется в модуль прикладной программы ð+ в модуль прикладной программы вставляется вызов функции СУБД
Вариант 3. Как происходит выполнение прикладной программы?
ð+ переход из прикладной программы к запросу осуществляется вызовом специальной функции ð скомпилированная вместе с текстом запроса прикладная программа автоматически выполняется ð+ при неоднократном выполнении одного и того же запроса используется один и тот же программный модуль ð при каждом выполнении одного и того же запроса используются разные программные модули
Задача 3. Характеристика команд статического SQL
Вариант 1. Какие операторы могут быть использованы в статическом SQL?
ð+ SELECT ð+ DELETE ð+ INSERT ð+ DECLARE TABLE ð+ EXEC SQL
ð+ OPEN
Вариант 2. Какие специальные операторы могут быть использованы в статическом SQL?
ð SELECT ð DELETE ð INSERT ð+ DECLARE TABLE ð+ EXEC SQL ð+ GET DIAGNOSTIC ð+ DECLARE CURSOR
Вариант 3. Какие специальные операторы могут быть использованы в статическом SQL для указания начала и конца SQL- запроса?
ð DECLARE TABLE ð+ EXEC SQL ð GET DIAGNOSTIC ð+; (точка с запятой) ð END DECLARE
Задача 4. Особенности динамического SQL по сравнению со статическим?
Вариант 1. Как должен выглядеть запрос на языке в прикладной программе в этом случае?
ð запрос должен быть определен в тексте прикладной программы ð+ запрос формируется во время работы прикладной программы ð+ имя таблицы может быть указано как параметр ð+ имена атрибутов могут быть указаны как параметры ð+ в запросах могут широко использоваться переменные ð переменные могут использоваться в запросах только на месте констант
Вариант 2. Как компилируется и компонуется прикладная программа при использовании динамического SQL?
ð прикладная программа компилируется вместе с текстом запроса ð текст запроса компилируется отдельно один раз ð сформированный модуль запроса вставляется в модуль прикладной программы ð+ в модуль прикладной программы вставляется вызов функции СУБД ð+ текст запроса компилируется столько раз, сколько раз запрос формируется прикладной программой
Вариант 3. Как происходит выполнение прикладной программы при использовании динамического SQL?
ð+ переход из прикладной программы к запросу осуществляется вызовом специальной функции ð скомпилированная вместе с текстом запроса прикладная программа автоматически выполняется ð при неоднократном выполнении одного и того же запроса используется один и тот же программный модуль ð+ при каждом выполнении одного и того же запроса используются разные программные модули
Задача 5. Характеристика команд динамического SQL
Вариант 1. Какие операторы могут быть использованы в динамическом SQL?
ð+ SELECT ð+ DELETE ð+ INSERT ð DECLARE TABLE ð EXEC SQL ð+ OPEN ð+ DECLARE CURSOR ð+ PREPARE ð+ EXECUTE
Вариант 2. Какие специальные операторы могут быть использованы в динамическом SQL?
ð SELECT ð DELETE ð INSERT ð DECLARE TABLE ð EXEC SQL ð GET DIAGNOSTIC ð+ DECLARE CURSOR ð+ PREPARE ð+ EXECUTE
Вариант 3. Какие специальные операторы могут быть использованы в динамическом SQL для подготовки и выполнения SQL- запроса?
ð DECLARE TABLE ð EXEC SQL ð GET DIAGNOSTIC ð+ PREPARE ð+ EXECUTE
Задача 6. Характеристика интерфейсов программирования приложений (API).
Вариант 1. Чем удобны интерфейсы программирования приложений?
ð не требуется изучать алгоритмический язык программирования ð+ не требуется изучать специальные инструкции статического и динамического SQL ð+ соответствующий подход может применяться с использованием разных языков программирования ð не требуется изучать язык SQL
Вариант 2. Как компилируется прикладная программа, использующая интерфейсы программирования приложений?
ð+ прикладная программа компилируется вместе с вызовом функций библиотек ð вызов функций библиотек компилируется отдельно ð сформированный модуль запроса вставляется в модуль прикладной программы ð+ в модуль прикладной программы вставляется вызов функции библиотеки
Вариант 3. Как выполняется программа с использованием интерфейсов программирования приложений?
ð параметрами функций библиотеки интерфейсов программирования приложений являются имена таблиц, атрибутов и константы ð+ параметрами функций библиотеки интерфейсов программирования приложений являются тексты SQL- запросов ð+ переход из прикладной программы к запросу осуществляется вызовом специальной функции ð скомпилированная вместе с текстом запроса прикладная программа автоматически выполняется ð+ при неоднократном выполнении одного и того же запроса используется один и тот же программный модуль ð при каждом выполнении одного и того же запроса используются разные программные модули
Задача 7. Что такое протокол ODBC?
Вариант 1. Какова цель создания протокола ODBC?
ð создание интерфейса с конкретной СУБД ð создание универсального интерфейса с СУБД ð+ создание универсального интерфейса с СУБД на уровне конкретной операционной системы ð создание библиотеки функций для обеспечения связи прикладной программы и СУБД
Вариант 2. Что такое драйверы ODBC?
ð программа- интерфейс между прикладной программой на алгоритмическом языке и вызовом функции API
ð+ программа- интерфейс между вызовом функции API и программой, реализующей функции конкретной СУБД ð программа- интерфейс между прикладной программой на алгоритмическом языке и программой, реализующей функции конкретной СУБД ð программа- интерфейс между прикладной программой на алгоритмическом языке и программой, реализующей функции любой СУБД
Вариант 3. Для чего в этом протоколе используются драйверы?
ð для сокращения времени реализации запроса ð+ для создания возможности использования этого протокола в разных СУБД ð для удобства разработки прикладных программ ð для упрощения текста запроса к базе данных
Задача 8. Что такое протокол JDBC?
Вариант 1. Какова цель создания протокола JDBC?
ð создание интерфейса с конкретной СУБД ð создание универсального интерфейса с СУБД ð создание универсального интерфейса с СУБД на уровне конкретной операционной системы ð+ создание библиотеки функций для обеспечения связи прикладной программы и СУБД ð+ создание интерфейса программы, написанной на определенном алгоритмическом языке, с СУБД
Вариант 2. Что такое драйверы JDBC?
ð программа-интерфейс между прикладной программой на определенном алгоритмическом языке и вызовом функции API ð+ программа-интерфейс между вызовом функции API и программой, реализующей функции конкретной СУБД ð программа-интерфейс между прикладной программой на алгоритмическом языке и программой, реализующей функции конкретной СУБД ð программа-интерфейс между прикладной программой на алгоритмическом языке и программой, реализующей функции любой СУБД
Вариант 3. Для чего в этом протоколе используются драйверы?
ð для сокращения времени реализации запроса ð+ для создания возможности использования этого протокола в разных СУБД ð для удобства разработки прикладных программ ð для упрощения текста запроса к базе данных ð для создания возможности обращения к функциям API из программы, написанной на языке Java
Литература 1. Грофф Дж., Вайнберг П. Энциклопедия SQL. 3-е изд. СПб.: Питер, 2003. 2. Швецов В.И., Визгунов А.Н., Мееров И.Б. Базы данных. Учебное пособие. Н.Новгород: Изд-во ННГУ, 2004. 271 с.
Лекция 14. Направления развития баз данных В лекции рассматриваются перспективные направления в теории и практике создания баз данных – объектно-ориентированные и распределенные базы данных, а также новое направление в аналитической обработке данных = хранилища данных. Ключевые термины: направления развития баз данных, объектно-ориентированные базы данных, системы управления объектно-ориентированными базами данных, объект, класс, методы класса, наследование, системы управления объектно-реляционными базами данных, распределенные базы данных, системы управления распределенными базами данных, хранилища данных. Цель лекции: выделить основные черты в новых направлениях развития теории и практики создания баз данных (новые свойства, присущие объектно-ориентированным и распределенным базам данных) и хранилищ данных.
14.1. Объектно-ориентированный подход к организации баз данных В начале 90-х годов XX века начались активные попытки по внедрению объектно-ориентированных технологий в отрасль проектирования и разработки баз данных. Бытовала точка зрения о том, что соответствующие технологии быстро вытеснят все остальные, так же как и во многих других программистских отраслях, но ничего подобного не произошло.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|