收藏 分销(赏)

关系数据库习题解答.doc

上传人:s4****5z 文档编号:9435038 上传时间:2025-03-26 格式:DOC 页数:8 大小:907.50KB
下载 相关 举报
关系数据库习题解答.doc_第1页
第1页 / 共8页
关系数据库习题解答.doc_第2页
第2页 / 共8页
点击查看更多>>
资源描述
第二章 关系数据库 本章系统地讲解了关系数据库的重要概念,并着重对关系模型进行了阐述。关系模型包括关系数据结构、关系操作集合以及关系完整性约束三个组成部分。本章分别对这三个部分的内容进行了详细的分析与论述。 习题解答和解析 1. 试述关系模型的三个组成部分。 答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 2. 试述关系数据语言的特点和分类。 答:关系数据语言可以分为三类: 关系代数语言 例如 ISBL 元组关系演算语言 例如 APLHA,QUEL域关系演算语言 例如 QBE 关系数据语言 关系演算语言   具有关系代数和关系演算双重特点的语言 例如 SQL 这些关系数据语言的共同特点是:具有完备的表达能力;是非过程化的集合操作语言;功能强; 能够嵌入高级语言中使用。 3. 定义并理解下列术语,说明它们之间的联系与区别 (1) 域,笛卡儿积,关系,元组,属性 答: 域:域是一组具有相同数据类型的值的集合。 笛卡儿积:给定一组域 D1,D2, … ,Dn,这些域中可以有相同的。这组域的笛卡儿积为 D1 × D2 ×…× Dn={(d1,d2 … ,dn)|di∈Di,i =1,2, … ,n} 其中每一个元素(d1,d2 … ,dn)叫做一个 n 元组 (n-tuple) 或简称元组 (Tuple)。元素中的每一个值di叫做一个分量 (Component)。 关系:在域 D1,D2, … ,Dn 上笛卡儿积D1 × D2 ×…× Dn 的子集称为关系,表示为 R(D1,D2...,Dn) 元组:关系中的每个元素是关系中的元组。 属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。 (2) 主码,候选码,外部码 答: 候选码:若关系中的某一属性组的值能惟一地标识一个元组,则称该属性组为候选码 (Candidate key)。 主码:若一个关系有多个候选码,则选定其中一个为主码(Primary key) 。 外部码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码 Ks 相对应,则称F是基本关系R的外部码(Foreign key),简称外码。 基本关系R称为参照关系(Referencing relation),基本关系S称为被参照关系 (Referenced relation)或目标关系(TargetMation)。关系R和S可以是相同的关系。 (3) 关系模式,关系,关系数据库 答: 关系模式:关系的描述称为关系模式(Relation Schema)。它可以形式化地表示为 R(U ,D ,dom,F) 其中 R 为关系名,U 为组成该关系的属性名集合,D为属性组U中属性所来自的域 ,dom为属性向域的映像集合,F为属性间数据的依赖关系集合。 关系:在域 D1,D2, … ,Dn 上笛卡儿积D1×D2×…×Dn 的子集称为关系,表示为 R(D1,D2, … ,Dn) 关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的;而关系是动态的、随时间不断变化的,因为关系操作在不断更新着数据库中的数据。 关系数据库:关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。 4. 试述关系模型的完整性规则 O 在参照完整性中 , 为什么外部码属性的值也可以为空?什么情况下才可以为空? 答: 关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。 其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称做是关系的两个不变性,应该由关系系统自动支持。 (1)实体完整性规则:若属性 A 是基本关系 R 的主属性,则属性 A 不能取空值。 (2)参照完整性规则:若属性 ( 或属性组 )F 是基本关系 R 的外码 , 它与基本关系S的主码 Ks 相对应(基本关系 R 和 S 不一定是不同的关系),则对于 R 中每个元组在F上的值必须为: 1) 1)     或者取空值 (F的每个属性值均为空值); 2) 2)     或者等于S中某个元组的主码值。 (3)用户定义的完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。 在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定,但前提条件是该外部码属性不是其所在关系的主属性。 例如,在下面的"学生"表中,"专业号"是一个外部码,不是学生表的主属性,可以为空,其语义是,该学生的专业尚未确定。 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) 而在下面的"选修"表中的"课程号"虽然也是一个外部码属性,但它又是"课程"表的主属性,所以不能为空,因为关系模型必须满足实体完整性。 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) 5. 设有一个SPJ数据库,包括S、P、J、SPJ 四个关系模式: S(SNO,SNAME,STATUS ,CITY); P(PN0,PNAME,COLOR,WEIGHT); J(JNO,JNAME,CITY); SPJ(SN0,PNO,JN0,QTY); 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成; 零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成; 工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成; 供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。 今有若干数据如下: S表 SNO SNAME STATUS CITY S1 S2 S3 S4 S5 精 益 盛 锡 东方红 丰泰盛 为 民 20 10 30 20 30 天津 北京 北京 天津 上海               P表 PNO PNAME COLOR WEIGHT P1 P2 P3 P4 P5 P6 螺 母 螺 栓 螺丝刀 螺丝刀 凸 轮 齿 轮 红 绿 蓝 红 蓝 红 12 17 14 14 40 30 J 表 JNO JNAME CITY J1 J2 J3 J4 J5 J6 J7 三 建 一 汽 弹簧厂 造船厂 机车厂 无线电厂 半导体厂 北京 长春 天津 天津 唐山 常州 南京 SPJ 表 SNO PNO JNO QTY Sl S1 S1 S1 S2 S2 S2 S2 S2 Pl P1 P1 P2 P3 P3 P3 P3 P5 J1 J3 J4 J2 J1 J2 J4 J5 J1 200 100 700 100 400 200 500 400 400 S2 S3 S3 S4 S4 S4 S5 S5 S5 S5 P5 Pl P3 P5 P6 P6 P2 P3 P6 P6 J2 J1 J1 J1 J3 J4 J4 J1 J2 J4 100 200 200 100 300 200 100 200 200 500   试分别用关系代数、ALPHA 语言、QBE语言完成下列操作: (1)求供应工程J1零件的供应商号SNO; 答:关系代数 πSNO(σJNO=’j1’(SPJ)) ALPHA 语言 GET W(SPJ.SNO):SPJ.JNO=‘J1’ QBE 语言 SPJ SNO PNO JNO QTY   P.Sl   J1             (2) 求供应工程 Jl 零件P1的供应商号SNO; 答:关系代数 πSNO( σJNO=‘J1’∧PNO=‘J1’(SPJ)) AIPHA 语言 GET W(SPJ.SNO):SPJ.JNO=‘J1’∧SPJ.PNO=‘P1’ QBE 语言 SPJ SNO PNO JNO QTY   P.Sl P1 J1         (3) 求供应工程 J1 红色零件的供应商号SNO; 答:关系代数 πSNO(πSNO,PNO(σJN0=‘J1’(SPJ)) πPNO(σcolor=’红’(P))) ALPHA语言 RANGE P PX GET W(SPJ.SNO):   PX(PX.PNO=SPJ.PNO ∧SPJ.JNO=‘J1’∧PX.COLOR=’红’) QBE 语言       SPJ SNO PNO JNO QTY   P.Sl P1 J1           P PNO PNAME COLOR WEIGHT   P1   红         (4) 求没有使用天津供应商生产的红色零件的工程号JNO; 答:关系代数 πJNO(J)-πJNO(πSNO(σCITY=’天津’(S)) πSNO,PNO,JNO(SPJ) πPNO(σCOLOR=’红’(P)))   解析 减法运算中被减的部分是使用了天津供应商生产的红色零件的所有工程号,πJNO(J) 是全部工程的工程号,两者相减就是没有使用天津供应商生产的红色零件的工程号,包括没有使用任何零件的工程号。 AIPHA 语言 RANGE SPJ SPJX P PX S SX GET W(J.JNO):SPJX(SPJX.JNO=J.JNO∧ SX(SX.SNO=SPJX.SNO∧SX.CITY=’天津’ ∧ PX(PX.PNO=SPJX.PNO∧PX.COLOR=’红’))   解析: 1)S、P、SPJ表上各设了一个元组变量。 2)解题思路是:要找的是满足给定条件的工程号JN0,因此,对工程表J中的每一个JNO进行判断:看SPJ中是否存在这样的元组,其JNO=J.JNO, 并且所用的零件是红色的,该零件的供应商是天津的。 如果SPJ中不存在这样的元组,则该工程号JNO满足条件,放入结果集合中。如果SPJ中存在这样的元组,则该工程号JNO不满足条件,不放入结果集中。再对工程表J中的下一个JNO进行同样的判断。 直到所有JNO都检查完。结果集中是所有没有使用天津供应商生产的红色零件的工程号,包括没有使用任何零件的工程号。 QBE 语言 当不考虑没有使用任何零件的工程时 S SNO SNAME STATUS CITY   Sl     天津         P PNO PNAME COLOR WEIGHT   P1   红         SPJ SNO PNO JNO QTY Sl P1 P.J1           解析: 本题是从SPJ表中输出满足条件的JNO,没有使用任何零件的工程项目的工程号是不会出现在SPJ中的,所以本题的结果不包括没有使用任何零件的工程号。 考虑没有使用任何零件的工程 J JNO JNAME CITY P.Jl             S SNO SNAME STATUS CITY   Sl     天津           P PNO PNAME COLOR WEIGHT   P1   红           SPJ SNO PNO JNO QTY   Sl P1 J1             解析: 本题是从J表中输出满足条件的JNO,没有使用任何零件的工程项目的工程号也满足条件,所以本题的结果包括没有了使用任何零件的工程号。 (5)求至少用了S1供应商所供应的全部零件的工程号JNO。 答:关系代数 πJNO,PNO(SPJ)÷πPNO(σSNO=’S1’(SPJ))   解析: 上面公式中除号前的部分是所有工程与该工程所用的零件,除号后的部分是S1所供应的全部零件号。对于SPJ表中的某一个JNO,如果该工程使用的所有零件的集合包含了S1所供应的全部零件号,则该JNO符合本题条件,在除法运算的结果集中。可以看到,使用关系代数的除法运算概念清晰,语言表达也很简单。 ALPHA语言 (类似于《概论》P67 例14) RANGE SPJ SPJX SPJ SPJY P PX GET W(J.JNO):PX(SPJX(SPJX.PNO=PX.PNO∧SPJX.SNO=’S1’) SPJY(SPJY.JNO=J.JNO∧SPJY.PNO=PX.PNO))   解析: 1) 1)     SPJ表上设了两个元组变量:SPJX,SPJY;P 表上设了一个元组变量:PX。 2) 2)     解题思路是:要找的是满足给定条件的工程号JNO。因此,对工程表J中的每一个JNO(例如J1),进行以下一组操作: ① ①     对零件PX中的所有零件,依次对每一个零件,进行以下检查; ② ②     例如零件P1,检查SPJX,看S1是否供应了该零件,如果供应了,则再看这一个JNO(例如Jl)是否使用了该零件; ③ ③     如果对于S1所供应的每种零件,这一个JNO(例如J1)都使用了,则该JNO为(例如J1)满足要求的工程项目。 3)为了帮助理解,读者可以画出所涉及的三个表,给出一些数据,按照上面的解析步骤一步一步地分析,就能掌握解题方法,从而达到举一反三的要求。 QBE(不要求)。 6.试述等值连接与自然连接的区别和联系。 答:连接运算中有两种最为重要也最为常用的连接,一种是等值连接(Equijoin),另一种是自然连接(Natural join)。 为"="的连接运算,称为等值连接。 它是从关系R与S的笛卡儿积中选取A、B属性值相等的那些元组。即等值连接为   自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。即若R和S具有相同的属性组B,则自然连接可记为 7.关系代数的基本运算有哪些?如何用这些基本运算来表示其他的运算? 答:在八种关系代数运算中,并、差、笛卡儿积、投影和选择五种运算为基本的运算。其他三种运算,即交、连接和除,均可以用五种基本运算来表达。 交运算:RS=R-(R-S) 连接运算: 除运算:R(X,Y)÷S(Y,Z)=πx(R)-πx(πx(R)πy(S)-R) X、Y、Z为属性组,R中的Y和S中的Y可以有不同的属性名,但必须出自相同的域集。   小结 关系数据库系统是目前使用得最为广泛的数据库系统,1970年以后开发的数据库系统几乎都是基于关系的。可以说,关系模型的提出是数据库发展史上最为重要的成就。 本章对关系模型的核心概念进行了阐述,并重点讲述了关系数据结构、关系操作集合以及关系完整性约束的概念。对以上三个部分的掌握是学习后续章节的基础。 学习本章的关键在于理解关系模型的核心与本质,而不要仅仅局限于理解相关概念的字面意思。读者应该达到能够对所学知识灵活运用的程度。    
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服