前回紹介したとおり、データベースサービスにはいくつかのタイプが用意されています。今回はその中で最もシンプルな「スキーマサービス」のトライアル環境を作成します。
このスキーマサービスは完全に管理されたRDBMSのクラウドサービスであり、ユーザーはサーバープロセスの管理やデータベース本体の管理などを一切気にする必要がありません。バックアップや障害対策、各種パラメーターの調整もすべてクラウド側で実施されます。
トライアル環境を構築した後には、テーブルとそのフィールド(列)を定義し、データを追加(1件追加とCSVファイルからの一括追加)するところまでの基本操作をGUI上から行ってみます。
トライアル環境を取得する
まず、Oracle Database Cloud Serviceのサイトにアクセスし、[試してみる]をクリックします。
![Oracle Database Cloud Serviceのサイト](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig01_s.png)
「30日間無料トライアル」画面で、Database Schema Serviceの[トライアルを開始]をクリックします。
![トライアルを開始](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig02_s.png)
Oracleのシングルサインインの画面に遷移しますので、Oracleプロファイルをお持ちであればそのままログインします。Oracleプロファイルをお持ちでない場合は、右側の「プロファイルの作成」をクリックして新規にアカウントを作成し、その後このページに戻ってサインインしてください。
![シングルサインインの画面](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig03_s.png)
「Oracle Database Cloud Serviceへのトライアル・サブスクリプションのサインアップ」に移るので、アカウント情報を入力して[次へ]をクリックします。各フィールドの詳細はそのフィールド右にある「?」マークをクリックすると表示されます。
![アカウント情報を入力](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig04_s.png)
この画面で[検証コードのリクエスト]ボタンをクリックすると、自分のメールアドレス宛に検証コードが送信されます。メールを確認し、そのコードを入力して[次へ]をクリックします。
![検証コードのリクエストと入力](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig05_s.png)
サービスの詳細情報を入力します。この画面には、アイデンティティ・ドメインなど、Oracle Cloudを利用する上で知っておくべきパラメータがいくつかあります。順に説明しましょう。
![サービスの詳細情報を入力](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig06_s.png)
「アイデンティティ・ドメイン」とは、このデータベースサービスが所属するグループです。1つのアイデンティティ・ドメインには複数のデータベースサービス、あるいは他のサービスを所属させることができ、それらを管理するユーザーも複数登録することができます。
![アイデンティティ・ドメインのイメージ](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig07.png)
一般的なユースケースでは、1つの企業につき1つのアイデンティティ・ドメインを作成し、その中に必要なサービスとユーザーをすべて含めていく形が考えられます。より大きな企業では、プロジェクトや部門ごとにアイデンティティ・ドメインを作成することも考えられます。
既存のアイデンティティ・ドメインがない場合は、先ほどの画面のように「新規アイデンティティ・ドメインの作成」を選択して、新しいアイデンティティ・ドメイン名を入力してください。
「サービス名」は、アイデンティティ・ドメイン内で今回作成するデータベースサービスを一意に識別するための文字列です。
「リージョン」はこのアイデンティティ・ドメインに属するサービスが稼働するデータセンターの場所です。
すべてのフィールドを入力したら[トライアルのリクエスト]ボタンをクリックします。
最後に確認画面が表示され、これでトライアル環境のリクエストは完了です。
![確認画面](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig08_s.png)
なお、トライアル環境が作成されるまで、1〜2日を要することがあります。作成が完了すると、次のように一時パスワード、データセンターが記載されたメールが送られてきます。
![トライアル環境が作成されると送られてくる、一時パスワードやデータセンターが記載されたメール](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig09.png)
トライアル環境にログインする
トライアル環境の作成ができたとメールが届いたら、さっそくログインしてみましょう。
「Oracle Cloudサービスのサイン・イン」ページにアクセスし、「マイ・サービス」セクションにて「データ・センター/地域を選択」のプルダウンメニューから、メールに記載されていたデータセンターを選択し、[マイ・サービスにサイン・イン]ボタンをクリックします。
![「Oracle Cloudサービスのサイン・イン」ページ](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig10_s.png)
サイン・インするためのページへリダイレクトされるので、まずアイデンティティ・ドメインを入力し、[実行]ボタンをクリックします。
![サイン・インするためのページでアイデンティティ・ドメインを入力](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig11_s.png)
次に、設定したユーザー名とメールに記載のあった一時パスワードを入力します。初回アクセス時はパスワードを変更するための画面に遷移しますので、そこでパスワードの変更を行います。最終的には、次のようなダッシュボードに遷移します。
![ダッシュボード](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig12_s.png)
このダッシュボードには、ログインしたユーザーが管理できるサービスの一覧が表示されます。最初は、作成したばかりのスキーマサービスが1つ表示されているはずです。
Application Express(APEX)にアクセスする
テーブル作成などのデータベース基本操作は、Application Express(以下、APEX)と呼ばれる管理コンソールで行います。APEXはデータベース基本操作だけでなく、Webアプリケーションの開発や、データベースにHTTP/HTTPSでアクセスするためのREST APIの作成もできる、極めて高機能な開発フレームワークです。
APEXにアクセスするには、ダッシュボード画面で対象サービスの「サービス・コンソールを開く」をクリックします。
![APEXにアクセスするためのリンク](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig13_s.png)
クリックすると、次のようにAPEXのトップページが表示されます。
![APEXのトップページ](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig14_s.png)
ページに4つのパネルが並んでいるとおり、APEXは大きく分けて、次の4つの機能を提供しています。
- Application Builder
- アプリケーション開発機能を提供します。ウィザード形式、ドラッグ&ドロップ形式にてWebアプリを開発することができます。
- SQL Workshop
- テーブルを作成、更新、一覧したり、任意のSQLコマンドを実行するコンソールを備えています。また、データベースにHTTP/HTTPSでアクセスするためのREST APIの作成もここで行います。
- Team Development
- 開発プロジェクトのマイルストーンやTodo、バグを登録し、チームで共有する機能を提供します。
- Package Apps
- パッケージングされたAPEXアプリを管理する機能を提供します。APEXで作成したアプリケーションはパッケージとして配布可能な形にまとめることができ、配布されているパッケージをここでインストール、管理することができます。
これらの機能を使いこなせるようになれば、データベースサービスだけで様々なアプリケーションを開発、提供することができます。今回は始めてAPEXを体験するということで、テーブルの作成といった基本操作を行うツールとして簡単に使ってみましょう。
テーブルを作成する
まず、新しいテーブルを1つ作成してみましょう。APEXのトップページで、ページ上段にある「SQL Workshop」プルダウンメニューから「Object Browser」をクリックします。
![「SQL Workshop」プルダウンメニューから「Object Browser」をクリック](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig15_s.png)
すると、Object Browserの画面に遷移し、左のサイドバーには現時点でデータベースに存在するテーブルの一覧が表示されます。次に右上のプラス(+)ボタンをクリックし、「Table」を選択します。
![右上のプラス(+)ボタンをクリックし「Table」を選択](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig16_s.png)
これにより、テーブル作成のウィザードが始まります。最初にテーブル名とフィールドを定義します。今回は「プロジェクト管理アプリ」を作成するという仮定で、「project」テーブルを作成してみます。次のようにプライマリキーとなる「id」列、プロジェクト名となる「name」列、期限を示す「due_date」列を作成して、[Next]ボタンをクリックします。
![projectテーブルのフィールド(列)を設定](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig17_s.png)
次に、プライマリキーを設定します。新しいシーケンスから自動生成することを想定し、「Populated from a new sequece」を選択します。また、列には「ID(NUMBER)」を選択して、[Next]ボタンをクリックします。
![プライマリキーを設定](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig18_s.png)
次に外部キーの設定ですが、今回は特に設定しませんので、そのまま[Next]ボタンをクリックします。
![今回は外部キーを設定しない](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig19_s.png)
次に制約の設定ですが、こちらも今回は特に設定しませんので、そのまま[Next]ボタンをクリックします。
![制約も設定しない](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig20_s.png)
設定は以上です。[Create Table]ボタンをクリックして、projectテーブルを作成します。
![projectテーブルを作成](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig21_s.png)
Object Browserのテーブル一覧の画面に戻ると、projectテーブルが作成されていることが分かります。
![Object Browserのテーブル一覧にprojectテーブルがある](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig22_s.png)
テーブルの作成が完了しました。ウィザード形式ですべて設定できるので、create table
文や列のデータ型など、SQLの文法を覚えていなくても、あるいはOracleデータベースに精通していなくても、簡単にテーブルを作成できるのがお分かりいただけると思います。
テーブルにデータを追加する
続いて、作成したテーブルにデータを1行追加してみましょう。Object Browserで左サイドバーのテーブル一覧から[PROJECT」を選択します。次に「Data」タブを選択して「Insert Row]ボタンをクリックします。
![projectテーブルにデータを1行する](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig23_s.png)
すると、データ入力のフォームが表示されます。Id列は自動で入力されますので、それ以外の項目を適当に入力して[Create]ボタンをクリックします。
![Id列以外を入力](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig24_s.png)
データ一覧の画面に戻り、データが挿入されていることが分かります。
![データが挿入された](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig25_s.png)
同じような手順でデータの更新、削除も行うことができます。
テーブルにデータをロードする
次に、CSVファイルから一括でデータをロードしてみます。
まず、下記のようなデータでCSVファイルを作成しておきます。1行目にprojectテーブルの列名、2行目以降をその列のデータで構成します。必須でない項目は空でも構いません。
![一括ロードするデータを書き込んだCSVファイル](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig26_s.png)
APEXに戻り、上段の「SQL Workshop」プルダウンメニューから「Utilities > Data Workshop」を選択します。
![「Data Workshop」を選択](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig27_s.png)
データロードにはいくつかの方法がありますが、今回はCSVファイルを想定しているため、「Text Data」を選択します。
![データロードの方法を選択](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig28_s.png)
データロードのウィザードが始まります。ロード先として既存のテーブル[Existing Table」を選択し、ロードデータとしてファイル「Upload file (comma separated or tab delimited)」を選択して「Next]ボタンをクリックします。
![データロードのウィザード](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig29_s.png)
ロード先のテーブルを選択します。Table Ownerはデフォルトで選択されているままとし、Table Nameで先ほど作成した「PROJECT」を選択します。
![ロード先のテーブルを選択](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig30_s.png)
「File」に、あらかじめ作成しておいたCSVファイルを選択します。また、CSVファイルの文字コード(エンコーディング形式)を「File Character Set」で選択し、[Next]ボタンをクリックします。
![ロードするデータファイルとその文字コード(エンコーディング形式)を選択](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig31_s.png)
CSVファイルのヘッダー(1行目)が列名と一致すれば、正しくデータが各フィールドにマッピングされているはずです。もし正しくなければファイルを修正するか、「Load Data - Column Mapping」画面の「Column Names」で直してください。最後に[Load Data]をクリックすれば完了です。
![「Load Data - Column Mapping」画面](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig32_s.png)
ロード結果は次のように表示されます。「Failed」列を見て、失敗したデータがなかったかどうか確認しておくとよいでしょう。
![ロード結果の表示](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig33_s.png)
Object Browserでprojectテーブルを表示し、データがロードされているかどうか確認してみてください。成功していれば、次のように2行追加されているはずです。
![2行追加されている](http://cz-cdn.shoeisha.jp/static/images/article/9101/fig34_s.png)
まとめ
本稿では、Oracle Database Cloudの中でも最もシンプルで使いやすいスキーマサービスの環境を作成するとともに、APEXという管理・開発ツールを使った基本的な操作を説明しました。
スキーマサービスはOracleデータベース固有の知識を必要とせず、Oracleデータベースを触ったことがないユーザーでもアプリケーション開発に使えます。環境はインスタントに立ち上げることができて、開発ツールも多機能。また、Oracleデータベースと全く同じエンジンを使い、開発元であるOracle自身が運用していることで高い性能や信頼性なども期待できます。
中小規模のアプリケーションのプラットフォーム選びにおいて、これまでの考え方を変える選択肢になるのではないかと、筆者は考えています。