マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】PostgreSQL

【OSS情報アーカイブ】PostgreSQL

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

コンテンツ

「PostgreSQL」とは

「PostgreSQL」基本情報

■概要

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

■名称と読み方

「PostgreSQL」という名称は、さまざまなRDBMS製品の基にもなった「Ingres」の後継を意味する「Post-Ingres」に由来しています。

読み方としては、略称で「ポスグレ」と表現すれば「PostgreSQL」のことを指します。

■基本説明

PostgreSQLは、商用製品と比較しても同等の機能/信頼性を有していて、MySQLと並び人気が高いオープンソースデータベースです。RDBMSにオブジェクト指向概念を導入した「ORDBMS」の代表的な製品です。

商用製品「Oracle」と機能が近いこともあり、主に企業情報システムのデータベースなどとして採用されています。JSONデータ型にも対応したことにより、Webシステムなどにも適用範囲を広げています。多機能であるという特徴に加え、スケーラビリティーも向上し、大規模システムへの採用も増えています。

■経緯

PostgreSQLは、世界中のコミュニティメンバーによる積極的な開発によりバージョンアップを繰り返す中で、多くの機能追加が行われてきました。

バージョン6.3から日本語に対応し、日本でもさまざまな規模のシステムで幅広く使われてきています。

■オフィシャルサイト情報

オフィシャルサイト

→PostgreSQL(PostgreSQL: The world”s most advanced open source database)

ライセンス情報

PostgreSQLのライセンスは「PostgreSQL License」です。

詳細について、こちらを参照ください。
→PostgreSQL →License

ダウンロード

→PostgreSQL →Downloads

■同様製品

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

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

「PostgreSQL」の主な特徴

■スケーラビリティと柔軟性

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」などがあります。

PostgreSQLの導入事例

近年、企業システムへのオープンソースソフトウェア活用の流れを受け、商用システムを押しのけて採用される例も増えています。特に、Webシステムのバックエンドデータベースなどを中心として採用が拡大しています。

中小規模からエンタープライズ規模まで、さまざまな領域で幅広く利用されています。

導入事例については、こちらのページをご覧ください。

→SRA OSS,inc.日本支社 PostgreSQL/PowerGres 導入事例

情報提供協力

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

PostgreSQL参考情報①PostgreSQLの概要と特徴(入門編)

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

■日本PostgreSQLユーザ会

概要

「日本におけるPostgreSQLの普及と発展」を主な目的とするユーザ会です。

PostgreSQLに関する各種活動が行われています。
・PostgreSQLの研究開発および普及促進
・PostgreSQLに関する情報の公開
・会員相互および外部との技術的/人間的交流

ページリンク

→「日本PostgreSQLユーザ会」オフィシャルサイト

■PostgreSQL日本語ドキュメント

概要

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

解説テーマ

はじめに
I. チュートリアル
II. SQL言語
III. サーバの管理
IV. クライアントインタフェース
V. サーバプログラミング
VI. リファレンス
VII. 内部情報
VIII. 付録
参考文献
索引

ページリンク

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

■PostgreSQLが人気の理由

概要

PostgreSQLの「シェア状況」「スタートアップ企業に選ばれていること」「人気の理由」などについて解説されています。

『PostgreSQLは1つの会社によって所有されていない。PostgreSQLは、手に入れられる中で最も自由なオープンソースプロジェクトに近い』とまとめられています。

解説テーマ

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

ページリンク

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

PostgreSQL参考情報②PostgreSQLのダウンロードとインストール

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

■Linux(CentOS)編

概要

「CentOS 7」に「PostgreSQL 9.5.3」をインストールする手順について説明されています。

PostgreSQLコミュニティが配布しているRPMファイルを使用しています。

解説テーマ

・最初に
・1. RPMファイルを準備する
・2. RPMパッケージをインストールする
・3. PostgreSQLの起動方法
・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 データをインポートする

ページリンク

→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開発環境を構築する方法

PostgreSQL参考情報③PostgreSQLのバックアップとリストア​

PostgreSQL参考情報③PostgreSQLのバックアップとリストア​

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

■PostgreSQL主なバックアップ方法

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

■参考サイト(1) 日本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

PostgreSQL参考情報④PostgreSQLとMySQLとの違い

PostgreSQL参考情報④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の違い」スライド(後半)です。

『PostgreSQLとMySQLは、今までもこれからも住み分けが進んでいく』としています。

今後の「MySQL」の方向性

・より大規模アーキテクチャに特化
・ライバルはPostgreSQLではなくNOSQL

今後の「PostgreSQL」の方向性

・正統派RDBとして進化
・ライバルはMySQLではなく商用DB

解説テーマ

・コミュニティの違い
・ハマリどころの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に切り替えたのか

PostgreSQL参考情報⑤PostgreSQLとOracleとの比較

PostgreSQL参考情報⑤PostgreSQLとOracleとの比較

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

■「Oracle」とは

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

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

概要

「SQLの視点からRDBMSの主な差異」「異なるRDBMSに移行する際の注意点」などについて解説されています。

テーマごとに、各DBの違いについてまとめられています。

解説テーマ

・取り扱うRDBMS
・構成
・定義移行
・データ移行
・アプリケーション移行
・移行評価(トランザクション)
・SQLチューニング

ページリンク

→アシスト →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)
・データ定義(DDL)
・データ・ディクショナリ
・JDBC
・最後に

ページリンク

→Qiita →PostgreSQLに入門して感じた18のギャップ

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

この記事のタグ一覧

おすすめの記事

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

AIツール実験室

2023.12.27

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

各チャットAIの「添削能力」について比較確認をしています。 「ChatGPT4と同等の添削能力を発揮した無料チャットAI」にご注目ください。 また、 ChatGPTカスタマイズ機能「GPTs」を利用して作成した GPTs文章添削機能「添削師匠さん✍️」を紹介しています。 課金勢は試しに使ってみてください。

AIツール関連 記事リストポータル

AIツール

2023.10.05

AIツール関連 記事リストポータル

AI 関連の記事をまとめたポータルページです。

【IT用語解説】「 デジタルヒューマン 」とは😊

IT用語解説

2024.01.26

【IT用語解説】「 デジタルヒューマン 」とは😊

【IT用語解説】「 デジタルヒューマン 」として、「デジタルヒューマンとは何か?」「どのようにして作成できるのか?」「私たちの世界にどのような影響を与えているのか?」などについて、まとめています。