1

データを読みやすいプレーン テキスト形式(複数行の json や yaml など)で格納する SQLite のようなデータベースを知っていますか?

プロジェクトと一緒にバージョン管理システムにデータを保存したいのですが、sqlite を使用すると、異なる作業コピーで発生したデータの変更をマージできません。

すべてのデータをメモリにロードすることなく、プログラムでこのデータを変更して効率的にクエリできるようにしたいので、ある種の構成ファイルだけを使用したくありません。

データベース内のデータは、ある種の sql ダイアレクトを介してアクセスされる場合がありますが、それは必須ではありません。

編集:

適切なデータベースができる限り速くデータのフラグメントにアクセスできるようにする、json/yaml/whatever のインデックスファイルを構築および維持するものを探しています。

また、データを変更する機能も必要なので、クエリのみを許可するソリューションでは不十分です。

4

7 に答える 7

3

MongoDB は CouchDB と多くの共通点がありますが、より単純です。

私のライブラリを試すことができます(注意してください)http://code.google.com/p/mongodloid/あなたの人生をさらに楽にします

于 2010-01-06T15:08:37.197 に答える
2

これはまさにあなたが探しているものではないかもしれませんが、この種のアプリケーションには CouchDB のようなものが優れた選択肢になると思います。json経由でクエリされますが、保存されたデータを直接編集できるとは思いません。

于 2010-01-06T13:06:28.477 に答える
2

ほとんどのプログラミング言語には、ネイティブ データ構造をシリアライズおよびアンシリアライズするためのツールが付属しています。これらを使用して、データをテキスト ファイルに保存します。

このようにして、遅いパーサーを必要とせずに、プログラミング言語に準拠してサポートされているデータを取得できます。

たとえば、PHP では、このserialize()関数を使用して任意のデータ構造を文字列に変換できます(unserialize()逆の場合)。

クエリは、ネイティブ データ構造にアクセスするのと同じくらい簡単になり、SQL の複雑さや遅さは必要ありません。

于 2010-01-06T12:44:51.340 に答える
2

フラット ファイル データベースは、アイデアが拡張されすぎていないことを示しています...

あなたの要件が「すべてのデータをメモリにロードする」ことを除外しているのはなぜだろうか。数GBの「一部のデータ」があると思いますか? たとえ数 MB のデータであっても、ロードしてメモリに保持するには多すぎるべきではありません。結局のところ、ブラウザは大きな Web ページの Dom でより多くのメモリを消費します...

メモリ マップト ファイルを使用してメモリ使用量を削減できると思いますが、正確なインデックスを維持することはより困難になる可能性があります。
メールボックスをプレーンテキストファイル (mbox 形式) で保存する Thunderbird は、このような手法を使用しているのでしょうか。

于 2010-01-06T15:05:14.723 に答える
1

Berkeley XML DB?http://www.oracle.com/database/berkeley-db/xml/index.html

于 2010-01-08T15:28:48.377 に答える
1

私の若い頃、ある種の awk ベースのデータベース エンジンが存在していました。それは単なるシェルスクリプトのセットでした。しかし、その名前は覚えていませんし、SQL 準拠だったのか無料だったのかもわかりません。

しかし、保存されたデータは完全にテキストベースでした。

私はそれを見つけられませんでしたが、このリンクも役立つかもしれません:

無料データベースのカタログ

于 2010-01-06T12:59:11.623 に答える
1

Xml、Linq-To-Xml で?

人間が判読可能で、部分的に更新することも、一度にすべてを読み取ることもできます。

于 2010-01-06T12:46:50.677 に答える