「リレーショナル・データベースおよび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コマンドは与えた権限を取り消すことができます。