Oracle 表領域を作成してみよう

 2019.09.09  株式会社システムインテグレータ

エンティティやリレーションシップ以外のお話

こんにちは、皆さん頑張って設計していますか?
SI Object Browser ER(以下OBER)はER図を用いたデータモデリングツールです。その名の通り主な登場人物はエンティティとリレーションシップ(テーブルと参照整合性制約)となりますが、その他にもビューやストアドの定義なども可能です。今回はそんな中でもあまり知られていない?Oracleの表領域の作成についてお話していきます。

Oracle 表領域とは

Oracleの表領域とはTABLESPACEとも言い、その名の通りテーブルが格納されるファイルです。テーブルにはデータが格納されますから、データの格納場所とも言えます。CREATE TABLE時に表領域を指定でき、テーブルはその表領域上に作成されます。なお、未指定の場合は各ユーザーに設定されたデフォルト表領域上に作成されますので、何が指定されているか把握しておきましょう。
OBERでも各エンティティに対して表領域が指定できますが、そのためにはまずモデル上に表領域を定義します。

OBERで表領域を作成する

では、OBERを操作していきます。事前にデータベースモデルはOracleにしておきます。メニューバー、「モデル」→「表領域リスト」と進み、画面が展開されたら「追加」ボタンをクリックします。

1「表領域」画面

簡単に各項目の説明をします。IM列ストアタブについては今回使用しませんので省略します。

データファイル
情報
表領域を構成するデータファイル情報を指定します。
領域タイプ 表領域のタイプを指定します。
「永続管理表領域」「一時表領域」「UNDO表領域」のいずれかが選択可能です。
オンライン 表領域のオンライン/オフラインを切り替えます。
REDOに記録 デフォルトのロギング属性を指定します。
読込専用 読込み専用の表領域を作成する場合、ここをチェックします。
エクステント
サイズ/数
表領域に格納されるオブジェクトの、デフォルトのエクステント情報を指定します。
ブロックサイズ 表領域のブロックサイズを指定します。
エクステント
管理方法
表領域のエクステントをどのように管理するかを指定します。
空き領域
管理方法
表領域の空き容量をどのように管理するかを指定します。

適当な表領域「TABLESPACE1」を作成しました。これをエンティティに設定していきます。
エンティティエディタを開き、領域情報タブの「表領域」に先ほど作成した物を設定するだけです。

2

エンティティに設定・1

DDLタブを確認すると、表領域が指定されていることがわかります。

3

エンティティに設定・2

表領域をフォワードエンジニアリング

表領域の定義と、それを設定したエンティティの作成が終わりましたので、フォワードエンジニアリングをしてみましょう。実行されるSQLを見てみると、せっかく定義した表領域のDDLがないことに気がつくと思います。

これはOBERのフォワードオプション設定がデフォルトでOFFになっているためです。というのも、表領域は通常一度作ったらあとはその場所にテーブルを作成していきますので、作成頻度はテーブルほど高くありません。なのでデフォルトをOFFとしています。表領域を作成する場合は、このオプションを忘れずにONにしましょう。

4

フォワードオプション

5

フォワードされるSQLにCREATE TABLESPACEが出力されている

Oracle 表領域を作成してみよう まとめ

いかがでしたか。OBERでテーブルやリレーションシップ以外も定義できる、ということで今回は表領域をご紹介させていただきました。表領域まで含めたデータベース全体を一つのEDMファイルで管理できますので、テスト環境の作成や本番への移行作業も捗ると思います。是非活用してみてください。

今回はOracleでしたので表領域で説明いたしましたが、SQL Serverで設計する場合は同じ働きをする「ファイルグループ」の定義が可能です。同じ操作で設定できますので、SQL Server派の方はぜひお試しください。

新規CTA

RECENT POST「OBERをトコトン極める」の最新記事


この記事が気に入ったらいいねしよう!