Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Документация по Berkeley DB и DB_File 
:(
    Опции темы
monax
Дата 22.6.2008, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 9.6.2005

Репутация: нет
Всего: 4



Поделитесь ссылками на нормальное описание Berkekey DB. Хочу понять принципы хранения данных, каким образом идёт доступ к данным, и как организовать свою небольшую БД на основе этой СУБД.
--------------------
Лаборатория программиста
PM MAIL WWW ICQ Jabber   Вверх
gcc
Дата 23.6.2008, 02:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



это не субд

если нужна субд используйте MySQL
а если просто плоская таблиц, то простой текстовый файл или DB Berkley в виде CVS


Код
65590;Перловица;unio;реки севера России и Скандинавии
56331;речная;margaritifera;север Европы
10616;жемчужница;martensii;Японское море
36816;стромбус;gigas;Куба


Код
use DB_File;                  # модули для работы с DBM 
use Storable qw(freeze thaw); # и сохранения данных
my %database;                 # хэш "привязывается"...
tie %database, "DB_File", "mollusc.db" or die; # ...к БД

open my $text, '<', 'mollusc.txt' or die; # файл, откуда
while (my $data = <$text>) {              # читаем данные,
   chomp($data);                          # удаляя \n
   # и разбивая строку на поля по разделителю ';':
   my ($id, $name, $latin, $area) = split(';', $data);
   my %record = (      # заполняем поля записи БД:
      ID => $id,       # идентификатор экземпляра
      NAME => $name,   # наименование моллюска
      LATIN => $latin, # латинское название
      AREA => $area);  # ареал обитания
   my $serialized = freeze \%record; # "замораживаем"
   $database{$id} = $serialized;     # и сохраняем запись
}
close $text;           # закрываем тестовый файл
untie %database;       # и базу данных


Код
use DB_File;                  # модули для работы с DBM 
use Storable qw(freeze thaw); # и сохранения данных
my %database;                 # хэш "привязываем"...
tie %database, "DB_File", "mollusc.db" or die; # ...к БД

my $id = 65590;                      # ищем "Перловицу"
if (exists $database{$id}) {         # по идентификатору
   my $serialized = $database{$id};  # считываем и
   %record = %{ thaw($serialized) }; # "размораживаем"
   printf "%5d %s %s %s\n",          # запись БД в хэш
      $id, $record{NAME}, $record{LATIN};
}
untie %database; # "отвязываем" БД от хэша
# будет выведено: 65590 Перловица Unio pictorum



Код
while (($latin)= each %record) {
print $latin;



Это сообщение отредактировал(а) gcc - 23.6.2008, 02:49
PM WWW ICQ Skype GTalk Jabber   Вверх
sir_nuf_nuf
Дата 23.6.2008, 07:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 14
Всего: 31



Отличное (и огромное) описание самой базы данных можно найти на сайте oracle:
http://www.oracle.com/database/berkeley-db/db/index.html

DB_File - устаревшая библиотека.

Используй BerkeleyDB 
http://search.cpan.org/~pmqs/BerkeleyDB-0.34/BerkeleyDB.pod
У этой библиотеки есть большой недостаток - не полная  документация. но другой нет.
Выручает только то что интерфейс один в один похож на С, и набор тестов в качестве примера.

.......
мда, надо быть корректней

Это сообщение отредактировал(а) sir_nuf_nuf - 23.6.2008, 20:29


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
nitr
Дата 23.6.2008, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



gcc, в MySQL тоже можно использовать модули BerkleyDB.
А что это такое вообще - тут

gcc, читать с этих строк 
Цитата
Программы, в которых используется Berkeley DB


monax, я соглашусь с sir_nuf_nuf,  но не плохая, а мало документации. Хотя отличие лишь -  на изучение уйдет больше времени.



--------------------
PM   Вверх
gcc
Дата 23.6.2008, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



Цитата(nitr @ 23.6.2008,  11:54)
gcc, в MySQL тоже можно использовать модули BerkleyDB.
А что это такое вообще - тут

gcc, читать с этих строк 
Цитата
Программы, в которых используется Berkeley DB


да, я видел, еще текстовый файл можно...
я раньше это использовал, потом только MySQL и ISA* талицы
PM WWW ICQ Skype GTalk Jabber   Вверх
monax
Дата 24.6.2008, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 9.6.2005

Репутация: нет
Всего: 4



Цитата(gcc @  23.6.2008,  02:41 Найти цитируемый пост)
это не субд

Ну да, это формат хранения данных. Прошу прощения за неточность. За примеры спасибо, вариант с сериализацией запомню (до этого объединял данные в строку join'ом).


sir_nuf_nuf, спасибо за ссылки. Использовать BerkekeyDB.pm сейчас нет смысла, вполне хватает DB_File.
--------------------
Лаборатория программиста
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0507 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.