| テクニカルエンジニア データベース 平成13年度 午後�機〔簑� |
|
|
 |
データベースの基礎論理に関する次の記述を読んで,設問1〜3に答えよ。
分譲マンションの販売を管理するためにデータベースを関係スキーマで表した。採り上げた関係スキーマを図1に示す。それらの主要な属性の意味と制約は表のとおりである。属性間の関数従属性は図2(一部未完成)に示すとおりである。関数従属性の記法は,図3に従った。
物件,棟,売り出し単位,予約及び制約の単位は,次のとおりとする。
・物件は,一つ又は複数の棟から成る。
・棟は,複数の住居から成る。
・"販売第1期44戸"というような,売り出し単位は棟単位とする。
・予約及び成約の単位は,住居単位とする。
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 棟 (物件番号,物件名称,棟番号,所在地,戸数) ┃
┃住居 (物件番号,棟番号,住居番号,間取り,広さ,タイプ,階,価格) ┃
┃予約 (物件番号,棟番号,予約番号,第1希望,第2希望,登録日,抽選日) ┃
┃成約 (成約番号,顧客番号,物件番号,棟番号,住居番号,氏名,住所,年収, ┃
┃ 家族構成,制約日,頭金) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
図1 マンション販売の関係スキーマ
表 主要な属性及びその意味と制約
┌────┬─────────────────────────────────────┐
│ 属性 │ 意味と制約 │
├────┼─────────────────────────────────────┤
│物件番号│物件を一意に識別する番号 │
├────┼─────────────────────────────────────┤
│棟番号 │物件の中の何号棟かを示す番号 │
├────┼─────────────────────────────────────┤
│住居番号│棟の中で一意になるように振られた各住居(部屋)の番号 │
├────┼─────────────────────────────────────┤
│予約番号│売り出し単位で一意になる用に振られた予約登録の番号。同じ顧客に,同じ物件の│
│ │同じ棟の予約番号を複数発行することはない │
├────┼─────────────────────────────────────┤
│顧客番号│登録された顧客を一意に識別する番号 │
├────┼─────────────────────────────────────┤
│第1希望 │予約登録を行なうときに指定する第1希望の住居番号。予約時に記載が必須である │
├────┼─────────────────────────────────────┤
│第2希望 │予約登録を行なうときに指定する第2希望の住居番号。第2希望がなければ,記載は│
│ │不要である │
├────┼─────────────────────────────────────┤
│成約番号│購入成約がなされたときに発行される一意な番号 │
└────┴─────────────────────────────────────┘
┌───┐ ┌───┐ ┌────┐
│抽選日│ │登録日│ │物件名称│
└───┘ └───┘ └────┘
↑ ↑ ↑
│┌─────┴┐ │
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥:
: ││┌────┐│ │ ┌────┐ :
: │││予約番号││ │ │第1希望│ :
: ││└────┘│ │ └────┘ :
┌─:-┼┼──────┼─┐ │ : ┌──┐
│┌:-┴┼──────┼┐│ │ :┌→│氏名│
││: ┌┼──────┼┼┼────┼───────────────┐:│ └──┘
││: ││┌────┐│││ │ │:│ ┌──┐
││: │││物件番号├┼┼┼────┘ │:├→│住所│
││: ││└────┘│││ ┌────┐ │:│ └──┘
││: ││┌────┐│││ │顧客番号├─┼:┤ ┌──┐
││: │││ 棟番号 ││││ └────┘ │:├→│年収│
││: ││└────┘│││ ↑ │:│ └──┘
││: └┼──────┼┼┼───────────────┼────┘:│ ┌────┐
││: │ │││ ┌───┐ │ :└→│家族構成│
││: │ │├┼→│所在地│ ┌────┐ │ : └────┘
││: │ │││ └───┘ │第2希望│ │ :
││: │ │││ ┌──┐ └────┘ │ :
││: │ │├┼→│戸数│ │ :
││: └──────┘││ └──┘ │ :
││‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ ┌───┐
│└──────────┘│ ┌─┴──┐ ┌→│成約日│
│ ┌────┐ │←────────────┤成約番号├──┤ └───┘
│ │住居番号│ │ ┌──┐ └────┘ │ ┌──┐
│ └────┘ ├→│広さ│ └→│頭金│
└─┬───┬───┬──┘ └──┘ └──┘
↓ ↓ ↓
┌──┐ ┌─┐┌───┐ ┌───┐
│価格│ │階││タイプ│─→│間取り│
└──┘ └─┘└───┘ └───┘
図2 マンション販売の関数従属(破線枠内は,未完成)
┌──┬─────────┬───────────┬───────────┐
│ │ │┌────┐ │┌────┐ │
│ │ ││┌──┐│ ││┌──┐│ │
│ │ │││ A ││ ┌──┐│││ A ││ ┌──┐│
│ │┌──┐ ┌──┐││└──┘├→│ C │││└──┘│←┤ C ││
│凡例││ A │→│ B │││┌──┐│ └──┘││┌──┐│ └──┘│
│ │└──┘ └──┘│││ B ││ │││ B ││ │
│ │ ││└──┘│ ││└──┘│ │
│ │ │└────┘ │└────┘ │
├──┼─────────┼───────────┼───────────┤
│ │ │ │ C→{A,B} │
│ │ A → B │ {A,B}→C │ C→ A │
│ │ │ │ C→ B │
└──┴─────────┴───────────┴───────────┘
図3 関数従属性の記法
設問1
関係"棟"について,次の問いに答えよ
(1)関係"棟"で,どの候補キーにも属さない属性(非キー属性)をすべて挙げよ。
(2)関係"棟"は,第何正規形か。もっとも適切な正規名を答えよ。また,その根拠を具体的に60字以内で述べよ。
設問2
関係"成約"について,次の問いに答えよ
(1)関係"成約"の候補キーをすべて挙げよ。属性Aと属性Bの連結キーは,{A,B}のように記述すること。
(2)関係"成約"で,推移的関数従属の例を一つ挙げよ。
(3)関係"成約"は,顧客情報の処理に関して不都合が生じる。どのような不都合かを具体的に40字以内で述べよ。
(4)関係"成約"を第3正規形に分割した関係を図1のように関係スキーマの形式で記述せよ。
設問3
関係"予約"について,次の問いに答えよ。
図2の破線枠内に,関係"予約"に関連した関数従属性を付加して,関数従属性の図を完成させよ。
|
| 解答 |
|
|
|
 |
