数据库概论教材习题答案.docx

上传人:李司机 文档编号:7009850 上传时间:2024-04-07 格式:DOCX 页数:8 大小:27.01KB
返回 下载 相关 举报
数据库概论教材习题答案.docx_第1页
第1页 / 共8页
数据库概论教材习题答案.docx_第2页
第2页 / 共8页
数据库概论教材习题答案.docx_第3页
第3页 / 共8页
数据库概论教材习题答案.docx_第4页
第4页 / 共8页
数据库概论教材习题答案.docx_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《数据库概论教材习题答案.docx》由会员分享,可在线阅读,更多相关《数据库概论教材习题答案.docx(8页珍藏版)》请在三一办公上搜索。

1、3.4 教材习题答案3.5 试述SQL语言的特点。答:SQL语言集数据查询(DaIaQuery)、数据操纵(DaIaManipulation)数据定义(DataDefinition)和数据控制(DalaCOmroI)功能于一体,主要特点包括:1、综合统一。SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体。2、高度非过程化。用SQL语言进展数据操作,只要提出“做什么,而无需指明“若何做,因此无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不仅大大减轻了用户负担,而且有利于提高数据独立性。3、面向集合的操作方式。SQL语言采用集合操作方式

2、,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。4、以同一种语法构造提供两种使用方式。SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互操作使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进展操作;作为嵌入式语言,SQL语句能够嵌入到高级语言的程序中,供程序员设计程序时使用。5、语言简捷,易学易用。SOL语言功能极强,但由于设计巧妙,语言十分简捷,完成核心功能只用了9个动词。SQL语言接近英语句子,因此容易学习,容易使用。6、支持三级模式构造。SQL语言支持关系数据库的三级模式构造。其中外模式对应于视图(V

3、ieW),模式对应于基本表,内模式对应于存储文件。3.6 试述SQL的定义功能。答:SQL的数据定义功能包括定义表、定义视图和定义索引。SQL语言使用CREATETABLE语句建设基本表,ALTERTABLE语句修改基本表定义,DROPTABLE语句删除基本表;使用CREATEINDEX语句建设索弓I,DROPINDEX语句删除索引;使用CREATEVlEW语句建设视图,DRoPVIEW语句删除视图。3.7 用SQL语句建设习题2.4中的4个表。答:对于供应商表:S(SnO(供应商代码),Sname(供应商名),Status(供应状态),City(供应商所在城市)建S表CREATETABLES

4、(SnoCHAR(4),SnameCHAR(IO)jStatusCHAR(4),CityCHAR(20);对于零件表:P(PnO(零件代码),Pname(零件名),COlor(颜色),Weight(重量)建P表CREATETABLEP(PnoCHAR(4),PnameCHAR(20),ColorCHAR(4),WeightINT);对于工程工程表:J(Jno(工程工程代码),Jname(工程工程名),City(工程工程所在的城市)建J表CREATETABLEJ(JnoCHAR(4),JnameCHAR(20),CityCHAR(20);对于零件供应情况表:SPJ(SrIo(供应商代码),Pno

5、(零件代码),Jno(工程工程代码),QTY(供应数量)。建SPJ表CREATETABLESPJ(SnoCHAR(4),PnoCHAR(4),JnoCHAR(4),QTYINT);3.8 针对习题3.3中建设的3个表,试用SQL语言完成习题2.4中的查询。找出供应工程Jl零件的供应商号;答:SELECTSnoFROMSPJWHEREJno=J1,;找出供应工程Jl零件Pl的供应商号;答:SELECTSnoFROMSPJWHEREJno=,JANDPno=T;找出供应工程Jl红色零件的供应商号;答:SELECTSnoFROMSPJWHEREJno=,J1ANDPnoIN(SELECTPnoFRO

6、MPWHERECoIor=绿);或SELECTSnoFROMSPJ,PWHEREJno=,JANDSPJTno=RPnoANDPColor=绿);找出没有使用杭州供应商生产的绿色零件的工程号。答:SELECTJnoFROMJWHERENOTEXISTS(SELECT*FROMSPJWHERESPJJno=JJnoANDSnoIN(SELECTSnoFROMSWHERECity=杭州)ANDPnoIN(SELECTPnoFROMPWHERECOIor=绿,);或SELECTJnoFROMJWHERENOTEXISTS(SELECT*FROMSPJ,S,PWHERESPJJno=JJnoANDSP

7、J.Sno=S.SnoANDSPJ.Pno=P.PnoANDS.City=,杭州ANDPColor=绿);找出至少用了S2供应商所供应的全部零件的工程号。答:SELECTDISTINCTJnoFROMSPJSPJZWHERENOTEXISTS(SELECT*FROMSPJSPJXWHERESno=S2ANDNOTEXISTS(SELECT*FROMSPJSPJYWHERESPJY.Pno=SPJX.PnoANDSPJY.Jno=SPJZ.Jno);(6)找出供应红色的Pl零件且其供应量大于200的供应商号。答:SELECTJnoFROMP,SPJWHERERPno=SPJ.PnoANDRPno

8、=TTANDSPJ.QTY=200;3.9 针对习题3.3中的4个表,试用SQL语言完成以下各项操作。(1)找出所有供应商的姓名和所在城市。答:SELECTSname,CityFROMS;(2)找出所有零件的名称、颜色、重量。答:SELECTPname,Color,WeightFROMP;(3)找出使用供应商S2所供应零件的工程号。答:SELECTJnoFROMSPJWHERESno=,S2,;(4)找出工程工程J3使用的各种零件的名称及其数量。答:SELECTP,Pname,SPJ.QTYFROMP,SPJWHERERPno=SPJ.PnoANDSPJ.Jno=,J3,;(5)找出杭州厂商供

9、应的所有零件号码。答:SELECTDISTINCTPnoFROMSPJWHERESnoIN(SELECTSnoFROMSWHERECityd杭州)(6)找出使用杭州产的零件的工程名称。答:SELECTJnameFROMJ,SPJ,SWHEREJJno=SPJJnoANDSPJ.Sno=S.SnoANDSCity=杭州;或SELECTJnameFROMJWHEREJnoIN(SELECTJnoFROMSPJ,SWHERESPJ.Sno=S.SnoANDS.City三,杭州);(7)找出没有供应天津产的零件的工程号。答:SELECTJnoFROMJWHERENOTEXISTS(SELECT*FRO

10、MSPJWHERESPJJno=JJnoANDSnoIN(SELECTSnoFROMSWHERECity三,天津);或SELECTJnoFROMJWHERENOTEXISTS(SELECT*FROMSPJ,SWHERESPJJno=JJnoANDSPJ.Sno=S.SnoANDCityT天津,);(8)把全部红色零件的颜色改成蓝色。答:UODATEPSETColor=蓝WHEREColor=红,;(9)由供应商S4供应J3零件P5改为由S3供应,请做必要的修改。答:UPDATESPJSETSnO=S3WHERESno=S4ANDJno=,J3,ANDPno=P5;(10)从供应商关系中删除S3

11、的记录,并从供应情况关系中删除相应的记录。答:DELETEFROMSPJWHERESno=,S3,;DELETEFROMSWHERESno=,S2,;(11)请将(S2,J6,P4,300)插入到供应情况关系中。答:INSERTINTOSPJ(Sno,Jno,Pno,QTY)VALUE(S2,J6,P4,300);或INSERTINTOSPJVALUE(S2,J6,P4,300);3.10 么是基本表?什么是视图?两者的区别和联系是什么?答:基本表是数据库中本身独立存在的表,每个基本表对应一个关系模式。在SQL中一个关系就对应一个基本表。一个(或多个)基本表对应一个存储文件,一个基本表可以建设

12、假设干索引,它们都依附于基本表且存放在存储文件中。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义及其关联的基本表名等信息而不存放视图对应的数据,这些数据仍然存放在导出视图的基本表中。但SQL在查询视图时与基本表完全一样,且用户可以在视图上再定义视图。但用视图对数据库中的数据进展增、删、改等更新操作时有一定的限制。3.11 述视图的优点。答:(1)视图能够简化用户的操作。视图使用户可以将注意力集中在所关心的数据上并简化用户的数据查询操作。视图使用户能够以多角度对待同一数据。视图可使不同的用户以不同的方式对待同一数据,当许多不同种类的用户共享

13、同一个数据库时,这种灵活性显得非常重要的。视图为数据库重构提供了一定程度的逻辑独立性。数据的逻辑独立性是指当数据库重新构造时,如增加新的关系或对原有关系增加新的字段等,用户和用户程序不会受影响,而视图就为数据库重构提供了一定程度的逻辑独立性。视图能够对数据提供安全保护。对不同的用户定义不同的视图,可使机密数据不出现在不应该看到这些数据的用户视图上,到达对机密数据的安全保护。3.12 有的视图是否都可以更新?为什么?答:不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新,因为有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的。3

14、.13 类视图是可以更新的,哪类视图是不可更新的?各举一例。答:基本表的行列子集视图般是可以更新的。如?数据库原理与应用?3.5.3中的例3.65。例、将数学系学生视图C_Student中学号为S05的学生姓名改为“黄海”。UPDATEC.StudentSETSname=黄海WHERESno=S05,;DBMS自动转换为对基本表的更新语句如下:UPDATEStudentsSETSname=黄海WHERESno=S05,ANDSd叩t=数学;假设视图的属性来自集函数、表达式,那么该视图肯定是不可以更新的。如?数据库原理与应用?3.5.3中的例3.66o例、向数学系学生视图C-Student中插入

15、一个新的学生记录,其中学号为“S09”,姓名为“王海”,年龄为20岁。INSERTINTOC_StudentVALUES(S09,王海,,20,,数学)由于在定义C-Student是应用了“WITHCHECKOPTION”短语,其作用是限制SdePt的值必须是“数学”才允许由视图C-Student插入,假设换成其它任何字符,DBMS都拒绝执行插入操作。假设定义CLStUdent是不用“WITHCHECKOPTION”这个短语,那么以上VALUES短语中改为(SO9,王海,20,自动化,)仍然可以完成插入操作,但用SELEeT*FROMC_Student命令那么看不到刚插入的元组。3.14 试述

16、某个你熟悉的实际系统中对视图更新的规定。答:(略)因为不同的系统对视图的更新规定是不同的,学员必须了解你所用系统对视图更新的规定,所以我们无法给出一个相对标准的答案。3.15 请为一建工程工程建设一个供应情况的视图,包括供应商代码(Sn。)、零件代码(Pn。)、供应商名称(Sname)、供应数量(Qty)。针对该视图完成以下查询:(1)找出一建工程工程使用的各种零件代码及其数量。(2)找出供应商S2的供应情况。答:建视图CREATEVIEWV_SPJASSELECTSno,Pno,Sname,QtyFROMSPJWHEREJno=(SELECTJnoFROMJWHEREJname=建,);对该

17、视图进展查询:(1)找出一建工程工程使用的各种零件代码及其数量。答:SELECTPno,QtyFROMV_SPJ;(2)找出供应商S2的供应情况。答:SELECTPno,QtyFROMV_SPJ;WHERESno=,S2,;(3)找出供应零件P2且供应数量大于100的供应商名。答:SELECTPnameFROMV_SPJ;WHEREPno=,P2,ANDQty100;3.16 针对习题3.3建设的表,用SQL语言完成以下各项操作:把对表S的INSERT权限授予用户ZhangYOng,并允许他再将此权限授予其他用户。答:GRANTINSERTONTABLESTOZhangYongWITHGRAN

18、TOPTION;(2)把查询SP表和修改Qty属性的权限授给用户LiMingo答:GRANTSELECT,UPDATE(QTY)ONTABLESPJTOLiMing;3.17 嵌入式SQL是若何解决数据库工作单元与源程序工作单元之间通讯的?答:在SQL语句前加上前缀EXECSQL,SQL语句的完毕标志那么随主语句的不同而不同。3.18 在嵌入式SQL中是若何协调SQL语言的集合处理方式和主语言的单记录处理方式的答:用游标来协调这两种不同的处理方式。游标区是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,每个游标区都有一个名字。用户可以通过游标逐一获取记录,并赋给主变量,交由主语言进一步处理。3.19 试述空值的概念,空值在运算中会带来什么问题答tSQL/DS支持空值的概念。空值是“不存在的值,即未知的或不可用的。空值在运算中会带来结果的不确定性问题。例、如果算术表达式中任一运算分量为空值,那么表达式的值为空值。如x+y中,假设X为空值,那么x+y的值为空。在算术比较中,有一值为空值,表达式的值为。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号