2010软考软件设计师考前练习试题及答案解析(5)
试题2
阅读以下某工厂信息管理数据库的设计说明,根据要求回答问题1~问题4。(15分)
【说明】
某工厂有多个部门,每个部门有多位职工,每位职工属于并且仅属于一个部门,每个部门有一位负责人,每个办公室有一部电话。每位职工的月工资大致是:800≤月工资≤4 500元。
软件开发公司A为该工厂开发的信息管理数据库的部分关系模式如下所示。
职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)
部门(部门号,部门名,负责人代码,任职时间)
其中"职工"和"部门"的关系示例分别见表8和表9。
表8 "职工"关系示例表
职 工 号 |
姓 名 |
年 龄 |
月 工 资 |
部 门 号 |
电 话 |
办 公 室 |
1001 |
郑俊华 |
26 |
1000 |
1 |
8001234 |
主楼201 |
1002 |
王平 |
27 |
1100 |
1 |
8001234 |
主楼201 |
2001 |
王晓华 |
38 |
1300 |
2 |
8001235 |
1号楼302 |
2002 |
李力 |
24 |
800 |
2 |
8001236 |
1号楼303 |
3001 |
黎运军 |
42 |
1300 |
3 |
8001237 |
主楼202 |
4001 |
李源 |
24 |
800 |
3 |
8001245 |
2号楼102 |
4002 |
李兴民 |
36 |
1200 |
4 |
8001246 |
2号楼103 |
5001 |
赵欣 |
25 |
0 |
Null |
… |
… |
… |
… |
… |
… |
… |
… |
… |
表9 "部门"关系示例表
部 门 号 |
部 门 名 |
负责人代码 |
任 职 时 间 |
1 |
人事处 |
1002 |
2004-8-3 |
2 |
机关 |
2001 |
2004-8-3 |
3 |
销售科 |
|
|
4 |
生产科 |
4002 |
2003-6-1 |
5 |
车间 |
|
|
【问题1】(2分)
请使用"关系模式标记规则"(见本题附录),给出上述各关系模式的主键和外键。
【问题1】答案解析:
这是一道要求考生根据题目给定的关系模式,以及属性间的函数依赖关系和给定的关系实例来确定各关系模式主键和外键的综合分析题。本试题的解答思路如下。
(1)由试题中给出的关键信息"某工厂有多个部门,每个部门有多位职工,每位职工属于并且仅属于一个部门,每个部门有一位负责人,……每位职工的月工资大致是:800≤月工资≤4500元",可以整理出如表8所示的关系模式主要属性、含义及约束。
表10 主要属性、含义及约束表
属 性 |
含义及约束 |
职工号 |
唯一标识每个职工的编号,每个职工属于并且仅属于一个部门 |
部门号 |
唯一标识每个部门的编号,每个部门有一个负责人,且他也是一位职工 |
月工资 |
f 500≤月工资≤5000元
|
(2)设K为R(U,F)中的属性的组合,若 ,且对于K的任何一个真子集 ,都有 不能决定U,则K为R的候选码(候选关键字)。若有多个候选码,则选一个作为主码(主键)。
(3)部门关系模式的主键和外键。
由题目中给出的关键信息"某工厂有多个部门,……每个部门有一位负责人",并且结合试题所给出的"部门"关系示例(见表9)可知,仅用"部门号"作为主键,可以唯一区分部门关系中的每一个元组。同时考虑到部门负责人应该来自职员,所以"负责人代码"应为部门关系模式的外键。最后可得部门关系模式的主键和外键如下。
部门(部门号,部门名,负责人代码,任职时间)
(4)职工关系模式的主键和外键。
由题干中给出的关键信息"每位职工属于并且仅属于一个部门"可知,仅用"职工号"作为主键,可以唯一区分职工关系中的每一个元组。同时考虑到"部门号"是部门关系模式的主键,所以它应是职工关系模式的外键。最后可得职工关系模式的主键和外键如下。
职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)
(3)参照完整性定义。定义格式如下:
FOREIGN KEY(属性名) REFERENCES 表名(属性名)
[ON DELETE CASCADE | SET NULL]
参照完整性是通过使用保留字"FOREIGN KEY"定义哪些列为外码;REFERENCES用于指明外键对应于哪个表的主键;ON DELETE CASCADE指明删除被参照关系的元组时,同时删除参照关系中的元组;SET NULL表示置为空值方式。
编辑推荐:
温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)
点击加载更多评论>>