ざっくり知りたい!RDBMS編


「データベースのことは何となくわかるけど、RDBMSって何ぞや?」

RDBMSは Relational Database Management System (リレーショナル・データベース・マネジメント・システム)の略です。

直訳するなら「関係に基づいたデータベースの管理システム」。

今回はこのRDBMSについて調べてきたのでざっくりと解説してみたいと思います。

目次

RDBMSの特徴
1. SQLとは
   データ操作言語(DML)
   データ定義言(DDL)
   データ制御言(DCL)
2. トランザクション処理
  ACID特性
   Atomicity(原子性)
   Consistency(一貫性)
   Isolation(独立性)
   Durability(永続性)
代表的なRDBMS
参照

RDBMSの特徴

RDBMSの特徴は大きく分けて以下の3つです。

  • 表に似た構造でデータ管理
  • データベース言語(SQL)を提供
  • トランザクション処理を行う

基本情報技術者試験の勉強をしたことがある人ならどれも馴染みのあるキーワードだと思います。

エクセルのような表とSQLという言語を使ってデータを管理するシステムなんだなあと思ってもらえればとりあえずは大丈夫です。

1. SQLとは

SQLは Structured Query Laneguage の略で、簡単に言ってしまえば「構造化された情報検索のための言語」です。

RDBMSではこのSQLを使ってデータのやり取りを行います。

SQLは3つのグループに分割されます。

  • データ操作言語(DML : Data Manipulation Language
  • データ定義言語(DDL : Data Definition Language
  • データ制御言語(DCL : Data Control Language

ここからはRDBMSならではの概念になってきますね。

データ操作言語(DML)

データの検索、新規登録、更新、削除を行います。

SELECT :選択
INSERT:挿入
UPDATE :更新
DELETE:削除

データ定義言(DDL)

データの構造、格納場所を定義します。

CREATE:テーブル生成
ALTER :変更
DROP :削除

データ制御言(DCL)

データのアクセス制御、データ管理やトランザクション管理をします。

GRANT :権限付与
REVOKE:権限剥奪
COMMIT:処理結果を確定し、トランザクション終了
ROLLBACK:処理結果を放棄し、実行前の状態に戻ったうえでトランザクション終了

2. トランザクション処理

トランザクション transaction という言葉はもともと複数の処理の集まりのことを指すので、トランザクション処理はそれら複数の処理の集まりの処理ということになります。

実際のサービスにおいて、データベースは常にデータの変更・更新にさらされるので、事実に反したデータ状態になってしまう危険があります。

例えばショッピングサイトにおいて、残り1個になった商品に対し、2人の購買者がいるとします。
2人の購買者は同時に「購入する」のボタンを押します。
すると大変!
それぞれの端末には「購入完了」と表示されているのに、実際に商品は1つしかありません。

このような危険に対処し、データを一貫した状態にするためにトランザクション処理という行程があります。

トランザクション処理には、一貫した情報を保証するためにACID特性というものがあります。

ACID特性

ACIDという文字は4つの特性の頭文字から来ています。

  • Atomicity(原子性)
  • Consistency(一貫性)
  • Isolation(独立性)
  • Durability(耐久性(永続性))

Atomicity(原子性)

処理中に一つでもミスが起きると、情報の一貫性が損なわれる可能性があります。そのため、トランザクション処理では完璧に処理が行われた場合にのみ状態の確定がされます。

反対に、一つでもミスが発見されれば、それらの処理はすべて破棄され、処理前の状態に戻ります。

トランザクション処理において、トランザクションは完全に実行されるか、まったく実行されないかのどちらかに限られます。

Consistency(一貫性)

言わずもがな、データに現実との間で矛盾が起きてしまってはいけません。

データベースには常に一貫性が求められます。

Isolation(独立性)

データベースには同時に複数の接続がなされますが、そんな場合においてもデータは一貫した状態に保たなければなりません。

つまり、単独で実行した場合でも、複数で実行した場合でも、同じ結果でなければいけません。

Durability(耐久性(永続性))

まったくエラーの起こらないシステムというものがあればいいのですが、現実はそうもいきません。

ですので、エラーを前提としたうえで、システムに障害が起きたとしても正常に完了済みのトランザクションの結果は消えないようにする仕組みが必要です。

代表的なRDBMS

では実際の現場ではどのようなデータベース製品が使われているのでしょうか。

DB-Engines RankingにおけるRDBMS上位5製品の結果は以下のようになっています。

以下の結果は2021年12月16日現在のものになります。

  1. Oracle Database (Oracle)
  2. MySQL
  3. Microsoft SQL Server (Microsoft)
  4. Postgre SQL
  5. IBM Db2 (IBM)

これらの内、MySQLPostgre SQL はオープンソースのデータベースです。


いかがでしたか?

少しでも皆さんの役に立つ情報があれば幸いです。

これからもこんな風に自分が学習したことを記事にしてまとめていくので、よかったらまた立ち寄ってください。

私もまだまだ初心者なので、間違っている個所などがあれば指摘していただけると大変心強いです。

私と同じ初学者の方!これからも一緒に頑張っていきましょう!

それではまた!

参照