ぱと隊長日誌

ブログ運用もエンジニアとしての生き方も模索中

データベース

PostgreSQL のテーブル継承は概念データモデルのスーパータイプ/サブタイプを実装する手段では無い

PostgreSQL にはテーブルの継承という機能があります。 本記事ではテーブル継承を概念データモデルのスーパータイプ/サブタイプの実装に用いると、どのような問題が出るかを見ていきます。

SQL で ORDER BY をクエリの最後にしか記述できず、結果セット全体にしか適用できない理由

SQL で ORDER BY の指定はクエリの最後に記述する必要があります。また、ORDER BY は結果セット全体に対して行われます。 この理由を理論面(リレーショナルモデル)と設計面 (SQL) からみていきます。

PostgreSQL 11 での DEFAULT 指定した列追加時の処理速度改善は NOT NULL 制約との組み合わせに限らない

PostgreSQL 11 での DEFAULT 指定した列追加時の処理速度改善は NOT NULL 制約との組み合わせに限らないことを解説します。また、列の追加や変更で依然として処理に時間のかかるケースがあることも補足しています。

ソースコードからインストールした PostgreSQL をマイナーアップグレードする

ソースコードからインストールした PostgreSQL をマイナーアップグレードするには、新規インストールと同じ手順を踏みます。

PostgreSQL の共有メモリバッファサイズとインデックス更新の関係

PostgreSQL の共有メモリバッファサイズがインデックスの更新に与える影響について検証及び考察を行いました。

PostgreSQL の B-tree インデックスの数・格納値と INSERT 処理の関係

PostgreSQL の B-tree インデックスの数と格納する値が INSERT 処理にどれほど影響するのかを検証しました。

部分関数従属性と推移的関数従属性の定義

部分関数従属性と推移的関数従属性はテキストによって定義にばらつきがみられました。そこで、本記事では定義の整理とばらつきの理由について考察を行いました。

データベーススペシャリスト試験(令和2年度10月試験)受験記録

2020/10/18 に受験した「データベーススペシャリスト試験」に合格しました!試験に向けて、どんな準備(勉強)をしたのかを記録としてまとめておきます。

データベーススペシャリスト試験の解き方のコツ

データベーススペシャリスト試験の解き方にはコツがあります。私が編み出したコツのうち、汎用的に使えそうなコツを集めてみました。

データベーススペシャリスト試験の午後問題の選び方

データベーススペシャリスト試験は午後ⅠⅡでどの問題を選ぶかが合格の鍵となります。そこで、「問題番号」と「問題タイトル」から出題分野の傾向をまとめました。

概念データモデルのスーパータイプとサブタイプのパターン

データベーススペシャリスト試験の問題からスーパータイプとサブタイプのパターンを整理し、まとめました。

リレーショナルモデルのタプルに順序はあるのか否か

リレーショナルモデルの考案当初、リレーションのカラムの順序には意味があるとしていましたが、現在ではタプルの要素に順序は無いとされています。この経緯や理由について調査を行いました。

PostgreSQL が空テーブルの統計情報を更新しないことによる実行計画への影響

PostgreSQL は空テーブルの統計情報を更新しないことにより、以前の統計情報を基に実行計画を立案してしまうことがあります。このケースについて、検証と考察を行います。

PostgreSQL の ANALYZE コマンドをトランザクション内で実行した際の挙動

PostgreSQL の ANALYZE コマンドをトランザクション内で実行した際の挙動について、検証と考察を行いました。

RDB が ROLLBACK の処理コストを支払うタイミング

Oracle Database と PostgreSQL の ROLLBACK の差について検証と考察を行いました。そこで見えてきたのは ROLLBACK の処理コストを支払うタイミングの違いでした。

PostgreSQL は更新処理を ROLLBACK してもテーブルファイルに追記される

PostgreSQL はテーブルに対する更新処理を行うと、最終的に ROLLBACK した場合でもテーブルファイルに追記されます。本エントリではこの挙動を検証します。

データベーススペシャリスト試験(令和2年度春期)勉強記録

令和2年度データベーススペシャリスト試験は実施を取りやめ(中止)となりましたが、次回の受験機会に向けて今回どのような準備を行ったのか、まとめました。

