PostgreSQL(ポストグレエスキューエル)。商用製品と同等の機能/性能を誇る、オープンソースのオブジェクトリレーショナルデータベース管理システム(ORDBMS)です。

オープンソースのデータベース/PostgreSQLとは

PostgreSQL(ポストグレエスキューエル)。商用製品と同等の機能/性能を誇る、オープンソースのオブジェクトリレーショナルデータベース管理システム(ORDBMS)です。

PostgreSQL(ポストグレエスキューエル)とは、商用製品と同等の機能/性能を誇る、オープンソースのリレーショナルデータベース管理システム(RDBMS)です。

目次

「PostgreSQL」基本情報
  ・概要
  ・主な特徴
  ・同様製品(概要情報)
  ・導入事例
  ・ライセンス情報
  ・ダウンロード
  ・情報提供協力

ざっくりわかる「PostgreSQL」
第1回 PostgreSQLの概要と特徴(入門編)
  ・参考サイト
第2回 PostgreSQLのダウンロードとインストール
  ・参考サイト
第3回 PostgreSQLのバックアップとリストア​
  ・PostgreSQL主なバックアップ方法
  ・参考サイト
第4回 PostgreSQLとMySQLとの違い
  ・「MySQL」とは
  ・参考サイト
第5回 PostgreSQLとOracleとの比較
  ・「Oracle」とは
  ・参考サイト

TOPに戻る

「PostgreSQL」基本情報

概要

PostgreSQL(ポストグレエスキューエル)とは、商用製品と同等の機能/性能を誇る、オープンソースのオブジェクトリレーショナルデータベース管理システム(ORDBMS)です。

【名称と読み方】
「PostgreSQL」という名称は、さまざまなRDBMS製品の基にもなった「Ingres」の後継を意味する「Post-Ingres」に由来しています。
読み方としては、略称で「ポスグレ」と表現すれば「PostgreSQL」のことを指します。

【基本説明】
PostgreSQLは、商用製品と比較しても同等の機能/信頼性を有していて、MySQLと並び人気が高いオープンソースデータベースです。RDBMSにオブジェクト指向概念を導入した「ORDBMS」の代表的な製品です。
商用製品「Oracle」と機能が近いこともあり、主に企業情報システムのデータベースなどとして採用されています。JSONデータ型にも対応したことにより、Webシステムなどにも適用範囲を広げています。多機能であるという特徴に加え、スケーラビリティーも向上し、大規模システムへの採用も増えています。

【経緯】
PostgreSQLは、世界中のコミュニティメンバーによる積極的な開発によりバージョンアップを繰り返す中で、多くの機能追加が行われてきました。
バージョン6.3から日本語に対応し、日本でもさまざまな規模のシステムで幅広く使われてきています。

主な特徴

【スケーラビリティと柔軟性】
PostgreSQLのスケーラビリティ能力により、組み込みアプリケーションから大規模システムまで幅広く対応できます。

【高機能】
PostgreSQLは、トランザクション、サブクエリ、トリガなど大規模商用データベースシステムの持つほとんどの機能を搭載しています。また、ユーザ定義型、継承など、他の製品では、あまり見かけない機能も持ち合わせています。

【大規模システム向けの機能拡張】
PostgreSQLには、テーブルスペース、テーブルパーティショニングなどの大規模システム向けの機能拡張が実装されています。また、専用ミドルウェアである「pgpool-II」を活用することで負荷分散も可能となります。

【マルチプラットフォーム】
PostgreSQLは、UNIX系環境以外でも、Linux、Windows、MacOSXなどの多くのプラットフォームをサポートしています。開発も活発に行われており、マルチコアサポートなど多様なアーキテクチャに対応しています。

【マルチバイトコード対応】
日本語その他のマルチバイトコードに対応しています。LIKEや正規表現によるマルチバイト検索もサポートしています。
「JIS X 0213(JIS2004)」にいち早く対応することにより、完全な日本語環境を提供しています。

【万全なサポート】
PostgreSQLは企業提供により、ハイレベルなオフィシャルサポートが提供されています。

【管理機能】
PostgreSQL専用、もしくは、各種データベース汎用のデータベース接続クライアントで管理できます。「psql」、「pgAdmin」、「phpPgAdmin」など豊富に揃っています。

【並列実行性能に重点】
CPU数が増えた場合のスケーラビリティが高く、接続数が増えても性能が維持されます。追記型データ構造も並列実行性能を高めることに寄与しています。

【PostgreSQLのクラスタ化】
PostgreSQLは、レプリケーションなどのクラスタシステムはデータベース本体には含まれていません。クラスタ化を実現するためには、クラスタ用ソフトをアドオンする必要があります。代表的なものとして、「pgpool-II」などがあります。

同様製品(概要情報)

同様な機能を提供する製品として、次のようなものがあります。

商用製品:「Oracle」、「PowerGres Plus」など。

オープンソース製品:「MySQL」など。

導入事例

近年、企業システムへのオープンソースソフトウェア活用の流れを受け、商用システムを押しのけて採用される例も増えています。特に、Webシステムのバックエンドデータベースなどを中心として採用が拡大しています。
中小規模からエンタープライズ規模まで、さまざまな領域で幅広く利用されています。

導入事例については、こちらのページをご覧ください。
→SRA OSS,inc.日本支社 PostgreSQL/PowerGres 導入事例

ライセンス情報

LICENCEPostgreSQLのライセンスは、「BSDライセンス」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

ダウンロード

ダウンロードページ

情報提供協力

このページは、SRA OSS,inc. 日本支社の協力により作成しました。

TOPに戻る

ざっくりわかる「PostgreSQL」

オープンソースリレーショナルデータベース「PostgreSQL」について、さまざまな角度から紹介します。

第1回 PostgreSQLの概要と特徴(入門編)

「PostgreSQL」の概要について解説しているサイトを紹介します。

参考サイト

[PostgreSQLオフィシャルサイト(英語版)]

ポイント
PostgreSQLに関するさまざまな最新情報が発信されています。

テーマ
・Home
・About
・Download
・Documentation
・Community
・Developers
・Support

ページリンク
→「PostgreSQL」オフィシャルサイト(英語版)

[日本PostgreSQLユーザ会]

ポイント
「日本におけるPostgreSQLの普及と発展」を主な目的とするユーザ会です。
PostgreSQLに関する各種活動が行われています。
・PostgreSQLの研究開発および普及促進
・PostgreSQLに関する情報の公開
・会員相互および外部との技術的/人間的交流

テーマ
・ユーザ会
・支部
・分科会・委員会
・ダウンロード
・ドキュメント
・イベント
・ニュース
・カレンダー
・サイトについて

ページリンク
→「日本PostgreSQLユーザ会」オフィシャルサイト

[PostgreSQL日本語ドキュメント]

ポイント
PostgreSQLの概要/歴史/チュートリアル/各機能解説/使い方/技術的情報などについて体系的にまとめられているドキュメントです。

テーマ
はじめに
  1. PostgreSQLとは?
    |
  5. バグレポートガイドライン
I. チュートリアル
  1. さあ始めましょう
  2. SQL言語
  3. 高度な諸機能
II. SQL言語
  4. SQLの構文
    |
  15. パラレルクエリ
III. サーバの管理
  16. ソースコードからインストール
    |
  31. リグレッションテスト
IV. クライアントインタフェース
  32. libpq - C ライブラリ
    |
  35. 情報スキーマ
V. サーバプログラミング
  36. SQLの拡張
    |
  48. レプリケーション進捗の追跡
VI. リファレンス
  I. SQLコマンド
  II. PostgreSQLクライアントアプリケーション
  III. PostgreSQLサーバアプリケーション
VII. 内部情報
  49. PostgreSQL内部の概要
    |
  67. プランナは統計情報をどのように使用するか
VIII. 付録
  A. PostgreSQLエラーコード
    |
  L. 貢献者

