5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

UNIX DBMはこちら(GNU gdbm, Berkeley DB etc...)

1 :名無しさん@お腹いっぱい。:03/07/01 10:36 ID:???
リレーショナルじゃなくてもSQLでなくてもデータベース。

C/C++, perl, python, tcl/tk, java etc言語バインディングも
豊富だしお前ら、もっと活用してみませんか?

Berkeley DB
http://www.sleepycat.com/

GNU dbm
http://www.gnu.org/software/gdbm/gdbm.html

2 :名無しさん@お腹いっぱい。:03/07/01 11:45 ID:U3ZaBIM2
2getすらされていませんよ?

3 :停止しました。。。:停止:03/07/01 11:59 ID:???
真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ  

4 :名無しさん@お腹いっぱい。:03/07/01 12:35 ID:???
手軽そうだからちょっと興味あり。

5 :名無しさん@お腹いっぱい。:03/07/02 00:12 ID:???
追加。better GDBM な DBM
QDBM
http://qdbm.sourceforge.net/

6 :名無しさん@お腹いっぱい。:03/07/02 00:26 ID:???
関連スレ

”最強のDB”Perl xDBMについて語れ!
http://pc2.2ch.net/test/read.cgi/db/1056996886/

7 :名無しさん@お腹いっぱい。:03/07/02 00:28 ID:???
ちなみに漏れは Ruby 製の簡易掲示板で使ってる。
OS によってファイル構成が異なるのが嫌かな。

8 :名無しさん@お腹いっぱい。:03/07/03 01:53 ID:???
/etc/pwd.dbとかちっちゃいやつではお馴染みだけど、
subversion http://subversion.tigris.org
とかかなりDBサイズが巨大なもんでもBerkeley DB使われてるね。

Berkeley DB XMLとか面白そうだけどまだ使ったこと無いや。
http://www.sleepycat.com/products/xml.shtml
GettingStart斜め読みした限りでは問い合わせ言語に
XPath(name space support)が使えるからかなり良さげ。

そういや誰かXPathの擦れも建てて欲しいと思ったり、スレ建てインポなんで。

9 :名無しさん@お腹いっぱい。:03/07/04 14:22 ID:???
Cでプログラムは組めるが,データベースというとチンプンカンプンなので
このスレで勉強したいsage

10 :名無しさん@お腹いっぱい。:03/07/04 17:45 ID:???
>>9
Berkeley DBは問い合わせ(クエリ)のインタフェースに
SQLインタプリタみたいな複雑なものは使わないので、
C書ければすぐ使えまつよ。

*BSDなんかのlibc組込のBerkeley DBだと
openしてput/get/delしてcloseくらいのホント質素なもん、
Javaご存知ならimplements java.util.Map, java.io.Serializableって
いえばピンと来ると思いまつ

ドキュメントもよく整備されてるので是非一読を
http://www.sleepycat.com/docs/index.html


11 :名無しさん@お腹いっぱい。:03/07/06 06:09 ID:+9jOpiMC
質問なんですが、
perlでGDBMに受け渡したデータをJavaから呼び出すことは可能ですか?
初歩的な質問ですみません。

12 :名無しさん@お腹いっぱい。:03/07/06 06:50 ID:???
>>11
何言ってる不明
もっと具体的に書かないと答えられるものも答えられん。

13 :11:03/07/06 12:06 ID:+9jOpiMC

perlで野菜の値段データベースを以下のように作りました。

tie %yasai, 'GDBM_File', "yasaiDB", &GDBM_WRCREAT, 0640;
$yasai{tomato}=100;
$yasai{renkon}=50;
untie;


これで、ファイル名が"yasaiDB"と書かれたデータベースができました。
私が疑問に思ったのは作成されたこのデータベースはJavaのなかでも
呼び出せるのかというところです。
文字コードの問題などがありそうですが、不明なため質問いたしました。
よろしくお願いします。

14 :あぼーん:あぼーん
あぼーん

15 :あぼーん:あぼーん
あぼーん

16 :名無しさん@お腹いっぱい。:03/07/06 23:26 ID:???
漏れは馬DB使ってるのでGDBMはよく知らないんだけど、
言語バインディングごとにDBファイルの互換性が無いなんてこたーないでつ。
#エンディアンは問題になるかも、i368しか持ってないので試せない。

文字コードについては、
http://aurora.rg.iupui.edu/~schadow/dbm-java/pip/gdbm/ 使ってまつか?
Perl側の文字コードがEUC-JPだったりする場合は、RawPacking使って読み書きして
InputStreamReader/OutputStreamWriterで変換すればいいみたいでつ。


17 :名無しさん@お腹いっぱい。:03/07/07 00:05 ID:???
>>16
俺も同じく馬DB。

>>13
馬DBだとデータもキーもバイト列として保存するだけなんでエンディアンの影響はあります。
ntohl()とか使って変換しとけばOK。GDBMも同じじゃないかな。

18 :名無しさん@お腹いっぱい。:03/07/07 03:26 ID:0iBa7jUE
db3っておれだけか?いや誰か居るはずだ。

19 :名無しさん@お腹いっぱい。:03/07/07 04:00 ID:???
>>18
db3って何?
ググってみたけどBerkeley DB version 3 (= db3)が大量に引っかかって探せない。

20 :名無しさん@お腹いっぱい。:03/07/07 04:08 ID:???
>>19
それ。でも何故かbdbと言えば皆bdb2なんだよ。
WebSphereでも*BSDでもbdbと言えばbdb2なんだよ。
3使ってる奴いないんだよ。
何故だ?

21 :19:03/07/07 04:18 ID:???
>>20
既に4系があるからでは。ウチでは4.1.25使ってる。
どちらかと言うと1.85の方が使われてない?

22 :名無しさん@お腹いっぱい。:03/07/07 04:29 ID:???
うむ。3は存在を認識されずに終わったバージョンのようだ。残念。

23 :名無しさん@お腹いっぱい。:03/07/07 04:45 ID:???
QDBMかなり速いみたいよ。

24 :not 大岡山:03/07/07 05:58 ID:???
一応仲間に入れとくか
cdn (qmail MTAの作者djbによるdbm replacement)
http://cr.yp.to/cdb.html
訳はhttp://tools.qmail.jp/あたりにたぶん転がってる

25 :not 大岡山:03/07/07 05:59 ID:???
s/cdn/cdb/ でつた

26 :not 大岡山:03/07/07 06:02 ID:???
>>23
ベンチ将軍誰かヨロ

27 :名無しさん@お腹いっぱい。:03/07/07 06:56 ID:???
>>20-21
ライセンスの問題じゃない?


28 :名無しさん@お腹いっぱい。:03/07/07 08:45 ID:???
>>26
これとか。http://qdbm.sourceforge.net/benchmark.pdf

29 :名無しさん@お腹いっぱい。:03/07/07 13:05 ID:???
確かに早いな、>qdbm
ただ、トランザクションとRECNOインタフェースが無いね。
あんま必要性を感じたこたないが。

あんど馬DBも同様なんだが、java バインディングは
implements java.util.Mapしてホスイと思うのは漏れだけ?


30 :19:03/07/07 13:06 ID:???
>>27
だね。1.86(出てるの知らなかった)まではBSDライセンス。
2.x以降はQtに似たデュアルライセンスでした。

31 :名無しさん@お腹いっぱい。:03/07/07 13:08 ID:???
>>29
馬は4.2系でJavaのcollection APIをサポートとか書いてあったよ。
Java詳しくないから違うものかもしれんけど。

32 :名無しさん@お腹いっぱい。:03/07/08 00:16 ID:???
Berkeley DB 4.2.XX Change Log
ttp://www.sleepycat.com/update/4.2.XX/if.4.2.XX.html

