Oracleのスキーマオブジェクトの管理:間違いやすいポイントを追え! Bronze DBA講座(9)(1/2 ページ)
Oracleデータベースエンジニアとしての基礎力を証明するORACLE MASTER Bronze。その取得を目指すITエンジニアのための講座が本連載だ。間違いやすいポイントを確認し、合格に近づこう!
前回「Oracleユーザーとセキュリティの管理」で、ユーザーの管理、権限とロールの管理について間違いやすい部分を学習しました。
今回はスキーマオブジェクトの管理に関して、以下の項目を確認します。
- スキーマオブジェクト
- 表の作成と削除
- 索引とビューの管理
スキーマオブジェクト
■例題1
次の中からスキーマオブジェクトではないものを2つ選択してください。
a.表領域
b.表
c.索引
d.シノニム
e.順序
f.ビュー
g.ロール
■例題の範囲をおさらい
参考:「Oracleの表の作成とビューの利用」
スキーマは、1人のユーザーが所有するデータベースオブジェクトの集まりを意味します。スキーマ名はユーザー名と同一であり、スキーマが所有するオブジェクトをスキーマオブジェクトといいます。スキーマオブジェクトには、以下のものがあります。
- 表
- 索引
- シノニム
- 順序
- ビュー
上記のオブジェクトはスキーマごとに管理されるため、スキーマが異なれば同じオブジェクト名であっても作成できます。
「スキーマ名.オブジェクト名」のようにオブジェクト名をスキーマ名で修飾することで、以下のようにほかのユーザーが所有するオブジェクトにアクセスすることができます。
例)SCOTTの所有するEMP表にアクセス
SELECT * FROM SCOTT.EMP;
■正解
a、g
■解説
スキーマオブジェクトには、表やビュー、索引、順序、シノニムがあります。表領域やロールは、1スキーマが所有するオブジェクトではありません(正解a、g)。
表の管理
■例題2
表を削除した場合の説明として正しいものを2つ選択してください。
a.表に定義されている索引は自動的に削除される
b.表に定義されているビューは自動的に削除される
c.表に定義されている索引やビューなどのオブジェクトは先に削除する必要がある
d.データディクショナリからその表の定義が削除される
e.表に行が存在する場合は行を先に削除する必要がある
■例題の範囲をおさらい
参考:「Oracleの表の作成とビューの利用」Oracleの表の作成とビューの利用」
・表の作成
表を作成するには、以下の項目を指定する必要があります。
項目 | 説明 |
---|---|
表名 | 表名を指定 |
スキーマ | 表を所有するスキーマを指定 |
表領域 | どの表領域に表を作成するかを指定。指定しない場合はデフォルト表領域に作成 |
列名 | 列名を指定 |
列のデータ型 | データ型を指定 文字型 CHAR、VARCHAR2 数値型 NUMBER 日付型 DATE |
サイズ | 有効けた数を指定(文字データ型、数値データ型のみ) |
制約 | データ整合制約を指定 CHECK制約 NOT NULL制約 UNIQUE制約 PRIMARY KEY制約 FOREIGN KEY制約 (詳細は第1回を参照) |
・表の変更
既存の表に対して、スキーマと表領域以外を変更することが可能です。
・表の削除
表を削除すると、データディクショナリから表の定義が削除され、表内のすべての行が削除されます。削除した表にアクセスを試みると、「ORA-00942: 表またはビューが存在しません。」のエラーが表示されます。
表の削除によって、その表に定義されている索引も自動的に削除されます。
■正解
a、d
■解説
選択肢a:表を削除すると、その表に定義されている索引は自動的に削除されます。
選択肢b:表に定義されているビューは、自動的に削除されません。INVALID(無効)の状態で存在します。このビューにアクセスを試みるとエラーになりますが、再度同じ表が作成された場合、ビューは使用可能になります。
選択肢c:表を削除する際、その表に定義されている索引やビューなどのオブジェクトを先に削除する必要はありません。表を削除すると索引も同時に削除されます。
選択肢d:表を削除すると、データディクショナリからその表の定義が削除されます。
選択肢e:表を削除する際、行を先に削除(DELETE)する必要はありません。表の削除(DROP)を行うと、表のすべてのデータおよび定義が削除されます。
よって、正しい説明はa、dです。
Copyright © ITmedia, Inc. All Rights Reserved.