ページリンク
→「日本PostgreSQLユーザ会」オフィシャルサイト →PostgreSQL 文書

[PostgreSQLが人気の理由]

ポイント
PostgreSQLの「シェア状況」「スタートアップ企業に選ばれていること」「人気の理由」などについて解説されています。
『PostgreSQLは1つの会社によって所有されていない。PostgreSQLは、手に入れられる中で最も自由なオープンソースプロジェクトに近い』とまとめられています。

テーマ
・ほかのみんなもPostgreSQLを使っている
・PostgreSQLが人気を集める理由
・Postgres SQLの未来は明るい

ページリンク
→ZDNet Japan →「PostgreSQL」がスタートアップ企業に選ばれる理由

TOPに戻る

第2回 PostgreSQLのダウンロードとインストール

PostgreSQLを各環境へインストールする方法を紹介します。

参考サイト

[Linux(CentOS)編]

ポイント
「CentOS 7」に「PostgreSQL 9.5.3」をインストールする手順について説明されています。
PostgreSQLコミュニティが配布しているRPMファイルを使用しています。

テーマ
・最初に
・1. RPMファイルを準備する
・2. RPMパッケージをインストールする
・3. PostgreSQLの起動方法
  ・3-1. ~/.bash_profileを編集
  ・3-2. DBクラスタ作成
  ・3-3. 設定ファイルを編集
  ・3-4. DB起動
・4. 起動の確認
・5. 動作確認(テーブル作成、データ挿入)

ページリンク
→Qiita →RPMを用いたPostgreSQL 9.5 のインストール手順

[Windows編]

ポイント
「Windows10(64bit)」に「PostgreSQL 9.6.0」をインストールする方法について紹介されています。
PostgreSQLオフィシャルサイトからダウンロードしてインストールします。
多数のスクリーンショットが掲載されており、非常に分かりやすくなっています。

テーマ
・PostgreSQLのダウンロード
・PostgreSQLのインストール

ページリンク
→DBOline →PostgreSQLのダウンロード及びインストール

[Mac編]

ポイント
「Mac OS X El Capitan 10.11.2」にPostgreSQLをインストールする方法が紹介されています。
パッケージ管理システム「Homebrew」でインストールしています。
「Homebrew」とは、「Mac OS X」上で使用できるパッケージ管理システムです。「yum」や「apt-get」と同様の機能を有しています。

テーマ
1. Homebrewで PostgreSQL をインストール
  ・※ 本来ならこれでログインして完了なのですが...
  ・参考サイト :
2. 接続用のユーザをつくる
  ・参考サイト :
3. 接続用のユーザでログインする
4. ログインしたら新しくdb作る
5. Adminer を使用してブラウザから PostgreSQL に接続する
  ・参考サイト :
6. Adminer に既存の sql データをインポートする
  ・ターミナルよりSQLデータをインポート
  ・【追記】 BcPosgreに接続していない場合

ページリンク
→Qiita →MAPP 環境を構築する!!(PostgreSQL を Mac にインストール)

[Docker編]

ポイント
Ruby」と「PostgreSQL」で「Ruby on Railsアプリケーション」のDocker開発環境をつくる方法について解説されています。
・macOS 10.12.2
・Docker 1.12.3
・Ruby on Rails 5.0.0.1
・PostgreSQL 9.6.1

テーマ
・動作環境
・コンテナ
  1. webコンテナ
  2. dbコンテ
  3. bundleコンテナ
・構築手順
  1. Dockerfileを書く
  2. Docker Composeの設定を書く
  3. Gemfile
  4. Dockerfileをビルドする
  5. Railsプロジェクトを生成する
  6. データベースの接続設定をする
  7. Gemをインストールする
  8. データベースをつくる
  9. 各コンテナを起動する
・実用例
  ・サーバを立ち上げる
  ・コンソールを立ち上げる
  ・サーバを停止する

ページリンク
→Simplie Post →Docker ComposeでRuby+PostgreSQLによるRails開発環境を構築する方法

TOPに戻る

第3回 PostgreSQLのバックアップとリストア​

PostgreSQLの「バックアップ」「リストア」について紹介します。

PostgreSQL主なバックアップ方法

PostgreSQLの主なバックアップ方法として、以下の4つの方法が利用できます。
1.ファイルバックアップ
2.ファイルシステムのスナップショット
3.「pg_dump」「pg_dumpall」コマンドによるバックアップ
4.アーカイブログによるバックアップ

参考サイト

[PostgreSQLのバックアップとリストア]

ポイント
「PostgreSQL9.3」での、バックアップとリストアの機能について、網羅的に解説されています。
「アーカイブログ」を使用した、バックアップ&リストア方法について、コマンドベースで説明されています。

テーマ
・データベースのバックアップとリストア
・バックアップの種類と特徴
  ・ファイルのバックアップ
  ・ファイルシステムのスナップショット
  ・pg_dump/pg_dumpallコマンド
  ・アーカイブログによるバックアップ
・アーカイブログによるバックアップの仕組み
  ・ベースバックアップの取得
  ・ WALアーカイブの有効化
  ・アーカイブログを利用したリカバリ
  ・recovery.conf の設定
  ・実際の実行例
・まとめ

ページリンク
→SIOS →OSSブログ →PostgreSQLのバックアップとリストア

[日本PostgreSQLユーザ会 ドキュメント]

ポイント
日本PostgreSQLユーザ会によるドキュメントです。詳細レベルまで解説されています。

テーマ
25.1. SQLによるダンプ
  25.1.1. ダンプのリストア
  25.1.2. pg_dumpallの使用
  25.1.3. 大規模データベースの扱い
25.2. ファイルシステムレベルのバックアップ
25.3. 継続的アーカイブとポイントインタイムリカバリ(PITR)
  25.3.1. WALアーカイブの設定
  25.3.2. ベースバックアップの作成
  25.3.3. 低レベルAPIを使用したベースバックアップの作成
  25.3.4. 継続的アーカイブによるバックアップを使用した復旧
  25.3.5. タイムライン
  25.3.6. ヒントと例
  25.3.7. 警告

ページリンク
→「日本PostgreSQLユーザ会」オフィシャルサイト →PostgreSQL 文書 →第25章 バックアップとリストア

[cronを使用した自動定期バックアップ]

ポイント
「PostgreSQL 9.5.3」のDBについて、「cron」+「pg_dump」を使用して自動定期バックアップする方法を解説しています。

テーマ
1 バックアップの取得方法
  1.1 リストア方法
2 cronで定期的にバックアップを取る
  2.1 バックアップ場所の作成
  2.2 バックアップ用シェルスクリプトの作成
  2.3 cronで定期的にバックアップをおこなう
3 まとめ

ページリンク
→vdeep →PostgreSQLのバックアップをcronで定期的におこなう方法

[バックアップツール「WAL-E」]

ポイント
バックアップツール「WAL-E」で、AWS(EC2)上のPostgreSQLについて、バックアップ&リストアする方法が解説されています。

テーマ
・S3 側の準備
・wal-e のインストール
・PostgreSQL のインストール
・envdir 用設定
・バックアップの実行
・リストアする
・指定の時刻の状態に復元する
・定期実行
・バックアップの削除
・ファイルの暗号化
・WAL-E を使った replication

ページリンク
→1Q77 →WAL-E で PostgreSQL の Backup / Restore

TOPに戻る

第4回 PostgreSQLとMySQLとの違い

「PostgreSQL」と「MySQL」との違いについて参考にできるサイトを紹介します。

「MySQL」とは

MySQL(マイエスキューエル)とは、高速性と堅牢性を追及したマルチユーザ/マルチスレッドのオープンソースリレーショナルデータベース管理システム(RDBMS)です。世界中で最もよく利用されており、Oracle社が開発を行っています。

詳細については、こちらを参照ください。
→OSS×Cloud News →OSS情報 →MySQL

