《数据库原理及应用》之FAQ 4

第四章

142. 什么是关系数据库?
关系数据库是以关系模型为基础的数据库,它利用关系来描述现实世界。一个关系既可以用来描述一个实体及其属性,也可以用来描述实体间的联系。关系实质上是一张二维表。

《数据库原理及应用》之FAQ1

《数据库原理及应用》之FAQ2

《数据库原理及应用》之FAQ3

《数据库原理及应用》之FAQ4

《数据库原理及应用》之FAQ5

《数据库原理及应用》之FAQ6

《数据库原理及应用》之FAQ7

《数据库原理及应用》之faq-8-9-10

143. 一个关系模型有哪两个方面内容?
一个关系模型包括外延和内涵两个方面的内容。
外延就是通常所说的关系,或实例,或当前值。它与时间有关,随着时间的推移在不断变化。(由于元组的插入、删除、修改引起的)
内涵是与时间独立的,包括关系、属性、及域的一些定义和说明,还有各种数据完整性约束。

144. 关系数据库设计理论主要包括哪些内容?
关系数据库设计理论主要包括三个方面的内容:数据依赖、范式、模式设计方法。其中数据依赖起着核心的作用。

145. 数据库使用过程中存在的问题是什么?
数据冗余、更新异常、插入异常、删除异常。

146. 函数依赖含义是什么?
函数依赖: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的一个函数依赖。

147. 什么是完全函数依赖?
完全函数依赖:设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。

148. 什么是部分函数依赖?
设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。

149. 什么是传递函数依赖?
设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。

150. 候选键、主属性、非主属性的含义。
设有关系模式R(A1,A2,……,An),F是R的一个函数依赖集,X是{A1,A2,……,An}的一个子集。如果(1)X→A1A2……An∈F+,且(2)不存在X真子集Y,使得Y→A1A2……An成立,则称X是R的候选键。
包含在任何一个候选键中的属性称为主属性,不包含在任何一个候选键中的属性称为非主属性。

151. 什么是无损连接性?
如果将从一个关系模式中投影分解出来的两个或多个关系模式经过自然连接能够恢复到原先的关系模式,则称这种投影分解具有无损连接性。

152. 什么是依赖保持性?
在对关系模式进行规范化分解时,分解后的关系模式保持了原关系模式中的函数依赖关系,称这种性质为依赖保持性。

153. 什么是规范化?
规范化:规范化是将一个低一级范式的关系模式通过投影运算转化为若干个高一级范式的关系模式的集合的过程。

154. 什么是关系规范化?
关系规范化:关系规范化指的是根据规范化理论用几个结构简单的关系取代结构复杂的关系,以消除数据库操作的异常情况。

155. 什么是范式?
范式是对关系的规范化约束要求,如果一个关系满足某个特定的约束值,则称它属于某种特定的范式。

156. 关系规范化共有哪些范式?分别是什么意思?
(1)1NF:第一范式。如果关系模式R的所有属性的值域中每一个值都是不可再分解的值, 则称R是属于第一范式模式。如果某个数据库模式都是第一范式的,则称该数据库存模式属于第一范式的数据库模式。 第一范式的模式要求属性值不可再分裂成更小部分,即属性项不能是属性组合和组属性组成。
(2)2NF:第二范式。如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键, 则称是第二范式模式;如果某个数据库模式中每个关系模式都是第二范式的,则称该数据库模式属于第二范式的数据库模式。 (注:如果A是关系模式R的候选键的一个属性,则称A是R的主属性,否则称A是R的非主属性。)
(3)3NF:第三范式。如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键, 则称R是第三范式的模式。如果某个数据库模式中的每个关系模式都是第三范式,则称为3NF的数据库模式。
(4)BCNF:BC范式。如果关系模式R是第一范式,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式。
(5)4NF:第四范式。设R是一个关系模式,D是R上的多值依赖集合。如果D中成立非平凡多值依赖X→→Y时, X必是R的超键,那么称R是第四范式的模式。

157. 推理规则的正确性和完备性分别是指什么?
正确性是指,如果X→Y是从推理规则推出的,那么X→Y在F+中。
完备性是指,不能从F使用推理规则导出的函数依赖不在F+中。

158. 关系模式的分解有几个不同的衡量标准?
(1)分解具有无损联接;
(2)分解要保持函数依赖;
(3)分解既要保持依赖,又要具有无损联接。

159. 模式设计方法的原则有哪些?
关系模式R相对于函数依赖集F分解成数据库模式ρ={R1,R2,……Rk},一般应具有下面三个特性:
(1) ρ中每个关系模式Ri是3NF或BCNF
(2) 保持无损联结
(3) 保持函数依赖集
(4) ρ中模式个数最少和属性总数最少。

