仕事IT業界で仕事をしている技術者でデータベースエンジニアに興味がある人もいるでしょう。データベースエンジニアにキャリアチェンジしたい人や、未経験でデータベース技術者へ挑戦してみたい人もいると思います。データベースエンジニアというのは非常に狭い領域で、サーバエンジニアやネットワークエンジニアほどチャレンジがしやすい領域でなかったりします。敷居が高く感じるのがデータベースです。データベース自体が苦手な人もいれば、データベースに怖さを感じる人もいます。確かにデータベースは言ってしまえばアプリケーションよりも重要で、データベースでの作業ミスはシステム影響や損害に直結しやすいです。データベースのないシステムもまた少ないのでデータベースを扱えるのは大きなメリットです。データベースはミドルウェアなので、アプリ寄りの仕事もインフラ寄りの仕事も出来ます。中間層だからこそ両方の知識も身に着きます。そこで今回は独学でデータベースエンジニアになるための勉強方法について個人的な価値観で紹介したいと思います。このサイトでもOracleに関する技術的な検証を載せていたりしますが、データベース業界で最も有名な製品です。DBよりも出来そうなデータベース製品があればそちらから入る方が勉強がしやすいと思います。ServerAIXの知識があるならDB2OSSに興味があるならPostgres全く知識がないならOracleこのような考え方が良いと思います。Oracleを推奨するかは、覚える知識が多いのでデータベースというものの扱い方が多岐に渡って身に着くからです。Serverは最新の2017からLinuxでも使えるようになりましたが、Linux版は機能面に制約が多いので、使うなら従来通り親和性の高いWindows環境が良いでしょう。OracleもWindowsで動作可能ですがプライオリティの高い案件ではLinuxと組み合わせる方が多いので、同時にLinuxの知識も身につけていく方が良いです。SQLを書けるようにするデータベースを担当する立場としては、データベースそのものを管理するDBAがメインですが、業務系アプリケーションで使用するSQL文も書けないと仕事になりません。システム関連情報を取得するのにもSQLの知識が必要です。SQLの知識なしにデータベースを扱う事は不可能です。厳密に言えば、NoSQLのように直接データを参照できるRDB以外の製品はSQLが不要です。今回はRDBを前提として話を進めていきたいと思います。SQLに関しては基本的な「SELECT」「UPDATE」「INSERT」「DELETE」を覚えれば最低限は操作が出来ます。追加で言えば以下を使いこなせると便利、というよりは業務で現実的に力を発揮する事が出来ます。joinhavingさらにテクニックになりますが以下を覚えるとよりDBAや業務アプリのSQLも理解できるようになります。副問い合わせカラムの文字数調整バインド変数インデックスの明示パラレル実行データベースによってお作法が違う部分もあるので、製品ごとにやり方を覚える必要があります。ServerのようにnvarcharをN文字としてSELECT時に明示しないといけないなどもあります。細かい仕様の違いで戸惑う事もあるのがデータベースです。机上の学習で知識が身についても実際に知識を使って業務で発揮できるか分かりません。検証環境を用意して実際にインストールからデータベースの作成とSQLによる操作をすることが大切です。DBAを目指すならバックアップ・リカバリの知識は最も重要です。データベースには顧客情報や社員情報などセキュリティレベルの高い情報が格納されることが多いです。そのデータに不整合があった場合などを想定して「いつまでデータベースを戻せるか」を必ず定義します。重要ではないシステムではそこまで定義せずに単純にバックアップだけを取る事もあります。データベースのバックアップ方法は多岐に渡るので少なくともデータベース製品単体でのバックアップ・リカバリはやってみると良いでしょう。Bootしているシステムではストレージ側でバックアップを取る事もあり、必ずしもデータベースでバックアップを取るわけではありませんがまず最初に重要な知識はバックアップです。データベース固有の知識を抑えるデータベース技術者として仕事をした経験からですが、データベースの領域はインフラやアプリと同じ言葉があっても定義が全く違う事も多いです。データベース固有の知識を身につけることが大切だと言えます。製品ごとでも呼び方が違ったりしますので、その辺も何を学ぶかで知識が変わってきます。基本的なデータベース固有の知識は以下になります。実行計画ロック動作(行や表やデッドロックなど多岐にわたる)データベースインスタンスとデータベースの関係(製品によって異なります)フェッチやカーソル一部はアプリケーションを開発上では、固有の動作として把握しておかないとトラブルの原因になります。上記はあくまでも一部なので他に覚えることは多いです。効いたとこがないフレーズも多いデータベース製品ですが慣れればどんどんロジックが分かっていくと思います。スポンサーリンク最後に独学でデータベースエンジニアになるための勉強について紹介しました。データベース製品は多機能が多いのですべてを理解しようとするとかなり難易度が高いです。それこそOracleの機能に関しては、全て把握できている人はいないでしょう。当たり前の内容を書いてきましたが、データベースエンジニアになる、キャリアチェンジするには最低限以下を取得しましょう。SQLでデータ加工・抽出が出来るデータベース固有の特徴を把握するこの二つが出来れば最低限やっていけると思います。DBであれば読み取り一貫性のためのUNDO肥大化や初期化パラメータなど様々です。興味のある製品かなじみのある環境から触れていくと良いでしょう。システムエンジニアの専門分野を解説!IT業界へ就職する前の基礎知識システムエンジニアという職種について、みなさんはどのくらい知っておりますか。IT業界への就職や転職を考えていたり、まだエンジニアにな...記事を読む口頭指示は危険!仕事の決め事は絶対証跡を残すべき仕事において口頭でコミュニケーションを取る事は当たり前のように行われています。理由を述べる必要もないかもしれませんが...記事を読む仕事を教えない人は非効率的で古い人間である新人として入社した人や中途で新しい環境に入った時の教育係は大切な存在です。仕事の仕方もそうですが会社の文化やよくやり...記事を読む内定に迷っても一生働く会社を今すぐ決める必要はない理由4つ新卒や転職の内定で承諾すべきか悩んでいる人はどんどん増えていると思います。内定ブルーという言葉も、近年生まれた言葉で...記事を読む派遣エンジニアだけど契約を更新したくない!そんな時の考え方3つ派遣契約をしているエンジニアの悩みの種である契約の更新について書ていきたいと思います。この記事を読んでいるあなたは今...記事を読むスポンサーリンクインフラエンジニアにお勧めな言語3つ!分野に限らずプログラミングの知識は合った方が良い新卒でIT業界に入りたい人はLinuxを学ぶと有利な理由コメントの入力は終了しました。SEは非常識な対応をすると信頼が一気に失墜する。Edition)のインストール。Server2019へソフトを入れるわたしProfile平成生まれのゆとり世代。地方から都会に憧れて出てきた典型的な田舎者。フリーランスすべて経験しています。フルスタック気味なエンジニアのIT業界ブログ。