Oracleデータベースの基礎:サンプルスキーマで簡単に始める方法

オラクルデータベースの基本

サンプルスキーマって何?

まず、サンプルスキーマとは何かから始めましょう。
サンプルスキーマは、Oracleデータベースに含まれる「学習用のデータベース構造とデータ」のことで、インストールすることで学習に使用できるユーザーや表が作成されます
Oracleデータベースを初めて使う人でも、データベースの仕組みやSQLクエリの書き方を実際のデータを使って学ぶことができます。

「スキーマ」とは、データベースにおけるテーブルやビュー、インデックスなどの構造を定義したものを指します。サンプルスキーマは、Oracleが提供するあらかじめ用意されたデータ構造とデータのセットで、学習やテストのために使用されます。

なぜサンプルスキーマを使うの?

Oracleのサンプルスキーマは、以下のような理由で便利です。

  1. 実際のデータを使って学べる:SQLのクエリやデータ操作を、架空の会社や人物のデータを使って練習できます。
  2. 安全に学習できる:本番環境でデータを操作するのはリスクが伴いますが、サンプルスキーマはあくまで学習用なので、どんなに間違った操作をしても実害がありません。
  3. 多くの学習資料が対応している:多くの書籍やオンラインリソースが、Oracleのサンプルスキーマを前提に解説しているため、独学にも最適です。


スキーマって何?

スキーマとはデータベースの「入れ物」や「整理箱」のようなものです。データベースの中には、いろんなデータが入っていて、スキーマはそのデータをどうやって整理するかを決める設計図の役割をしています。

スキーマのイメージ:

例えば、大きな会社があって、従業員の名前や給料、部門の情報を管理したいとします。スキーマは、この情報を整理するためのルールや仕組みを決めているものです。

  • テーブル:情報を入れる箱のようなもの(例:従業員の情報を入れる「従業員テーブル」)。
  • 列(カラム):テーブルの中で、何の情報を入れるかを決める(例:名前、年齢、給料など)。
  • データ型:それぞれの情報がどんな種類のデータかを決める(例:名前は文字、年齢は数字)。

例:

もし「従業員」についての情報を整理したいなら、スキーマには「従業員テーブル」というものがあって、その中に「名前」「年齢」「部門」などのデータを入れる場所が決められています。

簡単なまとめ:

  • スキーマ = データをどう整理するか決める設計図
  • テーブル = 情報を入れる箱(例:従業員、部門)
  • カラム = その箱の中でどんな情報を持つか(例:名前、給料)

スキーマがあると、データがちゃんと整理されていて、どこに何があるかがわかりやすくなります。

Oracleの代表的なサンプルスキーマ

Oracleにはいくつかのサンプルスキーマが用意されていますが、代表的なものとして以下の3つがよく使われます。

1. HRスキーマ

HRスキーマは「Human Resources(人事)」を題材にしたスキーマで、従業員や部門、雇用履歴などのデータを扱います。このスキーマを使うことで、企業の人事部が日常的に扱うようなデータを模擬的に操作できます。

  • 従業員テーブル:各従業員の情報が記載されており、名前や職種、雇用日などのデータが含まれます。
  • 部門テーブル:企業内の部門情報が管理されています。どの部門に何人の従業員が所属しているかを把握するのに役立ちます。

2. SCOTTスキーマ

SCOTTスキーマはOracleの初期の頃から提供されている伝統的なサンプルスキーマで、少人数の架空の企業を題材にしています。SCOTTスキーマには非常にシンプルなテーブルが含まれており、初心者向けの練習に最適です。

  • EMPテーブル:従業員のデータが含まれており、名前や職種、上司のIDなどが記録されています。
  • DEPTテーブル:各部門の情報を保持しています。部門名や部門番号、所在地などの情報が含まれます。

3. OEスキーマ

