summaryrefslogtreecommitdiff
path: root/qdbm/misc/index.ja.html
blob: 65ea073c0b51c4c36ccc57fe97435e07227982c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="Mikio Hirabayashi" />
<link rel="contents" href="./" />
<link rel="icon" href="icon16.png" />
<link rev="made" href="mailto:mikio@users.sourceforge.net" />
<title>データベースライブラリ QDBM</title>
<style type="text/css">html { margin: 0em 0em; padding: 0em 0em; background: #eeeeee none; }
body { margin: 2em 2em; padding: 0em 0em;
  background: #eeeeee none; color: #111111;
  font-style: normal; font-weight: normal; }
h1 { margin-top: 1.8em; margin-bottom: 1.3em; font-weight: bold; }
h2 { margin-top: 1.8em; margin-bottom: 1.1em; font-weight: bold;
  border-left: solid 0.6em #445555; border-bottom: solid 1pt #bbbbbb;
  padding: 0.5em 0.5em; width: 60%; }
h3 { margin-top: 1.8em; margin-bottom: 0.8em; font-weight: bold; }
hr { margin-top: 2.5em; margin-bottom: 1.5em; height: 1pt;
  color: #999999; background-color: #999999; border: none; }
div.note,div.navi { text-align: right; }
div.logo { text-align: center; margin: 3em 0em; }
div.logo img { border: inset 2pt #ccccdd; }
p { margin: 0.8em 0em; line-height: 140%; }
p,dd { text-indent: 0.8em; }
div,pre { margin-left: 1.7em; margin-right: 1.7em; }
pre { background-color: #ddddee; padding: 0.2em; border: 1pt solid #bbbbcc; font-size: smaller; }
kbd { color: #111111; font-style: normal; font-weight: bold; }
a { color: #0022aa; text-decoration: none; }
a:hover,a:focus { color: #0033ee; text-decoration: underline; }
a.head { color: #111111; text-decoration: none; }
table { padding: 1pt 2pt 1pt 2pt; border: none; margin-left: 1.7em; border-collapse: collapse; }
th { padding: 1pt 4pt 1pt 4pt; border-style: none;
  text-align: left; vertical-align: bottom; }
td { padding: 1pt 4pt 1pt 4pt; border: 1pt solid #333333;
  text-align: left; vertical-align: top; }
ul,ol,dl { line-height: 140%; }
dt { margin-left: 1.2em; }
dd { margin-left: 2.0em; }
ul.lines { list-style-type: none; }
@media print {
  html,body { margin: 0em 0em; background-color: #ffffff; color: #000000; }
  h1 { padding: 8em 0em 0.5em 0em; text-align: center; }
  h2 { page-break-before: always; }
  div.note { text-align: center; }
  div.navi,div.logo { display: none }
  hr { display: none; }
  pre { margin: 0.8em 0.8em; background-color: #ffffff;
    border: 1pt solid #aaaaaa; font-size: smaller; }
  a,kbd { color: #000000; text-decoration: none; }
  h1,h2,h3 { font-family: sans-serif; }
  p,div,li,dt,dd { font-family: serif; }
  pre,kbd { font-family: monospace; }
  dd { font-size: smaller; }
}
</style>
<script type="text/javascript">function startup(){
  var elem = document.getElementById("headline");
  if(elem){
    var now = new Date();
    if((now.getFullYear() + now.getMonth() + now.getDate() + now.getHours()) % 4 == 0){
      var text;
      switch((now.getMonth() + now.getDate() + now.getMinutes()) % 24){
      default: text = "QDBM: 高速資料基盤管理器"; break;
      case 1: text = "QDBM: NDBMとは違うのだよ、NDBMとは!"; break;
      case 3: text = "QDBM: QDBMは伊達じゃないっ!"; break;
      case 5: text = "QDBM: 敢えて言おう、高速であると!"; break;
      case 7: text = "QDBM: しかし、私もDBMのはずだ!"; break;
      case 9: text = "QDBM: 今の私はQDBMだ。それ以上でもそれ以下でもない。"; break;
      case 11: text = "QDBM: 私はBerkeleyとは関係ない。私はいつも一人のDBMだった。"; break;
      case 13: text = "QDBM: 見せてもらおうか!Berkeleyのデータベースの性能とやらを!"; break;
      case 15: text = "QDBM: 悲しいけどこれ、DBMなのよね。"; break;
      case 17: text = "QDBM: 新しい時代を創るのはSQLではない!!"; break;
      case 19: text = "QDBM: えぇぃ、マイナーチェンジのくせにっ!"; break;
      case 21: text = "QDBM: よくもこんなくたびれたDBMが現役でいられるものだ。"; break;
      case 22: text = "QDBM: 見える!私にもレコードが見える"; break;
      case 23: text = "QDBM: そんなRDBみたいな口の利き方、おやめなさい!"; break;
      }
      elem.firstChild.nodeValue = text;
    }
  }
}
</script>
</head>

<body onload="startup();">

<h1 id="headline">QDBM: Quick Database Manager</h1>

<div class="note">Copyright (C) 2000-2007 Mikio Hirabayashi</div>
<div class="note">Last Update: Thu, 26 Oct 2006 15:00:20 +0900</div>
<div class="navi">[<a href="index.html" hreflang="en">English</a>/<span class="void">Japanese</span>]</div>

<div class="logo"><img src="logo.png" alt="QDBM" width="300" height="110" /></div>

<hr />

<h2><a name="overview" id="overview" class="head">概要</a></h2>

<p>QDBMはデータベースを扱うルーチン群のライブラリです。データベースといっても単純なもので、キーと値のペアからなるレコード群を格納したデータファイルです。キーと値は任意の長さを持つ一連のバイト列であり、文字列でもバイナリでも扱うことができます。テーブルやデータ型の概念はありません。レコードはハッシュ表またはB+木で編成されます。</p>

<p>ハッシュ表のデータベースでは、キーはデータベース内で一意であり、キーが重複する複数のレコードを格納することはできません。このデータベースに対しては、キーと値を指定してレコードを格納したり、キーを指定して対応するレコードを削除したり、キーを指定して対応するレコードを検索したりすることができます。また、データベースに格納してある全てのキーを順不同に一つずつ取り出すこともできます。このような操作は、UNIX標準で定義されているDBMライブラリおよびその追従であるNDBMやGDBMに類するものです。QDBMはDBMのより良い代替として利用することができます。</p>

<p>B+木のデータベースでは、キーが重複する複数のレコードを格納することができます。このデータベースに対しては、ハッシュ表のデータベースと同様に、キーを指定してレコードを格納したり取り出したり削除したりすることができます。レコードはユーザが指示した比較関数に基づいて整列されて格納されます。カーソルを用いて各レコードを昇順または降順で参照することができます。この機構によって、文字列の前方一致検索や数値の範囲検索が可能になります。また、B+木のデータベースではトランザクションが利用できます。</p>

<p>QDBMはCで記述され、C、C++、Java、PerlおよびRubyのAPIとして提供されます。QDBMはPOSIX準拠のAPIを備えるプラットフォームで利用できます。QDBMはGNU Lesser General Public Licenseに基づくフリーソフトウェアです。</p>

<hr />

<h2>文書</h2>

<p>以下の文書をお読みください。ソースパッケージにも同じものが含まれています。</p>

<ul>
<li><a href="spex-ja.html">基本仕様書</a></li>
<li><a href="xspex-ja.html">C++用API仕様書</a></li>
<li><a href="jspex-ja.html">Java用API仕様書</a></li>
<li><a href="plspex-ja.html">Perl用API仕様書</a></li>
<li><a href="rbspex-ja.html">Ruby用API仕様書</a></li>
<li><a href="cgispex-ja.html">CGIスクリプト仕様書</a></li>
<li><a href="tutorial-ja.html">チュートリアル</a></li>
</ul>

<hr />

<h2>ダウンロード</h2>

<p>以下のパッケージをダウンロードしてください。Linux用バイナリパッケージは、CとC++とJavaのAPIと、CGIスクリプトを納めています。Windows用バイナリパッケージは、CとJavaのAPIと、CGIスクリプトを納めています。</p>

<ul>
<li><a href="qdbm-1.8.77.tar.gz">最新のソースパッケージ(バージョン1.8.77)</a></li>
</ul>

<ul>
<li><a href="past/">過去のバージョン</a></li>
<li><a href="rpm/">Linux用バイナリパッケージ(RPM)</a></li>
<li><a href="win/">Windows用バイナリパッケージ</a></li>
<li><a href="misc/">関連するパッケージ</a></li>
</ul>

<ul>
<li><a href="http://www.freshports.org/databases/qdbm/">FreeBSD用パッケージ</a></li>
<li><a href="http://www.blastwave.org/packages.php/qdbm">Solaris用パッケージ</a></li>
<li><a href="http://hpux.cs.utah.edu/hppd/cgi-bin/search?package=on&amp;description=on&amp;term=qdbm&amp;Search=Search">HP-UX用パッケージ</a></li>
<li><a href="http://www.sbellon.de/sw-ports.html">RISC OS用パッケージ</a></li>
</ul>

<hr />

<h2>アプリケーション</h2>

<p>QDBMのアプリケーションには以下のものがあります。もしあなたのプロジェクトがQDBMを使っているなら、連絡をいただければこのリストに追加いたします。</p>

<ul>
<li><a href="http://hyperestraier.sourceforge.net/">Hyper Estraier</a> : 平林幹雄による共同体的全文検索システム</li>
<li><a href="http://estraier.sourceforge.net/">Estraier</a> : 平林幹雄による個人用全文検索システム</li>
<li><a href="http://diqt.sourceforge.net/">Diqt</a> : 平林幹雄による多言語辞書検索システム</li>
<li><a href="http://rbbs.sourceforge.jp/">RBBS</a> : 平林幹雄によるWeb掲示板システム</li>
<li><a href="http://harvest.sourceforge.net/">Harvest</a> : Kang-Jin Leeらによる分散情報検索システム</li>
<li><a href="http://bogofilter.sourceforge.net/">Bogofilter</a> : Eric S. Raymondらによるベイズ式スパムメールフィルタ</li>
<li><a href="http://www.foo.be/mqs/">MQS</a> : Alexandre Dulaunoyによるキュー管理サービス</li>
<li><a href="http://www.zedshaw.com/projects/ruby_odeum/">Ruby/Odeum</a> : Zed A. Shawによる転置APIのRuby用インターフェイス</li>
<li><a href="http://www.surfulater.com/">Surfulater</a> : Soft As it Gets Pty社によるWebページスクラップブック</li>
<li><a href="http://mutt-ng.berlios.de/">Mutt-NG</a> : Andreas Krennmairらによるテキスト型メールクライアント</li>
<li><a href="http://smfs.sourceforge.net/">SMFS</a> : Eugene KurmaninによるSendmail用フィルタシステム</li>
<li><a href="http://dixit.sourceforge.net/">Dixit</a> : Octavian Procopiucによるルーマニア語辞書検索システム</li>
</ul>

<hr />

<h2>兄弟</h2>

<p>UNIX標準のDBMに追従したライブラリはたくさんあります。それぞれ特徴がありますので、あなたの製品にとって都合がいいものを選んでください。NDBMは古いので、もはや使う理由はないでしょう。SDBMはApache Projectで管理され、GDBMはGNU Projectで管理されています。それらは最も人気があり、また数多くテストされているものでしょう。TDBはSamba Teamで管理されており、複数同時の書き込みが可能です。TinyCDBは随時の更新はできませんが、最も高速に動作します。Berkeley DBは非常に多機能で、ACID準拠で、多くの商用製品で使われています。最後に、QDBMは性能と機能と移植性と利便性のバランスがとれた製品です。</p>

<ul>
<li><a href="bros/ndbm-bsd-5.1.m1.tar.gz">NDBM</a> : BSDによるNew DBM</li>
<li><a href="bros/sdbm-1.0.2.tar.gz">SDBM</a> : Ozan S. YigitによるSubstitute DBM</li>
<li><a href="bros/gdbm-1.8.3.tar.gz">GDBM</a> : Philip A. NelsonらによるGNU Database Manager</li>
<li><a href="bros/tdb-1.0.6.tar.gz">TDB</a> : Andrew TridgellらによるTrivial Database</li>
<li><a href="bros/tinycdb-0.75.tar.gz">TinyCDB</a> :  Michael TokarevによるConstant Database</li>
<li><a href="bros/db-4.4.20.tar.gz">Berkeley DB</a> : Sleepycat Software社によるBerkeley DB</li>
</ul>

<ul>
<li><a href="benchmark.pdf">ベンチマークテストのレポート</a></li>
<li><a href="http://tokyocabinet.sourceforge.net/">Tokyo Cabinet</a> : QDBMの後継製品</li>
</ul>

<hr />

<h2>その他の情報</h2>

<p>QDBMは<a href="http://qdbm.sourceforge.net/mikio/">平林幹雄</a>が作成しました。作者と連絡をとるには、`mikio@users.sourceforge.net' 宛に電子メールを送ってください。ただし、質問やバグレポートなど、他のユーザと共有できる話題はメーリングリストに送ってください。メーリングリストの参加方法については、`<a href="http://lists.sourceforge.net/lists/listinfo/qdbm-users">http://lists.sourceforge.net/lists/listinfo/qdbm-users</a>' を参照してください。</p>

<p>SourceForge.netにおけるプロジェクトページは `<a href="http://sourceforge.net/projects/qdbm/">http://sourceforge.net/projects/qdbm/</a>' にあります。Freshmeatにおける更新情報は `<a href="http://freshmeat.net/projects/qdbm/">http://freshmeat.net/projects/qdbm/</a>' から参照できます。</p>

<hr />

</body>

</html>

<!-- END OF FILE -->