160. 一个好的模式设计方法应符合哪三条原则?
表达性,分离性,最小冗余性。
表达性涉及到两个数据库模式的等价性问题,即数据等价和依赖等价,分别用无损联接和保持函数依赖性来衡量。
分离性是指属性间的“独立联系”应该用不同的关系模式表达。
最小冗余性要求在分解后的数据库能表达原来数据库的所有信息这个前提下实现。
关系模式设计方法基本上可以分为分解与合成两大类。

161. 为什么要研究关系规范化理论?
(1) 我们说,用几个结构简单的关系去取代原来结构复杂的关系的过程叫做关系规范化,关系规范化理论是数据库设计过程中的一个非常有用的辅助工具。
(2) 一般来讲,通过规范化理论可以把不好的关系数据库模式逐步转变为好的关系数据库模式,所以,任何一个设计关系数据库的人,都要熟悉规范化技术和理论。
(3) 而规范化又是和关系模式中的各属性之间的互相依赖关系有关,也就是说,数据库模式的好坏和关系中所含属性间的依赖关系有关。
(4) 所以,为了能设计出好的关系数据库模式,我们要研究关系规范化理论。

162. 试给出2NF、3NF、BCNF的形式化定义,并说明他们之间的区别和联系。
(1) 如果关系模式在达到1NF的基础上,使每个非主属性都完全依赖于每个关系键,则该关系模式达到2NF的要求。
(2) 如果关系模式属于2NF,且每个非主属性都不传递依赖于关系的任何键,这该关系模式属于3NF的要求。
(3) 若关系符合1NF,且对于每个函数依赖X→Y,X必含有候选键,或者关系中的每个决定属性集都是候选键,则关系达到BCNF的要求。
(4) 达到2NF的关系模式没有去掉非主属性对关系键的传递依赖关系,而达到3NF的关系模式去掉了非主属性对关系键的传递依赖关系。2NF和3NF没有去掉主属性对关系键的依赖关系,而满足BCNF的关系消除了任何属性(主属性或非主属性)对键的部分依赖或传递依赖。
(5) 2NF,如果关系满足某个范式要求,也会满足级别较低的所有范式的要求,即较高层次的范式比较低层次的范式具有更合乎要求?3NF?5)各个范式之间的联系有BCNF

163. 证明在关系数据库中任何的二元关系模式必定是BCNF。
设R为一个二元关系R(x1,x2),则属性x1和x2之间可能存在以下几种依赖关系:
(1) x1→x2,但x2 !→x1,则关系R的候选关键字为x1,函数依赖的左部包含候选关键字x1,所以R为BCNF。
(2) x1 !→x2,x2 !→x1,则关系R的候选关键字为x1和x2,这两个函数依赖的左部都包含了R的任一候选关键,所以R为BCNF。
(3) xl→x2,x2→x1,则关系R的候选关键字为(x1,x2),R上没有函数依赖,所以R为BCNF。

164. 全键的关系是否必然属于3NF?为什么?也是否必然属于BCNF?为什么?
(1) 全键的关系一定属于3NF。因为根据3NF的定义,如果关系模式属于2NF,且每个非主属性都不传递依赖于关系的任何键,这该关系模式属于3NF的要求。而全键指的是关系的所有属性组合起来才是关系键,即所有的属性均为主属性,关系中不存在非主属性,也就不存在非主属性对关系键的传递依赖关系,所以,全键的关系必然属于3NF。
(2) 但全键的关系不一定属于BCNF。虽然全键的关系不存在非主属性,只有主属性,但这些主属性中可能存在着对键的部分和传递函数依赖,而BCNF要求不存在主属性对键的部分和传递函数依赖,所以,全键的关系不一定属于BCNF。

165. 试证明由关系框架中全部属性组成的集合为候选关键字的关系是3NF,也是BCNF。
由于由关系框架中的全部属性组成的集合为候选关键字,该关系中没有非主属性,满足关系R属于3NF的条件;每个非主属性既不部分依赖于候选关键字,也不传递依赖于候选关键字。
又因为它没有非候选关键字属性,也满足关系属于BCNF的两个条件:
(1) 所有非主属性对每个候选关键字都完全依赖;
(2) 没有任何属性完全函数依赖于非候选关键字的任一组属性。再因为它只是一个候选关键字,又满足属于BCNF的另一条件;
(3) 所有的主属性对每个不包含它的候选关键字也是完全函数依赖。

166. 简述关系模式规范化的步骤。
(1) 对1NF关系进行投影,消去非主属性对键的部分函数依赖,产生一组2NF关系;
(2) 对2NF关系进行投影,消去非主属性对键的传递函数依赖,产生一组3NF关系;
(3) 对3NF关系进行投影,消去决定因素不是键的函数依赖,产生一组BCNF关系。

167. 什么叫关系模式分解?
所谓关系模式分解是指根据规范化理论将一个结构复杂的关系分解为几个结构简单的关系,以消除数据库操作的异常情况。

168. 为什么要进行关系模式分解?
进行关系模式分解的目的是消除关系模式中存在的存入、删除、修改异常和数据冗余等弊病。

