PostgreSQL入門
データベースエンジニアの方には馴染みのPostgreSQL(ポスグレエスキューエル)ですが、Oracle(オラクル)やMySQL(マイエスキューエル)、Microsoft SQL Server(マイクロソフト・エスキユーエル・サーバー)などと比べると、知名度ではやや劣ります。
しかし、このPostgreSQLは無償ながら大変優れたRDBMSです。データベースに関わるエンジニアを目指すなら、ぜひとも押さえておきたいPostgreSQLについて、ここでは徹底入門として解説していきます。
PostgreSQLとは
PostgreSQL(ポストグレスキューエル)は、オープンソースのRDBMS(リレーショナルデータベース管理システム)の1つです。
すべてのソースが無料公開され、誰もが自由に利用可能です。PostgreSQLは「BSDライセンス」を採用し、著作権表示及び免責事項の明記さえしておけば、再配布・再利用も自由に行えます。また、PostgreSQLはLinux、macOSなどのUNIX系OSに加え、Windowsにも対応しています。
PostgreSQLの人気度
データベース管理システム人気ランキングを定期的に調査、発表しているDB-Enginesによると、2021年8月時点でPostgreSQLはOracle・MySQL・Microsoft SQL Serveに次ぐ4位の座にあります。
同じオープンソースのMySQLと比較するとランキングでは及びませんが、優れた機能を兼ね備え、根強い人気と豊富な導入実績があります。
PostgreSQLの歴史
「PostgreSQL」は、1986年にカリフォルニア大学バークレー校で「Postgres」という名のプロジェクトにより、主に研究開発目的で開発されました。その約10年後、1997年1月には「PostgreSQL」の最初のバージョン6.0が公開され、当時から流行し始めたインターネットを通じ、世界中のデータベース開発者たちの参加、協力を経て今日の「PostgreSQL」があります。
現在の「PostgreSQL」では他の商用RDBMSと比較しても遜色がなく、高い機能と信頼性を兼ね備えたRDBMSとして広く利用されています。
PostgreSQLの将来性
商用システムではデータの管理が当たり前であり、RDBMSはどんな業界や企業においても業務を遂行する上で欠かせないシステムです。また今はIoTやAIなど、ビックデータを扱うシステムが主流となり、データベース管理の重要性がさらに増しています。
そんな中、大企業でもオラクルなどの商用RDBMSをオープンソースのPostgresSQLに移行する動きもあり、PostgresSQLへの期待がさらに高まっています。
求人ボックスでPostgresSQLエンジニアの求人情報を見てみると、求人件数7,608件(2021.8.9)と前年同時期の5,000件前後から大きく伸びており、その傾向は続いています。以上の状況から、PostgresSQLエンジニアの将来性は高いと言えるでしょう。
データベースとは
ここで一休みして、データベース未経験者の方に向けて、データベースの基本について解説します。データベースに関わっている方は読み飛ばして構いません。
データベースとはデータの集合体を示す言葉であり、概念的なものですが、その概念的なデータベースをコンピュータ上で操作や管理を可能にしたものがDBMS(データベース管理システム)と呼ばれています。
DBMSの役割
DBMSに備わっている機能としては主に次のようなものがあります。これらはすべてのDBMSに備わっている機能です。
1.データの管理機能
データベースに格納するデータ形式について定義し、データの追加・削除、データの更新や検索機能などを提供します。
2.トランザクション管理機能
例えば、A口座の預金を引き出し、B口座に移動するいった処理が同時に行われないと、一時的に不整合が生じますが、それらを1つの処理としてデータベースに反映させることで、データベースに不整合が発生しないようにする機能です。
3.同時実行制御機能
データベースは複数のユーザーが同時にアクセスすることがありますが、それでもデータに不整合が生じないよう、アクセス制御を行います。
4.セキュリティ管理機能
データベースへのアクセス権限のないユーザーが不正アクセスをすることを防ぐ機能です。
5.障害回復管理機能
コンピュータの障害などデータベースに何らかの不具合が発生した際に、データベース内のデータを不具合が発生する前の状態に戻すための機能です。
SQLとは
「SQL」とは、データベースに対する命令を出す際に使われるもので、プログラミング言語と似ています。「SQL」を利用するデータベース管理システムをRDBMS(Relational DataBase Management System)と称し、PostgreSQL・Oracle・SQLServer・MySQLなどが該当します。
一方、SQLを利用しないDBMSとして、「NoSQL」があり、Hbase・MongoDB・Casandraなどの製品があります。
PostgreSQLに関する様々な疑問を解消
ここまでPostgreSQLの概要について紹介してきましたが、逆にさまざまな疑問を持たれた方もいるでしょう。ここではそんな疑問にお答えしていきます。
PostgreSQLのインストール方法は
PostgreSQLのインストーラは EDB 社によって提供され、以下のページからダウンロードできます。
上記のページで 利用したいOS、バージョンに応じたインストーラをダウンロードし、インストーラにてインストールを行います。
PostgreSQLの使い方は
PostgreSQLを学び、体験したい方に、入門書として優しく解説しているサイトをご紹介します。初級エンジニア程度の方であれば、2日~3日でPostgreSQLの基本を習得できるでしょう。
PostgreSQLとOracleとの違いは
PostgreSQLはオープンソースの無料のRDBMS、Oracleは有償のRDBMSという点が大きな違いです。基本的に両者に機能面で大きな違いはありません。なぜなら、Oracleの高い保守料に嫌気が差してOaracleDBから機能的に変わらないPostgreSQLに移行したユーザーが少なくないからです。
それならば、Oracleの存在価値が無くなってしまいそうですが、Oracleには手厚いサポートがあります。何か問題が生じれば、Oracle社の威信をかけて対応してくれるでしょう。一方、無償のPostgreSQLは自己責任です。強いて言えば、PostgreSQLに強いベンダーと保守契約をし、ベンダーにサポートしてもらう方法はあります。
PostgreSQLの代表的導入企業は
PostgreSQLの導入企業について紹介しましょう。Apple・Cisco・Facebook・Fujitsu・Instagram・Skype・Sun Microsystem・Yahooなど、世界に名だたる企業が名を連ねています。こうした実績、安心感もPostgreSQLの強みと言えるでしょう。
エンジニアがPostgreSQLを学ぶべき理由
データベースエンジニアの仕事は、データベース設計・データベースのチューニング・データベース移行・データベースの管理・運用など様々です。最近ではSQLを知らなくとも、O/Rマッパーなどを利用してデータベースを扱うことは可能にはなっていますが、さすがに設計はできません。
また、データベースは時にRDBMSそのものを変更・移行することがあります。社内のコスト見直し、企業間の合併などで、従来のデータベースを別のデータベースに移行するケースは少なくありません。先ほど述べたような、OracleからPostgreSQLへの移行などです。この移行に際しては、Oracle系のエンジニアとPostgreSQL系のエンジニアの両方が必要となりますが、両方に精通したエンジニアがいれば、1人で済みます。
これからの時代、特にエンジニア不足が指摘されている今、マルチタスクができる人材が重宝されます。OracleやSQLサーバーエンジニアの方はぜひPostgreSQLも習得されることをおすすめします。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから