数据库概论必考例题课后重点答案.pptx

上传人:莉*** 文档编号:72978910 上传时间:2023-02-14 格式:PPTX 页数:43 大小:196.73KB
返回 下载 相关 举报
数据库概论必考例题课后重点答案.pptx_第1页
第1页 / 共43页
数据库概论必考例题课后重点答案.pptx_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《数据库概论必考例题课后重点答案.pptx》由会员分享,可在线阅读,更多相关《数据库概论必考例题课后重点答案.pptx(43页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1 定义的关系S有四个属性,分别是供应商号(SNO)、供应商名(SNAME)、状态(STATUS)和所在城市(CITY),属性的类型都是字符型,长度分别是4、20、10和20个字符。主键是供应商编号SNO。在SQL中允许属性值为空值,当规定某一属性值不能为空值时,就要在定义该属性时写上保留字“NOTNULL”。本例中,规定供应商号和供应商名不能取空值。由于已规定供应商号为主码,所以对属性SNO的定义中的“NOTNULL”可以省略不写。CREATETABLES(SNOCHAR(4)NOTNULL,SNAMECHAR(20)NOTNULL,STATUSCHAR(10),CITYCHAR(20),P

2、RIMARYKEY(SNO);第1页/共43页2CREATE TABLE P(PNO CHAR(4)NOT NULL,PNAME CHAR(20)NOT NULL,COLOR CHAR(8),WEIGHT SMALLINT,PRIMARY KEY(PNO);CREATE TABLE J(JNO CHAR(4)NOT NULL,JNAME CHAR(20),CITY CHAR(20),PRIMARY KEY(JNO);CREATE TABLE SPJ(SNO CHAR(4)NOT NULL,PNO CHAR(4)NOT NULL,JNO CHAR(4)NOT NULL,QTY SMALLINT,

3、PRIMARY KEY(SNO,PNO,JNO),FOREIGN KEY(SNO)REFERENCES S(SNO),FOREIGN KEY(PNO)REFERENCES P(PNO),FOREIGN KEY(JNO)REFERENCES J(JNO);第2页/共43页34.针对上题中建立的四个表试用SQL语言完成第二章习题5中的查询1)求供应工程J1零件的供应商号码SNO;2)求供应工程J1零件P1的供应商号码SNO;3)求供应工程J1零件为红色的供应商号SNO;4)求没有使用天津供应商生产的红色零件的工程号JNO;5)求至少用了供应商S1所供应的全部零件的工程号JNO第3页/共43页41)

4、求供应工程J1零件的供应商号码SNO;SELECT DISTINCT SNO FROM SPJ WHERE JNO=SELECT DISTINCT SNO FROM SPJ WHERE JNO=J1J1;SELECT SELECT子句后面的DISTINCTDISTINCT表示要在结果中去掉重复的供应商编号SNOSNO。一个供应商可以为一个工程J1J1提供多种零件。2)求供应工程J1零件P1的供应商号码SNO;SELECT SNO FROM SPJ SELECT SNO FROM SPJ WHERE JNO=WHERE JNO=J1J1 AND PNO=AND PNO=P1P1;3)求供应工程J

5、1零件为红色的供应商号SNO;SELECT DISTINCT SNO FROM SPJ SELECT DISTINCT SNO FROM SPJ WHERE JNO=WHERE JNO=J1J1 AND PNO IN AND PNO IN (SELECT PNO (SELECT PNO FROM P FROM P WHERE COLOR=WHERE COLOR=红);第4页/共43页54)求没有使用天津供应商生产的红色零件的工程号JNO;常见错误:SELECT JNO FROM J WHERE NOT EXISTS (SELECT*FROM S,SPJ,P WHERE SPJ.JNO=J.JN

6、O AND SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO AND S.CITY=天津AND P.COLOR=红);当从单个表中查询时,目标列表达式用*,若为多表必须用表名.*正确写法SELECT JNO FROM JWHERE NOT EXISTS (SELECT S.*,SPJ.*,P.*FROM S,SPJ,P WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO AND S.CITY=天津 AND P.COLOR=红)第5页/共43页64)求没有使用天津供应商生产的红色零件的工程号JNO;SELECT JNO F

7、ROM J WHERE JNO NOT IN (SELECT JNO FROM S,SPJ,P WHERE S.SNO=SPJ.SNO AND SPJ.PNO=P.PNO AND S.CITY=天津 AND P.COLOR=红);SELECT JNO FROM J WHERE NOT EXISTS (SELECT*FROM SPJ WHERE SPJ.JNO=J.JNO AND SPJ.SNO IN (SELECT SNO FROM S WHERE S.CITY=天津)AND SPJ.PNO IN (SELECT PNO FROM P WHERE P.COLOR=红)第6页/共43页75)求至

8、少用了供应商S1所供应的全部零件的工程号JNOSELECT DISTINCT JNOFROM SPJ SPJ1WHERE NOT EXISTS (SELECT*FROM SPJ SPJ2 WHERE SNO=S1 AND NOT EXISTS PNO=ALL (SELECT*FROM SPJ SPJ3 WHERE PNO=SPJ2.PNO AND JNO=SPJ1.JNO)第7页/共43页85)求至少用了供应商S1所供应的全部零件的工程号JNO 第一种理解:SELECT DISTINCT JNO FROM SPJ SPJX WHERE NOT EXISTS (SELECT*FROM SPJ S

9、PJY WHERE SPJY.SNO=S1 AND NOT EXISTS (SELECT*FROM SPJ SPJZ WHERE SPJZ.JNO=SPJX.JNO AND SPJZ.PNO=SPJY.PNO AND SPJZ.SNO=SPJY.SNO);查询结果:第二种理解:SELECT DISTINCT JNO FROM SPJ SPJX WHERE NOT EXISTS (SELECT*FROM SPJ SPJY WHERE SPJY.SNO=S1 AND NOT EXISTS (SELECT*FROM SPJ SPJZ WHERE SPJZ.JNO=SPJX.JNO AND SPJZ.

10、PNO=SPJY.PNO);查询结果:J4SPJZ.SNO=SPJZ.SNO=S1S1第8页/共43页95.针对习题3中的四个表试用SQL语言完成以下各项操作1)找出所有供应商的姓名和所在城市2)找出所有零件的名称、颜色、重量3)找出使用供应商S1所供应零件的工程号码4)找出工程项目J2使用的各种零件的名称及其数量5)找出上海厂商供应的所有零件号码6)找出使用上海产的零件的工程名称7)找出没有使用天津产的零件的工程号码8)把全部红色零件的颜色改成蓝色9)有S5供给J4的零件P6改为由S3供应,请作必要的修改10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录11)请将(S2,J

11、6,P4,200)插入供应情况关系第9页/共43页101)找出所有供应商的姓名和所在城市SELECTSNAME,CITYFROMS;2)找出所有零件的名称、颜色、重量SELECTPNAME,COLOR,WEIGHTFROMP;3)找出使用供应商S1所供应零件的工程号码SELECTDISTINCTJNOFROMSPJWHERESNO=S1;第10页/共43页114)找出工程项目J2使用的各种零件的名称及其数量SELECTPNAME,QTYFROMP,SPJWHEREP.PNO=SPJ.PNOANDSPJ.JNO=J2;第11页/共43页125)找出上海厂商供应的所有零件号码SELECTDISTI

