第06章_关系数据理论(习题课)
- 格式:ppt
- 大小:549.50 KB
- 文档页数:40
第六章关系数据理论一、设关系模式R(ABCD),F是R上成立的FD集,F={A→B,C→B},则相对于F,试写出关系模式R的关键码。
并说明理由。
答:关键码是ACD。
理由:从已知的F,可导出AC->B再根据扩展律得ACD->B二、设关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C}。
1、试写出属性集BD的闭包(BD)+。
2、试写出所有左部是B的函数依赖(即形为“B→?”)。
答:1.(BD)+=BCD2.B->C三、设关系模式R(ABC),F是R上成立的FD集,F={ B→C,C→A},那么分解ρ={AB,AC}相对于F,是否为无损分解和保持FD?答;不是无损分解。
无损分解应该属于3NF,即无传递函数依赖。
应该分解为ρ={BC,AC}四、设有关系模式R(运动员编号、比赛项目、成绩、比赛类别、比赛主管),如果规定:每个运动员每参加一个比赛项目,只有一个成绩;每个比赛项目只属于一个比赛类别;每个比赛类别只有一个比赛主管。
试回答下列问题:1、根据上述规定,写出模式R的基本FD和关键码;2、说明R不是2NF的理由,并把R分解成2NF模式集;3、进而分成3NF 模式集。
答:1.已知R(运动员编号、比赛项目、成绩、比赛类别、比赛主管)FD={运动员编号->比赛项目, 运动员编号->成绩, 比赛项目->比赛类别, 比赛类别->比赛主管}关键码:运动员编号2.2NF的定义:所有非主属性都是完全函数依赖码。
原式中“比赛主管、比赛类别”对关键码“比赛类别”不存在完全函数依赖,故判定R不是2NF。
应该分解为R1(运动员编号、成绩)和R2(比赛项目、比赛类别、比赛主管)3.3NF分解为R1(运动员编号、成绩)R2(比赛项目、比赛类别)R3(比赛类别、比赛主管)五、设关系模式R(ABCD),在R上有四个相应的FD集及分解:1、F={B→C,D→A},ρ={BC,AD}2、F={AB→C,C→A,C→D},ρ={ACD,BC}3、F={A→B C,C→AD,},ρ={ABC,AD}4、F={A→B,B→C,C→D},ρ={AB,ACD}试对上述四种情况分别回答些列问题:①确定R的关键码②是否无损分解?③是否保持FD集?④确定ρ中每个模式的范式级别。
第6章关系数据理论习题练习一。
指出下列关系模式是第几范式(1)R(X,Y,Z) FD={XY→Z}其典型实例就是我们的SC(Sno,Cno,Grade)参考解答:R(X,Y,Z)的主码为XY,非主属性为Z。
关系模式R(X,Y,Z)中不存在非主属性对码的部分函数依赖——>属于二范式关系模式R(X,Y,Z)中不存在非主属性对码的传递函数依赖——>属于三范式关系模式R(X,Y,Z)中起决定作用的只有码——>属于BC范式故在函数依赖范围内,关系模式R(X,Y,Z)属于BC范式(2)R(X,Y,Z) FD={ Y→Z, XZ→Y }参考解答:R(X,Y,Z)的主码为XZ,非主属性为Y属于第三范式:因为其中不存在非主属性(Y)对码(XZ)的部分函数依赖和传递函数依赖;但不属于BC范式:因为起决定作用的除了码以外还有非主属性(Y)(3)R(X,Y,Z) FD={ Y→Z, Y→X, X→YZ }参考解答:R(X,Y,Z)的候选码为Y和X,非主属性为Z不存在非主属性对码的部分函数依赖和传递函数依赖,故属于三范式又,起决定作用的只有码,所以也是BC范式(4)R(X,Y,Z) FD={ X→Y, X→Z }参考解答:典型实例Student(Sno,Sname,Ssex)R(X,Y,Z)的候选码为X,非主属性为Y和Z不存在非主属性对码的部分函数依赖和传递函数依赖,故属于三范式又,起决定作用的只有码,所以也是BC范式(5)R(W,X,Y,Z) FD={ X→Z, WX→Y }参考解答:典型实例S_C(Sno,Cno,Grade,,Cname)R(W,X,Y,Z)的候选码为WX,非主属性为Y和Z因为非主属性Z不是完全依赖于码(WX),而是依赖于码中的一部分(X),所以存在非主属性对码的部分函数依赖,故没有达到二范式,仅属于一范式(6)R(A,B,C,D) ,FD={B→D, AB→C }参考解答:典型实例S_C(Sno,Cno ,Grade,,Cname)R(W,X,Y,Z)的候选码为WX,非主属性为Y和Z因为非主属性Z不是完全依赖于码(WX),而是依赖于码中的一部分(X),所以存在非主属性对码的部分函数依赖,故没有达到二范式,仅属于一范式(7)R(A,B,C) FD={ A→B, B→A, C→A }参考解答:典型实例:若规定一个系的学生都住在一个住处,一个住处也只能入住一个系,则典型实例为:S_Loc(Sdept, Sloc, Sno) 主码为C,非主属性为AB,因存在非主属性(B)对码C的传递函数依赖,故不是三范式,最多是二范式又,不存在非主属性对码的部分函数依赖,故属于二范式练习二:设关系模式R(A,B,C,D,E),FD={A->D, E->D, D->B, BC->D, EC->A}。
第二章关系数据库1 .试述关系模型的三个组成部分。
答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成.2 .试述关系数据语言的特点和分类.答:关系数据语言可以分为三类:关系代数语言。
关系演算语言:元组关系演算语言和域关系演算语言。
SQL:具有关系代数和关系演算双重特点的语言。
这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。
3 (略)4 .5 。
述关系模型的完整性规则。
在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?答:实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值.即属性F本身不是主属性,则可以取空值,否则不能取空值。
6.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:1)求供应工程J1零件的供应商号码SNO:πSno(σJno=‘J1’(SPJ))2)求供应工程J1零件P1的供应商号码SNO:πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ))3)求供应工程J1零件为红色的供应商号码SNO:πSno(πSno,,Pno(σJno=‘J1‘(SPJ))∞πPno(σCOLOR=’红‘(P)))4)求没有使用天津供应商生产的红色零件的工程号JNO:πJno(SPJ)—πJNO(σcity=‘天津’∧Color=‘红‘(S∞SPJ∞P)5)求至少用了供应商S1所供应的全部零件的工程号JNO:πJno,Pno(SPJ)÷πPno(σSno=‘S1‘(SPJ))7. 试述等值连接与自然连接的区别和联系。
答:连接运算符是“="的连接运算称为等值连接。
关系数据理论练习题一、选择题1. 在关系数据库中,下列哪个术语表示表中的列?A. 元组B. 属性C. 字段D. 记录A. JOINB. UNIONC. INTERSECTD. EXCEPT3. 设有关系R(A, B, C),下列哪个选项是R上的投影操作?A. πA,B(R)B. σA,B(R)C. τA,B(R)D. γA,B(R)4. 设有关系R(A, B)和S(B, C),下列哪个选项是R与S的自然连接操作?A. R × SB. R ⨝ SC. R ∩ SD. R ∪ S二、填空题1. 关系数据库中的基本结构是______,它用来表示实体集和实体集之间的联系。
2. 若关系R和S进行自然连接,则R与S必须具有______属性。
3. 在关系数据库中,______操作用于从关系中选取满足条件的元组。
4. 设有关系R(A, B, C),则投影操作πA(R)的结果是______。
三、判断题1. 关系数据库中的每一列都有一个唯一的名称,称为属性名。
()2. 关系模型中,元组的位置可以任意交换。
()3. 自然连接是一种特殊的等值连接,要求两个关系中进行比较的分量必须是相同的属性组。
()4. 投影操作会改变原关系中的属性顺序。
()四、简答题1. 请简述关系数据库的三个范式。
2. 什么是函数依赖?请举例说明。
3. 什么是关系的规范化?为什么需要对关系进行规范化?4. 请解释主键和外键的概念。
五、综合题六、设计题图书(包含书名、作者、出版社、出版日期、ISBN等)读者(包含读者ID、姓名、性别、电话、邮箱等)借阅(包含借阅ID、图书ISBN、读者ID、借阅日期、归还日期等)学生(学号,姓名,性别,年龄,专业)课程(课程号,课程名,学分,教师编号)教师(教师编号,姓名,职称,电话)七、SQL编程题2. 假设有一个“订单”表,包含字段:订单ID(主键)、客户ID、订单日期、订单金额。
请编写SQL语句,查询2021年所有订单金额大于1000元的订单信息。
问答题6—关系数据理论一、第6章课后习题P195-2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。
描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区描述班级的属性有:班号、专业名、系名、人数、入校年份描述系的属性有:系号、系名、系办公室地点、人数描述学会的属性有:学会名、成立年份、地点、人数有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。
一个系的学生住在同一个宿舍区。
每个学生可参加若干学会,每个学会有若干学生。
学生参加某学会有一个入会年份。
(1)请写出关系模式答:学生(学号,姓名,出生年月,系名,班号,宿舍区)班级(班号,专业名,系号,班级人数,入校年份)系(系号,系名,系办公室地点,系人数)学会(学会名,成立年份,地点,学会人数)参加(学号,学会名,入会年份)(2)写出每个关系模式的最小函数依赖集,指出是否存在传递函数依赖。
对于函数依赖左部是多属性的情况下,讨论函数依赖是完全依赖,还是部分函数依赖。
答:F(学生) ={学号→姓名,学号→出生日期,学号→班号,班号→系名,系名→宿舍区}F(班级) ={班号→专业名,班号→班级人数,班号→入校年份,专业名→系名,(专业名,入校年份→班号)}F(系) ={系号→系名,系名→系号,系号→系办公室地点,系号→系人数}F(学会) ={学会名→成立年份,学会名→地点,学会名→学会人数,F(参加) ={(学号,学会名)→入会年份}其中:F(学生)中存在传递函数依赖:学号→系名,学号→宿舍区,班号→宿舍区因为:学号→班号,班号→系名,系名→宿舍区C(班级)中存在传递函数依赖:班号→系名因为:班号→专业名,专业名→系名(S#,PN)→DATE2和(CS,CDA TE)→C#均为SP中的函数依赖,是完全函数依赖。
(3)指出各个关系模式的候选码、外码,以及有没有全码存在 答:P196-12.下面的结论哪些是正确的,哪些是错误的,对于错误的结论请给出理由或给出一个反例说明之。
数据库第二版课后习题答案数据库第二版课后习题答案数据库是计算机科学中重要的概念之一,它提供了一种有效地存储和管理数据的方式。
数据库系统的设计与实现是数据库课程的重要内容之一。
在学习数据库课程时,课后习题是巩固知识和提高能力的重要途径。
本文将为大家提供数据库第二版课后习题的答案,希望对大家的学习有所帮助。
第一章数据库系统概述1. 数据库是什么?答:数据库是一个有组织的、可共享的、可维护的数据集合,它以一定的数据模型为基础,描述了现实世界中某个特定领域的数据和关系。
2. 数据库系统的特点有哪些?答:数据库系统具有以下特点:- 数据的独立性:数据库系统将数据与程序相分离,使得数据的修改不会影响到程序的运行。
- 数据的共享性:多个用户可以同时访问数据库,并且可以共享数据。
- 数据的冗余性小:通过数据库系统的数据一致性和完整性约束,可以减少数据的冗余性。
- 数据的易扩展性:数据库系统可以方便地进行扩展和修改,以满足不同需求。
- 数据的安全性:数据库系统提供了权限管理和数据加密等机制,保证数据的安全性。
第二章关系数据库与SQL1. 什么是关系数据库?答:关系数据库是一种基于关系模型的数据库,它使用表格(关系)来表示和存储数据。
关系数据库中的数据以行和列的形式组织,每个表格代表一个实体集,每一行代表一个实体,每一列代表一个属性。
2. 什么是SQL?答:SQL(Structured Query Language)是一种用于管理关系数据库的语言。
它包含了数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL)等部分。
通过SQL,用户可以对数据库进行创建、查询、更新和删除等操作。
第三章数据库设计1. 数据库设计的步骤有哪些?答:数据库设计的步骤包括:- 需求分析:确定数据库的需求和目标,了解用户的需求。
- 概念设计:根据需求分析的结果,设计数据库的概念模型,包括实体、属性和关系等。
- 逻辑设计:将概念模型转换为逻辑模型,包括表格的设计、关系的建立和约束的定义等。
第一部分:一、求最小依赖集例:设有依赖集:F={AB→C,C→A,BC→D,ACD→B,D→EG,BE→C,CG→BD,CE→AG},计算与其等价的最小依赖集。
解:1、将依赖右边属性单一化,结果为:F1={AB→C,C→A,BC→D,ACD→B,D→E,D→G,BE→C,CG→B,CG→D,CE→A,CE→G}2、在F1中去掉依赖左部多余的属性。
对于CE→A,由于C→A成立,故E是多余的;对于ACD→B,由于(CD)+=ABCEDG,故A是多余的。
删除依赖左部多余的依赖后:F2={AB→C,C→A,BC→D,CD→B,D→E,D→G,BE→C,CG→B,CG→D,CE→G}3、在F2中去掉多余的依赖。
对于CG→B,由于(CG)+=ABCEDG,故CG→B是多余的。
删除依赖左部多余的依赖后:F3={AB→C,C→A,BC→D,CD→B,D→E,D→G,BE→C,CG→D,CE→G}CG→B与CD→B不能同时存在,但去掉任何一个都可以,说明最小依赖集不唯一。
二、求闭包例:关系模式R(U,F),其中U={A,B,C,D,E,I},F={A→D,AB→E,BI→E,CD→I,E→C},计算(AE)+。
解:令X={AE},X(0)=AE;计算X(1);逐一扫描F集合中各个函数依赖,在F中找出左边是AE子集的函数依赖,其结果是:A→D,E→C。
于是X(1)=AE∪DC=ACDE;因为X(0)≠X(1),且X(1)≠U,所以在F中找出左边是ACDE子集的函数依赖,其结果是:CD→I。
于是X(2)=ACDE∪I=ACDEI。
虽然X(2)≠X(1),但在F中未用过的函数依赖的左边属性已没有X(2)的子集,所以不必再计算下去,即(AE)+=ACDEI。
三、求候选键例1:关系模式R(U,F),其中U={A,B,C,D},F={A→B,C→D},试求此关系的候选键。
解:首先求属性的闭包:(A)+=AB,(B)+=B,(C)+=CD,(D)+=D(AB)+=AB,(AC)+=ABCD=U,(AD)+=ABD,(BC)+=BCD,(BD)+=BD,(CD)+=CD (ABD)+=ABD,(BCD)+=BCD,因(AC)+=ABCD=U,且(A)+=AB,(C)+=CD,由闭包的定义,AC→A,AC→B,AC→B,AC→D,由合并规则得AC→ABCD=U;由候选码的定义可得AC为候选码。