ORACLE MASTER BRONZE DBA11g、資格取得、概要把握と試験対策(無料問題付き)
講座8 ORACLE DATABASE、表の管理について
ORACLE製品も他のベンダー製品と同様にデータベースを管理する機能を有しており、製品特有名はありますが
一般的なDB用語や認識としては同じです。表・検索・制約を管理してゆく上で
スキーマ・オブジェクトの用語と内容把握を行う必要があります。
Enterprize
Managerにはデータベースを管理する機能が備えられていますのでこちらを活用して管理してゆきましょう。
流れとしてはEnterprize
Managerで以下の行動を行います。
1.スキーマやオブジェクトの内容把握
↓
2.表管理の内容把握
↓
3.索引とプログラムの管理の内容把握
↓
4.表へのアップデートツールの利用
詳細な流れ
1.スキーマやオブジェクトの内容把握
スキーマ = ユーザが所有するオブジェクト
オブジェクト = 表・索引・ビュー・プロシージャ【データベースに格納されて特定の機能を提供するもの】
上記内容だけでは、DBを触っていない人には何を書いているか分からないと思います。
例えば、あるユーザAがエクセルで文書を作った(エクセルAとする。)
すると、エクセルAはユーザAが作成したものという所有者がつく。
これをDB用語で言えば
ユーザAがAスキーマを保有した権限(書き込み・作成権限等)で、エクセルAという表を作成した。
エクセルAはユーザAのオブジェクトと証明できます。これをユーザAのスキーマ・オブジェクトと言います。
誰かの作ったエクセル表を検索したい場合
スキーマ名、オブジェクト名が必須です。
(Aスキーマ、エクセルA)といった感じです。
上記は一般ユーザAを例としましたが、管理用に権限のあるスキーマがあります。(データベースを作成した際に自動で作成される)
SYSスキーマ =
データ・ディクショナリ(ORACLE Database)に関する表やビュー
SYSTEMスキーマ =
管理情報の表やツールで使用
サンプル用のスキーマも存在します。
HR、OE、SH
2.表管理
データベース管理者は表の作成・変更・削除といいた操作をEM、SQL*PLUSを使用して管理できます。
表管理の際はデータ型と制約により、制御を細かくできる事をまずは理解しまししょう。
データ型のタイプ CHAR
= 文字列、固定長データ
VARCHAR2 =
文字列、可変長データ
NUMBER
= 数値
DATE
= 日付
制約の種類 NOT NULL制約
= NULLには出来ない。入力が必須
UNIQUE制約(一意制約) =
重複した値の入力不可。NULLは複数あっても可
PRIMARY KEY制約 =
NULL禁止、重複禁止、1つの表に1つのみ。複数列でも選べる
・表の作成時の注意
表を作成した際にPRIMARY KEY制約やUNIQUE制約を定義すると、自動的に索引が作成されるが
手動では削除できない。
・表の変更時の注意
表のサイズを小さくする場合、データサイズより小さくは出来ない。
・表の削除時の注意
表を削除した場合、索引は削除されるが、表を参照するビューやプロシージャー、ファンクション、パッケージやシノニム等の
プログラム系は無効化されるのみで削除はされない。
3.索引とビューとプログラムの管理
・索引はデータを検索する為のものです。検索方法は2種類あります。
インデックス・スキャン =
索引を使用して検索する
フルテーブル・スキャン =
表のデータすべてにアクセスして、検索する。(索引を使用しない)
索引を作りすぎた場合の注意。
DML文の処理速度が低下する。 → 理由
表と索引は整合性がとれている必要がある為、DML文を実行すると
索引に対しての更新処理が実行される。更新処理数が膨らむと遅くなる。
・ビューは実際のデータを保持するわけではなく、見せ方を提供するものです。
利用メリット
見せたくないデータを隠せる(元表にないアクセス権をビューに与える事で、ビューを閲覧できる)
簡単にビューを結合して、表を作成できる。
ビューを削除しても、元データは削除されない。データディクショナリ内の選択文が削除されるのみ
・表にはプログラムを入れる事が可能でデータベース常駐型プログラム・ユニットと呼びます。
データベース・トリガー =
DML文の実行に合わせて自動的に実行する
プロシージャ
= 呼び出し元プログラムの値を返さない、プログラム
ファンクション
= 呼び出し元プログラムの値を返す、プログラム
パッケージ
= プログラム
4.表へのアップデートツールの利用
表へ送るテキストデータ用のアップデートツールとしてはSQL*Loaderを利用します。
SQL*Loaderを利用するにはデータファイルと制御ファイルの2つが必要です。
データファイル = テキスト形式のファイル
制御ファイル =
データのある格納場所が記載されているファイル。EMで作成しておく。
SQL*Loaderのロード作業時に自動生成できるファイル
試験に出ると想定される問題 この分野の出題としては3問
問題1
データベースを作成した際に自動で作成されるスキーマの内、データ・ディクショナリ(ORACLE Database)に関する表や
ビューを管理するスキーマはどれ?1つ選んでください。。
1.SYSスキーマ
2.HRスキーマ
3.SYSTEMスキーマ
4.SHスキーマ
解答 1
問題2 SQL*Loaderを利用するには2つのファイルが必要であるが何と何か?
1.ユーザファイル
2.データファイル
3.制御ファイル
4.一時ファイル
解答 2.3
問題3
表に組み込まれているプログラム(データベース常駐型プログラム・ユニット)の内、呼び出し元プログラムの値を返すのはどれか?
1.データベース・トリガー
2.プロシージャ
3.ファンクション
4.パッケージ
解答 3
問題4 データベース管理者は表の作成・変更・削除といいた操作を_@_、_A_を使用して管理できます。
空欄を埋めよ。
解答 @EM ASQL*PLUS
問題5 表のデータすべてにアクセスして、検索する(索引を使用しない)方法を何というか?
1.マニュアル・スキャン
2.インデックス・スキャン
3.フルテーブル・スキャン
4.手動・スキャン
解答 3
問題6 文字列、可変長データを扱えるデータ型はどれか?
1.CHAR
2.VARCHAR2
3.NUMBER
4.DATE
解答 2
問題7 NULL禁止、重複禁止、1つの表に1つのみ。複数列でも選べるという制約はどれか?
1.UNIQUE制約(一意制約)
2.NOT NULL制約
3.NULL制約
4.PRIMARY KEY制約
解答 4
問題8 サンプル用スキーマを3つ選んでください。
1.SYS
2.HR
3.OE
4.SH
解答 2.3.4
問題9 オブジェクトを4つ選べ?
1.索引
2.スキーマ
3.表
4.ビュー
5.プロシージャ
解答 1.3.4.5
問題10 ビューの説明をしていないのはどれ?
1.見せたくないデータを隠せる
2.ビューを削除すると、元データも削除される。
3.簡単にビューを結合して、表を作成できる。
4.ビューを削除しても、元データは削除されない。
解答 2
トップページに戻る