
PostgreSQLはオープンソースのリレーショナルデータベースシステム(RDBMS)です。
オープンソース系のDBMSにおいてMySQLと共に人気を二分しております。PostgreSQLにはSQLを拡張して開発された「PL/pgSQL」という専用のデータベース言語があります。この記事ではPostgreSQLを理解するために歴史や特徴、基本的なコマンドなどを簡単に解説していきます。
PostgreSQLとはオープンソースのリレーショナルデータベースシステム(RDBMS)です。1989年の誕生以降(当時の名称はPostgres)30年以上に渡って活発的に開発されてきております。人気を集めている要因として「高い信頼性」「機能の堅牢性」「パフォーマンスが高い」などが挙げられます。また多数の関数や機能を取り揃えていることからバランスの良いデータベースとして多くの方に支持されております。
SQLとはリレーショナルデータベースの管理・操作をするため最も普及されているデータベース言語です。主な用途としてデータベース管理システム(DBMS)へデータの検索、追加、削除、更新などの指示のために使用されます。1970年代にIBM社の開発によって誕生した『Structured English Query Language(SEQUEL)』が元になっております。そのことから広く知れ渡っている呼び名は『シーケル』です。またSQLは国際標準化機構(ISO)で規格化をされております。そのためMySQL、Oracle、PostgreSQLなど様々なデータベース管理システムにおいてもSQLにて対応することが可能です。またSQLの代表的な拡張プログラム言語としてPL/SQLやT-SQLなどが挙げられます。
SQLの歴史や特徴について解説された記事はこちら>>
PL/pgSQLとはPostgreSQLにおいて使用するために『PostgreSQL Global Development Group』によってデータベース言語SQLを拡張して開発されたプログラミング言語です。正式名称は「Procedural Language/PostgreSQL Structured Query Language」となっておりPL/pgSQLと略して呼ばれることが一般的です。PL/pgSQLは「SQLよりも複雑な処理を実現」「簡単に扱える」という目的の元に設計されました。
PL/pgSQLの特徴や構造について解説された記事はこちら>>
データベースとは様々な情報を整理し効率よく使用するために格納するデータの集合体のことです。データベースには様々なデータを効率よく管理するための機能が用意されております。また大量のデータを高速に処理することも可能です。用途は様々で顧客管理や在庫管理などの複数のデータを取り扱うことが必要とされる業務に使用されます。主なデータベースの種類としてOracleDBやMySQLなどが挙げられます。
データベースの種類や特徴を解説している記事はこちら>>
DBMSとはデータベースを構築するためにデータベースの運用、管理を実行するためのシステムです。
代表的な製品としてOracle Database、SQL Server、MySQLなどが挙げられます。
DBMSの歴史や種類を解説している記事はこちら>>
PostgreSQLの読み方は『ポストグレスキューエル』です。誕生当初は「POSTGRES(ポストグレス)」という名前でしたが、1996年にSQLのサポートを反映したことでPostgreSQLに改名しました。『ポスグレ』と略称して呼ぶ方も多いです。
PostgreSQLの歴史は1996年に従来のPOSTGRESがSQLのサポートを反映したことで始まりました。POSTGRES自体の誕生は1986年からの開発開始であり、デモ版の発行が翌年の1987年です。1989年には一部のユーザーに初版であるバージョン1をリリースしております。1996年以降、PostgreSQLはバージョンアップの度に大きな進化を遂げております。
1997年に6系と呼ばれるバージョンアップではMVCCなどのRDBMSとしての機能実装。2000年の7系ではACIDを満たしました。このように登場以来度重なるアップデートを繰り返し2020年11月現在の最新バージョンは13.1となっております。簡単に以下の年表にまとめておりますのでご覧ください。
年代 | 内容 |
1986年 | 『POSTGRES』開発開始 |
1987年 | 『POSTGRES』デモ版 |
1989年 | 『POSTGRES』バージョン1リリース |
1996年 | 『PostgreSQL』へ改名 |
1997年 | 『PostgreSQL 6.0』リリース MVCCなどのRDBMSとしての機能実装 |
2000年 | 『PostgreSQL 7.0』リリース ACIDを満たす |
2005年 | 『PostgreSQL 8.0』リリース |
2010年 | 『PostgreSQL 9.0』リリース |
2017年 | 『PostgreSQL 10』リリース |
2018年 | 『PostgreSQL 11』リリース |
2019年 | 『PostgreSQL 12』リリース |
2020年 | 『PostgreSQL 13』リリース |
PostgreSQLの特徴を見ていきましょう。
PostgreSQLはオブジェクト指向を採用しているという特徴があります。RDBMSの中でもオブジェクト指向の概念を採用した代表的な製品として有名です。
オブジェクト指向の概念や代表的な種類について解説された記事はこちら>>
PostgreSQLは標準SQLに準拠しているという特徴があります。昨今数多くのDBMSがSQLを独自拡張する形で実装しているため、標準SQL構文よりも独自構文の方が使いやすいといったいわゆる方言のような違いがあります。PostgreSQLは標準SQLに準拠することを重要視しているため、独自の構文を基本的には導入しない方針で設計されております。
PostgreSQLはマルチプラットフォームという特徴があります。Windows、Linux(その他Unix形)、MacOSなど数多くのプラットフォームに対応しております。
PostgreSQLは高性能で高可用性という特徴があります。「テーブル・パーティショニング」「テーブル・スペース」など高性能が求められる大規模システム向けの機能拡張が実装されています。またバージョン9.0以降、標準機能でレプリケーションをサポートし、専用のミドルウェアを採用するなど高可用性のための環境が複数用意されております。
PostgreSQLの基本的なコマンドを以下の表にまとめておりますのでご覧ください。
カテゴリ | 内容 | コマンド |
データベース | データベース一覧の表示 | \l |
データベースの選択 | \c データベース名 | |
テーブル | テーブル一覧の表示 | \dt; |
テーブル構造の表示 | \d テーブル名; | |
表示数指定 | select * from テーブル名 limit 数; | |
表示の開始位置を指定 | select * from テーブル名 offset 数; | |
データの更新 | update テーブル名 set 更新内容; | |
データの削除 | delete from テーブル名 where 条件; | |
インデックス | インデックスの追加 | create index インデックス名 on テーブル名(カラム名); |
インデックスの削除 | drop index インデックス名; | |
起動 | サービスの起動 | postgres -D /usr/local/var/postgres |
関数 | 文字数 | select length(カラム名) from テーブル名; |
文字列連結 | select concat(文字列, 文字列, …) from テーブル名; |
PostgreSQLを理解するために歴史や特徴、基本的なコマンドなどを簡単に解説させて頂きました。PostgreSQLを一言で表すと『MySQLと人気を二分するオープンソースのリレーショナルデータベースシステム(RDBMS)』です。PostgreSQLの特徴として「高い信頼性」「機能の堅牢性」「パフォーマンスが高い」などが挙げられます。PostgreSQLについてこの記事で記載されている最低限の内容は理解しておくようにしましょう。