現在,以下の書籍でデータベースについて勉強している.本記事では,IT の文脈における「データベース」という言葉の意味,仕組みを解説してみた.
tl;dr
データベース:一定の形式で作成,管理されたデータの集合
広義の「データベース」の構成
- データ本体(紙,電子媒体など)
- データの管理者(人,コンピュータ(ソフトウェア)など)
IT の文脈での「データベース」の構成
- データベースファイル:データが書き込まれているファイル.データ本体.
- データベース管理システム(DBMS):データベースファイルに読み書きを行うソフトウェア.
データベースに格納されたデータへのアクセス手順
「データベース」とは何か?
広義の「データベース」
「データベース」という言葉は,「一定の形式で作成,管理されたデータの集合」を意味する.コンピュータで管理されているデータに限らず,紙に書かれたデータでもコンピュータ上に保存されたデータでも,それらが「一定の形式で」作成・管理されていれば立派な「データベース」である.例えば,テンプレートがあらかじめ印刷された紙に入力項目を埋め,それらをクリアファイルで月,年ごとに管理すればそれはデータベースに成り得る(広義の「データベース」).
「データベース」は,
- データ本体(紙,電子媒体など)
- データの管理者(人,コンピュータ(ソフトウェア))
の 2 つの要素から構成されるデータを管理するシステム(手作業で管理することも「システム」に含まれる)であると言える.
IT の文脈での「データベース」
説明
IT の文脈では,「データベース」は「コンピュータ上でデータの集合を管理するシステム」を意味することが多い.このシステムは「データ本体 + そのデータを管理するソフトウェア」で構成される.
データの実体はデータが書き込まれた「ファイル」(「データベースファイル」という)である.そして,データベースファイルに読み書きを行うソフトウェア,「データベース管理システム」(DBMS)によってそのデータを管理する.データベースのユーザは,DBMS を介してデータベースファイルに書き込まれたデータへアクセスする.
まとめ
以上をまとめると,IT の文脈における「データベース」は,
- データベースファイル:データが書き込まれているファイル.データ本体.
- データベース管理システム(DBMS):データベースファイルに対して読み書きを行うソフトウェア.MySQL,PostgreSQL など.
の 2 つから構成されるデータ管理のためのシステムを意味する(ことが多い,後述).これら 2 つから構成されるということを知っておけば「データベース」の全体像が把握しやすくなるはずである.
注意点
注意点が一つある.それは,「データベース」という言葉が「DBMSのみ」を意味するのか「データベースファイル + DBMS」を意味するのかは文脈に依りけりであり,曖昧に使われることが多々あるという点である.どちらの意味でもよく使われており分かり辛いが,ここまでの内容を押さえておけば混乱せずに済むと思われる.
本記事では,以降,「データベース」は「データベースファイル + DBMS」であることを前提に話を進める.
DBMS はユーザとデータのインタフェース
ユーザ(データ利用者)は DBMS を介してデータベースファイルに対してデータの読み書きを行う.つまり,DBMS がデータとユーザのインタフェースとなっている.
データへアクセスする際は,DBMS に対して「〇〇のデータを下さい」と命令を送る必要がある.この命令を記述する言語が SQL*1 である.
以上を踏まえ,データベースに格納されたデータへアクセスする手順を図と共にまとめた.処理を順に追っていけば難しくはない.
データベースに格納されたデータへのアクセス手順
(0. 目的のデータを取得するための SQL を書く)
1. ユーザから DBMS へ SQL を送信
2. DBMS が SQL を解析(解釈)
3. SQL を実行しデータベースファイルへデータの読み書き
(4. (読み出しの場合)DBMS から目的のデータが返ってくる)
(ここでは,データが表形式で管理されていることを前提としている)
「データベース」,「SQL」という言葉が一人歩きしており,「データベース」がどのようなものかが(私のような)初学者にとって分かり辛くなっている.ここまでの説明で少しでもデータベースの仕組みが具体的にイメージできるようになれば幸いである.
データベースの種類と RDB
データベースには,どのようにデータを格納・管理するかによって様々な種類がある.特に,表形式でデータを管理するデータベースのことを「リレーショナルデータベース」(RDB)という.表形式の他には,ドキュメント型,グラフ型などがあるが,一般的には表形式の RDB が広く使われている(前節の図は RDB を表していた).
RDB は表形式であり,行・列からなる表を用いてデータ管理を行う.データを管理する対象によっていくつかの表に分割してデータを管理するのが一般的である.例えば,「社員情報」,「顧客情報」などの表を分割するといった具合である.
個々の表は「テーブル」とも呼ばれ,DBMS で管理される際はテーブルごとに名前が付けられる.また,表の 1 行が一つのデータに相当し(一人の社員),各列は 1 つのデータの各要素(社員番号,名前,住所など)を表す.
表,行,列は呼び方がいくつかあるため,以下の表で把握しておくことを勧める.
RDB の要素 | 呼称 |
---|---|
表(table) | テーブル,リレーション |
行(row) | レコード,タプル |
列(column) | カラム,フィールド,属性 |
終わりに
「データベース」という言葉の意味についてざっくりと解説してみた.「データベース」はとっつきやすいようでいて曖昧に使われることが多い言葉だと思うので,意味を正しく把握しておくことが重要である.
補足:言葉の意味
データベース(DB)
データベースとは、複数の主体で共有、利用したり、用途に応じて加工や再利用がしやすいように、一定の形式で作成、管理されたデータの集合のこと。 広義には人が紙に書いてまとめたものなどを含む場合もあるが、今日では、単にデータベースといった場合はコンピュータ上で作成、保管され、専用のソフトウェア(データベース管理システム)によって管理されるものを指すことが多い。文脈によってはデータベース管理システム(DBMS:DabaBase Management System)のことをデータベースということもある。
DBMS によるデータベースは大量のデータを系統立てて保管することができ、必要に応じて検索、抽出、加工することができるため、企業の情報システムのデータ管理の中核として利用されることが多い。
データベースにはデータをどのような構造や方式で格納、管理するかによって様々な種類がある。今日最も一般的に利用されるのは「リレーショナルデータベース」(RDB:Relational DataBase、関係データベース)と呼ばれるもので、一件のデータを複数の属性の値の組として表現し、組を列挙することでデータを格納していく。属性を列、組を行とする表(テーブル)の形で示されることが多い。リレーショナルデータベースを管理するための DBMS のことをリレーショナルデータベース管理システム(RDBMS)という。
データベース管理システム(DBMS)
データベースを構築、管理するためのソフトウェア。データベース・マネジメント・システム(DBMS)ともいう。代表的なものに、フリーソフトの MySQL や PostgreSQL、市販の製品には、オラクルの Oracle Database、マイクロソフトの Access、SQL Server などがある。これらのデータベース管理システムは、サーバー上で動作し、ネットワークでデータベースを共有して複数ユーザーが同時に利用できる。データベースの作成やデータの抽出といった操作には、SQL などのデータベース言語を使用する。