12、NCTPNOFROMS,SPJWHERES.SNO=SPJ.SNOANDS.CITY=上海;SELECTDISTINCTPNOFROMSPJWHERESNOIN(SELECTSNOFROMSWHERES.CITY=上海);6)找出使用上海产的零件的工程名称SELECTJNAMEFROMS,SPJ,JWHERES.SNO=SPJ.SNOANDJ.JNO=SPJ.JNOANDS.CITY=上海;第12页/共43页137)找出没有使用天津产的零件的工程号码SELECTJNOFROMJWHEREJNONOTIN(SELECTJNOFROMSPJ,SWHERES.SNO=SPJ.SNOANDS.CITY

13、=天津);SELECTJNOFROMJWHERENOTEXISTS(SELECT*FROMSPJWHEREJNO=J.JNOANDSNOIN(SELECTSNOFROMSWHERES.CITY=天津);SELECT JNOFROM JWHERE NOT EXISTS (SELECT SPJ.*,S.*FROM SPJ,S WHERE JNO=J.JNO AND SNO=S.SNO AND S.CITY=天津;第13页/共43页148)把全部红色零件的颜色改成蓝色UPDATEPSETCOLOR=蓝WHERECOLOR=红;9)由S5供给J4的零件P6改为由S3供应,请作必要的修改UPDATESP

14、JSETSNO=S3WHERESNO=S5ANDJNO=J4ANDPNO=P610)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录DELETEFROMSWHERESNO=S2;DELETEFROMSPJWHERESNO=S211)请将(S2,J6,P4,200)插入供应情况关系INSERTINTOSPJVALUES(S2,P4,J6,200)常见错误:INSERTINTOSPJVALUES(S2,J6,P4,200)第14页/共43页15 11.请为三建工程项目建立一个供应情况的视图SANJIAN_SPJ,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。针对该

15、视图完成下列查询:1)找出三建工程项目使用的各种零件代码及其数量。2)找出供应商S1的供应情况。第15页/共43页16创建视图:CREATEVIEWSANJIAN_SPJASSELECTSNO,PNO,QTYFROMSPJ,JWHERESPJ.JNO=J.JNOANDJ.JNAME=三建;1)找出三建工程项目使用的各种零件代码及其数量。SELECTPNO,SUM(QTY)SELECTPNO,QTYFROMSANJIAN_SPJFROMSANJIAN_SPJ;GROUPBYPNO;2)找出供应商S1的供应情况。SELECT*FROMSANJIAN_SPJWHERESNO=S1第16页/共43页1

16、7数据库设计方法1)基本设计法分五步进行:a.创建用户视图b.汇总用户视图,得出全局数据视图,即概念模型。c.修改概念模型。d.转换并定义概念模型,转换成DBMS的数据模型。e.设计优化物理模型,即存储策略。第17页/共43页18例如1关系模式R(C,T,H,R,S,G),F=CT,CSG,HTR,HRC,HSR,则=CT,CHR,HRT,CSG,HSR为一个3NF的既具有无损联接性又具有函数依赖保持性的分解。R的码是HS。第18页/共43页19例如2关系模式R(A,B,C,D,E),F=AD,ED,DB,BCD,DCA,则=ED,BCD,ACD为一个3NF的具有函数依赖保持性的分解。由于R的

17、码是CE,则=ED,BCD,ACD,CE为一个3NF的既具有无损联接性又具有函数依赖保持性的分解。第19页/共43页20例如3关系模式R(C,S,Z),F=CSZ,ZC,则R属于3NF,可以分解为具有无损联接性的BCNF,而不可能分解成具有函数依赖保持性的BCNF。当分解为=SZ,CZ,则它为一个BCNF的具有无损联接性的分解。第20页/共43页21例如4关系模式R(T,Q,P,C,S,Z),F=TQ,TP,TC,TS,PCSZ,ZP,ZC,试分解R属于3NF既具有无损联接性又具有函数依赖保持性。从题目可知码是T。根据相同左部原则可分解为=TQPCS,PCSZ,ZPC,由于ZPC包含于PCSZ

18、中,所以分解为=TQPCS,PCSZ。而R1=T,Q,P,C,S属于BCNF。但R2=P,C,S,Z不属于BCNF;再继续分解成SZ,PCZ后,则属于BCNF。第21页/共43页22例如5关系模式R(S,C,G,T,D),F=SCG,CT,TD,试分解成BCNF。从题目可知码是SC。首先从关系R中分出TD,即R1(S,C,G,T),R2(T,D)。再从R1中分出CT,即R3(C,T),R4(S,C,G)。R2,R3,R4都属于BCNF,分解完成。第22页/共43页23习题:求候选码,转换3NF,BCNF1、设有关系模式R(O,I,S,Q,B,D),其中F=SD,IB,ISQ,BO。2、设有关系

