Есть ли нереляционный эквивалент DBI в Perl? - PullRequest
3 голосов
/ 26 апреля 2009

Модуль Perl DBI позволяет мне прозрачно подключаться ко многим различным типам баз данных SQL. Существует ли эквивалентный модуль Perl для нереляционных баз данных пар ключ-значение?

Например, интерфейс, который может позволить мне начать разработку с BerkeleyDB (или даже просто с хэшем Perl?), Но переключиться на что-то вроде memcachedb или CouchDB или даже облачную базу данных, такую ​​как Amazon SinmpleDB или Google AppEngine Datastore.

(Это то, что делает Tie :: Hash? В каком случае я могу найти сводку реализаций?)

Ответы [ 4 ]

10 голосов
/ 26 апреля 2009

Не уверен, что KiokuDB - это то, что вы хотите. Он имеет CouchDB, BDB (BerkeleyDB) и DBI.

4 голосов
/ 26 апреля 2009

Как правило, для каждого типа хранения пар ключ-значение вам понадобится отдельный модуль.

Например:

Я не уверен, есть ли модуль для Google AppEngine Datastore - обычно, ищите в MetaCPAN то, что вам подходит.

4 голосов
/ 26 апреля 2009

tie - это общий механизм «скрытия класса объекта в простой переменной». Tie :: Hash - это удобный служебный класс для реализации хеш-связей.

Таким образом, привязка объектов к хешу является подходящей абстракцией для доступа к базам данных пар ключ-значение. Насколько мне известно, нет единой инфраструктуры для создания таких связей, поэтому вы должны создать Factory самостоятельно, чтобы изолировать свой проект от различных способов создания различных связей.

3 голосов
/ 27 апреля 2009

CHI выглядит многообещающе, от производителя Cache :: Cache .

...