データベース'03/12は,斎藤末広氏
http://www.mirai.ne.jp/~suehiro/ が出されている宿題を再編集したものです。
------------------------------------------------------------------------
031201
■キーワード■ 関数従属

■解答■

  テクニカルエンジニア(データベース)午前平成14年問24
  データベーススペシャリスト午前平成09年問12

 ア 第 1 正規形

> 繰り返しを取り除いた状態を「第一正規形」と呼ぶ。

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

> 検索して調べていたら、末広先生のページが参考になりました。
> http://www.mirai.ne.jp/~suehiro/am/kihonyougo/normal.htm

 どうもありがとうございました。
------------------------------------------------------------------------
031202
■キーワード■ 射影,関係代数演算,タプル

■解答■

  テクニカルエンジニア(データベース)午前平成14年問25
  データベーススペシャリスト午前平成12年問43

 ウ 射影は,ある関係から一部の属性を取り出したタプルからなる関係を求め
  る。

> 後半部分について
> ア:直積の説明
> イ:商 の説明
> エ:差 の説明

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

> タプルとは行のこととして考えましたが、
> その考え方でいいのでしょうか?

 いいです。タプル(tuple)は,a 3-tuple というと,3つ一組が一つという意味
の英語です。
 参考:トランジスタ技術編集部 の用語サイト
 http://www.cqpub.co.jp/term/tuple.htm
------------------------------------------------------------------------
031203
■キーワード■ E-R図

■解答■
  テクニカルエンジニア(データベース)午前平成14年問26

 ア ある顧客は, 自分が注文主でかつ届け先であることができる。

> 注文表の定義を見ると、注文主と届け先を同じ場所にすることが可能

 どうもありがとうございました。
------------------------------------------------------------------------
031204
■キーワード■ SQL GROUP

■解答■
  テクニカルエンジニア(データベース)午前平成14年問28
  データベーススペシャリスト午前平成9年問05

 ウ
  ┌─────┐
  │AVG(年齢) │
  ├─────┤
  │  30  │
  ├─────┤
  │  40  │
  └─────┘

> "GROUP BY グループ" とあるので、まずA、B、C三つのグループに分けます。
> "HAVING COUNT(*) > 1" 該当するのはBとCの二つ。
> "AVG(年齢)"  グループそれぞれに年齢の平均を出します。
> Bは20と40の平均で30。Cは30、40、50ですから平均40です。

 どうもありがとうございました。
------------------------------------------------------------------------
031205
■キーワード■ CREATE(SQL)

■解答■
  テクニカルエンジニア(データベース)午前平成14年問29
  データベーススペシャリスト午前平成12年問47

 ウ  CREATE  VIEW  VIEW3 (SNO, STATUS, CITY)
          AS  SELECT  S.SNO, S.STATUS, S.CITY
              FROM  S
              WHERE  S.STATUS > 15

> ア:× DISTINCT で重複行を表示しないようにしているのでダメ。
> イ:× GROUP しているのでダメ。
> ウ:○ 1つの表からの VIEW なので○。
> エ:× 複数の表からの VIEW なのでダメ。

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

> ア × DISTINCT指定があるため更新不可。
> イ × GROUP BY句の指定があるため更新不可。
>     またGROUP BY句の指定に誤りがある。
> ウ ○
> エ × 複数テーブルを使用しているため更新不可。

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

> 更新可能かどうかは、元の列と結果が1対1かどうかを
> 判断すれば良いはずなので、

 どうもありがとうございました。
------------------------------------------------------------------------
031208
■キーワード■ COUNT(SQL)

■解答■
  テクニカルエンジニア(データベース)午前平成14年問30

 ウ 3

> 社員表と部門表から,所属=部門名でフロアが2の行数を求める。

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

> WHERE句に記述された条件に合う表を作成すると以下の様になる。
> 
> ┌────┬──────┬───┐
> │社員番号│所属(部門名)│フロア│
> ┝━━━━┿━━━━━━┿━━━┥
> │11002  │経理    │ 2  │
> │11005  │情報システム│ 2  │
> │12002  │情報システム│ 2  │
> └────┴──────┴───┘
> 
> SELECT句ではレコード件数を尋ねているので、答えはウ。

 どうもありがとうございました。
------------------------------------------------------------------------
031209
■キーワード■ 副問合せ(SQL)

■解答■
  テクニカルエンジニア(データベース)午前平成14年問31

 イ 2

> "NOT EXISTS"というのは使ったことがなくわからなかったのですが、
> 言葉の意味からたぶん"NOT EXISTS"の後にあるSELECT文で取得される
> 製品番号以外の製品番号を"製品"表から取得すればよいと思い(ウ)を
> 選びました。
> その後、"NOT EXISTS"を検索してみると次のページにたどり着きました。
> http://www003.upp.so-net.ne.jp/kayo3/link/db/DB_07.htm

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

> WHERE句の副問合せの実行結果を表にすると以下の通り。
> ┌────┐
> │製品番号│
> ┝━━━━┥
> │ CC5001 │
> ├────┤
> │ ZZ9900 │
> ├────┤
> │ AB1805 │
> ├────┤
> │ CC5001 │
> └────┘
> 「NOT EXISTS」とあるので、
> "製品"表より上記の製品番号を除いた製品番号がSELECTされる。
> よって得られる表の行数は2。

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

> いろんなサイトにこの問題の解説が載っているのですが、
> どうしてイになるか、まだわからなかったりして・・・どーしよー(泣)

 アクセスの設計画面で,ビューのところで,SQLを直接入れることができ
ます。試すのが一番ですよ。

> 問題文のSQL文の"SELECT 製品番号 FORM 製品"の"FORM"は"FROM"だと
> 思うのですがどうでしょうか?

 ご指摘ありがとうございました。別メールでアマゾンギフトメールをお送りしま
す。
------------------------------------------------------------------------
031210
■キーワード■ 2層コミットプロトコル

■解答■
  テクニカルエンジニア(データベース)午前平成14年問32

 エ トランザクションは, 必要なロック獲得命令をすべて実行した後にだけ,
  ロック解除命令を実行できる。
------------------------------------------------------------------------
031211
■キーワード■ 待ちグラフ

■解答■
  テクニカルエンジニア(データベース)午前平成14年問33
  データベーススペシャリスト午前平成9年問10

 エ 待ちグラフ

> 待ちグラフによる方法(WFG:Wait For Graph)
> 
> 互いの資源にロック要求を出すトランザクション間で
> グラフに閉路が生じたときにデッドロックと判定。
> 処理は複雑になるけれど、直ちにデッドロックを検出できます。
> 集中型、分散型の両方のデータベースで利用されます。 
> 
> http://www.heppoko-online.com/it/dbms.html

 どうもありがとうございました。
------------------------------------------------------------------------
031212
■キーワード■ トランザクション処理

■解答■
  テクニカルエンジニア(データベース)午前平成14年問34

 エ トランザクション処理プログラムでデータベースの更新量が多い場合には,
  チェックポイントを設定してデータの回復に備えることがある。

> ア.排他制御の説明
>    → ×
> イ.データベースの物理的障害には、
>   ロールフォワード
>   ・・・ ジャーナルファイルの更新後情報を使用して回復処理
>    → ×
> ウ.データベースの論理的障害には、
>   ロールバック
>   ・・・ ジャーナルファイルの更新前情報を使用して回復処理
>    → ×
> エ.チェックポイント
>    → ○
> 
> よって答えは、エ

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

>  アでいうところのデータブロッキングとはロック処理のことでしょうか。

 ブロッキングは,ロック処理とは違います。

> ア × ブロッキングではなく排他制御
> イ × 更新前情報ではなく更新後情報
> ウ × 更新後情報ではなく更新前情報
> エ ○  

 どうもありがとうございました。
------------------------------------------------------------------------
031215
■キーワード■ コミット処理

■解答■
  テクニカルエンジニア(データベース)午前平成14年問35

 エ ログファイルへの書出し完了時点

> http://www.leo.to/vendor/oracle/note/dba/dba1.htm
> COMMIT処理を参考にしました。

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

> システム障害発生時には,デ  <半角コンマになっています。
> システム障害発生時には,デ <全角コンマですとこのような間隔に。

 ご指摘ありがとうございます。
 アマゾンギフトメールをお送りします。
------------------------------------------------------------------------
031216
■キーワード■ ログ先書出し方式

■解答■
  テクニカルエンジニア(データベース)午前平成14年問36

 エ 1 → 3 → 4 → 2 → 5 → 6

> ログ先書出し方式:コミットによる二次記憶上のデータベースへの書出しよりも
> 先にログ情報をログファイルに書き出す方式。
> (日経BP 3週間完全マスター テクニカルエンジニアデータベース P176)

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

> http://www-6.ibm.com/jp/software/data/developer/library/techdoc/logging.html
> 「DB2 Universal Database のトランザクション・ロギング概要」
> ・・・先書きロギングと呼ばれるデータベース・マネージャー側の
> インプリメンテーションです。トランザクションは、コミットしたか
> どうかに関係なく、発生すると同時にログに書き込まれます。
> バッファー・プールからデータベース構造へデータが書き込まれる前に、
> トランザクションはログ・バッファーからログ・ファイル (トランザ
> クション・ロギング) へと移動します。トランザクションの記録に
> 使用されるファイルをトランザクション・ログといいます。

 どうもありがとうございました。
------------------------------------------------------------------------
031217
■キーワード■ 2相コミット

■解答■
  テクニカルエンジニア(データベース)午前平成14年問37

 イ 2 相コミットを行うためには,同時に更新しようとする分散データベース
  のすべてがコミット可能かどうかを判断するための機能が必要である。

>  2相コミット
> 複数資源にまたがるトランザクションの同期点処理を、
> 資源の更新準備処理と資源の更新処理の二段階に
> 分けることにより、複数資源間の一貫性を保証するための方式です。
> http://www.hitachi.co.jp/Prod/comp/soft1/VOS3dbs/DBS8000.htm#S_2PHASECOMMIT

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

> 2相コミット:
> http://www.nona.dti.ne.jp/~samma/sotsuron/sld014.htm
> を参考にしました。

 どうもありがとうございました。
------------------------------------------------------------------------
031218
■キーワード■ ACID,独立性(isolation)

■解答■
  テクニカルエンジニア(データベース)午前平成14年問38

 ウ 中間結果は,ほかのトランザクションの処理内容に何の影響も与えない。

> isolation(分離性)
>  複数のトランザクションが同時にデータベースをアクセスしても、相互に干渉
> せず、順序つけて実行した場合の結果と一致するという性質。
> 「この一冊で無駄なく覚える試験に出る!用語辞典」P95を参照しました。

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

> A Atomicity (原子性)
>     すべてが完全に実行されるか、処理が完結しない場合には元の状態に戻る
> C Consistency (一貫性)
>     処理の順番に関わらず結果が同じになる
> I Isolation (独立性)
>     他のトランザクションの影響を受けない
> D Durability (耐久性)
>     いったんトランザクションが完結したら障害が発生してもデータの状態が変化
> しない
> http://www4.airnet.ne.jp/munakata/acid.html

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

>  ア 原子性・最小性(Atomicity)
>  イ 永続性(Durablity)
> ○ウ 独立性・隔離性(Isolation)
>  エ 一貫性(Consistency)
> http://www.sw.nec.co.jp/middle/WebOTX_S/term1.html
> 
> Isolation(隔離性):トランザクションのACID特性の一つです。
> 並列して実行される他のトランザクションによって影響を受けません。

 どうもありがとうございました。
