PR

データを格納する「データベース管理システム(データベース・ソフト)」の一種。1970年に米IBMのエドガー・F・コッド氏が提唱したリレーショナル・データモデルの理論に基づくもので、現在、企業システムで最もよく使われている。「RDB」、「関係データベース」とも呼ぶ。代表的な製品は、日本オラクルの「Oracle」、日本IBMの「DB2」、マイクロソフト日本法人の「SQL Server」など。

 RDBの特徴は、「行」と「列」からなる2次元の「表(テーブル)」形式で、データを管理すること。例えば「顧客テーブル」は、「顧客コード」、「氏名」、「住所」といった顧客の属性を「列」として持つ。「行」には、顧客の各種データを1行に1件ずつ格納する。

 一般に、SQLと呼ぶデータの定義/操作言語を使って、テーブルの設計を変更したり、行のデータを検索・追加・変更・削除する。

 RDBでは、行を一意に特定する列のデータを「主キー」と呼ぶ。主キーを使い、複数のテーブルに分かれたデータ項目を仮想的に一つの表(仮想表=ビュー)として扱う。さらに主キーをインデクス(索引)として使い、該当する行データを素早く検索する。

 RDBを有効に使うには、テーブルの設計が重要なカギを握る。テーブルはデータの重複を極力排除する「正規化」をして、設計するのが原則だ。正規化を進めればデータの重複が少なくなる半面、表の結合(ジョイン)に時間がかかる。システムの特性や利用目的に応じて、ときには正規化を“崩し”ながら、テーブルを設計していく。

 RDBが主流になる前は、「ネットワーク型データベース」や「階層型データベース」が一般に使われていた。ネットワーク型や階層型のDBは、あらかじめ定めたデータ項目の並び順やデータ長に従い、固定長のレコードとしてデータを格納する。異なるレコードの関連は、“親子関係”をあらかじめ定義しておかなければならない。

 そのため、RDBに比べて検索は速いことがあるが、柔軟性に欠ける。データ項目のデータ長を増やしたり、データ項目を追加・削除するのが難しいからだ。RDBのように柔軟なデータの操作は不得手といえる。

 主にメインフレームで長年動きつづける「レガシー・システム」では、ネットワーク型/階層型データベースが根強く使われている。レガシー・システムをオープン化する際、データベースをRDBに変換する作業が移行の妨げになることは少なくない。「データベースの設計はすべてやり直し」、「データベースにアクセスするプログラムも作り直し」というのが一般的なアプローチとなる。

 そこでネットワーク型/階層型のデータベース設計をそのままRDBに移行することもある。RDB本来の柔軟なデータ操作は難しくなるが、プログラムを流用できるメリットがある。

(大和田)