参考答案:
【问题1】
毕业证书编号
不是,存在传递依赖,毕业证书编号→身份证号→(姓名,性别 等)
个人信息1(身份证号,姓名,性别,出生日期,联系电话,电子邮件,个人简历及特长)
个人信息2(身份证号,毕业证书编号,毕业院校,专业名称,学历)
【问题2】
企业编号和联系人
不是,存在部分依赖,企业编号→(企业名称,地址 等)对主键存在部分依赖
企业信息1(企业编号,企业名称,地址,企业网址,企业简介)
企业信息2(企业编号,联系人,联系电话,电子邮件)
【问题3】
使用触发器
当用户发布时,就可以利用触发器将所选择的内容,插入到关系R中
详细解析:
本题考查数据库逻辑结构设计及应用。
此类题目要求考生认真阅读题目对现实问题的描述,对题目给出的关系模式进行分析并解决问题。
【问题 1】
根据题目描述和表 4-1 求职信息登记表所给出的内容,求职人员的身份证号、姓名、 性别、出生日期、联系电话、电子邮件、个人简历及特长等为基本属性,每个求职者在这些属性上取单一值:而每个求职者在毕业院校、专业名称、学历、毕业证书编号等属性上可以取多个值,其中毕业证书编号具有唯一性,可以唯一决定毕业院校、专业名称、学历和求职者个人信息。因此,“个人信息”关系的函数依赖集为{毕业证书编号→(毕业院 校,专业名称,学历,身份证号),身份证号→(姓名,性别,出生日期,联系电话,电 子邮件,个人简历及特长)。
由函数依赖集可知,“个人信息”关系的候选键为毕业证书编号,存在非主属性对候选键的传递依赖,如:毕业证书编号传递决定姓名(毕业证书编号→身份证号,身份证号→姓名〉。故 “个人信息”关系不属于 3NF。
根据分解规则,将函数依赖:身份证号→(姓名,性别,出生日期,联系电话,电子邮件,个人简历及特长)中的所有属性独立出来做一个关系模式,为 BCNF;从原关系模式中去掉上述函数依赖的右部属性,得到关系模式(毕业证书编号,身份证号,毕业院校,专业名称,学历),函数依赖集为{毕业证书编号→(毕业院校,专业名称,学历, 身份证号),也为 BCNF 。
【问题 2】
根据题目描述和表 4-2 招聘信息登记表所给出的内容,每个企业有多个联系人,每个联系人登记一个电话和一个电子邮件。存在函数依赖: { (企业编号,联系人)→(联系电话,电子邮件),企业编号→(企业名称,地址,企业网址,企业简介)},故“企业信息”关系的候选键为(企业编号,联系人)。而候选键(企业编号,联系人)→企业名称为部分依赖,故“个人信息”关系不属于2NF。 根据分解规则,将函数依赖:企业编号→(企业名称,地址,企业网址,企业简介)中的所有属性独立成一个关系模式,属于BCNF,从原关系中去掉上述函数依赖的右部属性,得到关系模式(企业编号,联系人,联系电话,电子邮件),也是BCNF。
【问题 3】
求职信息录入后,由系统根据求职意向查找符合的信息需求,从数据库端应用触发器技术,在“求职意向”"表上添加触发器程序,当有插入新的求职意见记录时,根据求职表意向中的职位名称,在“岗位需求”表中查找相同职位的记录,即得到需求该职位的企业编号,用相应的 SQL 语句实现查询结果插入到指定表中。