PostgreSQL入門:特徴と基本操作

PostgreSQL(ポスグレ)は、オブジェクトリレーショナルデータベース管理システムの一つであり、現在では略して「PG」と呼ばれることが多い。本稿では、PGの基本的な特徴と実用的な操作方法について解説する。 他のDBとの比較 PGを検討する前に、商用データベース市場の主要プレイヤーについて触れておく必要がある。 Oracle Database 市場シェア第一位を誇る商用デー ...

5月27日 00:48 投稿

PostgreSQLのトリガーとインデックスの基本

PostgreSQLのトリガーは、特定のデータベースイベントが発生した際に自動的に実行されるコールバック関数です。 以下はPostgreSQLトリガーに関する重要なポイントです: トリガーは以下のタイミングで動作します: 操作前(制約チェックおよび挿入、更新、削除試行前)。 操作後(制約チェックおよび挿入、更新、削除完了後)。 更新操作(ビューに対する挿入、更新、削除 ...

5月25日 16:57 投稿

クラッシュから安定まで:Seata分散トランザクションの3つのデータベース適応実践ガイド

SeataはApacheのオープンソース分散トランザクションソリューションとして、AT(Automatic Transaction)モードを通じて非侵入型トランザクション管理を実現します。その核心はデータベーストランザクションログテーブルに依存し、グローバルトランザクション状態を記録します。現在、公式はMySQL、PostgreSQL、Oracleなどの主要なデータベースのサポートを提供しています ...

5月25日 06:57 投稿

PostgreSQL入門:オブジェクト指向の設計思想とカタログテーブルの活用

PostgreSQLとは PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システム(ORDBMS)です。単なるリレーショナルデータベースにとどまらず、オブジェクト指向の設計思想を取り入れており、データベース内部の構造をより柔軟かつ拡張性高く構築できます。 PostgreSQLの特徴 オープンソース 豊富なデータ型(JSON、幾何データ型、ユーザ定義型 ...

5月24日 02:06 投稿

PostgreSQLの主な機能と使い方

1. 型変換 PostgreSQLでは、::演算子を使用して値を特定の型に変換できます。たとえば、計算結果をnumeric型に変換するには以下のようにします: ( ... )::numeric(10, 2) -- 総桁数10、小数点以下2桁に変換 この例では、括弧内の計算結果を小数点以下2桁のnumeric型に変換しています。 2. COALESCE関数 COALESCE()関数は、複数の引数から最初のNULLでない値を返します。 ...

5月22日 16:38 投稿

PostgreSQLでのベクトル検索の実践ガイド

PostgreSQLは拡張機能pgvectorを活用することで、高次元ベクトルデータの保存と類似度検索が可能になります。機械学習や自然言語処理、レコメンデーションエンジンなど、ベクトル空間モデルを必要とするアプリケーションに最適です。 拡張のインストールと初期設定 CREATE EXTENSION IF NOT EXISTS vector; ベクトルカラムを持つテーブルの定義 CREATE TABLE catalog ( ...

5月20日 22:06 投稿

PostgreSQL データ同期の実装手法:レプリケーションと CDC

PostgreSQL におけるデータ同期戦略 PostgreSQL 環境において、データの一貫性を保ちながら複数ノード間で情報を共有するには、用途に応じた同期メカニズムの選定が不可欠です。主に物理層での複製、論理層での变更転送、外部ミドルウェアの活用、およびバッチ処理の 4 つのアプローチが存在します。選定の際は、遅延許容度、プラットフォームの異種性、および運用コストを ...

5月20日 16:47 投稿

LightDBにおけるグローバル一時テーブルの実装メカニズム

概要 グローバル一時テーブル(Global Temporary Table)はデータベースにおける特殊なテーブルタイプであり、特定のセッションに依存せずに作成され、複数のセッションで共有・アクセスできます。グローバル一時テーブルのデータは現在のデータベースセッションのライフサイクル内でのみ表示され、セッション終了時に自動的に破棄されます。 グローバル一時テーブルは通常 ...

5月18日 14:57 投稿

関数候補選定アルゴリズムの解析と動作確認

環境構築と関数定義 LightDBのorafce拡張機能において、以下のSQLを実行します。 CREATE DOMAIN oracle.clob AS TEXT; -- バージョン1 CREATE FUNCTION oracle.btrim(text, text) RETURNS text AS 'btrim' LANGUAGE internal STRICT IMMUTABLE; -- バージョン2 CREATE FUNCTION oracle.btrim(text, char) RETURNS text AS 'btrim' LANGUAGE internal STRICT IMMUTABLE; ...

5月16日 09:05 投稿

Oracleのstored procedureをPostgreSQLに移行する

PostgreSQLへの接続 psql -h 192.168.137.131 -p 5432 postgres sa tusc@6789#JKL ユーザー作成 CREATE USER name thunisoft createdb; --(等価: CREATE ROLE name LOGIN createdb); データベース作成 create database test_database owner = thunisoft; ヘルプの表示 psqlで「help」と入力 [thunisoft@localhost ~]$ psql test_database psql (9.3.6) Type &quo ...

5月13日 04:22 投稿