跳到正文

平成21年度 秋期 ITパスポート試験 問98

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

問98
頻出度★★★

I社は,企業に対してPC関連機器の販売を行っており,販売管理業務の情報をデータベースによって管理している。図1に示すデータベースとデータベース管理システムの印刷機能を使って,販売時に図2の請求書を発行する。 各商品の販売単価は適宜変更され,新たな販売単価とその更新日時が販売単価表の該当レコードに上書きされる。また,取引を行う企業(以下,取引先という)の担当者は原則1人であるが,取引先によっては部署ごとに1人存在することがある。取引先コードは,取引先ごとに採番する。 **図1 販売管理業務に関するデータベースの構造** 商品表

商品コード商品名分類コードメーカコード仕入先コード

販売単価表

商品コード販売単価更新日時

取引先表

取引先コード取引先名

取引先担当者表

取引先コード部署名所在地名前役職電話番号

**図2 請求書の様式** - 表題: 請求書 - 右上: 平成YY年MM月DD日 - 宛先欄 (左側): - [取引先名] [部署名] - [役職] [名前]様 - [所在地] [電話番号] - 本文: 下記のとおりご請求申し上げます。 - 発行者欄 (右側): 東京都文京区本駒込×丁目××番×号/株式会社 I - 右側: 伝票番号 XXXXXXXXXX - 明細表 (見出し行のみ。データ行は空欄):

商品コード商品名数量単価金額

- 合計欄 (明細表の下部。「合計」の行に「税抜」「消費税」「総額」の見出しがあり,その下の値セルは空欄):

合計税抜消費税総額

図1の取引先担当者表のレコードを一意に特定するための主キーとして,適切なものはどれか。

出典 平成21年度 秋期 ITパスポート試験 問98
解説

問 98主键=能唯一确定一条记录的列(或其最小组合)

  • 错误ア

    仅有交易对象代码无法保证唯一性。对于每个部门都设有负责人的交易对象,相同交易对象代码的记录会按部门数量存在多条,无法缩小到 1 条。

  • 错误イ

    姓名(负责人姓名)可能出现重名,作为业务数据的标识符没有保证。而且由于是每个部门配置一名负责人的结构,真正用于区分记录的关键列是部门名,把姓名作为主键的组成部分并不恰当。

  • ウ

    正解 主键是指「能把表中的一条记录与其他记录区分开、唯一确定该记录的最小列组合」。本题的前提说明中写道:「交易对象的负责人原则上为 1 人,但根据交易对象的不同,也可能每个部门各有 1 人」。也就是说,拥有相同交易对象代码的负责人记录,可能会按部门数量存在多条。因此仅靠交易对象代码是不够的,还必须加上用于在其内部加以区分的列——部门名。反过来说,交易对象不同则交易对象代码不同,而在同一交易对象内部每个部门只有 1 名负责人,所以只要有〔交易对象代码,部门名〕这一组合,就一定能唯一确定 1 条记录。因此主键为「交易对象代码,部门名」,正确答案是 ウ。

  • 错误エ

    由于不包含交易对象代码,如果另一家交易对象也有姓名和职务都相同的负责人(例如「营业部长 田中」),就会发生冲突。缺少表明记录属于哪一家交易对象的列,无法保证唯一性。

ここがポイント
  • 主键=能唯一确定一条记录的列(或其最小组合)。当一列不够用时,就把多个列组合起来做成复合主键。
  • 主键不只由表的定义决定,还要依据「每家交易对象 1 人,还是每个部门 1 人」这类业务规则(前提说明)来判断。诀窍是找出可能发生重复的单位,再加上能区分该单位的列。
用語
解答問98ウ
练这一题

作答记录