PostgreSQL チュートリアル

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

PostgreSQL の開発者はこれを次のように発音します。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つだけ含めることができます。主キーを使用してデータを検索できます。
  • 外部キー:外部キーは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

その他の拡張