データベース設計に関する次の記述を読んで,設問1〜3に答えよ。
E量販店は,専用クレジットカードの管理システムを再構築することになり,F君がデータベース設計を任された。F君は,E量販店でのクレジットカード関連に業務内容を基に,データベースのテーブル構造を設計し,上司のG氏に提示した。
(1) 利用控えの作成
・クレジットカード利用時間時の利用控えは,図1に示すとおりである。
・各店には,全店で一意な店コードを付与する。
・利用番号は,利用店内で日ごとに一意な値である。
・品目コードは販売する品目を一意に識別するコードである。
品目コードの単価は,売行きに応じて日ごとに見直される。
・品目ごとにポイント区分(通常販売,バーゲン品,除外品)を定め,
利用額に所定のポイント率を乗じたポイントを会員に与える。
通常販売のポイント率は,各会員にあたえた基本ポイント率である。
この基本ポイント率は,前回の積立期間の年間利用累計額が20万円
未満,50万円未満,100万円未満,100万円以上の4段階で定められる。
また,バーゲン品は品目固定の低いポイント率であり,除外品は
ポイント対象外である。
・クレジットカード利用時に,銀行口座から引き落とされていない利用
控えの請求累計額と今回利用しようとする請求額の合計が,利用限度
額を超えていないことを確認する。
この合計が利用限度額を超えた場合は,利用不可とする
(2) 利用明細書の作成
・会員へ通知する利用明細書は,図2に示すとおりである。
・集計期間は,毎月1日〜末日の1ヶ月である。
・1回のクレジットカード利用ごと(利用控えごと)に同一品目コード
の数量,利用額,消費税額,ポイント数を集計し,利用明細として
管理する。
・利用控えの内容に加えて,当月請求額,当月獲得ポイント数,保有
ポイント数を,年間利用累計額を集計する。
・利用者欄は,会員本人利用時に0 ,家族会員利用時に1〜4の数字を
表示する。
・引落日は,毎月20日とし,当日が銀行休業日の場合には,翌営業日と
する。残高不足によって,銀行口座から引き落とし処理が出来なかっ
た場合,利用明細書では通知せず,別に督促状を送付する。
|
┏━━━━━━━━━━━━━━┓
┃ ご利用控え ┃
┃  ̄ ̄ ̄ ̄ ̄ ┃
┃2000-06-06 横浜店(123) ┃
┃利用番号 1234111 ┃
┃会員番号 1111-2222-3333-4444┃
┃ 品目コード 11335577 ┃
┃ 品目名 Yシャツ#557 ┃
┃ 単価 \2,500 ┃
┃ 数量 1 ┃
┃ 利用額 \2,500 ┃
┃ ┃
┃ 品目コード 11223344 ┃
┃ 品目名 パンツ#123 ┃
┃ 単価 \5,000 ┃
┃ 数量 1 ┃
┃ 利用額 \5,000 ┃
┃ ┃
┃ 品目コード 11335577 ┃
┃ 品目名 Yシャツ#557 ┃
┃ 単価 \2,500 ┃
┃ 数量 3 ┃
┃ 利用額 \7,500 ┃
┃──────────────┃
┃ 利用額合計 \15,000 ┃
┃ 消費税 \750 ┃
┃ 請求額 \15,750 ┃
┃ 獲得ポイント 650 ┃
┗━━━━━━━━━━━━━━┛
|
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ご利用明細書 ┃
┃  ̄ ̄ ̄ ̄ ̄ ̄ ┃
┃住所 神奈川県横浜市中央区中央1−2−3 会員番号 1111-2222-3333-0006┃
┃氏名 横浜太郎 様 ┃
┃ 利用限度額 50 万円 当月請求額 144,900 円 ┃
┃引落口座 あいうえお銀行横浜支店普通 1234567 引落日 2000 年 7 月 20 日 ┃
┃───────────────────────────────────────────┃
┃利用年月日 利用番号 利用者 利用店 品目名 数量 利用額 消費税 ポイント率 ポイント数 ┃
┃2000-06-06 1234111 2 横浜 パンツ#123 1 5.000 250 7 350 ┃
┃2000-06-06 1234111 2 横浜 Yシャツ#557 4 10.000 500 3 300 ┃
┃2000-06-06 1235222 2 横浜 婦人バッグ 1 3.000 150 3 90 ┃
┃2000-06-10 1245666 0 横浜 紳士スーツ 1 25.000 1,250 7 1,750 ┃
┃2000-06-10 1245666 0 横浜 紳士ズボン 1 9.000 450 除外品 0 ┃
┃ : ┃
┃ : ┃
┃───────────────────────────────────────────┃
┃前月繰越しポイント数 25,632 基本ポイント率 7% ┃
┃今月獲得ポイント数 6,250 積立期間 2000 年 4 月 1 日 〜 2001 年 3 月 31 日 ┃
┃保有ポイント数 31,882 年間利用累計額 654,320円 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
図2 利用明細
(3) 会員の登録
・新会員の登録は,図3の画面で行なう。
・会員の家族会員は,最大4名まで登録可能とし,会員とは別のクレジットカードを発行する。
このクレジットカード時の請求は会員に合算する。
・会員本人及び家族の会員番号(クレジットカード番号)は,会員本人及び家族全体で一意な番号を付与する。
・家族会員を含めた会員の利用限度額を設定する。
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 会員登録 ┃
┃  ̄ ̄ ̄ ̄ ̄ ┃
┃会員番号:[1111]-[2222]-[4444]-[0002] ┃
┃会員氏名:[川崎次郎 ] フリガナ:[カワサキジロウ ] ┃
┃郵便番号:[2130000] ┃
┃会員住所:[神奈川県川崎市高津区高津1−2−3 ] ┃
┃生年月日:[1945]年[01]月[01]日 ┃
┃電話番号:[044-123-4567 ] ┃
┃引落口座:[あいうえお銀行高津支店普通 2345678 ] ┃
┃利用限度額:[ 50]万円 ┃
┃登録年月:[2000]年[ 8]月 ┃
┃家族会員 ┃
┃ 続柄 ┃
┃ 氏名 フリガ コード 続柄 生年月日 会員番号 ┃
┃1[川崎花子][カワサキハナコ][02] 妻 [1950]年[02]月[02]日 [1111]-[2222]-[4444]-[0011]┃
┃2[川崎智子][カワサキトモコ][21] 長女 [1975]年[03]月[03]日 [1111]-[2222]-[4444]-[0020]┃
┃3[ ][ ][ ] [ ]年[ ]月[ ]日 [ ]-[ ]-[ ]-[ ]┃
┃4[ ][ ][ ] [ ]年[ ]月[ ]日 [ ]-[ ]-[ ]-[ ]┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
図3 新会員の登録画面
会員
┌────┬────┬────┬────┬──────┬────┬────┐
│会員番号│会員氏名│フリガナ│郵便番号│ 会員住所 │生年月日│電話番号│
└────┴────┴────┴────┴──────┴────┴────┘
┌─────┬─────┬───┬───┬───────┬──────┐
│ 引落口座 │利用限度額│登録年│登録月│基本ポイント率│ 家族会員数 │
└─────┴─────┴───┴───┴───────┴──────┘
┌─────┬───────┬──────┬─────┬───────┐
│家族氏名1 │家族フリガナ1 │続柄コード1 │生年月日1 │家族会員番号1 │
└─────┴───────┴──────┴─────┴───────┘
┌─────┬───────┬──────┬─────┬───────┐
│家族氏名2 │家族フリガナ2 │続柄コード2 │生年月日2 │家族会員番号2 │
└─────┴───────┴──────┴─────┴───────┘
┌─────┬───────┬──────┬─────┬───────┐
│家族氏名3 │家族フリガナ3 │続柄コード3 │生年月日3 │家族会員番号3 │
└─────┴───────┴──────┴─────┴───────┘
┌─────┬───────┬──────┬─────┬───────┐
│家族氏名4 │家族フリガナ4 │続柄コード4 │生年月日4 │家族会員番号4 │
└─────┴───────┴──────┴─────┴───────┘
続柄
┌─────┬─────┐
│続柄コード│ 続柄名 │
└─────┴─────┘
店
┌─────┬─────┐
│ 店コード │ 店名 │
└─────┴─────┘
品目
┌─────┬───┬──┬─────┬────┬──────┬─────────┐
│品目コード│品目名│単価│内外税区分│消費税率│ポイント区分│バーゲンポイント率│
└─────┴───┴──┴─────┴────┴──────┴─────────┘
利用明細
┌─────┬────┬────┬──────┬─────┬──┬───┐
│利用年月日│店コード│利用番号│利用会員番号│品目コード│数量│利用額│
└─────┴────┴────┴──────┴─────┴──┴───┘
┌────┬─────┬─────┬────┐
│消費税額│ポイント率│ポイント数│請求年月│
└────┴─────┴─────┴────┘
利用請求
┌────┬────┬─────┬─────────┬─────┐
│会員番号│請求年月│当月請求額│当月獲得ポイント数│引落済表示│
└────┴────┴─────┴─────────┴─────┘
図4 テーブル構造
F君は,業務内容に基づきテーブル構造を図4のように設計した。このテーブル構造を見たG氏は,幾つかの問題点を指摘した。
問題点【1】 主キー,外部キーが明示されていない。
問題点【2】 利用明細書の作成時,会員ごとの利用明細の集計をSQL文だけで行なうと,SQL文が複雑になる
問題点【3】 会員の家族会員数に拡張性がない。
問題点【4】 クレジットカード利用時,銀行口座から引き落とされていない利用控えの請求額の累計と今回利用とする
請求額の合計が利用限度額を超えていないことを確認する処理時間が長くなる。
設問1
G氏が指摘した問題【1】〜【3】について,次の問いに答えよ。
(1)図4の"会員","利用明細"及び,"利用請求"テーブルの主キー,外部キーを表記ルールに従って示せ。
(2)問題点【2】【3】を解決するため,"会員"テーブルを複数テーブルに分割することにした。これらのテーブル構造を表記ルールに従って示せ。なお,外部キーが参照する先のテーブルの表記は不要である。
設問2
G氏が指摘した問題点【4】について,次の問いに答えよ。
(1)問題点【4】を解決するため,図4のあるテーブルに列を追加することにした。該当するテーブル名と追加する列名を答えよ。なお,列名は,格納するデータの意味を表す名称とすること。
(2)追加した列への値の設定方法を,40字以内で述べよ。
設問3
販売促進のため,同時に特定品目を組み合わせて購入した場合,所定のサービスポイントを加算するサービスを追加することになった。例えば,品目Aと品目Bを同時に購入した場合,サービスポイント100点を加算する。
このサービスを実現するためにあたってのシステム要件は,次のとおりである。
【1】 2種類以上の品目の組み合わせを設定できること。その際,同一品目を複数の組み合わせに設定できること。
【2】 品目の組み合わせは,日単位で設定できること。
この特定品目の組み合わせを管理するテーブル構造(テーブル名,列名,主キー)を表記ルールに従って示せ。
なお,列名は,格納するデータの意味を表す名称とすること。
|
| 解答 |
|
|
|
 |
