「ビューって結局何なの?」
「処理権限がよくわからない・・・」
そんなお悩みをずばっと解決していきます!
前回の記事をまだ読んでいない方は、ぜひこちらからお読みください。
データ定義言語の基礎知識⑤ ビューってなに?
データに実際に存在する表のことを実表というのに対し、ビューはデータ格納領域に存在していない仮の表です。
1つまたは複数の実表から列や行を取り出して、あたかも1つの表であるように使用できます。利用者から見れば実表とあまり変わりありません。
じゃあなぜ「実表」と「ビュー」があるのかというと、管理者側からするとビューが便利だからです。例えば、元となる実表の中に、見せたい情報と見せたくない情報があったとき、見せたい情報のみでビューを作って利用させれば、見せたくないデータを保護することができます。
また、利用者が必要としている情報のみでビューを作れば、操作が容易になるのです。
ビューの定義
「CREATE VIEW」文を使うと、ビューの定義を行うことができます。
CREATE VIEW 学生 (番号, 名前) AS SELECT 学生番号, 氏名 FROM 学生表
黄色のアンダーラインは列名の指定です。例のように、元となる表とは違う名前を付けることも可能です。ただし、ここで指定する列名の数と、SELECTで指定する列の数は同じでなければなりません。この列名の指定を省略した場合は、元の表の列名そのままになります。
赤色のアンダーラインは、引っ張ってくる列を指定する問合わせです。ここでは実表も使えますし、他のビューから情報を引っ張ってくることもできます。
ビューの更新
ビューへの更新は、ビューを通して元の表を更新する、という処理になります。なぜなら、ビューはデータとしては存在していない仮の表であるため、ビューを変更したいのであれば、情報元である実表を更新しなければならないからです。
そのため、更新不可能なビューというものが存在します。例えば、元となる表が変更不可能な場合などは更新できません。
更新不可能なビューは下記のとおりです。
- SELECT句に、式、集合関数、DISTINCTを指定している
- SELECT句に、元の表の中の同一列を複数指定している
- FROM句に、更新不可ビュー(読み取り専用ビュー)を指定している
- GROUP BY、HAVINGを指定している
データ定義言語の基礎知識⑥ 表の処理権限
スキーマに定義された実表やビューは、最初そのスキーマの作成者にしか処理権限が与えられていません。スキーマとはデータベースの枠組みの1つです。スキーマの中に、複数の表やビューを定義できます。
その処理権限を、他人に付与する方法もあります。
処理権限の種類
処理権限には、範囲の広さなど、いくつかの種類があります。
- 読み取り(SELECT)権限
- 挿入(INSERT)権限
- 削除(DELETE)権限
- 更新(UPDATE)権限
- すべての権限(ALL PRIVILEGES)
権限の付与
「GRANT」文を使うことで、権限の付与を行うことができます。
GRANT SELECT, UPDATE ON 学生表 TO Tanaka
これで、Tanakaさんに、学生表を読み取る、更新する権限を与えたことになります。
権限の取り消し
「REVOKE」を使うことで、付与した権限を取り消すことができます。
REVOKE SELECT, UPDATE ON 学生表 FROM Tanaka
これで、Tanakaさんから、読み取り、更新権限をはく奪することができます。
まとめ
これで、データ定義言語についてのまとめは終わりです。表を定義すること、定義された表を使用して様々な処理を行うことができるようになりましたね。応用情報技術者試験の午後問題、データベースの範囲についてはだいぶ解けるようになったと思いますので、ぜひ挑戦してみてください!
次のステップへ:応用情報技術者試験合格者の声
合格者の体験談と学習のコツ
こちらの記事もご覧ください。




コメント