データベース管理システム

出典: フリー百科事典『ウィキペディア(Wikipedia)』

データベース管理システム(データベースかんりシステム、DBMS; : database management system)は、コンピュータデータベースを構築するために必要なデータベース運用、管理のためのシステム、およびそのソフトウェアのことである。データベースマネジメントシステムとも呼ばれる。

概要[編集]

かつては、CODASYLが提唱したネットワーク型データモデルのDBMSや、階層型データモデルのDBMS、あるいは初期の非力なパーソナルコンピュータなどではカード型データモデルのDBMS(いわゆる簡易データベースソフト)などが幅広く利用されていたが、近年では関係モデル(関係データモデル)を扱う関係データベース管理システム (RDBMS) が主流である。

また、関係データベース管理システムに、利用者が独自のデータ型関数を拡張可能なオブジェクト関係データベース (ORDBMS) や、オブジェクト指向プログラミング言語との親和性が高いオブジェクトデータベース (ODBMS)、データモデルにXMLを採用したXMLデータベース (XML DB) などが開発され、利用が広まっている。

ネットワーク型データモデルのDBMSや、階層型データモデルのDBMSは実装の軽量性の利から早くから広まっていたが、アプリケーションソフトウェア、データの論理的構造、データの物理的構造の三者が密接に結びつき、柔軟性に欠けるという欠点があった。また、最適化の方法論がクエリ(検索質問)を作るプログラマの力量に依存することもアプリケーションの開発効率を低下させる一因となった。

関係モデルの最大の功績は、アプリケーション、データの論理的構造、データの物理的構造を三階層に分け(三階層アーキテクチャ)、論理データ独立性物理データ独立性を実現した点にある。

種類[編集]

現在では、主に以下のデータベースが広く使われている。

補足[編集]

  • 三階層アーキテクチャは、古くからの階層型、ネットワーク型DBMSにおいて実装されている。さらに、三階層アーキテクチャは、階層型、ネットワーク型データベースの国際標準規格である構造型データベース(CODASYL NDL)において、最初に規定された。
  • アプリケーションはビュー経由で操作し、レコード型(実表)の定義変更があっても、変更箇所を操作しないアプリケーションには影響しない。
  • データベースの物理的な格納場所の変更も、アプリケーションや論理的な定義の変更は必要としない。
  • 階層型、ネットワーク型とリレーショナル型DBMSの共通点、差異は、次の点にある。
    • <共通>
      1. レコード型(実表)に対し、特定の構成要素(フィールド、列)をビューとして定義し、アプリケーションから限定して操作させる。
      2. ビューで定義された構成要素(フィールド、列)以外の定義変更は、アプリケーションには影響しない。
    • <差異>
      1. ビューでは、列の特定だけでなく、列が特定の値を持つ行のみを対象にできる。
      2. ビューを経由しなくても、特定の列だけ、さらには特定の列の値を持つ行だけを操作対象にできる。

DBMSの機能[編集]

以下に DBMSの、主な機能を示す。