19、模式R(A,B,C,D),其中 F=AC,CA,BAC,DAC,BDA。3、设有关系模式R(A,B,C,D,E),其中F=AD,ED,DB,BCD,DCA。4、设有关系模式R(A,B,C,D,E,F),其中F=AB,CF,EA,CED。第23页/共43页24习题:求候选码,转换成BCNF5、设有关系模式R(学号,课程号,学分,成绩,奖学金),其中F=课程号学分,成绩奖学金,(学号,课程号)成绩。6、设有关系模式R(学生,课程,教师),其中F=教师课程,(学生,课程)教师。第24页/共43页25习题答案1、KEY=IS2、KEY=BD3、KEY=CE4、KEY=CE5、KEY=(学号,课程号)6

20、、KEY=(学生,课程);R1(学生,教师),R2(教师,课程)第25页/共43页26例如R(A,B,C),F=AB,CB。当1=AB,AC时,它具有无损联接性,但不具有依赖保持性。当 2=AB,BC时,它具有依赖保持性,但不具有无损联接性。然而当3=AB,AC,BC时,它既具有依赖保持性,又具有无损联接性。第26页/共43页27依赖保持设关系模式R的一个分解为=R1,R2,.,Rk,F是R的依赖集。如果F等价于R1(F)R2(F).Rk(F),则称分解具有依赖保持性。一个无损联接分解不一定具有依赖保持性;同样一个依赖保持分解不一定具有无损联接。第27页/共43页28模式分解若要求分解保持函数

21、依赖,那么模式分解总可以达到3NF,但不一定能达到BCNF。若要求分解既保持函数依赖,又具有无损联接性,那么模式分解可以达到3NF,但不一定能达到BCNF。若要求分解既具有无损联接性,那么模式分解一定可以达到4NF。第28页/共43页29求下列最高属于第几范式1.设R(A,B,C,D),F=BD,ABC。2.设R(A,B,C,D,E),F=ABCE,EAB,CD。3.设R(A,B,C,D),F=BD,DB,ABC。4.设R(A,B,C),F=AB,BA,AC。5.设R(A,B,C),F=AB,BA,CA。6.设R(A,B,C,D),F=AC,DB。7.设R(A,B,C,D),F=AC,CDB。

22、第29页/共43页30答案1、Key=AB,R1NF2、Key=AB或E,R2NF3、Key=AB或AD,R3NF4、Key=A或B,RBCNF5、Key=C,R3NF6、Key=AD,R1NF7、Key=AD,R1NF第30页/共43页31BCNF定义若R1NF,若XY且YX时X必含有码。例如:由于(SNO,CNO)G,满足BCNF的定义,所以SC属于BCNF。当S-L分解成SD(SNO,SDEPT)和DL(SDEPT,SLOC)后的情形如下。对于SD的函数依赖SNOSDEPT,所以它的码是SNO,所以SD属于BCNF。对于DL的函数依赖SDEPTSLOC,所以它的码是SDEPT,所以DL属

23、于BCNF。第31页/共43页323NF定义若R1NF,且每一个非主属性既不部分函数依赖于码也不传递函数依赖于码。例如:当把S-L-C分解成SC(SNO,CNO,G)和S-L(SNO,SDEPT,SLOC)后。由于(SNO,CNO)G,满足3NF的定义,所以SC属于3NF。而S-L中候选码是SNO,但SDEPTSLOC;SNOSDEPT,即非主属性SLOC传递依赖于码,所以S-L不属于3NF。第32页/共43页332NF定义若R1NF,且每一个非主属性完全函数依赖于码。例如:S-L-C(SNO,SDEPT,SLOC,CNO,G),这里SNO表示学号,SDEPT表示系名,SLOC表示楼号,CNO

