Name

ldbThe Samba Project — 軽量データベースライブラリ

Synopsis

#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 ファイルを参照のこと。

日本語訳

このマニュアルページは Samba 3.2.4 - 3.5.20 対応のものである。

このドキュメントの Samba 3.2.4 - 3.5.20 対応の翻訳は

  • 堀田 倫英(hotta@net-newbie.com)

によって行なわれた。