情報処理技術者試験合格日記

宿題メール一日一題 高度をめざす情報処理技術者試験宿題』より

                                                                                                                                              • -

★★★★★★[解説:テクニカル(データベース)向け]

 "注文"表と"商品"表の二つに対して,四つのビューを定義した。このうち更新
可能なビューはどれか。

 注文
┌────┬─────┬────┬────┬────┬──┬────┐
│注文番号│ 注文日 │顧客番号│顧客名 │商品番号│数量│ 金額 │
┝━━━━┿━━━━━┿━━━━┿━━━━┿━━━━┿━━┿━━━━┥
│ 001  │1999-06-05│ K111 │ A 社 │ RX01 │ 5 │ 150,000│
├────┼─────┼────┼────┼────┼──┼────┤
│ 001  │1999-06-05│ K111 │ A 社 │ RY01 │ 10 │ 290,000│
├────┼─────┼────┼────┼────┼──┼────┤
│ 001  │1999-06-05│ K111 │ A 社 │ F001 │ 5 │ 375,000│
├────┼─────┼────┼────┼────┼──┼────┤
│ 002  │1999-06-10│ K222 │ B 社 │ TV18 │ 10 │ 450,000│
├────┼─────┼────┼────┼────┼──┼────┤
│ 003  │1999-06-15│ K333 │ C 社  │ TV18 │ 5 │ 225,000│
├────┼─────┼────┼────┼────┼──┼────┤
│ 003  │1999-06-15│ K333 │ C 社 │ F001 │ 2 │ 150,000│
├────┼─────┼────┼────┼────┼──┼────┤
│ 004  │1999-06-20│ K222 │ B 社 │ RY01 │ 5 │ 145,000│
├────┼─────┼────┼────┼────┼──┼────┤
│ 004  │1999-06-20│ K222 │ B 社 │ F001 │ 2 │ 150,000│
└────┴─────┴────┴────┴────┴──┴────┘

 商品
┌────┬────┬────┐
│商品番号│ 商品名 │ 単価 │
┝━━━━┿━━━━┿━━━━┥
│ F001 │冷蔵庫 │ 75,000│
├────┼────┼────┤
│ RX01 │ラジオ X│ 30,000│
├────┼────┼────┤
│ RY01 │ラジオ Y│ 29,000│
├────┼────┼────┤
│ TV18 │テレビ │ 45,000│
└────┴────┴────┘
  ア  CREATE  VIEW  顧客 V(顧客番号, 顧客名)
        AS SELECT  DISTINCT 顧客番号, 顧客名  FROM  注文

  イ  CREATE  VIEW  商品 V(商品番号, 商品名)
        AS SELECT  商品番号, 商品名  FROM  商品

  ウ  CREATE  VIEW  注文 V(注文番号, 注文日, 顧客番号, 合計金額)
        AS SELECT  注文番号, 注文日, 顧客番号, SUM(金額)  FROM  注文
              GROUP BY  注文番号, 注文日, 顧客番号

  エ  CREATE  VIEW  注文明細 V(注文番号, 商品番号, 数量, 単価, 金額)
        AS SELECT  注文番号, 注文.商品番号, 数量, 単価, 金額
                FROM  注文, 商品  WHERE  注文.商品番号 = 商品.商品番号

【実習課題】実際に SQL で試してみよう。

注意:桁がずれて表示されているときは以下のサイトを参考にして下さい。
KAZ池田氏提供 http://www.mag2.com/faq/mua.htm

■キーワード■ 更新可能な VIEW

■解答■
  テクニカルエンジニア(データベース)午前平成15年問33
  ほぼ同等:データベーススペシャリスト午前平成13年問36

イ CREATE VIEW 商品 V(商品番号, 商品名)
AS SELECT 商品番号, 商品名 FROM 商品

>  ア × DISTINCTを含むビューは更新できない。
>  イ ○ 正解。
>  ウ × GROUP BYを含むビューは更新できない。
>  エ × 複数の表からなるビューは更新できない。

 どうもありがとうございました。

> 更新可能なビューの条件
> ・ビューのクエリの FROM 節にテーブル参照が 1 つ だけ含まれる場合。
> ・ビューのクエリの SELECT リストの値の式が、すべて列参照である場合
> ・ビューのクエリが、GROUP BY、HAVING、SELECT DISTINCT を指定していない場合
> ・ビューとして投影されたクラス・クエリでない場合
> ・ビューのクラスにクラス・パラメータ READONLY=1 が含まれていない場合
>  (ビュー定義に WITH READ ONLY 節が含まれる場合)
>
> http://www.intersystems.co.jp/support/csp/gsql/gsql_views.html

 どうもありがとうございました。

> <ビューに対するデータの変更の制限>
> 1. 1つの実テーブルから定義されているビューに対してのみ
> データの更新が可能です。
> 2. GROUP BY句及びHAVING句を使用して定義されたビューに対しては
> データの変更ができません。
> 3. DISTINCT句を使用して定義されたビューに対してはデータの変更ができませ
ん。
> 2.3.については、出力されるデータの行が特定できないからです。
>
> 参考:techscore
> http://www.techscore.com/tech/sql/09_02.html

 どうもありがとうございました。

                                                                                                                                              • -

★★★★★★[解説:テクニカル(ネットワーク)向け]

 TCP/IP ネットワークにおいて、TCP を使用するアプリケーションはどれか。

 ア DHCP

 イ FTP

 ウ ICMP

 エ NTP

■キーワード■ TCPFTP

■解答■
  テクニカルエンジニア(ネットワーク)午前平成16年問23

 イ FTP

                                                                                                                                              • -

★★[解説:情報セキュアド向け]

 プログラムのテストに関する記述のうち,適切なものはどれか。

 ア 静的テストとは,プログラムを実行することなくテストする手法であり,
  コード検査,静的解析などがある。

 イ トップダウンテストは,仮の下位モジュールとしてスタブを結合してテス
  トするので,テストの最終段階になるまで全体に関係するような欠陥が発見
  しにくい。

 ウ ブラックボックステストは,分岐,反復などの内部構造を検証するため,
  すべての経路を通過するように,テストケースを設定する。

 エ プログラムのテストによって,プログラムにバグがないことが証明できる。

■キーワード■ 静的テスト,データ検査方法

■解答■
  情報セキュリティアドミニストレータ午前平成16年問11

 ア 静的テストとは,プログラムを実行することなくテストする手法であり,
  コード検査,静的解析などがある。

> イ:トップダウンテストは上位モジュールからテストしていくので最初の段階で
> 全体に影響が出るような欠陥を抽出できる。
> ウ:ホワイトボックステストの説明
> エ:テストでバグがない事の証明はできない。テストの目的はバグを発見する事!

 どうもありがとうございました。

> 「静的テスト」
> プログラムを動かさずソースコードの内容を検証
> http://www.shobu.jp/html/011_tech/project/test/test_list.pdf

 どうもありがとうございました。

                                                                                                                                              • -