# 7.14 `dumbdbm` -- 可搬性のある DBM 実装

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

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

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

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

`open`( | filename[, flag[, mode]])

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

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

  オプションの mode 引数は Unix におけるファイルのモードで、 データベースを作成する際に使われます。デフォルトでは 8 進コード の `0666` になっています (umask によって修正を受けます)。 バージョン2.2 以降で変更された 仕様: mode 引数は以前のバージョンでは無視されます

参考資料:

`anydbm`モジュール:
  `dbm` 形式のデータベースに対する汎用インタフェース。.

`dbm`モジュール:
  DBM/NDBM ライブラリに対する同様のインタフェース。.

`gdbm`モジュール:
  GNU GDBM ライブラリに対する同様のインタフェース。.

`shelve`モジュール:
  非文字列データを記録する永続化モジュール。.

`whichdb`モジュール:
  既存のデータベースの形式を判定するために使われるユーティリティモジュール。.