この記事はUlrike Schwinnによる”Sample data for Oracle Database”の日本語翻訳版記事です。

2024年8月6日


Oracle Databaseの機能や特徴を試すためのサンプル・データが必要ですか?

それなら、GitHubからOracle Database Sample Schemasをインストールして、活用しましょう!最新版のOracle Database Sample Schemas 23aiはインストールがとても簡単かつ無料でご利用いただけます。利用方法はGithubからzipファイルをダウンロードして指示に従うだけで、これを利用可能にしてくれたのはGerald Venzl氏です。Oracle Database Sample Schemas 23aiは、Oracle Database Cloud Servicesを含むOracle Database 19c以降と互換性があり、いくつかの改良が加えられています。

Oracle Database Sample Schemasは、製品の注文を満たすためにさまざまなチャネルを通じて世界中に商品を販売する架空のサンプル企業に基づいて作成されています。この会社にはいくつかの部門があり、部門それぞれがサンプル・データベース・スキーマで表されています。最新バージョンのOracle Database Sample Schemasを使用すれば、数分で以下のユーザースキーマをインストールできます:

  • Human Resources(HR): 人事部門は、従業員や施設に関する情報を追跡します。
  • Customer Orders(CO): Customer Orders部門は、顧客、商品、店舗、注文データから構成されるシンプルな小売アプリケーションをモデル化します。
  • Sales History(SH): 営業部門は、ビジネス上の意思決定を促進するためのビジネス統計を追跡します。これは、より大量のデータでデモができるように設計されています。

注:OE(オーダー・エントリー)やPM(プロダクト・メディア)のようなアーカイブされたスキーマは、ドキュメンテーションの例として参照するために提供されているものですが、現在メンテナンスされていません。

利用には以下の手順が必要です:

  1. サンプル・スキーマ・ソースの最新(または適切な)リリースの .zip ファイルにアクセスします。こちらからアクセス可能
  2. ダウンロードした .zip ファイルを展開します。
  3. インストールするサンプル・スキーマのディレクトリに移動し、<schema_name>_install.sqlスクリプトを実行します。
  4. インストールを確認するには、インストールの最後に生成されるインストール・ログ・ファイルを確認します。

例えば、HRスキーマを利用する場合、以下の手順を実行します:  

  • human_resourcesフォルダにcdします。
  • 特権ユーザでターゲット・データベースに接続します。
  • hr_install.sqlスクリプトを実行し、プロンプトに入力します。

これで準備完了です!
すべてのスクリプトは、SYSTEM、ADMINなど、別のユーザーを作成および削除する権限を持つ特権ユーザーとして実行する必要があることに留意してください。

COスキーマをインストールしたい場合は、co_スクリプトを使って上記の手順を実行してください。

SHスキーマに関しては少し手順が異なり、SQLclからsh_install.sqlスクリプトを実行する必要があります。テーブルデータはCSV形式で提供されるため、SQLclユーティリティが必要です。SQLclはこちらからダウンロードできます。SQLclの実行には最低11.0のJDKが必要です。

sh_populate.sqlスクリプトを見直せば、SQLclの威力がお分かりいただけると思います。
例えばCOSTSテーブルをロードするのに必要なコマンドは2つだけです。SQL*Loaderを使う必要はありません。以下は、CSVデータがSQLclでどのようにロードされるかを示すsh_populate.sqlスクリプトからの抜粋です。

rem *************************** set loading parameters
SET LOAD BATCH_ROWS 10000 BATCHES_PER_COMMIT 1 DATE_FORMAT YYYY-MM-DD
rem *************************** insert data into the COSTS table
Prompt ******  Populating COSTS table ....
LOAD costs costs.csv

スクリプトをいくつかのOracle Database環境、Oracle Database19c、Oracle Database 23ai Free、最新のOracle Base Database Service 23aiで試してみました。
さらに、私の検証環境では、パスワードの複雑さを無効にして、非常にシンプルで簡単なパスワードを維持しました。(これは本番環境では推奨されません)

すべての必要なオブジェクトとデータはすぐにインストールされ、その結果、テーブル、テーブルデータ、パーティション、マテリアライズド・ビュー、インデックスなどのオブジェクトが、データと統計情報とともに利用できるようになりました。

-- Created user with profile, account and read only status
SQL> col profile format a25
SQL> col username format a25 
SQL> select username, profile, account_status, read_only from dba_users order by created;
USERNAME                  PROFILE                   ACCOUNT_STATUS                   REA
------------------------- ------------------------- -------------------------------- ---
...
HR                        DEFAULT                   OPEN                             NO
CO                        DEFAULT                   OPEN                             NO
SH                        DEFAULT                   OPEN                             NO

注:23aiでは、ユーザーアクセスを読み取り専用に変更することができます。デフォルトはもちろんread writeです。

以下は、テーブルのリストと行数、および最終分析日の情報です。

SQL> select table_name, num_rows, last_analyzed
     from dba_tables where owner='SH' order by num_rows desc;

TABLE_NAME                       NUM_ROWS LAST_ANAL
------------------------------ ---------- ---------
...
SALES                              918843 06-OCT-23
COSTS                               82112 06-OCT-23
CUSTOMERS                           55500 06-OCT-23
SUPPLEMENTARY_DEMOGRAPHICS           4500 06-OCT-23
TIMES                                1826 06-OCT-23
PROMOTIONS                            503 06-OCT-23
PRODUCTS                              144 06-OCT-23
COUNTRIES                              70 06-OCT-23
CHANNELS                               10 06-OCT-23
CAL_MONTH_SALES_MV                      0 06-OCT-23
FWEEK_PSCAT_SALES_MV                    0 06-OCT-23
18 rows selected.

結論

サンプル・データが必要な場合は、Oracle Database Sample Schemasの最新版(23ai)をインストールしましょう。zipファイルをダウンロードし、スクリプトを実行するだけで簡単に利用可能です。
このスクリプトは、19cなどの他のOracle Databaseバージョンにも使用でき、もちろんオンプレミスやOracle Database Cloud Servicesでも使用できます。

最新リリースのサンプル・スキーマを使用すると、次のような利点があります:

  • 上記のすべてのデータセットが更新されています。
  • スキーマを互いに独立してインストールできます。
  • SYS/SYSTEMユーザーアカウントへのアクセスは必要なくなりましたが、特権ユーザーは必要です。
  • SQL*Loaderは必要なくなり、代わりにSQLclが使用されます。

詳細については、以下のリンクを参照してください: