Дата и время возвращаются как строки символов в «родном» формате соответствующего ядра базы данных. Эффект временного пояса зависит от базы данных и драйвера.
Perl поддерживает двоичные данные в своих строках, a DBI обменивается двоичными данными с драйвером без изменений. Как обрабатывать такие двоичные данные, решают разработчики драйвера.
В большинстве баз данных, способных работать с несколькими наборами символов, устанавливается глобальный набор символов по умолчанию. Хранящийся в базе данных текст должен состоять из символов этого набора. Если это не так, то виновата база данных или приложение, осуществлявшее вставку данных. Во время выборки текст должен автоматически преобразовываться в набор символов клиента, предположительно с учетом национальных установок. Если для осуществления такого поведения драйверу необходимо установить флаг, то он должен сделать это сам, а не требовать подобных действий от приложения.
Несколько команд SQL нельзя помещать в один дескриптор команды ($sth), хотя некоторые базы данных и драйверы поддерживают такую возможность (в том числе Sybase).
DBI пока не поддерживается чтение записей в произвольном порядке, т.е. записи выбираются в том порядке, в котором их возвратила база данных, а после выборки они забываются.
DBI напрямую не поддерживает обновление и удаление по месту. Альтернативное решение можно найти в описании атрибута CursorName.
Разработчики отдельных драйверов могут предоставлять любые собственные функции и/или атрибуты дескрипторов, которые сочтут полезными. Собственные функции драйверов вызываются с помощью метода DBI func(). К собственным атрибутам драйвера доступ осуществляется так же, как и к стандартным атрибутам.
У многих методов есть необязательный параметр \%attr, его можно использовать для передачи данных драйверу, в котором реализован метод. За исключением особо оговоренных в документации случаев параметр \%attr, можно использовать только для передачи специфических для драйвера указаний. Обычно можно игнорировать параметр \%attr или передавать его как undef.
Большинство драйверов DBI требует, чтобы приложения использовали для взаимодействия с ядром базы данных диалект SQL (Structured Query Language – структурированный язык запросов). Сам DBI не требует использования какого-либо особого языка, он независим от языка. В терминах ODBC DBI находится в «прозрачном» (pass-thru) режиме, хотя для отдельных драйверов это может быть не так. Единственное требование состоит в том, чтобы запросы и другие команды представлялись одной строкой символов, передаваемой в качестве первого аргумента методам prepare или do.
Установка DBI. Перед установкой интерфейса DBI следует убедиться, что он еще не установлен и только в этом случае приступать к установке, так как DBI устанавливается один раз для всех драйверов DBD. К настоящему времени для инсталляции доступна версия DBI-1.37. На сервере АиС файл “DBI-1.37.tar.gz” находится в папке “//aisnt:/home/student/kurs5/PrIS/DBI-DBD-MySQL”. Дополнительно копия этого файла расположена на FTP сервере по адресу ftp://ais.khstu.ru/incoming/linux. Файл представляет собой архив с упакованным пакетом программ в виде исходных текстов и скриптов, используемых для инсталляции DBI. Перед инсталляцией указанный файл “DBI-1.37.tar.gz” необходимо распаковать. Для этого в программе “mc” достаточно скопировать содержимое архива во временный каталог, например “/home/Install/IB”. В полученном каталоге /DBI-1.37 имеется файл README с инструкцией по установке. В соответствии с этой инструкцией в системе должен быть установлен пакет ActivePerl версии не ниже 5.0, а последовательность установки должна быть следующей:
[root@lis IB]# perl Makefile.PL
[root@lis IB]# make
[root@lis IB]# make test
[root@lis IB]# make install
После первой команды будут выданы сообщения о возможности поддержки устанавливаемым DBI некоторых новых функций текущей версией Perl, сообщения о ходе работы программы Makefile, а в конце – инструкция по дальнейшему ходу установки соответствующему второй, третьей и четвертой командам из приведенного выше списка. После выполнения последней команды инсталляция завершается и интерфейс DBI готов к работе. После этого каталог /DBI-1.37 может быть удален.
Установка драйвера DBD для InterBase. Для интерфейса DBI версии 1.37 следует устанавливать драйвер DBD версии 0.43. Файл DBD-InterBase-0.43.tar.gz находится в папке “//aisnt:/home/student/kurs5/PrIS/DBI-DBD-InterBase” файл-сервера кафедры АиС. Дополнительно копия этого драйвера расположена на FTP сервере по адресу ftp://ais.khstu.ru/incoming/linux. Методика установки этого драйвера полностью аналогична установке DBI интерфейса, описанной в предыдущем разделе.
Установка ActivePerl. Описанные выше пакеты DBI и DBD ориентированы на работу с Perl версии 5.8. Поэтому, если необходимо использование всех новых возможностей, введенных в интерфейс и драйверы, нужно перед установкой DBI переустановить ActivePerl, если установленная версия Perl ниже указанной. Инсталляционный пакет “ActivePerl-5.8.4.810-i868-linux.rpm” можно скопировать из папки файлового сервера кафедры: “//aisnt:/home/student/kurs5/PrIS/ActivePerl” или с FTP сервера по адресу ftp://ais.khstu.ru/incoming/linux. Указанный файл представляет собой специальным образом упакованный архив. Распаковывать архив перед установкой не требуется. В архиве есть исполняемый файл “INSTALL”, который нужно запустить для установки пакета. Для этого в программе “mc” на одной из панелей выбирается файл ActivePerl-5.8.4.810-i868-linux.rpm, нажимается клавиша «Enter», после этого на панели будет изображен список файлов, входящих в выбранный архив. Далее необходимо выбрать файл INSTALL (он отображается зеленым цветом с символом ‘*’ перед именем, означающим, что файл является исполняемым) и нажать клавишу «Enter». Если установка производится из каталога /home/Install/Perl, на экран монитора будет выведено следующее сообщение:
Installing “/home/Install/Perl/ActivePerl-5.8.4.810-.i686.rpm”
ActivePerl ##############################
Проверка работоспособности установленных компонент. Для проверки установленных пакетов нужно скопировать тестовый пакет или из папки файлового сервера кафедры: “//aisnt:/home/student/kurs5/PrIS/Test_15” или с FTP сервера по адресу ftp://ais.khstu.ru/incoming/linux/Test_15 в каталог, предназначенный для документов Вашего web-сервера (конфигурирование web-сервера выполнялось в лабораторной работе № 2). После этого в строке адреса web-броузера Windows ввести: http://10.10.146.201/Test_15/index15.html.
В окне web-броузера должна быть изображена страница, показанная на рис. 2. Если щелкнуть мышкой на ссылке “Press this string!”, то будет выведена страница, изображенная на рис. 3.
Рис. 2. Тестовая страница web-интерфейса с СУБД InterBase
Рис. 3. Вторая тестовая страница
1. Установите при необходимости ActivePerl 5.8.4 на свой образ ОС Linux.
2. Установите пакет DBI (если он еще не установлен).
3. Установите драйверы DBD к СУБД InterBase.
4. Скопируйте тестовый пример и убедитесь в работоспособности вышей системы.
5. Продемонстрируйте результаты преподавателю.
Контрольные вопросы
1. Как осуществляется инсталляция пакетов “rpm”?
2. Как осуществляется инсталляция программ в исходных текстах?
3. Каково назначение DBI?
4. Как устанавливаются драйверы к базам данных?
5. Каково разделение функций между DBI и DBD?
Библиографический список
1. Спецификация DBI. Документация к модулям DBD::mysql/DBD::mSQL/ Файл “dbi-dbd-mysql-spec1.pdf”.
2. Гайдамакин Николай Александрович. Автоматизированные информационные системы, базы и банки данных. Вводный курс: Учеб. Пособие для вузов / Гайдамакин Николай Александрович. - М.: Гелиос АРВ, 2002. - 368с.: ил.
3. Федоров Алексей Георгиевич. Базы данных для всех / Федоров Алексей Георгиевич, Н. З. Елманова. - М.: КомпьютерПресс, 2001. - 256с.: ил.
4. Коннолли Томас. Базы данных. Проектирование, реализация и сопровождение. Теория и практика = Database Systems: Пер.с англ. / Коннолли Томас, К. Бегг, А. Страчан. - 2-е изд.; испр. и доп. - М.: Вильямс, 2001. - 1120с.: ил.
5. Карпова Татьяна Сергеевна. Базы данных: модели, разработка, реализация: Учеб. пособие / Карпова Татьяна Сергеевна. - СПб.: Питер, 2002. - 304с.: ил.
6. Ролланд Ф.Д. Основные концепции баз данных = The essence of Databases: Пер. с англ. / Ф. Д. Ролланд. - М.: Вильямс, 2002. - 256с.: ил. - (Основы вычислительных систем).
7. «Programming the Perl DBI», Alligator Descartes and Tim Bunce («Программирование на Perl DBI», Аллигатор Декарт и Тим Бане).
8. «Programming Perl, 3rd Ed», Larry Wall, Tom Christiansen and Randal Schwartz («Программирование на Perl», 3-е издание, Ларри Уолл, Том Кристиансен, Рэндал Шварц).
9. «Learning Perl», Randal Schwartz («Изучаем Perl», Рэндал Шварц).
10. «Dr Dobb's Journal», November 1996 («Журнал д-ра Доббса», ноябрь, 1996).
11. «The Perl Journal», April 1997 («Журнал Perl», апрель 1997).
АДМИНИСРИРОВАНИЕ В ИНФОРМАЦИОННЫХ СЕТЯХУстановка web-интерфейса к серверуInterBase v. 6.0 в Linux
Методические указания по выполнению лабораторной работы № 15
для студентов специальности 071900
«Информационные системы и технологии»
Конопелько Геннадий Константинович
Главный редактор Л. А. Суевалова
Редактор ______________
Компьютерная верстка Г. К. Конопелько
Подписано в печать 26.05.04. Формат 60х84 1/16.
Бумага писчая. Гарнитура “Таймс”. Печать офсетная. Усл. печ. л. 0,70
Тираж 75 экз. Заказ .
Издательство Хабаровского государственного технического университета.
680035, Хабаровск, ул. Тихоокеанская, 136.
Отдел оперативной полиграфии издательства
Хабаровского государственного технического университета.
680035, Хабаровск, ул. Тихоокеанская, 136.