The new Java DBX API for Berkeley DB allows Java programmers to use a familiar
Java Collections style API, including Map, while interacting with the transactional
Berkeley DB core engine. [#6260]

33 :名無しさん@お腹いっぱい。:03/07/08 08:55 ID:???
移植性はどうなのだ?

34 :名無しさん@お腹いっぱい。:03/07/08 12:31 ID:???
>>33
どれの?

35 :名無しさん@お腹いっぱい。:03/07/09 19:42 ID:9zWC4YIG
あなたたちが求めるDBMの機能ってなんなの?
・処理が速い
・データベースファイルのサイズが小さい
ってのはもちろんだよね。他に、アクセスメソッドの豊富で(ハッシュ、B木、キューなど)、
トランザクションとかあると嬉しい人もいるのかな。他にもREDOログによる復旧もできると
嬉しいかもね。
一方で、高度な機能は求めてなくて、シンプルで移植性(代替)があって高速なのがDBMの
よいところでもあるよね。

36 :名無しさん@お腹いっぱい。:03/07/09 21:28 ID:???
初心者質問で悪いんだけど
馬DBって何ですか? Berkeley DBのこと?
horse DB とかでググッたけど、何か競走馬のデータベースとか
引っ掛かって??です。


37 :17:03/07/10 01:42 ID:???
>>36
馬DBはBerkeley DBです。たぶん。
このスレ>>16辺りが初出と思われ。

わかりにくくてスマソ

38 :名無しさん@お腹いっぱい。:03/07/10 08:36 ID:???
Linux = リヌクス...いぬくそ...犬糞
BSD = バークレーソフトウェアディストリビューション...ばくそ...馬糞

同じBerkeley繋がりってことで馬DB

39 :名無しさん@お腹いっぱい。:03/07/10 08:45 ID:???
>>38
今日はためになった。


40 :名無しさん@お腹いっぱい。:03/07/10 11:52 ID:???
ぃぬx

41 :36:03/07/10 21:05 ID:OZ1qJzcP
馬DB = Berkeley DB ってことね。了解。

それでは、馬DBユーザに質問

今、私は 馬DB4.0.14 を Java から使ってます。
(Solaris2.6, JDKはJ2SDK1.4.1)

馬DBのRPCの機能を使って、C/S環境でプログラム作っている。

com.sleepycat.db.DbException: DB_NOSERVER_ID: Identifier unrecognized at server:
DB_NOSERVER_ID: Identifier unrecognized at server

というエラーが出てしまいます。このエラーはクライアントのJava VM でスレッ
ドを3つ作って,3つのスレッドでそれぞれ new DbEnv() してると
多発するみたい。しかしエラーが出ないときもあるのがまた困りもの.

もしかして,DbEnvオブジェクトってマルチスレッドで使えない?

このへんの所,詳しいやつ,おれに教えれ!
いや,教えてください.おながいします m(..)m ペコペコ


42 :名無しさん@お腹いっぱい。:03/07/11 03:36 ID:???
>>41
お、RPC使ってるのか。人柱よろ。とりあえず、
・馬DB 4.1.25にアップグレード
・ビルド時のconfigure引数晒す
とか。

ところで、DbEnvって1プロセスに複数作れたっけ?

43 :36:03/07/11 20:45 ID:u2EvQPDC
先に謝る.長文メンゴ.長文過ぎて怒られたので2つに分けてる

|| ・馬DB 4.1.25にアップグレード

最初は,4.1.25 + patch.4.1.25.1 ってのを使っていたんだけど,4.1.25だと
Java + RPC の環境で使えないようなので 4.0.14 に戻したんだ.

そう思った理由は以下を見てチョ.

* DbEnv.open()の flag 引数の説明ところから抜粋
Db.DB_THREAD
Threading is always assumed in the Java API, so no special flags are
required and Berkeley DB functions will always behave as if the
Db.DB_THREAD flag was specified.
つまり,Java API から使うと Db.DB_THREAD フラグが必ずセットされる.
(http://www.sleepycat.com/docs/api_java/env_open.html#Db.DB_THREAD)

* RPCプログラミングのイントロから抜粋
The DB_THREAD flag to the DB_ENV->open and DB->open methods may not be
specified, that is, DB_ENV and DB handles used in RPC clients are not
free-threaded.
(http://www.sleepycat.com/docs/api_c/env_open.html#DB_THREAD)
つまり,RPC環境でDB_THREADがセットされるとダメ(英文解釈間違ってるかも)

もしかして,4.1.25 でわざわざ使えなくなってるってーことは,4.0.14で
Java+RPCの組合せには,バグありってことなのかな.


44 :36:03/07/11 20:46 ID:u2EvQPDC
その2

|| ・ビルド時のconfigure引数晒す

config.log によれば,

$ ../dist/configure --prefix=/usr/local/db4 --enable-java --enable-rpc

です.ちなみに馬DBのコンパイルに使ったCコンパイラは

% cc -V
cc: Sun WorkShop 6 update 2 C 5.3 2001/05/15

だった.

|| ところで、DbEnvって1プロセスに複数作れたっけ?
そう,ここが臭ーいのだ.4.0.14のソース(DbEnv.java)の中にこんなのがある
んだけど...

public class DbEnv
{
....
public static class RepProcessMessage {
public int envid;
}
....
}

これって, 1プロセスで複数のDbEnvオブジェクトを作ったら envid は共有さ
れているの? static class つーのが解りません.
#ただの Java の質問になってまった


45 :名無しさん@お腹いっぱい。:03/07/12 03:27 ID:???
>>44を読んだだけでソース読まずにカキコ。
envidはRepProcessMessageのインスタンス毎に値を持っている。
DbEnvは無関係。

public class A {
 public static class B {
   private int value;
 }
}



public class A {
}
public class B {
 private int value;
}
はほとんど同義だよ。
違いは
1.インスタンスの生成は A.B b = new A.B(); と書く
2. 前者はclass AはB.valueにアクセス可能、後者は当然無理
ってとこかな。


46 :名無しさん@お腹いっぱい。:03/07/12 20:15 ID:dnxUtIhJ
CygwinでBerkeleyDB使える?

47 :名無しさん@お腹いっぱい。:03/07/12 20:27 ID:???
つーかQDBMだろ。日本製だし。

48 :あぼーん:あぼーん
あぼーん

49 :名無しさん@お腹いっぱい。:03/07/12 21:52 ID:???
>>46
使える

50 :あぼーん:あぼーん
あぼーん

51 :あぼーん:あぼーん
あぼーん

52 :名無しさん@お腹いっぱい。:03/07/13 14:04 ID:zd7coiS0
GDBMについて詳しく説明してくれ。
RDBなの?
特徴は?
どんな時に使ったりしてる?

53 :名無しさん@お腹いっぱい。:03/07/14 02:49 ID:JS73bRQi
キーと値のペアからなるレコードをファイルに保存したり、そうやって作った
ファイルからレコードを取り出すことができるようになります。機能はそれだけ。
RDBとはあんまし関係ないです。しいていえば、RDBのインデックスに使うハッシュ
とおんなじようなことをしているツールです。
利用法はいろいろありますが、わざわざRDBを使うまでもないようなことに使います。
例えばWebの掲示板とか、アクセスログの記録とか、ユーザアカウントの管理なんかですね。


54 :名無しさん@お腹いっぱい。:03/07/14 03:23 ID:???
バカが「低水準関数でのファイル操作が一番速い」とロクな知識もなく
無茶苦茶なファイル操作して大幅な速度低下を起こすのを防ぐのに使います。
いや、使わせます。

55 :名無しさん@お腹いっぱい。:03/07/22 21:17 ID:82vtyiOg
BerkeleyDBの、set_pagesize、set_cachesize、set_h_ffactor、set_h_nelem、set_cachesize
とかのチューニングのツボがイマイチよくわからん。強者の解説求ム。

56 :名無しさん@お腹いっぱい。:03/07/23 01:57 ID:???
 ̄ ̄ ̄\:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\       /
       l:::::::::::::::::::::::::;;:::ヘ::rv'レ'、::::::::::::::::::ゝ    /
       |::::::;::vrヘl/''"`"_,, ノ 、;;、 ''ヽ;:::::::::::!    |
  頼   \'' "   _,,..-=、''_  >',=-、 ' i:::::::;!    ヽ  も し. は ア
       |   / ,rニ・L  | { ':ニ・i,.  |:::::l    /     て    ゲ
       /    'i ,''≡'   | i`== i i;/l    >   も く  勘 る
  む  /,i     | !   r┤ i、  J ,:、!,!    |.    う れ 弁 の
     ヽ,! ‐=、;、 | l  , , ,`',,`''´,',  〃 |i    ヽ      ・
     r‐-`;-  'ヾ;;''、 ,' , ',,;===; ' ,i/ l  ‐=、--'      ・
     |ヽ__,i  ,   i! , /r──-l! i! /;、_   ``i       ・
___/'´ i ', ' , ' ,  | ''" ̄ ̄ ̄  !./ i;;;;;``''-、 ``i
;;;;;;;;;;;;;;/  i  `''-、, ', , ; , ' , ', ', ' ,', ' ,/'  |;;;;;;;;;;;;;;;;;;`''-i
;;;;;;;;;;;;/   i  ,' , .`''ー- '    ,. ‐'"/  |;;;;;;;;;;;;;;;;;;;;;;;;;゙ー、


57 :あぼーん:あぼーん
あぼーん

58 :名無しさん@お腹いっぱい。:03/07/26 05:28 ID:E/jU4S1T
QDBMのGDBM互換APIがいいぞ。完全なソースコード互換で、速度は5倍以上出るんじゃないかな。

59 :名無しさん@お腹いっぱい。:03/07/26 05:46 ID:5DqcDSlZ
祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り

ニーノさんのホームページ作り2
http://ex.2ch.net/test/read.cgi/entrance/1059029010/
ニーノ ◆p9GipySMGk によってラウンジにたてられたこのスレで、

http://page.freett.com/ninogumi/
【ニーノさんのホームページ】
というサイトが作られた。(現在もコンテンツは爆発的に増えてるよ。)

さぁ、君もアイディアを出して、2CHネラーだけの最強サイトをつくろう!

祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り祭り


60 :ぼるじょあ ◆ySd1dMH5Gk :03/08/02 04:58 ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ

61 :山崎 渉:03/08/15 23:04 ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

62 :名無しさん@お腹いっぱい。:03/08/23 12:32 ID:???
Webの掲示板でdbmを使うときってキーは何にするの?記事の番号を文字列で"1", "2", "3"とかするの?

63 :名無しさん@お腹いっぱい。:03/08/24 16:41 ID:6jUjlvB1
>>62
単純な掲示版ならそれでいいと思う。
で、"max"みたいな特別なキーに記事番号の最大値をいれておけば、新着順に表示できるはず。
2chのようにフローティング機能を持たせたいのなら、各記事を双方向リンクリストでつないでおいて、
記事を上げる場合はそのつなぎかえをしなきゃならんが。

64 :名無しさん@お腹いっぱい。:03/09/12 05:48 ID:???
Constant Database (cdb) Internals
http://www.unixuser.org/~euske/doc/cdbinternals/index.html

65 :名無しさん@お腹いっぱい。:03/09/22 01:58 ID:wHXY83fg
>>64
CDBって何が優れてるの?
単なるハッシュDBだったらSambaのTDBが最速だと思うんだけど、djb氏はなぜ今さら
yet anotherなものを作る必要があったのだろう。

66 :名無しさん@お腹いっぱい。:03/09/23 08:26 ID:???
>DBMファイル直接ダウンロードできてしまうサーバも多いのは、気にしないの?
>ついでに、DBMファイルとの接続は、普通のテキストファイルに比べて、3倍〜10倍の時間がかかるのも気にしないの?
>おまけに、1件(テキストファイルなら行)あたりの読込み速度が数倍かかるのも気にしないの?
ってみたんだけど、テキストやRDBMSほうがいいの?


67 :名無しさん@お腹いっぱい。:03/09/23 21:58 ID:???
>DBMファイル直接ダウンロードできてしまうサーバも多いのは、気にしないの?

鯖の設定を知らんアフォですな、テキストならダウンロードできないとでも思ってるのか?

>ついでに、DBMファイルとの接続は、普通のテキストファイルに比べて、3倍〜10倍の時間がかかるのも気にしないの?
>おまけに、1件(テキストファイルなら行)あたりの読込み速度が数倍かかるのも気にしないの?

>>54に尿意
RECNOみたいに行番号だけで済む探索ならプレーンテキストと優位な差は出んが
ランダムアクセスならハッシュのDBMの方が明らかに速いのが判らん痛い人なのだろう。




68 :>>66:03/09/23 22:08 ID:???
数万個のレコードがある場合、ファイルを開く時間に較べれば検索にかかる時間がとても大きくなります。
単なるテキストファイルだと数万回の読みだしとデータ比較を行うことになりますが、DBMを使えばそれが
たった数回で済むのです。というわけで、検索キーのあるレコードを保存するにはテキストよりDBMが有利です。
DBMとRDBMSの使い分けに関してですが、検索キーやレコードの構造が複雑な場合はRDBMS、キーとそれに対応
する値がひとつづつといった単純な構造の場合はDBMを使うとよいでしょう。ただし多くのDBMはキーの完全一致
検索しかサポートしていないので注意しましょう。


69 :名無しさん@お腹いっぱい。:03/09/23 22:20 ID:???
>>65
> yet anotherなものを作る必要があったのだろう。
元々はqmailとかdjb toolの設定ファイルキャッシュ用に作ったのだとオモタ。
動機はセキュア(=俺が書いたコードでないと安心できない)ってところか?

70 :名無しさん@お腹いっぱい。:03/09/24 15:48 ID:???
>>67
>>68
勉強になりました。csvやMySQLは使ったことあるんだけど、dbmはなかったので
これから少し使ってみようと思います。


71 :名無しさん@お腹いっぱい。:03/09/24 16:14 ID:???
つまりqmailとか以外の用途はなさそうってことか。


72 :名無しさん@お腹いっぱい。:03/09/26 19:00 ID:???
>>71
他にcdb使っているアプリってvpopmailだとかqmail臭いものばっかりだからなぁ。
djb信者じゃなければ、ふつ〜にBerkleyDBやgdbm使ったほうがいいよ。特にBerkleyDB
は3以降で機能の大拡張がなされて、トランザクションまで使えるし。

73 :名無しさん@お腹いっぱい。:03/09/29 00:12 ID:???
2つ質問があります。
dbmは連想配列をファイルに保存とイメージしているのだけれども、
検索キーが複数あるような場合はやっぱし使えないですか。キーを適当なセパレータでつないだり
するのは別として。

掲示板のデータをdbmに収めたとして、たとえば"dbm"で全文検索して一致した書き込みを表示とかってできますか?


74 :名無しさん@お腹いっぱい。:03/09/30 00:48 ID:???
>>73
質問1の回答:キーが複数ある場合は、複数のDBMを使うしかない。
DBM-1は、列1をキー、オブジェクトのIDを値にする。
DBM-2は、列2をキー、オブジェクトのIDを値にする。
...
DBM-nは、列nをキー、オブジェクトのIDを値にする。
で、
DBM-Vは、オブジェクトIDをキーにし、オブジェクトの中身を値にする。
そして、キーに応じて適切なDBM[1..n]を引いてオブジェクトIDを取得してから、DBM-Vを引いて
オブジェクトを取り出せばよい。つまり、リレーショナルDBが暗黙的にやっているようなことを自分
で実装しなければならない。面倒だけど性能は期待できる。

質問2の回答:DBMで全文検索をするのは、そのままでは難しい。
全文検索ってのは、内容にあるパターンを含むレコードの一覧を得る処理なわけだが、DBMはキー
の完全一致しかサポートしていない(Btreeは前方一致が可能だが)。
DBMで無理矢理全文検索を実現するなら、テキストに含まれる語句を切り出して、切り出したパタ
ーンをキーとし、それを含むオブジェクトのIDの配列を値にすることになるだろうな。
"dbm" : [1,3,9,54,98]
"ndbm" : [1,8,53]
"sdbm" : [2,3,9,23]
みたいな構造にするのかな。パターンをどうやって切り出すかを考えるには、自然言語処理
についてちょっと勉強しないといけないだろう。

75 :名無しさん@お腹いっぱい。:03/10/01 00:11 ID:???
>>74
ありがとうございます!!

大変参考になりました。


76 :NAME IS NULL:03/10/30 20:44 ID:HIhyk/qY
ちょっと使ってみたら、速度は
CDB >>>>> QDBM > TDB >> GDBM
だね。
CDBが圧倒的に速いし、ファイルも小さい。
でも更新と検索が同時にできないのはちょっと使いづらいかな。

77 :NAME IS NULL:03/10/31 12:53 ID:???
NDBMだけはガチ

78 :NAME IS NULL:03/12/03 15:34 ID:/crs/ZXG
BerkleyDBでは、レコードを削除しても、ファイルサイズが減らない(領域は再利用される)のですが、
元のファイルから古いデータを消して、新しいファイルにダンプするしかダイエットの方法はないですよね?
そのデータ移行中に更新がかかると取りこぼすような気がするので、何か良い回避方法はないですかね?

79 :NAME IS NULL:03/12/05 12:46 ID:???
データ移行中には更新をブロックするしかないんじゃないかな。

80 :NAME IS NULL:03/12/31 21:15 ID:???
ちとすれ違いだが。
apache_2.0.48のapr-utilのbuildが馬DB4.2.xだとコケるんだけど
↓のマクロをみて禿しく萎えた。
ttp://cvs.apache.org/viewcvs.cgi/apr-util/build/dbm.m4
ttp://cvs.apache.org/viewcvs.cgi/apr-util/build/dbm.m4?r1=1.5&r2=1.6
GNU autotoolってほんとにバッドノウハウの塊だね。

81 :NAME IS NULL:04/01/20 17:50 ID:UcaoSa+e
Berkeley DBなんですが、解凍したファイルを作成しておいた /db
ディレクトリへFTPして、それからTelnetでbuild_unixまで行って、
そこから../dist/configure と打ったら、こういうエラーが出ました。

bash: ../dist/configure: Permission denied

/db/ の属性は777と変更してから行ないました。

なにが問題なのでしょうか・・可能性を教えてください。

82 :NAME IS NULL:04/01/20 23:30 ID:???
それって、bashが「configureが許可がなくて実行できない」って言ってるんじゃない?dist/configureのファイル属性調べてみて。



83 :NAME IS NULL:04/01/21 00:24 ID:vfEXJDFI
てか、cd ../dist してから ./configureしなきゃ


84 :NAME IS NULL:04/01/23 01:33 ID:OV9Mrwi6

レ、レベルひくぅー

85 :NAME IS NULL:04/01/26 23:04 ID:???
人のこと馬鹿にする奴は地獄に落ちるぞ。

86 :NAME IS NULL:04/01/28 15:40 ID:???
>>84は昨日鳥インフルエンザでお亡くなりになりますた。


87 :NAME IS NULL:04/01/30 11:06 ID:???
web上の辞書引きページを作ろうと思ってるんですが、
単語数は、1000から2000で、各単語は発音、品詞、訳語、
例文など6〜7フィールドです。
頻繁にアクセスがあるとすると、どのDBMに格納するのが
吉でしょうか。ポスグレとかの方がいいのでしょうか。


88 :NAME IS NULL:04/01/30 11:16 ID:NJwR2Fzf
>>87続きです
それともこのくらいならテキストファイルの方が早いですか。


89 :NAME IS NULL:04/02/01 00:36 ID:???
その程度のサイズならば、ファイル全体がOSのI/Oキャッシュに乗るだろうから、
テキストファイルで問題ないと思います。
速度を追求するならBerkeley DB使った方がいいかな。QDBMもいいかも。

90 :NAME IS NULL:04/02/01 08:24 ID:???
>>89
ありがとうございます。
QDBMって速いっていうレスあったので、テキストと
両方試してみます。



91 :NAME IS NULL:04/02/06 08:24 ID:???
ndbmが最も速いのでは

92 :NAME IS NULL:04/02/07 23:03 ID:???
QDBM:パフォーマンスはオリジナルのNDBMの数倍は出ます。
ttp://qdbm.sourceforge.net/tutorial-ja.html


93 :NAME IS NULL:04/02/28 08:20 ID:???
Berkeley DBにあるRECNOってドンなの?
HASHとかBTREEならちょっとはわかるんだが。
実際どういう風に使うもんなんだろ...

94 :NAME IS NULL:04/03/04 01:36 ID:???
俺も使ったことないけど、ぱっと見で、プライオリティキューの永続化に役立つんじゃないかな。

95 :NAME IS NULL:04/03/20 23:47 ID:5TfEphvL
Berkeley DB って商用で使うとソース公開しないと有料なの?


96 :NAME IS NULL:04/03/21 20:47 ID:???
SDBMよりGDBMのが速いとか風の噂で聞いたので試してみたら
体感で明らかに遅くなってしまって頭かかえてたんだけど
ttp://qdbm.sourceforge.net/benchmark.pdf
ここの見るとGDBMって書き込みが激しく遅いのね
しかしこのベンチのSDBMのReadが0って・・・

97 :NAME IS NULL:04/03/21 20:49 ID:???
あ、qdbmってVCじゃビルド出来ないのね・・・

98 :NAME IS NULL:04/03/22 09:39 ID:???
PERLの掲示板スクリプトとかに使ってもOKですかね?
MovableTypeでBerkeley DB使えるのを見て思ったのですが。
スレッドとか検索とか付いてくると、色々ごちゃごちゃ
してくるし。

99 :NAME IS NULL:04/03/23 20:09 ID:???
>>97
VCでビルドできたよ。
ところで、ベンチマークに「SDBMは100万レコードで壊れた」ってあるけどマジかなぁ。

100 :NAME IS NULL:04/03/24 12:19 ID:???
cdb の場合

* データベースの作成はとても速い!
* データベースのサイズも小さい!
* データベースの参照もとても速い!
* データベースの更新は、全データが必要(実質、再作成と同じなので、速度も再作成と同じ)

cdb 以外のgdbm,qdbmなどの場合

* データベースの作成の速度は普通(ものによるが、cdbほど速くはない)
* データベースのサイズもものによる(cdbよりは大きい)
* データベースの参照もものによる(cdbほど速くはない)
* データベースの更新は、他のデータは不要で、cdbより速い!

で、理解あってる?

101 :NAME IS NULL:04/04/03 21:23 ID:???
ttp://aveiro.hp.infoseek.co.jp/skk/servers.html
ここの下のほうに cdb の 0.55 と 0.75 の違いが書いてあるけど、
これがもし本当なら大きなデータで殆どのレコードにアクセスするような例では
現行の 0.75 は結構辛い?
あと TinyCDB とやらでもこれは同じなのかな。


102 :NAME IS NULL:04/04/06 21:46 ID:GXxkLk8T
いいスレ

103 :NAME IS NULL:04/04/22 16:37 ID:???
だけど、静香杉。


104 :NAME IS NULL:04/05/10 02:17 ID:???
頑張れ。

105 :NAME IS NULL:04/05/16 07:33 ID:wKgBT2Er
SQLiteに較べてBerkeleyDBやQDBMの方がやっぱ速いんですよね?
試しに置き換えたとしたら、どのくらい速くなるでしょうか。

副問い合わせをDBMのAPIで置き換えるのはちと大変だと思いますが、、、

106 :NAME IS NULL:04/05/16 14:34 ID:0id9T6PE
DBMって正直分かりづらいですね

107 :NAME IS NULL:04/05/28 04:09 ID:???
SQLもな。

108 :NAME IS NULL:04/06/29 17:11 ID:ZCOlO+nL
マルチスレッドなプログラムでndbmを使用しようとしたんですが、
やはっりというかMT-unsafeなんですよね。
バークレーDBや、qdbm,cdbmはMT-safeなのか、ご存知の方教えて
頂けませんでしょうか
因みにOSはsolaris8で、プログラムの中では検索しかしません。
(検索だけなのでndbmでもいけそうな気もするのですが、、、)


109 :NAME IS NULL:04/06/29 17:12 ID:???
↑さげわすれました。。。

110 :NAME IS NULL:04/06/29 17:25 ID:???
>>108
qdbmはスレッドOKでしたね。

111 :NAME IS NULL:04/07/28 09:17 ID:WggAfKYD
dbm_fetchを呼ぶと、以前呼んだ時の戻り値のdatum.dptrが指す先が書き換えられるんだね。
これのせいで昨日からずっと悩む羽目にあった。

112 :NAME IS NULL:04/07/28 11:14 ID:zDkc3K16
>>111
それってえろう怖いんじゃねえか


113 :NAME IS NULL:04/07/29 05:49 ID:???
つーか今さらNDBM使うなよ。

114 :NAME IS NULL:04/08/08 20:40 ID:g7uZ+RUn
berkeley db java editionってどう?

115 :NAME IS NULL:04/08/10 00:29 ID:???
すいません、純粋にjavaだけで動かすことができるDBMっていうのは
あるのでしょうか?

116 :NAME IS NULL:04/08/10 05:53 ID:???
いっぱい

117 :115:04/08/10 17:01 ID:???
Berkeley DB はJava editonがあるのがわかりました。
ちなみに、話題のqdbmっていうのは、java向けのAPIがあるだけで、
javaだけでは動かないのでしょうか?

118 :NAME IS NULL:04/08/10 17:11 ID:???
最近話題になったとこだと
ttp://slashdot.jp/article.pl?sid=04/08/04/0843246
あたりか?

119 :NAME IS NULL:04/08/11 22:28 ID:???
Berkeley DB のライセンスって、なんかBSDライセンスとかじゃ
無いみたいんだけど、日本語でライセンスの書いてある説明
とかってないでしょうか?

120 :NAME IS NULL:04/08/12 22:21 ID:???
口調を統一しない人には教えません。

121 :NAME IS NULL:04/08/13 16:43 ID:K37O/N7H
Berkeley DBの使い方が分かるWeb上のドキュメントがあればURLを教えてください。
db_loadというユーティリティでデータベースファイルを作成することはできたのですが、
いらなくなったkey=dataペア(レコード)を削除する方法が分かりません。
そのつど.dbファイルを作り直さなければいけないのでしょうか。

122 :NAME IS NULL:04/08/15 21:45 ID:???
高林さんの馬DBネタとか。
ttp://namazu.org/~satoru/diary/200406.html
ttp://namazu.org/~satoru/diary/200407.html

>>123はNent Yaku

123 :NAME IS NULL:04/08/15 22:13 ID:5WUYRlds
>>121
C言語なら
int DB->remove(DB *db, const char *file, const char *database, u_int32_t flags);
という関数がある。C++でもJavaでも同様のメソッドがある。

124 :NAME IS NULL:04/08/15 22:49 ID:???
http://namazu.org/~satoru/diary/200406.html
http://namazu.org/~satoru/diary/200407.html

125 :NAME IS NULL:04/08/16 14:47 ID:???
>>122-123
レスありがとうございます。121です。
付属のユーティリティをつかって簡単に削除できるのだろうとおもっていたのですが
そういう使い方をするモノではないんですね。ちょっと勘違いしておりました。

126 :NAME IS NULL:04/08/30 16:09 ID:???
qdbmっていいの?そんなにいいの?
使うよ?いいの?

127 :NAME IS NULL:04/08/31 13:45 ID:???
荒らすな

128 :NAME IS NULL:04/09/27 17:52:34 ID:SSEQCMVj
勃起age

129 :NAME IS NULL:04/09/27 23:42:50 ID:???
cygwin + ruby1.8 + BerkeleyDBでうまくいってる人いる?

130 :129:04/09/28 00:09:24 ID:???
おいおい、会社でだめぽだったのに家では余裕でできた。
会社のはbdbがdevel版がインストールされてなかったのかな。

131 :NAME IS NULL:04/10/20 21:58:02 ID:???
perlでNDBMを使ってたんですけど1日で10倍以上にサイズが肥大化したので
Berkeley DBに変更しました。すると肥大化はしなくなったものの負荷が数倍かかるようになりました。
GDBMなんかは肥大化するわ壊れるわで最悪でした。
perlのバージョンを変えてもapacheのバージョンを変えても解決せず。
アクセスが多すぎると駄目なのでしょうか。

132 :NAME IS NULL:04/10/20 23:52:06 ID:???
qdbm はどう?

133 :NAME IS NULL:04/10/21 12:37:01 ID:???
>>131
ちゃんとファイルロックしてないだろ。壊れるのあたりまえ。
NDBMにしろGDBMにしろ最初はファイルサイズ大きくなる。
が、後からはデータを追加してもその分しか大きくならない。

134 :131:04/10/21 18:43:26 ID:???
flockでファイルロックは行っています。
壊れるというのは、ファイルが飛んでサイズが減るわけではなく
サイズはそのままで全てのデータが読み込み出来なくなります。
ぷららのサーバで同じように試してみるとどんどんファイルサイズに差が出てきます。
直ぐに200KBと5MBくらいに差がでました。
1度テキストに変換して全て書き直すとサイズは200KBまで落ちたので異常に肥大化されているような気がします。

QDBMはインストールはしましたが書き込めても読み込めなく、原因が分からなかったので諦めました。


135 :NAME IS NULL:04/10/23 15:42:49 ID:???
許容できないなら仕方ないが、サイズの肥大化は
索引や効率を考えて前もって領域を確保してる分だから、
動作としてはおかしくない。

あと実装によってはdbm側でロックの機構があるから、
それを使う方が望ましいかもしれない。

136 :NAME IS NULL:04/10/27 04:38:31 ID:Yk8mNdzM
>>131
GDBMが壊れるあたり、DBとの接続をちゃんと切ってないことない?
CGIとかでも、プロセスが死ぬ前に確実に接続を切る(ハンドルを閉じる)
ようにしないとファイルがおかしくなるよ。

137 :NAME IS NULL:04/11/10 16:34:50 ID:???
クァキコしとこ。

138 :NAME IS NULL:05/01/15 00:58:37 ID:vXqd6/Xv
SymbianOSに入るようなメモリ空間100KB以下の
DBご存知ないですか?C言語でお願いしまっする。

139 :NAME IS NULL:05/01/15 03:52:49 ID:???
>138

そんなん(メモリ空間100KB以下)だったらDBいらねーんでは?

140 :NAME IS NULL:05/01/15 19:23:40 ID:???
>>138
QDBMは? POSIX互換なら動きそうだけど。

141 :NAME IS NULL:05/01/17 23:44:17 ID:FLVEOjow
solidはどう?商用だけど。
ノキアやOpenViewで使ってるって。

142 :NAME IS NULL:05/01/20 15:57:28 ID:???
超遅レス
>>134
bdb使っているのにflockでロックってなんの冗談なんだろう?
ttp://pybsddb.sourceforge.net/ref/lock/stdmode.html

143 :NAME IS NULL:05/01/25 04:15:25 ID:fFuVLIUL
糞なOSでも使えるDBじゃねえの。組み込みとか。

144 :NAME IS NULL:05/01/25 20:33:08 ID:???
ヲイヲイ。おめーは携帯電話をつかってねーのか。

145 :NAME IS NULL:05/02/18 03:15:52 ID:9UHJegbs
BerkeleyDBよく見たらすごいな。
トランザクション使えるし、レプリケーションできるし、
オンラインバックアップできるし、2phase commitできるし。
ただ、ライセンスがきつくて使いづらい。


146 :NAME IS NULL:2005/03/26(土) 15:09:38 ID:???
この前tie初めて使った。感動した。

147 :NAME IS NULL:2005/04/04(月) 15:27:05 ID:IVXkguN3
BerkeleyDBの料金体系ってどんな感じなんでしょう。
どなたか具体的なお話を聞かせて頂けないでしょうか?

148 :NAME IS NULL:2005/04/05(火) 00:22:16 ID:???
Sleepycatにサポートしてほしいってこと?
直接聞けばいいのに。

149 :147:2005/04/05(火) 15:07:31 ID:???
>>148
公表されても構わないことと思われるのに、
ネットで全然その話題に行き着かなかったのです。

BerkeleyDBの利用しづらさって、その辺が全然分からんのもあると思うので、
どなたか情報を放流してもらえないかと期待しての書き込みです。


150 :NAME IS NULL:2005/04/05(火) 18:05:52 ID:???
http://www.sleepycat.com/download/licensinginfo.shtml
とか
http://www.sleepycat.com/supports/index.shtml
とかに普通に書いてない?


151 :NAME IS NULL:2005/04/05(火) 20:31:04 ID:???
>>150
いや、そこに載ってるのはサポートの価格で
知りたいのはコマーシャルライセンス自体の価格だと思われ。
Sleepycatのオープンソースライセンスは実質GPL(否LGPL)と同等だから、
製品に組み込もうと思ったら、その製品のソースも何らかの形でオープンにしないと駄目。
http://www.opensource.jp/licenses/sleepycat.html

多分InnoDBと同程度の価格だと思うんだけど、InnoDBはOEMオンリーで
結局MySQLでの価格差でしか見れないし、本当の供給してる値段は判らんね。


152 :NAME IS NULL:2005/05/30(月) 22:16:20 ID:???
保守


153 :NAME IS NULL:2005/06/10(金) 12:33:06 ID:b9rlejc6
QDBMのVillaで、重複レコードは同じキーのレコードの末尾に格納されるとあるけど
これはキーが重複したレコードの中では登録日時順に並ぶという事だよね。
しかし分からないのはその後の「DBのアップデートの為にそのカーソルは使えなくなる」という記述。
どういう事?
マニュアルのサンプルコードで重複キーのレコードに対してカーソルを使っているが。

154 :NAME IS NULL:2005/06/10(金) 15:37:19 ID:???
QDBMのVillaの比較関数ってどこに書いてどう使えば良いの?
とりあえずVLCFUNC型の変数に自作関数のポインタを入れてみたけど
それで自動的に使われるというわけではないみたいだし。

155 :154:2005/06/10(金) 19:05:58 ID:???
おー、分かった。
すっげ嬉しい。
openするメソッドの引数で指定するんじゃん。
灯台下暗しだな。
俺は下以外も暗いけどな。

156 :153:2005/06/10(金) 19:27:24 ID:???
自己解決しました。

157 :NAME IS NULL:2005/06/22(水) 18:26:07 ID:+bv5CzNl
qdbmのodeumはWEB上の文書しか扱えないの?
アプリケーション内で作った文字列を格納する方法が見当たらないんだが。

158 :NAME IS NULL:2005/06/22(水) 20:13:41 ID:???
個々の文書はwebとは限らないけれど、もとの文書を格納しておくわけじゃな
くて、転置インデックスしか管理しない。
estraierの用途を考えればわかるように、元の文書はどっか他の場所にファイ
ルとしてあるっていう前提があって、 odeum 側で、いちいちそのファイルの
内容をコピーせずに、そこへの参照(パスとか)だけ持てばいいって発想なんだ
ろう。


159 :NAME IS NULL:2005/06/22(水) 21:56:09 ID:???
APIなんだから、対象の文書がどこに保存してあるとか関係ないでしょ。
ODDOCオブジェクトを作ってoddocaddwordで語を入れさえすればいい。

160 :NAME IS NULL:2005/06/22(水) 22:02:49 ID:???
pure java のDBMっぽい。おまえらコントリすれ
http://jdbm.sourceforge.net/

161 :NAME IS NULL:2005/06/22(水) 22:04:27 ID:Dl2KSbG/
>>161
BSD License だったから あげさせてもらうよ

162 :157:2005/06/23(木) 02:59:16 ID:TtVhFLaI
oddocopen("URI")は、実際にそのURIにアクセスしてデータを取得したりしないの?

163 :NAME IS NULL:2005/06/24(金) 09:05:52 ID:???
>>157
しないよ。文書にIDをつけてるだけみたい。実際にはユニークであれば
どんあ文字列をしていしてもいいみたい。

164 :157:2005/06/24(金) 11:35:39 ID:???
レスありがとう!

165 :NAME IS NULL:2005/06/25(土) 04:57:25 ID:IcUs4KvU
QDBMのC用APIにはvistaがあるけどC++用APIには無いのは何故?

166 :NAME IS NULL:2005/06/26(日) 03:08:08 ID:nz35kzcL
QDBMのODDOC型にunsigned intのポインタを加えようとして、
ODDOC構造体にunsigned int *num;を書き加えて、
アプリケーション側でODDOC->num = unsigned intのポインタ;
と書いたのだけど、
odput内でODDOC->numを書くとセグメンテーション違反になってしまう。

oddocopen();を、unsigned int *numを引数として受け取る様にして、この関数内でODDOC->num = num;
とする方法も試してみたけど、そうするとポインタの代入が上手く行かない。
oddoc *doc;
unsigned int num[10];
cout << num << endl;
doc = oddocopen(URI,num);
cout << doc->num << endl;
で、numとdoc->numの値が異なってしまう。

原因分かる方居たら教えてくれませんか?

167 :NAME IS NULL:2005/06/27(月) 15:46:55 ID:???
古いライブラリとリンクしてるからじゃないの?

168 :166:2005/06/29(水) 10:45:23 ID:cQGEb3Tt
>>167
reboot後にコンパイルしても変わらないし、make uninstall して make installしても変わらないし、
変更が一部反映されてるからそれは大丈夫だと思うんだけど。

話は変わるけど、
c++でvistaを使いたくて、
アプリケーションのソースコードに#include<vista.h>を書いてみたり、
xvilla.hやxvilla.ccのvilla.hの部分をvista.hに変えて見たりしたけど
そのアプリケーションを実行してもディレクトリじゃなくvilla用のファイルが生成されてしまう。
qdbmのメーリングリストに参加しようとしても何故かメールが送信出来ないし。
qdbmのマニュアルのサンプルコードをvilla.hからvista.hに変えて使ってみると
ちゃんとディレクトリ生成してvistaとして動くんだけど。
xvista.hというファイルは無いし。
C++ではvistaは使えない仕様なのかな?

169 :166:2005/06/30(木) 13:10:03 ID:???
インストール時に発生していた問題に応急処置をしていた事が原因でした_no

170 :NAME IS NULL:2005/07/21(木) 05:47:53 ID:???
バークレーDBをperlで使っていますがファイルロックがよくわかりません。
>>142氏のリンク先を何度読んでも理解できず…
どなたか簡単に解説をお願いできないでしょうか。

171 :NAME IS NULL:2005/07/21(木) 06:00:25 ID:???
すんまそん…、普通にperldocに日本語で書いてありました。
お時間の許す方は煽ってやってください orz

172 :NAME IS NULL:2005/08/06(土) 10:21:45 ID:???
>これを性能指標とするならば、例えば100万個のレコードを格納するためには50万要素のバケット配列が求められる。
>バケット配列の各要素は4バイトである。
>すなわち、2MバイトのRAMが利用できれば100万レコードのデータベースが構築できる。
QDBMのマニュアルから引用。
これって、バケット配列は2Mしか使わなくてもハッシュが重複してるレコードが50万あるからその為にメモリ使って
2Mバイトじゃ済まないよね?
重複レコードをどう扱ってるのか知らないけど、ポインタとprimary keyが要るから
バケット配列と合わせて合計6Mは使いそうな気がするんですが。

173 :NAME IS NULL:2005/08/06(土) 20:28:04 ID:???
> ハッシュ値の衝突はセパレートチェーン法で管理する。チェーンのデータ構造は二分探索木である。

という記述と、

> レコード部はバケット部の直後からファイルの末尾までを占め、各レコードの以下の情報を持つ要素が記録される。
> 1. フラグ : `int' 型の整数である。
> 2. キーの第二ハッシュ値 : `int' 型の整数である。
> 3. キーのサイズ : `int' 型の整数である。
> 4. 値のサイズ : `int' 型の整数である。
> 5. パディングのサイズ : `int' 型の整数である。
> 6. 左の子の位置 : `int' 型の整数である。
> 7. 右の子の位置 : `int' 型の整数である。
> 8. キーの実データ : キーのサイズで定義される長さを持つ一連のバイトである。
> 9. 値の実データ : 値のサイズで定義される長さを持つ一連のバイトである。
> 10. パディング : 値のサイズとアラインメントにより算出される長さを持つ一連のバイトである。

という記述から判断するに、重複レコードのポインタはファイル内に記録してあるっぽい



174 :NAME IS NULL:2005/09/29(木) 22:43:37 ID:???
QDBM以外には、面白データベースは無いのかね?


175 :NAME IS NULL:2005/12/03(土) 11:51:57 ID:???
データベースそんなに更新しないならcdb最強でFA?

176 :NAME IS NULL:2005/12/17(土) 22:53:22 ID:???
sleepcatライセンス面倒だな。orz

177 :test:2005/12/20(火) 13:38:10 ID:???
test

178 :test:2005/12/20(火) 13:39:12 ID:BChHfMfC
test

179 :NAME IS NULL:2005/12/21(水) 21:06:51 ID:???
あ〜、本日は hoge なり。

180 :NAME IS NULL:2005/12/22(木) 00:58:46 ID:???
そろそろdbopenします。
やっぱりver1が落ち着く。

181 :NAME IS NULL:2006/02/12(日) 16:27:05 ID:???
oracleがsleepycat買収交渉
http://www.itmedia.co.jp/news/articles/0602/11/news007.html

182 :NAME IS NULL:2006/02/15(水) 15:32:40 ID:???
Oracle、オープンソースデータベースのSleepycatを買収
http://www.itmedia.co.jp/news/articles/0602/15/news015.html

183 :NAME IS NULL:2006/02/17(金) 22:02:46 ID:???
ついにBSDにオラクル標準装備か。

184 :NAME IS NULL:2006/02/18(土) 19:11:15 ID:???
Berkeley DBとBSDは全く関係ねーだろ。

185 :NAME IS NULL:2006/03/10(金) 02:11:43 ID:vhSvdEFS
Berkeley DB メールで値段聞いても無視だったよ なんなんだろうwww

186 :NAME IS NULL:2006/03/10(金) 17:37:12 ID:???
ボラクルに買収されたので人居ません。

187 :NAME IS NULL:2006/03/21(火) 11:52:13 ID:fF1wwRiT
ボラクルに買収されたから使うのやめよ。。
ボラクル調子こきすぎてなんかむかついてきたぞ。。

BDBオープンソースじゃなくなる日も近いのかな。。

188 :NAME IS NULL:2006/03/21(火) 12:25:31 ID:???
その時はGPL化されてFedora DBになりますからご心配無く。

189 :NAME IS NULL:2006/03/21(火) 14:17:27 ID:???
FSFが買い取って、GNU/DBじゃないの?

190 :NAME IS NULL:2006/03/21(火) 14:23:08 ID:???
FSFにはgdbmがあるからBDBを買い取る理由がない。
Red Hatは自社のLinuxのパッケージデータベースにBDBを使ってる。
おそらくBDBユーザ数としては最大。

191 :NAME IS NULL:2006/03/25(土) 02:49:25 ID:???
QDBMがACIDサポートすればBDB要らなくなるかも

192 :NAME IS NULL:2006/04/02(日) 13:28:55 ID:???
オラクルは InnoDB も買収したが、MySQL の買収には失敗したようだな。

193 :NAME IS NULL:2006/05/18(木) 23:40:55 ID:237FeIJl
Berkeley DBでデジカメの画像をデータとして入れる時はどうしたらいいの?
教えて下さい。


194 :NAME IS NULL:2006/05/19(金) 09:43:32 ID:???
いや、普通に入れれば入ると思うんだけど。
もうちょっと具体的にどんな言語を使うとかどういう使い方をするとか詳しく。

195 :193:2006/05/19(金) 21:35:29 ID:???
>>194
有り難うございます。

いくつか見たサンプルが、いずれもテキスト形式のデータだったので、
バイナリデータは何等かのかたちでエンコードする必要が有るのかなと
思い、確認をしないまま質問してしまいました。

FreeBSD 6.1Rでgccを使っています。
今は郵政公社の郵便番号データをサンプルデータとして、Cで簡単な
プログラムを書きながら使い方を覚えようとしている途中なので、
具体的にこういう使い方をしたいと言えるレベルに達していません。
一応、画像データ、撮影時の情報、データ加工の内容等を
リンクさせて見たいなと思っています。

画像データは結構サイズが大きいのですが(RAWデータだと数十M位)
データの取り扱いで何か注意しなければいけない事など有りますか?

もしよろしければ注意点などお願いします。


196 :NAME IS NULL:2006/05/21(日) 17:06:32 ID:???
画像ファイルはどこかのディレクトリに置いといて、
パスだけDBに入れるってのもアリかもよ。
取り回しが面倒になる欠点はあるが、万一DBが壊れた場合の
復旧とか考えるとそっちの方が安心。


197 :193:2006/05/21(日) 22:50:10 ID:???
>>196

先ずはパスを管理するデータベースを作ってみようと思います。
色々質問をしてすみませんでした。


画像データのサイズは数メガの間違いです。

198 :NAME IS NULL:2006/06/16(金) 05:29:45 ID:???
3年掛かりでやっと200レスか。まったりしててよきかな。

199 :NAME IS NULL:2006/06/16(金) 06:54:40 ID:???
あぼーん

200 :NAME IS NULL:2006/06/16(金) 11:01:21 ID:RZPI+bcx
200get!

201 :NAME IS NULL:2006/06/16(金) 15:35:02 ID:???
もう3年になるのかよ

202 :NAME IS NULL:2006/06/17(土) 02:20:46 ID:???
とっつきにくいからねえ。使ってる香具師も皆無だし、マヌアル本も皆無。

203 :NAME IS NULL:2006/06/17(土) 15:22:11 ID:UKEJjsFA
>>202
漏れのことを忘れないでくり。
職場のweb上の会議室予約のデータベースに使ってる。
速い、手軽、イイー。

204 :NAME IS NULL:2006/06/18(日) 15:19:22 ID:???
そーすをup汁。
php当たりから呼んでるとか?

205 :NAME IS NULL:2006/06/19(月) 07:38:05 ID:???
>>204
相談に乗りますよ。検索→読みモジュールと書き込みモジュールとあるが
それぞれ20万でどうよ。

206 :NAME IS NULL:2006/06/19(月) 11:01:00 ID:???
perl廚じゃね?

207 :NAME IS NULL:2006/06/19(月) 19:16:56 ID:???
perl cgiで二十万はボッタクリだな。
ハロワに月収18万で募集掛けたほうが安く上がる。

208 :205:2006/06/20(火) 02:39:48 ID:tLdLBl3Q
>>206
その通り。モジュール類だけ挙げるとこんなんだす。
#!/usr/bin/perl
use Fcntl;
use SDBM_File;
use Time::Local;
require "cgi-lib.pl";
require "jcode.pl";
&ReadParse;

>>207
吹っかけただけだす。そらあんた、5〜6マソで十分よ。

209 :NAME IS NULL:2006/06/25(日) 15:14:50 ID:1pslgYqg

499 :心得をよく読みましょう :2006/04/11(火) 20:08:43 ID:YyJFkPDl
この文章を見た人には3日後に身の回りで何かとても悪い事が起きます
悪いことを起きなくさせるためにはコレと同じ文を
2日以内に違う所へ5回書き込んでください5書き込まなかった
女子中学生が書き込み見た後
3日後に死にました



210 :NAME IS NULL:2006/06/27(火) 21:19:12 ID:Q9ml7vJg
やっぱフリーのデータベースなんか流行るとデータベースソフト屋さんは
困っちゃうから、>>209みたいな嵐が入るんだろうな。

211 :NAME IS NULL:2006/06/28(水) 01:16:59 ID:???
無料なのにお金が取られることを理解しないクライアントは多いからね。
無料ソフトだと、開発費やサポートも無料か激安になりやすい。

212 :NAME IS NULL:2006/06/28(水) 08:40:11 ID:???
クライアントが有料DBのライセンス料を知っていて、かつ技術畑出身だったりする
とまだいいんだけど、オ−プン系技術者募集と称して
「タダソフトみつくろって組み合わせるだけだろ?もったいつけんじゃねえよ」
みたいなとこも(ry

213 :NAME IS NULL:2006/07/02(日) 08:02:33 ID:???
本当にダウンロードしただけのやつにぼったくりの請求する香具師も居るから、客には見分けつかないし。
でも無料ソフトに人件費やサポート料払ってたら、サポート付きの有料ソフトのほうがコストが安かったのは良くある話。

逆にオプソビジネスって、セールソフトを超える利益は見込めない罠。

214 :NAME IS NULL:2006/08/02(水) 17:37:26 ID:qDpQ3Gjv
>file hoge.db すると、
Berkeley DB (Btree, version 6, native byte-order)
と返ってくるファイルがあるのですが、どのようなkeyがあるのか
わかりません。

このhoge.dbから、全てのkeyと値のペアを取り出したいのですが、
どのようにすればいいのでしょうか?
Cかperlでお願いします。


215 :214:2006/08/02(水) 18:15:40 ID:???
use Fcntl;
use DB_File;

tie my %db, 'DB_File' , "hoge.db", O_RDONLY, 0644, $DB_BTREE or die "$!\n";

foreach (keys %db) {
  print $_, "\n";
}

↑だと

Inappropriate file type or format

こんなエラーが出ます。



216 :214:2006/08/03(木) 10:45:05 ID:???
あ、ゴメンできたからいいや


217 :NAME IS NULL:2006/08/06(日) 05:27:05 ID:???
どう出来たかぐらい示せばいいのに。
自分だけ良ければいいという自己中ですか?

218 :NAME IS NULL:2006/08/25(金) 16:31:23 ID:???
保守


219 :NAME IS NULL:2006/08/31(木) 12:12:41 ID:???
db_statとかdb_dumpとか使えばよろしい

220 :NAME IS NULL:2006/11/29(水) 21:23:38 ID:rpmcvwmj
update!

221 :NAME IS NULL:2006/12/14(木) 10:20:25 ID:0UD4Qre0
臣堕駄だ陀雫
臣 心 仲間 ありがとう
心 臣 神 仲間



222 :本田:2006/12/27(水) 19:24:32 ID:E124N8nx
>>93
>Berkeley DBにあるRECNOってドンなの?
>HASHとかBTREEならちょっとはわかるんだが。
>実際どういう風に使うもんなんだろ...

テキストエディタの行を管理するのにに使われてる。

>The Berkeley Vi Editor Home Page
http://www.bostic.com/vi/
http://www.bostic.com/keith.html
http://www.onlamp.com/pub/a/bsd/2000/03/24/bostic.html

223 :NAME IS NULL:2007/01/21(日) 22:04:08 ID:???
SkipDB
http://dekorte.com/projects/opensource/SkipDB/

224 :本田:2007/01/22(月) 22:18:44 ID:oPb/cak0
>TDBM -- A Simple, High-Performance Database With Atomic Transactions
http://72.14.235.104/search?q=cache:HjphsOxDNr0J:www.dss.ca/dss/tech/tdbm.html+tdbm&hl=ja&gl=jp&ct=clnk&cd=4

http://www.netsw.org/database/hashfile/
> tdbm-1.2.tar.gz 08-Feb-2002 21:10 153k
>[TXT] tdbm-1.2.tar.gz.BLURB 08-Feb-2002 21:10 1k

225 :NAME IS NULL:2007/02/16(金) 17:03:13 ID:KreXA7+o
BerkeleyDB.pm からトランザクションサブシステムを有効にしたDBを扱ってるのだけど、
どれだけ使っていてもログファイルが log.0000000001 から進まない。
これってどういう状況なのでしょう。

DB_ENVなどに何か良からぬフラッグが渡っているのではないかと BerkeleyDB.pm の
関連ソースを眺めてもそれらしいことをしている部分はないし、或いは berkeley db 本体の
コンパイル時に何か問題があったのでしょうか。。。

どなたか詳しいかたご助言を。


226 :NAME IS NULL:2007/02/17(土) 10:06:33 ID:???
ログ管理は別ソフトなんじゃないの?
syslogdみたいなのとかさ。

227 :NAME IS NULL:2007/02/18(日) 11:40:30 ID:???
自前でログ管理の仕組みは無い。
ただテキストファイルにログを吐く単純な機能しかない。

228 :225:2007/02/19(月) 14:34:34 ID:???
どうも mod_perl 環境で動かしているのが色々と意図しない動きの原因のような気が…
引き続きさっぱり分からないです…


229 :NAME IS NULL:2007/02/19(月) 15:35:38 ID:???
mod_perlからだと多重で呼ばれると思うが、DB壊れないの?

230 :NAME IS NULL:2007/02/19(月) 16:03:40 ID:???
>>226 >>227
ログ違いじゃね?
>>225 の言ってるのは障害復旧時とかに使うトランザクションログのことだべさ?

231 :225:2007/02/22(木) 13:32:05 ID:???
>>229
普通に書くとトランザクションがオープンできないですね。
普通に書いて動くようにするために mod_db4 なるものがあるのだけど、
いきなりコンフィグが通らなくて、その先あらゆる苦労をしそうだったので却下しました。

232 :225:2007/02/22(木) 13:35:20 ID:???
それで、今は
  $db=BerkeleyDB::Hash->new(-Filename =>$f, -Flags=>DB_JOINENV);
  $db->get_env()->txn_begin();
が通るように BerkeleyDB.xs を改造中なのだけど、これが……

233 :NAME IS NULL:2007/02/22(木) 15:52:55 ID:???
コードを示さずに独り言をつぶやかれてもなあ。

と、コードを示されてもわからなそうな俺が独り言をつぶやいてみました。

234 :NAME IS NULL:2007/02/23(金) 11:35:12 ID:???
まあ普通はMySQL経由でbdb4使ったりするね。

235 :NAME IS NULL:2007/04/12(木) 14:48:44 ID:???
dirファイル見て吹いたw
---
[depot]^@^K

∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´∀`)< NDBM Compatibility
( ) \_________
| | |
(___)_)



236 :NAME IS NULL:2007/06/03(日) 17:09:56 ID:???
Berkeley DB の source みてるんだけどさ、off-page / on-page とか duplicates とかってなに?? 意味和姦ね。おしえて。

237 :NAME IS NULL:2007/07/24(火) 14:38:01 ID:???
OpenLDAP2.3stableに合うBDBがわからねぇYO(´・ω・`)

238 :NAME IS NULL:2008/03/31(月) 10:26:13 ID:???
息の長いスレだな・・・


239 :NAME IS NULL:2008/04/01(火) 00:55:14 ID:???
何ヶ月レスがつかないか見守ってたのにさ!
プンプン

240 :NAME IS NULL:2008/07/10(木) 13:37:36 ID:???
勉強しに来ました

241 :NAME IS NULL:2008/07/10(木) 14:58:29 ID:???
最近はBerkeley DBやgdbmではなく、sqlite使う例も増えているのかな?

242 :NAME IS NULL:2008/07/18(金) 13:04:32 ID:+Axli2lw
>>93
シーケンシャルデータ。
大部分のデータは末尾に追加するだけだから
シーケンシャルデータベースの方がスペース効率がいい。

243 :NAME IS NULL:2008/07/23(水) 18:08:38 ID:???
BerkeleyDBであそんでみたく
cpanモジュールを
install BerkeleyDB
してみたところ
BerkeleyDB.xs:74:2: #error db.h is from Berkeley DB 1.x - need at least Berkeley DB 2.6.4
なるエラーが出てとまってしまいました。
Berkeley DBのバージョンが低いようなのですがどうやってバージョンアップすればよいでしょうか。

環境は
さくらのスタンダードプランでやっています
FreeBSD 6.1
perl 5.8.8
BerkeleyDB バージョン不明(※バージョン調べ方わかるかたいましたら教えて頂けると幸いです)

244 :NAME IS NULL:2008/10/29(水) 22:37:05 ID:qdal0jl9
dbm_fetch で取得されるデータはfreeしてあげる必要があるんでしょうか??

qdbmでは、「`dptr' の指す領域はハンドルに関連づけられて確保され、
同じハンドルに対して次にこの関数を呼び出すか、ハンドルを閉じるまで、
有効なデータを保持する。」

となっていますが、gdbmではプログラマの責任でfreeしろと書いてあります。

移植性のあるコードを書くためには、どのライブラリを使ってるのかで
処理をわけるべきなんでしょうか?

245 :NAME IS NULL:2009/01/19(月) 23:14:06 ID:aLajSnjE
RDBMSのようにkeyに複数のvalueを当てるのはどうすればよいのでしょうか。

246 :NAME IS NULL:2009/01/20(火) 06:39:40 ID:???
リストでも突っ込め

247 :NAME IS NULL:2009/04/07(火) 21:42:34 ID:???
データ突っ込む時のキーってどうやって決めてる?
R_LASTでseqして得られたキーにインクリメントしてputって感じ?
それともデータのハッシュ値とかunix時間でも突っ込むべき?

248 :本田:2009/04/14(火) 23:52:37 ID:2S7IsnOh
Oracle Berkeley DB Product Family
http://www.oracle.com/technology/products/berkeley-db/index.html
The Oracle Berkeley DB family of open source, embeddable databases provides developers with fast, reliable, local persistence with zero administration.
Often deployed as "edge" databases, the Oracle Berkeley DB family provides very high performance, reliability, scalability, and availability for application use cases that do not require SQL.

249 :ブラックマジシャン:2009/05/11(月) 19:55:02 ID:Po/EPjmw
岐阜県中津川市立福岡中学校同窓会SNS


250 :NAME IS NULL:2010/02/27(土) 08:08:24 ID:aPiEjk1k
カキコミテスト

251 :NAME IS NULL:2010/03/03(水) 10:33:04 ID:???
RPM5のDBにsqliteを使うかBerkeleyを使うか悩んでるんだけど、どっちがお薦めですか?

59 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)