基本情報技術者試験 (FE) 科目 A — データベース
ビュー — 実表との違い
ビューは問合せに名前を付けたもので、実際のデータは持たない仮想的な表。参照されるたびに定義された問合せが実行されるため、元の実表が変わるとビューの内容も変わる。
ビューは「名前を付けた問合せ」
CREATE VIEW は、SELECT 文に名前を付けて、 あたかも表のように扱えるようにします。
CREATE VIEW 高額商品 AS
SELECT 商品番号, 商品名, 単価
FROM 商品
WHERE 単価 >= 200これ以降 SELECT * FROM 高額商品 と書けます。 使う側からは表と区別が付きません。
実表とビューの違い
実際にデータを持っている表を実表と呼び、 ビューと区別します。
| 実表 | ビュー | |
|---|---|---|
| データの実体 | 持つ | 持たない |
| 参照したとき | そのまま読む | 定義された SELECT を実行する |
| 元の表が変わると | — | 内容も変わる |
| 更新 | できる | 条件を満たせばできる |
試す: ビューを作って、表と同じように SELECT できることを確かめる
元の表を変えるとビューも変わる
これがビューの本質です。下の Playground では:
- ビューを作る(単価 200 以上の商品)
- ビューを見る → 2 行
- ボールペンの単価を 1000 に更新する
- もう一度ビューを見る → 3 行に増えている
ビューがデータを持っていたら、こうはなりません。参照のたびに問合せが実行し直されている証拠です。
試す: ビューを直接 UPDATE しようとすると弾かれる
ビューの使いどころ
- 複雑な問合せの再利用。長い結合を毎回書かずに済む
- 列を隠す。給与の列を含まないビューだけを見せて、アクセス権をビューに与える
- 変更の吸収。元の表の構造が変わっても、 ビューの定義側で調整すれば利用者側は書き換えなくてよい
元の表を更新して確かめる
4 文をまとめて実行します。結果が文ごとに表示されるので、 同じビューを 2 回見たときに内容が変わることを確かめてください。
試す: 2 回目の SELECT で行が増える (ビューはデータを持たない)
試験で問われるポイント
- ビューはデータを持たないこと(最頻出)
- 実表という用語とビューの対比
- ビューとアクセス権を組み合わせて列を隠す使い方
- 集約や結合を含むビューが更新できない理由
よくある疑問
自由に試す / 他のレッスンを読む
データベース分野をもっと学ぶ(おすすめ書籍)
イラスト主体で科目Aの全範囲を通読できる入門書。用語の土台を作ってから科目Bのアルゴリズムに入ると理解が速い。
科目Aの頻出テーマを図と語呂で押さえる入門書。参考書と問題集を兼ねるので初受験の一冊目に選びやすい。
公開問題を大量に解いて仕上げるための問題集。擬似言語の読解に慣れた後、本番形式で時間配分を試す段階で使う。
本セクションはAmazonアソシエイトのリンクを含みます。
プログラムの読み方でつまずいたら。
たいてっくが、アルゴリズムの追い方から SQL・データベース設計まで、1対1で学習をサポートします。「コードを目で追っても何をしているか分からない」段階からで大丈夫です。まずは無料相談から。
「教え方も上手で、お人柄も良いメンターです。DB周りの知識はもちろん、何より、しっかり教えてあげようという姿勢がとてもありがたかったです。データベース、SQLの学習を考えている方にはおススメです。」
— H 様(DB・SQL コース受講)「体系的に知識を教えてくださり、実際の業務でも大変役立っております。特に短い時間で効率よく知識の習得や、練習をできているのは期待以上でした。」
— M 様(DB・SQL コース受講)「大変充実したコンテンツでわかりやすいご説明をありがとうございました。基本的な質問にも丁寧にご説明いただき、また業務のご相談にも乗って頂き大変有意義な時間でした。」
— K 様(DB・SQL コース受講)