エンティティやリレーションシップ以外のお話
こんにちは、皆さん頑張って設計していますか?
SI Object Browser ER(以下OBER)はER図を用いたデータモデリングツールです。その名の通り主な登場人物はエンティティとリレーションシップ(テーブルと参照整合性制約)となりますが、その他にもビューやストアドの定義なども可能です。今回はそんな中でもあまり知られていない?Oracleの表領域の作成についてお話していきます。
Oracle 表領域とは
Oracleの表領域とはTABLESPACEとも言い、その名の通りテーブルが格納されるファイルです。テーブルにはデータが格納されますから、データの格納場所とも言えます。CREATE TABLE時に表領域を指定でき、テーブルはその表領域上に作成されます。なお、未指定の場合は各ユーザーに設定されたデフォルト表領域上に作成されますので、何が指定されているか把握しておきましょう。
OBERでも各エンティティに対して表領域が指定できますが、そのためにはまずモデル上に表領域を定義します。
OBERで表領域を作成する
では、OBERを操作していきます。事前にデータベースモデルはOracleにしておきます。メニューバー、「モデル」→「表領域リスト」と進み、画面が展開されたら「追加」ボタンをクリックします。
「表領域」画面
簡単に各項目の説明をします。IM列ストアタブについては今回使用しませんので省略します。
データファイル 情報 |
表領域を構成するデータファイル情報を指定します。 |
---|---|
領域タイプ | 表領域のタイプを指定します。 「永続管理表領域」「一時表領域」「UNDO表領域」のいずれかが選択可能です。 |
オンライン | 表領域のオンライン/オフラインを切り替えます。 |
REDOに記録 | デフォルトのロギング属性を指定します。 |
読込専用 | 読込み専用の表領域を作成する場合、ここをチェックします。 |
エクステント サイズ/数 |
表領域に格納されるオブジェクトの、デフォルトのエクステント情報を指定します。 |
ブロックサイズ | 表領域のブロックサイズを指定します。 |
エクステント 管理方法 |
表領域のエクステントをどのように管理するかを指定します。 |
空き領域 管理方法 |
表領域の空き容量をどのように管理するかを指定します。 |
適当な表領域「TABLESPACE1」を作成しました。これをエンティティに設定していきます。
エンティティエディタを開き、領域情報タブの「表領域」に先ほど作成した物を設定するだけです。
エンティティに設定・1
DDLタブを確認すると、表領域が指定されていることがわかります。
エンティティに設定・2
表領域をフォワードエンジニアリング
表領域の定義と、それを設定したエンティティの作成が終わりましたので、フォワードエンジニアリングをしてみましょう。実行されるSQLを見てみると、せっかく定義した表領域のDDLがないことに気がつくと思います。
これはOBERのフォワードオプション設定がデフォルトでOFFになっているためです。というのも、表領域は通常一度作ったらあとはその場所にテーブルを作成していきますので、作成頻度はテーブルほど高くありません。なのでデフォルトをOFFとしています。表領域を作成する場合は、このオプションを忘れずにONにしましょう。
フォワードオプション
フォワードされるSQLにCREATE TABLESPACEが出力されている
Oracle 表領域を作成してみよう まとめ
いかがでしたか。OBERでテーブルやリレーションシップ以外も定義できる、ということで今回は表領域をご紹介させていただきました。表領域まで含めたデータベース全体を一つのEDMファイルで管理できますので、テスト環境の作成や本番への移行作業も捗ると思います。是非活用してみてください。
今回はOracleでしたので表領域で説明いたしましたが、SQL Serverで設計する場合は同じ働きをする「ファイルグループ」の定義が可能です。同じ操作で設定できますので、SQL Server派の方はぜひお試しください。
- カテゴリ: