H14午後Ⅰ問4 【DB設計】

2006年12月13日 02時51分46秒 | テクニカルエンジニア(データベース)
設問1(2)
横持ちは第3正規形とは分かってはいた。
繰り返し属性の項目数が少なければ横持ちのままにしていただろうが、
使用部署コード1~変更理由4を全て書くのが苦痛で、縦持ちにした。
この設問。実は横持ちの場合のテーブル分割でミスを誘うための
引っ掛け問題なのかもしれない。

この問題を一度は経験することで本番で同じ場面に出くわした時に、
より落ち着いて判断できるようになるかもしれない。

設問3(2)・・・時系列性の保持
テーブル変更の場合
(トランザクションテーブル側に事象発生時点のデータを持たせる方法)
物品に、変更前承認者コード1~4、変更後承認者コード1~4を追加する。
変更前後の承認者の情報を保持しなければ、過去の使用部署変更時の承認者を
特定できないことに注意。

テーブル追加の場合
(マスターテーブル側のキーに時系列要素を持たせる方法)
部署長履歴(部署コード、登録年月日、承認者コード)
※主キーは、部署コード、登録年月日

H18(2006)アイテック公開模擬テスト午後Ⅰ問2 【DB設計】

2006年12月13日 00時20分30秒 | テクニカルエンジニア(データベース)
人材派遣会社の受注管理システム

設問1(1)

“希望条件”の主キー、外部キーを指摘する問題
希望条件(派遣スタッフコード、就業曜日コード、就業開始時刻、就業終了時刻)

「就業に関する希望条件として、就業を希望する曜日の組み合わせおよび
 そのときの就業可能時間帯(開始時刻・終了時刻)を複数登録できる。」とある。

解答は、
主キー:派遣スタッフコード、就業曜日コード

主キーに「就業開始時刻」を含めてはなぜ駄目なのか分からない。
同じ曜日で、午前9:00~正午or午後14:00~17:00と複数登録できるように
しても良いような気がするが。

というか、平成16年午後Ⅱ問1を知らないと解けないような気がする。


設問2(2)
追加するテーブル名を“希望従事業務”としてしまった。

同じ派遣スタッフが異なる従事業務を兼務し得ないことに
気づけば難しくないはず。

H16(2004)アイテック公開模擬テスト午後Ⅰ問3 【DB設計】

2006年12月07日 01時21分30秒 | テクニカルエンジニア(データベース)
■予備知識
・スーパータイプ/サブタイプ(排他的サブタイプ)
 →スーパータイプ化
・時系列性の保持(発生時点の管理)
・多対多関連と連関エンティティ
・再帰型(自己参照型)
・串刺し方式

設問3(1)
決済テーブルを3分割する問題

決裁テーブル
決裁番号、工事名称、入札金額、支払条件、決裁日、入札番号、決裁社員コード、設計番号、連番
がある。主キーは決裁番号
さらに「(注)入札金額は簡易決裁時の見積金額も兼ねる。」とある。

これを、
決裁テーブル・・・スーパータイプ
決裁番号、工事名称、入札金額、支払条件、決裁日、決裁社員コード、設計番号、連番

通常決裁・・・サブタイプ
決裁番号、入札番号

簡易決裁・・・サブタイプ
とする。

入札金額には、通常決裁時に入札金額の内容が、簡易決裁時に見積金額の内容が設定される。
つまり入札金額はどちらの場合でも値が設定される共通属性なので、スーパータイプに含める。


H16午後Ⅰ問3 【DB設計】

2006年12月06日 00時12分24秒 | テクニカルエンジニア(データベース)
■予備知識
・時系列性の保持
・発生時点管理(正規化)(属性時系列変化)
・期間管理(属性時系列変化)
・連関エンティティ
・2項関連
・複合2項関連

■注意事項
・問題文に制約事項あり

設問3(2)
発生時点の管理、期間の管理どちらでも○だとは思うが、
どの解答見ても期間の管理。問題文で断りの無い限り履歴管理する場合は、
期間の管理の方が無難ですね。
それよりも年月だけでよいところを年月日と日まで入れてしまった
自分の注意力のなさに脱力状態。大勢に影響はないとは思うが。

H15午後Ⅰ問3 【DB設計】

2006年12月05日 23時04分19秒 | テクニカルエンジニア(データベース)
■予備知識
・スーパータイプ/サブタイプ(排他的サブタイプ)
・再帰型(自己参照型)
 →依存リレーションシップな関係(外部キーが主キーの一部を構成)

設問2(2)
基本的には、1対多、多対多(連関エンティティ)の考え方が分かっていれば
解ける問題。アイテック本試験問題集では、スーパータイプ/サブタイプで
テーブルを一つにまとめるやり方を推奨している。考え方は重要なので、
次回この問題を解く際には、この方法でアプローチしてみたいところ。