PostgreSQL チュートリアル

PostgreSQL は無料のオブジェクト関係型データベースサーバー(ORDBMS)で、柔軟な BSD ライセンスの下で配布されています。

PostgreSQL 開発者はこれを「post-gres-Q-L」と発音します。post-gress-Q-L。

PostgreSQL のスローガンは「世界で最も先進的なオープンソースのリレーショナルデータベース」です。

参考内容:PostgreSQL 10.1 マニュアル


データベースとは?

データベース(Database)とは、データ構造に従ってデータを組織化・保存・管理する保管庫です。

各データベースには、保存されたデータを作成、アクセス、管理、検索、複製するための、1つまたは複数の異なるAPIがあります。

データをファイルに保存することもできますが、ファイルへのデータの読み書きは比較的遅いです。

そのため、現在ではリレーショナルデータベース管理システム(RDBMS)を使用して大量のデータを保存・管理しています。いわゆるリレーショナルデータベースは、関係モデルを基盤としたデータベースであり、集合代数などの数学的概念や方法を用いてデータベース内のデータを処理します。

ORDBMS(オブジェクト関係データベースシステム)は、オブジェクト指向技術と従来のリレーショナルデータベースを組み合わせたものです。クエリ処理はORDBMSの重要な構成要素であり、その性能の良し悪しはDBMSの性能に直接影響します。

ORDBMS は、従来のリレーショナルデータベースに加えて、いくつかの新しい特性を追加しています。

RDBMS はリレーショナルデータベース管理システムであり、エンティティ間の関連を確立し、最終的には関係テーブルを取得します。

OODBMS(object-oriented database management system)はオブジェクト指向データベース管理システムであり、すべてのエンティティをオブジェクトと見なし、これらのオブジェクトクラスをカプセル化し、オブジェクト間の通信はメッセージを介して行います。OODBMS のオブジェクト関係データベースは、実質的にはリレーショナルデータベースです。


ORDBMS 用語

PostgreSQL データベースの学習を始める前に、ORDBMS のいくつかの用語について理解しましょう。

  • データベース:データベースは、関連するテーブルの集合です。
  • データテーブル:テーブルはデータの行列です。データベース内のテーブルは、単純なスプレッドシートのように見えます。
  • 列:列(データ要素)には同じ種類のデータが含まれます。例えば郵便番号のデータなどです。
  • 行:行(=タプル、またはレコード)は関連するデータの集まりであり、例えばユーザーの購読データ1件です。
  • 冗長性:データを2倍保存するため、冗長性はパフォーマンスを低下させますが、データの安全性を高めます。
  • 主キー:主キーは一意です。1つのデータテーブルには主キーを1つだけ含めることができます。主キーを使用してデータを照会できます。
  • 外部キー:外部キーは2つのテーブルを関連付けるために使用されます。
  • 複合キー:複合キー(組み合わせキー)は、複数の列を1つのインデックスキーとして扱います。一般に複合インデックスに使用されます。
  • インデックス:インデックスを使用すると、データベーステーブル内の特定の情報にすばやくアクセスできます。インデックスは、データベーステーブル内の1つまたは複数の列の値を並べ替える構造です。書籍の目次に似ています。
  • 参照整合性:参照整合性は、関係内で存在しないエンティティを参照することを許可しないことを要求します。これはエンティティ整合性とともに、リレーショナルモデルが満たさなければならない整合性制約条件であり、データの一貫性を保証することを目的としています。

PostgreSQL の特徴

  • 関数:関数を使用すると、データベースサーバー側で命令プログラムを実行できます。

  • インデックス:ユーザーはインデックスメソッドを独自に定義できます。または、組み込みの B ツリー、ハッシュテーブル、GiST インデックスを使用できます。

  • トリガー:トリガーはSQL文によって発動されるイベントです。例:INSERT文がデータ整合性をチェックするトリガーを発動する可能性があります。トリガーは通常、INSERT文またはUPDATE文によって発動されます。

  • マルチバージョン並行制御:PostgreSQL は、マルチバージョン並行制御(MVCC、Multiversion Concurrency Control)システムを使用して並行制御を行います。このシステムは各ユーザーにデータベースの「スナップショット」を提供します。ユーザーがトランザクション内で行った各変更は、そのトランザクションが正常にコミットされるまで、他のユーザーには見えません。

  • ルール:ルール(RULE)により、クエリを書き換えることができます。通常はビュー(VIEW)に対する操作(挿入(INSERT)、更新(UPDATE)、削除(DELETE)など)を実装するために使用されます。

  • データ型:テキスト、任意精度の数値配列、JSONデータ、列挙型、XMLデータなどが含まれます。

    など。
  • 全文検索:Tsearch2 または OpenFTS を使用します。8.3 バージョンでは Tsearch2 が組み込まれています。

  • NoSQL:JSON、JSONB、XML、HStore のネイティブサポート、および NoSQL データベースへの外部データラッパー。

  • データウェアハウス:同じ PostgreSQL エコシステムに属する GreenPlum、DeepGreen、HAWK などへスムーズに移行でき、FDW を使用して ETL を行います。


関連リソース

PostgreSQL 10.1 マニュアル(オンラインマニュアル):http://www.example.com/manual/PostgreSQL/

オフラインマニュアル - PDF版:https://pan.baidu.com/s/1h1J14i8tzJUY3p9yyeW0mA、 抽出コード:xs7r。

オフラインマニュアル - CHM版:https://pan.baidu.com/s/1h1J14i8tzJUY3p9yyeW0mA、 抽出コード:tq4z。

最新版を見る:https://github.com/postgres-cn/pgdoc-cn/releases

その他の拡張機能