结构化查询语言SQL习题与答案
篇一:结构化查询语言SQL习题与答案
一、选择题
1. 在SQL包含的功能中,最重要的功能是_______。
A) 数据查询 B) 数据操纵 C) 数据定义 D) 数据控制
2. 使用SQL语言有两种方式,它们是_______。
A) 菜单式和交互式B) 嵌入式和程序式
C) 交互式和嵌入式D) 命令式和解释式
3. SQL的全部功能可以用9个动词概括,其中动词INSERT是属于下列______功能。
A) 数据查询 B) 数据操纵 C) 数据定义 D) 数据控制
4. SQL语言支持数据库的三级模式结构,其中模式对应于______。
A) 存储文件 B) 视图 C) 基本表 D) 视图和基本表
5. 在创建数据表时,可以给字段规定NULL或NOT NULL值,NULL值的含义是______。
A) 0B) 空格 C) NULL D) 不确定
6. 在SQL的ALTER语句中,用于删除字段的子句是______。
A) ALTER B) DELETE C) DROP D) MODIFY
7. SQL中的INSERT语句可以用于______。
A) 插入一条记录 B) 插入一个字段
C) 插入一个索引 D) 插入一个表
8. 下列描述错误的是______。
A) 用INSERT-SQL语句可以插入一条记录
B) 用INSERT-SQL语句可以插入多条记录
C) 使用INSERT-SQL语句可以插入记录的部分数据
D)使用INSERT-SQL语句插入记录时列名的排列顺序必须与表定义时的顺
序一致
9. INSERT-SQL语句中所使用的数据不能来自于______。
A) 数组 B) 变量 C) 查询 D) 索引
10. SQL中的UPDATE语句可以用于______。
A) 更新数据表的结构 B) 更新数据表的值
C) 更新索引D) 更新查询
11. 下列描述错误的是______。
A) SQL中的UPDATE语句可以修改一条记录
B)SQL中的UPDATE语句可以修改多条记录
C)SQL中的UPDATE语句可以用子查询提供要修改的值
D)SQL中的UPDATE语句可以修改子查询的结果
12. SQL中的DELETE语句可以用于______。
A) 删除数据表的结构 B) 删除数据表
C) 删除数据表的记录 D) 删除数据表的字段
13. 在SELECT语句中,为了在查询结果中消去重复记录,应使用________项。
A) PERCENTB) DISTINCTC) TOP ND) WITH TIES
14. 为了在查询结果中只包含两个表中符合条件的记录,应使用________联接类型。
A) INNER B) LEFT C) RIGHT D) FULL
15. 在SELECT-SQL语句中,要将查询结果保存在文本文件中的选项是________。
A) INTO〈新表名〉B) TO FILE 〈文件名〉
C) TO PRINTER D) TO SCREEN
16. 在SQL查询时,使用WHERE 子句提出的是________。
A) 查询目标 B) 查询结果 C) 查询条件D) 查询分组
17. 在SELECT语句中,如果要对输出的记录进行排序,应选使用________项。
A) ORDER B) GROUPC) HAVINGD) TOP
18. 在SELECT语句中,________子句后可能带有HAVING短语。
A) ORDERB) GROUP C) WHERED) SELECT
19. 在SELECT-SQL语言中,________子句相当于关系中的投影运算。
A) WHEREB) JOINC) FROM D) SELECT
20. 如果要选择分数在70和80之间的记录,________是正确的。
A) 分数>=70 AND <=80 B) 分数BETWEEN 70 AND 80
C) 分数>=70 OR 分数<=80D) 分数IN (70,80)
21. 如果学生表中有”所在系”字段,要统计全校有多少个系,可用命令子句________。
A) SELECT SUM(所在系)B) SELECT SUM(DISTINCT 所在系)
C) SELECT COUNT(所在系)D) SELECT COUNT(DISTINCT 所在系)
22. 下列语句错误的是________。
A) SELECT * FROM 学生表
B)SELECT 学号 AS 学生编号 FROM 学生表
C) SELECT ALL FIELDS FROM 学生表
D) SELECT DISTINCT 学号 FROM 选课表
23. 查询除教授和副教授以外的教师姓名,其WHERE子句为________。
A)WHERE 职称 NOT BETWEEN “教授” AND “副教授”
B)WHERE 职称!=“教授” AND “副教授”
C)WHERE 职称 NOT LIKE (“教授”,”副教授”)
D)WHERE 职称NOT IN (“教授”,”副教授”)
24. 在选课表中,找出成绩不为空的记录,应使用下列语句________。
A)SELECT *FROM 选课表 WHERE 成绩 IS “ “
B)SELECT *FROM 选课表 WHERE 成绩=0
C)SELECT *FROM 选课表 WHERE 成绩<>NULL
D)SELECT *FROM 选课表 WHERE 成绩 IS NOT NULL
25. 下列COUNT函数的用法错误的是________。
A)COUNT(ALL)B)COUNT(*)
C)COUNT(成绩)D)COUNT(DISTINCT 学号)
26. 要从选课表中统计每个学生选修的课程门数,应使用的SELECT-SQL语句是________。
A)SELECT COUNT(*)FROM 选课表
B)SELECT COUNT(*)FROM 选课表 GROUP BY 学号
C)SELECT DISTINCT COUNT(*)FROM 选课表
D)SELECT DISTINCT COUNT(*)FROM 选课表 GROUP BY 学号
27. 要从选课表中查询选修了三门课程以上的学生学号,应使用的SELECT-SQL语句是________。
A)SELECT 学号 FROM 选课表 WHERE COUNT(*)>=3
B)SELECT 学号 FROM 选课表 HAVING COUNT(*)>=3
C)SELECT 学号 FROM 选课表 GROUP BY 学号 HAVING COUNT(*)>=3
D)SELECT 学号 FROM 选课表 GROUP BY 学号 WHERE COUNT(*)>=3
28. 要从学生表中查询入校总分最高的3个学生的记录,应使用的SELECT-SQL语句是________。
A)SELECT * FROM 学生表 ORDER BY 入校总分ASC
B)SELECT * FROM 学生表 ORDER BY 入校总分DESC
C)SELECT * FROM 学生表 TOP 3 ORDER BY 入校总分ASC
D)SELECT * FROM 学生表 TOP 3 ORDER BY 入校总分DESC
29. 在进行多表联接查询时,用________表明联接的条件。
A)FOR或WHILE B)FOR或WHERE
C)WHERE 或ON D)JOIN 或ON
30. 查询选修课成绩在80分以上的女生姓名,用________语句。
A)SELECT 姓名 FROM 学生表,选课表 WHERE 学生表.学号=选课表.学号
.OR.性别=“女”.AND.成绩>=80
B)SELECT 姓名 FROM 学生表,选课表 WHERE 学生表.学号=选课表.学号
.AND.性别=“女”.OR.成绩>=80
C)SELECT 姓名 FROM 学生表,选课表 WHERE 学生表.学号=选课表.学号
.OR.性别=“女”.OR.成绩>=80
D)SELECT 姓名 FROM 学生表,选课表 WHERE 学生表.学号=选课表.学号
.AND.性别=“女”.AND.成绩>=80
31. 查询所有教师所讲授的课程,列出教师号,姓名和课程号,用________语句。
A)SELECT 教师表.教师号,姓名,课程号 FROM 教师表,授课表 WHERE 教师表.教师号=教师号
B)SELECT教师表.教师号,姓名,课程号 FROM 教师表,授课表
ON教师表.教师号=授课表.教师号
C)SELECT教师表.教师号,姓名,课程号 FROM 教师表 INNER JION授课表 ON 教师表.教师号=授课表.教师号
D)SELECT教师表.教师号,姓名,课程号 FROM 教师表 INNER JION授课表 WHERE 教师表.教师号=授课表.教师号
32. 查询”陈静”教师所讲授的课程,列出姓名和课程名,用________语句。A)SELECT姓名,课程名 FROM 教师表,授课表 ,课程表
WHERE 教师表.教师号=授课表.教师号 AND 姓名=“陈静”
B)SELECT姓名,课程名 FROM 教师表,授课表 ,课程表
WHERE 教师表.教师号=授课表.教师号 AND授课表.课程号=课程表.课程号AN
D 姓名=“陈静”
C) SELECT姓名,课程名 FROM 教师表,授课表 ,课程表
WHERE 教师表.教师号=授课表.教师号 AND授课表.教师号=课程表.课程号AN
D 姓名=“陈静”
D) SELECT姓名,课程名 FROM 教师表,授课表 ,课程表
WHERE 授课表.课程号=课程表.课程号AND 姓名=“陈静”
33. 查询所有比”陈静”教师工资高的教师姓名及工资,使用下列语句 SELECT
X.姓名,X.工资 FROM 教师表 AS X,教师表 AS Y
WHERE X.工资>Y.工资AND Y.姓名=“陈静”。
该语句使用的`查询是________。
A) 内连接查询 B) 外连接查询
C) 自身连接查询D) 子查询
34. 查询与”陈静”教师职称相同的教师名,用________语句。
A)SELECT 姓名FROM 教师表 WHERE 职称=“陈静”职称。
B)SELECT X.姓名FROM 教师表 AS X,教师表 AS Y
WHERE X.职称=Y.职称WHERE Y.姓名=“陈静”。
C)SELECT姓名FROM 教师表WHERE 职称=(SELECT职称 FROM 教师
AND 姓名=“陈静”)
D)SELECT姓名FROM 教师表WHERE 职称=(SELECT职称 FROM 教师
WHERE 姓名=“陈静”)
35. 当子查询返回的值是一个集合时,________不是在比较运算符和子查询中使用的量词。
A) RESTB) IN C) ALL D) ANY
36. 查询讲授课程号为C140的教师姓名,错误的语句是________。
A)SEL
ECT 姓名FROM 教师表 WHERE(教师号=ANY
(SELECT 教师号FROM 授课表 WHERE课程号=“C140”))
B)SELECT 姓名FROM 教师表 WHERE EXISTS(SELECT * FROM授课表
WHERE 教师号=教师表.教师号 AND课程号=“C140”)
C)SELECT 姓名FROM 教师表,授课表 WHERE教师表.教师号=授课表.教师
号 AND授课表.课程号=“C140”
D)SELECT 姓名FROM 教师表 WHERE(教师号=ALL
(SELECT 教师号FROM 授课表 WHERE课程号=“C140”))
37. 查询其他系中比计算机系所有教师工资都高的教师姓名和工资,正确的语句是________。
A)SELECT 姓名,工资FROM 教师表 WHERE工资>ANY(SELECT 工资 FRO
M 教师表 WHERE所在系=“计算机”)AND 所在系<>计算机
B)SELECT 姓名,工资FROM 教师表 WHERE工资>(SELECT MIN(工资) FR
OM 教师表 WHERE所在系=“计算机”)AND 所在系<>计算机
C)SELECT 姓名,工资FROM 教师表 WHERE工资>ALL(SELECT 工资 FRO
M 教师表 WHERE所在系=“计算机”)AND 所在系<>计算机
D)SELECT 姓名,工资FROM 教师表 WHERE工资>(SELECT MAX(工资) F
ROM 教师表 WHERE所在系=“计算机”AND 所在系<>计算机)
38. 下列查询
SELECT 学号,SUM(成绩)AS 总分FROM 选课表 WHERE (学号=“C1011101”)
GROUP BY 学号
UNION
SELECT 学号,SUM(成绩)AS 总分FROM 选课表 WHERE (学号=“C1011102”)
GROUP BY 学号
使用的是________。
A) 合并查询 B) 外连接查询
C) 自身连接查询D) 子查询
39. 下列________不是SQL语言具有的功能。
A) 数据定义 B) 数据操纵 C) 数据分配D) 数据查询
40. SQL语言的核心是________。
A) 建表B) 查询C) 汇总 D) 定义
41. DCL是下列________语言的简称。
A) 数据定义 B) 数据查询 C) 数据操纵D) 数据控制
42. 视图和基本表对应于数据库三级模式中的________。
A) 外模式 B) 模式C) 内模式 D) 全部模式
43. 下列的完整性约束________是惟一性约束。
A) CHECK B) PRIMARY KEY
C) NULL/NOT NULL D) UNIQUE
44. 使用下列________约束,可以确保输入的值在指定的范围内。
A) CHECKB) PRIMARY KEY
C) NULL/NOT NULLD) FOREIGN KEY
45. 不属于数据定义功能的SQL语句是________。
A) CREATE TABLEB) CREATE CURSOR
C) UPDATE D) ALTER TABLE
46. 在ALTER-SQL语句中________子句用于增加字段的长度。
A) ADD B) ALTER
C) MODIFY D) DROP
47. SQL的数据操作语句不包括______。
A) INSERT B) ALTER C) DELETE D) UPDATE
48. 在使用命令 INSERT INTO 〈表名〉[(列名…)] VALUSE(〈值〉)时下列描述错误的是______。
A) INSERT-SQL语句中列名的顺序可以与表定义时的列名顺序一致
B) INSERT-SQL语句中列名的顺序可以与表定义时的列名顺序不一致
C) INSERT-SQL语句中值的顺序可以与列名的顺序不一致
D)INSERT-SQL语句中值的顺序必须与列名的顺序一致
49. UPDATE-SQL语句的功能是______。
篇二:数据库 练习题(答案)
第四章练习题
一、选择题
1、设有两个关系R(A,B)和S(B,C),与下列SELECT语句
SELECT A,B FROM R WHERE B NOT IN(SELECT B FROM S WHERE C='C56'); C]B.πA,B等价的关系代数表达式是 [ A.πA,B(σ
A,BC≠'C56'(R?S)) (R ? S) C≠'C56'C.R-π(σC= 'C56'(R?S)) D.R-π
B] A,B(σC≠'C56' (R?S)) 2、嵌入式SQL的预处理方式,是指[
A.识别出SQL语句,加上前缀标识和结束标志
B.把嵌入的SQL语句处理成函数调用形式
C.对源程序进行格式化处理
D.把嵌入的SQL语句编译成目标程序
3、SQL中,“DELETE FROM 表名”表示 [ A]
A.从基本表中删除所有元组 C.从数据库中撤消这个基本表 B.从基本表中删除所有属性 D.从基本表中删除重复元组
[ C]
B.计算属性的个数 4、SQL中,聚合函数COUNT(列名)用于 A.计算元组个数
C.对一列中的非空值计算个数 D.对一列中的非空值和空值计算个数
5、在传统SQL技术中,使用“ORDER BY”子句的SELECT语句查询的结果,实际上为 [
B] A.数组 B.列表 C.包 D.集合
6、在数据库中,能提高查询速度的是(C )
A. 数据依赖 B. 视图 C. 索引D. 数据压缩
7、语句 from sc 表明( A )
A. 删除sc中的全部记录 B. 删除基本表sc
C. 删除基本表sc中的列数据 D. 删除基本表sc中的部分行
8、在DB应用中,一般一条SQL 语句可产生或处理一组记录,而DB主语言语句一般一次只能处理一条记录,其协调可通过( B)实现。
A. 指针B. 游标 C.数组 D. 栈
9、在下列基本表的定义中,数值5表示( C )
CREATE TABLE student (Sno5) not null unique,Sname 2));
A. 表中有5条记录 B. 表中有5列
C. 表中字符串Sno 的长度 D. 表格的大小
10、 在视图上不能完成的操作是(C )
A. 更新视图B. 查询 C. 在视图上定义新的基本表 D. 在视图上定义新视图
11、下列聚合函数中不忽略空值 (null) 的是 (C)
A、SUM (列名)B、MAX (列名)C、COUNT ( * )D、AVG (列名)
12、SQL的查询语句的where子句中,对空值的操作,不正确的是 ( C )
A、where AGE IS NULLB、where AGE IS NOT NULL
C、where AGE = NULL D、where NOT (AGE IS NULL)
13、Transact-SQL对标准SQL的扩展主要表现为( A )。
A. 加入了程序控制结构和变量 B. 加入了建库和建表语句
C. 提供了分组(Group By)查询功能D. 提供了Min、Max待统计函数
14、以下哪种情况应尽量创建索引( A )。
A. 在Where子句中出现频率较高的列 B. 具有很多NULL值的列
C. 记录较少的基本表 D. 需要更新频繁的基本表
15、下列SQL Server语句中出现语法错误的是(D )。
A. DECLARE @Myvar INT B. SELECT * FROM [AAA]
C. CREATE DATABASE AAA D. DELETE * FROM AAA
16、属于事务控制的语句是(A)。
A. Begin Tran、Commit、RollBackB. Begin、Continue、End
C. Create Tran、Commit、RollBack D. Begin Tran、Continue、End
17、在SQL语言的SELECT语句中,实现投影操作的是哪个子句?(A )
A)select B)fromC)where D)grou by
18、 用二维表结构表示实体以及实体间联系的数据模型称为(C )
A)网状模型 B)层次模型 C)关系模型 D)面向对象模型
第(19)至(21)题是基于如下两个关系,其中雇员信息表关系EMP的主键是雇员号,部门信息表关系DEPT的主键是部门号
EMP DEPT
19、 若执行下面列出的操作,哪个操作不能成功执行?(D )
A) 从EMP中删除行(‘010’,‘王宏达’,‘01’,1200)
B) 在EMP中插入行(‘102’,‘赵敏’,‘01’,1500)
C) 将EMP中雇员号=‘056’的工资改为1600元
D) 将EMP中雇员号=‘101’的部门号改为‘05’
20、若执行下面列出的操作,哪个操作不能成功执行?(C )
A) 从DEPT 中删除部门号=‘03’的行
B)在DEPT中插入行(‘06’,‘计划部’,‘6号楼’)
C) 将DEPT中部门号=‘02’的部门号改为‘10’
D) 将DEPT中部门号=‘01’的地址改为‘5号楼’
21、在雇员信息表关系EMP中,哪个属性是外键(foreign key)?(C )
A) 雇员号 B) 雇员名 C) 部门号 D) 工资
22、设关系R和关系S的元数分别是3和4,关系T是R与S的广义笛卡尔积,即:T=R×S,
则关系T的元数是(A )
A) 7B) 9C) 12D) 1
23、设属性A是关系R的主属性,则属性A不能取空值(NULL)。这是(A )
A) 实体完整性规则 B) 参照完整性规则
C) 用户定义完整性规则D) 域完整性规则
24、 下面列出的关于“视图(View)”的条目中,哪一条是不正确的?( B)
A) 视图是外模式 B)使用视图可以加快查询语句的执行速度
C) 视图是虚表 D) 使用视图可以简化查询语句的编写
25、 SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,语句INSERT、DELETE、
UPDATE实现哪类功能?(B )
A) 数据查询 B) 数据操纵 C) 数据定义 D) 数据控制
26、在数据库管理系统中,下面哪个模块不是数据库存取的功能模块?( A)
A) 事务管理程序模块
B) 数据更新程序模块 D) 查询处理程序模块 C) 交互式程序查询模块
27、SQL查询语句中,用于测试子查询是否为空的谓词是(A)。
A、EXISTS B、UNIQUE C、SOME D、ALL
28、下列SQL语句中,插入数据的是(D )。
A、CREATE B、ALTER C、UPDATED、INSERT
29、 在下面所列出的条目中,哪些是数据库管理系统的基本功能?(D )
Ⅰ.数据库定义
Ⅲ.数据库存取
A) Ⅰ和Ⅱ Ⅱ.数据库的建立和维护 Ⅳ.数据库和网络中其他软件系统的通信 D) 都是 B) Ⅰ、Ⅱ和Ⅲ C) Ⅱ和Ⅲ
30、当修改基本数据时,下列关系视图的说法正确的是(B )
A、需要重建 B、查以看到修改结果
C、无法看到修改结果式 D、不许修改带视图的基表
31、 在数据库管理系统的层次结构中,由高级到低级的层次排列顺序为(D )
A) 应用层、数据存取层、数据存储层、语言翻译处理层
B) 应用层、数据存储层、数据存取层、语言翻译处理层
C) 应用层、数据存储层、语言翻译处理层、数据存取层
D) 应用层、语言翻译处理层、数据存取层、数据存储层
32、在SQL语言的SELECT语句中,实现投影操作的是( A )子句。
A、select B、fromC、where D、grou by
33、SQL中,“AGE IN(20,22)”的语义是( D )。
A)AGE<=22 and="" age="">=20B)AGE<22 and="" age="">20
C)AGE =20 AND AGE =22 D)AGE =20 OR AGE =22
34 SQL中,聚合函数COUNT(列名)用于( C )
A.计算元组个数B.计算属性的个数
C.对一列中的非空值计算个数 D.对一列中的非空值和空值计算个数
35、Transact-SQL对标准SQL的扩展主要表现为(A )。
A. 加入了程序控制结构和变量 B. 加入了建库和建表语句
C. 提供了分组(Group By)查询功能 D. 提供了Min、Max统计函数
36、已知关系:厂商(厂商号,厂名) PK=厂商号
产品(产品号,颜色,厂商号) PK=产品号,FK=厂商号
假设两个关系中已经存在如图所示元组:
厂商产品
若再往产品关系中插入如下元组:
I(P03,红,C02) II(P01,蓝,C01)
III(P04,白,C04) IV(P05,黑,null)
能够插入的元组是( D )
A I,II,IV B I,IIIC I,IID I,IV
37、设有一个关系:DEPT(DNO,DNAME),如果要找出倒数第三个字母为W,并且至少包含4个字母的DNAME,则查询条件子句应写成WHERE DNAME LIKE ( B )
A ‘_ _ W _ %’B ‘_ % W _ _’C ‘_ W _ _’ D ‘_ W _ %’
38、下列SQL语句中,修改表结构的是(D )。
A、CREATE B、INSERT C、UPDATED、ALTER
39、SQL语句通常称为( A)。
A、结构化查询语言 B、结构化控制语言
C、结构化定义语言 D、结构化操纵语言
40、SQL语言的一体化特点主要是与( B)相比较而言的。
A、操作系统命令 B、非关系模型的数据语言C、高级语言D、自然语言
41、SQL语言中,删除一个表的命令是( B )
A、 DELETE table B、DROP tableC、 CLEAR tableD、 REMORE table
42、在基表S中查询所有姓名中有“国”的学生,在WHERE子句中应使用( A)通配符。
A. LIKE ’%国%’ B. LIKE ‘%国_’ C. LIKE ’_国%’ D. LIKE ‘_国_’
43、下列哪个不属于数据库对象(B )
A、默认B、SELECT语句 C、存储过程 D、视图
44、下列那一个不属于SQL SERVER工具(A )
A数据库管理器 B、事件探查器 C、导入和导出数据 D、查询分析器
45、 下列那一个不属于企业管理器的功能(D )
A、注册服务器 B、配置本地和远程服务器
C、引入和导出数据D、为WINDOWS创建操作系统用户
46、关于SQL Server文件组的叙述正确的是:( A )。
A、一个数据库文件不能存在于两个或两个以上的文件组里
B、日志文件可以属于某个文件组
C、文件组可以包含不同数据库的数据文件
D、一个文件组只能放在同一个存储设备中
47、下面关于外码的描述中,不正确的是(C )。
A. 外码体现了关系间的联系手段B. 外码是某个关系的码
C. 外码不是任何关系的码
D. 外码是一个关系的码同时是另一个关系的属性
48、在SQL Server 中关于索引叙述正确的是:( B )。
A、每个数据库表可以建立多个聚集索引B、每个表可以定义多个非聚集索引
C、索引的数据保存在同一个表中D、索引不会改变表中的数据
49、关于索引描述错误的是以下的哪一个?( A)
A、表中的任何数据列都可以添加索引
B、创建索引的列最好不要含有许多重复的值
C、一般不给很少使用的列添加索引
D、并不是数据库中聚集索引越多搜索效率就越高
50、关于存储过程的描述正确的一项是:( C )。
A、存储过程的存在独立于表,它存放在客户端,供客户使用
B、存储过程只是一些T-SQL语句的集合,不能看作SQL Server的对象
篇三:数据库作业(答案)
《数据库原理与应用》综合设计任务书
前言
《数据库原理与应用》课程的重点知识模块包括:1)数据库设计、2)用SQL实现建库、建表、查询、更新、和创建视图、3)存储过程和触发器设计。针对这三个应用能力,用一个案例作为背景,布置三次大作业。
在校大学生都能理解“图书管理系统”的应用场合和业务流程。因此,以图书管理系统作为案例来布置作业,可以降低业务分析难度,让学生将主要精力放在知识消化与技术应用上。
本文档包括四个部分。第一部分描述系统的需求,第二部分提出E-R模型设计和关系模型设计的任务;第三部分提出在SQL Server中,用SQL语句来建库、建表、查询、更新数据、创建视图的任务;第四部分,根据应用需求、安全需求和数据完整性要求,提出设计存储过程和触发器的任务。 每个任务之前,都给出了完成任务所需要掌握的关键知识点,学生可以在对这些知识点进行复习的基础上完成任务,每个任务是一次大作业。
第一部分案例的需求描述
本部分描述“图书管理系统”的需求,学生通过阅读本部分内容,了解系统的功能要求、运行环境,对系统所需的数据有总体认识,作为三次作业的基础。
1.2 需求分析 1)功能需求
图1-1:功能需求示意图
教师信息管理:用于教师基本资料的增删改查。
图书信息管理:用于图书基本信息的增删改查,分类统计图书册数和价值。 借书登记:记录借书时间、所借图书、借书人、办理人。 还书登记:记录还书时间、所还图书、还书人、办理人。
催还:查询借阅逾期的借书信息,给借书人发电子邮件,给借书人的部门打电话。 2)运行环境要求
图1-2:运行环境拓扑图
系统采用C/S模式,有两台PC和一台服务器,联成一个局域网。PC上安装图书管理软件的客户端,服务器上安装DBMS,服务器也可由两台PC中的一台来代替。
第二部分 作业1——E-R模型与关系模型设计
(满分8分)
本部分的任务是:在需求分析的基础上,进行E-R图设计,然后将E-R模型转换为关系模型。 任务: 1) 2)
根据需求描述,绘制E-R图。
将E-R图转换成关系模型,写出所有的关系模式,并写出每一个关系是按照什么规则转换而成的。
3) 在已经形成的关系模型下,举例说明连接运算、投影运算、选择运算。 参考答案:(属性写在了实体和联系图形内) 任务:
1) 根据需求描述,分别为“图书管理系统”的不同功能模块绘制局部E-R图。 教师信息管理:
图书基本信息管理:
借还书登记:
催还书登记:
2) 整体E-R图
3) 关系模式
? 类型表(类型名,借阅期限),依据:实体转换为关系。
? 图书表(,书名,作者,出版社,出版时间,单价,类型名,状态),依据:
实体转换为关系,1:N的联系合并到N,在N方增加一个外键: 类型名。注:状态属性为(库存,借出)
? 管理员表() ,依据:实体转换为关系。
? 教师表(教师工号,姓名,性别,Email,部门名), 依据:实体转换为关系,1:N的联系合并
到N,在N方增加一个外键: 部门名。
? 部门表(部门名,电话),依据:实体转换为关系。
? 借还表(ISBN,教师工号,借办理人,借出日期,还办理人,归还日期),依
据,M:N联系转换为一个关系,取联系的实体的键加联系属性作为其属性,可以增加一个列作为主键。
? 催还表(ISBN,教师工号,办理人,催还日期),依据,M:N联系转换为一个
关系,取联系的实体的键加联系属性作为其属性,可以增加一个列作为主键。 4) 在已经形成的关系模型下,举例说明连接运算、投影运算、选择运算。
连接运算:查看类型的图书已经超过了有效借出期限。(需要图书,类型,借还关系) 投影运算:查看图书的书名、作者。 选择运算:查看单价高于50元的图书。
附:自底向上设计概念结构的方法
通常分为两步:第一步:首先要根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,设计各个局部视图即分E-R图。 第二步:集成局部视图。
设计分E-R图的步骤是:选择局部应用在需求分析阶段,通过对应用环境和要求进行详尽的调查分析,逐一设计分E-R图,实体的属性、标识实体的码实际上实体与属性是相对而言的,很难有截然划分的界限。同一事物,在一种应用环境中作为"属性",在另一种应用环境中就必须作为"实体"。一般说来,在给定的应用环境中:属性不能再具有需要描述的性质。即属性必须是不可分的数据项。
合并分E-R图,生成初步E-R图。各分E-R图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突。。解决方法是根据应用的语义对实体联系的类型进行综合或调整。 修改与重构,生成基本E-R图分E-R图经过合并生成的是初步E-R图。之所以称其为初步E-R图,是因为其中可能存在冗余的数据和冗余的实体间联系,即存在可由基本数据导出的数据和可由其他联系导出的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,因此得到初步E-R图后,还应当进一步检查E-R图中是否存在冗余,如果存在,应设法予以消除。
【结构化查询语言SQL习题与答案】相关文章: