Птичий
БАЗАр
Василий А. ПАВЛЮК
Почему-то считается, что для создания так называемых персональных баз данных идеально подходят
такие форматы, как dBase, Paradox, Access, а реляционные СУБД
это что-то невообразимо сложное
и большое. Совершенно ничего не имею против первого, но хочу показать, что второе не такое уж
сложное
И
большое, если использовать правильный сервер. Я буду говорить
О Firebird
сервере
реляционных баз данных, поддерживающем стандарт ANSI SQL 9 2 и работающем под Linux, W in-
dows и множеством Unix-ппатформ.
Н
аверное, как и многие, кто пишет программы в среде Del-
phi, я начал свое знакомство с миром SQL с сервера 1п-
terbase, который компания B orland любезно включила в со-
став дистрибутива своей среды разработки. Не знаю по-
чему, но с тех пор Interbase, а сейчас Firebird — моя первая лю-
бовь в среде баз данных. Сервер Firebird создан на основании
открытых исходных текстов Interbase, и весьма основательно от-
личается от своего предтечи, а в скором будущем произойдет
слияние двух популярных версий сервера Interbase — Firebird и
Yaffil. Еще одно преимущество — оригинальный Interbase от Бор-
ланда уже давно стал платным, a Firebird — нет. Текущей верси-
ей сервера является релиз 1.5.2, который вышел 26 декабря. Све-
жую сборку под различные ОС и исходные тексты можно найти
на firebird.sourceforge.net.
В версии 1.5 сервера Firebird произошли значительные изме-
нения по сравнению с версией 1,0.x: движок переписан на C++,
добавлена библиотека внедренного сервера, расширен синтак-
сис языка, также, как обычно, исправлены старые ошибки, до-
бавлены новые. Теперь Firebird полностью отделен от своего
предка — переименованы все основные модули сервера и кли-
ентские библиотеки. Таким образом, теперь появилась возмож-
ность на одной машине работать с оригинальным Interbase и
Firebird- Последний можно применять как для домашних нужд, так
и для больших организаций, обеспечивая надежность и скорость
обработки данных. '
Firebird 1.5 призван работать как часть существующего при-
ложения, т.е. может использоваться в качестве em bedded-серве-
ра (англ, «встроенный»). Поэтому для взаимодействия с базами
данных нет необходимости иметь запущенный сервер — вся функ-
циональность умещается в одной динамически загружаемой биб-
лиотеке. Встроенный сервер обладает теми же особенностями
и предоставляет приложению тот же API, что и обычный.
И что же — мы «безвозмездно, то есть даром» получаем пер-
сональную базу данных со всеми возможностями передовых кли-
ент-серверных технологий, таких как хранимые процедуры, триг-
геры, транзакции. И все это великолепие занимает около двух с
половиной мегабайт (естественно, без учета вашей программы
и файла базы данных), что значительно меньше примерно во-
семнадцати мегабайт установленного БДЕ, который обычно ис-
пользуется для доступа к БД dBase, Paradox.
Можно возразить, что для небольшой локальной базы не
очень-то и нужны все эти триггеры, транзакции и хранимые про-
цедуры. Может и так, но почему бы один раз правильно не спро-
ектировать базу данных, предоставив серверу право самому за-
ниматься управлением ее целостностью и непротиворечивостью?
Теперь немного о том, как настроить для работы то, что так
красиво звучит.
Внедренный сервер — это полностью функциональный сер-
вер, который разработан в виде DLL и имеет те же функциональ-
ные возможности, что и обычный сервер Firebird. Просто возь-
мите файл fbembed.dll из дистрибутива, переименуйте его в
fbdient.dll или gds32.dll, в зависимости от настроек соединения ва-
шей программы, после чего скопируйте полученный файл в ка-
талог с вашей программой — и все. Ну, почти все. Строка под-
ключения к базе данных в вашей программе должна содержать
абсолютный путь к локальной базе данных или алиас БД, если
он указан в файле конфигурации alases.conf. Практически, ваше
приложение может не знать, работает ли оно с встроенным или
обычным сервером БД.
При запуске ваша программа будет использовать внедрен-
ный сервер в качестве клиентской библиотеки. При этом мож-
но запускать несколько различных приложений, использующих
внедренный сервер, без каких-либо конфликтов между ними,
также необязательно выгружать работающий сервер Interbase
или Firebird. Правда, вы не сможете получить доступ к одной
базе из нескольких приложений, так как внедренный сервер
блокирует базу для эксклюзивного доступа, но ведь для локаль-
ной базы нам и не нужен доступ от нескольких клиентов. Тем
более, что всегда остается возможность использовать обычный
Firebird.
FTy а если есть необходимость использовать библиотеки INTL
(поддержка национальных кодировок) или UDF (функции, опреде-
ляемые пользователем), их необходимо скопировать в директо-
рии
\ IN T L
или
\ U D F
каталога вашей программы, повторяя струк-
туру каталогов обычного сервера Firebird. Также в папку с про-
граммой можно вкинуть файл конфигурации firebird.conf и файл со-
общений firebird.msg.
Таким образом, мы получаем следующую структуру ката-
логов:
\Каталог моей программы \appiication.exe
\Каталог моей программы\fbclient.dll или gds32.dll
**
\Каталог моей программы\КгеЬЫ.со^
\Каталог моей программы\КгеЬЫ.п«д
\Каталог моей программы\т1|\ГЫп1ЫН
\Каталог моей программы\udf\fbudf.dll
А теперь немного о грустном — плохие новости для любите-
лей конспирации: внедренный сервер не использует в работе ба-
зу данных безопасности зесшйу^Ь, поэтому любой пользователь
может подключиться к любой базе данных. Правда, привилегии
(роли) пользователя по-прежнему проверяются.
В заключение хочу сказать, что с выпуском БтеЫгб версии 1.5
мы получили отличную возможность для разработки мощных и
надежных, быстрых и эффективных локальных баз данных — ис-
пользуя всю мощь языка структурированных запросов, не инстал-
лируя мега- и гига- байты дополнительных файлов, а обходясь
всего несколькими дополнительными библиотеками. И все это со-
вершенно бесплатно.
.
Внимание!
На сайте «Компостер» — http://www.composter.kiev.ua
продолжается on-line голосование за лучшие идеи.
Зайди и проголосуй.
предыдущая страница 30 Мой Компьютер 2005 03 читать онлайн следующая страница 32 Мой Компьютер 2005 03 читать онлайн Домой Выключить/включить текст