0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【転職用】データベーススキーマ設計ってなんだったっけ?

Posted at

1. はじめに

先日、転職面接でデータベーススキーマ設計について質問されましたが、うまく答えられませんでした。この経験を踏まえ、自分の理解を整理するためにまとめたのが本記事です。

この記事は、以下の方に向けています。

  • データベース設計の基本を整理したい初心者
  • 転職面接でスキーマ設計の質問に答えたいエンジニア

2. データベーススキーマ設計とは

データベーススキーマ設計とは、データベースにどの情報を格納するか、その構造を計画する作業です。

設計で決める主な要素

  1. テーブル構造:どの情報をどのテーブルに格納するか

  2. データ型:文字列、数値、日付など列ごとのデータ型

  3. キーの定義

    • 主キー(Primary Key):各行を一意に識別
    • 外部キー(Foreign Key):他テーブルとの関連
  4. リレーション設計:1対1、1対多、多対多など

  5. 制約・インデックス:整合性の保持と検索高速化

面接でのポイント:単にテーブルを作るだけでなく、「なぜその設計にしたのか、整合性や効率性をどう保つか」を説明できることが重要です。


3. 具体例:書籍管理システム

テーブル構造

Authorsテーブル(著者情報)

列名 制約
id INT 主キー
name VARCHAR NOT NULL

Booksテーブル(書籍情報)

列名 制約
id INT 主キー
title VARCHAR NOT NULL
author_id INT 外部キー → Authors.id

リレーションの解説

  • 「1人の著者が複数の書籍を書く」 → 1対多の関係
  • 外部キーを使うことで、書籍データの整合性を保持できる

面接向けの説明例

「Books.author_id は Authors.id を参照しており、1人の著者が複数の書籍を持つ関係を表現しています。これによりデータの重複や不整合を防げます。」


4. 正規化と非正規化

正規化(Normalization)

  • データの重複を減らし、整合性を保つ
  • 第1正規形〜第3正規形までが一般的

非正規化

  • パフォーマンスや運用を考慮して、一部データを重複させる場合もある
  • 例:集計済みテーブルを別に持つことで検索を高速化

面接向けポイント

「正規化により整合性を保つが、分析用に非正規化を選ぶ場合もあります」と説明できると良い。


5. RDB vs NoSQL

観点 RDB NoSQL
代表例 MySQL, PostgreSQL, Oracle MongoDB, Cassandra
特徴 正規化・リレーション設計が中心 柔軟なスキーマ、アクセスパターン重視
適用 一般的な業務システム 大規模データ、リアルタイム処理

初心者はまずRDBで基本を理解し、NoSQLは応用として知識を持っておくと良いです。


6. 面接で使える説明のコツ

  1. 設計意図をセットで説明する
  2. 主キー・外部キー・リレーション・制約の意味を簡潔に述べる
  3. 正規化やインデックスの選択理由を説明できると高評価

7. 面接での回答例

基本の質問:「データベーススキーマ設計について教えてください」

「データベーススキーマ設計とは、データをどのように整理・格納し、テーブル間の関係性をどう保つかを計画する作業です。主に、テーブル構造、データ型、主キー・外部キーの定義、リレーション設計、制約やインデックスの設定を行います。例えば書籍管理システムでは、AuthorsテーブルとBooksテーブルを作り、Books.author_idをAuthors.idの外部キーとして1対多の関係を表現することで、データの整合性を保つことができます。」

応用質問:「正規化や非正規化はどう考えますか?」

「正規化はデータの重複を減らし、整合性を保つための設計手法です。非正規化は検索や分析のパフォーマンスを向上させるため、一部データを意図的に重複させる手法です。実務では基本は正規化を行い、パフォーマンスが重要な箇所では非正規化も検討します。」

応用質問:「RDBとNoSQLの使い分けは?」

「RDBは、正規化やリレーション設計を前提に、業務データの整合性を重視する場合に適しています。特に会計データや予約システムなど、ACID特性が必須の領域ではRDBを選びます。
一方、NoSQLはスキーマが柔軟で、ドキュメント指向やキー・バリュー型などを活用し、アクセスパターンやスケーラビリティに最適化できます。SNSのフィードやセッション管理などが代表例です。」


8. まとめ

  • データベーススキーマ設計は、データの整理・関連付けを計画する作業
  • 主キー・外部キー・リレーション・制約の理解が重要
  • 正規化・非正規化の使い分けやRDB/NoSQLの違いも押さえる
  • 面接では「設計意図」と「整合性の保持」をセットで説明できると良い

9. 図解:書籍管理システムのリレーション

Authors
+----+------+
| id | name |
+----+------+
    |
    | 1対多
    v
Books
+----+-------+-----------+
| id | title | author_id |
+----+-------+-----------+

10. 参考記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?