1-2 リレーショナルデータベースの基本
リレーショナルデータベースの基本¶
データを「表」で管理し、表同士を関連付ける。それがリレーショナルデータベース(RDB)の考え方である。
なぜこれを学ぶのか¶
Webサービスの多くはRDBを使っている。RDBの基本を理解すれば、データがどのように整理・管理されているかが分かる。これはSQL学習の土台となる知識である。
テーブル・行・列¶
RDBではデータを「テーブル(表)」で管理する。Excelのシートと同じイメージである。
usersテーブルの例
| id | name | age | |
|---|---|---|---|
| 1 | 田中太郎 | tanaka@example.com | 28 |
| 2 | 山田花子 | yamada@example.com | 35 |
| 3 | 佐藤一郎 | sato@example.com | 42 |
用語の整理
| 用語 | 別名 | 説明 |
|---|---|---|
| テーブル | 表 | データを格納する入れ物 |
| 行(Row) | レコード | 1件分のデータ。上の例では「田中太郎さんの情報」が1行 |
| 列(Column) | カラム、フィールド | データの種類。上の例では「id」「name」「email」「age」 |
主キー(Primary Key)¶
主キーとは、各行を一意に識別するための列である。
身近な例
| 例 | 主キーに相当するもの |
|---|---|
| 学校 | 学生番号 |
| 会社 | 社員番号 |
| 日本国民 | マイナンバー |
主キーには2つのルールがある。
- 一意であること - 同じ値が存在してはいけない
- NULLでないこと - 空っぽは許されない
上のusersテーブルでは id が主キーである。「id = 1」と言えば、必ず「田中太郎さん」を特定できる。
外部キー(Foreign Key)¶
外部キーとは、他のテーブルの主キーを参照する列である。これによりテーブル同士を関連付けられる。
例:ユーザーと注文の関係
usersテーブル
| id | name |
|---|---|
| 1 | 田中太郎 |
| 2 | 山田花子 |
ordersテーブル
| id | user_id | product | price |
|---|---|---|---|
| 1 | 1 | ノートPC | 150000 |
| 2 | 1 | マウス | 3000 |
| 3 | 2 | キーボード | 8000 |
ordersテーブルの user_id が外部キーである。これはusersテーブルの id を参照している。
- 注文ID 1, 2 は user_id = 1 → 田中太郎さんの注文
- 注文ID 3 は user_id = 2 → 山田花子さんの注文
リレーション(関連)の種類¶
テーブル同士の関係には3つのパターンがある。
1対1(One-to-One)
1つのデータに対して、1つのデータが対応する。
例:ユーザーとユーザー詳細(1人に1つの詳細情報)
1対多(One-to-Many)
1つのデータに対して、複数のデータが対応する。最もよく使われるパターンである。
例:ユーザーと注文(1人が複数の注文をする)
多対多(Many-to-Many)
複数のデータ同士が相互に関連する。
例:学生と授業(1人の学生が複数の授業を受け、1つの授業に複数の学生がいる)
ER図の読み方¶
ER図(Entity-Relationship Diagram)は、テーブル同士の関係を視覚化した図である。
記号の意味
| 記号 | 意味 |
|---|---|
|| |
1(必ず1つ) |
o{ |
多(0以上) |
| PK | Primary Key(主キー) |
| FK | Foreign Key(外部キー) |
上の図は「1人のユーザーが0件以上の注文を持つ」という関係を表している。
Mermeid記法による書き方はMermaid記法 完全ガイド - 図解でわかるダイアグラム作成を参照
まとめ¶
- RDBはデータを「テーブル(表)」で管理する
- テーブルは「行(レコード)」と「列(カラム)」で構成される
- 主キー(PK)は各行を一意に識別する
- 外部キー(FK)は他のテーブルを参照し、関連を作る
- リレーションには1対1、1対多、多対多の3種類がある
用語¶
| 用語 | 説明 |
|---|---|
| RDB | Relational Database。テーブル形式でデータを管理するデータベース |
| テーブル | データを格納する表。行と列で構成される |
| 行(レコード) | テーブル内の1件分のデータ |
| 列(カラム) | データの種類・属性を表す |
| 主キー(PK) | 各行を一意に識別するための列 |
| 外部キー(FK) | 他のテーブルの主キーを参照する列 |
| リレーション | テーブル間の関連付け |
| ER図 | テーブルとその関係を視覚化した図 |
次の記事¶
SQLの基礎を学びたい方はこちら。