数据库应用系统设计-复习资料-2014年春完整版

更新时间:2023-03-14 05:26:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数据库应用系统设计

1、单选题

1. 在R(U)中,如果Y函数依赖于X,并且存在X的一个真子集X',使得Y函数依赖于X',则Y是X的(A) A. 部分函数依赖 B. 完全函数依赖 C. 非平凡函数依赖 D. 平凡函数依赖 答案:A

3. Sybase是一种(C)数据库 A. 层次 B. 网状 C. 关系 D. 树状 答案:C

6. 对于已经创建好的学生信息表,可以使用SQL语句“ALTER TABLE 学生信息 (D) 年龄”删除年龄列 A. ALTER COLUMN B. DELETE C. DROP

D. DROP COLUMN 答案:D

7. 对于SQL Server的三种恢复模型,按照数据丢失程度由小到大排列依次为(B) A. 简单恢复模型、完全恢复模型、大容量日志恢复模型 B. 完全恢复模型、大容量日志恢复模型、简单恢复模型 C. 大容量日志恢复模型、完全恢复模型、简单恢复模型 D. 以上都不对 答案:B

8. 下列关于权限设置的叙述中正确的是(C) A. 只能指定允许操作的数据对象 B. 只能指定允许进行的操作类型

C. 既能指定允许操作的数据对象,也能指定允许进行的操作类型 D. 以上都不对 答案:C

9. 使用SQL进行数据查询时,如果查询结果中包含了许多重复的行,可以使用(A)去掉结果中的重复行

A. DISTINT B. DISTINTROW C. DIFFERENT D. DIFFERENTROW 答案:A

10. 对于一个学生表,如果想限制学生入学成绩只能在0~750之间,则应使用(B) A. 实体完整性

B. 用户自定义完整性 C. 参照完整性 D. 记录完整性 答案:B

12. 关系模式规范化中的插入异常是指(C) A. 不该插入的数据被插入 B. 不该删除的数据被删除 C. 要插入的数据无法插入 D. 要删除的数据无法删除 答案:C

14. 关系模式R中属性或属性组X不是R的码,但X是另一个关系模式的码,则称X是R的(D) A. 主码 B. 候选码 C. 唯一码 D. 外码 答案:D

16. 要在学生选课表中查询选修三门以上课程的学生的学号,则可以使用的SQL语句是“SELECT 学号 FROM 学生选课 GROUP BY (D) COUNT(*)>3” A. 课程号 WHERE B. 学号 WHERE C. 课程号 HAVING D. 学号 HAVING 答案:D

17. 要定义数据库描述文件名称和数据库基本连接参数,应选择Database Profile Setup对话框中的(A)标签 A. Connection B. Transaction C. Syntax D. Preview 答案:A

21. SQL是(B)的标准语言 A. 层次数据库

B. 关系数据库 C. 非数据库 D. 网状数据库 答案:B

1.在数据管理技术的三个发展阶段中,数据冗余度最小、数据共享度最高的是()阶段 A. 文件系统 B. 数据库 C. 人工管理

D. 数据库管理系统 答案:B

2.用来显示窗口对象及其控件的视图是() A. 布局视图 B. 窗口视图 C. 属性视图 D.脚本视图 答案:A

3.要指定数据库每一确定状态时的数据对象所应满足的约束条件,则应使用() A. 列约束 B. 静态约束 C. 动态约束 D. 关系约束 答案:B

4.如果通过延迟检查发现用户操作请求违背了完整性约束条件,则系统() A. 拒绝该用户操作

B. 拒绝整个事务并回滚该事务 C. 允许该用户操作但给出提示信息 D. 不做任何事情 答案:B

5.确定数据的存储安排以提高系统性能,属于数据库设计的()阶段 A. 概念结构设计 B. 逻辑结构设计 C. 物理结构设计 D. 运行和维护 答案:C

6.使用SQL语言修改数据库,正确的命令是() A. CREATE DATABASE B. MODIFY DATABASE C. ALTER DATABASE D. CHANGE DATABASE

答案:C

7.在数据库管理系统中,通过()语言来定义模式、子模式和内模式 A. 数据定义 B. 数据操纵 C. 数据控制 D. 数据管理 答案:A

8.PowerBuilder应用程序的入口点是() A. 主函数 B. 应用对象 C. 窗口对象 D. 事务对象 答案:B

9.进行并发控制的主要技术是() A. 备份

B. 建立日志文件 C. 封锁

D. 完整性检查 答案:C

10.聚合函数“AVG”的功能是计算一个数值型列的() A. 和 B. 平均值 C. 最小值 D. 第一个值 答案:B

11.数据的物理独立性是指(),从而保证应用程序不必改变

A. 当数据库的模式发生改变时,只要修改外模式/模式映像关系,使外模式不变 B. 当数据库的模式发生改变时,只要修改模式/内模式映像关系使数据内模式不变化 C. 当数据库的存储结构改变时,只要修改外模式/模式映像,使外模式不变

D. 当数据库的存储结构改变时,只要修改模式/内模式映像关系使数据模式不变化 答案:D

12.数据库应用系统维护阶段最主要的工作是() A. 应用程序维护 B. 数据维护 C. 编码维护 D. 硬件设备维护 答案:A

13.在关系数据库系统中,一个关系相当于() A. 一个数据库文件 B. 一张二维表 C. 一条记录 D. 一个指针 答案:B

14.主键的作用是()

A. 用来唯一标识表中的行 B. 用来验证数据库的密码 C. 可有可无的一个属性 D. 设定表中某列的默认值 答案:A

15.数据库与文件系统的根本区别是() A. 数据的结构化 B. 提高了系统效率 C. 降低了数据冗余 D. 提高了数据共享度 答案:A

16.要规定经理的工资不能低于2000元,则应使用() A. 静态列级约束 B. 静态元组约束 C. 动态列级约束 D. 动态元组约束 答案:B

17.在SQL中,实现修改表中数据的语句是() A. MODIFY B. ALTER C. UPDATE D. ALTERDATA 答案:C

18.在PowerScript语言中,要访问myobject对象中的name属性,正确的写法是() A. myobject->name B. myobject(name) C. name(myobject) D. myobject.name 答案:D

19.要规定学生性别的取值范围为男或女,则应使用() A. 静态列级约束

B. 静态元组约束 C. 动态列级约束 D. 动态元组约束 答案:A

20.在PowerScript语言中,要打开w_main窗口,正确的语句是() A. OpenWindow(w_main) B. Open(w_main)

C. w_main.OpenWindow() D. w_main.Open() 答案:B

