「リレーショナル・データベースおよびSQLの理解」について解説します。

参考:https://docs.oracle.com/cd/F19136_01/cncpt.pdf

データベースとは

データベースは、特定のデータを、検索や追加などが簡単にできるように整理したもののことです。

例えば、以下のようなデータのテーブルは「データベース」の一つです。

社員番号 氏名 部署 入社年
1001 山田 太郎 営業部 2022
1002 佐藤 花子 総務部 2021
1003 鈴木 一郎 開発部 2024
1004 田中 美咲 人事部 2023

 

リレーショナルデータベース(RDB)とは

リレーショナルデータベース(RDB)は、データを表(テーブル)形式で管理するデータベースです。複数のテーブルを共通の情報(キー)で関連付ける(リレーションを持たせる)ことで、効率的にデータを管理できます。

例えば、「社員テーブル」と「部署テーブル」を社員番号や部署番号などで関連付けることで、データの重複を減らし、一貫性を保ちながら管理できます。Oracle Databaseをはじめ、多くの業務システムではリレーショナルデータベースが採用されています。

以下の「社員テーブル」と「部署テーブル」の例をもとに、RDBについて説明します。

社員テーブル

社員番号 氏名 部署番号
1001 山田 太郎 10
1002 佐藤 花子 20
1003 鈴木 一郎 10

 

部署テーブル

部署番号 部署名
10 営業部
20 開発部
30 総務部

 

ここで「部署番号」が共通の項目になっており、この値を使って2つのテーブルを関連付けます。これがリレーション(関連)です。

なお、用語が少し紛らわしいですが、RDSは一般的には「Relational Database Service(Amazon RDS)」を指します。一方、「リレーショナルデータベース」は通常RDB(Relational Database)またはRDBMS(Relational Database Management System)と略されます。

データベース管理システム(Database Management System : DBMS)

データベース管理システム(Database Management System : DBMS)はデータの管理に使用するソフトです。データベースの構築や運用に使用します。Oracle DatabaseはDBMSの一つです。

データベース管理システム(DBMS)とは、データの格納、編成および取得を制御するソフトウェアです。
通常、DBMSの要素は次のとおりです。
・カーネル・コード
このコードでは、DBMS用のメモリーと記憶域を管理します。
・ メタデータのリポジトリ
このリポジトリは、通常、データ・ディクショナリと呼ばれます。
・ 問合せ言語
この言語を使用してデータにアクセスできます。

https://docs.oracle.com/cd/F19136_01/cncpt.pdf

SQLとは

データベースに格納されているデータの参照(問合せ・検索)や変更(追加・更新・削除)を行うのに使用するのがSQLという言語です。

SQLは「Structured Query Language」の頭文字です。

参考:https://docs.oracle.com/cd/E96517_01/cncpt/sql.html

SQLコマンドの種類と特徴

SQLコマンドの種類と特徴を紹介します。

  • データ検索
  • DML
  • DDL
  • DCL

上記の内容について詳しく解説します。

SELECTコマンドによるデータ参照

SELECTコマンドは、表のデータを検索するために使用するSQLコマンドです。コマンドの末尾には「;(セミコロン)」を記述します。

例えば、menuという名前の表からすべてのデータを参照するには以下のコマンドを実行します。

SELECT * FROM menu;

WHERE句による検索条件の指定

必要な行だけを得るには、WHERE句を使って対象の行と一致する検索条件を指定します。

例えば、menu表の中から「カレー」に該当する料理の価格の行を参照するには以下のコマンドを実行します。

SELECT price FROM menu WHERE dish_name = 'カレー';

データ操作言語(DML)

表のデータを追加・更新・削除する時に使用するSQLコマンドは「データ操作言語(DML:Data Manipulation Language)」に分類されます。

DMLには以下のようなコマンドがあります。

  • INSERTコマンド
  • UPDATEコマンド
  • DELETEコマンド

データ定義言語(DDL)

表などのオブジェクトを作成・変更・削除するの時に使用するSQLコマンドは、「データ定義言語(DDL:Data Definition Language)」に分類されます。

DDLには以下のようなコマンドがあります。

  • CREATEコマンド
  • DROPコマンド
  • ALTERコマンド

データ制御言語(DCL)

Oracleデータベースに対して、ユーザーごとに操作する実行許可(権限)を設定して操作を実行できるか、できないかを制御するために使用するSQLコマンドは「データ制御言語(DCL:Data Control Language)」に分類されます。

DCLは以下の2つのコマンドがあります。

  • GRANTコマンド
  • REVOKEコマンド

GRANTコマンドはユーザーに権限を付与することができ、REVOKEコマンドは与えた権限を取り消すことができます。