データベース その他

カーソルやCEPやOLAPなどのデータベースに関す情報を記載します。

NoSQL

NoSQLとはNot only SQLでデータアクセスがSQLでないものになり、以下のタイプがあります。
NoSQLを選定する理由としては、処理速度を向上させることが主になりますがデータの一貫性が保てないケースがあります。

カーソル

プログラム言語でSQLを使用する場合、カーソルを使用します。
「DECLARE カーソル名 CURSOR FOR クエリ」 のように記載します。
「DECLARE カーソル名 CURSOR」でカーソルの宣言で使用します。
OPENでカーソルを開きます。
FETCHで参照している行を移動します。
CLOSEでカーソルを終了します。
UPDATEやDELTEの処理は、「CURRENT OF カーソル名」を使用します。

CEP

CEP(Complex Event Processing)は、複合イベント処理でストリームデータをメモリ上に展開し,あらかじめ設定した条件に合致した場合に対応するアクションを実行します。

OLAP

OLAP(OnLine Analytical Processing)はオンライン分析処理を行うためのツールになります。 業務系のデータベースから抽出したデータをデータウェアハウスに格納するために、整合されたデータ属性やコード体系などに合うように変換及び修正を行う処理をデータクレンジングといいます。

OLAPには以下のような操作があります。

データ分散

大規模なデータを管理する場合に、分散して配置することがあります。
データを分散配置することをシャーディングといいます。シャーディングは膨大な数のデータを規則に従って複数のノードに割り当て、決められた規則に従ってデータを分散します。
データを分割して格納する方法もあります。

・テーブルスペース データをBASEとは別の場所に保存 
・ TPS  1秒間に実行できたトランザクションの数(Transactions Per Second)
・カレントスキーマ  publicスキーマ(スキーマ名を指定せずに作られるときに入る)
・ libpqプロトコル 共通ライブラリでこれがバックエンドとの通信(クライアント)
・フィルファクタ  ブロックに確保する空き領域指定
・WAL トランザクションログ(先行書き込み)
※walファイルはメモリ上の内容がファイルに反映された時点で不要
・PITR ポイント・イン・タイム・リカバリでWALログ(アーカイブ含む)で最新まで復元可能
・coreファイル プロセスが異常終了したときのメモリ内容ダンプ
・gdbコマンド プログラムが異常終了したときに何が行われたかの調査
・checkpoint ログ内の情報を反映するために全てのデータファイルを更新、トランザクションログのある一時点。
・TOAST 一部のデータ型のみがサポートしており、可変長データ型利用時、別の隠しテーブルに可変長のデータ格納
 PLAINは圧縮や行外の格納を防止します。 さらにvarlena型での単一バイトヘッダの使用を無効にします。 これはTOAST化不可能のデータ型の列に対してのみ取り得る戦略です。
 EXTENDEDでは、圧縮と行外の格納を許します。 これはほとんどのTOAST可能のデータ型のデフォルトです。 圧縮がまず行われ、それでも行が大き過ぎるのであれば行外に格納します。
 EXTERNALは非圧縮の行外格納を許します。 EXTERNALを使用すると、textとbytea列全体に対する部分文字列操作が高速化されます。 こうした操作は非圧縮の行外の値から必要な部分を取り出す時に最適化されるためです (格納領域が増加するという欠点があります)。
 MAINは圧縮を許しますが、行外の格納はできません (実際にはこうした列についても行外の格納は行われます。 しかし、他に行を縮小させページに合わせる方法がない場合の最後の手段としてのみです)。
・アクセス統計情報 稼働統計情報
・統計情報 プランナが使用する(検索などにindexの利用判断)レコード数など。
・GUC Grand Unified Configuration の略で、PostgreSQLの動的に変更できるパラメータを管理するモジュール。postgresql.conf ファイルやPGOPTIONS環境変数、SETコマンドなどで設定できるパラメータを管理しているモジュール。
・pgAdmin4 こちらはPostgreSQLをGUIで操作するアプリ。
・GEQO 遺伝的問い合わせ最適化といいFROM句の項目数が増加すると結合の組み合せがそれにより増加し解析にかかる時間が指数的に増加するため、それを軽減するためのものです。
・Visibility Map ページ内にトランザクションによって更新され参照することができなくなったタプルがあるかの管理。
・カーディナリティ カラム内のユニーク性が高いかどうかの判断。
・FSM Free Space Mapで再利用可能領域。
・プリペアド 性能を最適化するために利用可能なサーバ側のオブジェクト。
・Heap テーブルデータ。
・HOT Heap Only TupleでHeapのみのTuple。
・ファストパス サーバへの簡単な関数呼び出しを送信する近道
ログ