支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • OSS-DB データベースマネジメン

はじめに

この記事では、OSS-DB Silver試験の学習の過程で得た知識を解説しております。データベースを体系的に学習するうえで、避けることのできない、基礎中の基礎といった部分の解説になるため、すべてのデータベース初学者にお読みいただける内容かと思います。初学者でなくとも、一度基礎に立ちかえりたい方なども併せて御覧いただければ幸いです。

データベースマネジメントシステムとは?

データベースマネジメントシステム(Data Base Management System : DBMS)は、データを一元管理するためのソフトウェアです。アプリケーションプログラムが直接データベースにアクセスし、データの参照や更新等を行うことで、アクセス権限のないデータを参照してしまったり、データの不整合が生じてしまったりする恐れがあり、安全性や一貫性が損なわれてしまいます。

データベースマネジメントシステムが存在しないと、データの管理をアプリケーションプログラム毎に行わなければならず、生産性も悪くなってしまいます。

データベースマネジメントシステムは、データをデータベースとして一元管理することによってデータを保護しています。また、アプリケーションプログラムがデータを参照したり、更新したりするための標準的な手段を提供しています。

データベースマネジメントシステムを導入することによって、アプリケーションプログラムとデータを独立させることが可能となります。

データベースマネジメントシステムの機能

データベースマネジメントシステムは以下のような機能を持っています。

データの機密保護を実現

データベースマネジメントシステムはデータのアクセス権限を管理し、機密保護を実現しています。アクセス権限は、リソースやユーザー毎に許可するアクセスの種類を設定します。アクセス権限は、詳細に設定することが可能です。例えば、表形式のデータであれば、列単位でアクセス権限を設定できます。

中にはデータの暗号化をサポートしているデータベースマネジメントシステムも存在します。データそのものを暗号化してしまうことによって、データベースマネジメントシステムを介さない不正アクセスからデータを保護することもできます。

トランザクション制御

トランザクションとは、一つのまとまった分割できない処理のことです。よくあげられる例としては、銀行の振込処理になります。具体的な処理内容としては、Aさんの口座から○○円を差し引き、Bさんの口座に○○円を増やします。例えばこの例でAさんの口座から○○円を差し引いた段階で何らかの原因でシステムが停止してしまった場合、○○円が喪失してしまうといった事象が起きます。

トランザクション制御はこういった処理の停止に備えて、上記の一連の処理を一つの塊として捉え、途中で止まってしまうことの無いように制御することができます。

データベースマネジメントシステムは、複数のトランザクションが同時に実行されても、同じデータに対する更新処理が同時に行われないように排他制御します。同時実行制御により、データベースに不具合が発生することを防いでいます。

データの整合性を維持

データベースマネジメントシステムは、データ登録時の、データ形式をチェックしたり、データの相互関係をチェックするなど、データの整合性を維持する機能を持っています。

障害からの安全な復旧

データベースマネジメントシステムは、トランザクション障害、システム障害、記憶媒体等のハードウェア障害から復旧する機能をもっています。具体的には、データベースのバックアップとログを用いることによって、障害が発生する直前の状態に復旧させることが可能となっています。

アプリケーションプログラムのためのインターフェース提供

アプリケーションプログラムは、データベース操作言語を利用してデータベースマネジメントシステムに要求を出します。データベースマネジメントシステムは、要求にしたがってデータベースにアクセスし、アクセス結果をアプリケーションプログラムに戻します。アプリケーションプログラムは、データベースの構造を意識することなく必要なデータへアクセスすることが可能となります。

まとめ

この記事では、データベースマネジメントシステムについて解説しました。データベースの基礎中の基礎にあたる項目なので、これらを飛ばしてSQL文から学習する方も非常に多いことと思います。しかし、こういった基本的なデータベースの成り立ち、構造を知ることは、多くの場合、今後の踏み入った学習をする際の理解力向上に繋がると考えます。是非、一度基本に立ちかえって学習してみることをお勧めします。この記事が少しでも参考になりましたら、幸いです。