新著が出ます:『達人に学ぶ SQL徹底指南書 第2版』
本日、新著が発売となります。本書の初版は処女作ということもあり、色々と書き手として未熟な部分も多く出てしまった本なのですが、幸運にも長い期間読んでいただいたことでこのたび改訂版の刊行にこぎつけることが出来ました。
さすがに10年経過すると内容も古くなっており、多くのコードをリバイスしています。特に初版刊行時にはまだサポートが不十分だったウィンドウ関数が、現在では主要なDBMSではほぼ利用できるようになったことを受けて、全面的にこれを採用しました。これにより性能と表現力を両立させるモダンなSQLコーディングが可能になったので、ぜひ本書でその素晴らしさを確認いていただければと思います。
以下に本書の前書きを引用しますので、購入の際の参考にしてください。
本書の初版が刊行されてから、10年が経過しました。筆者にとって、初版は初めて書いた本、いわゆる処女作であり、自分の知見や文章がどのような受け取られ方をするのかまったく見当がつかないまま書いていました。幸運なことに、多くの読者の方から好意的に受けとめていただき、SQLの解説書としてはちょっとしたロングセラーとなりました。そうした支持をいただいことで、このたびの改訂につながったわけで、まずは二度目の機会をいただいたことに感謝いたします。
本書が長い期間読まれ続けている最大の理由は、RDBとSQLが長命を保っているからです。NoSQLなどの台頭はありながらも、RDBはいまだに多くのシステムの永続層におけるファーストチョイスであり、SQLはすたれるどころか、その直観的で優れたインターフェイスを武器に、職業プログラマやエンジニア以外のエンドユーザー層へも広がりを見せています。とはいえ、SQLも10 年という流れの中で大きな変貌を遂げました。かつては考えられなかったほどの大量データ処理を行なうことが求められるようになり、分析業務は一部の専門家だけのタスクではなくなったことで、SQLサイドもまた時代の要請に応えるために大幅な機能追加が行なわれました。本書でも、こうした最新動向を反映し、モダンなSQLプログラミングに対応するべくアップデートを行ないました。特に、初版ではDBMSのサポートが不十分だったため大きく取り上げることのできなかったウィンドウ関数を全面的に採用しています。
初版を読んだことがないという方に向けて、本書の概要を説明すると、本書のコンセプトは「中級SQLプログラミング入門」です。実務でのSQLプログラミングの経験が半年から1年くらいある方を読者に想定しています。もっと身もふたもない言い方をすると、J.セルコの『プログラマのためのSQL』を読んでみたけど投げ出した、というあたりのレベルです(もともと本書の初版は、同書の解説書として書いたところもあります)。
本書には、CASE式、ウィンドウ関数、外部結合、相関サブクエリ、HAVING句、EXISTS述語などSQLの多くの道具が登場しますが、これらの基本的な構文はおよそ把握している、使ったことがある、というくらいのレベルであれば十分に読み進められます。本書の第1部では、こうしたSQL の道具を1 章につき1 つ取り上げて、それらの便利な使い方を、サンプルケースを通じて学んでいくというスタイルを採っています。皆さんもぜひ、実際に手を動かしてサンプルコードを実行しながら学習してください。基本的には前から順番に読んでもらうことを想定していますが、すでによく知っている内容の章は飛ばしたり、興味ある章から読んでもかまいません。
ところで本書にはもう1つ、想定する読者層があります。こちらはレベルによらず、「SQLとは何なのか」を知りたいと思っている方々を対象としています。このような表現は奇妙に聞こえるかもしれませんが、実際のところ、SQLというのは不思議な言語です。初級者のうちは、簡単なことを簡単に実現できて便利な言語だ、くらいにしか思わなかったのが、ちょっと深く理解しようとすると合理的には理解できない言語仕様に突き当たったり、少し複雑なことをやろうとすると妙に構文が難しくなったりといった、不可思議な事態に遭遇し始めます。なぜ、NULLにまつわるSQLの動作はこうも混乱しているのか? なぜ、行間比較に相関サブクエリのような難しい構文が必要なのか? なぜ、手続き型言語のようなループや変数といった便利な道具がないのか? なぜSQL では「すべての」を表現することがこれほど難しいのか?……
こうした疑問は、ある程度の割り切りを持って「そういうものだ」と受け入れてしまえば、回避して進むこともできます。実際多くのエンジニアやプログラマは、SQLに対してぶつぶつ文句をいいながらも、「深く絡むと面倒なやつだが適当に距離を保っていればそこそこ便利な仕事上の知り合い」くらいの付き合い方をします。しかし、なかには「自分の使っている道具の成り立ちを知りたい」と思う人もいるでしょう。本書は、そのような好奇心を持ってしまった読者に対して、SQLの原理となっている仕組みや、この言語を作った人々が何を考えて現在のような形にしたのか、というバックグラウンドを掘り起こして伝えることを目指しています。本書の第2部は、このような、SQLという言語そのものにまつわる疑問に答えようとしています。もちろん、すべての疑問に答えきった、と言い切る自信はありませんが、1つの言語の本質を理解していくヒントは示せたのではないかと思います。
本書が、読者のSQLプログラミングの上達に貢献することはもちろん、プログラミング言語という、ある種の文化的産物の深奥をのぞき込む面白さを感じてもらえることを祈っています。
不可思議にも面白い、SQLの世界へようこそ。
既存の書籍の改訂を除けば、おそらく本書が、私がRDBやSQLについて書く最後の本になると思います(そのあたりの事情については次回エントリで触れます)。
皆さんが楽しみながら上達するような本になっていれば幸いです。
国体をめぐる冒険:半藤一利『日本のいちばん長い日』
1945年7月26日にポツダム宣言が日本政府に突き付けられたとき、これを真面目に受け取った人間は、政府にも軍にもいませんでした。すでに沖縄は多大な人的被害を出したのちに占領されていましたが、軍と政府はすでに本土決戦の意思を固めており、むしろ沖縄戦は十分な時間を稼ぎ、米軍にも相当の被害を出したことで「成功」モデルとみなされていました。同じことを本土決戦においても行えば、米国と有利な条件で講和を結べるに違いないという「一撃講和」論が、この時点の政府の戦略でした。
ところが、原爆投下とソ連の参戦という衝撃的な二つの事件が起きたことで戦局はいよいよ最悪となり、御前会議において昭和天皇が降伏を指示する「聖断」を行い、ポツダム宣言の受諾が決まり、8月14日に宣言の正式受諾を連合国に通知しました。教科書的な記述をすれば、そのような流れになりますし、日本史の記述問題であればこれで正解がもらえるでしょう。
しかし、本書はそのような大きな流れの中にあっても、意思決定の現場では一筋縄ではいかない鍔迫り合いがあったことを明らかにしたノンフィクションの名作です。ちょうど14日正午から1時間刻みで様々な人物の視点からドラマが展開する手法で24章が構成されており、海外ドラマファンならばすぐにピンとくる『24』と同じ形式で物語が進みます(時系列的には、真似したのは『24』の方でしょうが)。
すでに戦局の挽回が不可能なことを認め、早期講和に積極的な米内外相と、陸軍の暴発を抑えつつ可能な限りソフトランディングを目指す阿南陸相のせめぎあい、永遠に一致を見ないと錯覚するような閣議を何とかしてまとめあげようとする鈴木首相の粘り腰、玉音放送の録音を極秘裏に依頼されるメディア関係者の緊張など、本書のどのページを読んでも緊迫する人間ドラマは、元祖『24』と呼んで差し支えないくらいです。
しかし、本書の中でひときわ異彩を放つのは、彼ら終戦工作に尽力した男たちではありません。むしろその動きを阻止しようとした人々 ―― クーデターを計画した陸軍の士官たちです。歴史の教科書には綴られませんが、あくまでも徹底抗戦を叫ぶ陸軍の一派は、ポツダム宣言受諾に動く政府首脳の動きを察知するや、首都防衛の近衛師団などを動員して実力行使に訴え、天皇を奪取して継戦へとひっくり返そうと策動していました。宮城事件の名で知られるクーデター未遂です。
天運がどちらに与するかそれはわからないでしょう。どちらに与してもいい、判決は実行することによって定まると思うのです。そしてその実行が、純粋な忠誠心より発露しているものである以上は、臣道としてなんら恥ずるところはありません。……中佐殿、私は、まず宮城内に陣どって外部との連絡を断ち、時局収拾の最後の努力をこころみるため、天皇陛下をお助けすべきだと信じます。将校総自決よりその方が正しいと思います。近衛師団との連絡はもうついているのです。必要な準備はととのっております。あとは、少数のものが蹶起することによって、やがては全軍が起ち上り、一致して事にあたればいいのです。成功疑いありません。
(Kindle の位置No.1436-1442). 文藝春秋. Kindle 版. )
これは、計画の中心人物である畑中少佐の言葉です。普通、軍人というのは結果に最もこだわる職業のはずですが、その軍人が「結果はどうでもいい」と断言するのは、相当に奇異なことです。敗色濃厚な現実を前に破れかぶれになっているのだろう、と切り捨てることもできますが、しかし奇異というならば、陸軍はすでに戦前からかなり奇異な軍隊でした。二・二六事件や五一・五事件のようながっつりクーデターが頻発し、事後承認によって不問とされたものの、満州事変に代表される現場の独断が横行しており、上位下達と絶対服従がルールの近代的軍隊としては、異質としか言いようのない組織でした。普通であれば、軍の最高指導者である天皇が停戦を決断し、陸相がそれに従うよう命令した時点で、全将兵がそれに従うのが軍隊というものです。
もっとも、畑中少佐らの言動を追っていくと、彼らにも彼らなりのロジックというか、行動原理があることが分かります。それが「国体の護持」です。戦時中の日本には、軍にせよ民間人にせよ、戦中は人命を軽視する風潮があったことはよく知られており、現在からは批判が集中する点でもあります。しかし、当時の軍人や政治家にとって、最も重要な目的は「国体の護持」にあり、それが果たされるならば全日本人が死に絶えてもよい、と考えていました(実際、ポツダム宣言をすぐに受諾しなかったのは、宣言の中に国体の保障について明言されていなかったからです)。再び、畑中少佐の言葉を引きます:
もし天皇の上に他の外力が加わったとしたら、国体護持は絶対不可能である。この外力を排除するものが皇軍の力であり、皇軍の任務はそこにあるのである。ところがポツダム宣言受諾は、とりも直さず天皇の上に他の力が加わることであり、この力をとりのぞくことを任務とする皇軍は武装解除されている。これでどうして国体護持ができるというのか。全滅か、もしくは勝利しかないというときに、そうした妥協的な国体護持というものがありうるであろうか。古今東西の歴史に妥協的な講和というのはありえなかった。とすれば、陸軍はむしろ一億玉砕するにしかずとの態度をとるべきである。ところが、光輝ある陸軍の大部分の指揮官は、終戦は大御心だからこれにしたがうのみだ、との一点張りに終始している。しかもはたして降伏することが真の大御心であるかどうか、敗北主義の重臣が勝手にきめ、気弱になっている天皇皇后に無理やり承知させたことではないのか。
(Kindle の位置No.1171-1179). 文藝春秋. Kindle 版. )
ここで畑中少佐が、天皇の御心を「忖度」しているのも見逃せないポイントですが、ともあれ、彼が国体に固執していることをよく示す発言です(固執しているのはもちろん、彼だけではない)。この国体というのは、もう私たちがリアリティを持って理解することは不可能な概念です。それは、昭和天皇その人の肉体や生命でもありません。彼らは、国体を守るためならば一時的に天皇に背いてもよいとすら考えています。しいて言うならば、万世一系の天皇の血筋が象徴する君主制ということになるでしょうが、やはりこうした言葉による説明では、何百万という人々が命を投げ出して守ろうとしたその切迫性をつかまえることはできません。
こうした個人の生命と幸福を超克したところにある抽象的な概念へのコミットを強制する体制を、私たちは全体主義として否定的に評価します。しかし、全体主義の中に生きる人々は、当人が主観的に倫理的な純粋さを持ち合わせているほど、その抽象的な概念へのコミットを自発的に強めていく。畑中少佐を知る人は、その人柄を「単純すぎるがそれだけにかえって人をひきつける純真さ」と評しました。動機の純粋性が肥大することで、結果責任への意識が希薄になっていき、目的が正しければ全てが許されると錯覚していきます。この状態に陥ると、軍のような近代的な組織を維持し、合理的な意思決定を行うことは難しい。
私たちは現在、個人の権利と生命に至上の価値をおく、少なくとも建前ではまだそれを守ると約束している政体に住んでおり、こうした国体のような概念をばかばかしいと考えます。しかしこの問題は、そんな簡単に片付いてはいない。全体主義の罠は、ブラック労働や結果責任に無頓着な官僚や政治家という形で、油断するとすぐに私たちを捕まえようとチャンスを窺っている。いつか自分たちの手で葬り去るまで、その戦いは続くのです。
ゼロリスクという無限遠点
昨年8月に小池百合子氏が都知事に就任して以来、常に大きな課題であり続けた豊洲市場は、都知事が豊洲移転の容認に傾いたことでほぼ政治課題としては決着したようです。豊洲の土壌や地下水から基準値以上の化学物質が検出されたことが話題となりましたが、結局は直接的な健康被害を与える水準ではない、というところで科学的なコンセンサスも(時間がかかったとはいえ)形成されたように思えます。
今回の豊洲市場問題でも大きな焦点となった「社会的にリスクをどこまで許容するか」という問いは、東日本大震災のときに食物などの放射能汚染が懸念された際にも大きくクローズアップされました。「ゼロリスク以外は許せない」という人々の心理が政治的決定(あるいは混迷)に大きく寄与したのも、両者の共通点です。
ゼロリスク願望について、私はこれまで、日本人がリスクとベネフィットに基づく意思決定を求められたときに顔を出す特異な心理的傾向だと思っていました。私はシステム開発を仕事にしているのですが、日本のユーザがシステムの信頼性にかなりのこだわりを見せる、すなわちシステムダウンというリスクを非常なコストをかけてでもゼロに近づけたがることを知っているので、おそらく日本社会に特有のある種の文化なのだろう考えていました。
しかし、最近、環境工学の研究者である中西準子氏の豊洲移転問題に関するインタビューを読んで、少し考えさせられました。
いよいよ移転へ、豊洲の安全性は本当に問題だったのか? 小池都知事、メディアがリードしたおかしな議論
https://www.buzzfeed.com/jp/satoruishido/junko-nakanishi?utm_term=.ftP0BWPxO
中西氏は、豊洲の環境状態が大きな健康被害に結び付く状態ではなく、豊洲移転を阻む理由にならないというまっとうな科学者としての見解を表明しているのですが、意外だったのは、科学的リテラシーの欠如の証拠としてしばしば科学啓蒙クラスタから攻撃を受ける「ゼロリスク願望」について、社会運動の方法論として一定の評価を与えていたことです。
1960年代〜70年代のことです。私も下水処理場や静岡県の田子の浦港のヘドロ公害などの調査、反公害運動に関わってきました。
田子の浦の光景はいま思い出しても衝撃的です。川も港も茶色で、川からぶくぶく泡がでているんですよ。
ヘドロ汚染の原因となった製紙工場を相手に漁師がデモをしている。現場にでて、調査をして企業や行政の問題点を指摘した提言をまとめたものです。
公害によって多くの人が亡くなり、生活環境や健康に問題を抱えていた時代です。
私は、こんなことではいけないと思い、今から考えれば、笑ってしまうような稚拙な調査ではありましたがファクトをかき集めて、対策を求めるということを繰り返していました。
政治の側は環境と「経済の両立」なんて言葉を使おうとしていましたが、そんなことを言っているようでは人の命を救えない、という時代でした。
あまりにも大きなリスクが目の前にありました。ゼロリスクを目指す気持ちで、公害対策を進めないとどんどん人が命を落としていく。甘いことはいっていられない、と私は考えていたのです。
リスク削減のために、他のことを考えずに邁進しても間違いがない、という気持ちでした。
中西氏は、よく知られているように早くから公害問題に取り組み、ファクトベースのリスク評価を武器に、国家や企業を敵に回して戦ってきた人物です。そうした当事者から、ゼロリスク願望が社会運動に果たしたポジティブな影響が語られるというのは、少し驚きでした。
しかし考えてみれば、「戦争の廃絶」や「核兵器の完全放棄」など、およそ達成不可能に思える目標を掲げることで、運動を不断にドライブする推力とするというのは、日本だけにとどまらず世界的に左翼や革新勢力が採用する古典的な戦略です。私が知る限り、この戦略を定式化した一番古いテキストは、エマニュエル・カントの「永遠平和のために」です。
1795年、フランス革命の混乱のなか、各国が紛争を繰り返すのを見たカントは、個別の戦争の調停を目的にしていた当時の和約方式では戦争による消耗によってヨーロッパ全体(それは当時「人類全体」とほぼ同義でした)がジリ貧になるという危機感から、永遠平和を目的にした抜本的な対策を提唱します。常備軍の廃止、戦争国債の発行禁止、内政不干渉の原則、スパイ行為、テロ・暗殺の禁止、国際的な連合組織の設立など、近代国際政治の基礎となっている制度から、現在でも夢想としか思えない提案まで様々です。
カント自身は夢想家とはほど遠く、こうした達成不可能な目標は、現実の漸進的な改良に寄与するだけでも有用なのだ、という「方法論としての理想主義」を主張しています。「永遠平和のために」は有名な次のような文章によって締めくくられています。
公法の状態を実現することは義務であり、同時に根拠のある希望でもある。これが実現されるのが、たとえ無限に遠い将来のことであり、その実現に向けてたえず進んでいくだけだとしてもである。だから永遠平和は、これまでは誤って平和条約と呼ばれてきたものの後につづくものではないし(これは単なる戦争の休止にすぎない)、たんなる空虚な理念でもなく、実現すべき課題である。この課題が次第に実現され、つねにその目標に近づいていゆくこと、そして進歩を実現するために必要な時間がますます短縮されることを期待したい。
リアリスト、と評してよいでしょう。他の凡百の夢想的なテキストと異なり、本書が古典として読み継がれる理由でもあります。
「方法論としての理想主義」は、その後多くの社会改良運動に戦略として取り入れられていき推進力を生むエンジンとして機能しますが、ゼロリスク願望にもまたそうした積極的な意義をもった時代があったのか、というのが、中西氏のインタビューを読んで得られた気づきでした。もっとも、カントも党派的な正義を振りかざして政治ショーをやるために自分の方法論が使われていると知れば墓の下で怒ることでしょう。そろそろこの方法論にもアップデートが必要な時が来ているのかもしれません。
新著が出ます:『プログラマのためのSQLグラフ原論』
今月下旬に、J.セルコの『Trees and Hierarchies 2nd Edition』の邦訳が刊行されます。同著者の代表作『プログラマのためのSQL 第4版』のスピンオフの一つで、RDB/SQLで木と階層構造を扱うための方法論にフォーカスしたなかなかマニア度の高い一冊です。主眼となる「入れ子集合モデル」については、私もあちこちの記事や書籍で紹介したことがあるので、ご存じの方もいるかもしれませんが、より包括的かつ理論面までカバーした本格派の内容になっています。
表紙の女性はマリア様でしょうか。本家の方が刊行されたときも「このおっさん誰?」という質問が相次ぎましたが、ガリレオという説が有力なようです。そう言われてみると本家は『星界の報告』のような格調を感じます。本書の方は、長らく定説とされてきたモデルをひっくり返そうという意味では『天体の回転について』みたいな性格もあるのですが、大型本の表紙が2連続でおっさんだと本棚が暑苦しくなるリスクを避けたと思われます。手堅い試合運びです。
以下に訳者前書きを掲載するので、購入する際の参考にしていただければと思います。
本書は、米国を代表するデータベースエンジニアの一人、ジョー・セルコの主著『プログラマのためのSQL』の「スピンオフ作品」であり、リレーショナルデータベースとSQLを使って木と階層構造を扱う方法論をテーマとしている。『プログラマのためのSQL』の第36章では木と階層構造を扱う方法について説明されているが、本書はまるまる一冊を使って、極めて詳細に論じている。
2000 年代からWeb 上でデータをやり取りするフォーマットとしてXMLの利用が多くなってきたこともあり、データベースにおいても階層構造を持ったデータを扱うことが増えてきた。この要望に対して、データベースの世界からの反応は2 つに分かれる。1つはXMLデータベースやグラフデータベースのように、非関係(非リレーショナル)モデルに基づくデータベースによってこうしたデータをうまく扱おうとする試み。もう1 つが、関係モデルの内部で工夫することで対応しようとする試みである。本書は、後者の試みにおける興味深い成果の1つである。
リレーショナルデータベースで木と階層構造を扱う方法は、大きく分けて以下の3つに分類される。
1. 隣接リストモデル
2. 経路列挙モデル
3. 入れ子集合モデル
隣接リストモデルは第2 章で論じている。ある意味で伝統的な方法論で、数十年前から知られているものだ。その考え方は、ノード同士をポインタチェーンでつなぐ手続き型の考え方をそのままリレーショナル(関係)モデルの世界に持ち込んだものである。この方法論は考え方の馴染みやすさとわかりやすさから、ほとんどデファクトスタンダードの地位を占めているが、本書でも指摘されているように、更新と検索のクエリが複雑になりやすいという欠点がある。
経路列挙モデルは第3章で取り上げられている。これはファイルシステムのディレクトリやフォルダを管理する仕組みとよく似ているので理解しやすい。また、検索クエリが非常にシンプルかつ高速になるという利点があるが、更新はかなり面倒になるため、ほとんど木の構造が変わらない場合に力を発揮するモデルだと言える。
入れ子集合モデルは、第4 〜 6 章で取り上げられている。このモデルが本書の主要テーマと言って差し支えない。このモデルは、階層構造の従属関係を集合の包含関係で捉えなおすという視点の転換によって、集合の取り扱いに長けているSQLとの親和性を高めたモデルである。多様な検索クエリをシンプルに記述できるという利点があるが、階層構造の更新を行なう際にロックされるレコードの範囲が広くなるという欠点を持つ。この欠点を補うために、集合の座標を整数から有理数に拡張した「入れ子区間モデル」が導入される。
これら2 つのモデルは、まだ木と階層構造を扱う方法論として決定版と言えるほどの地位を確立しているわけではなく、むしろ改善点を抱えた発展途上にあるが、徐々にこのモデルを実装したソフトウェアも増えてきている。こうした利用状況については、訳者が付録で取りまとめているので、そちらも参照していただきたい。
いずれにせよ、技術的にも興味深いモデルであることはもちろん、「このような考え方があるのか」という新たな視点の転換というか気づきを与えてくれる面白さがあるのが── 著者の作品はいずれもそのような気づきに満ちている── 本書の大きな魅力である。さらに本書の後半では、二分木やペトリネットといったコンピュータサイエンスでよく利用される木構造、郵便番号や図書コードのような社会に浸透している階層構造の扱いについても考察している。
なお、翻訳にあたり、ストアドプロシージャやストアドファンクションは、OracleのPL/SQLの構文を使って記述した。PL/SQLを選択したのは、プロシージャやファンクションを記述するために日本で広く利用されている手続き型の構文だからだ。残念なことに、プロシージャの構文はDBMSごとにバラバラで統一されていないので、他のDBMSで利用する場合は、適宜、コードを変更してほしい。
なお、本書の翻訳にあたり、坂井恵、木村明治の両氏から有益なコメントを多くいただいた。また翔泳社の片岡仁氏には、『プログラマのためのSQL 第4 版』に引き続き、困難な翻訳プロジェクト全般にわたってお世話になった。ここに謝意を表したい。
新著が出ました『SQL 第2版 ゼロからはじめるデータベース操作』
先週、新著『SQL 第2版』が刊行となりました。新著といっても、2011年に発売された書籍の改訂版で、DBSMの最新バージョンに合わせて構文の変更を見直したのと、アプリケーション(Java)からデータベースに接続してSQLを実行する方法について解説する新章を追加したのが主な変更です。初版で勉強した方が今から買いなおす必要はありませんが、これから買う方は2版の方をお求めいただければと思います。読者対象者のレベルとしては、初版と変わらず、データベースやSQLについてまったく知識がないという初心者の方を対象にしています。
以下に前書きを掲載するので、購入する際の参考にしていただければと思います(「★ ★ ★」以降が2版の追加部分)。
本書は、プログラミングやシステム開発の経験がまったくない初心者の方々を対象に、リレーショナルデータベースおよびそれを扱うための「SQL」という言語の使い方を解説する書籍です。各章では具体的なサンプルコードを中心に解説を行ない、章末には理解度を確認するための練習問題も用意しています。第1章から順に自分の手でサンプルコードを試しながら読み進めることで、自然とSQLの基礎とコツをマスターできる構成になっています。また、特に重要なポイントは「鉄則」としてまとめているため、本書の内容を一通り理解した後はリファレンスとしても活用できるでしょう。
近年、データベースという分野は、ほかのシステムの分野もそうであるように、急速な進展を見せています。新しい機能を持つデータベースが登場し、扱われるデータ量も飛躍的に増大するなど、その応用範囲を大きく広げています。
本書が扱うリレーショナルデータベースは、現在最も主流のデータベースであり、それゆえほかのデータベースを理解するうえでの基礎ともなります。その重要性は、通常、システムの分野で「データベース」と言えばリレーショナルデータベースを指す、という事実からもわかります。
皆さんの中には、これからさまざまな分野、規模のシステム開発を経験することになる方が多いでしょう(あるいはすでに開発に従事している方もいるかもしれません)。その際、データベースが使われていないシステムというのは、まず考えられません。そして、そのシステムで使われているデータベースは、きっとリレーショナルデータベース、あるいはそれを基礎とするデータベースです。これが意味することは、リレーショナルデータベースと(そのデータを操作する)SQLをマスターすれば、どんなシステム開発でも応用が利く“データベースのスペシャリスト”になれる、ということなのです。
★ ★ ★
本書の初版が刊行されてから6年が経過しましたが、その間、データベースの社会的な重要性は高まる一方でした。以前から、データベースを用いた統計的な分析は専門家の間では行なわれていましたが、それをきわめて大規模なデータに適用してビジネス全般の改革に応用しようという大きな潮流が起こりました。その動きを象徴する「ビッグデータ」や「データサイエンス」という言葉も、システムの世界にとどまらず、社会全体に広まりました。統計解析は、人工知能と並んで今後の社会のあり方を決定する要因だという意見すらあります。
一方で、データベースの世界でも技術的な革新が行なわれてきました。KVSに代表される非リレーショナル型のデータベースの利用は、もはや珍しいことではなくなりました。また、大規模データを処理するためのパフォーマンスを追求するために、インメモリデータベースやカラム指向データベースの技術も大きな進展を見せており、実用化が進んでいます。
その一方、変わらなかったこともあります。それは、データベースの主流が、やはりリレーショナルデータベースであることです。その意味で、リレーショナルデータベースと、それを操作する言語であるSQLの習得が、データベースの世界を究めていく最初のステップであることも、いまでも変わらぬ事実と言えます。しかしそれは、リレーショナルデータベースとSQLが進歩していないわけではありません。多くのDBMSがウィンドウ関数やGROUPING演算子(いずれも第8章で解説)をサポートし、大規模データを効率的に処理するための機能を充実させてきました。SQLをマスターすることで、自由自在にデータを扱い、効率的なシステムを構築することができるようになるでしょう。
本書もまた、そうした動向にあわせてバージョンアップを行ないました。代表的なDBMSの新しいバージョンでのSQL構文のサポート状況にあわせて記述をアップデートするとともに、アプリケーションからデータベースを利用する方法をテーマとした第9章を新たに追加しています。
本書が、皆さんのステップアップの糸口として役立つこと、そしてデータベースという分野の面白さを伝える一端となることを、心から願っています。
なお、現在もう一冊書籍の準備をしており、おそらく今年中にお目見えすることになると思います。こちらはうってかわって上級者(というかマニアック)向けです。こちらも楽しみにお待ちいただければと思います。
蟻と象の闘い『芸能人はなぜ干されるのか?』
芸能人が芸能事務所から独立や移籍を図ろうとするニュースが流されるとき、必ず枕詞のようについて回る言葉がある。芸能関係者による「事務所からの独立や移動はこの業界のタブー」というやつです。このルールは、普通に勤め人をしている人間が聞くと「業界の慣習」と呼んで片づけるにはあまりに奇異なものです。普通の会社員であれば会社を辞める自由も転職の自由もある。もちろん芸能人は個人事業主として事務所と契約しているだけですが、個人事業主こそ自分の意志で取引先を変える自由は法的に保証されている。
実際、法的に何の問題もないからこそ、ことあるごとに芸能人は独立や事務所の移籍を試みようとするのです。しかし、事務所は決してこれを許そうとしない。当該の事務所だけでなく、業界全体として芸能人にそのような自由を認めないよう連動して動きます(そのための音事協という組織がある)。その結果、芸能人は独立を諦めるか、仮に成功しても、「干される」という苛烈な制裁を受けることになります。田原俊彦、鈴木あみ、セイン・カミュ、水野美紀、松方弘樹、沢尻エリカ・・・所属する事務所から自由になろうとしたことによって「干され」、その後のキャリアを妨害された芸能人は枚挙にいとまない。時には松方や眞鍋かをりのように裁判沙汰にまでなるケースもあります。最終的に勝訴するにせよ、長い法廷闘争のあいだ仕事の中断を余儀なくされ、世間から忘れ去られてしまうことも多い。事務所ともめているというニュースが流れただけでも、人気商売の芸能人にとってはダメージが大きく、事務所もそれが分かっているから強気に出てプレッシャーをかけてきます。
なぜ芸能界はこれほどまでに芸能人にとって不利な労働形態がまかりとおっているのか? もちろん、芸能事務所にとって、唯一の商品である芸能人がいなくなれば、廃業する以外にないのだから、事務所が芸能人の独立を阻もうとするのは当然のことです。芸能人に投資してきたのだから、回収する前に逃げられてたまるか、という思いもある。中には、芸能界の労働慣行を擁護するため「プロ野球だって似たようなものじゃないか」という話を持ち出す関係者もいるという。確かにプロ野球ではドラフトによって所属球団が決められ、選手の意志によって球団を移籍することができない。これは、興業である以上戦力均衡が求められるという理屈によっています。
しかしそのプロ野球ですら、FA制度の導入やストライキなど、選手の抵抗を組織化する選手会という労働組合を持っています。芸能界の問題の根幹は、このような芸能人が連帯して事務所に抵抗する手段が存在せず、個人で戦わざるをえない状況にあることです。個人と業界全体では、力の差がありすぎて最初から結果は見えている。おそらく法に問えば独占禁止法に抵触するような状態がまかりとおっている。
実際、芸能界の歴史は、自由を求める芸能人が各個撃破されてきた歴史といってもいい。芸能人の選択肢は、干されるリスクを承知で正面突破を図るか、独立をにおわせてそれを交渉材料に事務所に待遇改善を図るか、の二択です。後者をうまく利用した芸能人として、本書は木村拓哉を挙げています。今回は木村だけが残留を選択したと報道されていますが、かつては木村はSMAPの中で最も積極的に独立を画策し、身内に事務所を立ち上げさせたりしてジャニーズ事務所からの搾取を牽制してきました。
もしかすると、SMAPの他の面々も、木村のそういう駆け引きを参考にして、交渉カードに使う意図があるのかもしれません。本気で独立すれば、たとえ国民的な人気を誇る彼らであっても、苛烈な報復が待っていることは芸歴の長い彼らが知らないはずがない。芸能事務所は、一度甘い顔をすれば堤防が決壊するように他の芸能人に独立や移籍の波が波及することを知っており、全力で彼らを見せしめにするはずです。
こうした散発的な抵抗は、力関係から見ても芸能人に不利で、よほどの大物芸能人でないと対等には戦えません。泉ピン子のように完勝してしまうケースもあるとはいえ、これは泉がすでに芸能界に地歩を築いており、事務所が中小だったゆえの例外です。芸能人がまともな労働環境を手に入れるには、労働組合のような組織的抵抗を可能にする仕組みを構築するしかない。同じ芸能界でも、俳優のように歴史が古い業態は力のある労組を持っていますが、タレントや芸人の横の連帯は皆無に等しい状況です。「世界最強の芸能人労組」と呼ばれるハリウッドの労働組合は望めないにせよ、組織的抵抗を可能にする組織が作られないと、この問題は前に進まないでしょう。
実は、日本の芸能界においても、労働組合を立ち上げようとという動きは過去にあったのです。漫才ブームさなかの1982年、過酷なスケジュールの仕事を強いられて次々に体調を崩していく仲間の芸人を見かねた島田紳助が、自ら委員長となって労働組合を結成し、吉本興業と戦おうとしました。賛成に回った芸人には明石家さんま、間寛平、オール阪神・巨人の阪神などがいました。紳助らは3月1日に吉本興業と団体交渉を行い、「週1回の休日をよこせ」、「賃上げ、ギャラ査定の明確化」、「健保制度確立」などの条件を掲げました。現代の水準から見ればどれも当然の権利と思われるような内容ですが、吉本側は「そんなに休みたければ一生休んでろ」とまったく取り合わず、交渉は決裂します。
こうして「紳助労組」は失敗に終わったものの、その後芸人たちが自分の労働条件について吉本と交渉するという下地ができた点で、この運動は芸人の間では評価されているようです。紳助というと、一般には暴力団関係者との交際が発覚して引退したダーティなイメージがつきまとっていますが、意外な一面を発見できたのも本書の収穫でした。
10/17にJPOUGで講演します
10/17(土)にJPOUG主催の勉強会@青山で講演します。
JPOUG> SET EVENTS 20151017 | Japan Oracle User Group (JPOUG)
私のセッションは14:00-14:45で、OracleベースでのSQLパフォーマンスを出すための設計やチューニングについてお話しします。Oracleを使っての性能実測とチューニングによる改善効果の実演も行いたいと思っています。私以外にも多くの講師陣の方々が講演されるので、休日ですが興味ある方は足をお運びいただければと思います。
2015/10/19 追記
講演資料をアップしました(PDF)。
ハイパフォーマンスを実現する設計方法とSQLチューニング実践講座
セッション内容についてはこちらのサイトに丁寧にまとめていただいています。