データベース

Bitemporal Data Modelについて

データベース

概要 Bitemporal Data Modelについて調べたことをまとめる。 Bitemporal Data Modelとは Temporal Data Modelsという分野で扱われるデータモデルの1つで、時間軸を取り扱うデータモデルのうち、2つの時間軸を持つデータモデルのことを指す。 ノンテンポラル(Non-Temporal) 現在の状態のみを保持する 過去の履歴や将来の変更に関する情報は...

Bi-Temporal Uni-Temporal Non-Temporal 履歴 Temporal Data Model

PostgreSQL徹底入門 第4版 インストールから機能・仕組み、アプリ作り、管理・運用まで

データベース

PostgreSQL徹底入門 第4版 インストールから機能・仕組み、アプリ作り、管理・運用までを読んだ。 PostgreSQLを触ったことなかった自分にはちょうど良い入門書だった。 アプリケーションの実例の章が割と多めにページを割かれているが、PostgreSQLの基本的なことはカバーされている。 ...

DB PostgreSQL

MySQLのロックについて

データベース

概要 MySQLのロックについてまとめる。 MySQLのバージョンは8系を想定する。 検証環境 検証に使う環境はdocker-composeで用意した。(1コンテナだけなのでcomposeを使わなくも良いのだが..) . ├── docker-compose.yml └── initdb.d └── 1_schema.sql docker-compose.yml version: &#x...

MySQL トランザクション ロック

正規化理論について

データベース

正規化とは データの重複をなくし、データの論理的不整合を防ぐように設計すること。 前提 キー 主キー 行を一意に識別する識別子 複合キー 複数の属性を組み合わせて構成される主キー 外部キー 別のテーブルを参照するためのキー 候補キー 行を一意に識別できる性質を持つ属性の集合で、既約であり、極小(必要最小限の属性数)であるもの スーパーキー 行を一意に識別できる性質を持つ属性と余分...

正規化理論 正規化

Indexとはなにか

データベース

インデックスとは テーブルに格納されているレコードを高速に取り出すための仕組み 以下のようなO(n)問題を抱えたクエリがあるとする。 SELECT * FROM users WHERE first_name = ‘Tom’ このクエリのパフォーマンスを上げるためには、以下のようにIndexを貼る。 ALTER TABLE users ADD INDEX (first_name) メリット・デメリッ...

DB インデックス MySQL