OEスキーマは「Order Entry(注文管理)」を題材にしたスキーマで、注文、顧客、製品に関するデータが管理されています。このスキーマを使うと、顧客の注文データを扱うシナリオを模擬的に実行できます。

  • 顧客テーブル:顧客の名前や住所、電話番号といった情報を保持します。
  • 注文テーブル:顧客が行った注文の履歴を記録しており、どの製品を注文したか、注文日や発送日などの情報が含まれます。

これらのスキーマを使用することで、実際のビジネスシナリオに基づいたデータ操作を練習することができます。

サンプルスキーマを使った学習の流れ

では、サンプルスキーマを使ったデータベース学習の流れを具体的に見ていきましょう。

1. サンプルスキーマをインストールする

まずは、サンプルスキーマをインストールする必要があります。
Oracleデータベースをインストールした際に、自動的にサンプルスキーマが導入されている場合もありますが、手動でインストールする必要がある場合もあります。

以下は最もよく使用されるSCOTTスキーマのインストール方法です。
まずはデータベースに接続し、 @?/rdbms/admin/utlsampl.sql スクリプトを実行することでインストールすることができます。

[oracle@v19single ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 – Production on 月 9月 23 12:28:04 2024
Version 19.21.0.0.0

Copyright (c) 1982, 2022, Oracle. All rights reserved.

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.21.0.0.0
に接続されました。
SQL> @?/rdbms/admin/utlsampl.sql ★
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.21.0.0.0との接続が切断されました。
[oracle@v19single ~]$


SCOTTスキーマがインストールされるので、さっそく接続してみましょう。
ユーザー名は 「scott」 でパスワードは 「tiger」 となっています。

[oracle@v19single ~]$ sqlplus scott/tiger

SQL*Plus: Release 19.0.0.0.0 – Production on 月 9月 23 12:38:14 2024
Version 19.21.0.0.0

Copyright (c) 1982, 2022, Oracle. All rights reserved.

最終正常ログイン時間: 月 9月 23 2024 12:28:06 +09:00

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.21.0.0.0
に接続されました。
SQL> select table_name from user_tables;

TABLE_NAME
—————————-
DEPT
EMP
BONUS
SALGRADE

SQL>


上記のようにSCOTTユーザーと、SCOTTスキーマ内に「DEPT」「EMP」「BONUS」「SALGRADE」という表が作成されていることが分かります。
※user_tablesはそのユーザーが所有している表の情報が確認できます。

例えばSALGRADE表を確認すると以下のようなデータが格納されています。

SQL> select * from salgrade;

GRADE LOSAL HISAL
———— ———– ————
1 700 1200
2 1201 1400
3 1401 2000
4 2001 3000
5 3001 9999

SQL>


Oracleデータベースの「SCOTT」スキーマと「TIGER」というパスワードは、Oracle社の創業者であるBruce Scottという人物に由来しています。
Bruce Scottは、Oracle社の初期のメンバーであり、データベースソフトウェアの開発に大きく貢献しました。「SCOTT」スキーマは、彼の名前「Scott」にちなんで名付けられました。

一方、パスワード「TIGER」については、Bruce Scottが飼っていたペットの猫の名前が「Tiger」だったことから名付けられたと言われています。Oracleの初期の時代にこのような親しみやすい命名が行われたため、「SCOTT/TIGER」というコンビネーションが、Oracleデータベースのサンプルスキーマとして広く知られるようになりました。

まとめ:サンプルスキーマで効率的に学ぼう

今回の記事では、Oracleデータベースのサンプルスキーマについて詳しく解説しました。サンプルスキーマを使えば、実際のデータを用いてデータベース操作を安全に学ぶことができ、SQLクエリの理解も深まります。

初心者の方は、まずHRやSCOTTスキーマを使って基本的な操作に慣れ、次により複雑なスキーマでの練習に進むと良いでしょう。Oracleデータベースの習得は、今後のキャリアに大いに役立つスキルですので、ぜひ積極的に取り組んでください!
次回以降で実際のSQLの実行方法等を解説していきます。

コメント

タイトルとURLをコピーしました