【読書】絵で見てわかる Oracle の仕組み 新装版

書籍

僕は仕事でデータベースを稀に触ることがあるのですが、簡単な使い方は分かってても、Oracle 内部でどんなことが行われてるのか?ということはわからずにいて、モヤモヤした状態が続いていたので思い切って購入して読んでみました。オススメです!

基本情報

【題名】絵で見てわかるOracleの仕組み 新装版
【著者】小田圭二 / 杉田敦史 / 山本裕美子 / 辻井由佳 / 寺村涼
【発売】2019/03/11
【目次】

第1章 I/Oとディスクの関係
第2章 Oracleのさまざまなプロセス
第3章 キャッシュと共有メモリ
第4章 SQL文解析と共有プール
第5章 Oracleの起動と停止
第6章 接続とサーバープロセスの生成
第7章 Oracleのデータ構造
第8章 Oracleの待機とロック
第9章 REDOとUNDOの動作
第10章 バックアップ/リカバリのアーキテクチャと動作
第11章 バックグラウンドプロセスの動作と役割
第12章 Oracleのアーキテクチャや動作に関するQ&A
APPENDIX ユースケースで学ぶOracle

引用元 : https://www.shoeisha.co.jp/book/detail/9784798157696

読んだ理由

まず、数ある Oracle 関係の書籍において、なぜこの本を選んだか?ということですが、それは、1) 比較的最近書かれたものであること、2) 現場のテクニック集ではなく概念的な説明が主であること、3) Oracle 関係者によって書かれたものであること、の条件を満たしていたからです。

まず、1) については(古くから存在する名著の存在が多いのも真ですが)あまり詳しくない技術領域の書籍についてはなるべく新鮮な知識を身に着けたいということで、2019 年発売というこの本がぴったりでした(”新装版” がつかないもともとの本は 2006 年発売とのこと)。続いて、2) については、実際にガッツリ業務で Oracle データベースを触っているわけではないので、他の MySQL や PostgreSQL や SQL Server と比較して、Oracle はどういう違いがあって、どういう仕組で動いているのか?ということを知りたいというのがありました。その点、この本は以下のような前書きがあったので、まさにピッタリそうでした。最後に、3) については、どうせなら中身のことをよく知ってる Oracle 関係者が関わっていてくれたほうが信憑性の点で安心というのがありました。著者の方々は (当時) Oracle のコンサルタントということで、まさにエキスパート集団です。

2006年刊行後12年以上にわたるロングセラー『絵で見てわかるOracleの仕組み』の新装版です。コマンドや機能名などを暗記するだけでは、Oracleデータベースの管理業務に関する実力は身につきません。本書では、Oracleデータベースのアーキチャクチャや内部動作、基本動作について、ハードウェアやOSの動作と合わせてわかりやすく図解していきます。一見複雑に思えるアーキテクチャや内部動作も、倉庫会社の仕組みなどに見立てて図解することで、頭の中でイメージしながら理解できます。

引用元 : https://www.shoeisha.co.jp/book/detail/9784798157696

感想

Oracle はマルチプロセスで動くデータベースエンジン、というのは知っていたのですが、プロセスにはどんな種類があるかということや、代表的なプロセスについては、それぞれどのような役割を担っているかについてが、イラスト付きで紹介されていて勉強になりました。また、ディスク IO の話やバッファキャッシュの話、トランザクションログ(REDO ログ)の話など、DBMS 全般で通用する部分のついてもしっかりポイントを押さえて復習することもでき、それが Oracle ではどういう実現・処理のされ方をしているのかがよく分かりました。公式ドキュメントへの誘導もあり、本書の内容を超えた詳細な内容を勉強をしたい読者への導線も用意されていて好印象でした。また、本全体の構成としては、各章の間でストーリーがあるような展開がされていて、前までの章の内容が以降の章に活きるような構成となっていました。また、各章の最後には、その章の内容確認として QA 形式のクイズ?も用意されていて、その点もとても親切に感じられました。

一方で、少し気になった点としては、上記で紹介した抜粋箇所にもあるように、内部動作に基本的理解に主軸を置いているので、具体的な Oracle コマンドはほとんど登場しません(唯一、APPENDIX の内容が、1-12 章の内容を具体的な Oracle コマンドを使って確認する、という内容でした)。実践的な内容やトラブルシューティングの方法論について言及があるわけでもないので、普段の業務で Oracle を使っている方には物足りないかもしれません。とはいえ、この点については、そもそもそういうのを読みたくないとのことで選んだ書籍だったので、僕としてはむしろポジティブな点でした。他に個人的に気になった点としては、イラストや例え話で機能の説明をしてくれることが多かったのですが、個人的にはむしろ例え話をしないでストレートに説明してくれた方がわかりやすい気がしました。例え話というのは、クライアントからクエリの発行~ディスクへの永続化~クライアントへの応答、のフェーズを、倉庫へ物を仕舞うプロセスで例える、みたいな感じのやつですね。そういった例え話を飛ばして地の文だけ読んでみてもとても分かりやすく書かれているので、ちょっともったいない印象を受けました。

まとめると「Oracle をこれから触ろうという人が、Oracle データベース全体のアーキテクチャをざっと把握したい人にはとてもオススメ」です。運用のお話とか、例えば RAC の話とかは含まれていないですが、日々 Oracle と接している方は、基本の復習用として手にとっていただけるとよいと思います!

タイトルとURLをコピーしました