《数据库原理及应用SQL》课程习题集
一、单选题
1. ER模型属于()
A.概念模型
B.层次模型
C.网状模型
D.关系模型
2.数据库系统的三级模式结构中,定义索引的组织方式属于()
A.概念模式
B.外模式
C.逻辑模式
D.内模式
3. SQL语言中,实现数据存取控制功能的语句是()
A.CREATE和DROP?
B.INSERT和DELETE
C.GRANT和REVOKE?
https://www.wendangku.net/doc/972134512.html,MIT和ROLLBACK
4.物理结构的改变不影响整体逻辑结构的性质,称为数据库的()
A.物理数据独立性
B.逻辑数据独立性
C.物理结构独立性?
D.逻辑结构独立性
5.全局ER模型的设计,需要消除属性冲突、命名冲突和()
A.结构冲突?
B.联系冲突
C.类型冲突
D.实体冲突
6.一个供应商可供应多种零件,而一种零件可由多个供应商供应,则实体供应商与零件之间的联系是()
A.一对一?
B.一对多
C.多对一
D.多对多
7.表达式“AGE BETWEEN 18 AND 24”等价于()
A.AGE>18 AND G<24
B.AGE>=18 AND G<24
C.AGE>18 AND G<=24
D.AGE>=18 AND AGE<=24
8.在数据库设计中,独立于计算机的硬件和DBMS软件的设计阶段是()
A.概念设计?
B.物理设计
C.逻辑设计
D.系统实施
9.按照PX协议规定,一个事务要更新数据对象Q,必须先执行的操作是()
A.READ(Q)
B.WRITE(Q)
C.LOCK S(Q)
D.LOCK X(Q)
10.下列聚集函数中不忽略空值(null)的是()
A.SUM(列名)
B.MAX(列名)
C.COUNT(*)
D.AVG(列名)
11.数据库系统中,对用户使用的数据视图的描述称为(???)
A.概念模式B.内模式
C.存储模式D.外模式
12.数据库的三级模式之间存在着两级映象,使数据库系统具有较高的数据(???)
A.相容性B.独立性
C.共享性D.一致性
13.实体完整性规则是指关系中(???)
A.不允许有空行B.主键不允许有空值
C.不允许有空列D.外键不允许有空值
14.实现关系代数投影运算的SQL子句是(???)
A.SELECT B.ORDER??BY
C.FROM? D.WHERE
15. SQL语言中,用GRANT/REVOKE语句实现数据库的(???)
A.并发控制? B.完整性控制
C.一致性控制D.安全性控制
16.在事务依赖图中,若各个事务之间的依赖关系构成循环,则就会出现(???)
A.死锁B.共享锁
C.活锁D.排它锁
17.以下关于事务调度和封锁的描述中,正确的是(????)
A.遵守两段封锁协议的并发事务一定是可串行化的
B.可串行化的并发事务一定遵守两段封锁协议
C.遵守两段封锁协议的并发事务不一定是可串行化的
D.遵守两段封锁协议的并发事务一定不会产生死锁
18.数据库与文件系统的根本区别在于()
A 提高了系统效率
B 方便了用户使用
C 数据的结构化
D 节省了存储空间
19.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是(??? )。
A.多对多
B.一对一
C.多对一
D.一对多
20.“一个事务中的诸操作要么都做,要么都不做”,这是事务的(??? )属性。
A.原子性
B.一致性
C.隔离性?
D.持续性
21.关系模型中,一个码是()
A可以由多个任意属性组成
B至多由一个属性组成
C由一个或多个属性组成,其值能够惟一标识关系中一个元组
D以上都不是
22.数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是()
A.DBS包括DB和DBMS
B.DBMS包括DB和DBS
C.DB包括DBS和DBMS
D.DBS就是DB,也就是DBMS
23.区分不同实体的依据是()
A.名称
B.属性
C.对象
D.概念
24. SQL基本表的创建中是通过(?? ? )实现参照完整性规则的。
A.主键子句?
B.外键子句??
C.检查子句
D.NOT NULL
25.设计性能较优的关系模式称为规范化,规范化的主要理论依据是( ) 。
A.关系规范化理论
B.关系运算理论?????????
C.代数运算理论
D.数理逻辑理论
26.在E-R模型转换成关系模型的过程中,下列叙述不正确的是(??)。
A.每个实体类型转换成一个关系模式
B.每个M∶N联系类型转换一个关系模式
C.每个联系类型转换成一个关系模式
D.在处理1∶1和1∶N联系类型时,不生成新的关系模式。
27.假如采用关系数据库系统来实现应用,在数据库设计的(? )阶段,需要将E-R模型转换为关系数据模型。
A.概念设计
B.物理设计?
C.逻辑设计
D.运行阶段
28. DBMS普遍采用()方法来保证调度的正确性。
A. 索引
B. 授权
C. 封锁
D. 日志
29.多个事务执行的次序称为()
A 步骤
B 过程
C 流程
D 调度
30.如果事务T 已在数据R 上加了X 锁,则其他事务在数据R 上()
A 只可加X 锁
B 只可加S 锁
C 可加S 锁或X 锁
D 不能加任何锁
31.模式的逻辑子集通常称为()
A 存储模式
B 内模式
C 外模式
D 模式
32. SQL语言的GRANT和REVOKE语句主要是用来维护数据库的()。
A 完整性B可靠性
C 隔离性D安全性
33.在数据库设计中,将E-R图转换成关系数据模型的过程属于( )
A.需求分析阶段
B.概念设计阶段
C.逻辑设计阶段
D.物理设计阶段
34.如果事务T 已在数据R 上加了S 锁,则其他事务在数据R 上()
A 只可加X 锁
B 只可加S 锁
C 可加S 锁或X 锁
D 不能加任何锁
35.在数据库系统中,视图可以提供数据的()
A完整性 B 并发性
C 安全性
D 可恢复性
36.事务的持续性是指()
A.事务中包括的所有操作要么都做,要么都不做
B 事务一旦提交,对数据库的改变是永久的
C. 一个事务内部的操作对并发的其他事务是隔离的
D. 事务必须使数据库从一个一致性状态变到另一个一致性状态
37.一辆汽车由多个零部件组成,且相同的零部件可适用于不同型号的汽车,则汽车实体集与零部件实体集之间的联系是(??? )
?A. 1:1 B. 1:M
C. M:1
D. M:N
38.系统故障会造成(???? )
A.内存数据丢失
B.硬盘数据丢失
C.软盘数据丢失
D.磁带数据丢失
39.数据库系统核心是()
A数据B数据库管理系统
C 数据库用户D数据库管理员
40.构造关系数据模型时,通常采用的方法是(?? )。
A.从网状模型导出关系模型
B.从层次模型导出关系模型?????
C.从E—R图导出关系模型
D.以上都不是
41.数据库系统的三级模式中,表达物理数据库的是( ???? )。
A.外模式
B.模式
C.用户模式?
D.内模式
42.具有坚实数学理论基础的数据模型是(? ?? )。
A.关系模型
B.层次模型?????????
C.网状模型
D.E—R模型
43. SQL语言中,实现数据更新功能的语句是()
A.CREATE和DROP
B.INSERT和DELETE
C.GRANT和REVOKE
https://www.wendangku.net/doc/972134512.html,MIT和ROLLBACK
44.在关系模型中,关系的每一个属性值(?? )。
A.不能全同?
B.可以全同?????
C.必须全同
D.是不可分割的
45.多个用户同时对同一数据进行操作,描述的是(??)。
A.数据库的完整性
B.数据库的并发控制
C.数据库的恢复?
D.数据的完整性
46.一个供应商可供应多种原材料,而一种原材料可由多个供应商供应,则实体供应商与原材料之间的联系是()
A.一对一?
B.一对多
C.多对一?
D.多对多
47.以下四项中,不包括在数据库维护工作中的是(??? )。
A.故障维护
B.设计关系模型
C.定期维护?
D.日常维护
48. 如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突的操作是()。
A.一个是DELETE,一个是SELECT
B.一个是SELECT,一个是DELETE
C.两个都是UPDATE
D.两个都是SELECT
49. SQL语言的结构中,(??? ? )有对应的存储文件。
A.视图
B.基表?
C.视图和基表
D.存储文件和视图
50. 事务日志用于保存()。
A.程序运行过程
B.程序的执行结果
C.对数据的更新操作
D.对数据的查询操作
二、综合设计题
51.某公司欲建立一个定单管理系统,要求保存销售职工信息,产品信息,供应商信息,定货人信息。已知每个销售职工可销售多种产品,每个产品可被个多个销售职工销售。每个供应商可供应多种产品,而每种产品可由多个供应商供应。每个定货人可订购多种产品,而每种产品可由多个定货人订购。
销售职工有:职工号,姓名,电话;
供应商有:供应商号,姓名,电话,地址;
产品有:产品号,产品名称,型号规格。
定货人有:定货人号,姓名,电话,地址;
每次定货有定货日期和数量。
要求:
1根据上述语义设计E-R模型,要求标注联系类型。
2将其转化为关系模式。注明每个关系的主键和外键。
52.已知某个工厂中有多个工段,每个工段有多个车间,每个车间只在一个工段中,
每个车间生产多种产品,而每种产品可由多个车间生产。
工段有:工段号,工段名;
车间有:车间号,车间名,车间领导;
产品有:产品号,产品名称,型号规格。
每个车间完成的产品都有完工日期。
1根据上述语义设计E-R模型,要求标注联系类型,可省略属性。
2 E-R模型转换成关系数据模型,并指出每一个关系的主键和外键(如果存在)。
53.假设某公司在多个地区设有销售部经销本公司的各种产品,每个销售部聘用多名
职工,且每名职工只属于一个销售部。
销售部有:部门名称、地区和电话等属性;
产品有:产品编码、品名和单价等属性;
职工有:职工号、姓名和性别等属性;
每个销售部销售产品有数量属性。
1根据上述语义画出ER图,要求在图中画出属性并注明联系的类型。
2 试将ER模型转换成关系模型,并指出每个关系模式的主键和外键。
54.假设某公司的业务规则如下:
1公司下设几个部门,如技术部、财务部、市场部等。
2每个部门承担多个工程项目,每个工程项目属于一个部门。
3每个部门有多名职工,每一名职工只能属于一个部门。
4一个部门可能参与多个工程项目。
5工程项目有工程号、工程名两个属性;部门有部门号、部门名称两个属性;职工有职工号、姓名、性别属性;
问题:
1.根据上述规则设计E-R模型。
2.将E-R模型转换成关系数据模型,并指出每个关系的主键和外键。
55.某企业集团有若干工厂,每个工厂生产多种产品,且每一种产品可以在多个工厂生产,每个工厂按照固定的计划数量生产产品;每个工厂聘用多名职工,且每名职工只能在一个工厂工作,工厂聘用职工有聘期和工资。工厂的属性有工厂编号、厂名、地址,产品的属性有产品编号、产品名、规格,职工的属性有职工号、姓名。
1根据上述语义画出ER图,在ER图中需注明实体的属性、联系的类型及实体的标识符。
2 将E-R模型转换成关系模型,并指出每个关系模式的主键和外键。
三、编程题1
56.在供应商、零件数据库中有以下3个关系模式:
供应商:S(SNO,SNAME,CITY,STATUS)
零件:P(PNO,PNAME,WEIGHT,COLOR,CITY)
供应货:SP(SNO,PNO,QTY)
供应货关系SP表示某供应商SNO,供应了PNO零件,数量为QTY。
用SQL语言完成以下操作:
1 求供应红色零件的供应商名字;
2 求北京供应商的号码、名字和状况(STATUS);
3 求零件P2的总供应量;
4 把零件P2的重量增加5公斤,颜色该为黄色。
5 统计每个供应商供应的项目总数。
6 建立一个存储过程,输入零件编号显示零件的PNAME,WEIGHT,COLOR,CITY
57.假设新华书店数据库中有2个关系模式:
?出版社(出版社编号,出版社名称,出版社地址)
图书(图书编号,书名,出版社编号,图书分类,定价)
试用SQL语句完成下题。
1.检索出版社编号为“CS”的图书编号、书名和定价。
2.查询图书分类为“教材”的书名、定价和出版社名称。
3.按照出版社编号统计每个出版社出版的图书有多少种和平均定价。
4.检索由高等教育出版社出版、图书分类为“教材”且定价超过30元的图书编号和书名。”
5. 删除图书编号“2000301”的图书信息
6. 建立一个存储过程,统计各分类的图书的本数。
58.设有三个关系模式如下:
学生S(S#,SNAME,AGE,SEX) 各属性的含义为:学号,姓名,年龄,性别
学习SC(S#,C#,GRADE) 各属性的含义为:学号,课程号,成绩
课程C(C#,CNAME,TEACHER) 各属性的含义为:课程号,课程名,教师
于以上关系模式试用SQL语句回答下列题:
1统计男生和女生的人数。
2.检索教师‘张明’所授课程的课程号和课程名。
4.选修数据库原理的学生名单。
5.删除200030号学生的选课记录。
6.建立一个存储过程,通过输入学号,显示学生选课门数.
59.职工(职工号,姓名,性别,职务,家庭地址,部门编号)
部门(部门编号,部门名称,地址,电话)
保健(保健卡编号,职工号,检查身体日期,健康状况)
用SQL语句完成下列问题:
1.查找所有女科长的姓名和家庭地址;
2.查找“办公室”的科长姓名和家庭地址;
3.统计“财务科”中健康状况为“良好”的职工人数。
4.删除职工关系表中职工号为“3016”的记录;
5.将职工号为“3061”的职工的健康状况改为“一般”;
6.建立健康状况为“差”的职工的视图。
60.有三个关系
部门(部门号,名称,负责人编号,联系电话.
职工(职工号,姓名,出生日期,性别,工资,部门号,职称)
医疗(职工号,就医日期,医疗费用,医院名称,诊断结果)
用SQL语言实现下列问题:
1.检索职工“卢仪”作为部门负责人所在部门的名称和联系电话;
2.检索在“协和医院”中没有就医记录的职工号、姓名和部门名称;
3.将职工号为‘3301‘的职工每次的医疗费用减半;
4.统计每个职工的医疗费用总和。
5.定义一个没有任何医疗记录的职工的职工号、姓名视图AAA。
6 建立一个存储过程,以职工号为形参,显示该职工的医疗清单。
四、编程题2
61.用PB编程程序,某登录界面如下:
数据库中有表LOGIN(TID,PASSWORD,ROLE),请写出该窗口上控件cb_1的clicked事件的程序。当通过验证后进入窗口W-mian,否则提示:“你是非法用户,不能进入系统”
62.用PB编写程序,有窗口W_data能完成对数据的管理,如图请对分别对cb_1,cb_2,cb_3,cb_4编程。
63.如图lv_1为列表视图,报表风格,当w_list打开时lv_list中显示数据库中学生表的所有学生的信息。请为w_1的open事件编程。
使用表:学生(姓名,性别,年龄,系别)
64.用PB编程,如图1点击菜单中的注册新用户,打开w_new.
1 写出菜单项”退出”的clicked事件中的代码.
2 在sle_1中输入新用户名,如果此用户名已存在则出现消息框,提示”此用户名已存在,请另输入用户名”.
3 写出cb_1的clicked事件中的代码.
使用表
user(username,password,role)
65.用PB编写程序,界面如图:
1对w_data的open事件编程,使w_data一打开dw_1中就显示数据.
2对w_data的closequery事件编程,使dw_1中的数据发生改变而又未保存就退出窗口时给用户一个消息框提示.
五、简答题
(略)……
答案
一、单选题
1. A
2. D
3. C
4. A
5. A
6. D
7. D
8. A
9. D
10. C
11. D
12. B
13. B
14. A
15. D
16. A
17. A
18. C
19. C
20. A
21. C
22. A
23. B
24. B
25. A
26. C
27. C
28. C
29. D
30. D
31. D
32. D
33. C
34. B
35. C
36. D
37. D
38. A
39. B
40. C
41. D
42. A
43. B
44. D
45. B
46. D
47. B
48. D
49. B
50. C
二、综合设计题
51.
供应商(供应商号,姓名,电话)
主键:供应商号外键:
产品(产品号,名称,规格,单价)
主键:产品号外键:
供应(产品号,供应商号,数量)
主键:(产品号,供应商号)外键:产品号,供应商编号
销售职工(职工号,姓名,工资)
主键:职工号
定货人(定货人号,姓名,地址,电话)
主键:定货人号
订购(定货人号,职工号,产品号,时间,数量)
主键:(定货人号,职工号,产品号)外键:定货人号,职工号,产品号
52.
工段(工段号,工段名)
主键:工段号
车间(车间号,车间名,车间领导,工段号)
主键:车间号外键:工段号
产品(产品号,产品名称,型号规格)
主键:产品号
生产(产品号,车间号,完工日期)
主键:(产品号,车间号)外键:产品号,车间号。
53.
销售部(部门名称、地区、电话)
主键:部门名称
产品(产品编码、品名、单价)
主键:产品编码
职工(职工号、姓名、性别、部门名称)
主键:职工号外键:部门名称
销售(部门名称、产品编码、数量)
主键:(部门名称、产品编码)外键:部门名称、产品编码
54.
工程项目(工程号、工程名,部门号)
主键:工程号外键:部门号
部门(部门号、部门名称)
主键:部门号
职工(职工号、姓名、性别、部门号)
主键:职工号,外键:部门号
55.
工厂(工厂编号、厂名、地址)
主键:工厂编号
产品(产品编号、产品名、规格)
主键:产品编号
职工(职工号、姓名、工资、聘期、工厂编号)
主键:职工号外键:工厂编号
生产(产品编号、工厂编号、计划数量)
主键:(产品编号、工厂编号)外键:产品编号、工厂编号
三、编程题1
56.1 SELECT SNAME FROM S WHERE SNO IN (SELECTSNO FROM P,SP WHERE P.COLOR=‘红色’AND P.PNO=SP.PNO);
2.SELECT SNO,SNAME,STATUS FROM S WHERE S.CITY=‘北京’
3.Select sum(QTY)from SP WHERE PNO=‘P2’.
4UPDATE P SET WEIGHT=WEIGHT十5,COLOR=‘黄色’ WHERE PNO=‘P2’
5Select SNO,count(distinct PNO) From SP Group by(SNO)
6CTREATE PROC P_LIST @Id CHAR(4)
As Select PNAME,WEIGHT,COLOR,CITY
From P
WHERE PNO=@Id
57. 1 SELECT 图书编号, 书名, 定价
from 出版社, 图书
where出版社. 出版社编号=图书. 出版社编号and出版社编号=’CS’
2.SELECT 书名,定价,出版社名称
from 图书
where 图书分类= ‘教材’
3.Selcet 出版社编号,count( distinct 图书分类),avg(定价)from 图书
group by(出版社编号)
4 SELECT 图书编号, 书名from 出版社, 图书
where出版社. 出版社编号=图书. 出版社编号
and 高等教育出版社and图书分类=’教材and 定价>30
5 delete from 图书where 图书编号=’2000301’
6 create proc book_count
as Selcet 图书分类,count( *) from 图书group by(图书分类)
58. 1 SELECT SEX ,COUNT(*)from S group by(sex)
2.SELECT C#,CNAME FROM C
where TEACHER=’张明‘
3.SELECT count(*) FROM S,SC,C
Where C.C#=SC.C# AND S.S#= SC.S# AND C.TEACHER=’张明‘.
4 SELECT S.SNAME FROM C,SC,C
Where C.C#=SC.C# AND S.S#= SC.S# AND C. CNAME =’数据库原理‘
5 DELETE FROM S WHERE S# =‘200030’
6CREATE PROC c_count @ id int for
select count(distinct .课程编号)as 选课门数
from 选课
where 学号=@id;
59. 1 SELECT 姓名,家庭地址
FROM职工
WHERE性别=’女’ and职务=’科长’
2.SELECT 姓名,家庭地址
FROM职工, 部门
WHERE 部门.部门名称=’办公室’and职工.职务=’科长’’
And 部门. 部门编号=职工.部门编号
3.SELECT count(*)
FROM职工, 部门, 保健
WHERE 部门.部门名称=’财务科’and保健. 健康状况=’良好’ And 部门. 部门编号=职工.部门编号And 保健. 职工号=职工.职工号
4 delete form 职工where 职工编号=’3061’
5 update 保健set 健康状况=‘一般’where职工编号=’3061’
6 create view bad_health as
SELECT *
FROM职工, 保健
WHERE 保健. 健康状况=’差’ And 保健. 职工号=职工.职工号
60. 1 SELECT 部门.名称, 部门.联系电话
FROM 职工,部门
WHERE职工. 姓名=’卢仪’ AND 部门.负责人编号=职工. 职工号
2 SELECT 职工号,姓名,部门名称
FROM 职工WHERE职工号not in {
Select 职工号From医疗Where医院名称=’协和医院’}
3 UPDATE医疗SET 医疗费用=医疗费用/2 where职工号=’3301’
4 select 职工号,sum(医疗费用)from医疗group by (职工号)
5 create view AAA as
SELECT 职工号,姓名FROM 职工
WHERE职工号not in { Select 职工号From医疗}
6 create proc health_list @id char(4) as
select 职工号,就医日期,医疗费用,医院名称,诊断结果
from 医疗where职工号=@id
四、编程题2
61. int id
select number
into :id
from teacher
Where number=:sle_1.text and password=:sle_2.text; If sqlca.sqlcode=100 then
Messagebox(“警告”,“输入的用户或口令错误”) End if
62. 1添加的clicked事件
int i
i=dw_1.insertrow(0)
dw_1.scrolltorow(i)
dw_1.setfocus()
2 删除的clicked事件
dw_1.deleterow(0)
3 保存的clicked事件
int j
j=dw_1.update()
if j= -1 then
messagebox("information","数据无法保存")
else
messagebox("information","数据已保存")
end if
4关闭的clicked事件
close(parent)
63. int i,j
string outname,outsex,soutage
int outage
lv_1.AddColumn("姓名", Left!, 600)
lv_1.AddColumn("性别", Left!, 400)
lv_1.AddColumn("年龄", Left!, 400)
declare namecur cursor for
select name,sex,age
from student;
open namecur;
if sqlca.sqlcode=-1 then
messagebox("sql error",sqlca.sqlerrtext)
else
fetch namecur into :outname,:outsex,:outage;
i=1
do while sqlca.sqlcode=0
lv_1.addItem (outid,1)
lv_1.Setitem (i,1,outname)
lv_1.Setitem (i,2,outsex)
soutage=string(outage)
lv_1.SetItem (i,3,soutage)
fetch namecur into :outname,:outsex,:outage;
i++
loop
64. 1 close(parent)
2 sle_1 的modifed事件
string abc;
select role
into :abc
from user
where username=:sle_1.text;
if sqlca.sqlcode=100 then messagebox(“提示”,”此用户名已存在,请另输入用户名”)end if 3 insert into user values(:sle_1.text,:sle_2.text.:ddlb_1.text)
65. 1 dw_1.settransobject(sqlca)
2
integer m
if dw_1.modifiedcount()+dw_1.deletedcount()>0 then
m=messagebox("信息","数据已改变,是否保存",question!,yesnocancel!,1)
if m=1 then
dw_1.update()=-1 return 0
elseif m=2 then
return 0
elseif m=3 then return 1 end if
end if
五、简答题
(略)……