PostgreSQL

PostgreSQL 13.8 に関する技術情報

このリリースは 13.7 からの修正リリース(2022年8月11日リリース)です。
13.X からのアップデートではダンプ、リストアは不要です。
しかしながら、13.7 よりも前のバージョンからアップデートする場合には、13.7 のリリース情報も参照してください。

続きを読む

PostgreSQL 15検証報告

更新日: 2022年10月20日

2022年10月にリリースされたPostgreSQL 15の主要な新機能について動作検証を行った結果を報告します。

本検証レポートはコマンド実行手順も詳細に記載していますので、PostgreSQL 15 を使って実際に新機能を確認したい方のガイドブックとしても活用できます。

続きを読む

redis_fdw による PostgreSQL と Redis の連携

redis_fdw は、リレーショナルデータベース PostgreSQL からキーバリューストア Redis にアクセスする拡張モジュールです。redis_fdw を使うことで、高速なデータの読み書きができる Redis と、SQL で複雑なデータの操作ができる PostgreSQL 間で円滑なデータの連携ができます。

この記事では、redis_fdw の概要、インストール、基本的な使い方、テーブルオプションについて説明します。なお、Redis 自体の説明については Redis の紹介 をお読みください。

続きを読む

増永教授のDB特論⑦
「 SQL とバッグ意味論 ―重複タップルの部分削除―」

 

1. はじめに

 リレーショナルデータモデルの始祖コッド(E.F. Codd)はリレーション(relation)とは集合(set)であると定義しました.ここに,集合とは数学における「集合」を意味し,集合論の始祖カントール(G. Cantor)は「集合とは異なる元(element)の集まり」と定義しました.したがって,リレーションに重複したタップル(tuple)は出現しません.また,それが故にリレーションには必ず「キー」が定義できます.
 一方,国際標準リレーショナルデータベース言語 SQL (以下,SQL) で定義されるテーブル (table,表) は集合ではありません・・・・.テーブルでは重複したタップルの出現が許されるからです.したがって,テーブルでは必ずしもキーを定義できるわけではありません.
 テーブルは一般的にはバッグ(bag),数学ではマルチ集合(multiset)と呼ばれます.リレーションとテーブルの違いは,フォーマルには,リレーショナルデータモデルは集合意味論 (set semantics) に則り,SQL はバッグ意味論(bag semantics)に則った体系であると説明できます.意味論が違うので,当然のことながらリレーショナルデータモデルと実践のためのSQLではいろいろと違いが出てきます.本稿では,リレーションに対するデータ操作では起こり得ませんが,テーブルのデータ操作で発生する「重複タップルの部分削除」(partial delete of duplicate tuples)に焦点を当てて,少しく蘊蓄うんちくを傾けてみたいと思います.
 
続きを読む

PostgreSQL 14.4 に関する技術情報

このリリースは 14.3 からの修正リリース(2022年6月16日リリース)です。
14.X からのアップデートではダンプ、リストアは不要です。
しかしながら、本リリースで修正された障害により既にインデックスに破損が生じている可能性があるため、該当するインデックスを再構築することが推奨されます。項目 1番を参照してください。
また、14.3 よりも前のバージョンからアップデートする場合には、14.3 のリリース情報も参照してください。

続きを読む

ロジカルレプリケーションの紹介 (3)

ロジカルレプリケーション紹介の 3 回目となります。
1 回目では、ロジカルレプリケーションの概要や基本的な使い方を紹介しました。
2 回目では、ロジカルレプリケーションの構成や監視方法などを紹介しました。
今回はロジカルレプリケーションで発生するコンフリクトやエラーについて紹介します。

続きを読む

ロジカルレプリケーションの紹介 (2)

ロジカルレプリケーション紹介の 2 回目となります。1 回目では、ロジカルレプリケーションの概要や基本的な使い方を紹介しました。今回はロジカルレプリケーションでトリガを利用する方法や、ロジカルレプリケーションの構成、運用時の注意点などについて紹介します。

続きを読む