DB

DB設計とSQLについて振り返るために読んだ本

データベース

DB設計とSQLについて学び直したくなったので数冊選書して読んだ。 過去に一度読んだことがあるものもある。枯れている技術領域故か数年前に定番と言われていた本が現在でも定番といった感じで、新書は殆どピックアップできなかった。(何かおすすめがあれば知りたいところ。) 達人に学ぶDB設計徹底指南書: 初級者で終わりたくないあなたへ 体系的に解説されていて分かりやすい 理論から学ぶデータベース実践入...

DB sql

DB設計におけるNULLについて

データベース

NULLとは 「値が存在しない」または「値が不明」ということを示す。 値ではないため値のように比較できない。 空集合(要素が0個の集合)ではなく、存在しない集合と見なされる。 リレーショナルモデルに反するNULL リレーショナルモデルは閉世界仮説(真であると判明しないものは全て偽であると仮定すること)に基づいており、NULLはこれに反する。 リレーショナルモデルでは2値論理が元となっているため、真...

DB

DB設計におけるID設計について

データベース

IDとは あるものを一意に特定するもの。 集合論において、あるものと属性が1:1で対応することを全単射と呼ぶ。 全単射になっているものはIDとして機能とする。 IDを考えるときは、単数に対するものか、複数(グループ)に対するものか、複数であればどのような粒度であるのか?などを考慮する必要がある。ex. カニという属性を考えるとして、どんな種類なのか?何科目なのか?色は?名称は? 一見一意性を持たな...

DB

Indexとはなにか

データベース

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

DB インデックス MySQL