Python
 Computer >> コンピューター >  >> プログラミング >> Python

UnixデータベースへのPythonインターフェース(dbm)


Pythonの組み込みライブラリのdbmパッケージは、インターフェイスDBMスタイルのデータベースのような辞書を提供します。 dbmライブラリは、KenThompsonによって作成された単純なデータベースエンジンです。 DBMは、UNIXオペレーティングシステムで使用されるDataBase Managerの略で、ライブラリは固定サイズのバケットに単一のキー(主キー)を使用して任意のデータを格納し、ハッシュ技術を使用してキーによるデータの高速取得を可能にします。

>

dbmパッケージには次のモジュールがあります−

dbm.ndbmモジュールは、Unixの「(n)dbm」ライブラリへのインターフェースを提供します。 Dbmオブジェクトは辞書のように動作し、キーと値はバイトとして格納する必要があります。モジュールは、items()メソッドとvalues()メソッドをサポートしていません。

dbm.dumbモジュールは、完全にPythonで記述された永続的な辞書のようなインターフェイスを提供します。 dbm.gnuなどの他のモジュールとは異なり、外部ライブラリは必要ありません。他の永続的なマッピングと同様に、キーと値は常にバイトとして保存されます。

これらのモジュールは、Pythonのshelveモジュールによって内部的に使用されます。シェルフデータベースの場合と同様に、ユーザー指定のデータベース名には「.dir」という接尾辞が付いています。 dbmオブジェクトのwhichdb()関数は、現在のPythonインストールで使用可能なdbmの実装を示します。

>>> dbm.whichdb('mydbm.db')

'dbm.dumb'

>>> db = dbm.open('mydbm.db','n')
>>> db['name'] = Rajani Deshmukh'
>>> db['address'] = 'Shivajinagar Pune'
>>> db['PIN'] = '431001'
>>> db.close()

open()関数は、これらのフラグのモードを許可します-

意味
'r'
読み取り専用で既存のデータベースを開く(デフォルト)
'w'
読み取りと書き込みのために既存のデータベースを開きます
'c'
データベースを読み書き用に開き、存在しない場合は作成します
'n'
常に新しい空のデータベースを作成し、読み取りと書き込み用に開きます

dbmオブジェクトは、シェルフオブジェクトと同じように、オブジェクトのような辞書です。したがって、すべての辞書操作を実行できます。 dbmオブジェクトは、get()、pop()、append(0、およびupdate()メソッドを呼び出すことができます。次のコードは、「r」フラグを指定して「mydbm.db」を開き、キーと値のペアのコレクションを繰り返します。

>>> db = dbm.open('mydbm.db','r')
>>> for k,v in db.items():
print (k,v)
b'name' : Rajani Deshmukh'
b'address' : b'Shivajinagar Pune'
b'PIN' : b'431001'

dbmオブジェクトは、次のメソッドも提供します-

sync(): ディスク上のディレクトリとデータファイルを同期します。このメソッドは、Shelve.sync()メソッドによって呼び出されます。

close(): dbmデータベースを閉じます。

gnudbmオブジェクトには次のメソッドがあります-

firstkey()

このメソッドとnextkey()メソッドを使用して、データベース内のすべてのキーをループすることができます。このメソッドは開始キーを返します。

gdbm .nextkey(key): トラバーサルでキーに続くキーを返します。

gdbm .reorganize(): この関数はデータベースを再編成します。 gnu dbmオブジェクトは、この再編成を使用する場合を除いて、データベースファイルの長さを短縮しません。それ以外の場合、削除されたファイルスペースは保持され、新しい(キー、値)ペアが追加されるときに再利用されます。


  1. オブジェクト指向データベース

    オブジェクト指向データベースは、オブジェクト指向プログラミングとリレーショナルデータベースのコレクションです。 C ++やJavaなどのオブジェクト指向プログラミング言語を使用して作成され、リレーショナルデータベースに格納できるさまざまなアイテムがありますが、オブジェクト指向データベースはそれらのアイテムに適しています。 オブジェクト指向データベースは、アクションではなくオブジェクト、およびロジックではなくデータを中心に編成されています。たとえば、リレーショナルデータベースのマルチメディアレコードは、英数字の値ではなく、定義可能なデータオブジェクトにすることができます。

  2. クラウドデータベース

    今日、データは、ハイブリッドクラウド、パブリッククラウド、プライベートクラウドのいずれかで、仮想環境とも呼ばれるクラウド上に具体的に保存されています。クラウドデータベースは、このような仮想化環境向けに最適化または構築されたデータベースです。クラウドデータベースにはさまざまなメリットがあります。その中には、ユーザーごとにストレージ容量と帯域幅を支払う機能があり、高可用性とともにオンデマンドのスケーラビリティを提供します。 クラウドデータベースはまた、企業にサービスとしてのソフトウェアの展開でビジネスアプリケーションをサポートする機会を提供します。