跳到正文

平成22年度 春期 ITパスポート試験 問93

这道题的解析和你的作答记录。

問93
頻出度★★★

A社研究所の資料室では,文献の貸出管理業務を行っている。文献の貸出管理業務には,PCのデータベースソフトを活用した文献貸出管理システム(以下,文献システムという)を利用している。 文献システムのデータベース構造は,次のとおりである。 社員表

社員番号社員名メールアドレス

文献表

文献番号文献名

貸出表

文献番号文献名社員番号社員名メールアドレス貸出日返却日

保有する文献と貸出についての条件は,次のとおりである。 〔保有する文献と貸出についての条件〕 (1) 同一文献は複数保有せず,文献ごとに固有な文献番号が採番されている。 (2) 貸出期間は,貸出日を含んで最長2週間である。ここで,返却された文献をその日に違う社員に貸し出すことは可能であるが,同じ社員に対して返却した同一文献をその日のうちに貸し出すことはない。 貸出から返却までの手続は,次のとおりである。 〔貸出から返却までの手続〕 (1) 社員は借りたい文献を書庫から取り出して,資料室の担当者(以下,担当者という)に手渡し,社員番号を提示する。 (2) 担当者は文献システムを使って貸出処理を行い,社員に文献を手渡す。 (3) 文献返却時,社員は担当者に文献を返却し,担当者は文献システムを使って返却処理を行う。 文献システムにおける貸出処理と返却処理の仕様は,次のとおりである。 〔貸出処理〕 (1) 文献番号で文献表を検索し,文献名を取得する。 (2) 社員番号で社員表を検索し,社員名とメールアドレスを取得する。 (3) 貸出表のレコード(以下,貸出レコードという)を用意して,(1),(2)で取得した文献番号,文献名,社員番号,社員名,メールアドレスを設定し,貸出日に当日の日付を,返却日に空白値を設定する。 (4) (3)で設定した貸出レコードを貸出表に追加する。 〔返却処理〕 (1) 文献番号で貸出表を検索し,返却日が空白値である貸出レコードを抽出する。 (2) 抽出した貸出レコードの返却日に当日の日付を設定し,貸出表を更新する。 文献システムのデータベース構造の記述として,適切なものはどれか。

出典 平成22年度 春期 ITパスポート試験 問93
解説

問 93

  • 错误ア

    仅有文献编号和员工编号并不能做到唯一。条件 (1) 规定同一文献只有一册,但并未禁止同一员工日后再次借阅已归还的该文献,因此会产生多条文献编号相同、员工编号相同而借出日期不同的借出记录。主键不允许重复,所以这一项不恰当。

  • イ

    正解 正确答案是 イ。正如〔借出处理〕(4) 所述,借出表是每借出一次就追加一行的借出履历表,因此只要找出能唯一识别一行的最小列组合即可。首先,由条件 (1) 可知同一文献只持有一册,但这一册在归还之后可以反复借出,所以仅凭文献编号会出现重复的行。即使再加上员工编号,只要同一员工日后又借了同一文献,仍然会重复。于是再加上借出日期,此时条件 (2) 的后半句「不会在当天再次借给刚刚归还该同一文献的同一员工」就发挥作用,从而保证不会出现两行以上文献编号相同、员工编号相同、借出日期也相同的记录。因此主键就是 文献编号、员工编号、借出日期 的组合(复合主键)。

  • 错误ウ

    说员工表的主键是员工编号这一点是正确的,但如果把借出表的主键也定为员工编号,那么一名员工就只能拥有一条借出记录了。实际上一名员工会借阅多件文献,而且还会反复重借,所以员工编号在借出表中是会重复的。在借出表中它是参照员工表的外键,而不是主键。

  • 错误エ

    说文献表的主键是文献编号这一点是正确的(由条件 (1) 可知每件文献都是唯一的),但它并不能成为借出表的主键。因为同一文献在归还后被反复借出时,借出表中会排列出许多条文献编号相同的借出记录。另外,〔归还处理〕(1) 在用文献编号检索之外还附加了归还日期为空值这一条件,这也从侧面印证了仅凭文献编号无法确定借出表中的某一行。

ここがポイント
  • 主键是能够唯一识别表中某一行的列(或列的组合),不允许取值重复,也不允许出现空值(NULL)。当单独一列无法做到唯一时,就把多个列组合起来作为复合主键。
  • 对于积累履历的表(借出表、订单表、销售表等),仅靠表示实体的列(文献编号、员工编号)会让同一组合反复出现,因此把日期或时刻加进主键是惯用做法。至于要加到哪些列才不再重复,则要根据题目中写明的业务规则来判断(这里就是条件 (2) 禁止当天再借给同一员工)。
用語
解答問93イ
练这一题

作答记录