参考サイト

[スライド解説 MySQLとPostgreSQLの違い(前半)]

ポイント
第32回 PostgreSQL 勉強会で発表された「MySQLとPostgreSQLの違い」スライド(前半)です。
「MySQL 5.6(InnoDB)」と「PostgresSQL 9.4」を比較対象としています。

2大OSSDBについて、次のようにまとめられています。

MySQL
・スピード重視
・シンプル(機能が少ない)
・トランザクションが必要な大規模案件向き

PostgreSQL
・機能性と堅牢性重視
・高機能だが限界値はMySQLより低い
・データの利用と保守が必要な案件向き

テーマ
・アーキテクチャの違い
・SQLの違い
・機能の違い
・まとめ

ページリンク
→Speaker Deck →2大OSSデータベースのMySQLとPostgreSQLの違い(前半)

[スライド解説 MySQLとPostgreSQLの違い(後半)]

ポイント
第32回 PostgreSQL 勉強会で発表された「MySQLとPostgreSQLの違い」スライド(後半)です。
・「MySQL」と「PostgreSQL」には大きな違いがある
・今後の「MySQL」の方向性
  ・より大規模アーキテクチャに特化
  ・ライバルはPostgreSQLではなくNOSQL
・今後の「PostgreSQL」の方向性
  ・正統派RDBとして進化
  ・ライバルはMySQLではなく商用DB
・「PostgreSQL」と「MySQL」は、今までもこれからも住み分けが進んでいく

テーマ
・コミュニティの違い
・ハマリどころのTips
・MySQL 5.7とPostgreSQL 9.5
・まとめ

ページリンク
→Speaker Deck →2大OSSデータベースのMySQLとPostgreSQLの違い(後編)

[脆弱性に関して、MySQL側から見る他OSSDBとの比較]

ポイント
「MySQLおよびMySQL派生RDBMSのゼロデイ脆弱性」への対応に関して、MySQLを中心にして、他OSSDBと比較されています。

テーマ
・MySQLのこれまでと現在
・今後もMySQLを選択し続けるか。それとも他オープンソースRDBMSを選択するか
  ・MySQLのメリット
  ・MySQLのデメリット

ページリンク
→Security Navi →オープンソースRDBMSにおけるMySQLの現状と、MySQL以外の選択肢

[なぜUber EngineeringはPostgresからMySQLに切り替えたのか?]

ポイント
Uber Engineeringが「Postgres」から「MySQL」に切り替えた理由について、アーキテクチャの見地から解説されています。

テーマ
・はじめに
・Postgresのアーキテクチャ
  ・ディスク上のフォーマット
  ・レプリケーション
  ・Postgresの設計に対する結論
  ・ライトアンプリフィケーション
  ・レプリケーション
  ・データ破損
  ・レプリカのMVCC
  ・Postgresのアップグレード
・MySQLのアーキテクチャ
  ・InnoDBにおけるディスク上のレプリケーション
  ・レプリケーション
  ・MySQLの設計に関するその他の利点
  ・バッファプール
  ・接続の処理方法
・まとめ

ページリンク
→POSTD →なぜUber EngineeringはPostgresからMySQLに切り替えたのか

TOPに戻る

第5回 PostgreSQLとOracleとの比較

「PostgreSQL」と「Oracle」の違いについて参考にできるサイトについて紹介します。

「Oracle」とは

「Oracle Database」とは商用リレーショナルデータベースです。米国のOracle社が開発/販売しており、幅広いプラットフォームをサポートしています。

参考サイト

[SQLの観点から見る「Oracle Database」「PostgreSQL」「MySQL」の違い]

ポイント
「SQLの視点からRDBMSの主な差異」「異なるRDBMSに移行する際の注意点」などについて解説されています。
テーマごとに、各DBの違いについてまとめられています。

テーマ
・取り扱うRDBMS
・構成
・定義移行
  1. 表作成:データ型の指定
  2. 表作成:命名規則
  3. 表作成:チェック制約の定義
  4. 連続値の生成
  5. シノニムの有無
