はじめに
DBエンジニア(主にインフラ寄り)として、日々データベースの運用、設計、チューニング、開発業務を行っています。
そんな中、DBエンジニアのスキルを高められる書籍についての情報が少ないと感じ、これまで読んできた書籍の中で、特にためになった!と感じた書籍を紹介します。
ここで扱うのは主にRDBMS(特にOracle、Postgresql)向けの書籍となります。
スキルの変遷として、以下の流れを想定しています。
- RDBMSの仕組みを理解する
- データベース/テーブル設計ができるようになる
- パフォーマンスのよいSQLを書けるようになる
- クラウドで使えるDBの知識を身につける(おまけ)
RDBMSの仕組みを理解する(5冊)
- オラクルマスター教科書 Silver DBA Oracle Database Administration I
- 
オラクルマスター教科書 Gold DBA Oracle Database AdministrationⅡ
 定番のオラクルマスター教科書です。
 Bronzeは運用者レベル、Silverは開発者レベル、Goldは管理者レベルだと考えています。
 SilverでRDBMSの仕組みを理解し、Goldでバックアップ/リカバリの考え方を学べます。
 ついでに資格試験も受けるといいかもしれません。
 私自身が最初にOracleから入ったということもありますが、Oracleで使える機能がだんだんと他のRDBMSにも取り入れられていることが多いので、OracleがRDBMS界の中でも最先端を行っていると体感しています。
 また資格試験も充実しており、資格の参考書を通して、自然とRDBMSの仕組みを理解することができます。
 そのため、まずはOracleの仕組みから理解することをお勧めします。
- 
プロとしてのOracleアーキテクチャ入門
 オラクルマスター教科書の内容を1冊にまとめたような本です。
 上記のオラクルマスター本が合わない方や時間をかけたくない方にお勧めです。
 絵や図も豊富で、わかりやすい文章で書かれています。
 私自身、Oracleの仕組みをざっと復習したい際に使用しています。
- 
内部構造から学ぶPostgreSQL―設計・運用計画の鉄則
 Postgresqlの内部構造~設計・運用計画をカバーしており、Postgresqlを始める際はまずはこの1冊で十分です。
 Postgresql標準のレプリケーション機能にも言及しており、実際の現場でも使える内容が多いです。
 はじめてPostgresqlを実務で利用する際に読みましたが、この書籍のみで実務にあたれるレベルでした。
- 
Oracle技術者のためのPostgreSQL自習書
 はじめてPostgresqlを学ぶOracle技術者向けに作成した解説書です。
 OracleをもとにPostgresqlの特徴を解説しており、
 これまでOracleをやってきたけど、これからPostgresqlを始めるという方に最適です。
 内容もそこまで多くないので、さくっと読めます。
データベース/テーブル設計ができるようになる(3冊)
- 
情報処理教科書 データベーススペシャリスト
 IPAのデータベーススペシャリスト試験の参考書です。
 当然ながらデータベースに携わるエンジニアに必須の知識が詰まっています。
 特定のRDBMSに依存せず、データベース設計やデータモデリングを学びたい方にお勧めです。
 業界別の業務フロー/テーブル設計が載っており、自分の業界でも使える基本の考え方も身につけることができます。
- 
達人に学ぶDB設計徹底指南書 第2版
 データベース関連本では有名なミックさんの本です。
 データベース設計の中でも特に論理設計と正規化に重点を置いて書かれています。
 また論理設計におけるバッドノウハウやグレーノウハウも書かれており、実務での活用ができる内容が多いです。
 バッドノウハウで紹介されている内容が現場にあったことがあり、そのときはへこみました。
- 
プロとしてのデータモデリング入門
 こちらも論理設計と正規化に重点を置いていますが、
 実務で進める際の進め方や注意点のノウハウが書かれていることが他の書籍とは違う点です。
 また、ERダイアグラム記法について細かく触れている点も本書の大きな特徴です。
 出版されてからかなり経過していますが、ぜひ一読して頂くことをお勧めします。
パフォーマンスのよいSQLを書けるようになる(5冊)
- 
オラクルマスター教科書 Silver SQL Oracle Database SQL
 ここでもオラクルマスター教科書です。SQLの基本的な使い方やどんな関数があるかを学べます。
 初めてSQLを学ぶ方向けです。ついでに資格も取っちゃいましょう。
- 
SQL緊急救命室──非効率なコードを改善せよ!
 SQL中級者に求められるcase式とウィンドウ関数を使いこなすための本です。
 患者の代わりにパフォーマンスの悪いSQLを治療する架空のSQL緊急救命室を舞台に会話形式で進んでいきます。
 非常に読みやすく、飽きがこない構成となっており、SQLのスキルアップをしたい方に強くお勧めします。
- 
達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ
 SQL中級者になるために必要なSQLに関する技術とSQLを支える理論について知ることができます。
 SQLを集合として捉えるという、本来SQLが目指そうとしていた根底の思想に触れることができます。
 SQL緊急救命室を事前に読んでおくと、理解しやすいです。
 哲学や数学理論の話が展開される第2部は、好き嫌いが別れるかもです。
- 
SQL実践入門 ──高速でわかりやすいクエリの書き方
 SQLがある程度書けるようになってきたら、次はパフォーマンスを意識して書くことが大切です。本書は検索、更新時においてパフォーマンスを劣化させないために注意すべきポイントが書かれています。
 良いパフォーマンスを出すための考え方が整理されている書籍は少ないので、ぜひ読むことをお勧めします。
- 
SQLアンチパターン
 みんな大好きオライリー本です。
 1章で1つのアンチパターンを紹介する章立てとなっており、他の書籍でも紹介されているノウハウと重複する部分も多いですが、より詳細な解説を読むことができます。
 やや古い部分もあり、今では改善可能なパターンもあるそうですが、アンチパターンとして知っておいて損はないと思います。
クラウドで使えるDBの知識を身につける(おまけ)
- 
要点整理から攻略する『AWS認定 データベース-専門知識』
 クラウドでは手軽にDBを使うことができ、かつその種類も多岐にわたります。
 いまだにRDBMSが主流であることは間違いないと考えていますが、
 NoSQLやドキュメントDB、グラフDBなど、RDBMSが得意としない専門的な領域で活躍するデータベースも増えてきており、各データベースがどのような特徴を持っているかを把握しておくことは、DBエンジニアとして必要なスキルだと考えています。
 AWSのデータベーススペシャリストは資格としては廃止されておりますが、書籍としてはよく整理されているため、最初の取っ掛かりとしてはお勧めです。
 ただ、最新のクラウド事情は反映されていないため、その点はご注意ください。
さいごに
似たような内容の書籍もありますが、違う角度から復習ができるという点で、
同じ分野の異なる書籍を読むことは、実際の理解を深めるよい方法だと考えています。
みなさんもお勧めの書籍があれば、ぜひ教えて下さい。

