数据库原理与MySQL应用-习题参考答案(李月军).docx

上传人:太** 文档编号:67071347 上传时间:2022-12-23 格式:DOCX 页数:12 大小:141.51KB
返回 下载 相关 举报
数据库原理与MySQL应用-习题参考答案(李月军).docx_第1页
第1页 / 共12页
数据库原理与MySQL应用-习题参考答案(李月军).docx_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《数据库原理与MySQL应用-习题参考答案(李月军).docx》由会员分享,可在线阅读,更多相关《数据库原理与MySQL应用-习题参考答案(李月军).docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数据库原理与MySQL应用-习题参考答案附录B习题参考答案习题一一.选择题1.D2. A 3. A4. C 5. B6. B7. B8. C9. A10. CU.(DA(gB()C12.EB13. A14. B15. D16. B17. B二.填空题1.文件系统 操作系统2.概念 逻辑3.数据4.外模式内模式模式5.元组属性三.简答题1.这4种模型的特点和区别如下表所示。模型反映何种观点的何种结构独立性使用者范例概念模型反映了用户观点的数据库 整体逻辑结构硬件独立软件独立企业管理人员 数据库设计者E-R模型逻辑模型反映了计算机实现观点的 数据库整体逻辑结构硬件独立 软件依赖数据库设计者DBA层

2、次、网状、 关系模型外部模型反映了用户具体使用观点 的数据库局部逻辑结构硬件独立 软件依赖用户与用户有关内部模型反映了计算机实现观点的 数据库物理结构硬件依赖软件依赖数据库设计者DBA与硬件、DBMS 有关2. DB的三级模式结构描述了数据库的数据结构。数据结构分成3个级别。由于三级 结构之间有差异,因此存在着两级映射。这5个概念描述了如下内容。外模式:描述用户的局部逻辑结构。外模式/模式映射:描述外模式和概念模式间数据结构的对应性。概念模式:描述DB的整体逻辑结构。模式/内模式映射:描述概念模式和内模式间数据结构的对应性。内模式:描述DB的物理结构。3 .在用户访问数据的过程中,DBMS起着

3、核心的作用,实现“数据三级结构转换”的 工作。4 .在数据库的三级模式结构中,数据按外模式的描述提供给用户,按内模式的描述存 储在磁盘中,而概念模式提供了连接这两级的相对稳定的中间观点,而且两级中任何 一级的改变都不受另一级的牵制。5 .物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是独立的。物理 独立性通过模式/内模式映射来实现的。5 .属性取值单位.自顶向下、自底向上、逐步扩张、混合策略6 .分类、聚集三、设计题7 . (1)运动队局部E-R图运动会局部E-R图(3)命名冲突:运动队局部E-R图中的属性项目和运动会局部E-R图中的属性项目名 异名同义,统一命名为项目名。结构冲突

4、:项目在两个局部E-R图中,一个作属性,一个作实体,合并统一为实 体。2.(1)转换成的关系模式有以下5个。企业(企业编号,企业名称,联系人,联系电话,地址,企业网址,电子邮件, 企业简介)卤位(岗位名称)人才(个人编号,姓名,性别,出生日期,身份证号,毕业院校,专业,学历, 证书名称,证书编号,联系电话,电子邮件,个人简历及特长)岗位需求(企业编号,岗位名称,专业,学历,薪水,备注,登记日期)求职意向(个人编号,岗位名称,最低薪水,登记日期)注意,在“求职意向”模式中未放入“人才”实体候选键中的“证书名称”属性。(2)由于一个人可能持有多个证书,对“人才”关系模式应进行优化,得到如下 两个新

5、的关系模式。人才(个人编号,姓名,性别,出生日期,身份证号,毕业院校,专业,学历,联 系电话,电子邮件,个人简历及特长)证书(个人编号,证书名称,证书编号)(3)最终得到6个关系模式。企业(企业编号,企业名称,联系人,联系电话,地址,企业网址,电子邮件, 企业简介)齿位(岗位名称)人才(个人编号,姓名,性别,出生日期,身份证号,毕业院校,专业,学历, 联系电话,电子邮件,个人简历及特长)证书(个人编号,证巾名称,证书编号)岗位需求(企业编号,岗位名称,专业,学历,薪水,备注,登记日期)求职意向(个人编号,/行军麻,最低薪水,登记日期)【注意】在“正帝桢研,是“证书名称-证书编号”,即一个人可以

6、有多张 证书,每张证书只有一个编号,但不同证书可以有相同的编号,所以“证书编号-证 书名称”是错误的。(4)此处的“需求”是“肉位”、“企业”和“人才” 3个实体之间的联系,而 事实上只有人才被聘用之后三者才产生联系。本系统解决的是人才的求职和企业的岗 位需求,人才与企业之间没有直接的联系。(5)建立企业的登录信息表,包含用户名和密码,记录企业的用户名和密码,将 对本企业的基本信息的修改权限赋予企业的用户名,企业工作人员通过输入用户名和 密码,经过服务器将其与登录信息表中记录的该企业的用户名和密码进行验证后,合 法用户才有权修改企业的信息。逻辑独立性是通过外模逻辑独立性是指用户的应用程序与逻辑

7、结构是相互独立的。 式/模式映射来实现的。习题二一、选择题1. B 2. C 3.C 二、填空题2. net stop MySQL2. net stop MySQL1. net start MySQL习题三一.选择题二.设计题l.C2.B3. B4.D5.C6.C7.C8.B9. D10. D11.D12. C13. C14. D15. B16. C17. D18. C19. D20. D21.C22. C23. D24. C25. C26. C27. C28. B29.BC 30. C1.解答:(1) SELECT E#,ENAME FROM EMPWHERE AGE50 AND SEX=M

8、;(2) SELECT E#,COUNTW(2) SELECT E#,COUNTWNUM, SUM(SALARY) SUM SALARY FROMWORKSGROUP BY E#;SELECT A. E#, ENAMEFROM EMP A, WORKS B, COMP CWHERE A. E#=B. E# AND B. C#=C. C# AND CNAME=联华公司AND SALARY=ALL(SELECTHAVING COUNT(*)=ALL(SELECTSUM (SALARY) FROM WORKS GROUP BY C#);WORKS B, COMP CWORKS B, COMP C(4

9、) SELECT C. C#, CNAME FROMWHERE B. C#=C. C#GROUP BY C. C#, CNAMEHAVING AVG(SALARY)(SELECT AVG(SALARY) FROM WORKS B, COMP CWHERE B.C#=C.C# AND CNAME=联华公司);(5) UPDATE WORKS SET SALARY=SALARY*1. 05 WHERE C# IN (SELECT C# FROM COMPWHERE CNAME=联华公司);(6) DELETE FROM WORKS(8)(8)WHERECREATEEtt INVIEW(SELECT

10、 E# FROM EMP WHERE AGE60);emp womanAS SELECT A. E#, ENAME, C. C#, CNAME, SALARYFROM EMP A, WORKS B, COMP C WHERE A. E#=B. E# AND B. C#=C. C# AND SEX=F;SELECT E#,SUM(SALARY) FROM emp_woman GROUP BY E#;2 .解答:(1) CREATE TABLE workinfo(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR (20) NOT NU

11、LL, type VARCHAR (10), address VARCHAR(50), tel VARCHAR(20), wages INT, contents TINYTEXT, extra TEXT, UNIQUE INDEX index_id(id DESC) );(2) CREATE INDEX index_name ON workinfo(name(10);ALTER TABLE workinfo ADD INDEX index t(type, address);(3) ALTER TABLE workinfo ADD FULLTEXT INDEX index_ext(extra);

12、DROP INDEX index_id ON workinfo;3 .解答:(1) A问题考查的是查询效率的问题。在涉及相关查询的某些情形中,构造临时关系 可以提高查询效率。 对于外层的职工关系E中的每一个元组,都要对内层的整个职工关系M进行检索, 因此查询效率不高。解答方法一(先把每个部门最高工资的数据存入临时表,再对临时表进行查询): CREATE TABLE tempAS SELECT部门号,MAX(月工资)最高工资FROM职工GROUP BY部门号;SELECT 职工号 FROM 职工,tempWHERE职工.部门号二temp.部门号AND月工资二最高工资;解答方法二(直接在FROM子

13、句中使用临时表结构) SELECT职工号 FROM职工,(SELECT MAX(月工资)最高工资,部门号 FROM 职工 GROUP BY 部门号)AS depMaxWHERE月工资:最高工资AND职工.部门号二depMax.部门号;(2)此问主要考察在查询中注意WHERE子句中使用索引的问题,既可以完成相同功能 又可以提高查询效率的SQL语句如下:(SELECT姓名,年龄,月工资FROM职工 WHERE年龄45) UNION(SELECT 姓名,年龄,月工资 FROM 职工 WHERE 工资1000);习题四一.选择题1.CA2. D 3. A 4. B10. C11.B12.C B19.B

14、CDAD二.填空题1、数据查询 2、表13. D 14. A20.CB记录字段5.C6.C7. B 8. C 9. C15. C 16. B 17. D 18. A3、关系中主键值不允许重复4、主键 外键 5、U、一、X、口、6三.操作题1、 Ilsn. SNAME八sex=女.(S)(1) TIc, CNAMR (aex= 5F (S 00 SC 00 C)FIt. INAME (dSex= 51 (S 8 SC 8 c 8 丁)(4)n1(6=4 八 2W5 (SCXSC)n2(6.,S2F4 (SCXSC)或ru.c, (SC) S2 , S4 Tics (C) FIcs( &namc=

15、rAXC, (S 00 SC)(5) ric#. cname (c (ris. c(sc) ris(s)TIss, CS (SC) rics( dln;ir=1 l.lf (c 8 T)2、 t |(3u) (SC(u) Au2= k5 Atl=ul At2=u2)(1) t|(3u)(3v) (S(u) A SC(v) A v2= k8 Aul=vl Atl=ul A t2=u2)t |(3u) (av) (aw) (S(u) A SC(v) AC(w) A w2= C 语言Aul=vlAv2= wl A tl=ul At2=u2)t|(3u) (SC(u) A (u2= kl Vu2= k

16、5 ) A tl=ul )(2) t | (su)(V v) (sw) (S(u) AC(v) A SC(w) A (ul=wl Aw2=vl A t=u)四.设计题【问题一】PRIMARY KEYFOREIGN KEY (负责人代码)REFERENCES 职工PRIMARY KEYFOREIGNKEY (部门号)REFERENCES 部门月工资 BETWEEN 500 AND 5000COUNT (*), SUM (月工资),AVG (月工资)GROUP BY 部门号【问题二】(1)和(2)都不能执行,因为使用分组和聚集函数定义的视图是不可更新的。(3)、(4)、(5)可以执行,因为给出的S

17、QL语句与定义D_S视图的SQL语句 合并起来验证有效。习题五一.选择题1.C2. A 3.C4. B 5. D 6. B 7. B 8. D 9. D 10. C二,简答题1 .目前,MySQL还不提供对己存在的存储过程代码的修改,如果必须要修改存储过程, 就必须要使用DROP语句删除之后,再重新编写代码,或者创建一个新的存储过程。2 .存储过程包含用户定义的SQL语句集合,可以使用CALL语句调用其他存储过程,但 是不能使用DROP语句删除其他存储过程。3 .在定义存储过程参数列表时,应注意把参数名与数据库表中的字段名区别开来,否 则将出现无法预期的结果。三.操作题DELIMITER CR

18、EATE FUNCTION cnt_f()RETURNS INTBEGINRETURN (SELECT COUNT(*) FROM fruits);ENDDELIMITER ;SELECT cnt_f();DELIMITER CREATE PROCEDURE sum_price(0UT sum DECIMAL(8, 2)BEGINDECLARE price DECIMAL(8, 2);DECLARE cur_price CURSOR FOR SELECT f_price FROM fruits;DECLARE EXIT HANDLER FOR NOT FOUND CLOSE cur_price

19、;SET sum=0;OPEN cur price;REPEATFETCH cur_price INTO price;SET sum=sum+price;UNTIL 0END REPEAT;CLOSE cur_price;END;DELIMITER ;CALL sum_price(sum);SELECT sum;习题六7. A 8.C 9.DC10. C17. B3.丢失更新、读脏数据一.选择题I .C2. B 3.C. A 12. C 13. D 二.填空题1.原子性、隔离性4.死锁三.操作题1.CREATE TABLE empsa( empno CHAR(5), empname VARCH

20、AR(IO), empsal DECIMAL(10, 2);4. D 5.C6. D14.CB 15. B 16. D2. ROLLBACK. COMMITINSERT INTO empsa VALUES ( 101JACK, 8000);CREATE TABLE ad( oempsal DECIMAL(10, 2), nempsal DECIMAL(10, 2), userVARCIIAR(20),timeDATETIME);CREATE TRIGGER empsaAFTER UPDATEON empsaFOR EACH ROWINSERT INTO ad VALUES (OIK empsa

21、l, NEW. empsal, USER (), SYSDATE ();UPDATE empsa SET empsal=10000 WHERE empno=101;SELECT * FROM ad;2.1)出现问题:有一个存款值会丢失,造成数据不一致。2)不能实现。因为程序中的隔离级别设置为READ UNCOMMITTED,未实现加锁控 制,不能达到串行化调度。修改方法:改为 SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE习题七一、选择题l.D 2.C3. A 4.B5.B6. B 7. C 8. A 9. C 10. A二.填空题1安

22、全性2用户标识与鉴别、存取控制、视图机制、数据加密、审计3 CREATE USER 4 角色5 GRNAT、REVOKE三.简答题1. CREATE USER test_userlocalhost IDENTIFIED BY test;(1) GRANT SELECT ON TABLE scott. dept TO test_userlocalhost;GRANT INSERT, DELETE, UPDATE(loc) ON TABLE scott. deptTO test_userlocalhost;GRANT ALL PRIVILEGES ON TABLE scott.deptTO tes

23、t_userlocalhostWITH GRANT OPTION;REVOKE ALL PRIVILEGES,GRANT OPTION FROM test_userlocalhost;(2) CREATE VIEW scott. viewlAS SELECT * FROM dept WHERE deptno=10;GRANT SELECT ON TABLE scott. viewl TO test_userlocalhost; (7) CREATE ROLE rolel;GRANT ALL PRIVILEGES ON scott. * TO test userlocalhost;GRANT r

24、olel TO test_userlocalhost;(8) REVOKE rolel FROM test userlocalhost;DROP ROLE rolel;2. PRIMARY KEY(仓库号) PRIMARY KEY CHAR (4)FOREIGN KEY(仓库号)REFERENCES仓库(仓库号)原材料、GROUP BY仓库号HAVING SUM (数量)=ALL (SELECT SUM (数量)FROM 原材料 GROUP BY仓库号)3)*INSERT, DELETE, UPDATE raws_in_wh01s SELECT原材料习题八一.选择题I .D2. A3. A4.

25、D5. AII . A12. A13.C14. A15. A6. A7. B8. B 9. A10. B16. A17. A18. D 19. A20. B21. C 22. B 23. A二.简答题1. (1)需要重做的事务:T1、 (2)需要重做的事务:T1、 (3)需要重做的事务:T1, (4)需要重做的事务:T1,2. (1) A=8 B=7 C=ll(2) A=10 B=0 C=ll二.简答题3. (1)需要重做的事务:T1、 (2)需要重做的事务:T1、 (3)需要重做的事务:T1, (4)需要重做的事务:T1,4. (1) A=8 B=7 C=ll(2) A=10 B=0 C=l

26、lT2、T3,需要回滚的事务:T4oT2,需要回滚的事务:T3O 需要回滚的事务:T2、T3o 需要回滚的事务:T2o(1) A=10 B=0 011(2) A=10 B=0 C=ll(3) A=10 B=0 011(4) A=0 B=0 C=0习题九一.选择题l.D 2.C3. B 4.C5. A 6. D二.简答题.使用EXPLAIN语句,通过观察TYPE歹ij,可以知道是否使用了全表扫描,同时也可以 知道知道索引的使用形式,通过观察KEY列可以知道使用了哪个索引,通过观察 KEY LEN列可以知道索引是否使用完成,通过观察ROWS列可以知道扫描的行数是否过 多,通过观察EXTRA可以知道

27、是否使用了临时表以及是否使用了额外的排序操作。1 .根据MySQL的机制,只会使用一个筛选效果好的复合索引,可以做如下优化: SELECT * FROM temp WHERE A=? AND B=?UNIONSELECT * FROM temp WHERE C=? AND D=?;.在一些情况下,查询语句中使用了带有索引的字段,但索引并没有起作用。例如, WHERE条件的LIKE关键字匹配的字符串以“”开头,这种情况下索引不会起作用。 又如,WHERE条件中使用0R关键字连接查询条件,如果有1个字段没有使用索引,那 么其他索引也不会起作用。如果使用多列索引,但没有使用多列索引中的第1个字段,

28、那么多列索引也不会起作用。习题十一.选择题1、 C2、 C3、 B4、 B6、 D7、 B8、A9、 AD11、 B12、 B13、 D14、 B二.填空题1、函数多值2、插入异常删除异常更新异常4、函数多值5、一个两个或两个以上7、2NF8、3NF一.选择题1、 C2、 C3、 B4、 B6、 D7、 B8、A9、 AD11、 B12、 B13、 D14、 B二.填空题1、函数多值2、插入异常删除异常更新异常4、函数多值5、一个两个或两个以上7、2NF8、3NF10、无损连接 保持函数依赖5、A10、C15、D码式NF全范BC36.9非主属性三.简答题1、(1) R的候选键是AB, R属于B

29、CNFo(2) R的候选键是AB, R属于BCNF。(3) R的候选键是AB和BD, R最高属于3NF。2、(1) CE为R的候选关键字。(2)分解后的模式具有无损连接性,但不能保持原来的函数依赖。四.设计题(1)部门 主键:(部门代码,办公室)外键:无F1=部门代码一(部门名,起始年月,终止年月),办公室一办公电话 等级主键:(等级代码,年月)外键:无F2=等级代码一等级名,(等级代码,年月)一小时工资 项目 主键:项目代码外键:部门代码、项目主管F3二项目代码- (项目名,部门代码,起始年月日,结束年月日,项目主管) 工作计划 主键:(项目代码,职员代码,年月)外键:项目代码、职员代码 F

30、4二(项目代码,职员代码,年月)一工作时间 (2)修改后的关系模式如下:职务(职务代码,职务名,等级代码)主键:(职务代码,等级代码)外键:等级代码(3)设计的“工作业绩”关系模式如下:工作业绩(项目代码,职员代码,年月日,工作时间)主键:(项目代码,职员代码,年月日)(4)部门关系模式不属于2NF,只能是1NF。该关系模式存在冗余问题,因为某部门 有多少个办公室,则部门代码、部门名、起始年月、终止年月就要重复多少次。为了解决这个问题,可将模式分解,分解后的关系模式为:部门_A(部门代码,部门名,起始年月,终止年月)主键:部门代码部门_B(部门代码,办公室,办公电话)主键:(部门代码,办公室)

31、外键:部门代码(5) SQL语句如下:SELECT职员代码,职员名,年月,工作时间*小时工资AS 月工资FROM 职员zy,职务zw,等级dj,月工作业绩yjWHERE zy.职务代码二zw.职务代码AND zw.等级代码=dj.等级代码AND dj.年月=yj.年月AND zy.职员代码二yj.职员代码;习题1一、选择题.B2.C3.B4.D5.D6. C7. B8. C9. C10. AI . B12. D13. B14. C15. C16. A17. D18. C19. D20. C二、填空题1 .自顶向下逐步细化、自底向上逐步综合.关系模型2 . DBA. DB的转储和恢复、DB的重组织和重构造

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

当前位置:首页 > 应用文书 > 解决方案

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