SQLに関する次の記述を読んで,設問1〜3に答えよ。
エンジニアリング会社のS社では,技術文献検索システムを構築している。この技術文献検索システムの構築について説明する。
〔データベース〕
技術文献検索システムで実装された主なテーブル構造は図1のとおりである。
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 文献索引(キーワード,文献番号) ┃
┃  ̄ ̄ ̄ ̄ ̄ ┃
┃ 文献情報(文献番号,タイトル,著者,作成年月,文献要約) ┃
┃  ̄ ̄ ̄ ̄ ┃
┃ 検索ログ(ユーザID,年月日時分,検索ワード) ┃
┃  ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ┃
┃ 一時保存(ユーザID,文献番号,タイトル,著者,作成年月) ┃
┃  ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
図1 技術文献検索システムの主なテーブル構造
〔技術文献検索処理〕
利用者が,検索の条件を指定して,目的の技術文献を探し出すための処理である。画面遷移と処理の関係は図2に示すとおりである。
/ ̄ ̄ ̄\
/ 検索条件│
\ 入力画面│ ←──┐
\___/ │
↓ 該当データなし
┌─────┐ │
│ 検索条件 ├───┘
└──┬──┘
該当データあり
┌───該当データあり──────────→↓
│ / ̄ ̄ ̄\ / ̄ ̄ ̄ ̄ ̄\ / ̄ ̄ ̄\
│ / 検索条件│ 絞込 / 検索結果 │詳細表示 / 文献情報│
│ ┌─→\ 入力画面│←─── \ 一覧表示画面│───→ \ 表示画面│
│ │ \___/ \_____/ \___/
│ 該当データなし↓
│ │ ┌─────┐
│ └──┤ 検索条件 │
│ └──┬──┘
└─────────┘
図2 技術文献検索処理における画面遷移と処理の関係
(1)検索条件入力画面
利用者が,技術文献を検索するための条件を指定する画面である。指定できる条件は,表のとおりである。
条件のほかに,利用者を一意に識別する"ユーザID"の入力も行なう。
表 検索条件項目
┌─────────┬─────┬───────────────────────────┐
│入力項目 │必須/任意 │ 検索内容 │
├─────────┼─────┼───────────────────────────┤
│著者 │任意 │"著者"を完全一致で検索する。 │
├─────────┼─────┼───────────────────────────┤
│作成年月(FROM TO) │任意 │"作成年月"を範囲検索する。 │
├─────────┼─────┼───────────────────────────┤
│検索ワード │必須位 │"キーワード"を完全一致で検索する。又は,"文献要約"を │
│ │ │文字列検索する。検索ワードは一つしか指定できない。 │
└─────────┴─────┴───────────────────────────┘
(2)検索処理
【1】 "一時保存"テーブルから該当ユーザIDを持つ行をすべて削除する。画面で指定された検索ワードを"検索ログ"
テーブルに書き出す。
【2】 画面で指定された検索条件から,"文献情報"テーブル及び"文献索引テーブルを検索するための一つのSQL文を
生成し,実行する。,生成されるSQL文は,画面から指定された検索ワードが"キーワード"に完全一致するもの
である。
検索された結果は,"一時保存"テーブルに保存される。
【3】 【2】の処理において,該当データが存在しない場合,画面から指定された検索ワードで"文献要約"を文字列
検索するSQL文を生成し,実行する。検索された結果は,"一時保存"テーブルに保存される。
(3)検索結果一覧表示画面/文献情報表示画面/絞込条件入力画面"一時保存"テーブル中の該当ユーザIDをデータを
検索結果一覧画面に一覧表示する。一覧表示されたデータの中から1件の文献番号が選択され,詳細表示要求があ
った場合は,文献情報表示画面に遷移し,"文献情報"テーブルを参照して文献要約を表示する。絞込み要求があっ
た場合は,絞込入力画面に遷移し,絞込検索処理を実行する。絞込条件入力画面で指定できる条件は,検索ワード
だけである。
(4)絞込検索処理
【1】 画面で指定された検索ワードを"検索ログ"テーブルに書き出す。
【2】 "一時保存"テーブルに保存された該当ユーザIDをもつ行に含まれる"文献番号"に該当する"文献情報"テーブルの
"文献要約"を画面から指定された検索ワードの文字列で文字列検索するSQL文を生成し,実行する。検索の結果,
該当データが存在した場合,"一時保存"テーブルの該当ユーザIDをもつ行をすべて削除し,検索されたデータを
追加する。該当データが存在しなかった場合,"一時保存"テーブルの削除,追加は実行しない。
〔技術文献検索効率化のための対処〕
"検索ログ"テーブルに蓄積されたデータを利用して,検索要求の多い検索ワードを"文献索引"テーブルへ追加するキーワード追加処理と検索要求のないデータを"文献検索"テーブルから削除するキーワード削除処理を定期的に実行する。それぞれの処理フローを図3と図4に示す。
(1)キーワード追加処理
【1】 検索ワード集計処理
検索ワード別の検索回数を集計して,検索数の多いものから並べ,検索ワード集計ファイルに書き出す。
【2】 キーワード追加処理
検索ワード集計ファイルを先頭から100レコード読み込む。読み込んだレコードの検索ワードで,"文献情報"
テーブルの"文献要約"の文字列検索し,ヒットした"文献番号"と検索ワードで"文献索引"テーブルへ追加を行
なう。
(2)キーワード削除処理
【1】 未使用キーワード検索処理
文献索引"テーブルに存在し,"検索ログ"テーブルに存在しない"キーワード"を検索し,未使用キーワード
ファイルに書き出す。
【2】 未使用キーワード削除処理
未使用キーワードファイルを読み込み,"文献索引"テーブルから該当するデータを削除する。
_____ _____
( 開_始 ) ( 開_始 )
 ̄ ̄│ ̄ ̄ / ̄ ̄ ̄ ̄ ̄/  ̄ ̄│ ̄ ̄