------------------------------------------------------------------------
031219
■キーワード■ トランザクション管理,同時実行制御,ロック粒度

■解答■
  テクニカルエンジニア(データベース)午前平成14年問39
  データベーススペシャリスト午前平成9年問26

 ウ 同時実行制御の目的は,データベースの一貫性を保ちながら複数のトラン
  ザクションを並行に処理し,単位時間当たりに実行されるトランザクション
  数を最大にすることである。

> ×ア 2相ロック方式は集中型のデータベースでも使用される。
> 
> ×イ ダーティリードを許すと,トランザクション処理のスループットは
>   高くなるが,整合性は。
> 
> ○ウ 同時実行制御しなければ,データベースの一貫性を保つにはトランザク
>   ションを同時実行できなくなるため,待ち時間が増大する。
> 
> ×エ ロックの粒度は,ロックする資源の範囲。(データ単位・表単位など)

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

> ダーティリード:dirty read
> http://www.techscore.com/tech/sql/11_03.html
> 他のトランザクションがデータの変更を取り消したにも関わらず、取り消し前に
> そのデータを読み出してしまうこと。

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

> ダーティ・リードの説明があるページ
> http://www.microsoft.com/japan/msdn/sqlserver/columns/webtech/webtech3.asp
> 
> 「データベースに対する読み書きを行うトランザクションが、同時に複数個動い
> た場合に、その処理を矛盾無く実行するためのメカニズムが同時実行制御
> (concurrency control)である。同時実行制御は、ロック制御、時刻印制御、楽
> 観的制御の三つに大きく分類できる。その中でも一番実用的に使用されるのがロッ
> ク制御である。」
> ITEC ネットワークとデータベース p.177より。

 どうもありがとうございました。
------------------------------------------------------------------------
031222
■キーワード■ 直列可能性

■解答■
  テクニカルエンジニア(データベース)午前平成14年問40

 エ 直列可能性
------------------------------------------------------------------------
031224
■キーワード■ インデックス

■解答■
  テクニカルエンジニア(データベース)午前平成14年問41
  データベーススペシャリスト午前平成12年問38

 エ D

> インデックスは、レコード数の多い表、および取り得る値の種類が多い列に設定
> すると効果的である。
> (日経BP 3週間完全マスターテクニカルエンジニアデータベース P307を参考)
> と書いてあったのですが、問題の表はすべて同じレコード数ですね…?

 どうもありがとうございました。
 問題の場合は,率を問題にしているので,全体のレコード数は考慮する必要が
ありません。
------------------------------------------------------------------------
031225
■キーワード■ クラスタリング

■解答■
  テクニカルエンジニア(データベース)午前平成14年問42

 ウ クラスタリングとは,磁気ディスクのアクセス効率向上を目的としたデー
  タ格納手法である。

> ア:リンクリストではなくTreeリストまたはハッシュインデックスを用いる。
> イ:表領域に格納される。
> ウ:正しい。
> エ:LRUが使用される。

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

> 記憶管理:
> データベースを物理的(HD上)に構成,通常はOSが提供するファイル機能を使
> 用する。重要なデータのHD上の位置を示す表を作成する(インデックス作成)。
> http://www.ulis.ac.jp/~z106/database/sec6.ppt
> 
> クラスタリング:
> 複数のコンピュータを相互に接続し,ユーザや他のコンピュータに対して全体
> で1台のコンピュータであるかのように振舞わせる技術。
> http://e-words.jp/

 どうもありがとうございました。
------------------------------------------------------------------------
031226
■キーワード■

■解答■
  テクニカルエンジニア(データベース)午前平成14年問43
  データベーススペシャリスト午前平成11年問42

 ウ N^2

> 「結合操作を入れる」の後ろに「。」などが入るのでしょうか?

 原本がないので,確認できませんが,たぶん「。」は入らないと思います。