【说明】
某科研项目管理机构拟开发科研管理系统,以便管理科研项目信息。设计了科研信息数据库,其关系模式如图所示。
科研信息数据库关系模式
关系模式的主要属性、含义及约束如表所示。
属性 | 含义和约束条件 |
课题编号 | 唯一标识某个科研项目的编号 |
负责人 | 某个科研专家的编号 |
单位类别 | 标识参与课题的单位是承担单位还是合作单位 |
人员编号 | 唯一标识具有科研项目申请资格的某个科研专家的编号 |
所有单位 | 科研专家所在的单位名称 |
职工号 | 在某个单位中唯一表示该单位参与项目开发的员工编号 |
职称 | 初级、中级、高级职称 |
一个科研项目(课题)由一位科研专家作为负责人。一个科研项目可以由多个单位参与,这些单位可以作为承担单位或者合作单位来参与科研项目。一个科研项目可以有多个拨款单位,每个单位按合同经费的一定百分比拨款。科研专家是具有科研项目申请资格的科研人员。一位科研专家可以参与不同的科研项目。参与科研项目的每个单位可以有多个除科研专家外的单位员工参与项目的研发。
属性间的函数依赖关系如下。
对于“项目信息”关系模式:
课题编号,单位名称,拨款单位→课题名称,负责人,单位类别,单位排名,合同经费,拨款百分比
课题编号,单位名称→课题名称,负责人,课题类别,单位排名,合同经费
课题编号,拨款单位→课题名称,负责人,合同经费,拨款百分比
课题编号→课题名称,负责人,合同经费
课题编号→拨款单位,拨款百分比
课题编号→单位名称,单位类别,单位排名
对于“科研专家”关系模式:
人员编号→姓名,性别,出生年月,身份证号,最高学位,职称,研究方向,所在单位,单位地址
所在单位→单位地址
身份证号→人员编号
对于“项目研发人员”关系模式;
课题编号,所在单位,职工号→姓名,年龄,学历,职称,分工,排名,参加月数所在单位,职工号→姓名,年龄,学历,职称
【问题2】
对关系“项目研发人员”,请回答以下问题:
(1)针对“项目研发人员”关系,用100字以内文字简要说明会产生什么问题。
(2)把“项目研发人员”分解为第三范式,分解后的关系名依次为:项目研发人员1,项目研发人员2,…
(3)列出修正后的各关系模式的主键。
参考答案:
(A)“项目研发人员”关系不满足第二范式,即:非主属性不完全依赖于码。
(B)会造成:插入异常、删除异常和修改复杂(或修改异常)。
(C)分解后的关系模式如下:
项目研发人员A (所在单位,职工号,姓名,年龄,学历,职称)
项目研发人员B (课题编号,所在单位,职工号,分工,排名,参加月数)
修正后的主键如下:
项目研发人员A (所在单位,职工号,姓名,年龄,学历,职称)
项目研发人员B (课题编号,所在单位,职工号,分工,排名,参加月数)