PostgreSQLの学習:SQLとは何か|PostgreSQLとの違い
今回はSQLとは何かについて考えてみたいと思います。
PostgreSQLを学習していると「SQL」と「PostgreSQL」という言葉が出てきますが、この2つは同じものではありません。
所要時間は5分ほどとなっています。
それでは、さっそく始めていきましょう!
SQLとは
SQL(Structured Query Language)とは、RDBMSに対して、データの取得・追加・更新・削除やDatabaseの構造の定義などを指示するために使われる言語です。
重要なのは、SQLはソフトウェアではなく言語だという点です。
例えば、以下はSQLで記述された命令です。
SELECT *
FROM customers;
このSQLをRDBMSに与えることで、RDBに対する処理を指示できます。
PostgreSQLとは
PostgreSQLは、RDBを管理するRDBMS(Relational Database Management System)に分類される具体的なソフトウェアです。
したがって、
SQL
= 言語
PostgreSQL
= RDBMSに分類されるソフトウェア
という違いがあります。
SQLとPostgreSQLの違い
SQLとPostgreSQLは、それぞれ役割が異なります。
| 用語 | 分類 | 役割 |
|---|---|---|
| SQL | 言語 | RDBMSに対する命令を記述するために使う |
| PostgreSQL | RDBMS | SQLを受け取って処理し、RDBを管理する |
| RDB | Database | 管理される対象 |
例えば、人やアプリケーションがSQLで命令を記述し、PostgreSQLに与える場合、概念的には以下の流れになります。
人・アプリケーション
│
│ SQLで命令を記述
↓
PostgreSQL
│
│ SQLを処理
↓
RDB
つまり、SQLで命令を記述し、PostgreSQLがそのSQLを処理して、RDBに対する処理を行うという関係になります。
SQLはPostgreSQL専用の言語なのか
SQLはPostgreSQL専用の言語ではありません。
SQLはPostgreSQL以外のRDBMSでも利用されます。
そのため、
SQL
↓
PostgreSQL専用の言語
という理解は誤りです。
ただし、RDBMSによって利用できる機能や具体的なSQLの仕様には違いがあります。
そのため、今後SQLを学習する際には、
SQLとしての一般的な考え方
と
PostgreSQL固有の仕様
を区別する必要があります。
Database・RDB・DBMS・PostgreSQL・SQLの関係
これまで学習した内容をまとめると、以下のようになります。
【言語】
SQL
│
│ 命令を記述
↓
【管理ソフトウェア】
DBMS
└── RDBMS
└── PostgreSQL
│
│ RDBを管理
↓
【管理対象】
Database
└── RDB
ここで重要なのは、それぞれが異なるレイヤーの概念だということです。
- SQL:言語
- PostgreSQL:RDBMSに分類される具体的なソフトウェア
- RDB:管理対象となるDatabaseの一種
したがって、
SQL ≠ PostgreSQL
PostgreSQL ≠ RDB
となります。
まとめ
今回はSQLとは何か、そしてSQLとPostgreSQLの違いについて整理しました。
| 用語 | ポイント |
|---|---|
| SQL | RDBMSに対する命令を記述するために使われる言語 |
| PostgreSQL | RDBMSに分類される具体的なソフトウェア |
| RDB | PostgreSQLなどのRDBMSによって管理される対象 |
特に重要なのは、SQLは言語であり、PostgreSQLはそのSQLを受け取って処理するRDBMSであるという違いです。
SQL
↓
PostgreSQL
↓
RDB
次回は、実際にPostgreSQLを使用するための環境構築について学習します。