ldbThe Samba Project — 軽量データベースライブラリ
#include <ldb.h>
ldb は軽量の埋め込み型データベースライブラリーおよび API である。 LDAP と非常に良く似たプログラミングインタフェースにより、データを tdb(3) データベースもしくは実際の LDAP データベースに格納できる。
tdb バックエンドと共に使われる場合、ldb はデータベースデーモンを 必要としない。その代わり、ldb 関数へのコールは ldb ライブラリにより 即時に処理され、データベースに対して直接 I/O が行われる。その上、 オペレーティングシステムのバイト単位のロック機構を使って、複数の 読み書きを同時に実行できる。これにより API へのオーバーヘッドが 非常に少なくて済む。時には伝統的な LDAP アーキテクチャを使った 実行に比べて 10 倍以上の速度が出ることもある。
データベースの分類的には、ldb は(バークレー DB や tdb のような) キー/値のペアを扱うデータベースと本格的な LDAP の中間に位置する。 ldb は LDAP のような構造属性志向の API と良好なインデックス機能 を備えており、軽量データベースを使った非常に洗練された アプリケーションを作れる。その際、重厚な LDAP システムを使うための 管理上のオーバーヘッドを必要としない。
ldb データベースを操作するために、数多くの有用なコマンドラインツール が用意されている。これらのコマンドは、ldap のコマンドラインツール群 とよく似た形式を持っている。
tdb バックエンドにおけるデフォルトの操作モードでは、ldb は 「スキーマを持たない LDAP」のようにも見える。デフォルトでは ldb はスキーマを必要としない。これにより、データベースを構築するのに伴う 複雑さが大幅に緩和されている。アプリケーションが成長するのに伴って その構成は複雑さを増してゆくが、ldb がオプションで提供するスキーマ とよく似た属性を使うことで、優位性を得ることができる。また、既存の ldb コードを使いながら、完全な LDAP API を使う方向に移行してゆく ことも可能である。
ldb を使うのが初めてなら、まずは ldbsearch(1) とldbedit(1) の マニュアルに目を通した上で、ローカルのデータベースを作るところから 始めることを推奨する。その後、ldb_connect(3) と ldb_search(3) の マニュアルを参照されたい。
ldbsearch(1) - コマンドラインの ldb 検索ユーティリティー
ldbedit(1) - 自分の好きなエディターで ldb データベースの全部または一部を編集する
ldbadd(1) - LDIF 形式の入力を使って ldb データベースにレコードを追加する
ldbdel(1) - ldb データベースからレコードを削除する
ldbmodify(1) - LDIF 形式の入力を使って ldb データベースのレコードを修正する
ldb_connect(3)
- ldb バックエンドに接続する
ldb_search(3)
- データベース検索を行う
ldb_add(3)
- データベースにレコードを追加する
ldb_delete(3)
- データベースからレコードを削除する
ldb_modify(3)
- データベース内のレコードを修正する
ldb_errstring(3)
- 最後の操作で発生した拡張エラー情報を取り出す
ldb_ldif_write(3)
- LDIF 形式のメッセージを書き込む
ldb_ldif_write_file(3)
- LDIF 形式のメッセージをファイルに書き出す
ldb_ldif_read(3)
- LDIF 形式のメッセージを読み込む
ldb_ldif_read_free(3)
- ldb_ldif_read() の結果を開放する
ldb_ldif_read_file(3)
- LDIF 形式のメッセージをファイルから読み込む
ldb_ldif_read_string(3)
- LDIF 形式のメッセージを文字列から読み込む
ldb_msg_find_element(3)
- ldb_message の中から要素を見つける
ldb_val_equal_exact(3)
- 2つの ldb_val 構造体を比較する
ldb_msg_find_val(3)
- 要素を値により検索する
ldb_msg_add_empty(3)
- ldb_message に空のメッセージ要素を追加する
ldb_msg_add(3)
- ldb_message に空でないメッセージ要素を追加する
ldb_msg_element_compare(3)
- 2つの ldb_message_element 構造体を比較する
ldb_msg_find_int(3)
- ldb_message から一個の整数値を返す
ldb_msg_find_uint(3)
- ldb_message から一個の符号なし整数値を返す
ldb_msg_find_double(3)
- ldb_message から一個の double 値を返す
ldb_msg_find_string(3)
- ldb_message から一個の文字列を返す
ldb_set_alloc(3)
- ldb で使用するメモリ確保関数をセットする
ldb_set_debug(3)
- ldb で使用するデバッグハンドラー関数をセットする
ldb_set_debug_stderr(3)
- stderr 出力を使うデバッグハンドラー関数をセットする
ldb は Andrew Tridgell によって書かれた。
問題を報告したり何らかの提案をしたい場合は、 http://ldb.samba.org/ Web サイトで現在の連絡先と メンテナー情報を確認してほしい。
ldb は the GNU Lesser General Public License version 2 およびそれ以降 の元にリリースされている。ライセンスの詳細は COPYING ファイルを参照のこと。