>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
第5回札幌MySQL勉強会 SQLの奥深さに触れよう セルコ 『プログラマのためのSQL第4版』 の歩き方 2013/09/13 日本MySQLユーザ会 坂井 恵
今日は の話をします。
自己紹介 • 坂井 恵(さかい けい) kaik • 茨城県稲敷郡出身 • 千葉県我孫子市在住 @sa Facebook, twitter, gmail など。 興味関心の合う方、おしゃべり しましょう! ■好き (参考) ラーメン パズル 自転車ロード(見るだけ) るだけ) 将棋(見るだけ) 音楽 仕事と関係ないことを知ること 歌舞伎(見 初めての街歩き
自己紹介 性格 基本的に、貧乏性。 「もったいない」 →遠出するなら、フルに周辺含めて楽しむ! いろんな用事を詰め込 みたい! OSC-fukuoka の例とか、shimane の例とか たいがい、行きと帰りでルートが違 う。 なるべく「1日多く」滞在する
ことの発端 梶山さんのご紹介で、つながった!
その他もろもろ、 なんか上手に乗せられて 結局来ることに。
今回の勉強会 『今回は数多くのMySQL書籍を執筆されて いる坂井恵氏(@sakaik)をゲストとしてお招 きし』 勉強会案内サイトでの、紹介文。 ・・・・数多く。。。。? かどうかは、わかりませんが、、、
数多く? こんな本の制作に関わってきまし た。 キホンは共著。人と一緒にモノを作 り上げるのが、好き。
前置きはこれくらいにし て・・・
今日のテーマ セルコ!
セルコ 『プログラマのためのSQL』 第4版 • 発売日: 2013/0 5/23 • 著者: セルコ • 監訳: ミック • ページ数: 約800ページ • 厚さ: 約4cm • 価格: ¥4,830
その前の日本語版 第2版 日本語版 (2001年) 第3版は、日本語に翻訳されず
Joe Celko 12年の沈黙を破 り、 第4版の日本版 待望の出来!
セルコ 『プログラマのためのSQL』 第4版 • 発売日: 2013/0 5/23 • 著者: セルコ • 監訳: ミック • ページ数: 約800ページ • 厚さ: 約4cm • 価格: ¥4,830
なんの本なのか? • • • • 主に「SQL」について、 ジョー・セルコが 気をつける点や、興味深い使い方などを 気が向くままに語ってくれている本 ここ、今日のポイント! この雰囲気さえ掴んでくれたら あとは、気楽にこの本を楽しんでも らいたいです。 イメージとして・・・・・ 「語り出すと止まらないジョー・セルコさんが、 飲み屋でSQLの話を始めてしまい、 もう誰も止められない状態。 (マイクを離さない状態)」 ⇒でも、持っている知識と経験が膨大だから、おもしろ い!
セルコの本は • 網羅性を高めた学習書(学術書)じゃな いけれども、結果として、網羅的! • 読者として、とにかく自分の経験したこ とのない世界を見ることができる。 しかも結構それらは「本質的」
厚さ比較 (2版vs4版)
セルコ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の最適化
翻訳したのは • ミックさん! こんなお名前です が、日本語もお上 手な、ふつうの日 本人です。 いや、、ふつうか どうかのとらえ方 には、個人差があ ります。個人の感 想です。 こんな本を書いたり翻訳したりされ ています(セルコの既刊本もありま す)。 ※一部関係ない本も画像中には含ま れています。
ミックさん • 『SQLパズル』などの翻訳 • 『達人に学ぶSQL/DB設計』等の執 筆 • 膨大なDB知識と経験 • 現実的な解法とのバランス感覚
今回私は • ご縁があって、本書の査読にて、お手伝 いをさせていただきました。 2012年7月 翻訳中であることを知る お手伝いを申し出、尐し作業を開始するも、タイミング 合わずに ほとんどお役には立てず m(_ _)m 2013年1月 初校開始。全力で読み、検証、調査、指摘etc その後、2校も含め、前章読破(一部パスイチあり) 査読の効果 ⇒ 図書費がかからなくなった 普段、読書にあてている時間のほぼすべ てを、本書の査読に充てたため、他の本 を全然買わなかったのです、この期間。
査読のススメ 査読をすると・・・・ (著者/訳者さんとの相性もありますが) • 真剣に読む(何か言わなきゃいけないか ら) • わざと誤解しながら読む(理解度がわか る) • 著者への無限質問権つき! 知人が本を書いていることを知ったら 「なにかお手伝いできることはありませんか」 と申し出てみよう!!
とにかく今回のセルコは、すご い! • 原書の誤り修正 • 原書のわかりにくい部分 の再構成 • すべてのクエリをOracleで 動作するよう書き換え • 脚注の充実。洒落っ気。 • (なるべく)隅々まで行き届い た、わかりやすい表現 英語版よりもていねいで正確。 もはや「日本語版」ではなく「日本版」 いま、セルコの第4版をもっとも良い状態 で読むことができるのは、日本人だけ!
ということで、本書は英訳されて、全 世界の人々に読んでもらうべき!! http://d.hatena.ne.jp/sakaik/20130519/celko4ja
ここで一応セルコの(私の中で の位置づけ)
データベース界の三神 RDBMSの発明者 • E.F.Codd 文献は殆どない NULL嫌い • C.J.Date 本日の話題の主役 • J.Celko -日本語で読める
Chris. J.Date 電子化されて入手可能だそうです。 今回の札幌MySQL勉強会参加の方に教えて いただきました! Amazonで \69,999 で入手可能 こちらも絶版?
話題をいくつか紹介
MySQLに関する話題 • 知ってた? WHERE句のIN節に書けるもの • 左から処理するMySQL(15章) • ソート順で、NULLは前?あと?(7章) その他の話題 • クラーク・ケントの例の「意義と意味」(4 章) • 原書の盛り上がりを地に落とす脚注(5章) • アラビア語のUTF-8表現
以下、前ページの各項目やその他の項目につ いて、ライブでお話をさせていただきまし た。 資料はありません。 そのかわり、次ページ以降に、本公開資料用 に、メモを作成しました。
(補足)ざっとメモ程度ですが各項目につ いて概要だけ追記しておきます(公開資料 用) • 知ってた? WHERE句のIN節に書けるもの – INの左側に書けるのはカラム名だけとは限らない。 – 左側に値、右辺の括弧内にカラムを並べてもいいんだよ。 • 左から処理するMySQL(15章) – セルコ第4版では、選択クエリの列名羅列部分に記述されたもの は「同時に」処理される、とあるが、MySQLでは左から順に評 価されていく。他のDBMSと異なるので、注意が必要。 • ソート順で、NULLは前?あと?(7章) – NULLが含まれる可能性のある列でソートを行う場合、NULLを先 頭にもってきたい場合と、最後にしたい場合がある。 – MySQLのデフォルトでは、NULLは前(もっとも小さい)。 – クエリの書き方を工夫により、どちらにも対応可能 (オプション設定ではなく)
(補足)ざっとメモ程度ですが各項目につ いて概要だけ追記しておきます(公開資料 用) • クラーク・ケントの例の「意義と意味」(4章) – いやぁ、ミックさんは、幅広い分野のことをご存じで、哲学にも造 詣が深いんですよ、というお話。 – セルコが、さらっと書いている話題には哲学的な前提知識を要する ものがあって、それを丁重に説明していただきました。一部は脚注 にも反映されています。 • 原書の盛り上がりを地に落とす脚注(5章) – とても現実的な「ミック節」炸裂。ぜひ読んでみてください。 • アラビア語のUTF-8表現 – コレーション問題の例としてセルコがあげているアラビア語の、頭 字、中字、尾字。実はUTF-8での表現はみんな一緒なのです、とい う話。たぶんセルコの勘違い!? • 400年問題 – 最後のほうの章に出てきた「400年ひとくみ」の話題。原書での 言っている内容がよくわからず、最後の最後まで頭を悩まされまし た。