Oracle Database
Oracle Database とは
Oracle Database は、Oracle Corporation(オラクル)が開発・販売するリレーショナルデータベース管理システム(RDBMS)である。1979 年にリリースされた世界初の商用 RDB の一つであり、40 年以上にわたってエンタープライズ市場をリードしてきた。
高い信頼性、優れたパフォーマンス、充実した機能を持ち、金融・官公庁・製造業など、ミッションクリティカルなシステムで広く採用されている。世界の大企業のデータベースシェアでは長年トップクラスを維持している。
なぜ SIer で重要か
SIer の大規模案件において、Oracle Database は依然として最も多く使われている RDB の一つである。特に以下のような案件では Oracle が選ばれることが多い。
- 銀行・証券・保険などの金融系システム
- 中央省庁・自治体の基幹系システム
- 大手製造業の ERP 連携システム
これらの案件では「Oracle を使った経験があること」が要員のアサイン条件になることも多く、Oracle の基本的な知識を持っておくことは SIer の開発者にとって大きな強みとなる。また、既存システムの保守・運用案件でも Oracle が使われているケースが非常に多い。
基本概念
Oracle Database の主な特徴
| 特徴 | 説明 |
|---|---|
| 高い信頼性 | ミッションクリティカルなシステムでの豊富な実績 |
| RAC | Real Application Clusters による高可用性・スケーラビリティ |
| PL/SQL | Oracle 独自の手続き型 SQL 言語 |
| パーティショニング | 大量データのテーブルを分割して管理・高速化 |
| Data Guard | 災害対策(DR)のためのスタンバイ DB 機能 |
| Oracle Enterprise Manager | 統合 GUI 管理ツール |
| 手厚いサポート | Oracle 社による 24 時間サポート |
RAC(Real Application Clusters)
RAC は Oracle Database の最大の特徴の一つであり、複数のサーバー(ノード)で一つのデータベースを共有する クラスタ構成 を実現する技術である。
┌─────────┐ ┌─────────┐ ┌─────────┐
│ ノード1 │ │ ノード2 │ │ ノード3 │
│ (Oracle) │ │ (Oracle) │ │ (Oracle) │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
└─────────────┼─────────────┘
│
┌───────┴───────┐
│ 共有ストレージ │
│ (ASM / SAN) │
└───────────────┘
RAC のメリットは以下の通り。
- 高可用性 --- 1 台のノードが障害で停止しても、他のノードが処理を引き継ぐ
- スケーラビリティ --- ノードを追加することで処理能力を向上させられる
- 無停止メンテナンス --- ローリングアップグレードにより、システムを停止せずにパッチ適用が可能
PL/SQL
PL/SQL(Procedural Language/SQL)は、Oracle Database 独自の手続き型言語である。SQL に制御構文(IF、LOOP、例外処理等)を追加したもので、複雑なビジネスロジックをデータベース内で実行できる。
CREATE OR REPLACE PROCEDURE update_salary(
p_emp_id IN NUMBER,
p_rate IN NUMBER
) AS
BEGIN
UPDATE employees
SET salary = salary * p_rate
WHERE employee_id = p_emp_id;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
RAISE;
END;
SIer の現場では、バッチ処理やデータ移行処理で PL/SQL が使われることが多い。ただし、近年はビジネスロジックをアプリケーション側(Java 等)に寄せる設計が主流であり、PL/SQL の新規利用は減少傾向にある。
ライセンス体系
Oracle Database のライセンスは大きく 2 種類ある。
| ライセンス形態 | 課金方法 | 特徴 |
|---|---|---|
| Processor ライセンス | CPU コア数 × 係数 | サーバーの CPU コア数に応じた課金。ユーザー数不問 |
| Named User Plus | 利用ユーザー数 | 最低ユーザー数あり。少人数向け |
加えて、RAC やパーティショニングなどの高機能は 追加オプション として別途ライセンスが必要となる。大規模案件ではライセンス費用だけで数千万円から億単位になることもあり、コストは Oracle の最大のデメリットとなっている。
SIer での使われ方
大規模案件での定番
SIer の金融系・官公庁系の大規模案件では、以下の理由から Oracle が選ばれることが多い。
- 実績と信頼性 --- 長年の稼働実績があり、顧客が安心して採用できる
- サポート体制 --- Oracle 社の 24 時間サポートにより、障害発生時の対応が確保される
- 技術者の確保 --- Oracle 経験者が多く、要員の調達がしやすい
- RAC による高可用性 --- 銀行のオンラインシステムなど、停止が許されないシステムで不可欠
Oracle から PostgreSQL への移行の動き
近年はコスト削減の観点から、Oracle から PostgreSQL への移行を検討する企業が増えている。ただし、移行には以下の課題がある。
- PL/SQL で書かれたストアドプロシージャの移行
- Oracle 固有の SQL 構文(CONNECT BY、MERGE 等)の書き換え
- 空文字と NULL の扱いの違いへの対応
- RAC 相当の高可用性構成の実現方法
SIer にとっては、Oracle の知識を持ちつつ PostgreSQL への移行スキルも持つことが、今後ますます価値のある能力となる。
Oracle DBA の役割
大規模プロジェクトでは、Oracle DBA(Database Administrator)という専門の技術者が配置されることがある。DBA はデータベースの構築、チューニング、バックアップ、監視、障害対応を担当する。開発者は DBA と連携して、SQL のパフォーマンスやテーブル設計について相談することが多い。
まとめ
- Oracle Database はエンタープライズ RDB の定番であり、SIer の大規模案件で広く使用されている
- RAC によるクラスタ構成で高可用性とスケーラビリティを実現できる
- PL/SQL は Oracle 独自の手続き型言語であり、バッチ処理などで使用される
- ライセンス費用が高額であることが最大のデメリット
- 近年は PostgreSQL への移行の動きがあるが、Oracle の知識は引き続き重要である