/ ̄ ̄ ̄ ̄ ̄/
│ │"検索ログ"│ │ │"検索ログ"│
│ │ テーブル │ │ │
テーブル │
│ \_____\ │
\_____\
│┌─────┘ │┌─────┘
↓↓ ↓↓
┌───────┐ ┌───────┐
/ ̄ ̄ ̄ ̄ ̄/
│ 検索ワード │ │ 未使用キー │ │"文献索引"│
│ 集計処理 │ │ワード検索処理│←│
テーブル │
└───┬───┘ └───┬───┘
\_____\
↓ ↓
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/ / ̄ ̄ ̄ ̄ ̄ ̄ ̄/
│検索ワード集計│ │ 未使用キー │
│ ファイル │ │ワードファイル│
\_______\ \_______\
│ │
↓ ↓
┌───────┐ / ̄ ̄ ̄ ̄ ̄/ ┌───────┐
│ キーワード │ │"文献情報"│ │ 未使用キー │
│ 追加処理 │←│ テーブル │ │ワード削除処理│
└───┬┬──┘ \_____\ └───┬┬──┘
││ ││
│└───────┐ │└───────┐
│ ↓ │ ↓
│ / ̄ ̄ ̄ ̄ ̄/ │
/ ̄ ̄ ̄ ̄ ̄/
│ │"文献索引"│ │ │"文献索引"│
│ │ テーブル │ │ │
テーブル │
│ \_____\ │
\_____\
__│__ __│__
( 終 ̄了 ) ( 終 ̄了 )
 ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄
図3 キーワード追加処理フロー 図3 キーワード削除処理フロー
設問1
技術文献検索 処理関する次の問いに答えよ。
(1)検索条件画面において,著者田中一郎,検索ワード生産管理が指定されていた場合に,検索処理で最初に生成されるSQL文を完成させよ。
SELECT 文献番号,著者,作成年月,タイトル,文献要約
FROM 文献情報
WHERE 著者 = ’田中一郎’ AND
文献番号 IN ( ┌───────────────┐
│ │
│ │
└───────────────┘)
ORDER BY 文献番号
(2)(1)で該当データが存在しない場合,検索処理で次に生成されるSQL文を完成させよ。
SELECT 文献番号,著者,作成年月,タイトル,文献要約
FROM 文献情報
WHERE 著者 = ’田中一郎’ AND
┌───────────────┐
│ │
└───────────────┘
ORDER BY 文献番号
設問2
次のSQL文は,キーワード追加処理検索ワード集計処理において,"検索ワード"別の検索回数を集計するためのものである。このSQL文を実行したところ,文法エラーになってしまった。エラーになった理由を60字以内で述べよ。また,エラーをなくすために,SQL文をどのように修正すればよいか,50字以内で述べよ。
SELECT 検索ワード,COUNT(*)
FROM 検索ログ
GROUP BY 検索ワード
ORDER BY COUNT(*) DESC
設問3
キーワード削除処理の未使用キーワード検索処理において,"文献索引"テーブルに存在し,"検索ログ"テーブルに存在しない,"キーワード"を検索するための次のSQL文を完成させよ。
┌───────────────┐
SELECT │ │ キーワード
└───────────────┘
FROM 文献索引
WHERE NOT EXISTS (┌───────────────┐
│ │
│ │
└───────────────┘)
|
| 解答 |
|
|
|
 |
分散データベースの管理に関する次の記述を読んで,設問1〜3に答えよ。
A社のシステムは,図1に示すとおり販売管理システムと在庫管理システムで構成され,それぞれはトランザクション管理サーバ(TRM)とデータベース管理サーバ(DBM)で構成されている。各TRMは,LANを経由して両方のDBMに直接データベースの処理要求を出す。販売管理システムでは,顧客と受注のデータを管理しており,在庫管理システムでは,在庫のデータを管理している。
LAN
┠─┯──────────┯──────┯─────────┯──────┯────┨
│ ‥‥‥‥│‥‥‥‥‥‥│‥‥‥‥ ‥‥‥‥│‥‥‥‥‥‥│‥‥‥‥
┌─┴─┐ : ┌──┴──┐┌──┴──┐ : : ┌──┴──┐┌──┴──┐ :
│端末A ├┐ : │ 販売管理 ││ 販売管理 │ : : │ 在庫管理 ││ 在庫管理 │ :
└┬──┘├┐ : │ TRM ││ DBM │ : : │ TRM ││ DBM │ :
└┬──┘│ : └─────┘└─┬┬──┘ : : └─────┘└──┬──┘ :
└───┘ : ┌────┘│ : : │ :
: / ̄ ̄ ̄/ / ̄ ̄ ̄/ : : / ̄ ̄ ̄/ :
: │ 顧客 │ │ 受注 │ : : │ 在庫 │ :
: \___\ \___\ : : \___\ :
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥
販売管理のトランザクションが,既存の顧客のに対して正常に実行された場合のフローを図2に示す。販売管理TRM,販売管理DBM及び在庫管理TRM,在庫管理DBMでのトランザクションの流れは次のとおりである。
(1) 販売管理のトランザクション開始(図2【1】)
(2) 顧客の確認処理:販売管理TRMから,販売管理DBMにトランザクション開始(同【2】,【3】),顧客データの検索処理
を依頼する(同【4】,【5】)。
(3) 在庫の引当て:販売管理TRMから在庫管理DBMに,トランザクション開始処理(同【6】,【7】),在庫の検索と引当て
(更新)を依頼する(同【8】,【11】)。
(4) 受注の登録:販売管理TRMから,販売管理DBMに受注データの登録(追加)を依頼する(同【12】,【13】)。
(5) トランザクションのコミット処理(同【14】,【20】)。
図2は2相コミットメント制御を用いていない場合であり,図3は同じ処理フローで2相コミットメント制御を用いる場合である。
販売管理 DBM 販売管理 TRM 在庫管理
DBM
┏━━━━━━━━━━━━━━┓┏━━━━━━━━━━━━━━━━┓┏━━━━━━━━━━━━━━┓
┃ ┃┃【1】 トランザクション開始 ┃┃ ┃
┃ ┃┃ (販売管理TRM) ┃┃ ┃
┃ ┃┃ │ ┃┃ ┃
┃ ┃┃【2】 トランザクション開始依頼 ┃┃ ┃
┃ ┃┃ (販売管理DBM) ┃┃ ┃
┃ ┌──────╂╂────────┘ ┃┃ ┃
┃【3】 トランザクション開始 ┃┃ ┃┃ ┃
┃ └──────╂╂────────┐ ┃┃ ┃
┃ ┃┃【4】 顧客データの検索依頼 ┃┃ ┃
┃ ┌──────╂╂────────┘ ┃┃ ┃
┃【5】 検索処理 ┃┃ ┃┃ ┃
┃ └──────╂╂────────┐ ┃┃ ┃
┃ ┃┃【6】 トランザクション開始依頼 ┃┃ ┃
┃ ┃┃ (在庫管理DBM) ┃┃ ┃
┃ ┃┃ └───────╂╂──────┐ ┃
┃ ┃┃ ┃┃【7】 トランザクション開始 ┃
┃ ┃┃ ┌───────╂╂──────┘ ┃
┃ ┃┃【8】 在庫データ検索依頼 ┃┃ ┃
┃ ┃┃ └──────╂╂───────┐ ┃
┃ ┃┃ ┃┃【9】 検索処理 ┃
┃ ┃┃ ┌───────╂╂──────┘ ┃
┃ ┃┃【10】在庫データ更新依頼 ┃┃ ┃
┃ ┃┃ └───────╂╂──────┐ ┃
┃ ┃┃ ┃┃【11】 更新処理 ┃
┃ ┃┃ ┌───────╂╂──────┘ ┃
┃ ┃┃【12】受注データ追加依頼 ┃┃ ┃
┃ ┌──────╂╂────────┘ ┃┃ ┃
┃【13】 追加処理 ┃┃ ┃┃ ┃
┃ └──────╂╂────────┐ ┃┃ ┃
┃ ┃┃ │ ┃┃ ┃
┃ ┃┃【14】コミット実行依頼 ┃┃ ┃
┃ ┃┃ (販売管理DBM) ┃┃ ┃
┃ ┌──────╂╂────────┘ ┃┃ ┃
┃【15】コミット実行処理 ┃┃ ┃┃ ┃
┃ │ ┃┃ ┃┃ ┃
┃【16】コミット実行完了 ┃┃ ┃┃ ┃
┃ └──────╂╂────────┐ ┃┃ ┃
┃ ┃┃【17】コミット実行依頼 ┃┃ ┃
┃ ┃┃ (在庫管理DBM) ┃┃ ┃
┃ ┃┃ └───────╂╂──────┐ ┃
┃ ┃┃ ┃┃【18】コミット実行処理 ┃
┃ ┃┃ ┃┃ │ ┃
┃ ┃┃ ┃┃【19】コミット実行完了 ┃
┃ ┃┃ ┌───────╂╂──────┘ ┃
┃ ┃┃【20】トランザクション終了 ┃┃ ┃
┃ ┃┃ (販売管理TRM) ┃┃ ┃
┗━━━━━━━━━━━━━━┛┗━━━━━━━━━━━━━━━━┛┗━━━━━━━━━━━━━━┛
図2 販売管理トランザクション処理フロー(2相コミットメント制御なし)
販売管理 DBM 販売管理 TRM 在庫管理
DBM
┏━━━━━━━━━━━━━━┓┏━━━━━━━━━━━━━━━━┓┏━━━━━━━━━━━━━━┓
┃ ┃┃【1】 トランザクション開始 ┃┃ ┃
┃ ┃┃ (販売管理TRM) ┃┃ ┃
┃ ┃┃ │ ┃┃ ┃
┃ ┃┃【2】 トランザクション開始依頼 ┃┃ ┃
┃ ┃┃ (販売管理DBM) ┃┃ ┃
┃ ┌──────╂╂────────┘ ┃┃ ┃
┃【3】 トランザクション開始 ┃┃ ┃┃ ┃
┃ └──────╂╂────────┐ ┃┃ ┃
┃ ┃┃【4】 顧客データの検索依頼 ┃┃ ┃
┃ ┌──────╂╂────────┘ ┃┃ ┃
┃【5】 検索処理 ┃┃ ┃┃ ┃
┃ └──────╂╂────────┐ ┃┃ ┃
┃ ┃┃【6】 トランザクション開始依頼 ┃┃ ┃
┃ ┃┃ (在庫管理DBM) ┃┃ ┃
┃ ┃┃ └───────╂╂──────┐ ┃
┃ ┃┃ ┃┃【7】 トランザクション開始 ┃
┃ ┃┃ ┌───────╂╂──────┘ ┃
┃ ┃┃【8】 在庫データ検索依頼 ┃┃ ┃
┃ ┃┃ └──────╂╂───────┐ ┃
┃ ┃┃ ┃┃【9】 検索処理 ┃
┃ ┃┃ ┌───────╂╂──────┘ ┃
┃ ┃┃【10】在庫データ更新依頼 ┃┃ ┃
┃ ┃┃ └───────╂╂──────┐ ┃
┃ ┃┃ ┃┃【11】 更新処理 ┃
┃ ┃┃ ┌───────╂╂──────┘ ┃
┃ ┃┃【12】受注データ追加依頼 ┃┃ ┃
┃ ┌──────╂╂────────┘ ┃┃ ┃
┃【13】 追加処理 ┃┃ ┃┃ ┃
┃ └──────╂╂────────┐ ┃┃ ┃
┃ ┃┃ │ ┃┃ ┃
┃ ┃┃ │ ┃┃ ┃
┃ ┃┃【14】コミット準備依頼 ┃┃ ┃
┃ ┃┃ (販売管理DBM) ┃┃ ┃
┃ ┌──────╂╂────────┘ ┃┃ ┃
┃【15】コミット準備処理 ┃┃ ┃┃ ┃
┃ │ ┃┃ ┃┃ ┃
┃【16】コミット準備完了 ┃┃ ┃┃ ┃
┃ └──────╂╂────────┐ ┃┃ ┃
┃ ┃┃【17】コミット準備依頼 ┃┃ ┃
┃ ┃┃ (在庫管理DBM) ┃┃ ┃
┃ ┃┃ └───────╂╂──────┐ ┃
┃ ┃┃ ┃┃【18】コミット準備処理 ┃
┃ ┃┃ ┃┃ │ ┃
┃ ┃┃ ┃┃【19】コミット準備完了 ┃
┃ ┃┃ ┌───────╂╂──────┘ ┃
┃ ┃┃ │ ┃┃ ┃
┃ ┃┃【20】コミット実行依頼 ┃┃ ┃
┃ ┃┃ (販売管理DBM) ┃┃ ┃
┃ ┌──────╂╂────────┘ ┃┃ ┃
┃【21】コミット実行処理 ┃┃ ┃┃ ┃
┃ │ ┃┃ ┃┃ ┃
┃【22】コミット実行完了 ┃┃ ┃┃ ┃
┃ └──────╂╂────────┐ ┃┃ ┃
┃ ┃┃【23】コミット実行依頼 ┃┃ ┃
┃ ┃┃ (在庫管理DBM) ┃┃ ┃
┃ ┃┃ └───────╂╂──────┐ ┃
┃ ┃┃ ┃┃【24】コミット実行処理 ┃
┃ ┃┃ ┃┃ │ ┃
┃ ┃┃ ┃┃【25】コミット実行完了 ┃
┃ ┃┃ ┌───────╂╂──────┘ ┃
┃ ┃┃【26】トランザクション終了 ┃┃ ┃
┃ ┃┃ (販売管理TRM) ┃┃ ┃
┗━━━━━━━━━━━━━━┛┗━━━━━━━━━━━━━━━━┛┗━━━━━━━━━━━━━━┛
図3 販売管理トランザクション処理フロー(2相コミットメント制御あり)
トランザクションのログ取得の契機は次のとおりである。
・図2において,トランザクション開始ログが,【1】,【3】,【7】コミット実行完了(トランザクション終了)ログが
【16】,【19】,【20】で取得される。
・図3において,トランザクション開始ログが,【1】,【3】,【7】コミット準備完了ログ【16】,【19】,【20】
コミット実行完了(トランザクション終了)ログが【22】,【25】,【26】で取得される。
設問1
分散データベース制御に関する次の問いに答えよ。
図2のフローで,在庫管理DBMだけが電源異常によるシステム障害となった場合に,図中の処理【11】実行後,処理【18】実行前までの間の状態にある販売管理のトランザクションについては,ロールバックが出来ない。この理由について40字以内で述べよ。
設問2
トランザクションの2相コミットメント制御に関する次の問いに答えよ。
(1)図3のフローで,販売管理TRMでは,トランザクションが正常終了するとみなした時点で,端末に対して応答電文を送信する。どの時点以降ならば,応答電文を返却しても問題ないか,図3中の番号【1】〜【26】で答えよ。
(2)図3のフローではすべての処理がシリアライズされて記述してあるが,応答時間短縮のため,データベース処理方式として,並行動作が検討できる部分がある。
(a) 対応する処理範囲を次の例に従って示せ。
例: 【1】〜【2】と【3】〜【5】
(b) 並行動作が検討可能な理由を40字以内で述べよ。
設問3
図3に示す2相コミットメント方式を適用したシステムでの障害時のトランザクションの取扱いについて,次の問いに答えよ。
図3の処理フローで,在庫管理DBMだけが電源異常によるシステム障害となった場合に,次に示すトランザクションは,在庫管理DBMの復旧処理でどのように取扱われるか。
なお,それぞれの処理は障害直前まで正常に処理されていたものとする。解答は,ぞれぞれ30字以内で述べよ。
(1)処理【7】の実行後,処理【19】実行直前までの状態にあったトランザクションについて,
(a) 在庫管理DBMの復旧での取扱い
(b) 販売管理TRMからの2相コミットメント制御に関する依頼に対する,在庫管理DBMでの取扱い
(2)処理【19】の実行後,処理【25】実行直前までの状態にあったトランザクションについて,
(a) 在庫管理DBMの復旧での取扱い
(b) 販売管理TRMからの2相コミメント制御に関する依頼に対する,在庫管理DBMでの取扱い
|
| 解答 |
|
|
|