Глава 36. Работа с базами данных_____________________________911

включен в состав многих платформ. Это означает, что вы сможете работать с базами dbm, если на вашем компьютере установлена одна из версий Peri. Для получения более подробной информации о sdbm и Peri посетите домашнюю страницу Peri:http://www.perl.com/perl/.

gdbm —это GNU-версия стандартных функций dbm. gdbm позволяет "запирать"файл, чтобы два пользователя не могли одновременно осуществлять запись. Эта библиотека имеет функции, подобные ndbm, а также средства для реорганизации и кэширования данных. Кроме того, такая база данных может иметь размеры, ограниченные только ресурсами вашей системы, gdbm хранит данные в одном файле с расширением .DB.

Berkeley Db 1.85 —эта библиотека значительно расширяет возможности dbm. Кроме таблиц с неупорядоченными данными, Db 1.85 может создавать базы, основанные на сбалансированном бинарном дереве (BTREE), и хранить информацию в строках с нумерацией (RECNO). Применяемый метод зависит от того, как вы хотите хранить и искать информацию. Db 1.85 хранит данные в одном файле, не имеющим расширения.

Если по какой-то причине вам не подходят приведенные характеристики, проведите поиск дополнительной информации. Кроме dbm, остальные интерфейсы dbm бесплатны. Скорее всего, вы обнаружите хотя бы одну библиотеку на вашем любимом сайте FTP.

Базы данных dbm сравнительно просты в использовании. К сожалению, они не располагают подробной документацией. Попробуйте найти дополнительную информацию по адресу:http://www.polaris.net/docs/gdbm/.

Пример использования dbm.После знакомства с различными интерфейсами dbm разберем простой пример. Как было упомянуто выше, dbm позволяет ускорить запись и поиск информации. Когда база данных начинает расти в размерах, вам следует подумать об использовании dbm.

Запись информации.База данных dbm располагает двумя полями, называемым ключами значениями.Ключ — это строка символов, указывающая на данные. Она должна быть уникальна в данной базе данных. Вот несколько примеров:

Ключ Значение

Robert Milesrniles@selah.ne Jason Lennyjason@yakima.ne Ken Daviskdavis@your.co John Doejdoe@imtired.selah.ne Santa Claussclaus@north.pole.co Bertrniles@selah.net

Значения, в отличие от ключей, могут содержать любую информацию, например, URL-адреса, адреса электронной почты и даже бинарные файлы.