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