24、表示课程号,G表示成绩。函数依赖有:(SNO,CNO)G;SDEPTSLOC;SNOSDEPT。所以候选码是(SNO,CNO)。而非主属性SDEPT和SLOC都是部分函数依赖于码,所以S-L-C不属于2NF,但属于1NF。第33页/共43页34习题设R(A,B,C),r为R的一个值,r=ab1c1,ab2c2,ab1c2,ab2c1。问1.r满足条件AB吗?为什么?2.如果在r中任取一三个元组的子集,这些子集满足条件AB吗?为什么?1.r 满足条件AB。2.不满足条件AB。第34页/共43页35求关键字1.设R(A,B,C,D,E,P),F=AD,ED,DB,BCD,CDA。2.设R(O,I,

25、S,Q,B,D),F=SD,DS,IB,BI,BO,OB。3.设R(X,Y,Z,W),F=WY,YW,XWY,ZWY,XZW。4.设R(O,I,S,Q,B,D),F=SD,IB,BO,OQ,QI。5.设R(O,I,S,Q,B,D),F=IB,BO,IQ,SD。第35页/共43页36答案1、CEP2、QSI,QSO,QSB,QDB,QDI,QDO3、XZ4、SI,SQ,SB,SO5、IS第36页/共43页37四大定理定理1:设K为R中的属性或属性组合,若K是L或N类,则K必为R的任一候选关键字成员。即是主属性。定理2:设X为R中的属性或属性组合,若X是R类,则X不在任何候选关键字中。即是非主属性

26、。定理3:若K是L类,且K+包含R的全部属性,则K必为R的唯一候选关键字。定理4:若K是L和N类属性组合,且K+包含R的全部属性,则K必为R的唯一候选关键字。第37页/共43页38快速求解关键字给定关系模式R(A1,A2,.,An)和函数依赖集F,可将其属性分为四类:1、仅仅出现在F的函数依赖左部的属性称L类;2、仅仅出现在F的函数依赖右部的属性称R类;3、在F的函数依赖左右均未出现的属性称N类;4、在F的函数依赖左右均出现的属性称LR类。第38页/共43页39Student(Sno,Sname,Sex,Bdate,Height)SC(Sno,Cno,Grade)Course(Cno,Lhou

27、r,Credit,Semester)在SC中Sno不是码,但却是Student的码,所以Sno是SC的外码。在SC中Cno不是码,但却是Course的码,所以Cno是SC的外码。学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)在学生表中专业号不是码,但却是专业表的码,所以专业号是学生表的外码。学生2(学号,姓名,性别,专业号,年龄,班长学号)在学生2表中班长不是码,但引用了本关系表学号属性,所以班长是学生2表的外码。第39页/共43页40练习题求F=AC,CA,BAC,DAC,BDA的最小函数依赖集。求F=AD,ED,DB,BCD,DCA 的最小函数依赖集。求F=AB,BA,BC,

28、AC,CA的最小函数依赖集。设有关系模式R(O,I,S,Q,B,D),其中F=SD,IB,ISQ,BO,试计算S+,I+,B+,(IS)+,(SB)+,(IB)+,(ISB)+。第40页/共43页41举例F=ABC,CA,BCD,ACDB,DEG,BEC,CGBD,CEAG,计算(BD)+。解:X(0)=BD X(1)=X(0)EG=BDEG DEG X(2)=X(1)C=BCDEG BEC X(3)=X(2)A=ABCDEG CA 由于X(3)=U 所以不需要继续计算因此,(BD)+=ABCDEG 第41页/共43页42举例F=ABC,CA,BCD,ACDB,DEG,BEC,CGBD,CEAG,计算最小函数依赖集。解:1、使依赖右部变成单属性:F=ABC,CA,BCD,ACDB,DE,DG,BEC,CGB,CGD,CEA,CEG;2、去除多余函数依赖,即去除XY后,求X+。若YX+,则可去除XY,否则不能去除。可得:F=ABC,CA,BCD,CDB,DE,DG,BEC,CGD,CEG 第42页/共43页43谢谢您的观看!第43页/共43页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com