第六章关系数据库理论

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)每一订单都有一个唯一的订单号码;

相关文档
最新文档