DB設計とSQLについて振り返るために読んだ本
2024年4月11日DB設計とSQLについて学び直したくなったので数冊選書して読んだ。 過去に一度読んだことがあるものもある。枯れている技術領域故か数年前に定番と言われていた本が現在でも定番といった感じで、新書は殆どピックアップできなかった。(何かおすすめがあれば知りたいところ。) 達人に学ぶDB設計徹底指南書: 初級者で終わりたくないあなたへ 体系的に解説されていて分かりやすい 理論から学ぶデータベース実践入...
DB設計とSQLについて学び直したくなったので数冊選書して読んだ。 過去に一度読んだことがあるものもある。枯れている技術領域故か数年前に定番と言われていた本が現在でも定番といった感じで、新書は殆どピックアップできなかった。(何かおすすめがあれば知りたいところ。) 達人に学ぶDB設計徹底指南書: 初級者で終わりたくないあなたへ 体系的に解説されていて分かりやすい 理論から学ぶデータベース実践入...
NULLとは 「値が存在しない」または「値が不明」ということを示す。 値ではないため値のように比較できない。 空集合(要素が0個の集合)ではなく、存在しない集合と見なされる。 リレーショナルモデルに反するNULL リレーショナルモデルは閉世界仮説(真であると判明しないものは全て偽であると仮定すること)に基づいており、NULLはこれに反する。 リレーショナルモデルでは2値論理が元となっているため、真...
IDとは あるものを一意に特定するもの。 集合論において、あるものと属性が1:1で対応することを全単射と呼ぶ。 全単射になっているものはIDとして機能とする。 IDを考えるときは、単数に対するものか、複数(グループ)に対するものか、複数であればどのような粒度であるのか?などを考慮する必要がある。ex. カニという属性を考えるとして、どんな種類なのか?何科目なのか?色は?名称は? 一見一意性を持たな...
Aurora Serverlessについて興味を持ったので記事を漁ってみた。 チェックした記事 aws.amazon.com - Amazon Aurora Serverless techblog.zozo.com - Aurora Serverless v2を本番導入した話 〜検討や導入時のポイント・得られた効果について〜 www.plan-b.co.jp - Aurora Serverles...
概要 MySQLのロックについてまとめる。 MySQLのバージョンは8系を想定する。 検証環境 検証に使う環境はdocker-composeで用意した。(1コンテナだけなのでcomposeを使わなくも良いのだが..) . ├── docker-compose.yml └── initdb.d └── 1_schema.sql docker-compose.yml version: &#x...
概要 MySQLのトランザクションのアノマリーについてまとめる。 MySQLのバージョンは8系を想定する。 検証環境 検証に使う環境はdocker-composeで用意した。(1コンテナだけなのでcomposeを使わなくも良いのだが..) . ├── docker-compose.yml └── initdb.d └── 1_schema.sql docker-compose.yml v...
概要 時々どっちがどっちか混乱してしまうので、メモを残す。 シャーディングとパーティショニングの違い 項目 シャーディング パーティショニング データの分割方法 水平方向(≒水平パーティショニング) ex. 行 垂直方向 ex. テーブル、データベース、カラム メリット パフォーマンスの向上、スケーラビリティの向上 パフォーマンスの向上、データの検索性向上 デメリット データや...
概要 MySQLにはだいぶ前から全文検索が使えるになっているが、最近まで全然触ってもいなかったので軽く素振りしてみた。 MySQLで全文検索を始める MySQLで全文検索を利用するのはElasticSearchよりも圧倒的に手間が掛からない。 検索対象としたいカラムにFULLTEXT INDEXを付与、MATCH (col1,col2,...) AGAINST (expr [search_modi...
NewSQLについての色々と調べて読み漁ってみたので読んだものをまとめておく。 元々いくつかのNewSQLのDBについての比較をしてみたいと思って漁っていたのだが、内部で使われている技術について知っておく必要があったので、関連技術についての記事が多めになっている。 資料一覧 Hybrid Clock Hybrid Logical Clock (HLC) 本当は恐ろしい分散システムの話 分散処理シ...