書籍 「プロとしてのOracleアーキテクチャ入門」を執筆しました

(なんと前回のエントリから3年近く間が空いてしまいました・・・)
Oracle Database のアーキテクチャについて説明した書籍「プロとしてのOracleアーキテクチャ入門」を
執筆するお話をソフトバンククリエイティブ社様よりいただき、
同じ職場のOracle暦10年のベテランエンジニアの方と共同で執筆作業をすすめ、
2008/8/22に(なんとか)無事出版できました。

* [ソフトバンククリエイティブの本:プロとしてのOracleアーキテクチャ入門](http://www.sbcr.jp/books/products/detail.asp?sku=4797349801)

Amazonのレビューでも好意的なコメントをいただけており、ほっと一安心といったところです。

執筆のお話を頂戴したのは、2007年の年末で、当初のプランでは
ゴールデンウィーク前に執筆を終えるはずだったのですが、
紆余曲折あり執筆に半年以上の期間を要してしまいました・・・。
しかも、ページ数は(おそらくシリーズ最大の)400ページ。
長期間に渡る執筆において、大量の原稿に対して的確なフォローをしていただけた
編集の方にはとても感謝しております。ありがとうございました!

### 目次
* INTRODUCTION なぜOracleのアーキテクチャを学ぶのか
* SECTION ? Oracleアーキテクチャ概要
* CHAPTER 01 データベースとインスタンス
* CHAPTER 02 クライアントアプリケーションとサーバープロセス
* CHAPTER 03 データファイルと関連する構成要素
* CHAPTER 04 REDOログファイルとREDOデータ
* CHAPTER 05 サーバーパラメータファイルと制御ファイル
* CHAPTER 06 Oracleのメモリ管理
* CHAPTER 07 その他の構成要素
* SECTION ? スキーマオブジェクトとデータ格納方式
* CHAPTER 08 ユーザーと権限
* CHAPTER 09 テーブルとデータ型
* CHAPTER 10 索引の仕組み
* CHAPTER 11 その他のオブジェクト
* CHAPTER 12 オブジェクトの格納方式と記憶域
* SECTION ? SQL処理の仕組み
* CHAPTER 13 問い合わせ処理の仕組み
* CHAPTER 14 更新処理の仕組み
* SECTION ? トランザクション処理
* CHAPTER 15 トランザクションの概要とACID特性
* CHAPTER 16 Oracleのトランザクションと隔離性
* CHAPTER 17 Oracleのロック機能
* SECTION ? 起動・停止とリカバリの仕組み
* CHAPTER 18 インスタンスの起動と停止
* CHAPTER 19 リカバリ処理の仕組み
* SECTION ? Oracle Net Servicesとクライアント/サーバー
* CHAPTER 20 基本的な接続形態とNet Servicesの構成
* CHAPTER 21 動的サービス登録/共有サーバ構成/データベースリンク

### 執筆において留意した点

書籍「プロとしてのOracleアーキテクチャ入門」の執筆にあたっては、以下の点に留意しました。

* 図版の説明だけでなく、実際の動作や、Oracleが提供するディクショナリ情報(=内部管理情報)、統計情報をあわせて示し、読者が具体的に、実感を持って理解できるように工夫すること
* 各章・各節で説明の対象となっているアーキテクチャの構成要素と、Oracleアーキテクチャの全体の位置関係を示し、
読者が「暗い森の中でさ迷うような感覚」に陥らないようにすること
* 手ごろ情報が少なく、トラブルの種、理解の障害になりがちな以下の点についてコンパクトな説明を提供すること
* 1) Windows版Oracleのアーキテクチャ
* 2) Net Servicesの構成
* Enterprise ITシステムの開発における最重要概念であるにもかかわらず、多くの人に適切に理解されていない「トランザクション」について、Oracleと標準SQLを比較しながら、シーケンス図を多用してわかりやすく説明すること
* 利用するにあたって理解しておいてほしいOracle特有の概念である、「インスタンスとデータベース」「SYSDBA権限」「セグメント、エクステント、ブロック」などを説明すること
* 「実行計画」、「バックアップとリカバリ」などの、中級レベルのOracleユーザーで理解しておいてほしい概念について、導入的な意味合いの説明をすること
* 「SECTION ? Oracleアーキテクチャ概要 」にてアーキテクチャの構成要素について概要を説明した後、アーキテクチャの構成要素がどのように相互作用して機能を実現しているかを、SECTION ?以降で説明する構成として、機能に関連付けてアーキテクチャを理解できるようにすること

### 執筆の記載内容とOracleのマニュアル

表現の工夫はさておき、記載内容の観点では、本書の内容は、Oracleのマニュアルに記載されているものがほとんどで、特殊なものは含まれていません。Oracleのマニュアルは基本的にすべて日本語版が提供されており、量的にも質的にも十分なものがあります。
しかし、あまりにも量が膨大であるために、特定の内容について調べたいとき、どのマニュアルを読めば
よいかを判断することすら簡単ではありません。(慣れてくれば何とかなるのですが・・・)

たとえば、Oracle(R11.1)のマニュアルを例にとると、プラットフォーム(OS)非依存のマニュアルで137(オプション機能のマニュアルを含む)、プラットフォーム依存のマニュアルで39ものマニュアルが公開されています。

もちろん、これらすべてのマニュアルを読む必要はありません。
本書で取り上げた内容に、密接にかかわるマニュアルのページ数は以下の表のとおりです。

|マニュアルの名称 |ページ数 (R11.1)
|——————————|—————————————-
|管理者ガイド | PDF版マニュアルでで896ページ
|概要 | PDF版マニュアルで584ページ
|2日で開発者ガイド | PDF版マニュアルで198ページ
|プラットフォーム・ガイド | HTMLでの提供のため、ページ数カウント不可

これだけのボリュームのマニュアルを読みこなすのは、現場の開発者の方には非常に困難でしょう。
また、Oracleのマニュアルが質的に優れているといっても、マニュアルはマニュアルです。
読みこなすのはなかなか大変なものです。

本書は、上に上げたマニュアルの内容の重要な箇所を抜粋したような位置づけにあり、
ある程度の網羅性についても配慮していますから、
マニュアルからOracleのアーキテクチャの理解するかわりにも使用することができます。

### 書評へのリンク

以下のbloggerの方々から書評をいただいています。ありがとうございます!

* [杉風呂2.0 – A Lifelog -](http://d.hatena.ne.jp/suginoy/20080825/p1)
PofEAA読書会でご一緒だった方ですかね? 好意的なコメント、ありがとうございます!
書籍がお仕事のお役にたてれば光栄です。
* [株式会社スターロジックの羽生章洋が書いてるブログ](http://blog.livedoor.jp/habuakihiro/archives/65106399.html)
何度かセミナーを受講させていただいた羽生さんからも書評をいただきました!
ありがとうございます!

### そのほか

このblogでは今後、各章ごとに、諸所の理由で記載できなかった説明を追記したり、
図や文章誤記などについて適宜フォローをしていきたいと思っています。

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>