关系数据库的模式设计习题及答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库原理之关系数据库的模式设计课后习题及答

4、1名词解释

(1)函数依赖:FD(function dependency),设有关系模式R(U),X,Y就是U的子集, r就是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1[X]=t2[X]导致t1[Y]=t2[Y], 则称X函数决定Y,或Y函数依赖于X,记为X→Y。X→Y为模式R的一个函数依赖。

(2) 函数依赖的逻辑蕴涵:设F就是关系模式R的一个函数依赖集,X,Y就是R的属性子集, 如果从F中的函数依赖能够推出X→Y,则称F逻辑蕴涵X→Y,记为F|=X→Y。

(3) 部分函数依赖:即局部依赖,对于一个函数依赖W→A,如果存在X W(X包含于W)有X→A成立, 那么称W→A就是局部依赖,否则称W→A为完全依赖。

(4)完全函数依赖:见上。

(5) 传递依赖:在关系模式中,如果Y→X,X→A,且X Y(X不决定Y), A X(A不属于X),那么称Y→A就是传递依赖。

(6) 函数依赖集F的闭包F+: 被逻辑蕴涵的函数依赖的全体构成的集合,称为F的闭包(closure),记为F+。

(7) 1NF:第一范式。如果关系模式R的所有属性的值域中每一个值都就是不可再分解的值, 则称R就是属于第一范式模式。如果某个数据库模式都就是第一范式的,则称该数据库存模式属于第一范式的数据库模式。第一范式的模式要求属性值不可再分裂成更小部分,即属性项不能就是属性组合与组属性组成。

(8) 2NF:第二范式。如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键, 则称就是第二范式模式;如果某个数据库模式中每个关系模式都就是第二范式的,则称该数据库模式属于第二范式的数据库模式。(注:如果A就是关系模式R 的候选键的一个属性,则称A就是R的主属性,否则称A就是R的非主属性。)

(9)3NF:第三范式。如果关系模式R就是第二范式,且每个非主属性都不传递依赖于R的候选键, 则称R就是第三范式的模式。如果某个数据库模式中的每个关系模式都就是第三范式,则称为3NF的数据库模式。

(10)BCNF:BC范式。如果关系模式R就是第一范式,且每个属性都不传递依赖于R的候选键,那么称R就是BCNF的模式。

(11) 4NF:第四范式。设R就是一个关系模式,D就是R上的多值依赖集合。如果D中成立非平凡多值依赖X→→Y时, X必就是R的超键,那么称R就是第四范式的模式。(12)推理规则的正确性与完备性:正确性就是指,如果X→Y就是从推理规则推出的,那么X→Y在F+中。完备性就是指,不能从F使用推理规则导出的函数依赖不在F+中。(13)依赖集的覆盖与等价:关系模式R(U)上的两个函数依赖集F与G,如果满足F+=G+,则称F与G就是等价的。如果F与G等价,则可称F覆盖G或G覆盖F。

(14)最小依赖集:如果函数集合F满足以下三个条件:(1)F中每个函数依赖的右部都就是单属性; (2)F中的任一函数依赖X→A,其F-{X→A}与F就是不等价的;(3)F中的任一函数

依赖X→A,Z为X的子集,(F-{X→A})∪{Z→A}与F不等价。则称F为最小函数依赖集合,记为Fmin。

(15)无损联接:设R就是一关系模式,分解成关系模式ρ={R1,R2、、、,Rk},F就是R上的

一个函数依赖集。如果对R中满足F的每一个关系r都有r=πR1(r)πR2(r)、、、πRk(r)则称这个分解相对于F就是"无损联接分解"。

(16)保持依赖集:所谓保持依赖就就是指关系模式的函数依赖集在分解后仍在数据库中

保持不变, 即关系模式R到ρ={R1,R2,、、、,R k}的分解,使函数依赖集F被F这些R i上的投影蕴涵。

(17)多值依赖:设R(U)就是属性集U上的一个关系模式,X,Y,Z就是U的子集,并且

Z=U-X-Y, 用x,y,z分别代表属性集X,Y,Z的值,只要r就是R的关系,r中存在元组(x,y1,z1)与(x,y2,z2)时, 就也存在元组(x,y1,z2)与(x,y2,z1),那么称多值依赖(MultiValued

Dependency MVD) X→→Y在关系模式R中成立。

4、2 关系模式R有n个属性,在模式R上可能成立的函数依赖有多少个? 其

中平凡的函数依赖有多少个?非平凡的函数依赖有多少个?

(要考虑所有可能的情况,数学排列组合问题。对于数据库本身而言,本题没多大意义) 所有属性相互依赖时,函数依赖最多。

•平凡的函数依赖:对于函数依赖X→Y,如果Y X,那么称X→Y就是一个“平凡的函数依赖”。

4、3 建立关于系、学生、班级、社团等信息的一个关系数据库, 一个系有若干个专业,

每个专业每年只招一个班,每个班有若干个学生,一个系的学生住在同一宿舍区, 每个学生可以参加若干个社团,每个社团有若干学生。

描述学生的属性有:学号、姓名、出生年月、系名、班级号、宿舍区。

描述班级的属性有:班级号、专业名、系名、人数、入校年份。

描述系的属性有:系名、系号、系办公地点、人数。

描述社团的属性有:社团名、成立年份、地点、人数、学生参加某社团的年份。

请给出关系模式,写出每个关系模式的最小函数依赖集,指出就是否存在传递函数依赖, 对于函数依赖左部就是多属性的情况,讨论函数依赖就是完全函数依赖还就是部分函数依赖。指出各关系的候选键、外部键,有没有全键存在?

各关系模式如下:

学生(学号,姓名,出生年月,系名,班级号,宿舍区)

班级(班级号,专业名,系名,人数,入校年份)

系(系名,系号,系办公地点,人数)

社团(社团名,成立年份,地点,人数)

加入社团(社团名,学号,学生参加社团的年份)

学生(学号,姓名,出生年月,系名,班级号,宿舍区)

●“学生”关系的最小函数依赖集为:

Fmin={学号→姓名,学号→班级号,学号→出生年月,学号→系名,系名→宿舍区}

●以上关系模式中存在传递函数依赖,如:学号→系名,系名→宿舍区

●候选键就是学号,外部键就是班级号,系名。

notice: 在关系模式中,如果Y→X,X→A,且X Y(X不决定Y), A不属于X,那么称Y→A 就是传递依赖。

班级(班级号,专业名,系名,人数,入校年份)

●“班级”关系的最小函数依赖集为:

Fmin={(系名,专业名)→班级号,班级号→人数,班级号→入校年份,班级号→系名,班级号→专业名}

(假设没有相同的系,不同系中专业名可以相同)

●以上关系模式中不存在传递函数依赖。

●“(系名,专业名)→班级号”就是完全函数依赖。

●候选键就是(系名,专业名),班级号,外部键就是系名。

系(系名,系号,系办公地点,人数)

●“系”关系的最小函数依赖集为: Fmin={系号→系名,系名→系办公地点,系名→人数,系名→系号}

●以上关系模式中不存在传递函数依赖

●候选键就是系名,系号

社团(社团名,成立年份,地点,人数)

●“社团”关系的最小函数依赖集为: Fmin={社团名→成立年份,社团名→地点,社团名→人数)

相关文档
最新文档