達人に学ぶ SQL徹底指南書 第2部前半 13章〜17章
達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ (CodeZine BOOKS)
- 作者: ミック
- 出版社/メーカー: 翔泳社
- 発売日: 2018/10/11
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
第2部 リレーショナルデータベースの世界
目次
- 13 RDB近現代史
- データベースの歴史
- 14 なぜ"関係"モデルという名前なの?
- 関係って?
- 15 関係に始まり関係に終わる
- 閉包性
- 16 アドレス、この巨大な怪物
- ポインタなんて大嫌い
- 17 順序をめぐる冒険
- ウィンドウ関数
13 RDB近現代史
まとめ
- RDBは破壊的イノベーションだった
- RDB以前
- 階層型データベース
- 関係モデルの幕開け
- 1969年:E.F.コッドの論文
- RDB以前
- RDBから現在まで破壊的イノベーションは起きていない
- NoSQLはRDBと相互補完的関係にある
関係モデルの処遇について(この記事書いている人の雑感)
- E.F.コッドのWikipediaの記事 より
- E.F.コッドはIBMの技術者だった
- IBMは自社の既存製品を守るため、コッドの論文を受け入れなかった
- 他社が関係モデルに基づくデータベースを開発するまで動かなかった
関係モデルの課題
NoSQL
14 なぜ"関係"モデルという名前なの?
- 関係という言葉について説明
- 高階の関係
- 現状のRDBの限界
まとめ
- "表"モデルではなくて?
- 表より関係の方が抽象度が高い
- 定義域
- enumみたいな
- 関係の関係
- 高階の関係
- テーブルの中にテーブルがあるみたいな
- 現在対応しているDBMSはない
- が、その方向に向かって進化している
- 高階の関係
関係モデルで使用される公式用語と日常的な言葉との対応
形式的な関係モデルの用語 | 非形式的な日常語 |
---|---|
関係 (relation) | 表またはテーブル |
組 (tuple) | 表またはレコード |
濃度 (cardinality) | 行数 |
属性 (attribute) | 列またはフィールド |
次数 (degree) | 列数 |
定義域 (domain) | 列の取り得る値の集合 |
15 関係に始まり関係に終わる
- 関係モデルからRDBの柔軟性を説明
- 数学的に厳密な基礎付けがあってのこと
まとめ
- 閉包性 (closure property)
- 演算子の入力と出力が共に関係になる
- 関係の世界が閉じていることを保証する
- UNIXのパイプの概念に似ている
- なんでもファイル
- SQLは数学的に厳密な基礎付けを持っている
- SQLは体の条件もクリアしている
- エレガントさや機能性を獲得している
代数構造
- 群 (group)
- 加算と減算(または乗算と除算)について閉じている
- 環 (ring)
- 加算・減算・乗算について閉じている
- 体 (field)
- 加算・減算・乗算・除算について閉じている
- つまり、四則演算が自由にできる
16 アドレス、この巨大な怪物
- アドレス/ポインタ撲滅への戦い
まとめ
この記事書いている人の雑感
- まだ綺麗事に聞こえる
- アドレスを考える必要がなくなったこと、それ自体は良い
- 代わりに、また別の「変なこと」を考える必要がある
- 実行計画を見て、内部処理を想像/修正する必要がある
- 内部処理を隠蔽しているから/まだオプティマイザが賢くない
- いうほど素晴らしいかね…?
- 原理的には最善になるが、今はそうなれていないのがエンジニアを苦しませる
17 順序をめぐる冒険
- 第2版で新録
- ウィンドウ関数の登場はなぜ遅れたか
- SQLの思想から辿る
各勢力の主張
- リレーショナル伝統主義保守派
- 行に順序などない(理論的には)
- だからウィンドウ関数など不要
- リレーショナル無政府主義左派
- 分析的計算は今時必要なんだから入れようぜ
- 現状の仕様でそれをやろうとすると自己結合が必要になってひどいんだ
- エレガントでない、パフォーマンスの最適化も困難
- この本の著者の立ち位置
- 入れたら便利だったよね
村上春樹…?
以上