ミックのブログ このページをアンテナに追加 RSSフィード

2016-08-12 新著が出ます:『プログラマのための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 つのモデルは、まだ木と階層構造を扱う方法論として決定版と言えるほどの地位を確立しているわけではなく、むしろ改善点を抱えた発展途上にあるが、徐々にこのモデルを実装したソフトウェアも増えてきている。こうした利用状況については、訳者が付録で取りまとめているので、そちらも参照していただきたい。


いずれにせよ、技術的にも興味深いモデルであることはもちろん、「このような考え方があるのか」という新たな視点の転換というか気づきを与えてくれる面白さがあるのが── 著者の作品はいずれもそのような気づきに満ちている── 本書の大きな魅力である。さらに本書の後半では、二分木やペトリネットといったコンピュータサイエンスでよく利用される木構造郵便番号や図書コードのような社会に浸透している階層構造の扱いについても考察している。


なお、翻訳にあたり、ストアドプロシージャやストアドファンクションは、OraclePL/SQLの構文を使って記述した。PL/SQLを選択したのは、プロシージャやファンクションを記述するために日本で広く利用されている手続き型の構文だからだ。残念なことに、プロシージャの構文はDBMSごとにバラバラで統一されていないので、他のDBMSで利用する場合は、適宜、コードを変更してほしい。


なお、本書の翻訳にあたり、坂井恵、木村明治の両氏から有益なコメントを多くいただいた。また翔泳社の片岡仁氏には、『プログラマのためのSQL 第4 版』に引き続き、困難な翻訳プロジェクト全般にわたってお世話になった。ここに謝意を表したい。

2016-06-19 新著が出ました『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章を新たに追加しています。

 本書が、皆さんのステップアップの糸口として役立つこと、そしてデータベースという分野の面白さを伝える一端となることを、心から願っています。

 なお、現在もう一冊書籍の準備をしており、おそらく今年中にお目見えすることになると思います。こちらはうってかわって上級者(というかマニアック)向けです。こちらも楽しみにお待ちいただければと思います。

2016-01-17 蟻と象の闘い『芸能人はなぜ干されるのか?』 このエントリーを含むブックマーク

芸能人が芸能事務所から独立や移籍を図ろうとするニュースが流されるとき、必ず枕詞のようについて回る言葉がある。芸能関係者による「事務所からの独立や移動はこの業界のタブー」というやつです。このルールは、普通に勤め人をしている人間が聞くと「業界の慣習」と呼んで片づけるにはあまりに奇異なものです。普通の会社員であれば会社を辞める自由転職の自由もある。もちろん芸能人は個人事業主として事務所と契約しているだけですが、個人事業主こそ自分の意志で取引先を変える自由は法的に保証されている。

実際、法的に何の問題もないからこそ、ことあるごとに芸能人は独立や事務所の移籍を試みようとするのです。しかし、事務所は決してこれを許そうとしない。当該の事務所だけでなく、業界全体として芸能人にそのような自由を認めないよう連動して動きます(そのための音事協という組織がある)。その結果、芸能人は独立を諦めるか、仮に成功しても、「干される」という苛烈な制裁を受けることになります。田原俊彦、鈴木あみセイン・カミュ水野美紀松方弘樹沢尻エリカ・・・所属する事務所から自由になろうとしたことによって「干され」、その後のキャリアを妨害された芸能人は枚挙にいとまない。時には松方や眞鍋かをりのように裁判沙汰にまでなるケースもあります。最終的に勝訴するにせよ、長い法廷闘争のあいだ仕事の中断を余儀なくされ、世間から忘れ去られてしまうことも多い。事務所ともめているというニュースが流れただけでも、人気商売の芸能人にとってはダメージが大きく、事務所もそれが分かっているから強気に出てプレッシャーをかけてきます。

なぜ芸能界はこれほどまでに芸能人にとって不利な労働形態がまかりとおっているのか? もちろん、芸能事務所にとって、唯一の商品である芸能人がいなくなれば、廃業する以外にないのだから、事務所が芸能人の独立を阻もうとするのは当然のことです。芸能人に投資してきたのだから、回収する前に逃げられてたまるか、という思いもある。中には、芸能界の労働慣行を擁護するため「プロ野球だって似たようなものじゃないか」という話を持ち出す関係者もいるという。確かにプロ野球ではドラフトによって所属球団が決められ、選手の意志によって球団を移籍することができない。これは、興業である以上戦力均衡が求められるという理屈によっています。

しかしそのプロ野球ですら、FA制度の導入やストライキなど、選手の抵抗を組織化する選手会という労働組合を持っています。芸能界の問題の根幹は、このような芸能人が連帯して事務所に抵抗する手段が存在せず、個人で戦わざるをえない状況にあることです。個人と業界全体では、力の差がありすぎて最初から結果は見えている。おそらく法に問えば独占禁止法に抵触するような状態がまかりとおっている。

実際、芸能界の歴史は、自由を求める芸能人が各個撃破されてきた歴史といってもいい。芸能人の選択肢は、干されるリスクを承知で正面突破を図るか、独立をにおわせてそれを交渉材料に事務所に待遇改善を図るか、の二択です。後者をうまく利用した芸能人として、本書は木村拓哉を挙げています。今回は木村だけが残留を選択したと報道されていますが、かつては木村はSMAPの中で最も積極的に独立を画策し、身内に事務所を立ち上げさせたりしてジャニーズ事務所からの搾取を牽制してきました。

もしかすると、SMAPの他の面々も、木村のそういう駆け引きを参考にして、交渉カードに使う意図があるのかもしれません。本気で独立すれば、たとえ国民的な人気を誇る彼らであっても、苛烈な報復が待っていることは芸歴の長い彼らが知らないはずがない。芸能事務所は、一度甘い顔をすれば堤防が決壊するように他の芸能人に独立や移籍の波が波及することを知っており、全力で彼らを見せしめにするはずです。

こうした散発的な抵抗は、力関係から見ても芸能人に不利で、よほどの大物芸能人でないと対等には戦えません。泉ピン子のように完勝してしまうケースもあるとはいえ、これは泉がすでに芸能界に地歩を築いており、事務所が中小だったゆえの例外です。芸能人がまともな労働環境を手に入れるには、労働組合のような組織的抵抗を可能にする仕組みを構築するしかない。同じ芸能界でも、俳優のように歴史が古い業態は力のある労組を持っていますが、タレントや芸人の横の連帯は皆無に等しい状況です。「世界最強の芸能人労組」と呼ばれるハリウッドの労働組合は望めないにせよ、組織的抵抗を可能にする組織が作られないと、この問題は前に進まないでしょう。

実は、日本の芸能界においても、労働組合を立ち上げようとという動きは過去にあったのです。漫才ブームさなかの1982年、過酷なスケジュールの仕事を強いられて次々に体調を崩していく仲間の芸人を見かねた島田紳助が、自ら委員長となって労働組合を結成し、吉本興業と戦おうとしました。賛成に回った芸人には明石家さんま間寛平オール阪神・巨人の阪神などがいました。紳助らは3月1日に吉本興業と団体交渉を行い、「週1回の休日をよこせ」、「賃上げ、ギャラ査定の明確化」、「健保制度確立」などの条件を掲げました。現代の水準から見ればどれも当然の権利と思われるような内容ですが、吉本側は「そんなに休みたければ一生休んでろ」とまったく取り合わず、交渉は決裂します。

こうして「紳助労組」は失敗に終わったものの、その後芸人たちが自分の労働条件について吉本と交渉するという下地ができた点で、この運動は芸人の間では評価されているようです。紳助というと、一般には暴力団関係者との交際が発覚して引退したダーティなイメージがつきまとっていますが、意外な一面を発見できたのも本書の収穫でした。

2015-09-03 10/17にJPOUGで講演します

[]10/17にJPOUGで講演します 23:32 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チューニング実践講座

セッション内容についてはこちらのサイトに丁寧にまとめていただいています。

2015-08-29 アフリカンパワーは存在するのか

[]アフリカンパワーは存在するのか 23:07 アフリカンパワーは存在するのかを含むブックマーク

先週閉幕した夏の甲子園で活躍した関東第一のオコエ瑠偉について、フジテレビなどがそのアフリカ系の出自をクローズアップしたことが、人種差別的だとして一部から批判を浴びました。