PostgreSQLのトランザクション分離レベル毎のパフォーマンス測定(に失敗しました)

PostgreSQL のベンチマーク試験コマンドである pgbench でトランザクション分離レベルのパフォーマンス測定にチャレンジしましたが、この手法には問題があるとわかりました。この問題点をまとめます。

pgbench の scale オプションを知る

PostgreSQL のベンチマーク試験コマンドである pgbench の scale オプションは初期化処理で重要です。ベンチマーク実行時のオプションとしては有効ではないことに注意が必要です。

Database Concurrency Control Papadimitriou 読書会 第16回 議論メモ

勉強会について Database Concurrency Control Papadimitriou 読会 第16回 - connpass の議論メモです。自分のメモをベースにまとめています。発言の聞き間違い、解釈違いの可能性があることをご了承ください。特記の無い引用は本で議論した箇所を示していま…

Database Concurrency Control Papadimitriou 読書会 第15回 議論メモ

勉強会について Database Concurrency Control Papadimitriou 読会 第15回 - connpass の議論メモです。自分のメモをベースにまとめています。発言の聞き間違い、解釈違いの可能性があることをご了承ください。特記の無い引用は本で議論した箇所を示していま…

PostgreSQLはトランザクション内で制約を一旦外して戻すことができる

はじめに こんな tweet を拝見しました。ポスグレはDDLもtxに入れられると聞いたけど、一旦制約をはずしてなんか操作して制約を戻す、もアトミックにできるのかなー。— デヴすぴスラ (@dev_supisula) November 20, 2019遅延制約(DEFERRABLE)を使えば制約を一…

集合に含まれない組み合わせをクエリで抽出する

集合に含まれない組み合わせをクエリで抽出する手法について、データベーススペシャリスト試験の問題を用いて解説します。

SQLの外部結合の実行ステップを理解する

外部結合はクロス結合をベースとし、そこから保存対象外の行を削除します。この流れを「プログラマのためのSQL」の原書をベースに補足しながら解説します。

NTTDATATC2019「PostgreSQL 12 は ここがスゴイ!」聴講メモ

はじめに NTTデータ テクノロジーカンファレンス 2019(NTTデータ テクノロジーカンファレンス 2019 ~ 未来を創る NTT DATA の確かな技術力 ~) 【テクノロジー】PostgreSQL 12 は ここがスゴイ!~性能改善や pluggable storage engine などの新機能を徹…

Database Concurrency Control Papadimitriou 読書会 第7回 議論メモ

勉強会について Database Concurrency Control Papadimitriou 読書会 第7回 - connpass の議論メモです。 ※第6回は休講でした。自分のメモをベースにまとめています。発言の聞き間違い、解釈違いの可能性があることをご了承ください。特記の無い引用は本で議…

Database Concurrency Control Papadimitriou 読書会 第5回 議論メモ

勉強会について Database Concurrency Control Papadimitriou 読書会 第5回 - connpass の議論メモです。自分のメモをベースにまとめています。発言の聞き間違い、解釈違いの可能性があることをご了承ください。特記の無い引用は本で議論した箇所を示してい…

Database Concurrency Control Papadimitriou 読書会 第3回 議論メモ

勉強会について Database Concurrency Control Papadimitriou 読書会 第3回 - connpass の議論メモです。自分のメモをベースにまとめています。発言の聞き間違い、解釈違いの可能性があることをご了承ください。特記の無い引用は本で議論した箇所を示してい…

Database Concurrency Control Papadimitriou 読書会 第2回 議論メモ

勉強会について Database Concurrency Control Papadimitriou 読書会 第2回 - connpass の議論メモです。自分のメモをベースにまとめています。発言の聞き間違い、解釈違いの可能性があることをご了承ください。特記の無い引用は本で議論した箇所を示してい…

Database Concurrency Control Papadimitriou 読書会 第1回 議論メモ

勉強会について Database Concurrency Control Papadimitriou 読書会 第1回 - connpass の議論メモです。自分のメモをベースにまとめています。発言の聞き間違い、解釈違いの可能性があることをご了承ください。特記の無い引用は本で議論した箇所を示してい…