・データ移行
  1. NULLと空文字の扱い
  2. 日付書式の違い
・アプリケーション移行
  1. 外部結合の構文
  2. 検索結果の特定範囲の行の抽出
  3. DUAL表の指定
  4. 組み込み関数の共通性
  5. プロシージャの違い
・移行評価(トランザクション)
  1. デフォルトのトランザクションの動作
  2. トランザクション中のエラーにおける動作・対応
  3. トランザクション分離レベルとデータ読み取り
・SQLチューニング
  1. SQLチューニングの作業ステップ
  2. 効率・非効率なSQLの記述パターン
  3. サポートされている実行計画
  4. ヒントの有無

ページリンク
→アシスト →SQLの観点から「Oracle Database」「PostgreSQL」「MySQL」の特徴を整理しよう!

[「Oracle Database」「MySQL」「PostgreSQL」の「バックアップと障害復旧」考え方の違い]

ポイント
「バックアップ」と「障害復旧」の考え方/手順の違いから、「Oracle Database」「MySQL」「PostgreSQL」の3つのRDBMSのアーキテクチャ/設計思想などについて比較解説しているスライドです。

テーマ
1. 前提知識:RDBMSのバックアップと復旧について
2. バックアップ周辺の各RDBMS製品アーキテクチャ
3. 一般的なモデルとしてのOracle Databaseのバックアップと復旧
4. バックアップの非一貫性を許容しないMySQL
5. 昔のOracle Databaseにかなり似ている PostgreSQLのバックアップと復旧

ページリンク
→SlideShare →バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い

[「Oracle」と「PostgreSQL」18のギャップ]

ポイント
OracleユーザーがPostgreSQLに入門した際に感じた「18のギャップ」についてまとめられています。
ユーザー視点に立った比較として参考にできます。

テーマ
・データ操作(DML)
  1. from句なしでクエリが実行できる
  2. シーケンスの取得方法
  3. 暗黙的型変換
  4. to_single_byteがない
  5. where句での正規表現
  6. where正規表現で文字列結合するときは丸括弧()で囲む
  7. 現在日時取得
  8. 時刻差分
  9. Merge文が無い
  10. 集約関数:カンマ区切りで集約
  11. last_valueの使い方
  12. CSV出力
  13. バルクロード
・データ定義(DDL)
  14. カラム名の最大長に制限がない
  15. 数値型の定義
  16. カラムの桁数変更
・データ・ディクショナリ
  17. テーブルのメタ情報取得方法
・JDBC
  18. 大量件数のSELECTでOutOfMemory
・最後に

ページリンク
→Qiita →PostgreSQLに入門して感じた18のギャップ

TOPに戻る

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

PostgreSQL最新TOPICS

【講演資料を公開】10/18「基幹 DB で PostgreSQL を採用! 住友電工は如何にして OSS 活用の決断をしたのか? ~企業システムにおけるオープンソースの活用とセキュリ ティ対策事例~」(2017年12月13日 12:05)

2017年10月18日(水)14:30~16:45 JJK 会館 7F (東京中央区) にて「基幹 DB で PostgreSQL を採用! 住友電工は如何にして OSS 活用の決断をしたのか? ~企業システムにおけるオープンソースの活用とセキュリティ対策事例~」と題したセミナーが開催されました。 当日は、多くの方がご来場くださり、お陰様で大盛況の内に終了することが出来ました。ありがとうご...

イベント情報

無料資料プレゼント

AI技術の方向性と企業の活用シナリオ

講演資料を見るには、 プライバシーポリシーに同意して、送付先メールアドレスをご入力しご請求ください。

またご入力いただきました情報は、当該資料の作成・提供企業とも共有させていただき、当社及び各社のサービス、製品、セミナー、イベントなどのご案内に使用させていただきます。

本資料を見るには次の画面でアンケートに回答していただく必要があります。



  • PostgreSQLサイド(PostgreSQL)@SRAOSS
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter