データベースの目的
データベースは、データをプログラムから切り離して、一元的に管理したものです。
一元管理により、次のような効果があります。
独立性の確保
- データがアプリケーションに依存しない → アプリケーションの変更がデータに影響しない
- データの共有が容易になる
データの矛盾発生の防止
- 同じデータをアプリケーションごとに重複させなくてよい
データの機密保持・標準化
- データベースシステムのセキュリティ機能が利用できる
- データベースの問い合わせ機能を利用 → 開発の効率化
- データ標準化に対する意識が高まる
3層スキーマアーキテクチャ
3層スキーマアーキテクチャは、データベースの構造を3つの層(外部スキーマ、概念スキーマ、内部スキーマ)に分けて定義する手法です

概念スキーマは、データベース化する対象正解をモデル化した構造で、データベース本来の形式
外部スキーマは、ユーザやアプリケーションの目的に応じて概念スキーマから必要なもの抽出・加工して提供される形式
内部スキーマは、概念スキーマを物理的に磁気ディスク装置上に実装する形式
概念スキーマの設計
データベースの論理構造を定義するプロセスです。次の手順で進められます。
対象世界 → 概念モデルの作成 → 論理モデルの作成 → 概念スキーマ
E-R図の基礎
ER図を構成する4つの要素
E-R図(エンティティ・リレーションシップ図)は、データベースの構造や関係性を視覚的に表したもので、「エンティティ」「アトリビュート」「リレーションシップ」「カーディナリティ」の4つの要素によって構成されています。ここでは、「顧客」と「注文」という具体的な例を用いて、それぞれの要素について説明していきます。
エンティティ(実体)
エンティティとはデータベース内で管理される情報のまとまりを指します。これは人やモノ、場所、出来事など、実体のあるものから抽象的な概念まで幅広く含まれます。たとえば、ECサイトでは「顧客」「ショップ」「商品」「注文」「販売担当」「仕入元」などがエンティティとして扱われます。このうち、「顧客」と「注文」はデータベースにおける代表的なエンティティの例です。データベース設計では、エンティティはテーブルとして管理されるのが一般的です。
アトリビュート(属性)
アトリビュート(属性)とはエンティティが持つ性質や特性を表す情報であり、テーブル内のカラムに対応します。たとえば、顧客というエンティティには「顧客名」「住所」「郵便番号」「電話番号」「メールアドレス」などがアトリビュートとして含まれます。一方で、注文というエンティティには「顧客ID」「注文日時」「配送希望日」「合計金額」「配送方法」などが挙げられます。このように、アトリビュートはエンティティの中身を構成する重要な要素です。
リレーションシップ(関係)
リレーションシップはエンティティ同士の関係性を示すもので、ER図においてはエンティティを結ぶ線として表現されます。リレーションシップには大きく分けて「依存関係」と「非依存関係」の2種類があります。
カーディナリティ(多重度)
最後に、カーディナリティとはエンティティ間の対応の数、つまり「1対1」「1対多」「多対多」といった関係の多重度を示す概念です。たとえば、「顧客」と「注文」の関係は、1人の顧客が複数の注文をする可能性があることから「1対多」や「1対0以上」と表現されます。カーディナリティの記述方法にはいくつかの種類があり、たとえばIE記法ではリレーションシップの線に対応する数を明記することで、それぞれの関係性を視覚的に把握できるようになっています。

データベースの論理モデル
概念モデルを作成すると、使用するデータベースモデルの種類に応じて詳細化した論理モデルに置き換えます。論理モデルには以下のモデルがあります。

現在は、関係モデル(リレーショナルデータベース)が主流になっています。
データベース言語
論理モデルが決定したら、データベース言語を用いてスキーマを記述します。
データベース言語は次のように分類できます。
