メインコンテンツまでスキップ

「database」タグのついた32記事

全てのタグを見る

インデックス — 検索を速くする代償

インデックスが検索を速くする仕組みと、その代わりに払う更新時のコストを解説します。複合インデックスのカラム順序、インデックスが効かない書き方、シャーディングやハッシングとの用語の区別を扱います。

サブクエリとウィンドウ関数 — 行をまたいで数える

サブクエリを置ける 3 つの位置、相関サブクエリと EXISTS、CTE で読む順に書く方法、そしてウィンドウ関数が行を畳まずに集計する仕組みを扱います。ROW_NUMBER と RANK の違い、累計、グループごとの上位 N 件の出し方と、各データベースの対応バージョンを示します。

データの分散 — 増えた先で何が崩れるか

レプリケーションとシャーディングで何が得られ、何が崩れるかを扱います。同期と非同期の違い、書いた直後に読めない理由、分割キーの偏り、結果整合性が見える瞬間、そして CAP 定理を「分断が起きたとき何を諦めるか」として読む方法を示します。

ドメインモデルとテーブル設計 — マッピングとインデックス

ドメインモデル優先で設計する理由と、ドメインモデルとテーブルが 1:1 でない前提でのマッピングパターン (埋め込み / 1 集約複数テーブル / 技術的分割)、リポジトリによる差の吸収、複合インデックスの左端原則やトレードオフを含むインデックス設計をまとめます。

トランザクション — ACID とコミット・ロールバック

トランザクションの基本操作 (開始・コミット・ロールバック) と ACID の 4 特性を解説します。ロールバックが取り消す範囲が自分のトランザクションに限られること、コミット後は取り消せないこと、構文エラーが発生するタイミングを扱います。

トランザクション管理 — 整合性の境界をどこに置くか

Laravel の DB::transaction() を使ったトランザクション管理を解説。ACID 特性、1 集約は Repository 内・複数集約は UseCase 内という置き場所の使い分け、ネストしたトランザクション (Savepoint)、楽観的ロックと悲観的ロックの実装と使い分けをまとめます。

バックエンド

API 設計・認証・データベースなどサーバーサイド開発に関するノートをまとめるドメインのハブ。ビジネスロジックの設計・データ永続化・API 構築を扱います。

ロックと分離レベル — 同時実行の制御

共有ロックと排他ロック、4 つのトランザクション分離レベルと 3 つの読み取り異常、楽観ロックと悲観ロックの使い分け、デッドロックの原因と回避方法を解説します。分離レベルを上げてもロック無しでは競合が防げない理由を扱います。

用語集 — データベース設計ガイド

本ガイドで登場した専門用語の即引き辞典。Jr エンジニアが章の本文を読む途中で「あの用語の定義は?」となったとき、ここで素早く確認できます。

第12章 E-R 図の作成方法 — 業務要件を視覚化する

E-R 図 (Entity-Relationship Diagram) の基本記法 (エンティティ・属性・リレーションシップ・カーディナリティ) と、業務要件からエンティティを抽出して E-R 図を起こす手順、主要なツール (mermaid / draw.io / PlantUML) をジュニア向けに解説します。

第18章 データベース正規化演習問題集

第 11 章で学んだ正規化の理解を深めるための演習問題集。未正規化テーブルから第 3 正規形まで段階的に分解する作業を、業務上ありがちなケース (子供情報・複数カテゴリ・導出項目・社員情報) で繰り返し練習します。

第19章 インデックス設計入門 — 検索を速くする張り方と落とし穴

インデックスが検索を速くする仕組み (B-Tree の直感) から、どのカラムに張るか (WHERE / JOIN / ORDER BY)、複合インデックスのカラム順序、部分インデックス、EXPLAIN の読み方、張りすぎの害、UUID 主キーとの相性までを、設計時の判断に絞ってジュニア向けに解説します。

結合と集計 — 複数の表から 1 つの答えを作る

複数のテーブルを結合して集計するときの読み書きを扱います。SELECT の評価順序、内部結合と外部結合の違いを行の増減で捉える見方、1 対多で親の行が増えること、GROUP BY の粒度、COUNT(*) と COUNT(列) の違い、NULL の三値論理と「件数が合わない」ときの切り分けを扱います。

設計テンプレート集 — データベース設計ガイド

Jr エンジニアが実務で持ち込める設計テンプレートとチェックリスト集。命名規則・正規化・キー設計・レビュー観点を一覧化し、新規プロジェクトで「次に何を確認すべきか」をすぐ参照できる形にまとめています。