第六章关系数据库理论
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章关系数据理论
1、理解并给出下列术语的定义:函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码、1NF、2NF、3NF、BCNF。
答:函数依赖:设R (U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R (U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。
完全函数依赖、部分函数依赖:在R(U)中,如果X→Y,并且对于X的任何一个真子集X,都有X′→Y,则称Y对X完全函数依赖;若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖。
传递依赖:在关系R (U)中,如果X→Y(Y⊄X),Y→X,Y→Z,则称Z对X传递函数依赖。
候选码、主码:设K为R(U,F)中的属性或属性组合,若K→U则K为R的候选码。若候选码多于一个,则选定其中的一个为主码。
外码:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码也称外码。
全码:整个属性组是码,称为全码(All-key)。
1NF:如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF
2NF:若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于R的关键字,则R∈2NF。
3NF:关系模式R 中若不存在这样的关键字X、属性组Y及非主属性Z(Z⊄Y),使得X→Y,Y→X,Y→Z 成立,则称R∈3NF。
BCNF:设关系模式R∈1NF,如果对于R的每个函数依赖X→Y,若Y⊄X,则X必含有候选关键字,那么R∈BCNF。
2、建立一个关于系、学生、班级、学会等诸信息的关系数据库。
描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区;
描述班级的属性有:班号、专业名、系名、人数、入校年份;
描述系的属性有:系名、系号、系办公室地点、人数;
描述学会的属性有:学会名、成立年份、地点、人数。
有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。
指出各关系的候选码、外部码,有没有全码存在?
答:1、关系模式:
(1)学生:Student ( sno, sname, sbirth, deptname, clsno, sdorm )
其中:sno_学号,sname_姓名,sbirth_出生年月,deptname_系名,clsno_班级号,sdorm_宿舍区,(2)班级:Class ( clsno, spec, deptname, clsnum, clsdate )
其中:clsno_班级号,spec_专业名,deptname_系名,clsnum_班级人数,clsdate_入校年份,(3)系:Dept ( deptno, deptname, deptaddr, deptnum )
其中:deptno_系号,deptname_系名,deptaddr_系办公地点,deptnum_系人数,
(4)学会:Acad (acadname, existdate, acadaddr, acadnum )
其中:acadname_学会名,existdate_成立年月,acadaddr_学会地点,acadnum_学会人数,
(5)学生-学会:studacad ( sno, acadname, enterdate )
其中:sno_学号,acadname_学会名,enterdate_入会年份。
2、每个关系模式的极小函数依赖集:
(1)Student:sno→sname,sno→sbirth,sno→clsno,clsno→deptname,
deptname→sdorm
(2)Class:clsno→spec,clsno→clsnum,clsno→clsdate,spec → deptname,
(spec, clsdate) →clsno(每个专业每年只招一个班)
(3)Dept:deptno→deptname,deptname→deptno,deptno→deptaddr,
deptno→deptnum(按照实际情况,系名和系号是一一对应的)
(4)Acad:acadname→existdate, acadname→acadaddr, acdaname→acadnum
(5)Studacad:( sno, acadname ) → enterdate
3、传递函数依赖:
在Student中存在传递函数依赖:因为sno→clsno,clsno→deptname,deptname→sdorm,所以:sno→deptname,sno→sdorm,clsno→sdorm
在Class中存在传递函数依赖:clsno→deptname
4、对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖
(spec, clsdate) →clsno和( sno, acadname ) → enterdate均为完全函数依赖。
5、各关系的候选码、外码、全码:
10、在一个订货系统的数据库中,存有顾客、货物和订货单的信息。
每个顾客包含顾客号CUSTNO(唯一的)、收货地址ADDRESS(一个顾客可有几个地址)、赊购限额CREDLIM、余额BAL以及折扣DISCOUNT;
每个订货单ORDNO包含顾客号CUSTNO、收货地址ADDRESS、订货日期DATE、订货细则LINENO (每个订货单有若干条),每条订货细则内容为货物号ITEMNO及订货数据QTYORD。
每种货物包含货物号ITEMNO(唯一的)、制造厂商PLANTNO、每个厂商的实际存货量QTYOH、规定的最低存货量DANGER和货物描述DESCN。
为这些数据设计一个数据库,首先给出合理的数据依赖。
答:其语义假设如下:
(1)任何两个顾客的收货地址都不相;
(2)每一订单都有一个唯一的订单号码;