21.数据库系统的英文缩写为() A. DBMS B. DBS C. DB D. DBA 答案:B

3、通过( B )映象,使得关系数据库具有高度逻辑独立性。 A、模式/内模式 B、外模式/模式 C、外模式/内模式 D、以上都不对 答案:B

12、GRANT语句的功能是( ) A、把授予用户的权限收回来

B、把对指定操作对象的指定操作权限授予指定的用户 C、把被破坏的数据库进行修复

D、对多个用户同时访问数据库的操作进行并发控制 答案:B?

14、在数据库转储期间允许对数据库进行存取、修改活动,则该转储类型为( )。 A、静态转储 B、动态转储 C、海量转储 D、增量转储 答案:B

静态转储(转储期间不允许对数据库进行任何存取、修改活动)\\动态转储(转储期间允许对数据进行存取或修改)\\海量转储(每次转储全部数据库)\\增量转储(每次只转储上次转储后更新过的数据

21、在SQL Server中,要授予某安全性帐户具有转授许可给其他安全性帐户的权限,则在授权时应加上()子句。

A、WITH GRANT B、WITH GRANT FOR

C、WITH GRANT OPTION D、WITH GRANT PERMISSION 答案:C

24、在PowerBuilder中,在要查看数据库参数设置在应用程序中的代码表示形式,应选择Database Profile Setup对话框中的()标签。

A、Connection B、Transaction C、Syntax D、Preview 答案:D

26、在PowerScript语言中,从程序质量角度看应按( )优先顺序定义变量。 A、局部变量、实例变量、共享变量、全局变量 B、局部变量、共享变量、实例变量、全局变量 C、共享变量、局部变量、实例变量、全局变量 D、局部变量、实例变量、全局变量、共享变量 答案:A

4、通过( )映象,使得关系数据库具有高度物理独立性。 A、模式/内模式 B、外模式/模式 C、外模式/内模式 D、以上都不对 答案:A

5、在数据库管理系统中,通过( )语言向数据库中插入新的数据。 A、数据定义 B、数据操纵 C、数据控制 D、数据管理 答案:B?

7、表中的一行称为一个( )。

A、元组 B、属性 C、主键 D、数据类型 答案:A

5. 在SQL查询中,GROUP BY短语的作用是() A. 设置查询条件

B. 对查询结果进行排序 C. 设置分组条件

D. 选择查询结果中显示的字段

答案:C

10. 在PowerScript语言中,要使一个变量仅在某个对象范围内可用,则应将该变量声明为()

A. 全局变量 B. 局部变量 C. 实例变量 D. 共享变量 答案:C

14. 下列选项中不属于数据库系统软件组成部分的是() A. 数据库管理系统 B. 数据库应用系统 C. CPU

D. 操作系统 答案:C

16. 在PowerScript语言中,从程序质量角度看应按()优先顺序定义变量 A. 局部变量、实例变量、共享变量、全局变量 B. 局部变量、共享变量、实例变量、全局变量 C. 共享变量、局部变量、实例变量、全局变量 D. 局部变量、实例变量、全局变量、共享变量 答案:A

20. 通过外模式/模式映象,使得关系数据库具有高度()独立性

A. 物理 B. 存储 C. 逻辑 D. 结构 答案:C

2、多选题

1. 下列故障类型中,哪种故障可能会破坏数据库 A. 事务故障 B. 系统故障 C. 介质故障 D. 计算机病毒 答案:CD

2. 以下关于两段锁协议的叙述,正确的是()

A. 在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁 B. 在解除一个封锁之后,事务不再申请和获得任何其他封锁 C. 两段锁协议是保证并发调度可串行化的必要条件 D. 两段锁协议是保证并发调度可串行化的充分条件 答案:ABD

3. 数据模型的组成要素包括() A. 数据结构 B. 数据约束 C. 数据检索 D. 数据更新 答案:ABCD

4. 在PowerScript语言中,下列定义正确的数组包括() A. Int A[] B. String S[5]

C. Int N[2 to 8, 3 to 6] D. Real R[6 to 3] 答案:ABC?

5. 使用SQL语言创建一个表,要限定某列的值具有唯一性,可以使用()约束 A. PRIMARY KEY B. CHECK C. UNIQUE

D. FOREIGN KEY 答案:AC

6. 将E-R图转换为关系模型时,下列叙述正确的是() A. 一个实体转换为一个关系 B. 一个联系转换为一个关系

C. 对于一个多对多联系转换成的关系,应将与该联系相关的各实体的码的组合作为该关系

的码

D. 对于一个一对多联系转换成的关系,应将与该联系相关的各实体的码的组合作为该关系的码

答案:AC?

7. 下列关于SQL特点的叙述,错误的是()

A. SQL是一种非过程化的语言,不仅要提出“做什么”,还要指明“如何做” B. SQL集数据定义语言、数据操纵语言、数据控制语言及附加语言元素于一体 C. 一条SQL语句仅能操作一条记录

D. SQL可以作为嵌入式语言和自含式语言两种方式来使用 答案:AC?

8. SQL Server的实体完整性可以通过()进行定义 A. 外键约束 B. 检查约束 C. 主键约束 D. 唯一键约束 答案:CD

9. 下列关于关系模式规范化的叙述中,正确的是() A. 学生(学号,姓名,系别)属于第三范式

B. 属于第二范式的关系模式不存在插入异常,只存在删除异常 C. 满足第二范式的关系模式不存在删除异常,只存在插入异常 D. 属于第三范式的关系模式不存在插入异常和删除异常 答案:AD

10. 在SQL Server中,对象许可包括() A. CREATE VIEW B. UPDATE

C. CREATE TABLE D. INSERT 答案:BD

11. 要解决对数据库并发操作所带来的读“脏数据”问题,可以采用() A. 一级封锁协议 B. 二级封锁协议 C. 三级封锁协议 D. 都可以 答案:BC

12. SQL Server系统支持的认证模式包括() A. Windows认证模式 B. SQL Server认证模式

C. Windows和SQL Server混合模式 D. 以上都包括 答案:AC

13. SQL Server提供的完整性类型包括() A. 实体完整性 B. 域完整性 C. 引用完整性

D. 用户定义完整性 答案:ABCD

14. 事务的特性包括() A. 原子性 B. 一致性 C. 独立性 D. 永久性 答案:ABCD

15. 下列选项中属于关系数据库三级模式结构的是() A. 模式 B. 存储模式 C. 外模式 D. 内模式 答案:ABCD

16. SQL语言的功能包括() A. 数据定义 B. 数据查询 C. 数据操纵 D. 数据控制 答案:ABCD

17. 关于关系和关系模式之间联系正确的叙述是() A. 一个关系模式可以对应多个关系 B. 一个关系可以对应多个关系模式 C. 一个关系只能对应一个关系模式 D. 关系是关系模式在某一时刻的取值 答案:ACD

18. 数据库恢复的实现技术主要包括() A. 定期数据转储 B. 建立日志文件

C. 采用良好的防毒、杀毒工具

D. 编写应用程序时考虑可能发生的故障并采取相应的预防措施 答案:AB

19. 在数据库运行阶段,对数据库的维护工作主要包括() A. 数据库的转储和恢复

B. 数据库的安全性完整性控制 C. 数据库性能的监督和分析 D. 数据库的重组织与重构造 答案:ABCD

20. 在PowerScript语言中,下列命名正确的标识符包括() A. 2a B. a$ C. _% D. if 答案:BC

2.下列关于系统故障恢复的描述,正确的是() A. 从日志文件开头向后扫描 B. 从日志文件最后向前扫描

C. 需要建立撤销队列,并对该队列中的每个事务做撤销处理

D. 既有BEGIN TRANSACTION记录也有COMMIT记录的事务应放入撤销队列中 答案:AC

5.事务在运行过程中,系统写入日志文件中的操作包括对数据库的() A. 插入操作 B. 修改操作 C. 删除操作 D. 查询操作 答案:ABC

6.关系模式设计得不好,可能会引起()问题 A. 数据冗余度大 B. 插入异常 C. 删除异常 D. 查询异常 答案:ABC

7.下列选项中属于关系性质的是()

A. 每一列中的各个分量可以是不同类型的数据 B. 不同的列可出自同一个域

C. 改变列的排列顺序可能会改变数据的含义 D. 每一个列都是不可再分的数据项 答案:BD

关系具备如下性质:

(1)列是同质的,即每一列中的各个分量都是同一类型的数据,来自同一个域。

(2)不同的列可出自同一个域,每一个列叫做一个属性,每个属性要定义唯一的属性名。 (3)列的顺序无关性,即如果只是改变了列的排列顺序,改变前后的关系是等价的。 (4)行的顺序无关性,即如果只是改变了行的排列顺序,改变前后的关系是等价的。 (5)不能有两个完全相同的行。 (6)每一列都是不可再分的数据项。

9.必须使用日志文件的情况包括() A. 事务故障恢复 B. 系统故障恢复

C. 动态转储方式下的数据库恢复 D. 静态转储方式下的数据库恢复 答案:ABC

10.下列关于完整性约束的叙述中,正确的是() A. 一个表可以有多个PRIMARY KEY约束

B. 在任何情况下PRIMARY KEY约束都可以被删除 C. 一个表可以有多个UNIQUE约束

D. 使用NULL/NOT NULL可以设定某列的值允许为空值或不允许为空值 答案:CD

14.为了保证数据库的可恢复性,在建立日志文件时必须遵循的原则包括() A. 记录的次序严格按并发事务执行的时间次序 B. 必须先写日志文件,后写数据库 C. 必须先写数据库,后写日志文件

D. 必须将数据库的所有更新操作记录到日志文件中 答案:ABD

15.使用SQL语句查询学生信息表中入学成绩在650到700之间的学生记录,WHERE短语后可以使用的条件是()

A. 入学成绩 BETWEEN 650 AND 700 B. 入学成绩>=650 AND <=700

C. NOT (入学成绩<650 OR 入学成绩>700) D. 入学成绩 NOT BETWEEN 650 AND 700 答案:AC

18.在数据库应用系统的详细设计阶段,主要工作包括() A. 算法设计 B. 程序设计 C. 数据库设计 D. 用户界面设计 答案:ACD

19.下列关于索引的叙述中,正确的是() A. 使用索引可以加快数据检索速度

B. 使用ORDER BY和GROUP BY子句进行查询时,可以显著减少分组和排序的时间

C. 当对基本表中的数据进行增加、删除和修改操作时,使用索引可以加快数据的维护速度 D. 一个基本表上可以创建多个非聚集索引 答案:ABD

20.在SQL Server中,按照锁定的资源分类,包括() A. 字段级锁 B. 行级锁 C. 表级锁 D. 簇级锁 答案:BCD

29、下列选项中属于数据库系统软件组成部分的是()。 A、数据库管理系统 B、数据库应用系统 C、CPU D、操作系统 答案:AB

33、下列选项中,不属于SQL语言数据定义功能的命令是( ) A、CREATE B、REVOKE C、DELETE D、DROP 答案:BC

38、下列关于视图的叙述中,错误的是()。

A、视图是关系数据库系统提供给用户的一种以多角度观察和访问数据库中数据的重要方式 B、视图中存放实际数据,因此可以和基本表一样被查询、修改、删除 C、所有视图都可以进行更新操作 D、可以在一个视图上再定义视图 答案:BC

47、在数据库中解决死锁问题可以()。 A、使用一次封锁法预防死锁发生 B、使用顺序封锁法预防死锁发生

C、定期诊断系统中是否发生死锁,若有则撤销某个事务来解除之 D、使用两段锁协议 答案:ABC

52、在SQL Server中,允许创建和修改数据库的固定服务器角色包括() A、系统管理员 B、数据库创建者 C、磁盘管理员 D、进程管理员 答案:AB

57、对数据库应用系统的测试工作包括()

A、模块测试 B、单元测试 C、集成测试 D、验收测试 答案:ABCD

58、在()视图中可以用鼠标双击某个对象或控件来打开该对象或控件默认的事件脚本。 A、布局视图 B、脚本视图 C、控件列表视图 D、不可视对象列表视图 当在布局视图、控件列表视图以及不可视对象列表视图中用鼠标双击某个对象或控件时,将在脚本视图中打开该对象或控件默认的事件脚本。 答案:ABC?

53、在SQL Server中,允许增加或删除数据库用户、组和角色的固定数据库角色包括() A、db_owner B、db_accessadmin

C、db_ddladmin D、db_securityadmin 答案:ABD?

固定服务器角色

1、sysadmin 可以在 SQL Server 中执行任何活动。 固定服务器角色sysadmin的成员被赋予了SQL Server系统中所有可能的权限。例如,只有这个角色中的成员(或一个被这个角色中的成员赋予了CREATE DATABASE权限的用户)才能够创建数据库。

固定服务器角色和sa登录之间有着特殊的关系。sa登录一直都是固定服务器角色中的成员,并且不能从该角色中删除。

2、serveradmin 可以设置服务器范围的配置选项,关闭服务器。 固定服务器角色serveradmin的成员可以执行如下的动作: 向该服务器角色中添加其他登录

运行dbcc pintable命令(从而使表常驻于主内存中) 运行系统过程sp_configure(以显示或更改系统选项)

运行reconfigure选项(以更新系统过程sp_configure所做的所有改动) 使用shutdown命令关掉数据库服务器

运行系统过程sp_tableoption为用户自定义表设置选项的值

3、setupadmin 可以管理链接服务器和启动过程。

固定服务器角色setupadmin中的成员可以执行如下的动作: 向该服务器角色中添加其他登录

添加、删除或配置链接的服务器

执行一些系统过程,如sp_serveroption

4、securityadmin 可以管理登录和 CREATE DATABASE 权限,还可以读取错误日志和更改密码。

固定服务器角色securitypadmin中的成员可以执行关于服务器访问和安全的所有动作。这些成员可以进行如下的系统动作: 向该服务器角色中添加其他登录 读取SQL Server的错误日志

运行如下的系统过程:如sp_addlinkedsrvlogin、sp_addlogin、sp_defaultdb、sp_defaultlanguage、sp_denylogin、sp_droplinkedsrvlogin、sp_droplogin、sp_grantlogin、sp_helplogins、sp_remoteoption和sp_revokelogin(所有这些系统过程都与系统安全相关。)

5、processadmin 可以管理在 SQL Server 中运行的进程。 固定服务器角色processadmin中的成员用来管理SQL Server进程,如中止用户正在运行的查询。这些成员可以进行如下的动作: 向该服务器角色中添加其他登录 执行KILL命令(以取消用户进程)

6、dbcreator 可以创建、更改和除去数据库。

固定服务器角色dbcreator中的成员用来管理与数据库创建和修改有关的所有动作。这些成员可以进行如下的动作:

向该服务器角色中添加其他登录

运行CREATE DATABASE和ALTER DATABASE语句 使用系统过程sp_renamedb来修改数据库的名称

7、diskadmin 可以管理磁盘文件。

固定服务器角色diskadmin的成员可以进行如下与用来存储数据库对象的文件和文件组有关的动作:

向该服务器角色中添加其他登录

运行如下系统过程:sp_ddumpdevice和sp_dropdevice。 运行DISK INIT语句

8、bulkadmin 可以执行 BULK INSERT 语句。

服务器角色是针对服务器这个层次的权限而言的,也就是说一般加入到服务器角色里的用户都是具有对服务器一定的管理权限

数据库角色 1、db_owner 固定数据库角色的成员可以执行数据库的所有配置和维护活动,还可以删除数据库。

固定数据库角色db_owner的成员可以在特定的数据库中进行如下的动作: 向其他固定数据库角色中添加成员,或从其中删除成员 运行所有的DDL语句

运行BACKUP DATABASE和BACKUP LOG语句 使用CHECKPOINT语句显式地启动检查点进程 运行下列dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage 授予、取消或剥夺每一个数据库对象上的下列权限:SELECT、INSERT、UPDATE、DELETE和REFERENCES

使用下列系统过程向数据库中添加用户或角色:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember、sp_dropuser、sp_grantdbaccess 使用系统过程sp_rename为任何数据库对象重新命名 2、db_securityadmin 固定数据库角色的成员可以修改角色成员身份和管理权限。向此角色中添加主体可能会导致意外的权限升级。

固定数据库角色db_securityadmin的成员可以管理数据库中的安全。这些成员可以进行如下的动作:

运行与安全有关的所有Transact-SQL语句(GRANT、DENY和REVOKE) 运行以下系统过程:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember

3、db_accessadmin 固定数据库角色的成员可以为 Windows 登录名、Windows 组和 SQL Server 登录名添加或删除数据库访问权限。

固定数据库角色db_accessadmin的成员可以执行与数据库访问有关的所有动作。这些角色可以在具体的数据库中执行下列操作:

运行下列系统过程:sp_addalias、sp_dropalias、sp_dropuser、sp_grantdbacess、sp_revokedbaccess

为Windows用户账户、Windows组和SQL Server登录添加或删除访问

4、db_backupoperator 固定数据库角色的成员可以备份数据库。

固定数据库角色db_backupoperator的成员可以管理数据库备份的过程。这些成员可以进行如下动作:

运行BACKUP DATABASE和BACKUP LOG语句 用CHECKPOINT语句显式地启动检查点进程 运行如下dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage

5、db_ddladmin 固定数据库角色的成员可以在数据库中运行任何数据定义语言 (DDL) 命令。

固定数据库角色db_ddladmin的成员可以进行如下的动作: 运行所有DDL语句

对任何表上授予REFERENCESE权限

使用系统过程sp_procoption和sp_recompile来修改任何存储过程的结构 使用系统过程sp_rename为任何数据库对象重命名

使用系统过程sp_tableoption和sp_changeobjectowner分别修改表的选项和任何数据库对象的拥有者

6、db_datawriter 固定数据库角色的成员可以在所有用户表中添加、删除或更改数据。

固定数据库角色dbdatawriter的成员对数据库中的数据库对象(表或视图)具有INSERT、UPDATE和DELETE权限。然而,这些成员不能把这个权限授予其他任何用户或角色。(这个限制对REVOKE语句来说也同样成立。)

7、db_datareader 固定数据库角色的成员可以从所有用户表中读取所有数据。

固定数据库角色dbdatareader的成员对数据库中的数据库对象(表或视图)具有SELECT权限。然而,这些成员不能把这个权限授予其他任何用户或角色。(这个限制对REVOKE语句来说同样成立。)

8、db_denydatawriter 固定数据库角色的成员不能添加、修改或删除数据库内用户表中的任何数据。

固定数据库角色db_denydatawriter的成员对数据库中的任何数据库对象(表或视图)没有INSERT、UPDATE和DELETE权限。

9、db_denydatareader 固定数据库角色的成员不能读取数据库内用户表中的任何数据。 固定数据库角色db_denydatareader的成员对数据库中的数据库对象(表或视图)没有SELECT权限。如果数据库中含有敏感数据并且其他用户不能读取这些数据,那么就可以使用这个角色。

数据库角色是针对数据库层次而言的,用户加入到某个数据库的数据库角色中后,这个用户只是在这个数据库里面具有在角色里指定的用户权限。 一个用户的最终权限是由 服务器角色与数据库角色组成的

61、在当前窗口w_main中创建一个Close按钮,其作用是关闭w_main窗口,则该按钮的Clicked事件中可以书写代码( )

A、Close(ParentWindow) B、Close(Super)

C、Close(Parent) D、Close(w_main) 答案:CD?

62、在PowerBuilder中,不可以拥有菜单的窗口类型包括() A、主窗口 B、子窗口 C、弹出式窗口 D、响应窗口

答案:CD?

8. SQL语言支持关系数据库系统的三级模式结构,其中外模式对应部分包括() A. 基本表 B. 视图

C. 数据存储文件 D. 索引 答案:AB

12. 如果不允许其他事务对某一数据对象加任何类型的锁,则应对该数据对象加上() A. 共享锁 B. 排他锁 C. S锁 D. X锁 答案:B

3、判断题

1. 创建索引后,需要人为对它进行维护,因此,应避免创建太多的索引 A. 错误 B. 正确 答案:A

2. 视图创建后不能修改,如果需要修改必须删除后再重新创建 A. 错误 B. 正确 答案:B

3. SQL Server系统可以识别SQL Server和Windows两种类型的登录认证机制 A. 错误 B. 正确 答案:B

4. 利用视图可以把对数据库的访问限制在一定范围内,有利于对机密数据的保护 A. 错误 B. 正确 答案:B

5. 如果当前进行的是插入操作,则日志文件中记录的更新前数据的旧值为新插入的值 A. 错误 B. 正确 答案:A

6. 在使用INSERT语句向表中插入一个新记录时,必须指定所有列上的值 A. 错误 B. 正确 答案:

7. 在PowerScript语言中,数组中的各元素必须具有相同的数据类型 A. 错误 B. 正确 答案:A

8. 使用SQL语句“DROP TABLE 学生信息”可以删除学生信息表中的所有数据,但学生信息表的结构定义会保留 A. 错误 B. 正确 答案:A

9. PRIMARY KEY约束和NULL约束不能同时定义在相同的列上 A. 错误 B. 正确 答案:B

二、主观部分:

(一)、简答

1.请简述数据模型的组成要素及各要素的含义。 附2.1.1:(考核知识点解释)

(1)数据结构:对系统静态特征的描述,主要描述数据的类型、内容、性质以及数据间联系的有关信息。

(2)数据操作:描述系统的动态特征,包括数据的检索和更新(即增、删、改)两大操作。 (3)数据约束:描述系统的约束条件,描述数据结构内数据间的语义限制、制约与依存关系。

2.请简述关系数据库中数据逻辑独立性和物理独立性的作用。 附2.1.2:(考核知识点解释)

(1)逻辑独立性的作用:当模式发生改变时,只要修改外模式/模式映像关系,使外模式不变,就可以保证应用程序不必改动。

(2)物理独立性的作用:当数据库的存储结构改变时,可以通过修改模式/内模式的映像关系使数据模式不变化,从而保证从模式中导出的外模式也不变化,最终使得根据外模式设计的应用程序也不用改动。

3.请简述数据库管理系统的主要功能及各功能的作用。参见P4 4.请简述用户访问数据库中数据的过程。参见P5 5.请简述数据库系统的组成。 附2.1.5:(考核知识点解释)

6.请简述关系模型中关系、元组、属性、域、候选码和主码的概念。 附2.1.6:(考核知识点解释)

(1)关系:关系数据库中的一个二维表 (2)元组:表中的一行 (3)属性:表中的一列 (4)域:属性的取值范围

(5)候选码:关系中能唯一标识一个元组的某一属性组

(6)主码:若一个关系有多个候选码,则选定其中一个用以唯一标识元组

7.请简述关系的性质。参见P7-8

8.请举例说明实体完整性、参照完整性和用户自定义完整性。参见P8-9 9.请简述索引的正面作用和负面作用。 附2.1.9:(考核知识点解释)

(1)创建索引的正面作用:加快数据检索速度;通过创建唯一性索引,可以保证每一行数据的唯一性;减少分组和排序的时间;加速表与表之间的连接速度。

(2)创建索引的负面作用:创建和维护索引要消耗时间;索引本身也需要占用存储空间;对基本表中的数据进行增加、删除和修改操作时,系统要对索引进行动态维护,降低了数据的维护速度。

10.请简述创建索引的原则。 附2.1.10:(考核知识点解释) (1)为主键创建索引;

(2)为经常需要检索的列创建索引;

(3)为经常用于连接操作的列创建索引,即在定义为外键的列上创建索引;

(4)为经常需要根据范围进行检索搜索的列创建索引,因为索引已经有序,其指定范围是连续的;

(5)为经常需要排序的列创建索引,同样因为索引已经有序,可以加快排序速度; (6)为经常使用到WHERE子句上的列创建索引;

(7)对于那些只有很少取值的列不要创建索引,例如人事表中的性别列;

(8)对于那些定义为TEXT、IMAGE和BIT数据类型的列不要创建索引,因为这些列的数据量或者相当大,或者取值很少;

(9)当对UPDATE(修改)性能要求远多于SELECT(查询)性能要求时,不应该创建索引,因为增加索引时,虽然会提高SELECT的性能,但同时会降低UPDATE的性能。 11.请简述关系数据库中视图的作用。参见P30 12.请举例说明插入异常和删除异常。参见P36 13.请简述数据库中事务的概念及其特点。 附2.1.13:(考核知识点解释)

(1)事务的概念:由用户定义的一个数据库操作序列,这些操作或者全部执行成功,或者一个也不执行,它是一个不可分割的逻辑工作单元

(2)事务的特点:原子性、一致性、独立性、永久性。 14.请简述数据库系统中故障的类型。 附2.1.14:(考核知识点解释)

(1)事务故障:非预期的故障,即不能由事务程序处理的故障;可预期的故障,即应用程序可以发现的事务故障。

(2)系统故障:指由于硬件故障或者软件错误造成系统停止运行,系统需要重新启动。 (3)介质故障:指磁盘故障。

(4)计算机病毒:一种人为的破坏性程序,它可以像生物病毒一样繁殖、传播,并造成对包括数据库在内的计算机系统的破坏。

15.请简述数据库恢复的基本技术。参见P44

16.请简述数据库系统中一般日志文件的记录内容。参见P44-45 17.请简述数据库系统中事务故障的恢复步骤。 附2.1.17:(考核知识点解释)

(1)从日志文件最后向前扫描,查找该事务的更新操作;

(2)对该事务的更新操作执行逆操作,即将日志记录中的“更新前数据的旧值”写入数据

库;

(3)若记录中是插入操作,则相当于作删除操作;若记录中是删除操作,则作插入操作;若记录中是修改操作,则用修改前值代替修改后值;

(4)继续从后向前扫描日志文件,查找该事务的其他更新操作,并作同样处理; (5)重复上述步骤,直到读到该事务的开始标记,则事务故障恢复完成。 18.请简述数据库系统中系统故障的恢复步骤。 附2.1.18:(考核知识点解释)

(1)从日志文件开头向后扫描,找出故障发生时尚未完成的事务(这些事务只有BEGIN TRANSACTION记录,而没有COMMIT记录),将它们的事务标记送入撤销(UNDO)队列。同时找出故障发生前已经提交的事务(这些事务既有BEGIN TRANSACTION记录,也有COMMIT记录),将它们的事务标记送入重做(REDO)队列;

(2)对撤销队列中的各个事务进行撤销(UNDO)处理,即从后向前扫描日志文件,对每个UNDO事务的更新操作执行逆操作;

(3)对重做队列中的事务进行重做(REDO)处理,即从前向后扫描日志文件,对每个REDO事务重新执行日志文件记录的操作。

19.请简述数据库系统中介质故障的恢复步骤。参见P46

20.请简述SQL Server 2000中提供的三种恢复模型的备份策略。参见P46-47 21.请简述数据库的并发操作所带来的问题,并说明各类问题的含义。 附2.1.21:(考核知识点解释)

(1)丢失修改问题:A事务先修改了数据T,B事务又修改了T并写回后覆盖了A事务的修改,使得A事务的修改丢失;

(2)不可重复读问题:A事务读取数据后,B事务执行更新操作,使得A事务无法再现前一次读取的结果;

(3)读出“脏数据”问题:A事务修改某一数据T并写回磁盘后,B事务读取了该数据T,而A事务因某种原因被撤销,使得被A事务修改过的数据T恢复了旧值,从而造成B事务读出的数据与数据库中的数据不一致。

22.请简述三级封锁协议的并发控制程度。 附2.1.22:(考核知识点解释)

(1)一级封锁协议可以防止丢失修改,但不能保证可重复读和不读“脏数据”。 (2)二级封锁协议可以防止丢失修改和读“脏数据”,但不能保证可重复读。 (3)三级封锁协议可以防止丢失修改、读“脏数据”和不可重复读。 23.请简述可串行性的含义及两段锁协议的内容。参见P53-54 24.请简述SQL Server 2000中使用的各种锁类型。参见P55 25.请简述SQL Server 2000中的死锁检测过程。 附2.1.25:(考核知识点解释) (1)对等待线程启动死锁搜索;

(2)识别线程正在等待的资源,然后,锁监视器查找特定资源的拥有者,并递归地继续执行对那些线程的死锁搜索,直到找到一个循环; (3)用这种方式识别的循环即是一个死锁。 26.请简述SQL Server 2000中的死锁解决方法。 附2.1.26:(考核知识点解释)

(1)在识别死锁后, SQL Server通过自动选择可以打破死锁的线程来结束死锁; (2)通常选择运行撤销时花费最少的事务的线程作为死锁牺牲品;

(3)SQL Server回滚作为死锁牺牲品的事务,然后系统将1205号错误信息返回给应用程

序,取消线程的当前请求,然后允许不间断线程的事务继续进行。

27.请简述数据库系统中3类静态完整性约束条件的功能,并举例说明。参见P56-57 28.请简述数据库管理系统完整性控制机制的功能。参见P58 29.请列举SQL Server 2000中的约束管理技术。 附2.1.29:(考核知识点解释) (1)主键(PRIMARY KEY)约束; (2)唯一键(UNIQUE)约束; (3)外键(FOREIGN KEY)约束; (4)检查(CHECK)约束;

(5)是否允许空值(NULL)属性; (6)IDENTITY属性;

(7)默认(DEFAULT)约束。

30.请列举常用的数据库安全性控制技术。 附2.1.30:(考核知识点解释) (1)用户标识与口令鉴别; (2)存取控制; (3)视图机制; (4)数据加密。

31.请简述SQL Server 2000中的安全性控制技术及作用。参见P66-68 32.请举例说明1:1联系、1:n联系和n:m联系。参见P84

33.请简述数据库应用系统开发过程的主要阶段及各个阶段的主要目的。 附2.1.33:(考核知识点解释)

(1)系统分析:对组织的工作现状和用户需求进行调查、分析,明确用户的信息需求和系统功能,提出拟建系统的逻辑方案。

(2)系统设计:将系统分析阶段提出的反映用户需求的系统逻辑方案转换成为可以实施的物理(技术)方案。

(3)系统实施:以系统分析和系统设计阶段的工作成果为依据,将技术设计方案转化为物理实现。

(4)系统运行与维护:在系统运行阶段,为了改正错误或满足新的需要而修改、完善系统的过程。

34.请简述PowerBuilder中事件驱动的含义。 附2.1.34:(考核知识点解释)

(1)程序的流程并不能够事先确定;

(2)每一类对象都有预定义事件,比如命令按钮控件有Clicked事件,特定的事件触发应用程序中对应的某段代码;

(3)代码运行完成后,系统进入一种等待状态,等待下一个事件触发相应的代码。 35.请简述PowerBuilder程序开发步骤。参见P100-101

36.请简述PowerBuilder中布局视图、属性视图、脚本视图、事件列表视图、函数列表视图的作用。参见P105-106

37.请简述PowerBuilder中声明变量视图、控件列表视图、不可视对象列表视图、结构视图、结构列表视图的作用。 附2.1.37:(考核知识点解释)

(1)声明变量(Variable)视图:可以为应用程序声明变量和外部函数;

(2)控件列表(Control List)视图:列出了当前描绘器中的所有控件,以及和控件相关

的一些信息,如:可以列出这些控件的祖先对象;

(3)不可视对象列表(Non-Visual Object List)视图:列出了当前描绘器中所有可用的不可视对象;

(4)结构(Structure)视图:可以为对象定义对象级结构;

(5)结构列表(Structure List)视图:结构列表视图列出了当前描绘器中所有的对象级结构。

38.请简述PowerBuilder通过ODBC接口连接数据库的步骤。 附2.1.38:(考核知识点解释) (1)配置ODBC数据源; (2)连接到ODBC数据库。

39.请简述4种变量作用域的作用范围及使用原则。参见P139-140 40.请简述2类结构的作用范围。参见P150-151 附2.1.40:(考核知识点解释)

(1)全局结构:在整个应用程序中都可用; (2)对象级结构:只在定义它的对象中可用。

41.请简述This、Parent、ParentWindow等代词的含义,并举例说明其用法。参见P153 ★考核知识点:使用代词编写通用代码 42.请简述游标的作用及使用过程。 ★考核知识点:游标语句

(1)游标的作用:当需要查找多条记录时,就需要使用游标进行操作

(2)游标的使用过程一般为:说明游标;打开游标;推进游标(读取数据);处理数据;关闭游标。

43.请简述动态SQL语句的作用。 附2.1.43:(考核知识点解释)

(1)使用PB不支持的(某个数据库管理系统特有的)SQL语句;

(2)SQL语句的格式和参数在编译时无法确定时,应用程序只能在执行时才建立SQL语句。 44.请简述事务对象的作用。 附2.1.44:(考核知识点解释)

(1)应用程序与数据库之间进行通信的桥梁;

(2)PB对象中最为重要的一个对象,不使用事务对象将无法连接数据库; (3)在应用程序启动时,系统将自动创建一个名为SQLCA的全局事务对象; (4)要在程序中连接多个数据库,则需要自定义事务对象。 45.请简述数据窗口的作用和组成。 附2.1.45:(考核知识点解释)

(1)数据窗口的作用:快速建立起有关数据库操作的应用程序。 (2)数据窗口的组成:数据窗口控件、数据窗口对象。

(二)、设计题

1、在图书销售数据库中,有一个表1所示的图书销售表(书号和顾客号共同作为主码),请指出该表可能存在的问题,并根据3NF对该表进行分解,设计出符合3NF要求的关系模式。要求写出设计步骤。 表1 图书销售表 列名 书号 描述 图书的编号 书名 书类 库存 售出 单价 顾客号 顾客名 顾客电话 订购日期 订购数量 图书的名称 图书的分类 图书的库存量 图书的售出量 图书的单价 顾客的编号 顾客的姓名 顾客的联系电话 顾客订购某本图书的日期 顾客订购某本图书的数量 可能存在的问题:

(1)数据库冗余度较大 一本书可能销售多次,则每销售一次图书销售表中都会重复一遍图书信息;一名顾客可能购买多次,则每购买一次图书销售表中都会重复一遍顾客信息。 (2)插入异常 有一种新书,还没有顾客购买,此时会由于顾客号不能为空而无法将该书信息插入到图书销售表中。

(3)删除异常

一本书仅有一名顾客购买,如果该顾客退货,则会由于没有顾客购买该书导致删除销售记录的同时也会将这本书的信息也删除。 分解步骤:

(1)表1所示关系中,书名、书类、库存、售出和单价只依赖于书号,与顾客号无关;顾客名、顾客电话只依赖于顾客号,与书号无关;订购日期和订购数量则与书号和顾客号都有关。因此,根据2NF的要求(关系中不能有部分函数依赖于主码的非主属性),可以将表1分解为3个关系:

图书(书号, 书名, 书类, 库存, 售出, 单价) 顾客(顾客号, 顾客名, 顾客电话)

订购(顾客号, 书号, 订购日期, 订购数量)

(2)根据3NF的要求(关系中不能有传递依赖于主码的非主属性),对步骤(1)中分解得到的3个关系进行检查,可以看到这3个关系中均不存在传递依赖于主码的非主属性,因此,最后设计的符合3NF的关系即为步骤(1)中分解得到的3个关系。 ★考核知识点:关系模式的规范化(参见P38-39)

(三)、SQL题 表1 供应商表S 主码 P 列标题 供应商代码 供应商姓名 所在城市 列名 SNO SNAME CITY 数据类型 Char Varchar Varchar 宽度 2 8 8 小数位数 是否空值 No No No

表2 零件表J

主码 P 列标题 零件编码 列名 JNO 数据类型 Char 宽度 2 小数位数 是否空值 No 零件名 颜色 重量 JNAME COLOR WEIGHT Varchar Varchar Int 8 4 No Yes Yes

表3 工程表P 主码 P 列标题 工程代码 工程名 所在城市 列名 PNO PNAME CITY 数据类型 Char Varchar Varchar 宽度 2 8 8 小数位数 是否空值 No No Yes

表4 供应情况表SPJ

主码 P 列标题 供应商代码 工程代码 零件代码 零件数量 列名 SNO PNO JNO QTY 数据类型 Char Char Char Int 宽度 2 2 2 小数位数 是否空值 No No No No

表1-表4是下列题目中用到的4个表,请根据题目要求写出对应的SQL语句。 (1)创建名为“供应信息”的数据库; 参考答案:

CREATE DATABASE 供应信息;

(2)将数据库的名称由“供应信息”改为“供应信息管理”; 参考答案:

ALTER DATABASE 供应信息 MODIFY NAME=供应信息管理; (3)创建供应商表S; 参考答案: CREATE TABLE S (

SNO char(2) PRIMARY KEY NOT NULL, SNAME varchar(8) NOT NULL, CITY varchar(8) NOT NULL );

(4)创建零件表J; 参考答案: CREATE TABLE J (

JNO char(2) PRIMARY KEY NOT NULL, JNAME varchar(8) NOT NULL, COLOR varchar(4) NULL, WEIGHT int NULL );

(5)创建工程表P; 参考答案:

CREATE TABLE P (

PNO char(2) PRIMARY KEY NOT NULL, PNAME varchar(8) NOT NULL, CITY varchar(8) NULL );

(6)创建供应情况表SPJ,其中供应商代码、工程代码和零件代码分别为供应商表S、工程表P和零件表J的外码; 参考答案:

CREATE TABLE SPJ (

SNO char(2) NOT NULL, PNO char(2) NOT NULL, JNO char(2) NOT NULL, QTY int NOT NULL,

CONSTRAINT PRI_KEY PRIMARY KEY(SNO, PNO, JNO) );

(7)为零件表J增加一列:

列标题 零件描述 列名 JDESC 数据类型 Varchar 宽度 100 小数位数 是否空值 Yes 参考答案: ALTER TABLE J ADD JDESC varchar(100) NULL; (8)从零件表中删除(7)中添加的JDESC列; 参考答案:

ALTER TABLE J DROP COLUMN JDESC;

(9)为供应商表S中的CITY列建立一个名为“城市索引”的非聚集索引,并且记录按CITY列值的降序排列; 参考答案:

CREATE NONCLUSTERED INDEX 城市索引 ON S (CITY DESC); (10)删除供应商表S中建立的“城市索引”; 参考答案:

DROP INDEX S.城市索引;

(11)根据表5-表8向4个表中插入记录(只需写出在每个表中插入第一条记录时所使用的SQL语句); 表5 供应商表S SNO S1 S2 S3 S4 S5

表6 零件表J

JNO JNAME COLOR WEIGHT SNAME 东丰 光华 昌盛 隆泰胜 胜利 CITY 天津 北京 北京 上海 天津

J1 J2 J3 J4 J5 J6

表7 工程表P

PNO P1 P2 P3 P4 P5 P6 P7

表8 供应情况表SPJ SNO S1 S1 S1 S1 S2 S2 S2 S2 S2 S2 S3 S3 S3 S3 S4 S4 S4 S4 S5 S5 S5 S5 螺母 螺栓 螺丝刀 螺丝刀 凸轮 齿轮 红 绿 蓝 红 蓝 红 15 18 12 12 45 28 PNAME 二汽 电子厂 车床厂 半导体厂 三建 模具厂 无线电厂 CITY 长春 北京 天津 沈阳 南京 唐山 北京 PNO P1 P1 P1 P2 P3 P3 P3 P3 P5 P5 P1 P1 P3 P5 P4 P6 P6 P7 P3 P3 P6 P6 JNO J1 J3 J4 J1 J1 J2 J3 J5 J1 J2 J1 J2 J1 J4 J2 J3 J4 J3 J2 J4 J1 J5 QTY 300 150 700 200 350 200 400 500 350 100 200 600 150 300 200 100 300 400 100 500 300 500 参考答案:

INSERT INTO S VALUES('S1', '东丰', '天津');

INSERT INTO J VALUES('J1', '螺母', '红', 15); INSERT INTO P VALUES('P1', '二汽', '长春'); INSERT INTO SPJ VALUES('S1', 'P1', 'J1', 300); (12)查询全体供应商的所有信息; 参考答案:

SELECT * FROM S;

(13)查询全体供应商的姓名和所在城市; 参考答案:

SELECT SNAME, CITY FROM S; (14)查询有供应商的城市; 参考答案:

SELECT DISTINCT CITY FROM S;

(15)查询重量在30以上或颜色为“红”的零件名; 参考答案:

SELECT JNAME FROM J WHERE WEIGHT>=30 OR COLOR='红'; (16)查询重量不在15-30之间的零件信息; 参考答案:

SELECT * FROM J WHERE WEIGHT<15 OR WEIGHT>30;

SELECT * FROM J WHERE WEIGHT NOT BETWEEN 15 AND 30; (17)查询不在天津、也不在北京的供应商信息; 参考答案:

SELECT * FROM S WHERE CITY<>'天津' AND CITY<>'北京'; SELECT * FROM S WHERE CITY NOT IN('天津', '北京'); (18)查询工程名为某厂(即工程名的最后一个字是“厂”)的工程信息; 参考答案:

SELECT * FROM P WHERE PNAME LIKE('*厂');

(19)查询零件代码JNO为“P3”的供应情况,并按照零件数量QTY的降序排列; 参考答案:

SELECT * FROM SPJ WHERE JNO='P3' ORDER BY QTY DESC; (20)查询给代码为“P1”的工程供应了零件的供应商名; 参考答案:

SELECT DISTINCT SNAME FROM S, SPJ WHERE PNO='P1' AND S.SNO=SPJ.SNO; SELECT SNAME FROM S WHERE SNO IN(SELECT SNO FROM SPJ WHERE PNO='P1'); (21)查询供应商的总数; 参考答案:

SELECT COUNT(*) AS 供应商总数 FROM S; (22)查询每个供应商供应零件的数量; 参考答案:

SELECT SNO, SUM(QTY) AS 零件数量 FROM SPJ GROUP BY SNO; (23)查询每个供应商为每个工程供应零件的数量; 参考答案:

SELECT SNO, PNO, SUM(QTY) AS 零件数量 FROM SPJ GROUP BY SNO, PNO; (24)查询给“北京”的工程供应“齿轮”零件的供应商名; 参考答案:

SELECT SNAME FROM S, P, J, SPJ WHERE P.CITY='北京' AND JNAME='齿轮' AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO AND J.JNO=SPJ.JNO; (25)如果供应情况表中某条记录的供应商和工程在同一城市,则显示该记录对应的供应商名和工程名; 参考答案:

SELECT SNAME, PNAME FROM S, P, SPJ WHERE S.CITY=P.CITY AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO;

(26)查询每个供应商供应每种零件的数量; 参考答案:

SELECT SNO, JNO,SUM(QTY) AS 零件数量 FROM SPJ GROUP BY SNO, JNO; (27)查询在同一个城市的工程代码(可以以工程代码对的形式给出); 参考答案:

SELECT X.PNO, Y.PNO FROM P X, P Y WHERE X.CITY=Y.CITY AND X.PNO<>Y.PNO; (28)查询供应零件数量在2000以上的供应商代码; 参考答案:

SELECT SNO FROM SPJ GROUP BY SNO HAVING SUM(QTY)>2000; (29)查询与“胜利”在同一个城市的供应商信息; 参考答案:

SELECT X.* FROM S X, S Y WHERE X.CITY=Y.CITY AND Y.SNAME='胜利';

SELECT * FROM S WHERE CITY IN(SELECT CITY FROM S WHERE SNAME='胜利'); (30)将代码“S5”的供应商为代码“P3”的工程提供的零件数量增加100; 参考答案:

UPDATE SPJ SET QTY=QTY+100 WHERE SNO='S5' AND PNO='P3'; (31)删除供应商代码为“S1”、零件代码为“J1”的供应记录; 参考答案:

DELETE FROM SPJ WHERE SNO='S1' AND JNO='J1';

(32)将供应商代码为“S3”的供应记录定义为一个名为“S3供应”的视图; 参考答案:

CREATE VIEW S3供应 AS (SELECT * FROM SPJ WHERE SNO='S3') (33)将零件表J中所有列的查询和修改权限授予MANAGER用户,并允许该用户将该权限转授其他用户; 参考答案:

GRANT SELECT, UPDATE ON J

TO MANAGER

WITH GRANT OPTION

(34)将供应商表S中对SNO、SNAME列的查询权限和对SNAME列的修改权限授予EMPLOYEE用户,但不允许该用户将该权限转授其他用户; 参考答案:

GRANT SELECT(SNO,SNAME), UPDATE(SNAME) ON S

TO EMPLOYEE

(35)将授予EMPLOYEE用户对供应商表S中SNAME列的修改权限取消。 参考答案:

REVOKE UPDATE(SNAME) ON S

FROM EMPLOYEE

★考核知识点:关系数据库SQL语言(参见P11-31)

本文来源:https://www.bwwdw.com/article/9mvx.html

Top