データベース管理システム
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "データベース管理システム" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2023年3月)

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

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

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

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

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

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

関係データベースオブジェクト関係データベース - スキーマがしっかり決まっていて、トランザクションが利用できる

オブジェクトデータベース

列指向データベース管理システム(英語版) - NoSQL系の一部で称される「列(カラム)指向データモデル」とは異なり、同一列のデータを物理的に近い領域に集約して格納されるもの。列データ集計処理などでは、行指向データベースよりも優位。

カード型データベース

NoSQL ("Not only SQL") 系

ドキュメント指向データベース(英語版) - XML (Extensible Markup Language) やJSONを利用した、スキーマレスなもの。

キー・バリュー・ストア(英語版)

グラフ指向データベース(英語版)


補足

三階層アーキテクチャは、古くからの階層型、ネットワーク型DBMSにおいて実装されている。さらに、三階層アーキテクチャ
は、階層型、ネットワーク型データベースの国際標準規格である構造型データベース(CODASYL NDL)において、最初に規定された。

アプリケーションはビュー経由で操作し、レコード型(実表)の定義変更があっても、変更箇所を操作しないアプリケーションには影響しない。

データベースの物理的な格納場所の変更も、アプリケーションや論理的な定義の変更は必要としない。

階層型、ネットワーク型とリレーショナル型DBMSの共通点、差異は、次の点にある。

<共通>
レコード型(実表)に対し、特定の構成要素(フィールド、列)をビューとして定義し、アプリケーションから限定して操作させる。

ビューで定義された構成要素(フィールド、列)以外の定義変更は、アプリケーションには影響しない。


<差異>
ビューでは、列の特定だけでなく、列が特定の値を持つ行のみを対象にできる。

ビューを経由しなくても、特定の列だけ、さらには特定の列の値を持つ行だけを操作対象にできる。



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内部から暗号化および復号する。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:35 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef