プログラミング初心者がオラクルエンジニアを目指すなら

初心者
オラクルエンジニアって何ですか? 始めてどんなメリットがありますか?

これからプログラミングを始めようという方で、

まずオラクルエンジニアを目指そうという方はあまりいないでしょう。

けれどもデータベースやSQL言語の知識は

IT技術者にとって必須と言っても過言ではありません。

またSQL言語のオラクル独自の拡張であるPL/SQL言語も

初心者にとって敷居の低い、覚えやすい言語です。

一つの選択肢として、視野に入れてみてはどうですか?

小生
わたしはSQL,PL/SQL言語でコーディングをして、15年ほどの実務経験を持つデータベースエンジニアです。キャリアのほとんどをフリーで過ごしました。マネジメントの側から、フリーでやらないかとスカウトされたので、あまり参考になる話はできないんですが、収入の話をすればフリーになってからは5割増し程度にはなりましたよ

まずオラクルを理解しましょう

 

小生
この文章を読んでいる方はオラクルが何かくらいは知っている、という方がほとんどでしょう。ですので簡単に
 

そもそもオラクルとは

””
 オラクルとは米国のオラクル社が開発・販売している

 リレーショナル・データベースです。

 20年近く、商用データベースの世界でのトップシェアの位置にあり、

 現在もそれを維持し続けています(2019.12時点)。

 

リレーショナル・データベース

””
 リレーショナル・データベースとはデータの保存・照会・更新といった処理において、

 ユーザーの負荷を低くすることを目的とするソフトウェアです。
 
 データベースに格納されたデータはユーザからは表の形式の整理されているように見え、

 操作が簡単に行えます。
 
 これはコンマ区切りファイルの編集を

 テキストエディターを使って手作業でする代わりに、

 EXSELを使うようなものだと思えばイメージしやすいと思います。

 リアルタイムで実データの操作ができるようなサイト(たとえばこのブログも)
 
 はたいていデータベースの技術を使っています。

 なお、リレーショナル以外のデータベースもあるのですが、オラクルには関係がないので、ここでは割合させていただきます。

オラクルを支える2つの言語

 

小生
データベースを使えば、容易にデータの操作ができると言っても、データベースにユーザーの要望を伝えなければどうにもなりません。そのためのデータベース言語を二つ紹介します

 

SQL

  

国際標準

””
  SQLはオラクル独自のものではなく、

  規格が標準化された全てのデータベースで共通の言語です。

  ただしベンダーごとに独自の拡張はあります。

  

対話型

””
  SQLはコードに埋め込まれる場合もありますが、基本的には対話型です。

  また初歩の構文もきわめて簡単です。

  多くの言語での「Hello world!」にあたるようなSQLの一番簡単なコード

  (たとえば任意の表から全てのデータを取り出す)は実際実務で使えるものです。

  

パフォーマンス

””
  にもかかわらずSQLは奥の深い言語です。

  言語の性格からして、考えにくいほど複雑な処理を実行することも可能です。

  けれど技術者のレベルに直結するのはパフォーマンスです。

  同じ処理を行うSQL文でも、書き方次第でパフォーマンスは天と地です。

  すくなくともオラクルエンジニアを名乗るなら、

  動けばいいというレベルで書いてはいけないと言うことです。

 

小生
私の経験ですが、一晩かかっても終らないバッチを書いてしまったことがあります。慌ててチューニングを施して、結果同じ処理が10分で終るようになりました。すごい! と褒めてもらえたんでが、なんか違うような

 

PL/SQL

””
 PL/SQLはSQL言語のオラクル独自の拡張です。

 SQL言語は極めて強力ですが、

 たとえば条件分岐や繰り返し処理の機能はありません。

 こうした手続き型の機能をSQL言語に付加したのがPL/SQLです。

 たとえば条件分岐は[IF……THEN……ELSE……END IF]です。

 C言語系の簡潔な表現くらべるといかにも垢ぬけない感じですが、
 
 その分取っつきやすさがあります。 

 また多くの初心者の、躓きの元になるオブジェクト指向への対応は貧弱です。

 これはいいことなのか、微妙ですが。

 

小生
C#を独学していた時期、引き渡されるデータ型によってコンストラクタが自動で切り替わるオブジェクト型なんかを、私はムキになって書いたりしたことがあります。がんばってもその程度なんですけどね

オラクルエンジニアはなにをするのですか?

 

バッチプログラム

””
 バッチというのはデータの一括処理というような意味で、

 ユーザーの入力が実データにそのまま反映されるリアルタイム処理とは対照的に、

 変更点だけを一時データとして記録しておいて、

 実データには後刻まとめて反映すると言った処理を言います。

 データの更新にタイムラグが出る欠点はありますが、

 コンピュータのリソースに無駄が出にくいと言ったメリットもあります。

 ですから最新のデータにこだわらない日報・月報などの出力や、

 外部データの取り込みなどは主にバッチで処理されます。

 データベースがオラクルだと、画面などはJavaで開発してもバッチはPL/SQLというケースは多くなります。

 

データ構造のデザイン

””
 データベースではデータは表の形で保管されています。

 こうした表というより表群をどうデザインするかで

 パフォーマンスに大きな差が出たり、業務そのものに支障が出たりします。

 いくつか大きなルールはあるのですが、

 それを実データに当てはめて、データのデザインをすることは

 大変ですがやりがいのある仕事です。

さいごに

””
かつては王者まで言われたオラクルも、

最近はオープン系のデータベースに押されて、

未だ首位は保っているものの、そのシェアをかなり減らしているそうです。

オラクルに特化するのはどうか、という感じなのでしょうか。

それでも、データベースエンジニアの需要が途絶えることはないでしょう。

これ一本に絞ることは私もお勧めしませんが、

取っつきやすいくせに、奥が深いデータベース技術は

身につけておいて損はしません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA