はじめに
データベース設計についてを復習するため
1章
- 排他制御をしなければ整合性が崩れる
- 排他制御の範囲が広いと並列性が落ちる
2章
- 全件検索は大量データに向かず、O(N)の計算量になる(データ数がN倍になればN倍の計算量(時間)がかかる
- ハッシュインデックス...キーの値をハッシュ関数にかけてそのハッシュ値と値のペアを持つ
- B+Treeインデックス...木構造のインデックス、レコード数が多ければ階層も増える。必要な計算量はレコード数Nに対しO(log2N)
- 一意性が保証されたインデックスを「一意インデックス」
- 複数の条件によるインデックスを「マルチカラムインデックス」
3章
- 必要なデータ項目を洗い出してテーブル設計に落とし込んでいく作業を「データモデリング」と呼ぶ
- テーブル設計では、行を一意に識別するための「識別子」を導入するのが一般的でこれを「主キー」と呼ぶ
- 値が存在しないコードを入力したときエラーを返す検知を自動で行うデータベース標準機能の「参照整合性制約」
- アプリケーション側で入力確認をさせるのを「チェックデジット」という
- チェック処理の基本形は、「そのID(識別子)が関連するテーブルに存在しているかどうかを参照確認する」
- 「1:N」の関連を2系統持ったマッピングテーブル(中間テーブル)
4章
- テーブル単位で複数のサーバに分散することを「sharding(シャーディング)」と呼ぶ。シャーディングをすると同じサーバ内にJOINするテーブルがあるかわからないためJOINを使うことが難しくなる
- 「EXPLAIN」はSQLの実行結果が適切か判断してくれる機能
- Oracleには「PL/SQL」という専門言語まである
- ストアドプロシージャーはデータベースが提供している機能で、何十回も実行する必要のあるSQL文の代わりにまとめたもの
5章
- 同じデータを二箇所以上のHDDに分散させる技術を「RAID」と呼ぶ。余裕があれば「RAID1」、ない場合は「RAID5」
- RAID1...2台のHDDに同じデータを書き込む方式。利用可能容量はディスク本数分の半分
- RAID5...誤り訂正符号であるパリティをデータと共に分散して書き込む方式。利用可能容量はディスク本数N本の場合にN-1本文になる
- HDDが一本目壊れた時に新しいHDDに変えることを「ホットスワップ」という
- レプリカ(複製)を別サーバ上に作成する技術「レプリケーション」と呼ぶ
- 片方向レプリケーション...「マスタ」に更新した結果が「スレーブ」に「非同期」で電波する
6章
- 整合性の取れた状態に自動的に修復することを「トランザクション」と呼ぶ
8章
- 全体としてシステムが一瞬の間止まったように見える現象を「ストール」と呼ぶ
9章
- MySQLの稼働を止めてバックアップすることを「コールドバックアップ」と呼ぶ
- MySQLの稼働を止めずにバックアップすることを「オンラインバックアップ」と呼ぶ
- 論理バックアップ...人間が読めるフォーマットでバックアップ
- 物理バックアップ...バイナリ形式でそのままバックアップ
- 論理バックアップと物理バックアップの違いはリストアの差
- バイナリログを当ててリカバリする操作のことをポイントインタイムリカバリ(PITR)またはロールフォワードリカバリと呼ぶ
10章
- MySQLでエラーログチェック方法
11章
- サービスの中でどのようなデータ項目を扱うかを整理して、それをテーブル関連として落とし込むことを「データモデリング」と呼ぶ
- 列指向データベースとは、列(カラム)を処理単位としている
- NoSQLの用途は、RDBMSのキャッシュとして使う
終わりに
データベース周りで基本情報やSQLで勉強していたことも出てきてたので取っ付きやすくはあった
ただ本当に入門でデータベースがどういうのかを知りたい人向けだったかな