2

I want to experiment/play around with non-relational databases, it'd be best if the solution was:

  • portable, meaning it doesn't require an installation. ideally just copy-pasting the directory to someplace would make it work. I don't mind if it requires editing some configuration files or running a configuration tool for first time usage.
  • accessible from python
  • works on both windows and linux

What can you recommend for me?

Essentially, I would like to be able to install this system on a shared linux server where I have little user privileges.

4

9 に答える 9

7

ライセンスの問題を認識してBerkelyDB を検討することをお勧めします。

資格なしに BerkleyDB を推奨する人たちにうんざりしています。BDB システムは GPL の下でしか配布できないか、Oracle からのライセンス料が不明で公開されていません。

外部の関係者によって使用されていない場所で「ローカル」で遊んでいる場合は、おそらく良い考えです。あなたを噛むのを待っているライセンスがあることに注意してください。

これはまた、技術に関する推奨事項を尋ねる際に、GPL が受け入れられるかどうかを示すことは良い考えであることを思い出させてくれます。

移植可能な C API データベースに関する私自身の質問から、他のさまざまな製品が提案されましたが、Python バインディングを備えた組み込み製品はありませんでした。

于 2009-02-23T04:49:08.340 に答える
5

Metakitは、Python をサポートする興味深い非リレーショナル組み込みデータベースです。

インストールには、1 つの共有ライブラリと .py ファイルをコピーするだけで済みます。Windows、Linux、Mac で動作し、オープンソース (MIT ライセンス) です。

于 2009-02-23T03:01:27.567 に答える
4

リレーショナル データベースは PostgreSQL や MySQL のように巨大で重くなければならないと考えていた場合は、SQLite に驚くことでしょう。

これはリレーショナルで、非常に小さく、単一のファイルを使用し、Python バインディングがあり、追加の特権を必要とせず、Linux、Windows、および他の多くのプラットフォームで動作します。

于 2009-02-22T16:43:43.903 に答える
4

バークレーDB

于 2009-02-22T16:35:08.947 に答える
3

CouchDBを見たことがありますか?これは非リレーショナルで、データは比較的簡単に移行でき、couchdb-pythonの形式で Python API を備えています。ただし、 SpidermonkeyErlangの形で、かなり変わった依存関係がいくつかあります。

純粋な python ソリューションに関しては、 PyDBLiteがどこまで進んだかはわかりませんが、それでもチェックする価値があるかもしれません。

于 2009-02-22T16:41:53.627 に答える
2

BerkeleyDB : (Python にバインドする API があるようです: http://www.jcea.es/programacion/pybsddb.htm )

于 2009-02-22T16:35:12.457 に答える
0

Python だけを使用している場合は、 Pickleを使用してオブジェクトをシリアル化することを考えるかもしれません。もちろん、他のツールを使用して同じデータにアクセスしようとしている場合は機能しません。これは Python に組み込まれているため、特権的な問題は発生しないはずですが、真のデータベースではないため、実験のニーズに合わない可能性があります。

于 2009-02-23T03:52:37.553 に答える
0

Zope Object Databaseを見たことがありますか?

また、SQLAlchemyまたはDjango の ORMレイヤーにより、SQLite でのスキーマ管理がほぼ透過的になります。


編集

http://www.sqlalchemy.org/docs/05/ormtutorial.html#define-and-create-a-tableから始めて、 SQL テーブルの作成方法と Python オブジェクトへのマッピング方法を確認してください。

あなたの質問は漠然としていますが、あなたのコメントは、最初に Python オブジェクトを定義し、それらを機能させてから、SQLAlchemy を介してリレーショナル スキーマ オブジェクトにマップすることを示しているようです。

于 2009-02-22T17:43:29.187 に答える