设有关系模式R(职工号,职工名,项目号,项目名,工资),假设一个职工可参加多个项目,在每个项目中各领一份工资。那么请回答以下问题: (1)请写出这个关系模式的函数依赖和主关键字; (2)这个关系符合第几范式,为什么? (3)请举例说明,这个关系存在哪些问题; (4)请把这个关系模式分解成3NF,并说明理由。
正确答案
主键为(职工号,项目号)
(2)这个关系符合第一范式,因为它的每个属性都不可再分。
(3)这个关系没有达到第二范式,可能出现数据冗余和操作异常。
例如,某个职工参与了多个项目的工作,他的职工号、职工名会重复多次存储。同样,如果一个项目有多名职工参加,项目号和项目名也会重复我次存储。另外,如果现在增加了一个新的项目,但暂时还没有安排职工参加,那么由于主键是(职工号,项目号),这个项目的信息可能无法插入。
(4)修改后的各个关系如下:
职工关系=(职工号,职工名)
项目关系=(项目号,项目名)
职工选择项目关系=(职工号,项目号,工资)
(注:此处的工资是指职工参加某个项目得到的劳动报酬)
答案解析
相似试题
(简答题)
设有关系模式:学生修课(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)。设一个学生可选多门课程,一门课程可以被多名学生选。每位学生由学号惟一标识,一个学生只在一个系学习;每门课程由课程号惟一标识。每个学生选的每门课程有惟一的成绩。 (1)请指出此关系模式的候选键。 (2)写出该关系模式的函数依赖集。 (3)该关系模式属于第几范式?并简单说明理由。 (4)若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主键和外键。
(简答题)
设有两个关系 (1)教师关系T,包括教师编号TNo,姓名TN,系别TD,职称RANK; (2)课程关系C,包括课程号CNo,课程名CN。 教师编号和课程号分别是上述两个关系的主键,请用SQL语句创建教师数据表T。
(简答题)
用SQL语句创建数据表。设有两个关系 (1)教师关系T,包括教师编号TNo,姓名TN,系别TD,职称RANK; (2)课程关系C,包括课程号CNo,课程名CN。 教师编号和课程号分别是上述两个关系的主键,假设还存在教师教授课程关系TC,包括教师编号TNo和课程号CNo。注意:说明主键码和外键码约束
(简答题)
设有某数据库中有课程表(表名为Courses),包括课程号CNo、课程名CName两个字段。CNo和CName均为字符型(长度10)。CNo是主键,请用SQL语句创建该数据表Courses。
(简答题)
设关系模式R有N个属性,在模式R上可能成立的函数依赖有多少个?
(简答题)
有三个关系, student:Sno(学号),Sname(姓名),Ssex(性别),Sage(年龄),Sdept(所在系)。 Course:Cno(课程号),Cname(课程名),Credit(学分),Semester(开课学期),Pcno(直接先修课)。 SC://Sno(学号),Cno(课程号),Grade(成绩)。 试用关系代数表达式完成下列查询: (1)查询“信息管理系”学生的选课情况,列出学号、姓名、课程号和成绩。 (2)查询“数据库基础”课程的考试情况,列出学生姓名、所在系和考试成绩。 (3)查询考试成绩高于80分的学生的姓名、课程名和成绩。 (4)查询计算机系没选VB的学生姓名。
(单选题)
设有描述图书出版情况的关系模式:出版(书号,出版日期,印刷数量),设一本书可以被出版多次,每次出版都有一个印刷数量。该关系模式的主码是()。
(简答题)
假定有三个关系,A(ANO,ANAME,WQTY,CITY),分别表示(商店代号,商店名,店员数量,所在城市),B(BNO,BNAME,PRICE), 分别表示(商品号,商品名,价格),AB(ANO,BNO,QTY) 分别表示(商店代号,商品号,商品数量)。 要求,创建三个表,并给每个表插入4个合理的记录,用SQL语言写出下列查询语句,同时给出查询结果: (1) 创建三张表,并给每个表至少插入四条合理记录 (2)找出店员人数不超过1000人或在长沙市内的所有商店的代号和商店名 (3) 找出供应书包的商店 (4)找出至少供应代号为256的商品所供应的全部商品的商店名和所在的城市
(简答题)
设学生成绩表的结构为(学号、课程号、成绩),程序运行界面如图1所示。进入界面后,用户首先选择学号(Combo1)、课程号(Combo2),姓名(Text1)和课程名(Text2)从数据库中自动读入;然后,用户输入对应的成绩(Text3),点击“确认”按钮后,将结果插入到学生成绩表中。请补充完成下列程序代码。