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

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

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

概要

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

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

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

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

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

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 では、高水準なデータベース言語で記述されたデータ処理要求を、低水準な手続きに最適化して実行する。
分散データベース
分散データベースは、ネットワークで接続された複数のコンピュータを使い、それぞれのコンピュータ上で DBMS のプロセスを協調させて動かし、全体として仮想的に一つの DBMS を実現する技術である。複数のコンピュータを使うため、可用性処理性能を向上させることができる。クライアント・サーバのデータベースは、分散データベースの簡単で特殊な形態と位置づけることができる。

オープンソースソフトウェアのDBMS

名称 データ
モデル
ライセンス 開発者 動作環境
Apache Derby RDBMS Apache License Version 2.0 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
MongoDB NoSQL GNU AGPL v3.0 10gen Linux, Windows, OSX, Solaris
mSQL RDBMS 商用ライセンス(教育、非商用の機関に限りフリー) Minerva Network Management Environment  
MySQL RDBMS GPLまたは商用ライセンス MySQL AB Unix系, Windows
OpenOffice.org Base RDBMS LGPL サン・マイクロシステムズ Unix系, Windows
PostgreSQL ORDBMS BSDライセンス PostgreSQL Global Development Group Unix系, Windows 
SAP DB   GPLまたはLGPL MySQL AB 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,MSP,BS2000)
Adaptive Server Enterprise RDBMS Sybase Windows,Linux,各種UNIX
ADBS ネットワーク型 日本電気 メインフレーム(ACOS-4,ACOS-2)
AIM ネットワーク型 富士通 メインフレーム (MSP,XSP)
ALTIBASE ハイブリッドメモリ型RDBMS ALTIBASE Corporation Windows,Linux,各種UNIX
Bento カード型 ファイルメーカー Mac OS X
Caché 多次元 インターシステムズ Windows,各種UNIX,Mac OS X,OpenVMS
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
テンプレート:仮リンク 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,Mac OS X
Oracle Times Ten In-memory Database インメモリ型RDBMS オラクル Windows,Linux,各種UNIX
PERCIO
Pervasive.SQL(旧称「Btrieve」) RDBMS Pervasive Windows,Linux
PointBase
RedBrick IBM Windows,各種UNIX
SAS Scalable Performance Data Server
solidDB インメモリ型RDBMS IBM Windows,Linux,各種UNIX
Sonic XIS
Sybase SQL Anywhere RDBMS Sybase iAnywhere Windows,Linux,各種UNIX,Mac OS X,iOS,Windows CE
SQLBase RDBMS
SUPRA
Sybase IQ RDBMS Sybase Windows,Linux,商用UNIX(各32bit/64bit)
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に買収された。

テンプレート:Databasede:Datenbank#Datenbankmanagementsystem