《数据库应用系统设计》复习资料
一、客观部分:(单项选择、多项选择、不定项选择、判断)
(一)、选择部分
1、在数据管理技术的三个发展阶段中,数据冗余度最小、数据共享度最高的是( B )阶段。
A、文件系统 B、数据库
C、人工管理 D、数据库管理系统
★考核知识点: 数据管理技术的发展
附1.1.1(考核知识点解释):
人工管理阶段:程序和数据是不可分割的整体;数据不能共享,浪费存储空间。
文件系统阶段:数据保存在文件中,不再属于某个特定的程序;文件结构的设计面向具体应用,数据仍依赖于程序;存在数据冗余、不一致性等问题。
数据库阶段:采用数据模型表示复杂的数据结构,从整体看待数据,降低数据冗余、减少不一致性;数据库可供不同应用程序使用,数据共享度高;数据库系统的数据和程序之间具有较高的独立性。
2、数据库与文件系统的根本区别是( A )。
A、数据的结构化 B、提高了系统效率
C、降低了数据冗余 D、提高了数据共享度
★考核知识点: 数据管理技术的发展
附1.1.2(考核知识点解释):
数据库阶段:采用数据模型表示复杂的数据结构,从整体看待数据,降低数据冗余、减少不一致性。
3、通过( B )映象,使得关系数据库具有高度逻辑独立性。
A、模式/内模式 B、外模式/模式
C、外模式/内模式 D、以上都不对
★考核知识点: 数据独立性
附1.1.3(考核知识点解释):
当模式发生改变时,只要修改外模式/模式映像关系,使外模式不变,就可以保证应用程序不必改动,这就保证了数据的逻辑独立性。
4、通过( A )映象,使得关系数据库具有高度物理独立性。
A、模式/内模式 B、外模式/模式
C、外模式/内模式 D、以上都不对
★考核知识点: 数据独立性
附1.1.4(考核知识点解释):
当数据库的存储结构改变时,可以通过修改模式/内模式的映像关系使数据模式不变,从而保证从模式中导出的外模式也不变,最终使根据外模式设计的应用程序也不用改动。数据的物理存储发生变化并不引起逻辑应用的改变,即保证了数据的物理独立性。
5、在数据库管理系统中,通过( B )语言向数据库中插入新的数据。
A、数据定义 B、数据操纵 C、数据控制 D、数据管理
★考核知识点: DBMS的主要功能
附1.1.5(考核知识点解释):
DBMS通过提供数据操纵语言(Data Manipulation Language,简称DML)实现对数据的增、删、改、查询、统计等操作操纵功能。
6、在关系数据库系统中,一个关系相当于( )。
A、一个数据库文件 B、一张二维表
C、一条记录 D、一个指针
★考核知识点: 关系模型的基本术语
附1.1.6(考核知识点解释):
关系模型中具有单一的数据结构—关系,而关系就是一个二维表。
7、表中的一行称为一个( )。
A、元组 B、属性 C、主键 D、数据类型
★考核知识点: 关系模型的基本术语
附1.1.7(考核知识点解释):
表中的一行即为一个元组。
8、对于一个学生表,如果想限制学生入学成绩只能在0~750之间,则应使用( )完整性。
A、实体完整性 B、用户自定义完整性
C、参照完整性 D、记录完整性
★考核知识点: 关系的完整性
附1.1.8(考核知识点解释):
不同的数据库应用系统还可能需要一些满足特殊要求的约束,这时就可以使用用户自定义的完整性。如,想限制性别的取值只能为“男”或“女”,成绩的取值为0~750,就可以使用用户自定义完整性。
9、一个关系中主键的作用是( A )。
A、用来唯一标识关系中的行 B、用来验证数据库的密码
C、可有可无的一个属性 D、设定表中某列的默认值
★考核知识点: 基本表的创建、修改与删除
附1.1.9(考核知识点解释):
所谓主键指用来唯一标识表中行的一列或几列。
10、对于已经创建好的学生信息表,可以使用SQL语句“ALTER TABLE 学生信息( D )年龄”删除年龄列。
A、ALTER COLUMN B、DELETE
C、DROP D、DROP COLUMN
★考核知识点: 基本表的创建、修改与删除
附1.1.10(考核知识点解释):
修改基本表的一般语法格式:
ALTER TABLE [<数据库名>.]<表名>
[ADD <新列名> <数据类型> [列级完整性约束条件]] [,…n]
[ALTER COLUMN <列名> <数据类型>]
[DROP COLUMN <列名> [,…n] ]
[DROP <完整性约束条件>];
ADD子句可以用来增加一个或多个新列,并同时定义新列的数据类型和完整性约束,各个列名之间用逗号分隔;ALTER COLUMN子句用来修改原有某列的列名或数据类型;DROP COLUMN子句用于删除原有的一列或多列,各个列名之间有逗号分隔;DROP专门用来删除原有列的约束。
11、使用SQL进行数据查询时,如果查询结果中包含了许多重复的行,可以使用( )去掉结果中的重复行。
A、DISTINT B、DISTINTROW
C、DIFFERENT D、DIFFERENTROW
★考核知识点: SQL的数据查询
附1.1.11(考核知识点解释):
SQL数据查询的一般语法格式:
SELECT [ALL | DISTINCT] <列表达式>[,…n]
FROM <表名|视图名>[,…n]
[WHERE <查询条件表达式>]
[GROUP BY <列名> [HAVING <条件表达式>]]
[ORDER BY <列名> [ASC | DESC]];
使用DISTINCT关键字可以从查询结果中除去重复的行。
12、GRANT语句的功能是()
A、把授予用户的权限收回来
B、把对指定操作对象的指定操作权限授予指定的用户
C、把被破坏的数据库进行修复
D、对多个用户同时访问数据库的操作进行并发控制
★考核知识点: 授权
附1.1.12(考核知识点解释):
GRANT语句的功能是把对指定操作对象的指定权限授予指定的用户。
13、关系模式规范化中的插入异常是指( C )
A、不该插入的数据被插入 B、不该删除的数据被删除
C、要插入的数据无法插入 D、要删除的数据无法删除
★考核知识点: 关系数据库的模式设计
附1.1.13(考核知识点解释):
如果新转来一个学生,该学生还没有选课,则无法将其插入。因为(学号,课程号)是主码,即能唯一区分一个元组的属性集,而插入元组时主码值不能空,所以缺少课程号信息的学生信息无法插入,这就是插入异常。
14、在数据库转储期间允许对数据库进行存取、修改活动,则该转储类型为( B )。
A、静态转储 B、动态转储 C、海量转储 D、增量转储
★考核知识点: 恢复的实现技术
附1.1.14(考核知识点解释):
动态转储是指在转储期间允许对数据库进行存取、修改活动,即转储和用户事务可以并发执行。
15、对于SQL Server的三种恢复模型,按照数据丢失程度由小到大排列依次为( B )。
A、简单恢复模型、完全恢复模型、大容量日志恢复模型
B、完全恢复模型、大容量日志恢复模型、简单恢复模型
C、大容量日志恢复模型、完全恢复模型、简单恢复模型
D、以上都不对
★考核知识点: SQL Server 2000的恢复技术
附1.1.15(考核知识点解释):
简单恢复所需的管理最少,但必须合理设置备份周期,以防止备份周期过长丢失大量数据,而备份周期过短又导致备份开销相对太大。
使用完全恢复即使数据文件丢失或损坏也不会导致工作损失,因为包括大容量操作(如SELECT INTO、CREATE INDEX和大容量装载数据)在内的所有操作都将完整地记入日志;但如果日志损坏,则DBA必须重做自最新的日志备份后所发生的更改。
在大容量日志记录恢复模型下只记录这些操作的最小日志,因此,大容量复制操作的数据丢失程度要比完全恢复模型严重。
16、进行并发控制的主要技术是( C )。
A、备份 B、建立日志文件
C、封锁 D、完整性检查
★考核知识点: 封锁
附1.1.16(考核知识点解释):
进行并发控制的主要技术是“封锁”。所谓封锁是指事务T在对某个数据对象A(比如数据项、记录、表等)操作之前,先向系统发出请求,对其加锁,于是事务T就对该数据对象拥有一定的控制,其他事务不能更新此数据直到事务T释放它的锁为止。
17、要规定学生性别的取值范围为男或女,则应使用( A )。
A、静态列级约束 B、静态元组约束
C、动态列级约束 D、动态元组约束
★考核知识点: 完整性约束条件
附1.1.17(考核知识点解释):
静态列级约束是对一个列的取值范围的说明,这是最常用也最容易实现的一类完整性约束,包括以下几个方面:
(1)对数据类型的约束(包括数据的类型、长度、单位、精度等)
比如,规定学生成绩的数据类型为数值型,长度为6,小数位为2
(2)对数据格式的约束
比如,规定出生日期的格式为YY.MM.DD
(3)对取值范围或取值集合的约束
比如,规定学生成绩的取值范围为0~100
(4)对空值的约束
比如,规定学生学号不能为空值,而成绩可以为空值
(5)其他约束
比如,规定列的排序方式,设置组合列等。
18、要规定经理的工资不能低于2000元,则应使用( B )。
A、静态列级约束 B、静态元组约束
C、动态列级约束 D、动态元组约束
★考核知识点: 完整性约束条件
附1.1.18(考核知识点解释):
一个元组由若干个列值组成,静态元组约束就是规定元组中各列之间的约束关系。比如出库关系应包含库存量、出库量等列,规定出库量不能超过库存量;再比如员工关系中包含职别、工资等列,规定经理的月工资不能低于2000元。
19、如果通过延迟检查发现用户操作请求违背了完整性约束条件,则系统( )。
A、拒绝该用户操作 B、拒绝整个事务并回滚该事务
C、允许该用户操作但给出提示信息 D、不做任何事情
★考核知识点: 完整性控制
附1.1.19(考核知识点解释):
延迟检查是指完整性检查需要延迟到整个事务执行结束后再进行,检查正确后才能提交,这类约束称为延迟执行约束(deferred Constraints)。对于延迟执行的约束,则系统拒绝整个事务,并回滚该事务。
20、下列关于SQL Server权限设置的叙述中正确的是( C )。
A、只能指定允许操作的数据对象 B、只能指定允许进行的操作类型
C、既能指定允许操作的数据对象,也能指定允许进行的操作类型
D、以上都不对
★考核知识点: 权限的授予与回收
附1.1.20(考核知识点解释):
权限(Authorization)用来描述用户(或应用程序)在使用数据库时执行操作的能力特性。权限包括两个要素:数据对象和操作类型。
21、在SQL Server中,要授予某安全性帐户具有转授许可给其他安全性帐户的权限,则在授权时应加上( C )子句。
A、WITH GRANT B、WITH GRANT FOR
C、WITH GRANT OPTION D、WITH GRANT PERMISSION
★考核知识点: SQL Server 2000的安全性
附1.1.21(考核知识点解释):
使用GRANT语句授权许可的语法形式:
授权语句许可
GRANT{ALL|statement [,…n]} TO security_account[,…n]
授权对象许可
GRANT{ALL [PRIVILEGES] | permission [,…n]}
{ [(column [,…n])] ON {table | view}
|ON {table|view} [(column [,…n]) ]
|ON {stored_procedure | extended_procedure }
|ON {user_defined_function} }
TO security_account [,…n][WITH GRANT OPTION][AS{group|role} ]
参数ALL指定可以用于指定对象的全部许可,只有系统管理员和数据库所有者可以使用该参数;选项WITH GRANT OPTION表示授予该安全性帐户具有转授该许可给其他安全性帐户的权限。
22、数据库应用系统维护阶段最主要的工作是( A )。
A、应用程序维护 B、数据维护
C、编码维护 D、硬件设备维护
★考核知识点: 系统运行与维护
附1.1.22(考核知识点解释):
系统维护内容包括应用程序维护、数据维护、编码维护、硬件设备维护。应用程序维护是最主要的工作。
23、在PowerBuilder中,用来显示窗口对象及其控件的视图是( A )。
A、布局视图 B、窗口视图 C、属性视图 D、脚本视图
★考核知识点: 视图
附1.1.23(考核知识点解释):
布局视图主要用来显示窗口对象及其控件。
24、在PowerBuilder中,在要查看数据库参数设置在应用程序中的代码表示形式,应选择Database Profile Setup对话框中的( D )标签。
A、Connection B、Transaction C、Syntax D、Preview
★考核知识点: 数据库描述文件
附1.1.24(考核知识点解释):
Preview标签预览数据库参数设置在应用程序中的代码表示形式。
25、要定义数据库描述文件名称和数据库基本连接参数,应选择Database Profile Setup对话框中的( A )标签。
A、Connection B、Transaction C、Syntax D、Preview
★考核知识点: 数据库描述文件
附1.1.25(考核知识点解释):
Connection标签定义数据库描述文件名称、数据库基本连接参数以及其他的相关信息。
26、在PowerScript语言中,从程序质量角度看应按( A )优先顺序定义变量。
A、局部变量、实例变量、共享变量、全局变量
B、局部变量、共享变量、实例变量、全局变量
C、共享变量、局部变量、实例变量、全局变量
D、局部变量、实例变量、全局变量、共享变量
★考核知识点: 变量的作用域
附1.1.26(考核知识点解释):
在程序中用到某个变量时,PB编译程序按照一定顺序去判断变量的种类,这个判断顺序是局部变量、共享变量、全局变量、实例变量。在定义变量时,最好不要定义同名的变量,以免引起混乱。
从程序质量角度看,应按如下优先顺序定义变量:局部变量、实例变量、共享变量、全局变量。即尽量定义成局部变量,如果不能满足需要,考虑定义成实例变量,如果还不能满足需要,考虑定义成共享变量,最后才考虑定义成全局变量。
27、数据模型的组成要素包括( ABCD )。
A、数据结构 B、数据约束 C、数据检索 D、数据更新
★考核知识点: 数据模型
附1.1.27(考核知识点解释):
数据模型的组成要素有三个,分别是数据结构、数据操作和数据约束。
数据操作主要有数据检索和更新(即增、删、改)两大类操作。
28、下列选项中属于关系数据库三级模式结构的是( ABCD )。
A、模式 B、存储模式 C、外模式 D、内模式
★考核知识点: 三级模式结构
附1.1.28(考核知识点解释):
美国国家标准局在1975年规定了数据库按三级模式结构组织,这三级模式结构分别从内层、中间层和外层三个不同层次来描述数据库,称为内模式、模式和外模式。
内模式也称存储模式。
29、下列选项中属于数据库系统软件组成部分的是( ABD )。
A、数据库管理系统 B、数据库应用系统
C、CPU D、操作系统
★考核知识点: DBS的组成
附1.1.29(考核知识点解释):
DBS由三部分组成,它们是硬件、软件和干件。软件包括操作系统、DBMS、应用系统开发工具和应用系统。
30、下列选项中属于关系性质的是( BD )。
A、每一列中的各个分量可以是不同类型的数据
B、不同的列可出自同一个域
C、改变列的排列顺序可能会改变数据的含义
D、每一个列都是不可再分的数据项
★考核知识点: 关系模型的基本术语
附1.1.30(考核知识点解释):
关系具备如下性质:
(1)列是同质的,即每一列中的各个分量都是同一类型的数据,来自同一个域。
(2)不同的列可出自同一个域,每一个列叫做一个属性,每个属性要定义唯一的属性名。
(3)列的顺序无关性,即如果只是改变了列的排列顺序,改变前后的关系是等价的。
(4)行的顺序无关性,即如果只是改变了行的排列顺序,改变前后的关系是等价的。
(5)不能有两个完全相同的行。
(6)每一列都是不可再分的数据项。
31、关于关系和关系模式之间联系正确的叙述是( ACD )。
A、一个关系模式可以对应多个关系
B、一个关系可以对应多个关系模式
C、一个关系只能对应一个关系模式
D、关系是关系模式在某一时刻的取值
★考核知识点: 关系模式
附1.1.31(考核知识点解释):
关系是关系模式在某一时刻的取值,一个关系模式可以形成多个关系,而一个关系只能对应一个关系模式。
32、SQL语言的功能包括( ABCD )。
A、数据定义 B、数据查询 C、数据操纵 D、数据控制
★考核知识点: SQL的功能
附1.1.32(考核知识点解释):
SQL语言集数据定义、数据查询、数据操纵和数据控制功能于一体。
33、下列选项中,不属于SQL语言数据定义功能的命令是( BC )
A、CREATE B、REVOKE C、DELETE D、DROP
★考核知识点: SQL的功能
附1.1.33(考核知识点解释):
数据定义功能用来创建、修改和删除数据库模式以及数据库中的各种对象,包括基本表、视图和索引,该功能主要使用CREATE、ALTER、DROP命令。
34、下列关于SQL特点的叙述,错误的是( AC )
A、SQL是一种非过程化的语言,不仅要提出“做什么”,还要指明“如何做”
B、SQL集数据定义语言、数据操纵语言、数据控制语言及附加语言元素于一体
C、一条SQL语句仅能操作一条记录
D、SQL可以作为嵌入式语言和自含式语言两种方式来使用
★考核知识点: SQL的特点
附1.1.34(考核知识点解释):
SQL的主要特点包括:
(1)非过程化的语言:只要提出“做什么”,而不必指明“如何做”,对于存取路径的选择和语句的操作过程均由系统自动完成。
(2)功能一体化的语言:SQL集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL及附加语言元素于一体。
(3)一种语法两种使用方式:既可以作为一种自含式语言,又可以作为一种嵌入式语言。
(4)面向集合操作的语言:所有SQL语句都接受记录集作为输入,返回记录集作为输出,其面向集合的特性还允许一条SQL语句的结果作为另一条语句的输入。
(5)语法简介、易学易用的标准语言。
35、使用SQL语言创建一个表,要限定某列的值具有唯一性,可以使用( AC )约束。
A、PRIMARY KEY B、CHECK
C、UNIQUE D、FOREIGN KEY
★考核知识点: 基本表的创建、修改与删除
附1.1.35(考核知识点解释):
PRIMARY KEY:设定表的主键,所为主键值用来唯一标识表中行的一列或几列,主键不允许为空(NULL),且主键值必须唯一。
UNIQUE:强制限定某列的值具有唯一性,即限定表中不能有两行包含相同的非空值,一个表可以有多个UNIQUE约束。
36、下列关于完整性约束的叙述中,正确的是( CD )。
A、一个表可以有多个PRIMARY KEY约束
B、在任何情况下PRIMARY KEY约束都可以被删除
C、一个表可以有多个UNIQUE约束
D、使用NULL/NOT NULL可以设定某列的值允许为空值或不允许为空值
★考核知识点: 基本表的创建、修改与删除
附1.1.36(考核知识点解释):
PRIMARY KEY:设定表的主键,所为主键值用来唯一标识表中行的一列或几列,主键不允许为空(NULL),且主键值必须唯一。一个表只能有一个PRIMARY KEY约束。而且当PRIMARY KEY约束由另一表的FOREIGN KEY约束引用时,不能删除PRIMARY KEY约束;要删除它,必须先删除FOREIGN KEY约束。
UNIQUE:强制限定某列的值具有唯一性,即限定表中不能有两行包含相同的非空值,一个表可以有多个UNIQUE约束。
NULL/NOT NULL:设定某列的值允许为空值或不允许为空值。
37、下列关于索引的叙述中,正确的是( ABD )。
A、使用索引可以加快数据检索速度
B、使用ORDER BY和GROUP BY子句进行查询时,可以显著减少分组和排序的时间
C、当对基本表中的数据进行增加、删除和修改操作时,使用索引可以加快数据的维护速度
D、一个基本表上可以创建多个非聚集索引
★考核知识点: 索引的创建与删除
附1.1.37(考核知识点解释):
建立适当的索引可以大大加快查询数据的速度,提高系统性能。第一,通过在基本表上创建一个或多个索引,可以为系统提供多种存取路径,从而加快数据检索速度。第二,通过创建唯一性索引,可以保证每一行数据的唯一性。第三,在使用ORDER BY和GROUP BY子句进行查询时,可以显著减少分组和排序的时间。第四,当多表间具有一定完整性参考约束时,可以利用索引加速表和表之间的连接速度。
虽然增加索引具有如此多的优点,但如果随意创建索引则可能降低系统整体性能。第一,系统创建和维护索引要消耗时间;第二,索引本身也需要占用存储空间,比如聚集索引需要很大的存储空间;第三,当对基本表中的数据进行增加、删除和修改操作时,系统要对索引进行动态维护,从而降低了数据的维护速度。
非聚集索引与书籍中的索引目录类似,索引和数据分别存储在不同地方,索引带有指针指向数据的存储位置,因此一个基本表允许创建多个非聚集索引。
38、下列关于视图的叙述中,错误的是( BC )。
A、视图是关系数据库系统提供给用户的一种以多角度观察和访问数据库中数据的重要方式
B、视图中存放实际数据,因此可以和基本表一样被查询、修改、删除
C、所有视图都可以进行更新操作
D、可以在一个视图上再定义视图
★考核知识点: 视图
附1.1.38(考核知识点解释):
视图是关系数据库系统提供给用户的一种以多角度观察和访问数据库中数据的重要方式。视图是从一个或几个基本表(或视图)导出的表,是一个逻辑表。数据库中只存储视图的定义,而不存放数据。视图一旦被定义,可以和基本表一样被查询、删除,还可以在一个视图上再定义视图,但对视图的更新操作有一定的限制。
39、下列关于关系模式规范化的叙述中,正确的是( AD )。
A、学生(学号,姓名,系别)属于第三范式
B、属于第二范式的关系模式不存在插入异常,只存在删除异常
C、满足第二范式的关系模式不存在删除异常,只存在插入异常
D、属于第三范式的关系模式不存在插入异常和删除异常
★考核知识点: 关系模式的规范化
附1.1.39(考核知识点解释):
(1)第一范式(1NF)
如果关系模式R(U)中每个属性都是不可分割的数据项,则称R属于第一范式,记作R∈1NF。
(2)第二范式(2NF)
设有R(U)∈1NF,且其每一个非主属性完全函数依赖于码,则称R(U) 满足2NF,记作R∈2NF。
要讨论R是否属于第二范式,不但要确定R的属性,还要确定R的所有函数依赖。此时一个关系模式R可由三元组确定,记为R(U,F),其中U为R的属性集,F为R的函数依赖。
例如,关系模式教学1((学号, 姓名, 系别, 系主任, 课程号, 成绩),(学号→姓名,学号→系别,学号→系主任,系别→系主任,(学号,课程号)→成绩))。
为了使教学1属于2NF,需要将其分解,以消除非主属性对码的部分依赖。可以将教学1分解成两个关系模式:
教学11(学号, 姓名, 系别, 系主任)
教学12(学号, 课程号, 成绩)
仍存在插入异常和删除异常。
(3)第三范式(3NF)
若关系模式R(U)∈2NF,且每个非主属性都不传递依赖于码则称R属于第三范式,记为R∈3NF。
关系模式教学11存在系主任对学号的传递依赖,所以不属于第三范式,将它分解为:
教学111(学号,姓名,系别)
教学112(系别,系主任)
消除了插入异常和删除异常。
40、下列故障类型中,可能会破坏数据库的故障包括( CD )。
A、事务故障 B、系统故障 C、介质故障 D、计算机病毒
★考核知识点: 故障的类型
附1.1.40(考核知识点解释):
对于事务故障,数据库的恢复子系统要能够在不影响其他事务运行的情况下,强行让事务回滚(ROLLBACK),以撤销该事务对数据库已经作出的任何修改,从而恢复数据库到正确的状态。
对于系统故障,数据库的恢复子系统要能够在系统重新启动后,一方面对所有非正常终止的事务强行回滚(ROLLBACK),还需要重做(REDO)所有已提交的事务,从而将数据库真正恢复到一致状态。
介质故障不仅影响正在存取这部分数据的所有事务,而且会破坏全部或部分物理数据库,因此虽然发生概率较小,但是破坏性最大。
计算机病毒是一种人为的破坏性程序,它可以像生物病毒一样繁殖、传播,并造成对包括数据库在内的计算机系统的破坏。
41、数据库恢复的实现技术主要包括( AB )。
A、定期数据转储 B、建立日志文件
C、采用良好的防毒、杀毒工具
D、编写应用程序时考虑可能发生的故障并采取相应的预防措施
★考核知识点: 恢复的实现技术
附1.1.41(考核知识点解释):
实现恢复的基本原理很简单,就是“冗余”,即数据的重复存储。当数据库任一部分遭到破坏或者不正确时,可以通过存储在系统其他位置的冗余数据进行数据重建。建立冗余数据最常用的技术是定期数据转储和建立日志文件。
42、事务在运行过程中,系统写入日志文件中的操作包括对数据库的( ABC )。
A、插入操作 B、修改操作 C、删除操作 D、查询操作
★考核知识点: 恢复的实现技术
附1.1.42(考核知识点解释):
一般日志文件的记录内容包括:执行操作的事务标识;操作类型(插入、删除或修改);操作对象;更新前数据的旧值(对插入操作,此项为空);更新后数据的新值(对删除操作,此项为空);更新日期和时间。
43、为了保证数据库的可恢复性,在建立日志文件时必须遵循的原则包括( ABD )。
A、记录的次序严格按并发事务执行的时间次序
B、必须先写日志文件,后写数据库
C、必须先写数据库,后写日志文件
D、必须将数据库的所有更新操作记录到日志文件中
★考核知识点: 恢复的实现技术
附1.1.43(考核知识点解释):
日志文件是记录事务对数据库的更新操作的文件。事务在运行过程中,系统把事务开始、事务结束以及对数据库的插入、删除和修改的每一次操作都作为一条记录写入日志文件中。为了保证数据库的可恢复性,在建立日志文件时必须遵循:(1)记录的次序严格按并发事务执行的时间次序。(2)必须先写日志文件,后写数据库。
44、必须使用日志文件的情况包括( ABC )。
A、事务故障恢复 B、系统故障恢复
C、动态转储方式下的数据库恢复 D、静态转储方式下的数据库恢复
★考核知识点: 恢复的实现技术
附1.1.44(考核知识点解释):
日志文件的使用包括:
(1)事务故障恢复和系统故障恢复时必须使用日志文件。
(2)在动态存储方式中必须建立日志文件,后备副本和日志文件配合使用才能有效地恢复数据库。
(3)在静态存储方式中,也可以使用日志文件。当使用后备副本恢复数据库到存储结束时刻的正确状态后,利用日志文件,可以把已经完成的事务进行重做(REDO)处理,对因故障未能完成的事务进行撤销(UNDO)处理。
45、下列关于系统故障恢复的描述,正确的是( AC )。
A、从日志文件开头向后扫描 B、从日志文件最后向前扫描
C、需要建立撤销队列,并对该队列中的每个事务做撤销处理
D、既有BEGIN TRANSACTION记录也有COMMIT记录的事务应放入撤销队列中
★考核知识点: 恢复的策略方法
附1.1.45(考核知识点解释):
系统故障的恢复实在系统重新启动时自动完成的,无需用户干预,恢复步骤是:
(1)从日志文件开头向后扫描,找出故障发生时尚未完成的事务(这些事务只有BEGIN TRANSACTION记录,而没有COMMIT记录),将它们的事务标记送入撤销(UNDO)队列。同时找出故障发生前已经提交的事务(这些事务既有BEGIN TRANSACTION记录,也有COMMIT记录),将它们的事务标记送入重做(REDO)队列。
(2)对撤销队列中的各个事务进行撤销(UNDO)处理,即从后向前扫描日志文件,对每个UNDO事务的更新操作执行逆操作。
(3)对重做队列中的各个事务进行重做(REDO)处理,即从前向后扫描日志文件,对每个REDO事务重新执行日志文件记录的操作。
46、要解决对数据库并发操作所带来的读“脏数据”问题,可以采用( BC )。
A、一级封锁协议 B、二级封锁协议
C、三级封锁协议 D、都可以
★考核知识点: 封锁
附1.1.46(考核知识点解释):
在一级封锁协议中,如果仅仅是读数据而不对其进行修改,则不需要加锁,所以它不能保证可重复读和不读“脏数据”。
使用二级封锁协议除了可以防止丢失修改,还可以防止读“脏数据”。在二级封锁协议中,由于读完数据后即可解除S锁,因此不能保证可重复读。
使用三级封锁协议不仅可以防止丢失修改和读“脏数据”,还能够防止不可重复读。
47、在数据库中解决死锁问题可以( ABC )。
A、使用一次封锁法预防死锁发生
B、使用顺序封锁法预防死锁发生
C、定期诊断系统中是否发生死锁,若有则撤销某个事务来解除之
D、使用两段锁协议
★考核知识点: 封锁
附1.1.47(考核知识点解释):
目前在数据库中解决死锁问题主要有两种方法,一个是采取措施预防死锁的发生,另一个是允许发生死锁,然后采用某种手段定期诊断系统中是否发生死锁,若有则撤销某个事务来解除之。
预防死锁的发生就是要破坏产生死锁的条件,通常可以采用如下两种方法:一次封锁法和顺序封锁法。
48、以下关于两段锁协议的叙述,正确的是( ABD )。
A、在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁
B、在解除一个封锁之后,事务不再申请和获得任何其他封锁
C、两段锁协议是保证并发调度可串行化的必要条件
D、两段锁协议是保证并发调度可串行化的充分条件
★考核知识点: 两段锁协议
附1.1.48(考核知识点解释):
两段锁协议规定所有事务都必须分为两个阶段对数据项加锁和解锁。
(1)在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁。
(2)在解除一个封锁之后,事务不再申请和获得任何其他封锁。
事务遵循两段锁协议是可串行化调度的充分条件,而不是必要条件。
49、在SQL Server中,按照锁定的资源分类,包括( BCD )。
A、字段级锁 B、行级锁 C、表级锁 D、簇级锁
★考核知识点: SQL Server 2000的并发控制技术
附1.1.49(考核知识点解释):
按锁定的资源分类,主要包括:行级锁、页级锁、簇级锁、表级锁和数据库级锁。
50、SQL Server提供的完整性类型包括( ABCD )
A、实体完整性 B、域完整性 C、引用完整性 D、用户定义完整性
★考核知识点: SQL Server 2000的完整性
附1.1.50(考核知识点解释):
在SQL Server 2000中提供了四种类型的数据完整性,分别是:实体完整性、域完整性、引用完整性、用户自定义完整性。
51、SQL Server系统支持的认证模式包括( AC )。
A、Windows认证模式 B、SQL Server认证模式
C、Windows和SQL Server混合模式 D、以上都包括
★考核知识点: SQL Server 2000的安全性
附1.1.51(考核知识点解释):
SQL Server系统的认证模式有两种:Windows认证模式和混合模式。前者只允许使用Windows认证机制,这时用户不能指定SQL Server的登录帐户。后者既允许使用Windows认证机制,也允许使用SQL Server认证机制,这时无论是使用Windows认证机制的用户还是使用SQL Server认证机制的用户,都可以连接到SQL Server系统上。
52、在SQL Server中,允许创建和修改数据库的固定服务器角色包括( AB )
A、系统管理员 B、数据库创建者 C、磁盘管理员 D、进程管理员
★考核知识点: SQL Server 2000的安全性
附1.1.52(考核知识点解释):
系统管理员:允许执行任意活动。
数据库创建者:允许创建和修改数据库。
磁盘管理员:允许管理磁盘文件。
进行管理员:允许管里系统进程。
53、在SQL Server中,允许增加或删除数据库用户、组和角色的固定数据库角色包括( AB )
A、db_owner B、db_accessadmin
C、db_ddladmin D、db_securityadmin
★考核知识点: SQL Server 2000的安全性
附1.1.53(考核知识点解释):
db_ower:允许执行任何数据库角色活动。
db_accessadmin:允许增加或删除数据库用户、组和角色。
db_ddladmin:允许增加、修改或删除数据库对象。
db_securityadmin:允许执行语句和对象许可。
54、在SQL Server中,对象许可包括( BD )
A、CREATE VIEW B、UPDATE
C、CREATE TABLE D、INSERT
★考核知识点: SQL Server 2000的安全性
附1.1.54(考核知识点解释):
对象许可:指涉及使用数据或者执行存储过程操作的许可。比如:
SELECT(表、视图、列)
UPDATE(表、视图、列)
DELETE(表、视图)
INSERT(表、视图)
REFERENCES(列)
EXEC(存储过程)
55、将E-R图转换为关系模型时,下列叙述正确的是( AC )
A、一个实体转换为一个关系 B、一个联系转换为一个关系
C、对于一个多对多联系转换成的关系,应将与该联系相关的各实体的码的组合作为该关系的码
D、对于一个一对多联系转换成的关系,应将与该联系相关的各实体的码的组合作为该关系的码
★考核知识点: 逻辑结构设计
附1.1.55(考核知识点解释):
将E-R图转换为关系模型应遵循如下原则:
(1)一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体型的码就是关系的码。
(2)一个1:1联系,可以在两个实体型转换成的两个关系中的任意一个关系的属性中加入另一个关系的码。
(3)一个1:n联系,在n端实体型转换成的关系中加入1端实体型转换成关系的码。
(4)一个n:m联系,将联系转换成一个关系模式,与该联系相关的各实体型的码及联系上的属性均为该关系的属性,关系的码为各实体型码的组合。
56、在数据库应用系统的详细设计阶段,主要工作包括( ACD )
A、算法设计 B、程序设计 C、数据库设计 D、用户界面设计
★考核知识点: 系统设计
附1.1.56(考核知识点解释):
详细设计主要包括算法设计、编码设计、数据库设计和用户界面设计。
57、对数据库应用系统的测试工作包括( ABCD )
A、模块测试 B、单元测试 C、集成测试 D、验收测试
★考核知识点: 系统实施
附1.1.57(考核知识点解释):
系统测试包括模块测试、集成测试和验收测试。模块测试通常又称为单元测试。
58、在( ACD )视图中可以用鼠标双击某个对象或控件来打开该对象或控件默认的事件脚本。
A、布局视图 B、脚本视图 C、控件列表视图 D、不可视对象列表视图
★考核知识点: 视图
附1.1.58(考核知识点解释):
当在布局视图、控件列表视图以及不可视对象列表视图中用鼠标双击某个对象或控件时,将在脚本视图中打开该对象或控件默认的事件脚本。
59、在PowerScript语言中,下列命名正确的标识符包括( BC )
A、2a B、a$ C、_% D、if
★考核知识点: 标识符
附1.1.59(考核知识点解释):
标识符的命名应遵循如下规则:
(1)以字母(A-Z或a-z)或下划线(_)开始。
(2)PB中有特定含义的保留字不能作为标识符使用。
(3)标识符字数个数最多为40,40个以上的字符将被系统忽略。
(4)除开头字符外,标识符可以包括数字、字母、下划线(_)、连字符(-)、$、#、%,不允许出现空格或其他任何字符。出现在标识符中的字母不区分大小写。
60、在PowerScript语言中,下列定义正确的数组包括( ABC )
A、Int A[] B、String S[5]
C、Int N[2 to 8, 3 to 6] D、Real R[6 to 3]
★考核知识点: 数组
附1.1.60(考核知识点解释):
定义一维数组变量的格式如下:
DataType ArrayName[bound]
其中,ArrayName是数组变量的名字,bound是数组中元素的个数。
关于数组有几点需要说明:
(1)可以定义多维数组,定义格式与一维数组定义格式类似。
Int B[12,20] // 定义一个二维整型数组
Real C[10,10,10] // 定义一个三维实型数组
(2)一维数组可以定义变长数组,多维数组只能定义定长数组。
Int A[] // Int变长数组,元素个数不定
String Str[] // String变长数组,串中字符个数不定
(3)可以指定上界和下界,但上界一定要大于下界。
Int A[4 to 8] // 5个整数的数组,下标从4到8
Real B[2 to 9,6 to 15] // 80个实数的数组,下标从[2,6]到[9,15]
61、在当前窗口w_main中创建一个Close按钮,其作用是关闭w_main窗口,则该按钮的Clicked事件中可以书写代码( CD )
A、Close(ParentWindow) B、Close(Super)
C、Close(Parent) D、Close(w_main)
★考核知识点: 使用代词编写通用代码
附1.1.61(考核知识点解释):
Parent代表当前控件所在的窗口。
62、在PowerBuilder中,不可以拥有菜单的窗口类型包括( BD )
A、主窗口 B、子窗口 C、弹出式窗口 D、响应窗口
★考核知识点:菜单对象
附1.1.62(考核知识点解释):
在PowerBuilder中除了响应窗口和子窗口外,所有窗口都可以拥有菜单。
二、主观部分:
(一)、简答
1.请简述数据模型的组成要素及各要素的含义。
★考核知识点:数据模型
附2.1.1:(考核知识点解释)
1数据结构:对系统静态特征的描述,主要描述数据的类型、内容、性质以及数据间联系的有关信息。
2数据操作:描述系统的动态特征,包括数据的检索和更新(即增、删、改)两大操作。
3数据约束:描述系统的约束条件,描述数据结构内数据间的语义限制、制约与依存关系。
2.请简述关系数据库中数据逻辑独立性和物理独立性的作用。
★考核知识点:数据独立性
附2.1.2:(考核知识点解释)
1逻辑独立性的作用:当模式发生改变时,只要修改外模式/模式映像关系,使外模式不变,就可以保证应用程序不必改动。
2物理独立性的作用:当数据库的存储结构改变时,可以通过修改模式/内模式的映像关系使数据模式不变化,从而保证从模式中导出的外模式也不变化,最终使得根据外模式设计的应用程序也不用改动。
3.请简述数据库管理系统的主要功能及各功能的作用。
★考核知识点:DBMS的主要功能
附2.1.3:(考核知识点解释)
(1)数据定义功能:定义数据库中的数据对象。
(2)数据操纵功能:对数据进行增、删、改、查询、统计等操作。
(3)数据库的建立和维护功能:建立数据库包括数据库初始数据输入等;维护数据库包括数据库转储、恢复、重组以及数据库结构的修改和扩充等。
(4)数据库的运行管理:DBMS的核心功能;对数据库的建立、运行、维护进行统一管理,保证数据的安全性、完整性、并发行和故障排除。
4.请简述用户访问数据库中数据的过程。
★考核知识点:用户访问数据库中数据的过程
附2.1.4:(考核知识点解释)
(1)用户用某种特定的数据操作语言向DBMS发出存取请求;
(2)DBMS接收请求并解释请求,然后检查用户是否有该操作权限,如果有则进行第3步,否则撤销该操作;
(3)DBMS依次检查外模式、外模式/模式映像、模式、模式/内模式映像及存储结构定义;
(4)DBMS对数据库执行必要的存取操作。
在用户访问数据库的过程中,DBMS还要进行完整性检查,确保数据库中数据的合法性。
5.请简述数据库系统的组成。
★考核知识点:DBS的组成
附2.1.5:(考核知识点解释)
6.请简述关系模型中关系、元组、属性、域、候选码和主码的概念。
★考核知识点:关系模型的基本术语
附2.1.6:(考核知识点解释)
(1)关系:关系数据库中的一个二维表
(2)元组:表中的一行
(3)属性:表中的一列
(4)域:属性的取值范围
(5)候选码:关系中能唯一标识一个元组的某一属性组
(6)主码:若一个关系有多个候选码,则选定其中一个用以唯一标识元组
7.请简述关系的性质。
★考核知识点:关系模型的基本术语
附2.1.7:(考核知识点解释)
(1)列是同质的;(2)不同的列可出自同一个域;(3)列的顺序无关性;(4)行的顺序无关性;(5)不能有两个完全相同的行。
8.请举例说明实体完整性、参照完整性和用户自定义完整性。
★考核知识点:关系的完整性
附2.1.8:(考核知识点解释)
(1)实体完整性举例:对于学生(学号, 姓名, 性别, 年龄, 系别, 身份证号) 关系,每一名学生学号必须不同且不能为空
(2)参照完整性举例:对于学生(学号, 姓名, 性别, 年龄, 系别, 身份证号)、选修(学号, 课程号, 成绩)这两个关系,选修表中学号取值或者为空,或者为学生表中某一名学生的学号
(3)用户自定义完整性举例:性别只能取值为“男”或“女”,课程成绩的取值为0~100
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.请简述关系数据库中视图的作用。
★考核知识点:视图的作用
附2.1.11:(考核知识点解释)
(1)使用视图可以简化用户操作;
(2)视图机制使不同的用户能以不同的角度看待同一数据,当不同用户使用同一个数据库时,具有较强的灵活性;
(3)视图对于数据库的重构提够了一定程度的逻辑独立性;
(4)利用视图可以把对数据库的访问限制在一定范围内,有利于对机密数据的保护。
12.请举例说明插入异常和删除异常。
★考核知识点:关系数据库的模式设计
附2.1.12:(考核知识点解释)
对于学生选课(学号,姓名,系别,年龄,课程号,课程名,成绩,先修课号)这一关系模式,学号、课程号为主码。
(1)插入异常:如果新转来一名学生还没有选课,则会由于课程号为空而无法将其插入。
(2)删除异常:如果某门课程只有一名学生选修,该名学生转学后,就会由于没有其他学生选修该课程而将课程信息同时删除。
13.请简述数据库中事务的概念及其特点。
★考核知识点:事务
附2.1.13:(考核知识点解释)
(1)事务的概念:由用户定义的一个数据库操作序列,这些操作或者全部执行成功,或者一个也不执行,它是一个不可分割的逻辑工作单元
(2)事务的特点:原子性、一致性、独立性、永久性。
14.请简述数据库系统中故障的类型。
★考核知识点:故障的类型
附2.1.14:(考核知识点解释)
(1)事务故障:非预期的故障,即不能由事务程序处理的故障;可预期的故障,即应用程序可以发现的事务故障。
(2)系统故障:指由于硬件故障或者软件错误造成系统停止运行,系统需要重新启动。
(3)介质故障:指磁盘故障。
(4)计算机病毒:一种人为的破坏性程序,它可以像生物病毒一样繁殖、传播,并造成对包括数据库在内的计算机系统的破坏。
15.请简述数据库恢复的基本技术。
★考核知识点:恢复的实现技术
附2.1.15:(考核知识点解释)
(1)定期数据转储:指数据库管理员(DBA)定期将数据库复制到磁带或另一个磁盘上保存起来的过程。
(2)建立日志文件:记录事务对数据库的更新操作。
16.请简述数据库系统中一般日志文件的记录内容。
★考核知识点:恢复的实现技术
附2.1.16:(考核知识点解释)
(1)执行操作的事务标识;
(2)操作类型(插入、删除或修改);
(3)操作对象;
(4)更新前数据的旧值(对插入操作,此项为空);
(5)更新后数据的新值(对删除操作,此项为空);
(6)更新日期和时间。
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.请简述数据库系统中介质故障的恢复步骤。
★考核知识点:恢复的策略方法
附2.1.19:(考核知识点解释)
(1)装入离故障发生时刻最近的静态转储后备副本,或者动态转储的后备副本和日志文件副本并执行撤销和重做操作,使数据库恢复到最近一次转储时的一致性状态;
(2)装入转储结束时刻的日志文件副本,重做已完成的所有事务。
20.请简述SQL Server 2000中提供的三种恢复模型的备份策略。
★考核知识点:SQL Server 2000的恢复技术
附2.1.20:(考核知识点解释)
(1)简单恢复模型:数据库备份;差异备份(可选)。
(2)完全恢复模型:数据库备份;差异备份(可选);事务日志备份。
(3)大容量日志记录恢复模型:数据库备份;差异备份(可选);日志备份。
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.请简述可串行性的含义及两段锁协议的内容。
★考核知识点:两段锁协议
附2.1.23:(考核知识点解释)
(1)可串行性是指多个事务的并发调度结果与按某一次序串行调度它们时的结果相同。(2)两段锁协议的内容:在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;在解除一个封锁之后,事务不再申请和获得任何其他封锁。
24.请简述SQL Server 2000中使用的各种锁类型。
★考核知识点:SQL Server 2000的并发控制技术
附2.1.24:(考核知识点解释)
(1)按锁类型分类:共享锁、排他锁、更新锁。(2)按照锁定的资源分类:行级锁、页级锁、簇级锁、表级锁、数据库级锁。
25.请简述SQL Server 2000中的死锁检测过程。
★考核知识点:SQL Server 2000的并发控制技术
附2.1.25:(考核知识点解释)
(1)对等待线程启动死锁搜索;(2)识别线程正在等待的资源,然后,锁监视器查找特定资源的拥有者,并递归地继续执行对那些线程的死锁搜索,直到找到一个循环;(3)用这种方式识别的循环即是一个死锁。
26.请简述SQL Server 2000中的死锁解决方法。
★考核知识点:SQL Server 2000的并发控制技术
附2.1.26:(考核知识点解释)
(1)在识别死锁后, SQL Server通过自动选择可以打破死锁的线程来结束死锁;(2)通常选择运行撤销时花费最少的事务的线程作为死锁牺牲品;(3)SQL Server回滚作为死锁牺牲品的事务,然后系统将1205号错误信息返回给应用程序,取消线程的当前请求,然后允许不间断线程的事务继续进行。
27.请简述数据库系统中3类静态完整性约束条件的功能,并举例说明。
★考核知识点:完整性约束条件
附2.1.27:(考核知识点解释)
(1)静态列级约束:静态列级约束是对一个列的取值范围的说明,如规定学生成绩的取值范围为0~100;(2)静态元组约束:规定元组中各列之间的约束关系,如规定经理的月工资不能低于2000元;(3)静态关系约束:在一个关系的各个元组之间或者若干关系之间也常存在各种联系或约束,如规定经理的工资不得高于员工平均工资的5倍(或实体完整性约束、参照完整性约束、函数依赖约束)。
28.请简述数据库管理系统完整性控制机制的功能。
★考核知识点:完整性控制
附2.1.28:(考核知识点解释)
(1)定义约束条件的功能:提供一种定义完整性约束条件的机制,能够允许用户定义完整性约束条件;(2)检查的功能:检查用户的操作是否符合完整性约束条件;(3)保证完整性的功能:当完整性检查发现用户的操作请求违背了完整性约束条件时,应该采取相应动作以保证数据的完整性。
29.请列举SQL Server 2000中的约束管理技术。
★考核知识点:SQL Server2000的约束管理技术
附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中的安全性控制技术及作用。
★考核知识点:SQL Server 2000的安全性
附2.1.31:(考核知识点解释)
(1)帐户管理技术:主要解决使用SQL Server系统的用户如何登录系统的问题;(2)许可管理技术:用来指定授权用户可以使用的数据库对象和这些授权用户对这些数据库对象可以执行的操作。
32.请举例说明1:1联系、1:n联系和n:m联系。
★考核知识点:设计局部E-R图
附2.1.32:(考核知识点解释)
(1)一个学校只有一名校长,一名校长也只能在一个学校担当校长职务,因此学校与校长是1:1联系;(2)一个系可以有多名学生,而一名学生只能在一个系,因此系与学生是1:n联系;(3)一名学生可以选修多门课程,一门课程也可以由多名学生来选修,因此学生与课程是n:m联系。
33.请简述数据库应用系统开发过程的主要阶段及各个阶段的主要目的。
★考核知识点:数据库应用系统的开发过程
附2.1.33:(考核知识点解释)
(1)系统分析:对组织的工作现状和用户需求进行调查、分析,明确用户的信息需求和系统功能,提出拟建系统的逻辑方案。(2)系统设计:将系统分析阶段提出的反映用户需求的系统逻辑方案转换成为可以实施的物理(技术)方案。(3)系统实施:以系统分析和系统设计阶段的工作成果为依据,将技术设计方案转化为物理实现。(4)系统运行与维护:在系统运行阶段,为了改正错误或满足新的需要而修改、完善系统的过程。
34.请简述PowerBuilder中事件驱动的含义。
★考核知识点:事件驱动
附2.1.34:(考核知识点解释)
(1)程序的流程并不能够事先确定;(2)每一类对象都有预定义事件,比如命令按钮控件有Clicked事件,特定的事件触发应用程序中对应的某段代码;(3)代码运行完成后,系统进入一种等待状态,等待下一个事件触发相应的代码。
35.请简述PowerBuilder程序开发步骤。
★考核知识点:PowerBuilder程序开发步骤
附2.1.35:(考核知识点解释)
(1)创建数据库及数据库中的表、视图、索引等;(2)创建应用对象,建立应用程序框架,建立与数据库的连接;(3)创建窗口和菜单,并在窗口上放置各种需要的控件,设计应用程序界面;(4)编写事件处理程序,实现各种具体功能;(5)应用程序的调试与测试;(6)应用程序的发布。
36.请简述PowerBuilder中布局视图、属性视图、脚本视图、事件列表视图、函数列表视图的作用。
★考核知识点:视图
附2.1.36:(考核知识点解释)
(1)布局(Layout)视图:主要用来显示窗口对象及其控件;(2)属性(Properties)视图:用来显示当前所选对象的各种属性;(3)脚本(Script)视图:可以完成编辑事件和函数的脚本,定义、修改用户事件和函数,声明变量和外部函数等操作;(4)事件列表(Event List)视图:列出了当前对象的所有事件;(5)函数列表(Function List)视图:列出了当前对象的所有函数。
37.请简述PowerBuilder中声明变量视图、控件列表视图、不可视对象列表视图、结构视图、结构列表视图的作用。
★考核知识点:视图
附2.1.37:(考核知识点解释)
(1)声明变量(Variable)视图:可以为应用程序声明变量和外部函数;(2)控件列表(Control List)视图:列出了当前描绘器中的所有控件,以及和控件相关的一些信息,如:可以列出这些控件的祖先对象;(3)不可视对象列表(Non-Visual Object List)视图:列出了当前描绘器中所有可用的不可视对象;(4)结构(Structure)视图:可以为对象定义对象级结构;(5)结构列表(Structure List)视图:结构列表视图列出了当前描绘器中所有的对象级结构。
38.请简述PowerBuilder通过ODBC接口连接数据库的步骤。
★考核知识点:通过ODBC与数据库连接
附2.1.38:(考核知识点解释)
(1)配置ODBC数据源;(2)连接到ODBC数据库。
39.请简述4种变量作用域的作用范围及使用原则。
★考核知识点:变量的作用域
附2.1.39:(考核知识点解释)
4种变量作用域:
(1)全局变量:能在应用程序的所有地方访问;(2)局部变量:能在定义它的事件处理程序或用户自定义函数中访问;(3)实例变量:能在定义它的对象中使用;(4)共享变量:在同一窗口的不同实例中共享。
使用原则:从程序质量角度看,应按如下优先顺序定义变量:局部变量、实例变量、共享变量、全局变量。即尽量定义成局部变量。
40.请简述2类结构的作用范围。
★考核知识点:结构
附2.1.40:(考核知识点解释)
(1)全局结构:在整个应用程序中都可用;(2)对象级结构:只在定义它的对象中可用。
41.请简述This、Parent、ParentWindow等代词的含义,并举例说明其用法。
★考核知识点:使用代词编写通用代码
附2.1.41:(考核知识点解释)
(1)This:用来表示当前对象或正在编写脚本的对象。如在一个命令按钮的Clicked事件中书写“This.Text =”欢迎光临!””,则按下按钮时该命令按钮上显示的文本会变为“欢迎光临”。
(2)Parent:代表当前控件所在的窗口。如在一个命令按钮的Clicked事件中书写“Close(Parent)”,则按下按钮时会将该命令按钮所在的窗口关闭。
(3)ParentWindow:代表与当前菜单相关联的窗口。如在某个菜单项的Clicked事件中书写“Close(ParentWindow)”,则单击该菜单项时会将与菜单关联的窗口关闭。
42.请简述游标的作用及使用过程。
★考核知识点:游标语句
附2.1.42:(考核知识点解释)
(1)游标的作用:当需要查找多条记录时,就需要使用游标进行操作
(2)游标的使用过程一般为:说明游标;打开游标;推进游标(读取数据);处理数据;关闭游标。
43.请简述动态SQL语句的作用。
★考核知识点:动态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 图书销售表
列名 描述
书号 图书的编号
书名 图书的名称
书类 图书的分类
库存 图书的库存量
售出 图书的售出量
单价 图书的单价
顾客号 顾客的编号
顾客名 顾客的姓名
顾客电话 顾客的联系电话
订购日期 顾客订购某本图书的日期
订购数量 顾客订购某本图书的数量
★考核知识点:关系模式的规范化
附2.2.1:(考核知识点解释)
(1)第一范式(1NF)
如果关系模式R(U)中每个属性都是不可分割的数据项,则称R属于第一范式,记作R∈1NF。
(2)第二范式(2NF)
设有R(U)∈1NF,且其每一个非主属性完全函数依赖于码,则称R(U) 满足2NF,记作R∈2NF。
要讨论R是否属于第二范式,不但要确定R的属性,还要确定R的所有函数依赖。此时一个关系模式R可由三元组确定,记为R(U,F),其中U为R的属性集,F为R的函数依赖。
例如,关系模式教学1((学号, 姓名, 系别, 系主任, 课程号, 成绩),(学号→姓名,学号→系别,学号→系主任,系别→系主任,(学号,课程号)→成绩))。
为了使教学1属于2NF,需要将其分解,以消除非主属性对码的部分依赖。可以将教学1分解成两个关系模式:
教学11(学号, 姓名, 系别, 系主任)
教学12(学号, 课程号, 成绩)
仍存在插入异常和删除异常。
(3)第三范式(3NF)
若关系模式R(U)∈2NF,且每个非主属性都不传递依赖于码则称R属于第三范式,记为R∈3NF。
关系模式教学11存在系主任对学号的传递依赖,所以不属于第三范式,将它分解为:
教学111(学号,姓名,系别)
教学112(系别,系主任)
消除了插入异常和删除异常。
(三)、SQL题
表1 供应商表S
主码 列标题 列名 数据类型 宽度 小数位数 是否空值
P 供应商代码 SNO Char 2 No
供应商姓名 SNAME Varchar 8 No
所在城市 CITY Varchar 8 No
表2 零件表J
主码 列标题 列名 数据类型 宽度 小数位数 是否空值
P 零件编码 JNO Char 2 No
零件名 JNAME Varchar 8 No
颜色 COLOR Varchar 4 Yes
重量 WEIGHT Int Yes
表3 工程表P
主码 列标题 列名 数据类型 宽度 小数位数 是否空值
P 工程代码 PNO Char 2 No
工程名 PNAME Varchar 8 No
所在城市 CITY Varchar 8 Yes
表4 供应情况表SPJ
主码 列标题 列名 数据类型 宽度 小数位数 是否空值
P 供应商代码 SNO Char 2 No
工程代码 PNO Char 2 No
零件代码 JNO Char 2 No
零件数量 QTY Int No
表1-表4是下列题目中用到的4个表,请根据题目要求写出对应的SQL语句。
(1)创建名为“供应信息”的数据库;
(2)将数据库的名称由“供应信息”改为“供应信息管理”;
(3)创建供应商表S;
(4)创建零件表J;
(5)创建工程表P;
(6)创建供应情况表SPJ,其中供应商代码、工程代码和零件代码分别为供应商表S、工程表P和零件表J的外码;
(7)为零件表J增加一列:
列标题 列名 数据类型 宽度 小数位数 是否空值
零件描述 JDESC Varchar 100 Yes
(8)从零件表中删除(7)中添加的JDESC列;
(9)为供应商表S中的CITY列建立一个名为“城市索引”的非聚集索引,并且记录按CITY列值的降序排列;
(10)删除供应商表S中建立的“城市索引”;
(11)根据表5-表8向4个表中插入记录(只需写出在每个表中插入第一条记录时所使用的SQL语句);
表5 供应商表S
SNO SNAME CITY
S1 东丰 天津
S2 光华 北京
S3 昌盛 北京
S4 隆泰胜 上海
S5 胜利 天津
表6 零件表J
JNO JNAME COLOR WEIGHT
J1 螺母 红 15
J2 螺栓 绿 18
J3 螺丝刀 蓝 12
J4 螺丝刀 红 12
J5 凸轮 蓝 45
J6 齿轮 红 28
表7 工程表P
PNO PNAME CITY
P1 二汽 长春
P2 电子厂 北京
P3 车床厂 天津
P4 半导体厂 沈阳
P5 三建 南京
P6 模具厂 唐山
P7 无线电厂 北京
表8 供应情况表SPJ
SNO PNO JNO QTY
S1 P1 J1 300
S1 P1 J3 150
S1 P1 J4 700
S1 P2 J1 200
S2 P3 J1 350
S2 P3 J2 200
S2 P3 J3 400
S2 P3 J5 500
S2 P5 J1 350
S2 P5 J2 100
S3 P1 J1 200
S3 P1 J2 600
S3 P3 J1 150
S3 P5 J4 300
S4 P4 J2 200
S4 P6 J3 100
S4 P6 J4 300
S4 P7 J3 400
S5 P3 J2 100
S5 P3 J4 500
S5 P6 J1 300
S5 P6 J5 500
(12)查询全体供应商的所有信息;
(13)查询全体供应商的姓名和所在城市;
(14)查询有供应商的城市;
(15)查询重量在30以上或颜色为“红”的零件名;
(16)查询重量不在15-30之间的零件信息;
(17)查询不在天津、也不在北京的供应商信息;
(18)查询工程名为某厂(即工程名的最后一个字是“厂”)的工程信息;
(19)查询零件代码JNO为“P3”的供应情况,并按照零件数量QTY的降序排列;
(20)查询给代码为“P1”的工程供应了零件的供应商名;
(21)查询供应商的总数;
(22)查询每个供应商供应零件的数量;
(23)查询每个供应商为每个工程供应零件的数量;
(24)查询给“北京”的工程供应“齿轮”零件的供应商名;
(25)如果供应情况表中某条记录的供应商和工程在同一城市,则显示该记录对应的供应商名和工程名;
(26)查询每个供应商供应每种零件的数量;
(27)查询在同一个城市的工程代码(可以以工程代码对的形式给出);
(28)查询供应零件数量在2000以上的供应商代码;
(29)查询与“胜利”在同一个城市的供应商信息;
(30)将代码“S5”的供应商为代码“P3”的工程提供的零件数量增加100;
(31)删除供应商代码为“S1”、零件代码为“J1”的供应记录;
(32)将供应商代码为“S3”的供应记录定义为一个名为“S3供应”的视图;
(33)将零件表J中所有列的查询和修改权限授予MANAGER用户,并允许该用户将该权限转授其他用户;
(34)将供应商表S中对SNO、SNAME列的查询权限和对SNAME列的修改权限授予EMPLOYEE用户,但不允许该用户将该权限转授其他用户;
(35)将授予EMPLOYEE用户对供应商表S中SNAME列的修改权限取消。
★考核知识点:关系数据库SQL语言