ORACLEMASTER 備忘録8(7/10)
続き
・索引のタイプ
索引には「標準-Bツリー」「ビットマップ」といった索引のタイプがある。
標準-Bツリー索引は「Bツリー(バランスツリー)」というツリー構造になっている。索引の各ブロックには「索引キーの各値のエントリ」と「値が格納されている行のディスク上のアドレス」が含まれる。Bツリー索引がデフォルトであり、一般的に使われる索引。例えば、「SCOTT」というキーワードのデータを探す場合、下図のように“ルートブロック”から“ブランチブロック”、“リーフブロック”へと辿っていき、リーフブロックから実際の表のデータブロックにダイレクトにサクセスする。一方、ビットマップ索引は、主にデータウェアハウス環境で使用する。
SQL Developerを使用し索引の削除
SQL Developerを使用して索引を削除するには、次の手順を実行する。
- 削除する索引を右クリックして「削除」をクリックする。
- 「適用」ボタンをクリックする。
3、索引が削除されたという確認メッセージが表示される。
SQL文を使用した索引の削除
SQL文を使用して索引を削除するには、“DROP INDEX文”を使用する。
・索引の削除
DROP INDEX 索引名;
制約を作成したことによって暗黙的に作成される索引は、制約の機能を実現するために(一意性を素早くチェックするために)使用されるので、上記の方法では削除できない。この場合は、制約を無効にするか、削除すると自動的に削除される。
ビュー
ビューは、一つまたは複数の表やビューを元にして作成する「仮想の表」。ビューはフィルターのようなものであるため、表やビューのデータをカスタマイズして表示することができる。
ビューの実態はSQLのSELECT文である。ユーザーがFROM句に、表の代わりにビューを指定すると、ビューとして定義されているSELECT文が実行され、ビューの基礎になっている表からデータが取り出される。つまり、ビューには“データは格納されていない”。ビューの基礎になっている表をビューの「実表」という。
ビューを使用するメリット
ビューを使用すると、“複雑なSELECT文を簡略化”できる。例えば、目的のデータを取得するSELECT文が複雑(多くの表を結合する結合構文など)になってしまう場合に、そのSELECT文を事前にビューとして定義しておけば、ユーザーはFROM句にそのビュー名を指定するだけで目的のデータを簡単に取得できる。
また、例えば社員表の給与例のように、すべてのユーザーには見せたくない例については、その例を除いたビューを作成しておき、一般ユーザーには社員表ではなく、そのビューを参照させることで、“セキュリティ機能”を実装できる。このとき、実表に対するオブジェクト権限は与えず、ビューに対するオブジェクト権限のみを与えるだけでビューにアクセスできるため、実装のセキュリティレベルをより向上させることができる。
さらに、ビューにたいしてDMLを実行することもできる。この場合は実表に対するデータの変更となる。