📚

『詳説 データベース』が発売になりました

2021/07/05に公開

発売のお知らせ

昨年から輪読会を行っていたDatabase Internalsの翻訳版『詳説 データベース』が、明日7/6に発売となりました。一部書店では既に店頭に並んでいるようです。

こちらはAmazonやその他ブックストアのサイトで紙版の本を入手可能です。

電子版については、出版元のオライリージャパンのEbook Storeで、PDFおよびEPUB形式(もちろん紙版も)の購入が7/6から可能となりました。

紹介にかえて -監訳者まえがきより-

データベースに関わる方々にとって、これからのスタンダードになるであろう"Database Internals"の全訳をお届けできることを、大変うれしく思います。

「データベース」をタイトルに含む書籍は多く見られますが、それらの大半はコンピュータサイエンスを学ぶ人向けの教科書であったり、または特定のDBMSを使う人向けの実務書であったりします。

この"詳説 データベース"はそれらと異なり、ストレージエンジン分散データストアという要素技術を対象とした珍しい技術書となっています。何故この2つが対象として選ばれたのでしょうか。その背景として、国内企業でも採用が始まった分散SQLデータベースに関する動向があげられます。

以前よりRDBMS(リレーショナルデータベース管理システム)は水平スケール、特に書き込みクエリを分散させることが難しいとされてきました。そのため、2010年以降に多くの企業でNoSQLと言われるデータベースが採用されてきています。しかし、一方でRDBMSが担保してきたACID特性はアプリケーションレベルで保証する必要があるなど、開発の重荷となる例も見られるようになってきました。こうした課題を解決するために、従前のRDBMSと同様のモデルおよびインターフェース(SQL)を持ち、ACID特性を担保しながら、かつNoSQLのように水平スケールが可能なデータベースが今注目を集めています。

こうしたデータベースは分散SQLデータベース、またはNewSQLなどとも呼ばれていますが、それらを構成する技術要素はここ数年で新しく発表されたり登場したものかと言うとそうではありません。本書にもある通り、どちらかと言えば、既存の技術の組み合わせによって実現されています。

分散SQLデータベースを非常にシンプルに説明すれば、多くのノードのローカルで稼働するストレージエンジンと、それらに跨って一貫性や分離性などを保証する分散トランザクションマネージャが重要なコンポーネントとなっています。本書はまさにここに焦点を当てており、現在のデータベースがどのように水平スケールを目指して進化しているか、その根拠になる論文としてどのようなものがあるのかを体系的に学ぶことができます。

そのため、この書籍は入門書ではありませんが、次のような多くの読者を対象とします。

  • データベースを利用するアプリケーション開発者
  • データベースを管理するエンジニア
  • データベース自体を開発するOSSコントリビュータ
  • データベースに関する研究者
  • コンピュータサイエンスを学ぶ学生

原著の発売にあたって発足した #DatabaseInternals 輪読会というコミュニティでは、上記のような多様な読者が集まり、約20回、足掛け1年の開催において非常に多くの議論が交わされました。その中で頂いた以下のコメントが、本書の意義を端的に説明してくれています。

「これまでデータベースを利用する中で経験として分かっていたことが整理されました。そして、理論的背景として多くの論文が発表されていること、それらが相互に関連しあっていることに気付くことができました。」

本書の訳出につきましては、コミュニティの皆さまに多大なお力添えを頂きました。

この"詳説 データベース"が皆さまのプロジェクトや技術の探究、OSSへのコントリビューションなどを助けるものであれば、望外の喜びです。

監訳の経緯

私が当書籍の監訳に携わるようになったきっかけは、先ほどもあげたDatabase Internalsの輪読会でした。それに前後して、Twitterで翻訳希望のつぶやきをしています。

https://twitter.com/tzkb/status/1221035400195534848

これらのつぶやきを起点として、すぱぶらさん(@superbrothers)にオライリージャパンの担当者様を紹介して頂くことになります。(よく考えたら、メディアへの寄稿は@ITもすぱぶらさんにご一緒頂いて始まっているので、本当にいつもお世話になってます。)

今回の監訳は初の出版物となる訳ですが、非常に貴重な経験となりました。
出版者さまとのやり取りや、脱稿、初校の確認、そしてタイトルの決定など、それぞれが興味深く、楽しい体験でした。

過去にも20,000字程度のblogを仕上げた経験はありましたが、書籍はそれらとは全くレベルが違いました。

まず、『詳説 データベース』は392ページあります。
そして、文字数をざっくりカウントすると1章辺りが約20,000~40,000字、それが14章+αで合計すると40万字を超えています。

...
桁が違います。単著で何百ページも書き上げてる人たち、本当にすごすぎますね。

監訳で苦労した点

Twitte等で私をご存じの方は分かると思いますが、私は現場叩き上げのデータベースエンジニアで、アカデミック界隈で使われるデータベースや分散システム用語の訳出には非常に苦労しました。

例えば、定訳があるのか、英語のままにするのか、カタカナにするのか。
今回、Slotted Pageという用語を「スロット化ページ」と訳していますが、これなども一般的な概念でありながら定訳はないように思います(もしくは私が知らないだけ)。

また、各章は基本的な所から解説が始まり、章後半で最新の論文や応用技術を紹介する流れになっています。つまり各章の最後が難解なのですが、ここを訳すのが大変でした。

例えば、10章のPhi Accrual Failure Detector、11章のCRDT、12章のBitmap Version Vectorなどなど。この辺りは英語で読んでも日本語で読んでも難しいです。単純に私の知識が足りていません。

そして、後は作業時間の問題もありました。

監訳者は翻訳された文章を技術的な観点でレビューして(必要があれば)修正するというのが役割ですが、この作業に非常に時間がかかりました。翻訳と英語を並べ、文脈を調整し、先ほどのように訳出を考え、、、10ページで2-3時間かかることもザラでした。
これは私の英語力の低さも相まってですが。

そんな苦労をして脱稿し、初校(ゲラ)が返ってきたのですが、このチェックにも時間がかかる。何より一度自分が書いた文章を何万字も読み返すのは、精神的にきつかったです。

監訳作業をして思ったのは、執筆において天から何かが降りてきて一気に書き上げるみたいな理想は、ただの妄想だということです。
少なくとも監訳においては地道に1文ずつ、1ページずつ積み上げていく以外にないのです。
当たり前のことですが。

さいごに

私がCloud Native Days Tokyoでデータベースに関するセッションを行ってから、7月で約2年が経ちました。

あの頃にはまさかオライリーの書籍の翻訳に関わるなんてことは全く予想もしていませんでした。
しかし、そこで生まれたコミュニティでの縁から執筆の話が舞い込み、データベースに関する本の出版まで漕ぎつけられたということを本当に幸せに思います。

今後も執筆、登壇、イベント開催など色々な仕掛けをしていきます。
また何処かで読者の皆さまにお会いできることも楽しみにしています。

Discussion