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オブジェクトは、この再編成を使用する場合を除いて、データベースファイルの長さを短縮しません。それ以外の場合、削除されたファイルスペースは保持され、新しい(キー、値)ペアが追加されるときに再利用されます。
-
オブジェクト指向データベース
オブジェクト指向データベースは、オブジェクト指向プログラミングとリレーショナルデータベースのコレクションです。 C ++やJavaなどのオブジェクト指向プログラミング言語を使用して作成され、リレーショナルデータベースに格納できるさまざまなアイテムがありますが、オブジェクト指向データベースはそれらのアイテムに適しています。 オブジェクト指向データベースは、アクションではなくオブジェクト、およびロジックではなくデータを中心に編成されています。たとえば、リレーショナルデータベースのマルチメディアレコードは、英数字の値ではなく、定義可能なデータオブジェクトにすることができます。
-
クラウドデータベース
今日、データは、ハイブリッドクラウド、パブリッククラウド、プライベートクラウドのいずれかで、仮想環境とも呼ばれるクラウド上に具体的に保存されています。クラウドデータベースは、このような仮想化環境向けに最適化または構築されたデータベースです。クラウドデータベースにはさまざまなメリットがあります。その中には、ユーザーごとにストレージ容量と帯域幅を支払う機能があり、高可用性とともにオンデマンドのスケーラビリティを提供します。 クラウドデータベースはまた、企業にサービスとしてのソフトウェアの展開でビジネスアプリケーションをサポートする機会を提供します。