网站首页 语言 会计 互联网计算机 医学 学历 职场 文艺体育 范文
当前位置:学识谷 > 设计制作 > 网页设计

结构化查询语言SQL习题与答案

栏目: 网页设计 / 发布于: / 人气:1.12W

篇一:结构化查询语言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 学生表.学号=选课表.学号

.性别=“女”.成绩>=80

B)SELECT 姓名 FROM 学生表,选课表 WHERE 学生表.学号=选课表.学号

.性别=“女”.成绩>=80

C)SELECT 姓名 FROM 学生表,选课表 WHERE 学生表.学号=选课表.学号

.性别=“女”.成绩>=80

D)SELECT 姓名 FROM 学生表,选课表 WHERE 学生表.学号=选课表.学号

.性别=“女”.成绩>=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图中是否存在冗余,如果存在,应设法予以消除。