データベース言語
データベース言語は、DBMS に対してさまざまな指示を伝えるための言語である。概念的には、データ定義言語 (DDL)、データ操作言語 (DML)、データ制御言語 (DCL) の構成要素からなる。データ定義言語 (DDL) はデータベースの構造を定義する。データ操作言語 (DML) はデータベースに対する検索や更新などの操作を行う。データ制御言語 (DCL) はデータに対するアクセス制御を行う。DBMS ではそのデータベースモデルに基づいたデータベース言語を備えている。例えば関係データベース管理システム (RDBMS) とされるシステムの多くは、関係データベース言語 SQL を備えている。
物理的データ独立性
データベースを格納する記憶装置を変更する際、それに伴って DBMS にアクセスする方法を変更する必要はない (もしくは変更する労力が少なくて済む) 。DBMS にアクセスする利用者やアプリケーションソフトウェアに対して、DBMS は記憶装置の変更をある程度隠蔽することができる。
論理的データ独立性
いくつかの種類の DBMS では論理的データ独立性を支援する。例えばRDBMSではビューを使うことができる。
データ完全性
不正なデータが登録されることや、不正なデータに更新されることを、防ぐ。例えばRDBMSでは、定義域データ型一意性(ユニーク)制約参照整合性制約一般制約トリガ などの機能を備えている。
トランザクション処理
ACID特性に基づいたトランザクション処理を行う。複数のユーザが同時に同一のデータを参照・更新した場合でも、不整合がなく正常に処理をこなす、又は異常を通知する(例:二人のユーザが口座から引き出しをした場合、確実に二人分の引き出しが処理される)。
セキュリティ
多くの DBMS ではセキュリティ (機密保護) に関して任意アクセス制御もしくは強制アクセス制御を提供し、さらに一部の DBMS ではデータの暗号化機能も提供する。任意アクセス制御を採用している DBMS が多い。データ暗号化機能では、DBMS を迂回した不正なデータアクセスに対する対策として、DBMS で管理・送受信するデータを暗号化する。
DBMSの暗号化ソリューションの方式は暗号化および復号を行う位置によって大きく3通り、アプリケーション方式、DB Plug-In方式、TDE方式と分類する。
アプリケーション方式(Application Programming Interface 、API)はアプリケーションのロジックでデータを暗号化及び復号を行う。そのためデータベースに負荷がかかる問題なく、性能劣化を最小限に抑えられる。
DB Plug-In方式はデータベース(DB)上で暗号化および復号のモジュールを実装する暗号化方式である。APIとは違ってアプリケーションから独立しているため、データベースを修正することだけで簡単に導入できる。そのためアプリケーションに対する修正はほぼ必要ない。また、全ての作業がGUI基盤で行われるため、管理の利便性を向上し、暗号化カラムに対する一致検索、範囲検索、インデックス支援に容易になる。
TDE方式(Transparent Data Encryptio、TDE)はDBエンジンの内部にて暗号化および復号を行う。ソフトウェア基盤の暗号化モジュールがDBエンジンに直接設置されるため、アプリケーションの修正なくDB内部から暗号化および復号する。そのため、他の方式と比べ暗号化・復号の速度が上がる。また、必要なデータのみ暗号化することができるためシステムにかかる負荷を最小化する。
障害復旧
トランザクション障害、システム障害、記憶媒体の障害からの復旧を行う。
最適化
高水準なデータベースモデルを採用する DBMS では、高水準なデータベース言語で記述されたデータ処理要求を、低水準な手続きに最適化して実行する。
分散データベース
分散データベースは、ネットワークで接続された複数のコンピュータを使い、それぞれのコンピュータ上で DBMS のプロセスを協調させて動かし、全体として仮想的に一つの DBMS を実現する技術である。複数のコンピュータを使うため、可用性処理性能を向上させることができる。クライアント・サーバのデータベースは、分散データベースの簡単で特殊な形態と位置づけることができる。

オープンソースソフトウェアのDBMS[編集]

名称 データ
モデル
ライセンス 開発者 動作環境
Apache Derby RDBMS Apache License Version 2.0 Apache DB プロジェクト(Apacheソフトウェア財団) Pure Java
Berkeley DB RDBMS GPL Sleepycat Software[注 1] Unix系, Windows, Pure Java
Firebird RDBMS InterBase Public License Firebird Project Unix系, Windows
H2 Database RDBMS H2 License 1.0 Thomas Mueller Pure Java
HSQLDB RDBMS BSDライセンス   Pure Java
LibreOffice Base RDBMS LGPL The Document Foundation Unix系, Windows
MariaDB RDBMS GPL v2 Maria developers Linux, Windows, Solaris
MaxDB   GPLまたはLGPL MySQL AB Unix系, Windows
MongoDB NoSQL GNU AGPL v3.0 10gen Linux, Windows, macOS, Solaris
mSQL RDBMS 商用ライセンス(教育、非商用の機関に限りフリー) Minerva Network Management Environment  
MySQL RDBMS GPLまたは商用ライセンス MySQL AB Unix系, Windows
OpenOffice.org Base RDBMS LGPL サン・マイクロシステムズ、Apacheソフトウェア財団 Unix系, Windows
PostgreSQL ORDBMS BSDライセンス PostgreSQL Global Development Group Unix系, Windows 
SQLite RDBMS パブリックドメイン D. Richard Hipp
VoltDB RDBMS GPL v3 Michael Stonebraker
Xindice XML DB Apache License Version 2.0 Apache XMLプロジェクト  

非オープンソースソフトウェアのDBMS[編集]

名称 データモデル(特徴) 開発元 主な動作環境
4th Dimension RDBMS Macintosh,Windows
ADABAS RDBMS ソフトウェアAG Windows、各種UNIX、Linuxメインフレーム (z/OS, z/VM,z/VSE, OSIV/MSP, BS2000)
ADBS ネットワーク型 日本電気 メインフレーム (ACOS-4, ACOS-2)
AIM ネットワーク型 富士通 メインフレーム (OSIV/MSP, OSIV/XSP)
ALTIBASE ハイブリッドメモリ型RDBMS ALTIBASE Corporation Windows、Linux、各種UNIX
Bento カード型 クラリス macOS
Caché 多次元 インターシステムズ Windows、各種UNIX、macOSOpenVMS
DayDa.Laboo インメモリ型RDBMS ターボデータラボラトリー Windows、各種UNIX
DB2 ORDBMS IBM Windows、各種UNIX,Linux、OS/400、メインフレーム (z/OS)
DBMaker
DL/I VSE 階層型 (DL/I) IBM メインフレーム (z/VSE)
FileMaker カード型、RDBMS クラリス
GemStone ODBMS
HiRDB RDBMS 日立製作所 Windows、Linux、各種UNIX
IMS DB 階層型 (DL/I) IBM メインフレーム (z/OS)
Informix Dynamic Server ORDBMS IBM(旧Informix Windows、Linux、各種UNIX
Ingres RDBMS Ingres Corporation
InterBase RDBMS コードギア
Jasmine
Linter英語版 RDBMS 組み込み機器(T-Engine等)
Microsoft Access RDBMS マイクロソフト Windows
Microsoft SQL Server RDBMS マイクロソフト Windows
MRDB RDBMS TDCソフト
NeoCore XMS XML DB
Objectivity/DB ODBMS
ObjectStore ODBMS
Oracle Database RDBMS オラクル Windows。Linux、各種UNIX、z/OS、macOS
Oracle Times Ten In-memory Database インメモリ型RDBMS オラクル Windows、Linux、各種UNIX
PERCIO
Pervasive.SQL(旧称「Btrieve」) RDBMS Pervasive Windows, Linux
PointBase
RedBrick IBM Windows、各種UNIX
SAP IQ(旧称「Sybase IQ」) RDBMS SAP Windows、Linux、商用UNIX(各32ビット/64ビット)
SAP HANA インメモリ型RDBMS SAP Linux
SAP Sybase Adaptive Server Enterprise(旧称「Sybase Adaptive Server Enterprise」) RDBMS SAP Windows、Linux、各種UNIX
SAS Scalable Performance Data Server
solidDB インメモリ型RDBMS IBM Windows、Linux、各種UNIX
Sonic XIS
Sybase SQL Anywhere RDBMS Sybase iAnywhere Windows、Linux、各種UNIX、macOS、iOS、Windows CE
SQLBase RDBMS
SUPRA
Symfoware Server RDBMS 富士通 Windows、SolarisLinux、富士通メインフレーム
Tamino
Teradata RDBMS Teradata Linux, Windows
UniSQL ORDBMS
VERSANT
XDM/SD 構造型 (NDL) 日立製作所 メインフレーム (VOS3)
XDM/RD RDBMS 日立製作所 メインフレーム (VOS3)
Yggdrasill
RDBMS 管理工学研究所 MS-DOS, Windows
高速機関 インメモリ型RDBMS 高速屋 Windows
五郎 RDBMS ジャストシステム MS-DOS, Windows

脚注[編集]

注釈[編集]

  1. ^ 2006年にOracle Corporationに買収された。

関連項目[編集]