データベースマネージメントシステム
出典: フリー百科事典『ウィキペディア(Wikipedia)』
データベースマネージメントシステム (Database management system, DBMS) とは、データベースを構築するために必要なデータベース運用/管理のためのシステム、およびソフトウェアのことである。
目次 |
[編集] 概要
データベースマネージメントシステムは、データベース管理システムともいう。
かつては、CODASYLが提唱したネットワーク型データモデルのDBMSや、階層型データモデルのDBMS等が幅広く利用されていたが、近年ではリレーショナルデータモデル (関係モデル) を扱うリレーショナルデータベースマネージメントシステム(RDBMS)が主流である。
また、リレーショナルデータベースマネージメントシステムに、利用者が独自のデータ型や関数を拡張可能なオブジェクトリレーショナルデータベースや、オブジェクト指向プログラミング言語との親和性が高いオブジェクトデータベース、データモデルにXMLを採用したXMLデータベースなどが開発され、利用が広まっている。
ネットワーク型データモデルのDBMSや、階層型データモデルのDBMSは実装の軽量性の利から早くから広まっていたが、アプリケーションソフトウェア、データの論理的構造、データの物理的構造の三者が密接に結びつき、柔軟性に欠けるという欠点があった。また、最適化の方法論がクエリ(検索質問)を作るプログラマの力量に依存することもアプリケーションの開発効率を低下させる一因となった。
リレーショナルデータモデルの最大の功績は、アプリケーション、データの論理的構造、データの物理的構造を三階層に分け(三階層アーキテクチャ)、論理データ独立性と物理データ独立性を実現した点にある。
[編集] DBMSの機能
以下に DBMS (データベースマネジメントシステム) の、主な機能を示す。
- データベース言語
- データベース言語は、DBMS に対してさまざまな指示を伝えるための言語である。概念的には、データ定義言語やデータ操作言語などの構成要素からなる。データ定義言語 (DDL) はデータベースの構造を定義する。データ操作言語 (DML) はデータベースに対する検索や更新などの操作を行う。DBMS ではそのデータモデルに基づいたデータベース言語を備えている。例えば RDBMS (リレーショナルデータベースマネジメントシステム) とされるシステムの多くは、関係データベース言語 SQL を備えている。
- 物理的データ独立性
- データベースを格納する記憶装置を変更する際、それに伴って DBMS にアクセスする方法を変更する必要はない (もしくは変更する労力が少なくて済む) 。DBMS にアクセスする利用者やアプリケーションソフトウェアに対して、DBMS は記憶装置の変更をある程度隠蔽することができる。
- 論理的データ独立性
- いくつかの種類の DBMS では論理的データ独立性を支援する。例えば RDBMS ではビューを使うことができる。
- データ完全性
- 不正なデータが登録されることや、不正なデータに更新されることを、防ぐ。例えば RDBMS では、定義域・データ型・一意性(ユニーク)制約・参照制約・一般制約・トリガ などの機能を備えている。
- トランザクション処理
- ACID特性に基づいたトランザクション処理を行う。複数のユーザが同時に同一のデータを参照・更新した場合でも、矛盾なく正常に処理をこなす。
- セキュリティ
- 多くの DBMS ではセキュリティ (機密保護) に関して任意アクセス制御もしくは強制アクセス制御を提供し、さらに一部の DBMS ではデータの暗号化機能も提供する。任意アクセス制御を採用している DBMS が多い。データ暗号化機能では、DBMS を迂回した不正なデータアクセスに対する対策として、DBMS で管理・送受信するデータを暗号化する。
- 障害復旧
- トランザクション障害、システム障害、記憶媒体の障害からの復旧を行う。
- 最適化
- 高水準なデータモデルを採用する DBMS では、高水準なデータベース言語で記述されたデータ処理要求を、低水準な手続きに最適化して実行する。
- 分散データベース
- 分散データベースは、ネットワークで接続された複数のコンピュータを使い、それぞれのコンピュータ上で DBMS のプロセスを協調させて動かし、全体として仮想的に一つの DBMS を実現する技術である。複数のコンピュータを使うため、可用性や処理性能を向上させることができる。クライアント・サーバのデータベースは、分散データベースの簡単で特殊な形態と位置づけることができる。
[編集] フリーソフトのDBMS
名称 | データ モデル |
ライセンス | 開発者 | 移植されたOS | 特徴 |
---|---|---|---|---|---|
Berkeley DB | RDBMS | フリーソフトウェア | Sleepycat Software | ||
MySQL | RDBMS | GPL or 商用ライセンス | MySQL AB | Unix系・Windows系 | |
mSQL | RDBMS | 教育、非商用の機関に限りフリー or 商用ライセンス |
Minerva Network Management Environment | ||
Firebird | RDBMS | InterBase Public License | |||
PostgreSQL | RDBMS | BSDライセンス | Unix系・Windows系 | ||
SAP DB | GPL or LGPL | ||||
Xindice | XML DB | Apache License, Version 2.0 | Apache XMLプロジェクト | ||
Apache Derby | RDBMS | Apache License, Version 2.0 | Apacheソフトウェア財団 | ||
SQLite | RDBMS | パブリックドメイン | ファイルベース | ||
OpenOffice.orgのBase | RDBMS | LGPL | オフィススイートの一部 | ||
HSQLDB | RDBMS | BSDライセンス | 100%Java実装 |
[編集] 市販のDBMS
- 4th Dimension
- ADABAS
- Cache
- DayDa.Laboo
- DB2
- DBMaker
- EMPRESS
- FileMaker
- GemStone
- HiRDB
- IMS
- Informix
- Ingres
- InterBase
- Jasmine
- Linter
- Microsoft Access
- Microsoft SQLserver
- MRDB
- NeoCore XMS
- Objectivity/DB
- ObjectStore
- Oracle
- Oracle Times Ten In-memory Database
- PERCIO
- Pervasive.SQL (旧名称「Btrive」)
- PointBase
- SAS Scalable Performance Data Server
- Sonic XIS
- SQL Server
- SQLBase
- SUPRA
- Sybase
- Symfoware Server
- Tamino
- Teradata
- UniSQL
- VERSANT
- Yggdrasill
- 桐
- 高速機関(高速屋、富士ソフトABC)