LESSON 25分

データベースの種類と用語

ストーリー

「先輩、リレーショナルデータベースって何ですか?」

「データを表(テーブル)で管理するタイプのデータベースだよ。Excelの表みたいなイメージかな」

「NoSQLっていうのも聞いたんですけど...」

「それはまた別の種類。まずはリレーショナルデータベースをしっかり理解しよう」


データベースの種類

データベースにはいくつかの種類がありますが、大きく分けると2つです。

1. リレーショナルデータベース(RDB)

データを「表(テーブル)」で管理するデータベース

┌────┬──────────┬────────┬────────┐
│ id │ name     │ dept   │ salary │
├────┼──────────┼────────┼────────┤
│  1 │ 田中太郎 │ 開発部 │ 350000 │
│  2 │ 佐藤花子 │ 営業部 │ 320000 │
│  3 │ 鈴木一郎 │ 開発部 │ 400000 │
└────┴──────────┴────────┴────────┘
  • 特徴: データを行と列で管理する。SQLという言語でデータを操作する
  • 代表例: MySQL、PostgreSQL、SQLite、Oracle、SQL Server
  • 利用率: Webアプリケーションの大多数がRDBを採用

2. NoSQL

テーブル以外の方法でデータを管理するデータベース

json
{
  "id": 1,
  "name": "田中太郎",
  "dept": "開発部",
  "salary": 350000,
  "skills": ["Python", "JavaScript"]
}
  • 特徴: JSON形式やキーバリュー形式でデータを管理する
  • 代表例: MongoDB、Redis、DynamoDB、Firebase
  • 用途: 大量データの高速処理、柔軟な構造が必要な場合

このコースではリレーショナルDBを学ぶ

なぜリレーショナルDBから始めるのか

理由説明
最も普及企業の業務システムの大半がRDBを使用
基礎になるRDBを理解していればNoSQLの学習も容易
SQLが共通MySQL、PostgreSQL、SQLiteでSQLはほぼ共通
求人が多いRDB/SQLスキルは最も需要が高い

まずはリレーショナルデータベースとSQLをしっかり身につけましょう。 NoSQLはその後に学ぶのがおすすめです。


基本用語を覚えよう

データベース(Database)

テーブルの集まり。1つのアプリケーションに1つ以上のデータベースがある

データベース「shop_db」
├── テーブル「users」
├── テーブル「products」
├── テーブル「orders」
└── テーブル「reviews」

例え話: 「会社」のようなもの。会社の中に複数の「部署(テーブル)」がある。

テーブル(Table)

データを行と列で管理する「表」。Excelのシートに相当

1つのテーブルは1つの種類のデータを管理します。

テーブル「users」
┌────┬──────────┬────────────────────┬─────┐
│ id │ name     │ email              │ age │
├────┼──────────┼────────────────────┼─────┤
│  1 │ 田中太郎 │ tanaka@example.com │  28 │
│  2 │ 佐藤花子 │ sato@example.com   │  32 │
└────┴──────────┴────────────────────┴─────┘

カラム(Column / 列)

テーブルの「縦方向」。データの種類を定義する

上の例では idnameemailage がカラムです。

  • カラムにはデータ型(数値、文字列など)を指定する
  • 「フィールド(Field)」とも呼ばれる

ロウ(Row / 行)

テーブルの「横方向」。1件分のデータ

上の例では「田中太郎のデータ一式」が1つのロウです。

  • 「レコード(Record)」とも呼ばれる
  • 1行 = 1件のデータ

ExcelとデータベースのテーブルQ比較

似ているところ

Excelデータベース
ワークブックデータベース
シートテーブル
列(A列、B列...)カラム(id、name...)
行(1行目、2行目...)ロウ / レコード
セルフィールド(1つのデータ)

違うところ

項目Excelデータベース
データ量数万行が限界数億行でも対応可能
同時アクセス1人が基本数千人が同時に使える
データの型自由(数字も文字も混在可)厳密に指定する
検索速度大量データでは遅いインデックスで高速
データの整合性自己責任データベースが保証する

図で比較

【Excel】                        【データベース】
┌───────────────────┐           ┌───────────────────┐
│ Sheet1            │           │ Table: users      │
│                   │           │                   │
│   A    B     C    │           │  id  name   age   │
│ 1 名前 年齢 部署  │           │  1   田中    28   │
│ 2 田中  28  開発  │           │  2   佐藤    32   │
│ 3 佐藤  32  営業  │           │  3   鈴木    25   │
│ 4 鈴木  25  開発  │           │                   │
└───────────────────┘           └───────────────────┘
       見た目は似ている!
   でもデータベースのほうが高機能

主要なリレーショナルデータベース

比較表

項目MySQLPostgreSQLSQLite
種類サーバー型サーバー型ファイル型
料金無料無料無料
開発元Oracle社コミュニティD. Richard Hipp
特徴シンプル、高速高機能、拡張性軽量、設定不要
用途Webアプリ全般大規模システム学習、モバイルアプリ
利用企業Facebook, TwitterApple, InstagramAndroid, iOS
難易度初級〜中級〜入門〜

このコースではSQLiteを使います

SQLiteを選ぶ理由:

  • インストールが簡単(ファイル1つで動く)
  • サーバーの設定が不要
  • SQLの基本はMySQL、PostgreSQLと同じ
  • 学習に最適

SQLiteで基礎を身につければ、MySQL やPostgreSQLへの移行は簡単です。


用語の全体像

┌─────────────────────────────────────────────┐
│  データベース(Database)                      │
│  ┌─────────────────────────────────────────┐ │
│  │  テーブル(Table)                        │ │
│  │                                         │ │
│  │  カラム → │ id │ name │ email │ age │    │ │
│  │           ├────┼──────┼───────┼─────┤    │ │
│  │  ロウ  →  │  1 │ 田中 │ t@... │  28 │    │ │
│  │  ロウ  →  │  2 │ 佐藤 │ s@... │  32 │    │ │
│  │                                         │ │
│  └─────────────────────────────────────────┘ │
│  ┌─────────────────────────────────────────┐ │
│  │  別のテーブル...                          │ │
│  └─────────────────────────────────────────┘ │
└─────────────────────────────────────────────┘

まとめ

用語意味例え
データベーステーブルの集まり会社
テーブルデータを行と列で管理する表Excelのシート
カラム(列)データの種類Excelの列(A列、B列)
ロウ(行)1件分のデータExcelの行(1行目、2行目)
レコードロウと同じ意味1件のデータ
フィールドカラムと同じ意味 / 1つのセル1つのデータ項目

覚えておくこと

  1. リレーショナルDB = データを表で管理するデータベース
  2. SQL = リレーショナルDBを操作する言語
  3. SQLite = 学習に最適な軽量データベース

次のステップへ

データベースの種類と基本用語は理解できましたか?

次のセクションでは、実際にSQLiteをインストールしてみましょう。 インストールは簡単です。すぐに使い始められます。


推定読了時間: 25分