データベース管理システム
データベース管理システム(データベースかんりシステム、DBMS; 英: database management system)とは、コンピュータのデータベースを構築するために必要なデータベース運用、管理のためのシステム、およびそのソフトウェアのことである。データベースマネジメントシステムとも呼ばれる。
目次
1 概要
2 DBMSの機能
3 オープンソースソフトウェアのDBMS
4 非オープンソースソフトウェアのDBMS
5 関連項目
6 脚注
概要
かつては、CODASYLが提唱したネットワーク型データモデルのDBMSや、階層型データモデルのDBMS、あるいは初期の非力なパーソナルコンピュータなどではカード型データモデルのDBMS(いわゆる簡易データベースソフト)などが幅広く利用されていたが、近年では関係モデル(関係データモデル)を扱う関係データベース管理システム (RDBMS) が主流である。
また、関係データベース管理システムに、利用者が独自のデータ型や関数を拡張可能なオブジェクト関係データベース (ORDBMS) や、オブジェクト指向プログラミング言語との親和性が高いオブジェクトデータベース (ODBMS)、データモデルにXMLを採用したXMLデータベース (XML DB) などが開発され、利用が広まっている。
ネットワーク型データモデルのDBMSや、階層型データモデルのDBMSは実装の軽量性の利から早くから広まっていたが、アプリケーションソフトウェア、データの論理的構造、データの物理的構造の三者が密接に結びつき、柔軟性に欠けるという欠点があった。また、最適化の方法論がクエリ(検索質問)を作るプログラマの力量に依存することもアプリケーションの開発効率を低下させる一因となった。
関係モデルの最大の功績は、アプリケーション、データの論理的構造、データの物理的構造を三階層に分け(三階層アーキテクチャ)、論理データ独立性と物理データ独立性を実現した点にある。
現在では、主に以下のデータベースが広く使われている。下2つについてはNoSQLも参照。
関係データベース、オブジェクト関係データベース - スキーマがしっかり決まっていて、トランザクションが利用できる- オブジェクトデータベース
- ドキュメント指向データベース - XMLデータベースやJSONを利用した、スキーマレスなもの
- キー・バリュー・ストア、カラム指向データベース - カラム指向はバリューがハッシュテーブルになっているもの
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 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, MSP, BS2000) |
ADBS | ネットワーク型 | 日本電気 | メインフレーム (ACOS-4, ACOS-2) |
AIM | ネットワーク型 | 富士通 | メインフレーム (MSP, XSP) |
ALTIBASE | ハイブリッドメモリ型RDBMS | ALTIBASE Corporation | Windows、Linux、各種UNIX |
Bento | カード型 | ファイルメーカー | macOS |
Caché | 多次元 | インターシステムズ | Windows、各種UNIX、macOS、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 | |||
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、Solaris、Linux、富士通メインフレーム |
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 |
関連項目
- データ管理システム
- バージョン管理システム
- パッケージ管理システム
- データストリーム管理システム
脚注
^ 2006年にOracle Corporationに買収された。
|