1、An Introduction to Database System,习题一,设有关系模式R(A,B,C,D,E), F=AB C,B D,D E,C B, 请回答下列问题: 1)求出R的所有候选码,说明该模式是哪一类范式? 2)R分解为R1(A,B,C),R2(B,D,E), 问该分解是否保持函数依赖。 3)R1和R2分别为哪一类范式?为什么?,An Introduction to Database System,1)设有关系模式R(A,B,C,D,E), F=AB C,B D,D E,C B L: A R: E LR: B C D 候选码: AB -C D E AC -B D E AD -
2、E AB是候选码,但是B D,不是2NF,An Introduction to Database System,2) R1(A,B,C),R2(B,D,E), 该分解保持函数依赖 AB C,C B , B D,D E, 3) R1(A,B,C) AB C,C B AB是码, 虽然存在传递依赖,但是B是主属性,符合3NF定义,R1 3NFC B中C不是码,因此R1不是BCNF R2(B,D,E) B D,D E B是码,不存在部分函数依赖,存在传递函数依赖 因此R2 2NF 不属于3NF,An Introduction to Database System,习题二,设有关系模式W(I,J,K,X
3、,Y), F=I J,I K,K X,X Y,如果将W分解为W1(I,J,K),和W2(K,X,Y),请确定W1和W2的范式等级。,An Introduction to Database System,解答:W(I,J,K,X,Y)FIJ,IK,KX,XY L: I R: J Y LR:K X N: 候选码: I -J K X Y ,An Introduction to Database System,2) W1(I,J,K)中有 IJ,IK,I是码,JK非主属性,每个决定属性因素都包含码,属于BCNFW2(K,X,Y) KX,XY,码是K,非主属性XY,不存在部分依赖,但是存在传递依赖,因此
4、属于2NF,不属于3NF,An Introduction to Database System,习题三,设 关系模式R(S#,C#,GRADE,TNAME,ADDR) 其属性分别表示(学号,选课编号,成绩,任课教师姓名,教师地址) 有关语义如下:每个学生每门课程只有一个成绩;每门 课程只有一个教师任教;每个教师只有一个地址(教师不同 名)。 1)请写出关系模式R的基本函数依赖和候选码。 2)请把R分解为2NF,并说明理由。 3)请把R分解为3NF,并说明理由。,An Introduction to Database System,分解时先分解传递依赖,再分解部分依赖 1) (S#,C#)-GR
5、ADE, C#-TNAME, TNAME-ADDR 候选码(S#,C#) 非主属性GRADE,TNAME,ADDR 2)分解为R1(S#,C#,GRADE)R2(C#,TNAME,ADDR)不存在部分依赖了 3)分解为R1(S#,C#,GRADE)R2(C#,TNAME)R3(TNAME,ADDR)不存在传递依赖,An Introduction to Database System,习题四,已知关系模式B(A,NAME,DEPT,B#,DATE), 其属性分别表示(借书证号,姓名,所在学院,书号,借书日期)。有关语义如下:一个借书证号只对应 一名学生,一个借书证号可以借多本书,并且可以在不同的
6、日期借同一本书;一名学生只能属于一个学院。 1)写出关系模式B基本的函数依赖。 2)该关系模式是几范式?为什么? 3)将它分解成3NF的关系模式。,An Introduction to Database System,分解时先分解传递依赖,再分解部分依赖1) A-NAME, NAME-DEPT ,(B,DATE)-A# (同一本书一天借出一次) 2)候选码是(B,DATE),存在传递函数依赖 不属于3NF,属于2NF. 3)分解为B1( A,NAME),B2( NAME,DEPT), B3(A, B#, DATE),An Introduction to Database System,An I
7、ntroduction to Database System,第七章练习,18 现有一局部应用,包括两个实体:“出版社”和“作者”,这两个实体是多对多的联系,请读者自己设计适当的属性,画出 E 一 R 图,再将其转换为关系模型(包括关系名、属性名、码和完整性约束条件)。,An Introduction to Database System,参考答案,An Introduction to Database System,关系模型为: 作者(作者号,姓名,年龄,性别,电话,地址) 主码:作者号 出版社(出版社号,名称,地址,联系电话) 主码:出版社号 出版(作者号,出版社号,书的数量) 主码:(作
8、者号,出版社号),也是外码,分别参照作者关系的主码“作者号”和出版社关系的主码“出版社号”。,An Introduction to Database System,19 请设计一个图书馆数据库,此数据库中对每个借阅者保存读者记录,包括:读者号,姓名,地址,性别,年龄,单位。对每本书存有:书号,书名,作者,出版社。对每本被借出的书存有读者号、借出日期和应还日期。要求:给出 E 一 R 图,再将其转换为关系模型。,An Introduction to Database System,参考答案,E 一 R 图为:,An Introduction to Database System,关系模型为: 读
9、者(读者号,姓名,地址,性别,年龄,单位) 主码:读者号 书(书号,书名,作者,出版社) 主码:书号 借书(读者号,书号,借出日期,应还日期) 主码:(读者号,书号),也是外码,分别参照读者关系的主码“作者号”和书关系的主码“书号”。,An Introduction to Database System,补充:例1,设某汽车运输公司数据库中有三个实体集: 车队:属性有车队号、车队名 车辆:属性有牌照号、厂家、出场日期 司机:属性有司机编号、姓名、电话 设车队与司机之间存在“聘用”关系,每个车队可聘用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有聘期;车队与车辆之间存在“拥有”关系,每个
10、车队可拥有若干车辆,但每辆车只能属于一个车队;司机与车辆之间存在“使用”关系,司机使用车辆有使用日期和公里数,每个司机可以使用多辆车,每辆汽车可被多个司机使用。 (1)画出反应上述问题的E_R图 (2)将E_R图转换成关系模型,并说明主码和外码。,An Introduction to Database System,参考答案,An Introduction to Database System,转化的数据模型如下: 车队(车队号,车队名) 车辆(牌照号,厂家,生产日期,车队号)司机(司机编号,姓名,电话,车队号,聘期)使用(司机编号,牌照号,使用日期,公里数)主码“ ” 外码“ ”,An In
11、troduction to Database System,例2,设有如下实体:学生:学号、姓名、性别、年龄、班级课程:编号、课程名、开课系教师:教师号、姓名、性别、职称系 :系名、电话、教师号、教师名 其中学号、编号、教师号、系名是不重复的属性。 上述实体中存在如下联系: 一个学生可选修多门课程,一门课程可为多个学生选修,选修后得到考试成绩; 一个教师可讲授多门课程,一门课程可为多个教师讲授; 一个系有多个教师和学生,一个教师或一个学生只能属于一个系。 一个系可开设多门课程,一门课程只能为一个系所开设。 试完成如下工作: 1、根据这段话的意思,画出其ER图; 2、将该ER图转换为等价的关系模
12、型结构,并指出每个关系模式的主码和外码;,An Introduction to Database System,ER图,教师,教师号,姓名,职称,性别,学生,学号,姓名,性别,年龄,班级,系,系名,电话,An Introduction to Database System,学生,课程,教师,属于,选修,讲授,系,成绩,属于,开设,1,n,1,n,n,n,1,1,n,An Introduction to Database System,带下划线的属性是主码 学生(学号,所在系,姓名,性别,年龄,班级) 外码:所在系 课程(课程编号,课程名,开课系) 外码:开课系 教师(教师号,姓名,性别,职称, 所在系) 外码:所在系 系(系名,电话) 学生-课程(学号,课程编号,成绩) 外码:学号和课程号 教师-课程(教师号,课程编号) 外码:教师号和课程号,