データベース(RDB)は、どんなソフトウェアを開発する場合でも、当たり前のように使われていて、なくてはならないコンポーネントです。
RDB(Relational Database:関係データベース)の構造とは、データを列と行で構成される表(テーブル)として整理し、それらのテーブル間の関係を明確にしたものです。これは、「スキーマ」と呼ばれ、主に、テーブルの列の定義、テーブル間のリレーションなどを静的に定義するものです。
以下に、テーブルの関係を示すために使われるのは、以下の2つです。
・主キー (Primary Key)
各テーブルの行を一意に識別するためのキー
・外部キー (Foreign Key)
他のテーブルの主キーを参照する列
主キーと外部キーを使い、テーブル間の一対一、一対多、多対多などの関係を定義します。
関係を定義するには、データの冗長性を排除する「正規化」を実施します。
正規化によって、テーブルを分割し、データの重複を避け、データの整合性を確保します。
スキーマを図示したものがER図(Entity-Relationship Diagram)です。ER図の主な要素として以下のものがあります。
①エンティティ
テーブルのこと
②属性
テーブルが保持するの属性であり、列名となるもの
③リレーションシップ
テーブル間の関連や関係を示すラインのこと
④カーディナリティ (Cardinality)
リレーションの多重度を示すもの。一対一、一対多、多対多など
ER図によって、テーブルの構造だけではなく、リレーションも含めて整理することができます。
■ まとめ
「ER図によって、データベース構造をきれいにすれば、あとで困らない」
データベースをデータのごみ箱にしないためにも、データベース構造をしっかりと考えることは、ソフトウェア開発にとって肝と言えます。