\section{\module{dumbdbm} ---
         可搬性のある DBM 実装}

\declaremodule{standard}{dumbdbm}
\modulesynopsis{単純な DBM インタフェースに対する可搬性のある実装。}

\index{databases}

\begin{notice}
\module{dumbdbm} モジュールは、 \refmodule{anydbm} が安定なモジュールを
他に見つけることができなかった際の最後の手段とされています。
\module{dumbdbm} モジュールは速度を重視して書かれているわけではなく、
他のデータベースモジュールのように重い使い方をするためのものでは
ありません。
\end{notice}

\module{dumbdbm} モジュールは永続性辞書に類似したインタフェースを
提供し、全て Python で書かれています。
\refmodule{gdbm} や \refmodule{bsddb} といったモジュールと異なり、
外部ライブラリは必要ありません。他の永続性マップ型のように、
キーおよび値は常に文字列でなければなりません。

このモジュールでは以下の内容を定義してします:

\begin{excdesc}{error}
I/O エラーのような dumbdbm 特有のエラーの際に送出されます。
不正なキーを指定したときのような、一般的な対応付けエラーの際には
\exception{KeyError} が送出されます。
\end{excdesc}

\begin{funcdesc}{open}{filename\optional{, flag\optional{, mode}}}
dumbdbm データベースを開き、 dubmdbm オブジェクトを返します。
\var{filename} 引数はデータベースファイル名の雛型 (特定の拡張子を
もたないもの) です。dumbdbm データベースが生成される際、
\file{.dat} および \file{.dir} の拡張子を持ったファイルが生成されます。

オプションの \var{flag} 引数は現状では無視されます; データベースは
常に更新のために開かれ、存在しない場合には新たに作成されます。

オプションの \var{mode} 引数は \UNIX{} におけるファイルのモードで、
データベースを作成する際に使われます。デフォルトでは 8 進コード
の \code{0666} になっています (umask によって修正を受けます)。
\versionchanged[\var{mode} 引数は以前のバージョンでは無視されます]{2.2}
\end{funcdesc}


\begin{seealso}
  \seemodule{anydbm}{\code{dbm} 形式のデータベースに対する汎用インタフェース。}
  \seemodule{dbm}{DBM/NDBM ライブラリに対する同様のインタフェース。}
  \seemodule{gdbm}{GNU GDBM ライブラリに対する同様のインタフェース。}
  \seemodule{shelve}{非文字列データを記録する永続化モジュール。}
  \seemodule{whichdb}{既存のデータベースの形式を判定するために使われるユーティリティモジュール。}
\end{seealso}


\subsection{Dumbdbm オブジェクト \label{dumbdbm-objects}}

\class{UserDict.DictMixin} クラスで提供されているメソッドに加え、
\class{dumbdbm} オブジェクトでは以下のメソッドを提供しています。

\begin{methoddesc}[dumbdbm]{sync}{}
ディスク上の辞書とデータファイルを同期します。このメソッドは
\class{Shelve} オブジェクトの \method{sync} メソッドから
呼び出されます。
\end{methoddesc}
