【SQL】RDBMS(リレーショナルデータベース)とは?表形式でデータを管理する仕組み

SQL

こんにちは、かつコーチです。

前回の記事でデータベースの全体像を説明しましたが、今回はその中でも最も普及しているRDBMS(リレーショナルデータベース管理システム)について解説します。

「リレーショナル」という言葉の意味がわからず、なんとなく使っている人も多いのではないでしょうか。
私も学習を始めた頃は、この「リレーション(関係)」という概念がピンとこず、しばらく理解に苦労しました。

RDBMSとは?

リレーショナルデータベースの定義

RDBMS(Relational Database Management System)とは、データを表(テーブル)の形式で管理し、テーブル同士を関連づけて扱えるデータベース管理システムのことです。

MySQL、PostgreSQL、Oracle Database、SQL Serverなど、現在広く使われているDBMSの多くはRDBMSに分類されます。

なぜ「リレーショナル(関係)」と呼ぶのか

「リレーショナル」という名前は、複数のテーブル同士を関係づけて扱えることに由来します。

例えば、ECサイトでは以下のようなテーブルが存在します。

  • usersテーブル:会員情報(会員ID、名前、メールアドレスなど)
  • ordersテーブル:注文情報(注文ID、会員ID、商品ID、注文日など)

ordersテーブルの「会員ID」は、usersテーブルの会員IDと紐づいています。
このように、複数の表を「ID」を通じて関連づけることで、重複のない効率的なデータ管理が可能になります。

テーブル形式でデータを管理する仕組み

テーブル・行・列という基本構造

RDBMSでは、データは以下の3つの単位で構成されます。

用語意味Excelでのイメージ
テーブル(表)データの集合体。1つのテーマごとに1つのテーブルを作るシート1枚
行(レコード)1件分のデータ1行分のデータ
列(カラム)データの項目列見出し

例えばusersテーブルなら、以下のようなイメージです。

id | name     | email
---+----------+-------------------
1  | 田中太郎  | tanaka@example.com
2  | 佐藤花子  | sato@example.com

この1行1行が「1人の会員」を表すレコードidnameといった項目がカラムです。

なぜテーブルを分けるのか

「会員情報も注文情報も1つのテーブルにまとめればいいのでは?」と思うかもしれません。
しかし、それをやると次のような問題が起きます。

  • 同じ会員が何度も注文すると、会員の名前やメールアドレスが何度も重複して記録される
  • 会員情報を変更したいとき、すべての注文レコードを1件ずつ修正しないといけない
  • データ量が無駄に増え、検索も遅くなる

こうした無駄をなくすために、RDBMSでは情報の種類ごとにテーブルを分け、IDで関連づける設計が基本になります。
この設計手法は正規化と呼ばれ、SQL基礎編の後半(テーブル設計・DDLのカテゴリ)で詳しく扱います。

RDBMS以外のデータベースとの違い

NoSQLとの比較

近年は、RDBMS以外にもNoSQLと呼ばれるデータベース(MongoDBなど)が使われることもあります。

種類データの形式特徴
RDBMSテーブル(行と列)データの整合性を厳密に保てる。複雑な関連データの管理が得意
NoSQLドキュメント・キーバリューなど柔軟な構造を扱いやすい。大規模データの高速処理が得意な場合がある

初中級のうちは「RDBMSがデータベースの王道であり基本」という理解で問題ありません。
NoSQLとの詳しい違いは、次回のSB04でDBMSの選び方として比較します。

まとめ

この記事のポイント

  • RDBMSはデータをテーブル(表)形式で管理し、テーブル同士を関連づけられるデータベース管理システム
  • データはテーブル・行(レコード)・列(カラム)という単位で構成される
  • 情報の種類ごとにテーブルを分け、IDで関連づけることでデータの重複や矛盾を防げる
  • MySQLやPostgreSQLなど、現在主流のDBMSの多くはRDBMSに分類される

次に読むべき記事

  • データベースとは?なぜアプリ開発にDBが必要なのか
  • SQLとは?データベース操作言語の基本を理解する

タグ: SQL, 初心者向け, 入門

タイトルとURLをコピーしました