SQLの奥深さに触れよう セルコ第4版の歩き方~第5回札幌MySQL勉強会

>100 Views

September 13, 13

スライド概要

2013/09/13 に、(株)インフィニットループさんの会議室で開催された、第5回札幌MySQL勉強会、「SQLの奥深さに触れよう--『セルコ プログラマのためのSQL第4版』 の歩き方」 の資料です。
http://www.geocities.jp/sapporo_mysql/
勉強会のメインテーマの部分については、ライブ感でおしゃべりさせていただいたので、整理された資料はありませんでしたが、巻末に簡単にサマリを追加しておきました。

初出URL:https://www.slideshare.net/sakaik/my-sql-2013sapporo

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

第5回札幌MySQL勉強会 SQLの奥深さに触れよう セルコ 『プログラマのためのSQL第4版』 の歩き方 2013/09/13 日本MySQLユーザ会 坂井 恵

2.

今日は の話をします。

3.

自己紹介 • 坂井 恵(さかい けい) kaik • 茨城県稲敷郡出身 • 千葉県我孫子市在住 @sa Facebook, twitter, gmail など。 興味関心の合う方、おしゃべり しましょう! ■好き (参考) ラーメン パズル 自転車ロード(見るだけ) るだけ) 将棋(見るだけ) 音楽 仕事と関係ないことを知ること 歌舞伎(見 初めての街歩き

4.

自己紹介 性格 基本的に、貧乏性。 「もったいない」 →遠出するなら、フルに周辺含めて楽しむ! いろんな用事を詰め込 みたい! OSC-fukuoka の例とか、shimane の例とか たいがい、行きと帰りでルートが違 う。 なるべく「1日多く」滞在する

5.

ことの発端 梶山さんのご紹介で、つながった!

6.

その他もろもろ、 なんか上手に乗せられて 結局来ることに。

7.

今回の勉強会 『今回は数多くのMySQL書籍を執筆されて いる坂井恵氏(@sakaik)をゲストとしてお招 きし』 勉強会案内サイトでの、紹介文。 ・・・・数多く。。。。? かどうかは、わかりませんが、、、

8.

数多く? こんな本の制作に関わってきまし た。 キホンは共著。人と一緒にモノを作 り上げるのが、好き。

9.

前置きはこれくらいにし て・・・

10.

今日のテーマ セルコ!

11.

セルコ 『プログラマのためのSQL』 第4版 • 発売日: 2013/0 5/23 • 著者: セルコ • 監訳: ミック • ページ数: 約800ページ • 厚さ: 約4cm • 価格: ¥4,830

12.

その前の日本語版 第2版 日本語版 (2001年) 第3版は、日本語に翻訳されず

13.

Joe Celko 12年の沈黙を破 り、 第4版の日本版 待望の出来!

14.

セルコ 『プログラマのためのSQL』 第4版 • 発売日: 2013/0 5/23 • 著者: セルコ • 監訳: ミック • ページ数: 約800ページ • 厚さ: 約4cm • 価格: ¥4,830

15.

なんの本なのか? • • • • 主に「SQL」について、 ジョー・セルコが 気をつける点や、興味深い使い方などを 気が向くままに語ってくれている本 ここ、今日のポイント! この雰囲気さえ掴んでくれたら あとは、気楽にこの本を楽しんでも らいたいです。 イメージとして・・・・・ 「語り出すと止まらないジョー・セルコさんが、 飲み屋でSQLの話を始めてしまい、 もう誰も止められない状態。 (マイクを離さない状態)」 ⇒でも、持っている知識と経験が膨大だから、おもしろ い!

16.

セルコの本は • 網羅性を高めた学習書(学術書)じゃな いけれども、結果として、網羅的! • 読者として、とにかく自分の経験したこ とのない世界を見ることができる。 しかも結構それらは「本質的」

17.

厚さ比較 (2版vs4版)

18.

セルコ4版 もくじ(日本版) • • • • • • • • • • • • • • • • • • • 第1章 データベース VS ファイルシステム 第2章 トランザクションと同時実行制御 第3章 スキーマレベルのオブジェクト 第4章 ロケータと特別な数 第5章 基底テーブルとそれに関連する要素 第6章 手続き型プログラミング、半手続き 型プログラミング、宣言型プログラミング 第7章 手続き型の遺産 第8章 補助テーブル 第9章 正規化 第10章 数値型 第11章 時間型 第12章 文字列型 第13章 NULL:SQLにおける失われたデータ 第14章 複数列のデータ要素 第15章 テーブルの操作 第16章 比較演算子またはシータ演算子 第17章 評価述語 第18章 CASE式 第19章 LIKE述語とSIMILAR TO述語 • • • • • • • • • • • • • • • • • • • • 第20章 BETWEEN述語とOVERLAPS述語 第21章 [NOT] IN 述語 第22章 EXISTS述語 第23章 量化子とサブクエリ述語 第24章 単純なSELECT文 第25章 高度なSELECT 第26章 仮想テーブル─ビュー、導出テーブ ル、共通表式、マテリアライズドクエリテー ブル 第27章 クエリによるデータの分割 第28章 グルーピング演算子 第29章 単純な集約関数 第30章 高度な集約、ウィンドウ関数、OLAP 第31章 SQLにおける記述統計 第32章 SQLにおける数列の扱い 第33章 SQLにおける配列 第34章 集合演算 第35章 部分集合 第36章 SQLで木と階層構造を扱う 第37章 SQLにおけるグラフ 第38章 時間を扱うクエリ 第39章 SQLの最適化

19.

翻訳したのは • ミックさん! こんなお名前です が、日本語もお上 手な、ふつうの日 本人です。 いや、、ふつうか どうかのとらえ方 には、個人差があ ります。個人の感 想です。 こんな本を書いたり翻訳したりされ ています(セルコの既刊本もありま す)。 ※一部関係ない本も画像中には含ま れています。

20.

ミックさん • 『SQLパズル』などの翻訳 • 『達人に学ぶSQL/DB設計』等の執 筆 • 膨大なDB知識と経験 • 現実的な解法とのバランス感覚

21.

今回私は • ご縁があって、本書の査読にて、お手伝 いをさせていただきました。 2012年7月 翻訳中であることを知る お手伝いを申し出、尐し作業を開始するも、タイミング 合わずに ほとんどお役には立てず m(_ _)m 2013年1月 初校開始。全力で読み、検証、調査、指摘etc その後、2校も含め、前章読破(一部パスイチあり) 査読の効果 ⇒ 図書費がかからなくなった 普段、読書にあてている時間のほぼすべ てを、本書の査読に充てたため、他の本 を全然買わなかったのです、この期間。

22.

査読のススメ 査読をすると・・・・ (著者/訳者さんとの相性もありますが) • 真剣に読む(何か言わなきゃいけないか ら) • わざと誤解しながら読む(理解度がわか る) • 著者への無限質問権つき! 知人が本を書いていることを知ったら 「なにかお手伝いできることはありませんか」 と申し出てみよう!!

23.

とにかく今回のセルコは、すご い! • 原書の誤り修正 • 原書のわかりにくい部分 の再構成 • すべてのクエリをOracleで 動作するよう書き換え • 脚注の充実。洒落っ気。 • (なるべく)隅々まで行き届い た、わかりやすい表現 英語版よりもていねいで正確。 もはや「日本語版」ではなく「日本版」 いま、セルコの第4版をもっとも良い状態 で読むことができるのは、日本人だけ!

24.

ということで、本書は英訳されて、全 世界の人々に読んでもらうべき!! http://d.hatena.ne.jp/sakaik/20130519/celko4ja

25.

ここで一応セルコの(私の中で の位置づけ)

26.

データベース界の三神 RDBMSの発明者 • E.F.Codd 文献は殆どない NULL嫌い • C.J.Date 本日の話題の主役 • J.Celko -日本語で読める

27.

Chris. J.Date 電子化されて入手可能だそうです。 今回の札幌MySQL勉強会参加の方に教えて いただきました! Amazonで \69,999 で入手可能 こちらも絶版?

28.

話題をいくつか紹介

29.

MySQLに関する話題 • 知ってた? WHERE句のIN節に書けるもの • 左から処理するMySQL(15章) • ソート順で、NULLは前?あと?(7章) その他の話題 • クラーク・ケントの例の「意義と意味」(4 章) • 原書の盛り上がりを地に落とす脚注(5章) • アラビア語のUTF-8表現

30.

以下、前ページの各項目やその他の項目につ いて、ライブでお話をさせていただきまし た。 資料はありません。 そのかわり、次ページ以降に、本公開資料用 に、メモを作成しました。

31.

(補足)ざっとメモ程度ですが各項目につ いて概要だけ追記しておきます(公開資料 用) • 知ってた? WHERE句のIN節に書けるもの – INの左側に書けるのはカラム名だけとは限らない。 – 左側に値、右辺の括弧内にカラムを並べてもいいんだよ。 • 左から処理するMySQL(15章) – セルコ第4版では、選択クエリの列名羅列部分に記述されたもの は「同時に」処理される、とあるが、MySQLでは左から順に評 価されていく。他のDBMSと異なるので、注意が必要。 • ソート順で、NULLは前?あと?(7章) – NULLが含まれる可能性のある列でソートを行う場合、NULLを先 頭にもってきたい場合と、最後にしたい場合がある。 – MySQLのデフォルトでは、NULLは前(もっとも小さい)。 – クエリの書き方を工夫により、どちらにも対応可能 (オプション設定ではなく)

32.

(補足)ざっとメモ程度ですが各項目につ いて概要だけ追記しておきます(公開資料 用) • クラーク・ケントの例の「意義と意味」(4章) – いやぁ、ミックさんは、幅広い分野のことをご存じで、哲学にも造 詣が深いんですよ、というお話。 – セルコが、さらっと書いている話題には哲学的な前提知識を要する ものがあって、それを丁重に説明していただきました。一部は脚注 にも反映されています。 • 原書の盛り上がりを地に落とす脚注(5章) – とても現実的な「ミック節」炸裂。ぜひ読んでみてください。 • アラビア語のUTF-8表現 – コレーション問題の例としてセルコがあげているアラビア語の、頭 字、中字、尾字。実はUTF-8での表現はみんな一緒なのです、とい う話。たぶんセルコの勘違い!? • 400年問題 – 最後のほうの章に出てきた「400年ひとくみ」の話題。原書での 言っている内容がよくわからず、最後の最後まで頭を悩まされまし た。