オコエ瑠偉をフジテレビが「アフリカン・パワー」と紹介 非難の声も - ライブドアニュース

私もたまたま中京と関東第一の試合をリアルタイムで見ており、1回の中京先制のチャンスをオコエが見事な守備で防いだシーンには思わず感嘆しました。

こうした身体能力における遺伝的な違いというのは、どの程度スポーツにおいてものを言うのでしょうか。現在行われている世界陸上を見ていても、アジア系というのは一部の長距離などを除いて苦戦しており、やはり他の黒人や欧米のアスリートよりは骨格や筋肉において不利なように見えます。また、欧州や米国にわたった野球やサッカーの選手は、口々に日本人との体格差について語ります。一方の黒人アスリートたちの中にも「自分たちは身体的に他の人種と違う」と遺伝的優位性について言及する人々がいます(往年の金メダリスト、カール・ルイスや殺人事件の被告となったことで有名になったO.J.シンプソンなど)。

エンタイン『黒人アスリートはなぜ強いのか?』は、この問題について行われた科学的調査を調べて、「遺伝か環境か」の問題を論じるとともに、生理的・身体的特徴を遺伝に帰す議論について回る人種差別の問題の歴史についても考察しています。

科学的には、西アフリカ系の人々が持つ遺伝的特徴は皮下脂肪が少なく、腕のリーチが長く、速筋の割合が高いといった単距離やアメフトに有利な傾向を持っており、反対に水泳やマラソンには不利に働きます。我々が一般的に抱く黒人アスリートのイメージは、こうした遺伝的特徴によって形造られています。一方で、東アフリカ系は肺活量が多いなど、有酸素運動に強い特徴を持っており、ケニアなどはマラソン選手を輩出しています。

もっとも、スポーツは単純な力比べではなく、複雑な技術と戦術が組み合わさって成立する活動であるため、遺伝だけで勝負がつくわけではありません。そこには長い修練による技術の習得と、知的な戦略的駆け引きが関係する。野茂が米国にわたる前は、日本人選手がメジャーリーグで活躍できると考える人間は皆無でした。本書の著者ですら、日本人選手が野球で米国で成功するのは難しいだろうと予想しています。しかし、今の私たちは松井秀喜、ダルビッシュ有、田中将大、上原浩二、岩隈久志といった少なからぬ選手が、圧倒的な体格差をはねのけて活躍したことを知っています(一方、陸上は戦術の入る余地が少ないので、やはり東アジアの選手は不利になる)。

こうした身体的特徴に対する遺伝の役割を認める議論の持つ難しさは、本書も指摘するように政治的なものです。すなわち、冒頭でも紹介したような人種差別的なイデオロギーに利用される危険です。身体的特徴に人種間の遺伝的な差があるのならば、悩の構造や知性のレベルにも同じことが言えるのではないか? これは人をたじろがせる問いです。一歩踏み外すと優生学的な差別思想につながるため、特に米国ではこうした言説や研究がタブー視されてきました。かつて米国では、黒人アスリートの身体能力が高いことは、彼らが人間よりも動物に近い――すなわち下等な生物だ――ことの表れだというすさまじい言説までまかり通っていた過去があり、その反動というわけです。

しかし、仮に人種間で知性に差があることが「科学的に」証明されたとしても、それが人種差別を正当化する理由になるわけではない。それは、身体障害者の人権が、心身の機能不全を理由に制限されるべきではないのと同じです。事実と価値の領域には厳然たる境界線があり、それを混同するのは、愚か者だけがやることです。しかしそれでも、身体的特徴の遺伝差というテーマに触れたとき、多くの人が警戒を強めるのは、このきわどい境界線へ接近することを感じるからでしょう。でもそれはそれで、今度は科学的事実から目をそらせる宗教的圧力になることもある。事実と価値の峻別は、今でも私たちがケリをつけられていない問題なのです。

アメリカ体制が、黒人と白人をめぐっての発言にきわめて神経質なのはわかっています。しかし、科学を否定するわけにはいきません。昼を夜だと言ったり、夜を昼だとは言えないのです。これは事実なのです。

――ギデオン・エーリエル