169. 模式分解要遵守什么准则?
模式分解要遵守的准则是:取原始关系的投影,消去决定因素不是候选键的函数依赖。要求分解既要保持函数依赖,又要具有无损连接性。

170. 对函数依赖X→Y的定义加以扩充,X和Y可以为空属性集,用φ表示, 那么X→φ,φ→Y,φ→φ的含义是什么?
根据函数依赖的定义,以上三个表达式的含义为:
(1) 一个关系模式R(U)中,X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2, 由t1[X]=t2[X]必有t1[φ]=t2[φ]。即X→φ表示空属性函数依赖于X。这是任何关系中都存在的。
(2) φ→Y表示Y函数依赖于空属性。由此可知该关系中所有元组中Y属性的值均相同。
(3) φ→φ表示空属性函数依赖于空属性。这也是任何关系中都存在的。

171. 已知关系模式R(ABC),F={A→C,B→C},求F+。
可以直接通过自反律、增广律、传递律加以推广:
F+={φ→φ,A→φ,B→φ,C→φ,A→C,B→C,AB→φ,AB→A,AB→B,AB→C,AB→BC,AB→AB,AB→ABC,BC→φ,BC→C,BC→B,BC→BC,AC→φ,AC→C,AC→A,AC→AC,ABC→φ,ABC→A,ABC→B,ABC→C,ABC→BC,ABC→AB,ABC→ABC}

172. 设R=ABCD,R上的F={A→B,B→C,D→B},把R分解成BCNF模式集。
(1)若首先把R分解成{ACD,BD},试求F在这两个模式上的投影。
(2)ACD和BD是BCNF吗?如果不是,请进一步分解。
解:(1)πACD(F)={A→C}
πBD(F)={D→B}
(2)因为根据BCNF的定义,要求关系模式是第一范式,且每个属性都不传递依赖于R的侯选键。 BCD中(A,D)为候选键,可是(A,D)→A, A→C,所以它不是BCNF模式。
它可进一步分解为:{AC,DC},此时AC,DC均为BCNF模式。
BD是BCNF,因为R2(BD)是第一范式,且每个属性都不传递依赖于D(候选键),所以它是BCNF模式。

173. 设关系模式R(S#,C#,GRADE,TNAME,TADDR),其属性分别表示学生学号、 选修课程的编号,成绩、任课教师地址等意义。如果规定,每个学生每学一门课只有一个成绩; 每门课只有一个教师任教;每个教师只有一个地址(此处不允许教师同名同姓)。
(1)试写出关系模式R基本的函数依赖和候选键。
(2)试把R分解成2NF模式集并说明理由。
(3)试把R分解成3NF模式集,并说明理由。
解:(1)F={(S#,C#)→GRADE,C#→TNAME,TNAME→TADDR}
侯选键是(S#,C#)。
(2)在模式R中,TNAME不完全依赖于键(S#,C#),因此需进行分解,可分解为下列两个关系。
SC={S#,C#,GRADE} C={C#,TNAME,TADDR}
分解后,SC中,GRADE完全依赖于侯选键(S#,C#),在C中,主属性是C#,TNAME、TADDR均完全依赖于C#。 因此,该分解符合2NF模式。
(3)3NF:若每个关系模式是2NF,则每个非主属性都不传递于R的候选键。
按上述已分好的两个模式,SC中已满足“每个非主属性都不传递于R的候选键”,已是3NF,而在C中, C#→TNAME,TNAME→TADDR,TADDR传递依赖于C#,因此还需分成两个模式:CT(C#,TNAME), T(TNAME,TADD)。
分解后,总共有SC={S#,C#,GRADE},CT(C#,TNAME), T(TNAME,TADD)三个模式。
该分解符合3NF模式。

174. 设关系模式R(ABC)上有一个多值依赖A→→B。 如果已知R的当前关系中存在三组(ab1c1)、(ab2c2)和(ab3c3),那么这个关系中至少还应存在哪些元组?
从多值依赖的定义可以得出,至少应存在下列元组:
(ab1c2)、(ab1c3)、(ab2c1)、(ab2c3)、(ab3c1)、(ab3c2)

175. 建立关于系、学生、班级、社团等信息的一个关系数据库, 一个系有若干个专业,每个专业每年只招一个班,每个班有若干个学生,一个系的学生住在同一宿舍区, 每个学生可以参加若干个社团,每个社团有若干学生。
描述学生的属性有:学号、姓名、出生年月、系名、班级号、宿舍区。
描述班级的属性有:班级号、专业名、系名、人数、入校年份。
描述系的属性有:系名、系号、系办公地点、人数。
描述社团的属性有:社团名、成立年份、地点、人数、学生参加某社团的年份。
请给出关系模式?
解:各关系模式如下:
学生(学号,姓名,出生年月,系名,班级号,宿舍区)
班级(班级号,专业名,系名,人数,入校年份)
系(系名,系号,系办公地点,人数)
社团(社团名,成立年份,地点,人数)
加入社团(社团名,学号,学生参加社团的年份)

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>