プログラミングHUB

本記事は広告(アフィリエイト)を含みます。リンク先サービスの成果に応じて当サイトは報酬を受け取る場合があります。 紹介する商品・サービスは公開情報・公式資料に基づき編集部が比較・検証したものです。編集方針

language5分で読めます

データベース設計入門:テーブル設計・正規化・ER図の基礎を解説

データベース設計の基礎を初心者向けに解説。テーブル設計、正規化、ER図の読み書き方法、設計のアンチパターンまで実例付きで紹介します。

この記事でわかること

5分で読めます
  • データベース設計の基礎を初心者向けに解説。
  • テーブル設計、正規化、ER図の読み書き方法、設計のアンチパターンまで実例付きで紹介します。

「独学で始めたものの、何を次に学ぶべきかが見えず手が止まっている」——プログラミング学習で最も多い挫折ポイントです。 方向感のない学習は時間だけを消費し、現場で通用するスキルまで繋がりにくくなります。 この記事では、データベース設計入門について、順序立てて学ぶロードマップを整理しました。

関連記事:SQL入門ガイド


無料カウンセリングは30分〜1時間、しつこい勧誘なし。学習ロードマップの相談だけでも活用できます。

PRエックスサーバー国内シェアNo.1のエックスサーバーを試す公式サイトで詳細を見る※本コンテンツはアフィリエイト広告を含みます。表示内容は各社公式サイトをご確認ください。

データベース設計とは

データベース設計とは、アプリケーションで扱うデータをどのようにテーブル(表)に格納するかを決める作業です。

良い設計の条件

  • データの重複がない:同じ情報を複数箇所に持たない
  • 整合性が保たれる:矛盾したデータが入らない構造
  • 拡張しやすい:新しい要件に対応しやすい
  • パフォーマンスが良い:必要なデータに素早くアクセスできる

テーブル設計の基本

主キー(Primary Key)

各レコードを一意に識別するカラムです。

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100) NOT NULL,
  email VARCHAR(255) UNIQUE NOT NULL,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

外部キー(Foreign Key)

テーブル間のリレーションを定義します。

CREATE TABLE orders (
  id INT AUTO_INCREMENT PRIMARY KEY,
  user_id INT NOT NULL,
  total INT NOT NULL,
  FOREIGN KEY (user_id) REFERENCES users(id)
);

リレーションの種類

関係実装方法
1対1ユーザーとプロフィール外部キー+UNIQUE制約
1対多ユーザーと注文子テーブルに外部キー
多対多記事とタグ中間テーブル

正規化の基本

正規化とは、データの重複を排除してテーブルを整理する手法です。

第1正規形:繰り返しグループの排除

NG例:

idname趣味1趣味2趣味3
1田中読書映画NULL

OK例: usersテーブルとhobbiesテーブルに分離

第2正規形:部分関数従属の排除

複合主キーの一部にのみ依存するカラムを別テーブルに分離します。

第3正規形:推移関数従属の排除

主キーに直接依存しないカラムを別テーブルに分離します。

実務では第3正規形まで意識すれば十分です。

ER図の基本

ER図(Entity Relationship Diagram)は、テーブル間の関係を視覚的に表現する図です。

Prisma ORM入門も参考にしてください。

ER図の構成要素

  • エンティティ(テーブル):四角形で表現
  • 属性(カラム):エンティティの中にリスト表示
  • リレーション(関係):線で接続

ER図作成ツール

  • dbdiagram.io:ブラウザで無料で使える
  • MySQL Workbench:MySQLの公式ツール
  • Draw.io:汎用的な作図ツール

設計のアンチパターン

1. とりあえず全部1テーブルに入れる

関連の薄いデータを1つのテーブルにまとめると、カラム数が膨大になり管理が困難になります。

2. IDを持たないテーブル

主キーのないテーブルは、レコードの特定や更新が困難になります。

3. JSONカラムの乱用

柔軟性はありますが、検索やインデックスが効きにくくなります。構造化できるデータは正規化しましょう。

4. 論理削除フラグの安易な使用

deleted_at カラムを安易に追加すると、全クエリにWHERE条件が必要になり複雑化します。

設計の進め方

  1. 要件を整理:どんなデータを扱うか洗い出す
  2. エンティティを抽出:テーブルになりそうな概念を列挙
  3. 関係を定義:エンティティ間のリレーションを決める
  4. 正規化:第3正規形まで正規化する
  5. ER図を作成:視覚的に確認・レビュー
  6. テーブル定義書を作成:カラム名・型・制約を文書化
PRエックスサーバー国内シェアNo.1のエックスサーバーを試す公式サイトで詳細を見る※本コンテンツはアフィリエイト広告を含みます。表示内容は各社公式サイトをご確認ください。

今始めるか、もう少し準備してからか

プログラミング学習は、始めてから軌道に乗るまでに一定の時間がかかります。完璧な環境・完璧な教材を探している間に、早く始めた人は最初の実装を終え、次の壁にぶつかっています。 いきなりスクール契約をする必要はありません。ただし無料カウンセリングや無料体験で自分の学習スタイルに合うか確認しておくのは、選ぶ・選ばない以前の情報収集として有効です。多くのスクールで無料相談は30分〜1時間で完結します。

まとめ

データベース設計は、アプリケーションの品質に直結する重要なスキルです。まずは正規化の概念を理解し、小さなアプリで実際にテーブル設計を行うことで感覚を掴んでいきましょう。


あわせて読みたい

よくある質問

Q.
Q.
Q.

あなたに合う次の選び方を見る

30秒で診断してみる
#データベース#DB設計#正規化#ER図#MySQL#SQL

関連記事