四级数据库知识点总结及历年全国计算机四级数据库工程师历年真题及答案

四级数据库知识点总结及历年全国计算机四级数据库工程师历年真题及答案
四级数据库知识点总结及历年全国计算机四级数据库工程师历年真题及答案

全国计算机四级数据库考试复习资料

一、数据模型

1.数据模型的三要素

(1)数据结构数据结构是所研究的对象类型(Object Type)的集合。这些对象和对象类型是数据库的组成成分。一般可分为两类:一类是与数据类型、内容和其它性质有关的对象;一类是与数据之间的联系有关的对象。前者如网状模型中的数据项和记录,关系模型中的域、属性和关系等。后者如网状模型中的关系模型(set type)。在数据库领域中,通常按照数据结构的类型来命名数据模型,进而对数据库管理系统进行分类。如层次结构、网状结构和关系结构的数据模型分别称作为层次模型、网状模型和关系模型。相应地,数据库分别称作为层次数据库、网状数据库和关系数据库。(2)数据操作数据操作是指对各种对象类型的实例(或值)所允许执行的操作的集合,包括操作及有关的操作规则。在数据库中,主要的操作有检索和更新(包括插入、删除、修改)两大类。数据模型定义了这些操作的定义、语法(即使用这些操作时所用的语言)。数据结构是对系统静态特性的描述,而数据操作是对系统动态特性的描述。两者既有联系,又有区别。(3)数据的约束条件数据的约束条件是完整性规则的集合。完整性规则是指在给定的数据模型中,数据及其联系所具有的制约条件和依存条件,用以限制符合数据模型的数据库的状态以及状态的变化,确保数据的正确性、有效性和一致性。

2.概念模型

数据模型是数据库系统的核心和基础。每个DBMS软件都是基于某种数据模型的。为了把现实世界中的具体事物或事物之间的联系表示成DBMS所支持的数据模型,人们首先必须将现实世界的事物及其之间的联系进行抽象,转换为信息世界的概念模型;然后将信息世界的概念模型转换为机器世界的数据模型。也就是说,首先把现实世界中的客观对象抽象成一种信息结构。这种信息结构并不依赖于具体的计算机系统和DBMS。然后,再把概念模型转换为某一计算机系统上某一DBMS所支持的数据模型。因此,概念模型是从现实世界到机器世界的一个

中间层次。现实世界的事物反映到人的大脑之中,然后人们开

始认识这些事物,经过选择、命名、分类和组织等抽象工作之

后形成概念模型,并进入到信息世界。

?用户(user)关心的是现实世界中的事物、事物的属性及其

相互关系。例如,用户可能关心他的顾客及其属性,如顾客地

址、银行帐号等等。用户也关心自己的定货帐目,如谁订的货、

订的什么和订多少等等。

?系统分析员(analyst)同样也关心现实世界,但是系统分

析员需要分析用户的信息需求。作为需求分析的结果,分析员

必须以文档的形式对需求进行结构化的描述;这个文档就是信

息模型。

?实体(Entity)实体是构成数据库的基本元素。实体是指一

个存在的东西以区别这个东西所具有的属性和这个东西与其

它东西的联系。实体可以是人,也可以是物;可以是实际对象,

也可以是概念;可以是事物本身,也可以是指事物之间的联系。

?属性(Attribute)一个实体可以由若干个属性来刻画。属

性是相对实体而言的,是实体所具有的特性。

?关键字(Key)能唯一地标识实体的属性的集合称为关键字

(或码)。

?域(Domain)属性的取值范围称作域。

?实体型(Entity Type)一类实体所具有的共同特征或属性

的集合称为实体型。一般用实体名及其属性来抽象地刻画一类

实体的实体型。

?实体集(Entity Set)同型实体的集合叫实体集。例如,学

生就是一个实体集。实体集的名即是实体型。对于学生和(学

号,姓名,年龄,系,年级)均是实体型,而学生是对实体型

(学号,姓名,年龄,系,年级)所起的名称,两者是指同一

客观对象。但本科生和研究生可以为相同实体型,而实体集不

同。

?联系(Relationship)现实世界的事物之间是有联系的。一

般存在两类联系:一是实体内部的组成实体的属性之间的联

系,二是实体之间的联系。在考虑实体内部的联系时,是把属

性看作为实体。一般来说,两个实体之间的联系可分为三种:

(1)一对一(1∶1)联系若对于实体集A中的每一个实体,

实体集B中至多有唯一的一个实体与之联系,反之亦然,则称

实体集A与实体集B具有一对一联系,记作1∶1。

(2)一对多(1∶n)联系若对于实体集A中的每个实体,实

体集B中有n个实体(n≥0)与之联系;反之,对于实体集B

中的每一个实体,实体集A中至多只有一个实体与之联系,则

称实体集A与实体集B有一对多联系,记为1∶n。相应地有多

对一(n∶1)联系多对一联系,从本质上说,是一对多联系

的逆转。其定义同一对多联系类似,不再赘述。

(3)多对多(m∶n)联系若对于实体集A中的每一个实体,

实体集B中有n个实体(n≥0)与之联系;反之,对于实体集B

中的每一个实体,实体集A中也有m个实体(m≥0)与之对应,

则称实体集A与实体集B具有多对多联系,记作m∶n。实质上,

多对多联系是任意一种联系。另外,同一实体集内的各个实体

间也可以有各种联系。概念模型的表示方法最常用的是实体一

联系方法(Entity-Relationship Approach),简称E-R方法。

该方法是由P.P.S.Chen在1976年提出的。E-R方法用E-R图

来描述某一组织的概念模型。在这里仅介绍E-R图的要点。在

E-R图中:

a)长方形框表示实体集,框内写上实体型的名称。

b)用椭圆框表示实体的属性,并用有向边把实体框及其属性

框连接起来。

c)用菱形框表示实体间的联系,框内写上联系名,用无向边

把菱形框及其有关的实体框连接起来,在旁边标明联系的种

类。如果联系也具有属性,则把属性框和菱形框也用无向边连

接上。

3.三种主要的数据模型

实际DBMS所支持的数据模型主要有三种:

?层次模型(Hierarchical Model)

?网状模型(Network Model)

1 / 63

?关系模型(Relational Model)其中,关系模型是当前DBMS 所支持的数据模型的主流。90年代运行的DBMS几乎都是基于关系模型的。层次模型和网状模型统称为非关系模型。非关系模型的结构可以和图论中的图相对应,比较直观,但在理论上不完备,实现效率较低,故此目前很少用。但是最近,层次模型在研究面向对象的DBMS中已得到重视。在关系模型中,数据在用户的观点中(或在用户视图中)的逻辑结构是一张二维表(Table)。

?关系(Relation),对应于平常讲的一张表。

?元组(Tuple),表中的一行。

?属性(Attribute),表中的一列称为一个属性,给每一列起一个名,称为属性名。这一列或这个属性所有可能取的值的集合称为这个属性的值域(Domain),值域中的一个元素叫做这个属性的值。

?主关键字(Primary Key Attribute或Primary Key),是指能唯一标识一个元组的一个或一组属性。

?分量(Attribute value),是指元组中的一个属性值。

?关系模式(Relational Schema),是对关系的描述,一般用关系名(属性名1,属性名2,…,属性名n)来表示。同层次模型和网状模型相比较,关系模型具有下列特点:

(1)概念单一在关系模型中,无论是实体还是实体之间的联系都用关系来表示。在关系模型中,在用户的观点中,数据的逻辑结构就是表,也只有这唯一的概念。在非关系模型中,用户要区分记录型与记录型之间的联系两个概念;当环境复杂时,数据结构异常复杂,难以掌握。而关系模型,由于概念单一,可以变复杂为直观、简单,易学易用。

(2)规范化所谓关系规范化是指在关系模型中,每一个关系都要满足一定的条件要求。这些条件被称为规范条件。对于关系,一个最基本的规范条件是,要求关系中的每一个属性(或分量)均是不可分的数据项;也就是说不允许表中有表,表是不可嵌套的。

(3)在关系模型中,用户对数据的操作的输入和输出都是表,也就是说,用户通过操作旧表而得到一张新表。总之,关系模

型概念简单,结构清晰,用户易学易用,有严格的以数学为基

础的关系理论作指导,便于DBMS的实现。基于关系的DBMS简

化了应用程序员的工作,便于数据库应用系统的设计和维护。

故此,关系模型自诞生以后就得到了迅速的发展,成为应用最

为广泛的、唯一的数据模型。

二、数据库系统的结构

1.数据库系统的三级模式结构

数据库管理系统的三级模式结构由外模式、模式和内模式组

成。外模式(external schema),或子模式(subschema)或

用户模式(user schema),是指数据库用户所看到的数据结构,

是用户看到的数据视图。模式(schema)或逻辑模式(logic

schema),是数据库中对全体数据的逻辑结构和特性的描述,

是所有用户所见到的数据视图的总和。外模式是模式的一部

分。内模式(internal schema),或存储模式(storage schema),

或物理模式(physical schema),是指数据在数据库系统内的

存储介质上的表示,即对数据的物理结构和存取方式的描述。

模式描述的是数据的全局的逻辑结构,决定了DBMS的功能。

外模式涉及的仅是局部的逻辑结构,是模式的子集,是对模式

的调用。数据库系统的三级模式是对数据进行三个层次抽象的

工具。通过三级模式,把对数据的具体组织留给DBMS来完成,

使得用户能在高层次上处理数据的逻辑结构,而不必关心数据

的物理结构。为了实现这三个层次这间的联系,DBMS在沟通三

级模式中提供了两个映象:外模式-模式映象模式-内模式映象

(1)模式模式规定了数据库中全部数据的一个逻辑表示或描

述形式。模式既不同于内模式,也不同于外模式。它比内模式

抽象,不涉及数据的物理结构和存储介质。它与具体的应用程

序或高级语言无关。

(2)外模式外模式是个别用户的数据视图,即与某一应用有

关的数据的逻辑表示。

(3)内模式内模式是全部数据库的内部表示或底层描述,是

用来定义数据的物理结构和存取方式的。

(4)二级映象对于同一个模式,可以有任意多个外模式。外

模式-模式的映象定义了某个外模式和模式之间的对应关系。

这些映象的定义通常包含在各自的外模式中。当模式改变时,

外模式-模式的映象要做相应的改变,以保证外模式的不变性。

这是数据库管理员(DBA)的责任。模式-内模式的映象定义了

数据逻辑结构和存储结构之间的对应关系。例如,字段的内部

表示等。当数据库的存储结构改变时,模式-内模式的映象也

须做相应的修改,以使得模式保持不变性。这仍是DBA的责任。

正是由于上述二级映象的功能及其自动实现,使得数据库系统

中的数据具有较高的逻辑独立性和物理独立性,从而大大地方

便了用户的使用。

(5)概念模式与模式ANSI研究组于1975年2月提出一个临

时报告。1978年提出一个最终报告,称之为ANˉSI/SPARC报

告,简称为SPARC报告。SPARC报告中指出,数据库管理系统

应具有三级模式的结构,即概念模式、外模式和内模式。其中

外模式和内模多与上面所讲的大致相当。但SPARC报告中的概

念模式是指一个组织或部门所对应的现实世界的真实模型,即

概念模型。概念模式仅描述实体及其属性和联系,不涉及机器

世界的概念。概念模型是信息世界范畴内的信息的结构,而模

式是机器世界范畴内的概念模型的逻辑表示。概念模型独立于

具体的计算机系统,甚至是和计算机无关的,是一个组织或部

门的模型。常用的描述概念模式的方法是E-R方法。模式是依

赖于具体的计算机及其DBMS的。模式通过三种具体模型:层次

模型、网状模型和关系模型来加以实现。概念模式必须转换成

具体的数据模型,然后才能在相应的DBMS上实现。概念模型

和模式都是描述信息或数据的整体结构的,然而它们是在不同

的抽象层次上加以描述的。概念模型离机器更远,形式化程度

低。从远离机器的观点看,概念模型更抽象些,但更接近现实

世界。而模式描述使用的是形式化的语言-模式DDL,而概念模

型描述使用的是E-R图和一些自然语言。

2.使用数据库的计算机系统结构

2 / 63

广义地讲,实际上使用数据库的计算机系统由下列几个部分组成的:

(1)硬件部分包括主机、外部存储设备、网络设备和电源等。(2)软件部分包括操作系统、DBMS、编译系统和应用开发工具软件等。

(3)人员包括数据库管理员(Data Base Administrator-DBA),系统分析员(System Anaˉlyst)、应用程序员(Application Programmer)和用户(User)。

3.数据库管理系统

数据库管理系统DBMS是数据库系统的核心。DBMS是负责数据库的建立、使用和维护的软件。DBMS建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过DBMS。另外,DBMS还承担着数据库的安全保护工作,按照DBA所规定的要求,保证数据库的完整性和安全性。DBMS的主要功能包括以下几个主要方面:

(1)数据库的定义功能 DBMS通过提供数据描述语言(也称数据定义语言)(Data Descripˉtive Language———DDL)来对外模式、模式和内模式加以描述。然后模式翻译程序把用DDL 写的各种模式的定义源码翻译成相应的内部表示,形成相应的目标形式,分别叫目标外模式、目标模式、目标内模式,这些目标模式是对数据库的描述,而不是数据本身。(目标)模式只刻画了数据库的形式或框架,而不包括数据库的内容。这些目标模式被保存在数据字典(或系统目标)之中,作为DBMS 存取和管理数据的基本依据。例如,DBMS根据这些模式定义,进行物理结构和逻辑结构的映象,进行逻辑结构和用户视图的映象,以导出用户要检索的数据的存取方式。

(2)数据操纵功能DBMS提供数据操纵语言(Data Manipulation Language———DML)实现对数据库中数据的一些基本操作,如:检索、插入、修改、删除和排序等等。DML有两类:一类是嵌入主语言的,如嵌入到C或COBOL等高级语言中。这类DML语言本身不能单独使用,故此称为宿主型的DML 或嵌入式DML。另一类是非嵌入式语言(包括交互式命令语言

和结构化语言),它的语法简单,可以独立使用,由单独的解

释或编译系统来执行,所以一般称为自主型或自含型的DML。

命令语言是行结构语言,单条执行。结构化语言是命令语言的

扩充或发展,增加了程序结构描述或过程控制功能,如循环、

分支等功能。命令语言一般逐条解释执行。结构化语言可以解

释执行,也可以编译执行。现在DBMS一般均提供命令语言的

交互式环境和结构环境两种运行方式,供用户选择。DBMS控制

和执行DML语句(或DML程序),完成对数据库的操作。对于

自主型的结构化的DML,DBMS通常采用解释执行的方法,但也

有编译执行的方法,而且编译执行的越来越多。另外,很多系

统同时设有解释和编译两种功能,由用户选其一。对于嵌入型

或缩主型DML,DBMS一种提供两种方法:

①预编译方法。

②修改和扩充主语言编译程序(亦称增强编译方法)。预编译

方法是,由DBMS提供一个预处理程序,对源程序进行语法扫

描,识别出DML语句,并把这些语句转换成主语言中的特殊调

用语句。主语言必须和DML有调用接口。这样在连接形成目标

时和主语言语句一起形成可执行的目标。

(3)数据库运行管理数据库运行期间的动态管理是DBMS的

核心部分,包括并发控制、存取控制(或安全性检查、完整性

约束条件的检查)、数据库内部的维护(如索引、数据字典的

自动维护等)、缓冲区大小的设置等等。所有的数据库操作都

是在这个控制部分的统一管理下,协同工作,以确保事务处理

的正常运行,保证数据库的正确性、安全性和有效性。

(4)数据库的建立和维护功能数据库的建立和维护包括初始

数据的装入、数据库的转储或后备功能、数据库恢复功能、数

据库的重组织功能和性能分析等功能,这些功能一般都由各自

对应的实用功能子程序来完成。DBMS随软件产品和版本不同而

有所差异。通常大型机上的DBMS功能最全,小型机上的DBMS

功能稍弱点,微机上的DBMS更弱些。但是,目前,由于硬件

性能和价格的改进,微机上的DBMS功能越来越全。

三、关系数据库的标准语言———SQL

1.SQL概述SQL的英语名称是结构查询语言(Structured Query

Language)

实际上它的功能包括查询(Query)、操纵(Manipulation)、

定义(Definition)和控制(Control)

四个方面,是一个综合的、通用的、功能极强的关系数据库语

言。SQL支持数据库的三级模式结构。

2.SQL的数据定义功能SQL的数据定义功能包括三部分:

定义基本表,定义视图和定义索引。它们是:CREATE TABLE

CREATE VIEW CREATE INDEX DROP TABLE DROP VIEW DROP INDEX

SQL的数据定义功能可用于定义和修改模式(如基本表),定义

外模式(如视图)和内模式(如索引)。

3.基本表的定义与删除

定义基本表的语句格式为:

CREATE TABLE表名(列名1 类型[NOT NULL]

[,列名2类型[NOT NULL]]…)

[其他参数];

其中,任选项“其它参数”是与物理存储有关的参数。根据具

体系统的不同而不同。删除基本表的语句为:DROP TABLE表名;

删除索引的语句为:DROP INDEX索引名;删除索引的同时把有关

索引的描述也从数据字典中删去。但表的内涵仍存在且其数据

外延内容不变。把一个基本表的定义连同表上所有的记录、索

引以及由此基本表导出的所有视图全部都删除,并释放相应的

存储空间。

4.索引的建立与删除

对一个基本表,可以根据应用环境的需要建立若干索引,以提

供多种存取方式。通常,索引的建立和删除由DBA或表的主人

(即建立表的人)负责。用户不必也不能在存取数据时选择索

引。存取路径的选择由系统自动进行。索引的描述存放在数据

字典中。建立索引的语句格式为:

CREATE[UNIQUE] INDEX索引名ON基本表名(列名[次序]

3 / 63

[,列名[次序]]…)[其他参数];这里的任选项———其他参数是与物理存储有关的参数。索引可以建在一列或几列上。圆括号内是索引列的顺序说明表。其中的任选项———次序,指定了索引值排序的次序。可取ASC(升序)或DESC(降序)。缺省值为升序。UNIQUE表示每一索引值只对应唯一的数据记录。

5.SQL的数据操纵功能

SQL的数据操纵功能包括SELECT,INSERT,DELETE和UPDATE 四个语句,即检索和更新(包括增、删、改)两部分工能。检索就是查询。

SQL更新语句SQL的更新语句

包括修改,删除和插入三类语句。

①修改(UPDATE)(亦称为更新)

修改语句的一般格式为:

UPDATE表名

SET字段=表达式[,字段=表达式]…

[WHERE谓词];

修改指定表中满足谓词(或条件)的元组,把这些元组按SET 子句中的表达式修改相应属性或字段上的值。

②删除(DELETE)

删除语句一般格式为:

DELETE FROM表名

[WHERE谓词];

从指定表中删除满足谓词的那些记录。没有WHERE子句时表示删去此表中的全部记录,但此表的定义仍在数据字典中,只是一个空表。DELETE只对表外延操作,不对内涵操作。

③插入(INSERT)插入语句的一般格式为:

INSERT INTO表名[(字段名[,字段名]…)]

valueS(常量[,常量]…);

INSERT

INTO表名[(字段名[,字段名]…)]子查询;第一种格式把一个新记录插入指定的表中。第二种格

式把子查询的结果插入表中。若表中有些字段在插入语句中没

有出现,则这些字段上的值取空值NULL。当然在表定义中说明

了NOT NULL的字段在插入时不能取NULL。若插入语句中没有

指出字段名,则新记录必须在每个字段上均有值。

6.视图

视图是从一个或几个基本表(或视图)导出的表。某一用户可

以定义若干视图。因此对某一用户而言,按ANSI/SPARC报告

的观点,他的外模式是由若干基本表和若干视图组成的。视图

和基本表不同,视图是一个虚表,即视图所对应的数据不实际

存储在数据库中,数据库中只存储视图的定义(存在数据字典

中)。视图一经定义就可以和基本表一样被查询、被删除

(DROP),也可以用来定义新的视图,但更新(增、删、改)

操作将有一定限制。视图可以理解成一个数据库,只有内涵保

存在数据库字典中,而无外延存储;其外延是在使用时动态地

生成的或计算出来的。

(1)视图的定义与删除

SQL建立视图的语句格式为:

CREATE VIEW视图名[(字段名[,字段名]…)]

AS子查询

[WITH CHECK OPTION谓词];

视图可以删除,语句格式为:

DROP VIEW视图名;

视图的定义就从数据字典中删除。由此视图导出的其它视图也

将自动被删除。若导出此视图的基本表删除了,则此视图也将

自动删除。

(2)视图的查询语句

视图定义后,用户可以如同基本表那样对视图查询。

(3)视图的更新语句对视图的更新最终要转换成对基本表的

更新(这里的更新,指INSERT,UPDATE和DELETE三类操作)。

在关系数据库中,并非所有的视图都是可更新的,也就是说,

有些视图的更新不能唯一地有意义地转换成对基本表的更新。

(4)视图的优点视图的概念具有很多优点,主要有:

a)视图对于数据库的重构造提供了一定程度的逻辑独立

性;

b)简化了用户观点;

c)视图机制使不同的用户能以不同的方式看待同一数据;

d)视图机制对机密数据提供了自动的安全保护功能。

7.SQL的数据控制功能

SQL数据控制功能是指控制用户对数据的存取权力。某个用户

对某类数据具有何种操作权力是由DBA决定的。这是个政策问

题而不是技术问题。数据库管理系统的功能是保证这些决定的

执行。为此它必须能:

(1)把授权的决定告知系统,这是由SQL的GRANT和REVOKE

语句来完成的。

(2)把授权的结果存入数据字典。

(3)当用户提出操作请求时,根据授权情况进行检查,以决

定是执行操作请求还是拒绝之。授权语句的一般格式为:

GRANT权力[,权力]…[ON对象类型对象名] TO用户[,

用户]…,

[WITH GRANT OPTION];

对不同类型的操作对象可有不同的操作权力。

(1)对基本表、视图及其字段的操作权力有查询、插入、更

新、删除以及它们的总和ALL PRIVILEGE。

(2)对基本表的操作权力还有修改(ALTER)和建立索引

(INDEX)。

(3)对数据库的操作权力有建立表(CREATETAB)。某用户有

了此权力就可以使用Create table建立基本表。称他为表的

主人,拥有对此表的一切操作权力。

(4)对表空间的权力有使用(USE)数据库空间存储基本表的

权力。

(5)系统权力有建立新数据库(CREATEDBA)的权力。GRANT

语句中的任选项WITH GRANT OPTION的作用是使获得某种权力

的用户可以把权力再授予别的用户。

4 / 63

8.嵌入式SQL

把SQL嵌入主语言使用时必须解决三个问题:

(1)区分SQL语句与主语言语句。这是通过在所有的SQL语句前加前缀EXEC SQL来解决的。SQL语句结束标志随主语言不同而不同,如PL/1用分号(;),COBOL用EMD-EXEC来表示。SQL语句首先由预编译程序加以处理,转换为主语言编译程序能够识别的形式,然后交主语言编译程序进一步处理。

(2)数据库工作单元和程序工作单元之间的通信。SQL语句中可以使用主语言的程序变量(简称主变量),这些变量名前加冒号作标志,以区别地字段名,程序中使用的任何表(基本表或视图)都要用EXEC SQL DECLARE语句加以说明。一则使程序更加清晰,二则使预编译程序能作某些语法检查。SQL语句执行后,系统要反馈给应用程序若干信息,这些信息送到SQL 的通信区SQL CA。SQL CA用语句EXEC SQL INCLUDE加以定义。在SQL CA中有一个状态指示字段SQL CODE。当SQL CODE为零时,表示SQL语句执行成功,否则返回一个错误代码(负值)或警告信息(正值)。程序员应该在每个SQL语句之后测试SQL CODE的值,以便处理各种情况。

(3)一个SQL语句原则上可产生或处理一组记录,而主语言一次只能处理一个记录,为此必须协调两种处理方式。这是用游标(Cursor)来解决的。下面首先讨论不需要游标的DML语句,然后讨论使用游标的DML语句。

9.不用游标的DML语句

不需要游标的DML语句有:查询结果为单记录的SELECT语句UPDATE(除了CURRENT形式的UPDATE)语句DELETE(除了CURRENT形式的DELETE)语句INSERT语句

(1)查询结果为单记录的SELECT语句这类语句的一般格式是:(主语言为PL/1)EXEC SQL SELECT目标列INTO主变量[空值标志]FROM基本表(或视图)[WHERE条件表达式];SELECT 语句从数据库中找到符合条件的记录,把结果放到主变量中。(2)UPDATE语句

(3)DELETE语句(4)INSERT语句

10.使用游标的DML语句

一般情况下SELECT语句的查询结果是记录的集合而不是单个

记录,为此需要用游标机制作为桥梁,把集合操作转换为单记

录处理。与游标有关的语句有四个:

(1)定义游标。游标是与某一查询结果相联系的符号名。用

DECLARE语句定义。这是一个说明语句。与游标相对应的SELECT

语句这时并不执行。

(2)打开(OPEN)游标。打开游标语句使游标处于活动状态。

与游标相应的查询语句被执行。游标指向查询结果集中的第一

个记录之前。

(3)推进(FETCH)游标。把游标向前推进一个记录,并把游

标指向的当前记录中的字段值取出,放到INTO子句后相应的

主变量中。FETCH语句常常用于循环,以借助主语言功能逐一

处理结果集中的数据。

(4)关闭(CLOSE)游标。关闭游标,使它不再和原来的查询

结果相联系。关闭了的游标可以再次被打开,与新的查询结果

集相联系。使用CURRENT形式的UPDATE和删除语句应注意:

(1)若游标定义中的SELECT语句带有UNION或ORDER BY子

句,或者这个SELECT语句相当于定义了一个不可更新的视图,

则不能用这两个更新语句。

(2)若使用CURRENT形式的UPDATE语句,则游标定义中要包

括FOR UPDATE子句,指出更新的字段(SET子句中使用的字段)。

因此,游标定义语句的一般格式为:EXEC SQL DECLARE游标名

CURSOR FOR子查询UNION子查询…[FOR UPDATE OF字段名[,

字段名]…|ORDER-BY-子句];

11.SQL的事务处理功能

(1)事务处理的概述所谓事务(Transaction)是指一系列动

作的组合,这些动作被当作一个整体来处理。这些动作或者相

继都被执行,或者什么也不做。在数据库中,一个动作是指一

个SQL语句。事务是一组SQL语句组成的一个逻辑单位。要么

这些SQL语句全部被按顺序正确执行,要么在某SQL语句执行

失败时,按照用户要求,取消已执行的SQL语句对数据库中数

据的修改。或者要么事务中SQL语句都被正确执行,完成该事

务对数据库中数据的所有操作;或者要么相当于一条SQL语句

也未执行,数据库数据未做任何改动。

(2)SQL语言的事务处理语句SQL语言有3条语句用于事务处

理,它们是:

(1)Commit语句,对于正确执行了的事务进行提交,进行提

交即对数据库中数据的修改永久化。同时还释放事务和封锁,

标志该事务结束。

(2)Save point语句,定义事务中的一个回滚保留点,它是

事务恢复时的一个标记点。

(3)rollback语句,无论事务执行的当前位置在哪里,该语

句的执行要么取消事务执行以来对数据库的全部修改,要么取

消至某个指定回滚点后对数据库的全部修改。释放自保留点之

后的全部表或行的封锁(没有保留点,相当于回滚到事务开始

处,终止该事务)。事务的恢复(回滚)是根据事务执行前保

存下的当时数据库状态来实现的。一遇到rollback语句,就

将数据库中数据恢复到原来的状态,相当于撤消事务中已执行

了的SQL语句。

四、数据库的存储结构

数据库的存储结构不同于一般文件系统的存储结构。数据库数

据的特点是各种记录型之间彼此有联系,数据是结构化的。数

据的存储结构不仅涉及每种记录型的记录如何存储,而且要使

数据的存储反映各种记录型之间的联系。在DB多级模式中引

入内模式(存储模式)的主要目的是使模式的数据结构的描述

同它的存储表示的描述分开,以致DBA为了协调数据库性能而

对数据库数据的存储方法进行修改时,可不必修改模式,以提

高数据库的物理独立性。在各个数据库管理系统中,对内模式

的定义功能各不相同。在关系数据库管理系统中有些DDL语句

可影响数据库的存储结构。在DBMS中各级模式的存储结构是

恒定的或唯一的,而数据库内容(或其记录)的存储方式是不

5 / 63

唯一的。数据库存储结构设计的好坏直接影响系统的性能。在存储结构中主要是涉及存储记录的设计。存储记录与概念记录之间具有对应关系,如果存储记录与概念记录之间具有一一对应关系,在这种情况下存储记录的设计就比较简单,不需要进一步讨论。概念记录是指在逻辑结构中的记录。但当一个概念记录对应多个不同类型的存储记录时,存在如何设计存储记录的问题。对于这样的概念记录,其存储记录可以有以下几种设计:

1.顺序组织

将存储记录设计成与概念记录一一对应,按SNO大小(或按记录到来)的顺序将记录组成一个顺序组织的文件。这样组织的优点是结构简单,缺点是会浪费存储空间。

2.顺序带链的组织

顺序带链组织允许记录中带有指针(Pointer),这样可以大大节省存储空间。

3.带次关键字索引的顺序组织

为了适应对多项内容的检索,可以建立索引文件,上述组织可改为带次关键字索引的顺序组织。

4.多表组织

在次关键字索引中,由于一个次关键字值对应于多个记录值,它们的个数是不固定的,所以对应的指针数目是可变的。这种可变性给管理带来困难,为了解决这个困难,引入了多表组织。多表组织的实现思想比较简单,在索引中多个指针分散存放在每个记录值中,索引项中的指针指向第一个记录,在第一个记录中的指针指向第二个记录等等。

5.完全倒排组织在一个记录型中,对主关键字以外的数据项都建立索引,这样的组织称之为完全倒排组织。

6.Hash定址组织对于每一个存储记录值存放在数据库的什么地方,可通过对该记录的主关键字值的杂凑函数计算得出。这种组织为Hash定址组织。杂凑函数种类很多,如质数除余法、基数转换法、平方取中法、折叠法、位移法及各位数字分析法等等。关键是如何选择一个杂凑函数,尽可能避免发生碰撞。对于不同的主关键字值通过计算而得到同一个地址的映象,称

之为碰撞。

7.联系的存储

在关系数据库中,通过外来关键字(Foreign Key)来表示概

念记录之间的联系。例如,为了表达学生和学校的联系,可以

在学生记录中增加外来关键字“学校号”来表示联系。

五、关系数据库

1.表格

表格(或简称表)表示了用户的特定类型(Type)的一些实体。

表头由一些属性名(Attribute Name)组成,每个属性名对应

于一列。在表上属性名必须唯一,不允许重名。表体是由一些

行或元组(tuple)、或记录(record)组成。一个元组对应于

传统的文件结构中的一个记录,一个记录含有若干个域

(field)用以存储属性值(Attribute value)。一个元组对

应于一个“用户”实体的出现(occurrence)。表体中每一行

和某一列的交叉点(相当于记录中的域)上保存一个属性值。

这个属性值叫做这一行(或这个实体出现)的相应属性值。表

体中每一列可以保存的值对应于某种属性类型(Type of

Attribute),也就是说,这一列的属性值只能取这个属性类型

的值。某个属性所能取的所有值的集合叫做这个属性的值域

(Domain of Attribute)。类型和值域的对应关系是一对多的。

一个类型有一个值域,但一个值域可以作为多个类型,基名称

不同,但实质上值域一样。实际上,类型是对值域的命名。能

唯一标识一个元组的属性称之为关键属性(Primary Key

Attribute)或简称为主关键字(Primary Key)。主关键字有

时是由多个属性组成的,此时的主关键字叫做组合关键字

(Conˉcatenated primary Key)。有的时候,表中必须由一

些组合的主关键字才能唯一地标识一个元组,也就是说,不存

在能作关键字的一个属性。这时为了方便,往往引入一个附加

的属性并称之为外来关键字(Foreigh Key)来作主关键字。

外来关键字为以后检索和查询带来了方便,但也增加了信息冗

余。

2.表名、表头和表体

表名、表头和表体在关系模型中具有不同的作用或功能,因而

也具有完全不同的性质。表头是一个属性的集合,它规定了表

的结构。表体是一个特殊的集体,称作为关系(relation)。“关

系模型”中的“关系”一词就是指表体中的这个数学关系。在

关系数据库中,表名对应于数据库名(或关系名),表头对应

于数据描述(或结构描述),表体对应于数据库。表体是数据

库的内容及数据库操作的对象。另外,有两个概念必须加以强

调:型(type)和值或出现(occurence)。表头定义了实体(或

元组)的型,也就是说规定了实体(或元组)的值域。而表体

则给出了实体(或元组)的出现。出现是型中的一个值。

3.关系的数学定义

关系模型是建立在集合论(Set Theory)的基础之上的。现在,

开始用集合论的术语来严格地定义数学上的关系,即给出关系

的数学定义。定义1 域(Domain)是值(value)的集合。

4.关系模型

关系模型由三部分组成:数据结构(即关系)、关系操作、关系

的完整性。下面将对这三个部分进行分别的讨论。(1)单一的

数据结构———关系在关系模型中,无论是实体还是实体之

间的联系均由单一的类型结构—关系来表示。在前面,已给出

了关系和域的数学定义,介绍了n元关系、元组和属性等概念。

下面介绍关键字、关系模式和关系数据库等一些基本概念。关

键字关系中的某一组属性,若其值可以唯一地标识一个元组,

则称该属性组为一个候选关键字(Candidate Key)。若一个关

系有多个候选关键字,则可以任选其中一个作为主关键字

(Primary Key)。主关键字中的诸属性被称为主属性。关系模

式关系的描述称为关系模式。它包括:关系名、组成关系的诸

属性名、属性到域的映象、属性间的数据依赖关系等等。所以,

关系模式由关系名、诸属性名和属性到域的映象三个部分组

成,关系模式通常简记为R(A 1 ,A 2 ,…,A n ),其中R

是关系名,A 1 ,A 2 ,…,A n 为诸属性名。属性到域的映

象一般通过指定属性的类型和长度来说明。某个关系模式在某

6 / 63

一时刻所具有的状态是指关系的外延,即元组的集合。关系的外延内容有时简称为关系。但关系模式和关系的内容有时也统称为关系。读者可以从上下文中区别其确切的含义。形象地说,关系模式是关于表名和表头的描述,而关系的内容是表体。关系数据库在关系数据库中,要分清型和值两个基本概念。关系数据库的型是指数据库的结构描述,它包括关系数据库名、若干属性的定义,以及这些属性上的若干关系关系模式。亦称为数据库的内涵(Intension),数据库的值亦称为数据库的外延。在关系数据库中,内涵是比较稳定的,它规定了外延的取值范围。而外延却是随时间变化的。这和在一般的形式逻辑中外延和内涵一一对应有所区别。此处外延是指任意一个满足内涵的集合,而不一定恒指满足内涵的最大的一个集合。关系模式(即内涵)是稳定的;而关系的内容,即外延,却是随时间动态的变化而变化的。数据库的结构(即模式)是稳定的;而数据库中的数据内容却在不断地更新。

(2)关系操作关系模型规定了关系操作的功能和特点,但不对DBMS语言的语法做出具体的规定。关系数据库语言的主要特点(或优点)是其高度的非过程化(Non-procedureae)或者说明性(declarative)。关系数据库语言的语句是透明的。用户只须知道语句做什么,而不须知道怎么做的。Codd在其早期的文章中,引入了8种基本的操作:并(Union)交(Intersection)差(Difference)笛卡尔乘积(Cartesian Product)限制(Restrictions)投影(Projection)连接(Join)除(Division)这些操作都是对关系的内容或表体实施操作的,得到的结果仍为关系。注意,这些操作只是基本的操作,而不是不再可分的原始(Primitive)操作,例如,Join,Intersection和Division可以由其它五种操作合成。但是,把它们三个也作为基本操作使用起来很方便。另外,Codd并没说上述8种操作就是关系数据库只能有的8种操作。实际上,上述8种操作仅仅是作为最小的DML操作的基础部分,并且也还未考虑到DDL的需求。SQL支持的操作多于上述8种DML操作,而且SQL还支持DDL操作。关系操作的特点是集合操作,即操作的对象和结果都是集合。这种操作方式也称为一次一集

合(set-at-a-time)方式。而非关系模型的数据库的操作方

式则为一次一记录(record-at-a-time)方式。关系操作可以

用两种方式来表示:

①代数方式,即关系代数

②逻辑方式,即关系演算而关系演算又进一步分为元组关系演

算和域关系演算。已经证明,这些表示方式在功能上是相互等

价的。一般选其一即可。

(3)关系模型的三类完整性关系模型的三类完整性是:

①实体完整性(Entity Integrity)

②参照完整性(Referential Integrity)

③用户定义的完整性(User Defined Integrity)其中,实体

完整性和参照完整性是任何关系模型都必须满足的完整性约

束条件,应该由关系数据库DBMS自动支持。而用户定义的完

整性的支持是由DBMS提供完整性定义设施(或机制),可以随

DBMS商品软件不同而有所变化。实体完整性是指:若属性A是

基本关系R的主关键字的属性(即主属性),则属性A不能取

空值(NULL)。在关系数据库中有各种关系,如基本关系(常

称为基本表)、查询表、视图表等等。基本表是指实际存在的

表,它是实际存储数据的逻辑表示。查询表是指和查询结果相

对应的表。而视图表是由基本表或视图表导出的表,是虚表,

不对应实际存储的数据。实体完整性是针对基本关系的。空值

是指“不知道”或者“无意义的”或“不属于定义域”值。空

值以“NULL”表示。对于实体完整性作如下说明:

(1)一个基本关系通常对应于现实世界中的一个实体集。例

如学生关系对应于学生实体集。基本关系不是由其它关系生成

的关系。基本关系是本原(Primitive),是定义复杂关系的出

发点。

(2)现实世界中的实体是可区分的,即实体具有某种唯一性

的标识。

(3)在关系模型中由主关键字作为满足唯一性的标识。

(4)主关键字中属性不能取空值。因为若主关键字中某属性

取空值,则意味着某个实体不可标识;而这和(2)相矛盾。参

照完整性是指:若基本关系R中含有另一个基本关系S的主关

键字K S 所对应的属性组F(F称为R的外部关键字(external

keys)),则在关系R中的每个元组中的F上的值必须满足:

①或者取空值(即F中的每个属性的值均为空值);

②或等于S中某个元组的主关键字的值。基本关系R和S不一

定是不同的关系。外部关键字也称为外来关键字。例如,某数

据库中有职工关系EMP(职工号,姓名,部门号)和部门关系

DEPT(部门号,部门名称)为两个基本关系。关系EMP的主关

键字为“职工号”,DEPT的主关键字为“部门号”在EMP中,

“部门号”是EMP的外部关键字。故此,在EMP中的每个元组

中“部门号”的值只有两种可能性:

①取空值。这说明这个职工尚未分到某个部门;

②或取非空值。这时“部门号”的值必须是DEPT中某个元组

中的“部门号”的值。这说明一个职工不可能被分配到一个不

存在的部门。也就是说,被参照的关系DEPT中一定存在一个

元组,该元组的关键字的值等于EMP中某元组的外部关键字的

值。实体完整性和参照完整性是针对任何关系数据库系统的所

有数据库的一般性原则。用户定义的完整性针对某一具体的数

据库的约束条件。条件是由现实世界中的应用环境决定的。它

涉及到某一具体的应用中的数据所必须满足的语义要求。关型

模型的DBMS应提供定义和检验这类完整性条件的机制,以使

用统一的方法来自动地处理它们而不要求应用程序员来承担

这一功能。

5.关系数据库语言概述

关系数据库语言分三类:数据描述语言DDL,数据操纵语言DML

和数据控制语言DCL。其中,DDL负责数据库的描述,提供一

种数据描述机制,用来描述数据库的特征或数据的逻辑结构。

DML负责数据库的操作,提供一种处理数据库操作的机制。DCL

负责控制数据库的完整性和安全性,提供一种检验完整性和保

证安全的机制。DML是用户经常使用的语言,包括了DBMS的主

要功能。DML包括数据查询和数据的增、删、改等功能。其中

7 / 63

查询的表达方式是DML的主要部分。关系数据库的DML按照查

询方式可以分为两大类:

(1)用对关系的集合代数运算来表示查询的方式,称为关系代数(Relational Algebra)。

(2)用谓词演算来表达查询的方式,称为关系演算(Relational Calculus)。关系演算又可按谓词变元的基本对象是元组变量(tuple variable)还是域变量(domain variable)分为元组关系演算和域关系演算两种。关系代数和两种关系演算均是抽象的查询语言,这些抽象的查询语言和实际的DBMS软件产品中实现的具体的查询语言并不完全一样。但它们是DBMS中查询语言的理论基础。关系代数、元组关系演算和域关系演算这三种语言在表达能力上是彼此相互等价的,它们均可以作为评价实际DBMS软件产品中查询语言能力的标准。实际DBMS软件产品的查询语言,除了提供关系代数(或一种关系演算)之外,还提供了许多附加的功能,如库函数、算术运算等功能。SQL是介于关系代数,和关系演算之间的一种语言。SQL不仅具有丰富的查询功能,而且还具有数据库定义和数据库控制功能。SQL是集DDL、DML、DCL为一体的标准的关系数据库语言。SQL充分体现了关系数据库语言的优点。

6.关系代数

关系代数中的运算可以分为两类:

(1)传统的集合运算,如并、交、差、笛卡尔乘积等。这类运算是从关系的“水平方向(即按行)”来进行的。

(2)专门的关系运算,如选择、投影、连接、除。这类运算不仅涉及到行而且也涉及到列。

7.关系演算

关系演算是以数理逻辑中的谓词演算为基础的。用谓词演算作为关系数据库的语言并提出关系演算的是E.F.Codd。Codd首先定义了关系演算语言ALPHA。但ALPHA并没有在计算机上实现。但关系数据库管理系统INGRES所用的QUEL语言是参考ALPHA研制的,与ALPHA十分类似。六、关系数据库的规范化理论

函数依赖

定义1 设R(U)是属性集U上的关系模式。X,Y是U的子集。

若对于R(U)的任意一个可能的关系r,r中不可能存在两个

元组在X上的属性值相等,而在Y上的属性值不等,则称‘X

函数确定Y’或‘Y函数依赖于X’,记作X→Y。

函数依赖和别的数据依赖一样是语义范畴的概念。只能根据语

义来确定一个函数依赖。例如姓名→年龄这个函数依赖只有在

没有同名人的条件下成立。如果允许有相同名字,则年龄就不

再函数依赖于姓名了。设计者也可以对现实世界作强制的规

定。例如规定不允许同名人出现,因而使姓名→年龄函数依赖

成立。这样当插入某个元组时这个元组上的属性值必须满足规

定的函数依赖,若发现有同名人存在,则拒绝插入该元组。注

意,函数依赖不是指关系模式R的某个或某些关系满足的约束

条件,而是指R的一切关系均要满足的约束条件

七、数据库的安全与保护

1.安全性

数据库的安全性是指保护数据库以防止不合法的或非正常的

使用所造成的数据泄露、更改或破坏。安全性问题不是数据库

系统所独有的,计算机系统都有这个问题。只是在数据库系统

中大量数据集中存放,而且为许多用户直接共享,是十分重要

的信息资源。从而使安全性问题变得更为突出。系统安全保护

措施是否有效是数据库系统的主要性能指标之一。对于数据库

的安全保密方式可以有系统处理的和物理的两个方面。所谓物

理的是指,对于强力逼迫透露口令、在通信线路上窃听、以至

盗窃物理存储设备等行为。对此所采取的措施是将数据编为密

码,加强警卫以识别用户身份和保护存储设备等措施。在一般

计算机系统中,安全措施是一级一级层层设置的。

(1)用户标识和鉴定首先,系统提供一定的方式让用户标识

自己的名字或身份。系统进行核实,通过鉴定后才提供机器使

用权。常用的方法有:用一个用户名或者用户标识号来标明用

户身份。系统鉴别此用户是否是合法用户。若是,则可以进入

下一步的核实;若不是,则不能使用计算机。用户名的登录只

由系统管理员进行,一般用户不能实施用户名登录。口令

(Password),为了进一步核实用户,系统常常要求用户输入

口令。

(2)存取控制对于获得上机权的用户还要根据预先定义好的

用户权限进行存取控制,保证用户只能存取他有权存取的数

据。所谓用户权限是指不同的用户对于不同的数据对象允许执

行的操作权限。它由两部分组成,一是数据对象,二是操作类

型。数据对象有二类。一类是数据本身,如关系数据库中的表、

字段,非关系数据库中的记录、字段(亦称为数据项)。另一

类是外模式、模式、内模式。在关系系统中DBA可以把建立、

修改基本表的权力授予用户,用户获得此权力后可以建立基本

表、索引、视图。这说明关系系统中存取控制的数据对象不仅

有数据而且有模式、外模式、内模式等数据字典中的内容。对

于存取权限的定义称为授权(Authorization)。这些定义经过

编译后存储在数据字典中。每当用户发出存取数据库的操作请

求后,DBMS查找数据字典,根据用户权限进行合法权限检查

(Authorization Check)。若用户的操作请求超出了定义的权

限,系统拒绝执行此操作。授权编译程序和合法权限检查机制

一起组成了安全性子系统。衡量授权子系统精巧程度的另一个

尽度是否提供与数据值有关的授权。有的系统还允许存取谓词

中引用系统变量,如一天中的时刻,终端设备号。这样用户只

能在某台终端、某段时间内存取有关数据,这就是与时间和地

点有关的存取权限。另外,在操作系统中对文件、目标等的存

取还有一些安全保护措施。其中加密是一种防止数据内容被别

人引用或了解的切实可行的办法。加密有程序加密和硬件加密

卡两种形式。

2.完整性

数据库的完整性是指数据的正确性和相容性。DBMS必须提供一

种功能来保证数据库中数据的完整性。这种功能亦称为完整性

8 / 63

检查,即系统用一定的机制来检查数据库中的数据是否满足规定的条件。这种条件在数据库中称为完整性约束条件。数据的约束条件是语义的体现,这些完整性约束条件将作为模式的一部分存放数据字典中。数据的完整性和安全性是两个不同的概念。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(Garbage In Garbage Out)所造成的无效操作和错误结果。而后者是保护数据库防止恶意的破坏和非法的存取。当然,完整性和安全性是密切相关的。特别从系统实现的方法来看,往往是一种机制常常既可用于安全性保护亦可用于完整性保证。完整性约束条件可以分类如下:(1)值的约束和结构的约束前者指对数据的值的限制,后者指对数据之间联系的限制。关于对数据值的约束这类约束条件是指对数据取值类型、范围、精度等的规定。关于数据之间联系的约束数据库中同一关系的不同属性之间可以有一定的联系,从而也应满足一定的约束条件。同时,由于数据库中数据是结构化的,不同的关系之间也可以有联系,因而不同关系的属性之间也可满足一定的约束条件。

(2)静态约束和动态约束所谓静态约束是指对数据库每一确定状态的数据所应满足的约束条件。以上所讲的约束都属静态约束。动态约束是指数据库从一种状态转变为另一种状态时新、旧值之间所应满足的约束条件。

(3)立即执行约束和延迟执行约束立即执行约束是指在执行用户事务时,对事务中某一更新语句执行完后马上对此数据所应满足的约束条件进行完整性检查。延迟执行是指在整个事务执行结束后方对此约束条件进行完整性检查,结果正确方能提交。完整性的实现应包括两个方面,一是系统要提供定义完整性约束条件的功能,二是提供检查完整性约束条件的方法。对于数据值的那类完整性约束条件通常在模式中定义。例如在模式中定义属性名、类型、长度、码属性名并标明其值是唯一的、非空的等等。另外的那些约束条件就要用专门的方式加以定义。

3.并发控制数据库是一个共享资源,可以由多个用户使用。这些用户程序

可以一个一个地串行执行,也可以并行执行。在单CPU计算机

上,为了充分利用数据库资源,应该允许多个用户程序并行的

存取数据。这样就会产生多个用户程度并发地存取同一数据的

情况。若对并发操作不加控制就会存取和存储不正确的数据,

破坏数据库的完整性(这里也称为一致性)。在多CPU计算机

或多计算机网络环境下,并发控制尤为重要。

(1)事务的概念事务(Transaction)是并发控制的基本单

位。所谓事务是一个操作序列。这些操作作为一个序列形成一

个整体要么都做,要么都不做,是一个不可分割的工作单位。

事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK

操作结束。COMMIT即提交,提交事务中所有的操作,事务正常

结束。ROLLBACK即撤消已作的所有操作,滚回到事务开始时的

状态。这里的操作指对数据库的更新操作。滚回即相当于所有

操作均未执行。事务和程序是两个概念。一般地讲,一个程序

可包括多个事务,由于事务是并发控制的基本单位,所以下面

的讨论均以事务为对象。

(2)数据一致性级别的概念。所谓并发控制就是要用正确的

方式调度并发操作,避免造成数据的不一致性,使一个用户事

务的执行不受其它事务的干扰。

4.封锁

封锁(Locking)就是事务T可以向系统发出请求,对某个数

据对象(最常用的是记录)加锁。于是事务T对这个数据对象

就有一定的控制。例如,其它事务不能更新此数据直到T释放

(unlock)它的锁为止。确切的控制由封锁的类型决定。基本

的封锁类型有两种:排它锁(Exclu sive locks简记为X锁)

和共享锁(Share locks简记为S锁)。若事务T对数据R加上

X锁,则只允许T读取和修改R;其它一切事务对R的任何(包

括封锁)请求都不成功,直至T释放R上的X锁为止。这就保

证了其它事务不能再读取和修改R,直到T释放X锁。若事务

T对数据R加上S锁,则其它事务对R的X锁请求不能成功,

而对R的共享请求可以得到。这就保证了其它事务以读取R但

不能修改R,直至T释放S锁为止。

5.可串行性

定义当且仅当某组事务的一定交叉调度产生的结果和这些事

务的某一串行调度的结果相同,则这个交叉调度是可串行化

的。可串行性(Serializability)是并行事务正确性的准则。

这个准则规定,一给定的交叉调度,当且仅当它是可串行化的,

才认为是正确的。

6.两段锁协议

两段锁协议规定所有的事务应遵守下列规则:

(1)在对任何数据进行读、写操作之前,事务首先要获得对

该数据的封锁,而且:

(2)在释放一个封锁之后,事务不再获得任何其它锁。所谓

“两段”锁的含义是:事务分为两个阶段。第一阶段是获得封

锁,也称为扩展阶段。第二阶段是释放封锁,也称为收缩阶段。

定理若所有事务均遵守两段锁协议,则这些事务的所有交叉

调度都是可串行化的(证明略)。为了确保事务并行执行的正

确性,许多系统采用两段锁协议。同时系统设有死锁检测机制,

发现死锁后按一定的算法解除死锁。

7.恢复

尽管系统中采取了各种保护措施来保证数据库的安全性和完

整性不被破坏,保证并行事务的正确执行,但是计算机系统中

硬件的故障、软件的错误、操作员的失误以及故意的破坏仍是

不可避免的。这些故障轻则造成运行事务非正常地中断,影响

数据库中数据的正确性,重则破坏数据库,使数据库中全部或

部分数据丢失。因此数据库管理系统必须具有把数扰库从错误

状态恢复到某一已知的正确状态(亦称为完整状态或一致状

态)的功能,这就是数据库的恢复。恢复子系统是数据库管理

系统的一个重要组成部分,而且还相当庞大,常常占整个系统

代码的10%以上(如IMS,DB2)。故障恢复是否考虑周到和行

之有效,是数据库系统性能的一个重要指标。大型的数据库应

用对故障恢复的要求更加强烈。有时甚至采用双工制。

(1)故障的种类数据库系统中可能发生各种各样的故障,大

9 / 63

致可以分以下几类:①事务内部的故障;②系统范围内的故障;

③介质故障;④计算机病毒。

(2)转储和恢复转储是数据库恢复中经常采用的基本技术。所谓转储即DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据文本为后备副本或后援副本。当数据库遭到破坏后就可以利用后备副本把数据库恢复。这时,数据库只能恢复到转储时的状态,从那以后的所有更新事务必须重新运行才能恢复到现时的正常状态。转储是十分耗费时间和资源的,不能频繁进行。DBA应该根据数据库使用情况确定一个适当的转储周期。转储可分为静态转储和动态转储。静态转储是指转储期间不允许(或不存在)对数据库进行任何存取、修改活动。动态转储是指转储期间允许对数据库进行存取或修改。即转储和用户事务可以并发执行。静态转储简单,但转储必须等待用户事务结束才能进行。同样,新的事务必须等待转储结束才能执行。显然,这会降低数据库的可用性。动态转储可克服静态转储的缺点。但是,转储结束时后援副本上的数据并不能保证正确有效。例如,在转储期间的某时刻t 1 系统把数据A=100转储到了磁带上,而在时刻t 2 ,某一事务对A进行了修改使A=200转储结束,后援副本上的A已是过时的数据了。为此,必须把转储期间事务对数据库的修改活动登记下来,建立日志文件(log file)。这样,后援副本加上日志文件就能把数据库恢复到某一时刻的正确状态。转储还可以分为海量转储和增量转储。海量转储是指每次转储全部数据库。增量转储则指每次只转储上次转储后更新过的数据。如果数据库很大,事务处理又十分频繁,则增量转储方式是很有效的。(3)日志文件日志文件是用来记录对数据库每一次更新活动的文件。在动态转储方式中必须建立日志文件,后援副本和日志文件综合起来才能有效地恢复数据库。在静态转储方式中,也可以建立日志文件。当数据库毁坏后可重新装放后援副本把数据库恢复到转储结束时刻的正确状态,然后利用日志文件,把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤消处理。这样不必重新运行那些在转储前已完成的事务程序就可把数据库恢复到故障前某一时刻的正确状态。

八、数据库应用系统的设计

1.数据库应用系统的设计步骤

按规范设计的方法可将数据库设计分为以下六个阶段

(1)需求分析;

(2)概念结构设计;

(3)逻辑结构设计;

(4)数据库物理设计;

(5)数据库实施;

(6)数据库运行和维护。

2.需求分析

需求收集和分析是数据库应用系统设计的第一阶段。明确地把

它作为数据库应用系统设计的第一步是十分重要的。这一阶段

收集到的基础数据和一组数据流图(Data Flow Diaˉgram—

——DFD)是下一步设计概念结构的基础。概念结构对整个数

据库设计具有深刻影响。而要设计好概念结构,就必须在需求

分析阶段用系统的观点来考虑问题、收集和分析数据及其处

理。如何分析和表达用户需求呢?在众多的分析方法中,结构

化分析(Structured Analysis,简称SA方法)是一个简单实

用的方法。SA方法用自顶向下、逐层分解的方式分析系统。用

数据流图,数据字典描述系统。然后把一个处理功能的具体内

容分解为若干子功能,每个子功能继续分解,直到把系统的工

作过程表达清楚为止。在处理功能逐步分解的同时,它们所用

的数据也逐级分解。形成若干层次的数据流图。数据流图表达

了数据和处理过程的关系。处理过程的处理逻辑常常用判定表

或判定树来描述。数据字典(Data Dictionary,简称DD)则

是对系统中数据的详尽描述,是各类数据属性的清单。对数据

库应用系统设计来讲,数据字典是进行详细的数据收集和数据

分析所获得的主要结果。数据字典是各类数据描述的集合,它

通常包括以下5个部分:

(1)数据项,是数据最小单位。

(2)数据结构,是若干数据项有意义的集合。

(3)数据流,可以是数据项,也可以是数据结构。表示某一

处理过程的输入输出。

(4)数据存储,处理过程中存取的数据。常常是手工凭证、

手工文档或计算机文件。

(5)处理过程。

3.概念结构设计

如同软件工程中重视需求分析与规范说明的思想一样,数据库

设计中同样十分重视数据分析、抽象与概念结构的设计。概念

结构的设计,是整个数据库设计的关键之一。概念结构独立于

数据库逻辑结构,独立于支持数据库的DBMS,也独立于具体计

算机软件和硬件系统。归纳总结,其主要特点是:

(1)能充分地反映现实世界,包括实体和实体之间的联系,

能满足用户对数据处理的要求,是现实世界的一个真实的模

型,或接近真实的模型。

(2)易于理解,从而可以和不熟悉计算机的用户交换意见。

用户的积极参与是数据库应用系统设计成功与否的关键。

(3)易于更动。当现实世界改变时容易修改和扩充,特别是

软件、硬件环境变化时更应如此。

(4)易于向关系、网状或层次等各种数据模型转换。概念结

构是各种数据模型的共同基础,它比任意一种数据模型更独立

于机器,更抽象,从而更加稳定。描述概念结构的有力工具是

E-R模型。P.P.S.Chen把用E-R模型定义的概念结构称为组织

模式。设计概念结构的策略有3种:

(1)自顶向下首先定义全局概念结构的框架,然后逐步细化。

(2)自底向上首先定义各局部应用的概念结构,然后将它们

集成,得到全局概念结构。

(3)混合策略自顶向下和自底向上相结合的方法。用自顶向

下策略设计一个全局概念结构的框架,以它为骨架集成由自底

向上策略中设计的各局部概念结构。现介绍自底向上设计概念

结构的策略。按照这种策略,概念结构的设计可按下面步骤进

行。

10 / 63

(1)数据抽象与局部视图设计

E-R模型是对现实世界的一种抽象。一般地讲,所谓抽象是对实际的人、物、事和概念的人为处理。它抽取人们关心的共同特性,忽略非本质的细节,并把这些特性用各种抽象的概念精确地加以描述。这些概念组成了现实世界的一种模型表示。有3种抽象方法形成了抽象机制,来对数据进行组织:①分类(Classification)定义某一概念作为现实世界中一组对象的类型。这些对象具有某些共同的特性和行为。它抽象了对象值和型之间的“is a member of”的语义。在E-R模型中,实体型就是这种抽象。②聚集(Aggregation)定义某一类型的组成成分。它抽象了对象内部属性类型和整体与部分之间“is a part of”的语义。在E-R模型中若干属性的聚集组成了实体型,就是这种抽象。③概括(Generalization)定义类型之间的一种子集联系。它抽象了类型之间的“is a subset of”的语义。概括具有一个很重要的性质:继承性。子类继承超类上定义的所有抽象性质。当然,子类可以增加自己的某些特殊属性。概念结构设计的第一步就是利用上面介绍的抽象机制对需求分析阶段收集到的数据进行组织,形成实体、实体的属性,标识实体的码,确定实体之间的联系类型(1∶1,1∶n,n∶m),设计成部分E-R图。

(2)视图的集成视图集成就是把上一步得到的各个部分E-R 图综合成一个总体的E-R图。视图集成可以有两种方式:

①多个部分E-R图一次集成。

②逐步集成。用累加的方式一次集成两个部分E-R图。无论哪种方式,每次集成可分两步走。第一步是合并,解决各部分E-R 图之间的冲突问题,生成初步E-R图。第二步是修改和重构,消除不必要的冗余,生成基本E-R图。

4.逻辑结构设计

逻辑结构设计的任务就是把概念结构转换为选用的DBMS所支持的数据模型的过程。设计逻辑结构按理应选择对某个概念结构最好的数据模型,然后对支持这种数据模型的各种DBMS进行比较,选出最合适的DBMS。但实际情况常常是已给定了某台机器,设计人员没有选择DBMS的余地。现行的DBMS一般只支

持关系、网状或层次三种模型中的某一种,对某一种数据模型,

各个机器系统又有许多不同的限制,提供不同的环境与工具。

因而我们把设计过程分三步进行。首先把概念结构向一般的关

系模型转换,然后向特定的DBMS支持下的数据模型转换,最

后进行模型的优化。

(1)E-R图向关系数据模型的转换下面给出把E-R图转换为关

系模型的转换规则。

①一个实体转换为一个关系模式。实体的属性就是关系的属

性,实体的码就是关系的码。

②一个联系转换为一个关系模式,与该联系相连的各实体的码

以及联系的属性转换为关系的属性。该关系的码则有三种情况:

若联系为1∶1,则每个实体的码均是该关系的候选码。若联系

为1∶n,关系的码为n端实体的码。若联系为n∶m,则关系

的码为诸实体码的组合。具有相同码的关系模式可合并。形成

了一般的数据模型后,下一步就向特定的DBMS规定的模型转

换。设计人员必须熟知所用DBMS的功能及限制。这一步转换

是依赖于机器的,不能给出一个普遍的规则。转化后的模型必

须进行优化。对数据模型进行优化是指调整数据模型的结构,

以提高数据库应用系统的性能。性能有动态性能和静态性能两

种。静态性能分析容易实现。根据应用要求,选出合适的模型

是一项复杂的工作。

(2)规范化理论的应用规范化理论是数据库逻辑设计的指南

和工具,具体地讲可应用在下面几个具体的方面:第一,在数

据分析阶段用数据依赖的概念分析和表示各数据项之间的关

系。第二,在设计概念结构阶段,用规范化理论为工具消除初

步E-R图中冗余的联系。第三,由E-R图向数据模型转换过程

中用模式分解的概念和算法指导设计。现在,不管选用的DBMS

是支持哪种数据模型的,均先把概念结构向关系模型转换。然

后,充分运用规范化理论的成果优化关系数据库模式的设计。

5.数据库的物理设计

物理设计的内容主要包括:

(1)确定数据的存储结构从DBMS所提供的存储结构中选取

一种合适的加以实现。确定存储结构的主要因素是存取时间、

存储空间利用率和维护代价三个方面。设计者常常要对这些因

素进行权衡。一般的DBMS也总是具有一定灵活性供你选择。

例如,若引入某些冗余数据,则可能减少物理I/O次数提高检

索效率。相反节约存储空间检索代价就会增加。当然应该尽量

寻找优化方法,使这三方面的性能都较好。折衷有时是必须的。

(2)存取路径的选择和调整数据库必须支持多个用户的多种

应用,因而必须提供对数据库的多个存取入口,也就是对同一

数据存储要提供多条存取路径。物理设计的任务应确定建立哪

些存取路径。设计者应该进行定量的分析,根据计算结果确定

存取路径。

(3)确定数据存放位置首先按数据的应用情况划分为不同的

组,然后确定存放位置。一般的应把数据的易变部分和稳定部

分分开,把经常存取和不常存取的数据分开。经常存取或存取

时间要求高的记录应存放在高速存储器上,如硬盘。存取频率

小或存取时间要求低的放在低速存储器上,如软盘磁带。对于

同一数据文件也可根据情况进行水平划分或垂直划分。

(4)确定存储分配许多DBMS提供了存储分配的参数供设计

者物理优化处理用。例如溢出空间的大小和分布参数,块的长

度,块因子的大小,装填因子,缓冲区的大小和个数等等,它

们都要在物理设计中确定。这些参数的大小影响存取时间和存

储空间的分配。物理设计过程需要对时间、空间效率、维护代

价和各种用户要求进行权衡,其结果可以产生多种方案。在实

施数据库前对这些方案进行方案进行细致的评价,以选择一个

较优的方案是十分必要的。

6.数据库应用系统的实施和维护

对数据库的物理设计初步评价完成后就可建立数据库了。数据

库应用系统实施对应于软件工程的编码、调试阶段。设计人员

运用DBMS提供的数据定义语言将逻辑设计和物理设计的结果

严格地描述出来,成为DBMS可接受的源代码。经过调试产生

目标模式。然后组织数据入库。组织数据入库是数据库应用系

11 / 63

统实施阶段最主要的工作。

(1)数据库数据的载入和应用程序的开发由于数据库数据量一般都非常大,并且这些数据来源于一个组织的各个部门,分散在各种数据文件或原始凭证中。这些数据的结构和格式一般也不符合数据库的要求,还要进行转换。因此组织数据入库是一件耗费大量人力物力的工作。数据的转换和组织对于小系统可以用人工方法完成。但是,人工转换效率低、质量差。一般来说,应设计一个数据输入子系统让计算机完成这个工作。输入子系统的主要功能是:原始数据的输入、抽取、校验、分类、转换和综合,最终把数据组织成符合数据库结构的形式。然后把数据存入数据库中。数据的转换、分类和综合常常要经过多次才能完成,因而输入子系统的设计和实施亦是比较复杂的,要编写许多应用程序。输入子系统的设计不能等物理设计完成后才动手,应该和数据库设计工作并行开展。为了保证数据库数据正确无误,必须高度重视数据的检验工作。在输入子系统进行数据转换的过程中应该进行多次检验,每次检验的方法亦不要相同。对于重要数据的校验更应该反复多次,确认正确后方可入库。数据库应用系统中应用程序的设计应该和数据库模式设计并行。数据库应用系统的实施阶段的另一项工作便这是这些应用程序的编码、调试工作。有了装载实际数据的数据库和应用程序,就建立了数据库应用系统,可以试运行了。(2)数据库应用系统的试运行在完成上述工作之后,便可进入数据库的试运行阶段,或者称联合调试阶段。这阶段的主要工作是:

①实际运行应用程序,执行对数据库的各种操作,测试应用程序的功能。

②测量系统的性能指标,分析是否符合设计目标。虽然已在物理设计过程中进行了性能预测,但是仅仅估价了时间和空间指标,而且在性能估价的过程中作了许多简化和假设,忽略了许多次要因素,因而估价是粗糙的并可能失真。必须在试运行阶段进行实际测量和评价。有些参数的最佳值往往是经过运行调试后才找到的。如果实际结果不符合设计目标,则需返回物理设计阶段,调整物理结构,修改参数。有时,也许还需要返回

逻辑设计阶段,调整逻辑结构。最后还须指出两点。

第一,上面已看到组织数据入库是十分费事的,如果运行调试

后又要修改数据库设计则又要重新组织数据入库。因此应分批

分期输入数据,逐步完成运行评价。

第二,数据库的实施和调试不是一朝一夕能完成的,在此期间

软硬件的错误随时可能发生。加上数据库刚刚建立,工作人员

对系统还不熟悉,对其规律更缺乏深入了解,容易发生操作错

误。因此必须做好数据库的转储和恢复工作,这就要求设计人

员了解DBMS的这个功能,并根据调试方式和特点首先实施,

尽量减少对数据库的破坏并简化故障恢复。

(3)数据库应用系统的运行和维护数据库应用系统投入运行

标志着开发任务的基本完成和维护工作的开始,但并不意味着

设计过程结束。任何数据库应用系统只要它存在一天,它的设

计就得不断地进行评价、调整、修改,甚至完全改革。因此数

据库应用系统的维护不仅是维护其正常活动而且是设计工作

的继续和提高。维护阶段的主要工作是:

①数据库的安全性、完整性控制及系统的转储和恢复;

②性能的监督、分析和改进;

③数据库的重组织和重构造。下面简单介绍数据库的重组织和

重构造。数据库运行一段时间后,由于记录的不断增、删、改,

会使数据库的物理存储变坏。例如,逻辑上属于同一记录型或

同一关系的数据被分散到了不同的文件或文件的多个碎片上。

从而降低了数据库存储空间的利用率和数据的存取效率,数据

库的性能下降。这时,DBA就要进行数据库的重组织,DBMS一

般都提供重组织用的实用程序。在重组过程中,按原设计要求

重新安排记录的存储位置,调整数据区和溢出区,回收“垃圾”,

减少指针链等。数据库的重组织不改变原设计的数据逻辑结构

和物理结构。而数据库的重构造则不同。部分修改原数据库的

模式或内模式称为数据库的重构造。由于数据库应用环境的变

化,数据库重构的程度是有限的。只能作部分的修改和调整。

若应用变化太大,重构也无济于事了,则表明数据库应用系统

生命周期的结束,应该重新设计数据库应用系统。新的数据库

应用系统新的生命周期开始了。

九、数据库管理系统的设计与实现

1.DBMS的目标

(1)用户界面友好对一个实用DBMS来说,用户界面的质量

直接影响其生命力。DBMS的用户接口应面向应用,采用适合最

终用户的交互式、表格式、菜单式、窗口式等界面形式,以方

便使用和保持灵活性。一般地说,用户界面应具有可靠性、简

单性、灵活性和立即反馈等特性。

(2)功能完备 DBMS功能随系统的规模的大小而异。大型DBMS

功能齐全,小型DBMS功能弱一些。DBMS主要功能包括数据定

义、数据库数据存取、事务控制、数据库组织和存储管理、数

据库安全保护等等。我们在下面讨论这些功能的内容。

(3)效率高系统效率包括三个方面:一是计算机系统内部资

源的使用效率。能充分利用资源(包括存储空间、设备、CPU

等),并注意使各种资源负载均衡以提高整个系统的效率,二

是DBMS本身的运行效率。三是用户的生产率。这是指用户学

习、使用DBMS和在DBMS基础上开发的应用系统的效率。

2.DBMS的基本功能

(1)数据库定义对数据库的结构进行描述,包括外模式、模

式、内模式的定义;数据库完整性的定义;安全保密定义(如用

户口令、级别、存取权限);存取路径(如索引)的定义。这

些定义存储在数据字典(亦称为系统目录)中,是DBMS运行

的基本依据。为此,提供数据定义语言DDL。

(2)数据存取提供用户对数据的操纵功能,实现对数据库数

据的检索、插入、修改和删除。一个好的DBMS应该提供功能

强易学易用的数据操纵语言(DML)、方便的操作方式和较高的

数据存取效率。DML有两类:一类是宿主型语言,一类是自含型

语言。前者的语句不能独立使用而必须嵌入某种主语言,如C

语言、COBOL语言中使用。而后者可以独立使用,通常以供终

端用户交互使用和批处理方式两种形式使用。

12 / 63

(3)数据库运行管理这是指DBMS运行控制、管理功能。包括多用户环境下的并发控制、安全性检查和存取权限控制、完整性检查和执行、数据加密、运行日志的组织管理、事务的管理和自动恢复(保证事务的正确性),这些功能保证了数据库系统的正常运行。

(4)数据组织、存储和管理 DBMS要分门别类地组织、存储各类数据,包括数据字典(亦称系统目录)、用户数据、存取路径等等。要确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率,选择合适的存取方法确保较高存取(如随机查找、顺序查找、增、删、改)效率。

(5)数据库的建立和维护包括数据库的初始建立、数据的转换、数据库的转储和恢复、数据库的重组织和重构造以及有性能监测分析等功能。

(6)其它功能包括DBMS与网络中其它软件系统的通信功能;一个DBMS与另一个DBMS或文件系统的数据转换功能等。

3.DBMS与操作系统

通常DBMS是建立在操作系统环境之上的。根据具体操作系统的特点,DBMS可以用不同的方法利用操作系统的基本功能来实现DBMS。一般有下面3类方法:

(1)共享模块法

(2)分离进程法

(3)和操作系统融合

4.DBMS程序模块的组成

作为一个庞大的系统软件,DBMS由众多程序模块组成,它们分别实现DBMS复杂而繁多的功能。数据库定义方面有DDL翻译处理程序(包括外模式、模式、存储模式处理程序)、保密定义处理程序(如授权定义处理程序)、完整性约束定义处理程序等。这些程序接收相应的定义,进行语法、语义检查,把它们翻译为内部格式存储在数据字典中。DDL翻译程序还根据模式定义负责建立数据库的框架(即形式一个空库),等待装入数据。数据库操纵方面有DML处理程序、终端查询语言解释程序、数据存取程序、数据更新程序等。DML处理程序或终端

查询语言解释程序对用户数据操纵请求进行语法、语义检查、

由数据存取或更新程序完成对数据库的存取操作。数据库运行

管理方面有系统初启程序,负责初始化DBMS、建立DBMS的系

统缓冲区、系统工作区打开数据字典等等。还有安全性控制、

完整性检查、并发控制、事务管理、运行日志管理等程序模块,

在数据库运行过程中监视着对数据库的所有操作,控制管理数

据库资源,处理多用户的并发操作等。它们一方面保证用户事

务的正常运行,一方面保证数据库的安全性和完整性。数据库

组织、存储和管理方面有文件读写与维护程序、存取路径(如

索引)管理程序、缓冲区管理程序(包括缓冲区读、写、淘汰

等模块),这些程序负责维护数据库的数据和存取路径,提供

有效的存取的方法。数据库建立、维护和其它。有数据库初始

数据装入程序、转储程序、恢复程序、数据库重构造程序、数

据转换程序、通信程序等。DBMS的这些组成模块互相联系,互

相依赖,共同完成DBMS复杂的功能。这些模块之间的联系有

一定的层次关系。

5.DBMS的层次结构

和操作系统一样,可以也应该将DBMS划分成若干层次。许多

DBMS实际上就是分层实现的。最上层是应用层,位于DBMS核

心之处。它处理的对象包括各种各样的数据库应用,如用宿主

语言编写的应用程序、终端用户通过应用接口(如FORMS)发

出的事务请求等。该层是DBMS的最终用户和应用程序的界面

层。第二层是语言翻译处理层。它处理的对象是数据库语言,

如SQL。提供的数据接口是关系、视图,即元组的集合。其功

能是对数据库语言的各类语句进行语法分析、视图转换、授权

检查、完整性检查、查询优化等。通过对下层基本模块的调用,

生成可执行代码。这些代码的运行,即可完成数据库语句的功

能要求。第三层是数据存取层。该层处理的对象是单个元组。

它把上层的集合操作转化为单记录操作。执行扫描、排序、元

组的查找、插入、修改、删除、封锁等基本操作。完成数据记

录的存取、存取路径维护、并发控制、事务管理等工作。第四

层是数据存储层。该层处理的对象是数据页和系统缓冲区,执

行文件的逻辑打开、关闭、读页、写页、缓冲区读和写、页面

淘汰等操作,完成缓冲区管理、内外存交换、外存管理等功能。

操作系统是DBMS的基础,它处理的对象是数据文件的物理块。

执行物理文件的读写操作,保证DBMS对数据逻辑上的读写真

实地映射到物理文件上。操作系统提供的存取原语和基本的存

取方法通常作为和DBMS存储层的接口。

6.语言处理

语言翻译处理层的任务就是把用户在这两种方式下提交给

DBMS的数据库语句转换成对DBMS内层可执行的基本存取模块

的调用序列。数据库语言通常包括DDL,DML,DCL三部分语句。

DDL语句处理相对独立和简单。DML和DCL则较为复杂。具体

来说,对DDL语句,语言翻译处理层首先把它翻译成内部表示,

然后把它存储在系统的数据字典中。对DCL语句的定义部分,

如安全保密定义、存取权限定义、完整性约束条件定义等处理

与DDL相同。在RDBMS中数据字典通常采用和普通数据同样的

表示方式。数据字典包括关系定义表、属性表、视图表、视图

属性表、视图表达式表、用户表、存取权限表、……。

(1)解释方法一些数据库系统(如dBASEⅢ)对上述方法进行

了改进,通过尽量推迟聚束过程来赢得数据独立性。具体做法

是:直到执行前,数据库DML语句都以原始字符串的形式保存。

随着数据库系统的发展,这种方法已逐步为预编译技术所取

代。

(2)预编译方法已经看到,将聚束过程提前,固然可达到系

统的高效率,但失去了数据库的一个主要优点———数据独立

性;将聚束时间推迟,赢得了数据性,却增加了执行高效率的

代价。预编译方法就是为了克服它们的缺点,保持两者的优点

而提出的。其基本思想是,在用户提供了DML语句后,在运行

前对它进行翻译处理,保存产生好的执行代码,运行时加以执

行。但是,使用这种方法会遇到这样的问题:在聚束过程中进

行优化所依据的条件可能在运行前已不存在,或者数据结构被

修改,因而导致已作出的规划在执行时不再有效。例如,假设

13 / 63

在聚束过程中决定使用某一索引来加快存取速度,而在程序编译完成之后,运行之前,该索引被删除了。那么,运行时就会出现不可预测的现象。为了解决这类问题,采用了重编译方法。即当数据库中某些成分的改变而使一些程序的编译结果无效时,再对它们执行一次编译。重编译可在不同时刻进行。为了提高整个系统的效率,不应在数据库某一成分改变后就马上对受影响的那些源程序重编译,较好的方法是将受影响的编译结果置“无效”标志,在其被执行时才进行自动重编译。自动重编译技术使得编译方法既拥有了编译时进行束缚所带来的高效率,又具备了执行时束缚所带来的数据独立性。实践证明,预编译方法的效率比其它方法高两倍以上。

7.数据存取层

数据存取层介于语言处理层和数据存储之间。它向上提供单元组接口,即导航式的一次一个元组的存取操作。向下则以系统缓冲区的存储器接口作为实现基础。

(1)提供一次一个元组的查找、插入、删除、修改等基本操作。

(2)提供元组查找所循的存取路径以及对存取路径的维护操作。如对索引记录的查找、插入、删除、修改。

(3)对记录和存取路径的封锁、解锁操作。

(4)日志文件的登记和读取操作。

(5)辅助操作。如扫描、合并/排序,其操作对象有关系、有序表、索引等。为了完成上述功能,通常把存取层又划分为若干功能子系统加以实现。

8.缓冲区管理

数据存取层的下面是数据存储层(简称存储层)。存储层的主要功能是存储管理。包括缓冲区管理、内外存交换、外存管理等。其中缓冲管理是最主要的。存储层向存取层提供的接口是由定长页面组成的系统缓冲区。系统缓冲区的设立是出于两方面的原因:一是它把存储层以上各系统成分和实在的外存设备隔离。外存设备的变更不会影响其它系统成分,使DBMS具有设备独立性。二是提高存取效率。DBMS利用系统缓冲区滞留数据。当存取层需要读取数据时存储子系统首先到系统缓冲区中

查找。只有当缓冲区不存在该数据时才真正从外存读入该数据

所在的页面。当存取层写回一元组到数据库中时,存储子系统

并不把它立即写回外存,仅把该元组所在的缓冲区页面作一标

志,表示可以释放。只有当该用户事务结束或结束缓冲区已满

需要调入新页时才按一定的淘汰策略把缓冲区中已有释放标

志的页面写回外存。这样可以减少内外存交换的次数,提高存

取效率。系统缓冲区可由内存或虚存组成。由于内存空间紧张,

缓冲区的大小、缓冲区内存和虚存部分的比例要精心设计。针

对不同的应用和环境按一定的模型进行调整。既不能让缓冲区

占据太大内存空间,也不能因空间太小而频频缺页调页,造成

“抖动”,影响效率。缓冲区由控制信息和若干定长页面组成。

缓冲区管理模块向上层提供的操作是缓冲区的读(READBUF)、

写(WRITEBUF)。缓冲区内部的管理操作有:查找页、申请页、

淘汰页。缓冲区管理调用OS的操作有:读(READ)、写(WEITE)。

9.数据库的物理组织

数据库是大量数据的有结构的综合性的集合,如何将这样一个

庞大的数据集合以最优的形式组织起来存放在外存上是一个

非常重要的问题。所谓“优”应包括两方面:一是存储效率高,

节省存储空间;二是读取效率高,速度快、代价小。数据库实

现的基础是文件,对数据库的任何操作最终要转化为对文件的

操作。所以在数据库物理组织中,基本的问题是如何设计文件

组织或者利用操作系统提供的基本的文件组织方法。但是,在

数据库中表和文件不必具有一一对应关系。这和操作系统中不

一样。DBMS可以建立只能自己读写的文件,在其中存储多个表

的数据。数据系统是文件系统的发展。文件系统中每个文件存

储同质实体的数据,各文件是孤立的,没有体现实体之间的联

系。数据库系统中数据的物理组织必须体现实体之间的联系,

支持数据库的逻辑结构———各种数据模型。因此数据库中要

存储4个方面的数据:数据描述。即数据外模式、模式、内模

式。数据本身。数据之间的联系。存取路径。这4个方面的数

据内容都要采用一定的文件组织方式组织、存储起来。

(1)数据字典(DD)的组织有关数据的描述存储在数据库的

数据字典中。数据字典的特点是数据量比较小(与数据本身

比)、使用频繁,因为任何数据库操作都要参照数据字典的内

容。数据字典在网状、层次数据中常常用一个特殊的文件来组

织。所有关于数据的描述信息存放在一个文件中。

(2)数据及数据联系的组织关于数据自身的组织,DBMS可以

根据处理的要求自己设计文件结构,也可以从操作系统提供的

文件结构中选择合适的加以实现。目前,操作系统提供的常用

文件结构有:顺序文件、索引文件、索引顺序文件、HASH文件

(杂凑文件)和B树类文件等等。数据库中数据组织与数据之

间联系是紧密结合的。在数据的组织和存储中必须直接或间

接、显式或隐含地体现数据之间的联系,这是数据库物理组织

中主要考虑和设计的内容。关系数据库中实现了数据表示的单

一性。实体及实体之间的联系都用一种数据结构———“表”

来表示。在数据库的物理组织中,每一个表通常可以对应一种

文件结构。因此数据和数据之间的联系两者组织方式相同。

(3)存取路径的组织关系数据库中,存取路径和数据是分离

的,对用户是隐蔽的。存取路径可以动态建立、删除。存取路

径的物理组织通常采用B树类文件结构和HASH文件结构。在

一个关系上可以建立若干个索引。有的系统支持组合属性索

引,即在两个或两个以上的属性上建立索引。索引可以由用户

用CRETR INDEX语句建立,用DROP INDEX语句删除。在执行

查询时,DBMS查询优化模块也会根据优化策略自动地建立索

引,以提高查询效率。由此可见,关系数据库中存取路径的建

立是十分灵活的。

十、FoxPro 数据库管理系统介绍

1.FoxPro简介

FoxPro2.5是Microsoft公司1993年推出的产品。1993年1

月发布了FoxPro2.5for DOS和FoxPro2.5for windows两个版

本,成为目前微机上最快、使用最广泛的数据库管理系统。

FoxPro2.5的新特点:增强32位产品的特性;跨平台的开发;新

14 / 63

增或增强的命令与函数;新的生成器命令;新的系统内存变量。由于FoxPro for DOS与FoxPro for windows相互兼容。下面就只简单地介绍一下FoxProˉfor windows的一些功能。FoxPro for windows的常用工具集(菜单生成器,屏幕生成器,报表生成器)充分发挥Winˉdows的图形能力。这些能力包括图象显示、字模使用以及Windows元素与控制的应用,还可以用Bitmaps作为屏幕的背景。FoxPro的附属工具传递器(Transporter)支持FoxPro2.5for DOS和它的DOS环境下的姐妹产品之间的交叉平台上的开发。FoxPro for DOS程序在大多数情况下可以不必修改而直接在FoxPro for windows环境下运行。独特的Rushmore查询优化技术支持复杂的检索并大幅度提高了运行速度,图形环境并不影响FoxPro底层的速度。FoxPro加入了Windows的一些动态功能,如OLE(对象连接与嵌入)、DDE(动态数据交换)、DLL(动态链接库)和Windows 打印驱动程序等。FoxPro for windows包括字型字体控制、拖放式编辑和块功能。Windows的全范围的各种字模(Font)在FoxPro2.5中都是有效的,包括True Type字模,这些字模对所有的FoxPro的工具和程序语言都是支持的。FoxPro提供联机帮助文件。发行工具箱(Distribution kit)提供流水过程,提供安装和启动例程。FoxPro适用于多用户及网络环境。

2.FoxPro的基本原理

FoxPro数据库是表的集合,这些表协同工作,一起来完成某项任务。这里的表是一种列表,在该表中的每项叫做一个记录,而每个记录又由许多字段组成,字段是数据库的最小数据单位。在FoxPro中支持八种数据类型的字段。

(1)FoxPro的数据类型①字符型字段。②数字型字段。③日期型字段。④逻辑型字段。⑤备注字段。⑥通用字段。⑦图形类型字段。⑧浮点数值字段。

(2)工作区在FoxPro中,组成某个数据库的各种表可以打开在多达255个工作区中,可以用编号1到255引用工作区,也可按A~J和11~255引用工作区。在某一时刻每个工作区只能容纳一张表。在工作区中打开表后,工作区和表实际上成了同义语,可以通过表的别名(有时就是该表的名),来引用或

选择工作区。别名可在打开表时指定。通常选择一个工作区为

当前工作区,该工作区中打开的表,即为FoxPro操作的缺省

表。FoxPro的缺省操作都是针对该表的。

(3)View窗口该窗口是用来查看数据库,而且可以显示在各

个工作区打开的表的别名,也可通过Browse按钮查看这个表

的内容。此外,View窗口也允许用户输入数据,仔细观察表内

容,创建和修改单个的表;在主菜单中选Windows/View后即可

进入View窗口。Setup按钮可修改表的结构。Browse按钮可

浏览当前工作区(Workareas中以亮条标出)中的表内容。Open

按钮可在当前工作区中打开一已存在的表或创建一新表。

Close按钮则关闭当前工作区中的表。Relation按钮可使当前

工作区的表与其它表相关联。用户常常需要同时打开两个或更

多的表,按照某种特殊的顺序来显示表的内容。利用View文

件可以保存用户在各工作区打开的表的信息。用户想打开所有

这些表时只须打开用户存的View文件,再进入View窗口即可。

方法如下:保持View窗口活动,在各工作区内打开所需的表,

然后选择File/Save as…菜单选项,Save as菜单即会出现,

在Save View as栏中添入文件名,之后确认Save,即可产生

用户的View文件。

(4)表的互斥和共享打开的表要么互斥(Exclusive)使用,

要么共享(Shared)使用。如果互斥使用,那么在关闭该表之

前任何其他人都不得再重新打开该表。缺省状态下。FoxPro打

开的表是互斥使用的。要命名打开的表能共享使用,必须加载

DOS SHARE程序。工作在不需SHARE的网络上则不用加载。同

时要在Command窗口中敲入SET EXCLUSIVE OFF,那么后续打

开的所有表都能共享使用,已经打开的表依然互斥使用。在USE

命令后加入SHARED,使用户能够替换对指定文件的EXCLUSIVE

设置。也可从View窗口中打开表用于共享使用,这可以取消

File/open对话框中Exclusive复选框的标记而实现。某些

FoxPro命令需要互斥使用表,如DELETE TAG,INDEX ON…TAG,

INSERT [BLANK],MODIFY STRUCTURE,PACK,REINDEX,ZAP

等。在表被打开用于共享之后,必须处理记录争用的问题。但

目前读者还只需要知道在交互地增加和修改的据时,FoxPro为

用户处理大多数这种问题。注意:如果用户保证EXCLUSIVE已

关闭(SET OFF),但状态栏仍旧显示表是EXCLUˉSIVE的话,

那么或许SHARE程序没有加载,或许表是在EXCLUSIVE打开

(SET ON)状态时打开的,也可能所使用的表刚刚创建。用户

创建表打开时是互斥使用的,直到关闭该表;但下一次打开该

表时,可使表用于共享。

(5)Browse窗口Browse窗口是FoxPro功能最强、最富生机

的特征之一。在Browse窗口中不仅可以浏览表的内容,还可

以向表中增加记录、删除记录、修改字段等。进入Browse窗

口有多种方法,既可从主菜单中Database/Browse进入,也可

从View窗口中的Browse按钮进入,还可以在查询时进入。View

窗口在FoxPro中是最有用的窗口之一。用户应在进入FoxPro

后,就打开View窗口,这样会给用户带来许多方便。事实上,

FoxPro的所有表,都是以单独的文件存放在磁盘中的,数据库

实质上只是一个目录名而已。FoxPro对文件的保护比较弱,有

时拷贝表时,会丢失某些信息,以至于到另外一台机器上不能

打开,这时就应重新拷贝,把所有相关的文件,如FPT、IDX

等文件一并拷走。这样数据库才能在另外一台机器上安全地运

行。

3.使用FoxPro数据库

(1)建立数据库建立数据库要决定需存储在数据库中的信息

的结构,即数据库的结构。

(2)RQBE窗口尽管使用Browse可以浏览表,但毕竟只能做一

些简单的检索,为此FoxPro提供了RQBE(Relational Query By

Example)。RQBE是一种交互式工具,避免了写复杂检索程序的

麻烦,可以很方便地检索数据。RQBE的功能很强,RQBE是用

户和SQL SELECT命令间的接口,FoxˉPro支持SQL。另外,

RQBE可以把语句保存在.QPR文件中。

(3)报表的设计与制作使用RQBE可制作出报表,还可以利用

FoxPro功能强大的Report Writer来制作一张符合需要的报

15 / 63

表。

4.创建应用程序

(1)建立数据库编写数据库应用程序的第一步是确定该系统必须使用的数据库文件和索引。

(2)菜单生成器FoxPro为用户提供了很简洁的丰富的菜单编程命令,但这些繁杂的命令很容易令人厌烦。如果使用菜单生成器,将会使构造菜单系统变得容易许多。菜单生成器的启动有两种方式:

(1)通过在Command窗口键入Create menu[〈文件名〉],键入回车即可。

(2)通过系统菜单启动。

(3)屏幕生成器大多的应用程序都是围绕着用户界面屏幕来建立的。有些屏幕用来录入或编辑数据,有些屏幕用以显示信息,有些屏幕用于表的维护等等。FoxPro的屏幕生成器就是用来创建大多数上述屏幕的工具。在各类界面设计中,输入屏幕算是比较繁而且又很常用的界面屏幕了。

(4)项目管理器项目管理器主要有以下两个作用:

①维护项目使用的所有文件。

②建立应用程序项目管理器具有优秀编程工具的特点,它为用户做了许多工作,并且易于使用。可以通过选择File New Project、New或在命令窗口键入Creat project命令来创建一个新的项目。然后使用Add按钮开始创建该项目中的新文件或将已有的文件添加到该项目中。首先,将主文件添加到项目中。由此,项目管理器就可以沿着程序的执行步骤(即嵌入在文件中的函数和过程调用)来一步步跟踪,直到找到当前项目所需的所有文件为止。生成项目文件非常容易,在项目管理器窗口中按下Build按钮,选择Re-build project,Build Application 或Build Executable选项。另外,项目管理器能方便的发现和修改编译错误。应该指出,一个项目并不一定要生成应用程序;而一个完整的“应用程序”可以包含若干个项目和若干个生成类。因此,逻辑上的解决办法是将应用程序拆成许多的项目,这就是应用程序的分级设计方法。十一、ORACLE 数据库管理系统介绍

1.ORACLE的特点:

可移植性 ORACLE采用C语言开发而成,故产品与硬件和操作

系统具有很强的独立性。从大型机到微机上都可运行ORACLE

的产品。可在UNIX、DOS、Windows等操作系统上运行。可兼

容性由于采用了国际标准的数据查询语言SQL,与IBM的

SQL/DS、DB2等均兼容。并提供读取其它数据库文件的间接方

法。可联结性对于不同通信协议,不同机型及不同操作系统

组成的网络也可以运行ORAˉCLE数据库产品。

2.ORACLE的总体结构

(1)ORACLE的文件结构一个ORACLE数据库系统包括以下5

类文件:ORACLE RDBMS的代码文件。数据文件一个数据库可有

一个或多个数据文件,每个数据文件可以存有一个或多个表、

视图、索引等信息。日志文件须有两个或两个以上,用来记

录所有数据库的变化,用于数据库的恢复。控制文件可以有

备份,采用多个备份控制文件的是为了防止控制文件的损坏。

参数文件含有数据库例程起时所需的配置参数。

(2)ORACLE的内存结构一个ORACLE例程拥有一个系统全程

区(SGA)和一组程序全程区(PGA)。SGA(System Global Area)

包括数据库缓冲区,日志缓冲区及共享区域。PGA(Program

Global Area)是每一个Server进程有一个。一个Server进

程起动时,就为其分配一个PGA区,以存放数据及控制信息。

(3)ORACLE的进程结构ORACLE包括三类进程:

①用户进程用来执行用户应用程序的。

②服务进程处理与之相连的一组用户进程的请求。

③后台进程 ORACLE为每一个数据库例程创建一组后台进程,

它为所有的用户进程服务,其中包括:DBWR(Database Writer)

进程,负责把已修改的数据块从数据库缓冲区写到数据库中。

LGWR(Log Writer)进程,负责把日志从SGA中的缓冲区中写

到日志文件中。SMON(System Moniter)进程,该进程有规律

地扫描SAG进程信息,注销失败的数据库例程,回收不再使用

的内存空间。PMON(Process Moniter)进程,当一用户进程

异常结束时,该进程负责恢复未完成的事务,注销失败的用户

进程,释放用户进程占用的资源。ARCH(ARCHIVER)进程。每

当联机日志文件写满时,该进程将其拷贝到归档存储设备上。

另外还包括分布式DB中事务恢复进程RECO和对服务进程与用

户进程进行匹配的Dnnn进程等。

3.ORACLE的逻辑结构

构成ORACLE的数据库的逻辑结构包括:

1)表空间

(2)5种类型的段(segment)

①数据段;

②索引段;

③滚回(rollbock)段;

④临时段;

⑤自举(bootstrap)段。段的分配单位叫范围(Extent)表

空间(Tablespace)一个数据库划分成的若干逻辑部分称为

表空间。一个数据库可以有一个或多个表空间,初始的表空间

命名为SYSTEM,每一个逻辑表空间对应于一个或多个物理文

件。DBA使用表空间做以下工作:控制数据库对象,如表、索引

和临时段的空间分配。为数据库用户设置空间配额。利用个别

表空间的在线或离线,控制数据的可用性。后备或恢复数据。

通过分配空间,以改进性能。在每个数据库中都存在SYSTEM

表空间,它在建立数据库时自动建立。在该表空间中,包含数

据库的数据字典,其中存储全部数据库对象的名字和位置。

SYSTEM表空间总是在线的,像其它表空间一样,可以通过增加

新的数据库文件来扩大。一个表空间可包含许多表和索引。但

一个表和索引不能跨越表空间,可跨越组成表空间的文件。在

DB的打开的情况下,DBA利用ALTER TABLESP ACE语句,可以

实施表空间的在线或离线。SYSTEM表空间必须在线。表空间离

线有下列原因:一般为了使部分数据库不能使用,而允许正常

存取数据库其余部分。执行表空间离线备份。一个离线的表空

间,不能被应用用户读或编辑。可以增加数据文件扩大已有的

16 / 63

表空间,也可增加新的表空间使数据库容量增大,或分配空间给某个应用。使用ALFER TABLESPACE ADD FILE语句将另一个数据文件加入到已存在表空间中。使用CREATE TABLESPACE语句可建立一个新的表空间。段(segment)表空间中的全部数据存储在以段划分的数据库空间中。一个段是分配给数据库用于数据存储的范围的集合。数据可以是表、索引或RDBMS所需要的临时数据。段是表空间的下一个逻辑存储的级别。一个段不能跨越一个表空间,但可跨越表空间内的文件。一个数据库最多需要五种段类型:数据段一个包含一个表(或聚集)的全部数据,一个表(或聚集)总有一个单个数据段。索引段一个索引段包含对一个表(或聚集)建立的一个索引的全部索引数据。一个表可以有一个、多个或者没有索引段,取决于它所拥有的索引个数。一个聚集必须至少有一个索引段,即在聚集码上建立聚集索引。回滚段每个DB有一个或多个回滚段。一个回滚段是DB的一部分,它记录在某一情况下被撤消的动作。回滚段用于事务控制和恢复。临时段在处理查询时,ORACLE 需要临时工作空间,用于存储语句处理的中间结果,这个区称为临时段。自举段自举段在SYSTEM表空间中,在数据库建立时建立。它包括数据字典定义,在数据库打开时装入。

4.用户数据库对象

由用户建立的对象驻留在表空间中,含有真正的数据。数据库对象有表、视图、聚集、索引、伪列和序号生成器。

(1)聚集(Cluster)聚集是存储数据的一种可选择的方法。聚集包括存储在一起的一组表,它们共享公共列并经常一起使用。由于内容相关并且物理地存储在一起,存取时间得到改进,存储空间可以减少。聚集是一种优化措施。聚集对性能的改进,依赖于数据的分布和SQL操作的内容。特别是使用聚集对连接非常有利。可以明显地提高连接的速度。建立聚集命令的基本格式:SQL>CREATE CLUSTER〈聚集名〉(列定义[,…]);利用聚集建立表命令基本格式:SQL>CREATE TABLE〈新表名〉(列定义[,…]CLUSTER〈聚集名〉(聚集列);在聚集码上必须建立一个聚集索引,对于每一数据块上每个聚集码值有一索引项。这个索引必须在DML语句对聚集表操作前建立。建立索引

的语句是:CREATE INDEX索引名ON CLUSTER聚集名。

(2)序号生成器序号(SEQUENCE)生成器为表中的单列或多

列生成顺序号。利用序号可自动地生成唯一主码。使用SQL语

句定义序号,给出一些信息(如序号名、是升序或降序、每个

序号间的间隔和其它信息)。所有序号存储在数据字典表中。

所有序号定义存储在数据字典的SEQUENCE表中。用户可以通

过字典视图USER-SE-QUENCES、ALL-SEQUENCES和

DBA-SEQUENCES查询和存取。建立序号生成器的语句是:CREATE

SEQUENCE序号生成器名其它选项。一旦序号生成器S被定义。

可用S.Currval来引用S序号生成器的当前值。用S.nextval

产生下一个新的序号并加以引用。

(3)伪列伪列的行为像表的一列,但不真正存在于表中,在

查询时可引用伪列,但伪列不能插入、删除或修改。

5.数据字典

数据字典ORACLE RDBMS最重要的部分之一。数据字典含有一

组系统定义的表,只能读,是关于数据库的引用指南。它可提

供以下信息:ORACLE用户的用户名;每个用户被授予的权限和

角色;实体的名字和定义;完整性约束为数据库实体分配的空

间;通用的数据库结构;审计信息;触发子等的存储。数据字典

是以表和视图构成的,像其它数据库数据一样,可用SQL语言

查询数据字典。数据字典在DB建立时建立。每当DB进入操作,

数据字典就由ORACLE RDBMS负责修改。数据库建立时有两个

默认DBA用户:SYS、SYSTEM。SYS持有基本表中的数据。

下面列出的是一些常用的表或视图的名称。

(1)DTAB 描述了组或数据字典的所有表。

(2)TAB 用户建的所有基本表、视图和同义词。

(3)COL 用户创建基本表的所有列的信息。

(4)SYNONYMS 用户可存取的同义名词、专用名和公用名。

(5)CATALOG 用户可存取的表、视图、同义词、序列。

(6)CONSTRAINTS 用户可存取的约束。

(7)INDEXES 用户可存取的表和聚集的序列。

(8)OBJECTS 用户可存取的对象。

(9)TANLERS 用户可存取的表。

(10)USERS 查看当前全部用户。

(11)VIEWS 查看用户可存取的视图。

(12)SYSTABAUTH 用户对数据对象的使用权限。可以用

SQL>SELECT*FROM〈字典表名或视图名〉WHERE〈条件〉来读取

有关信息。可以用SQL>DESCRIBE〈表名〉来查看表的结构定义。

但是数据库字典的结构不可改。用DESCRIBE命令还可以查看

视图及过程的定义。

6.ORACLE的SQL、PL/SQL与SQL*PLUS

作为ORACLE数据库核心的SQL语言是ANSI和ISO的标准SQL

的扩充。用来存储、检索和维护数据库中的信息,并控制对数

据库的存取事务。由于RDBMS执行SQL语句时,是一次只执行

一条语句,它是非过程化的。这就使得单条的SQL语句使用方

便,功能强大。用户只需说明操作目的,不必关心具体操作的

实现方法。但在实际数据库应用开发中,往往要依据前一步对

数据库操作的结果或上一个事务提交的情况来确定下一步的

操作。故ORACLE推出了一种PL/SQL工具,它扩充了SQL语句,

使之具有可进行过程化编程的能力,如循环、分支功能。PL/SQL

可支持变量和常量的使用。

十二、分布式数据库

1.分布式数据库的分类

分布式数据库,是根据它的管理系统(Distributed

DBMS-DDBMS)进行分类的。对DDBMS可以从四个不同角度来分

类:

(1)从构成的方式,可分为同构型和异构型两类所谓同构型,

是指所有节点的局部DBMS都支持同一数据模式和数据语言。

为使每个节点都掌握彼此的数据情况,需要增加网络数据库管

理系统(NDBMS),各节点之间通过通信网络形成统一的整体。

同构型的DDBMS对于并发控制、冗余数据的一致性等问题容易

处理,但建库的代价比较大。所谓异构型系统,是指在分布环

17 / 63

境中各节点上的数据模型和数据语言都可能不同。异构比同构型系统实现起来要困难一些,为了在两个节点上的局部DBMS 之间进行信息交换,就要对数据模式和数据语言进行转换和映射工作。

(2)按控制方式,可以分为集中式与分布式所谓集中控制的DDBM指所有事务都由一台叫做中心计算机的节点进行管理。分布控制的DDBMS,是指每个节点都保持DDBMS的一个副本来监督和管理各节点及系统事务,它将网络目录作为用户数据库存放于局部DB之中。

(3)从数据分布的角度,DDBMS又可分为分割式、部分重复式和完全重复式所谓分割式,是指每个节点只存储DDB数据实体的部分子集,各节点的副本互不重叠。部分重复式,是指每个节点都存储DDB数据实体的任意子集。完全重复式,是指每个节点都存储整个DDB数据实体的副本。也有文献把完全重复式称为复制式。(4)从用户的角度,DDBM可分为总体型和多重型。

2.分布式数据库与单一数据库的比较

(1)集中控制在一个企业或单位范围内的信息资源上,对信息提供集中式控制的可能性,被认为是采用数据库技术的最大动力之一,因为集中式数据库是根据信息系统的演变和集中处理信息的需求开发出来的。

(2)数据独立性数据独立性也曾经被认为是采用数据库方法的主要动力之一。实际上,数据独立性意味着数据的实际结构对应用程序来讲是透明的,应用程序员只需要利用数据逻辑结构,即所谓概念模式来编写程序。数据独立性的主要优点是应用不受数据存储的物理结构变化的影响。在分布式数据库中,数据的独立性具有与传统的集中式数据同等的重要性,然而,一种崭新概念加进了数据独立性的一般概念之中,这就是分布式透明性。所谓分布式透明性,指的是在编写程序时就好象数据没有被分布一样。这样,无论把数据存储到甲地或乙地,或者把数据从一个节点移到另一个节点,都不会影响程序执行的正确性和有效性,但是,必须指出,执行速度或者效率却受到了影响。众所周知,通过具有不同形式的数据描述和它们之间的映射的多层体系结构,曾为传统的数据库提供了独立性,为

此目的,开发出了概念模式、存储模式和外部模式等概念。利

用类似的方法,我们可以通过采用新层次和新模式,在分布式

数据库中可获得分布式透明性。分布式透明性是分布式数据库

系统的主要目标之一。

(3)降低冗余在传统数据库系统中,尽可能地降低冗余度是

它的主要目标之一。这有两个原因:首先,通过只用一个正本,

可以自动地避免同一逻辑数据中几个副本之间的不一致性。其

次,用降低冗余度来节约存储空间。通过共享数据的方式,即

通过允许几个应用访问同一文件和记录可以达到降低冗余度

的目的。但是,在分布式数据库中,把数据的冗余看成是所需

要的特性。这有几个原因:首先,如果在需要冗余的所有节点

都复制数据,则可以增加应用的局部性。其次,可以增加分布

式数据库系统的有效性和可靠性。因为,如果复制数据,则一

个节点上的故障不会停止其它节点上应用的执行。在一般情况

下,为传统集中式环境所规定的克服冗余的原因,在分布式环

境中仍是有效的。因此,在分布式数据库中,对冗余度的评价

要选择一种折衷方案,不能一概而论。一般地说,复制数据项

的方便程度是随着应用所执行的检索访问与更新访问的比率

提高而增加。数据复制便利程度的提高,是因为具有一个项目

多个副本,检索可以在任一副本上进行,而更新却必须在所有

副本上一致地进行。

(4)有效访问复杂的访问结构,如辅助索引,文件间的链接

等,都是传统数据库所采用的重要技术,对这些结构的支持是

数据库管理系统DBMS极为重要的组成部分。提供复杂访问结

构的原因,是为了提高存取数据的效率。

(5)完整性、恢复和并发控制在数据库理论中,尽管完整性、

恢复和并发控制等所涉及的问题是不同的,但它们之间相互联

系还是很多的,一般来说,完整性、恢复和并发控制等问题的

解决,在很大程度上取决于所提供的事务的结构形式。

(6)保密性和安全性在传统数据库中,具有集中式控制的数

据库管理员能保证只执行那些授权的数据访问。但应当指出,

集中式数据库本身比过去处理单独文件的旧方法更难于实现

数据的保密性和安全性。在分布式数据库中,局部数据库管理

员面临的一些主要问题,与传统数据库管理员面临的问题一

样。但是,分布式数据库的两个独特方面值得一提:首先,在

具有极高度节点自主权的分布式数据库中,局部数据的拥有者

认为比较安全,因为他们能自主地实施自己的安全措施,以履

行集中式数据库管理员的职责。其次,安全性问题,一般是分

布式系统的固有问题,因分布式系统是通过通信网络来实现分

布式控制的,而通信网络本身就在保护数据的安全性和保密性

方面存在着弱点。通过网络偷看、乱改别人的数据难以完全避

免。

3.分布式数据库管理系统(DDBMS)

在目前分析DDBMS的性能时,应该把商品化系统和先进的研究

样机区分开来,但是可以预料,某些先进的研究样机中试验的

特性,可能会应用到将来的商品化系统中去的。本节简要叙述

分布式数据库管理系统的基本性能,并就用什么样的方法使得

分布式数据库这个新技术商品化的问题谈一点看法。从目前

看,世界上几各已经商品化的分布式系统是由集中式数据库管

理系统的销售厂商开发出来的。这些分布式数据库管理系统,

包括扩充集中式DBMS时所附加的部件。分布式功能的扩充是

通过装配在计算机网络中不同节点上的DBMS之间所提供的通

信和合作来实现的。在这种情况下建立分布式数据库通常所必

须的软件部分是:

(1)数据库管理部分(DB);

(2)数据通信部分(DC);

(3)数据字典(DD),它能用来表示有关网络中数据分布的信

息;

(4)分布式数据库部分(DDB)。

十三、分布式ORACLE 系统简介

1.分布式体系结构的ORACLE

1986年,ORACLE公司推出了它的分布式体系结构的ORACLE数

18 / 63

据库系统。该系统是由分布式数据库管理系统(ORACLE RDBMS)、支持多种操作系统和通信协议的分布式处理环境软件SQL*NET、以及与非ORACLE RDBMS联接的软件SQL*CONNECT这三部分组成的一个软件群。分布式ORACLE采用了典型的开放式体系结构,对环境的适应范围非常广泛,可适应多种通信协议、多种操作系统、多种硬件环境及多种DBMS和数据源。

2.网络ORACLE的连接过程

网络ORACLE的连接过程大致包括以下几步:

(1)确认网络结点是否安装了SQL*NET,如未安装,则需执行:*$SYS@ORACLE:https://www.360docs.net/doc/5515051092.html,≠进行安装,并且使用https://www.360docs.net/doc/5515051092.html, 重新链接。

(2)确认安装中选取的网络驱动器与操作系统环境下所配置的通信协议是否相符。(3)待(1)、(2)两项均确认后,则可在服务器(Server)结点上建立一个命令文件。这个命令文件主要完成以下工作:指定ORACLE系统标识码SID,从而确定将哪一个ORACLE RDBMS作为服务器。这是因为同机上可运行多个ORACLE RDBMS,指定方式为:$ASSIGN〈SID标识码〉ORACLE $SID指定ORACLE系统所在目录:$ASSIGN〈目录名〉SYS $ORACLE指定SQL*NET执行代码的逻辑名$ORASRV=SYS $ORACLE:ORASRV.EXE启动SQL*NET的执行代码$ORASRV DECNET-NSP:

(4)待完成以后,用户即可进行远程访问。(注意两个结点上的ORACLE系统应处于开启状态)

(5)为了加强网络通信管理和避免冲突等原因,可以通过VAX/VMS网络控制程序NCP建立一和于ORACLE网络通信的缺省帐号。

3.网络ORACLE的使用

除了以下实用程序以外,其它ORACLE实用程序和软件工具均可以通过SQL*NET访问远程结点的ORACLE系统IOR AJI仅供本地使用。另外,用户通过各种语言编写的应用程序也可以进行远程存取。用户远程存取的方式非常简单,仅需要在“用户名/口令”(ORACLE的合法用户)后面附上结点信息。4.分布式查询

分布式查询和数据传输,主要指用户在前端机上执行本地的进

程通过SQL语句或SQLplus命令查询或传输远程结点上的数

据。由于网络ORACLE系统的分布式查询功能很强,用户可以

同时查询多个结点上的数据库数据。传输数据功能用于两个结

点之间数据及定义的复制,下面将分别介绍。ORACLE系统分布

式查询的功能使得一个结点上的用户可以通过SQL查询语句访

问其它结点数据库的数据。并且用户还可以同时存取访问多个

结点(包括本地结点)的数据,从而使数据库的查询功能大大

增强。

(1)数据库链路(DATABASE LINK)为了使分布式查询操作更

加简单方便,ORACLE RDBMS为用户提供了一个新的数据定义方

式:数据库链路。用户可以通过数据库链路定义,在本地结点

和远程之间进行查询和连接。进行远程访问的用户需要明确:

远程数据库所在的结点;远程结点上的哪个数据库;远程数据

库的哪个用户。数据库链路即用于标识以上内容。用户通过SQL

的CREATE DATABASE LINK语句定义数据库链路。其格式

为:CREATE[PUBLIC]DATABASE LINK链路名CONNECT TO用户

名INENTIFIED BY口令USING‘驱动器前缀:结点名““操作系

统用户名口令”””::“““TASK=ORDN后缀.COM”””;如果用户事

先定义一个逻辑名:$ASSIGN结点名,“““操作系统用户名口

令”””::“““TASK=ORDN后缀.COM”””,逻辑名那么CREATE

DATABASE LINK就变得十分简洁:CREATE[PUBLIC]DATABASE

LINK链路名CONNECT TO用户名IDENTIFIED BY口令USING‘驱

动器前缀:逻辑名’;这里PUBLIC代表公用数据库链路,只有

DBA才能使用PUBLIC限定词。

(2)远程查询操作在数据库链路定义以后,远程查询就变得

非常简单和方便。用户访问查询数据库的表或视图时,只要在

表名或视图名后面附上数据库链路名即可通过SELECT语句进

行查询。其形式为:SELECT列表达式[,列表达式,…] FROM

表名@数据库链路名[,表名@数据库链路名,…][WHERE逻

辑表达式];

(3)定义同义名用户可以用同义名来简化一些繁琐的表名或

视图名。对于远程查询操作,用户也可以为远程数据库的表名

或视图名定义相应的同义名。

(4)连接操作在远程查询中,用户可以连接相同(或不同)

结点上数据库中的表。连接(JOIN)操作可以针对以下情况:

同一数据库中的两个表或多个表;同一结点不同数据库中的两

个表或多个表;不同结点上数据库中的两个表或多个表;

(5)查询远程数据库中其他用户的数据用户在通过数据库链

路进行远程查询时,可以访问其他用户的数据。数据库链路的

定义中指定一个远程用户名及口令,这个用户名被称为链路用

户名。上面所述的“其他用户”即指非链路用户。如果链路用

户具有访问其他某一用户,记为用户A的权限,那么,Client

用户就可以通过数据库链路查询服务器用户A中的数据。

(6)远程子查询前面介绍的是基于主查询的远程访问。事实

上,SQL语句中的子查询(Sub-query)也可以访问远程结点的

数据库数据。这种子查询称为远程子查询。可嵌入查询的语句

有:SELECT INSERT UPDATE CREATE TABLE CREATE VIEW

5.远程数据传输

目前网络ORACLE系统尚不能通过INSERT,UPDATE语句更新远

程结点的数据库数据。但是ORACLE提供结点之间传输数据库

数据的能力。SQL/plus的COPY命令将用于实现这一功能。用

户使用COPY命令可以进行从一个结点(称为源结点)到另一

结点(称为目标结点)之间的数据传输或复制。使用COPY命

令与数据库链路的定义类似,需要反映定结点名、数据库(即

命令文件和“用户名/口令”。其中源描述和目标描述分别用于

指示源结点目标结点上的结点名、数据库(即命令文件)和“用

户名/口令”,下面是COPY命令的基本形式:COPY[FROM源名]

[TO目标名]{APPEND|CREATE|INSERT|REPLACE}表名[(列

名[,列名…])] USING SELECT语句其中源名和目标名分别

用于指定源结点和目标结点上的结点名、数据库和“用户名/

口令”,如:用户名/口令@驱动器前缀:结点名“““用户名口

令”””::“““TASK=ORDN后缀.COM”””;如果事先分配了逻辑名,

19 / 63

则源描述和目标描述会变得更简洁一些。如果源结点为本地,则COPY命令可略去FROM子句。如果目标结点为本地,则可除去TO子句。COPY命令将传送数据到目标数据库指定表。具体传输的数据是子查询的结果。其中APPEND、CREATE、INSERT 和REPLACE限定词用于指定传输的方式:APPEND 将传输的数据加在指定表中。如果该表不存在,则先建表,再加入;INSERT 将传输的数据加在指定的表中。如果该表不存在,则先建表,再加入数据;CREATE 建立指定的表,并加入数据,如果该表存在,则出错;REPLACE 将传输数据替换原表中已有的数据。

十四、面向对象方法与面向对象数据库

1.面向对象技术的形成与发展

80年代以来,面向对象语言如雨后春笋搬出现,形成了面向对象语言的两大类:一类是纯面向对象的语言,如Smalltalk和Eiffel等;另一类是混合型面向对象语言,即在过程语言中增加面向对象的机制,如C++、Objective-C等等。现在,作为80年代最流行的C语言的扩充的面向对象C++,是目前应用最广泛的语言。C++编译产生的代码性能几乎与传统的C编译产生的代码性能相同。面向对象的Pascal和BASIC也已在DOS、Windows上OS/2中实现。现在,面向对象技术已成为一种广泛使用的成熟的技术和方法,有一系列成熟的商品软件工具支持OON。OON中涉及到下列一些基本概念:信息(Information)是指对事物的一种表示或描述。对象(Object)是一个由信息及其关于信息处理的描述组成的包。消息(Message)是对某种信息的处理的描述。类(Class)是对一个或几个相似对象的描述。实例(Instance)是被某一个特定的类所描述的一个对象。因此,每一个对象都是某个类的一个实例,而类是一些实例的全部相似特征的描述。方法(Method)是描述对象对消息的响应。对象是一个普遍适用的基本的逻辑概念,是一个有组织形式的、含有信息的实体或结构。它既可以表示一个抽象的概念,也可以表示一个具体的程序模块;既可以表示软件,也可以表示硬件。于是,OOM提供了同时在现实世界和机器世界进行系统分析、设计和实现的统一的方法。

2.程序设计方法学

随着软件系统规模的扩大和复杂性的增加,软件的开销也惊人

地增加了,而软件的可靠性和可维护性却明显地下降了。为此,

人们惊呼软件危机。产生软件危机的根本原因在于传统的冯?

诺依曼机(Von Neumann Machine)的结构和人们求解问题的

方法的不一致性。这种不一致性主要表现在以下几个方面:

(1)语言的鸿沟;

(2)程序设计的鸿沟;

(3)Von Neumann机的鸿沟。语言的鸿沟是形成软件危机的主

要原因之一。从目前看,面向对象的语言在缓解软件危机方面

起到了很大的作用,取得了前所未有的积极效果。

3.面向对象的程序设计方法

经验告诉我们:在软件系统中,“过程”或“操作”是不稳定的、

多变的,而“数据结构”或“对象”却是相对稳定多了。因此,

传统的以过程为中心而设计的软件的可重用性差;而以数据结

构或对象为中心而设计的软件的可重用性较好。面向对象的程

序设计方法以数据结构或对象为中心,力求问题在现实世界和

机器世界中的一致性。在使用OOM进行程序设计时,首先进行

的是面向对象的分析(Object Oriented Analysis)。其任务

是了解问题所涉及的对象、对象间的关系,然后在现实世界中

构造该问题的对象模型,以反映所要解决的“实质问题”。然

后,进行面向对象的设计(Object Oriented Design),即设

计软件的对象模型。根据软件开发环境的功能,把问题的对象

模型从现实世界过渡到机器世界。在软件系统内设计出各个对

象、对象间的关系(如继承关系),对象间的通信方式(如消

息模式)等等。总之,在该阶段应明确各个对象应做些什么及

其关系。面向对象的实现(Object Oriented Implementation)

是指软件功能的具体实现,即怎么做的实现其中包括对象内部

功能的实现、确定系统的用户接口。在实际开发一个系统时,

上述三个阶段必须有机地结合在一起。现在提倡面向对象的软

件开发方法,并进一步规范化,还开发了一系列OOM的软件工

具和软件环境,以支持软件自动生成。

4.面向对象的方法的基本概念与特征

实质上,软件是问题及其求解方法的一种表达形式。显然,如

果软件能直接自然地表达求解方法,则软件不仅易于理解,而

且也具有较高可靠性与可维护性。如果能按照人们通常的思维

方式,在机器世界里建立问题的模型,则可以提高软件的模块

化和重用的可能性。面向对象方法的基本原则是:按照人们在

现实世界中的通常的思维方式建立问题在机器世界的模型,设

计尽可能自然地表现求解方法的软件。在OOM中,对象(object)

和消息传递(Message passing)分别作为表达事物及事物间

相互联系的概念。类(class)和继承(inheritance)作为适

合人们一般思维方式的描述机制。方法(method)允许各种操

作作用于某类对象上。这种集对象、类、消息、继承和方法于

一体的OOM的基本点在于对象的封装(encapsulation)和继

承。通过封装能将对象的定义和其实现分开;通过继承能体现

类与类间的关系,并由此带来了动态连接(dynamic binding)

和实体的多态性(polymorphisim)从而构成了OOM的基本特

征。

(1)对象为了使用计算机求解问题,现实世界的对象必须表

示成计算机内部的概念,即机器世界的对象(简称机器对象,

或对象)。为此,“对象”有在两个不同世界的不同含义,可以

从下文中区分开来。从存储角度来看,机器对象占有一块存储

空间,其中有数据也有方法。从机器实现机制来看,机器对象

中私有数据表示了对象的状态,该对象的状态只能由私有的方

法来改变它。每当需要对象来完成一定处理工作时,只能由其

它对象向该对象发送消息,本对象响应消息后按照消息模式找

出匹配的方法,并执行该方法,方法定义了该对象上的操作。

(2)消息和方法程序的执行是靠在对象间传递消息来完成的。

7发送消息的对象称为发送者,接收消息的对象称为接收者。

消息中仅包含发送者的要求,它只告诉接收者需要完成哪些处

理,但并不指示接收者应如何完成这些处理。消息完全由接收

者解释,并决定完成所需的处理的方式。一个对象可以接收不

20 / 63

数据库工程师试题以及答案

2010年3月计算机等考四级数据库 2010年3月计算机等考四级数据库工程师选择题 (1)在数据库应用系统的需求分析阶段,需要考虑数据的安全性需求。下列不属于数据安全性需求分析内容的是 A)分析数据的安全性需求,以确定每个关系表上定义的数据约束能够满足使用要求B)分析全局用户对数据的存取需求,以确定全局数据的安全控制策略 C)分析特殊用户对数据的存取需求,以保证数据库的安全控制策略能够满足其使用要求 D)分析各类用户对数据的存取需求,以确定各类用户能够操作的数据 (2)有学生表(学号, 姓名, 性别, 身份证号, 出生日期, 所在系号),在此表上使用如下语句建立索引: CREATE NONCLUSTERED INDEX Idx_Name ON学生表(姓名); 此索引被称为 A)非聚集散列索引 B)非聚集辅索引 C)非聚集顺序索引 D)非聚集主索引 (3)在数据库物理设计阶段,使用聚集文件组织数据可以提高一些查询的效率。下列关于聚集文件和聚集键的描述错误的是 A)聚集文件将不同关系表中有关联关系的记录存储在一起,以减少系统的物理I/O次数 B)聚集键应该选用频繁用于进行自然连接的属性或属性组 C)聚集文件可以提高某些连接查询的速度,但是它可能导致其他类型的查询处理变慢 D)关系表中某个属性的数据重复率越高,越适合作聚集键 (4)己知有描述科研项目及负责教师的关系模式:科研项目(项目号, 项目名称, 经费, 负责教师号, 姓名, 职称),该关系模式满足函数依赖集:F={项目号→项目名称, 项目号→经费, 项目号→负责教师号, 负责教师号→姓名, 负责教师号→职称}。下列分解中最合理的符合3NF的关系模式是 A)科研项目(项目号, 项目名称, 经费),教师(教师号, 姓名, 职称) B)科研项目(项目号, 项目名称, 经费),教师(教师号, 姓名, 职称, 项目号) C)科研项目(项目号, 项目名称, 经费, 负责教师号),教师(教师号, 姓名, 职称)D)科研项目(项目号, 项目名称, 经费),项目_教师(项目号, 负责教师号),教师(教师号, 姓名, 职称) (5)在IDEF0图中矩形框代表功能活动。关于连接到矩形框4条边上的箭头的语义,下列说法错误的是 A)左边的箭头表示完成功能活动需要的数据,它强调被活动消耗或变换的内容 B)上边的箭头表示影响这个活动执行的事件或约束,它强调被活动变换的内容 C)右边的箭头表示由这个活动产生的信息,它强调活动变换和处理的结果 D)下边的箭头表示实施该活动的手段或完成活动需要的资源,它强调如何做 6)数据库的运行管理与维护主要由数据库管理员负责,工作内容主要包括日常维护、系统监控与分析、性能优化等。下列关于数据库管理员工作内容的说法错误的是A)数据库的备份和恢复是重要的维护工作,数据库管理员应根据不同的应用要求制定

四级网络工程师分类模拟题62有答案

四级网络工程师分类模拟题62单项选择题 1. 在OSI参考模型中,提供透明的比特流传输的层次是 A.应用层 B.表示层 C.物理层 D.互联层 答案:C 2. 在以下操作系统中,不属于Unix操作系统产品的是 A.AIX B.Vista C.Solaris D.HP-UX 答案:B 3. 关于TCP/IP参考模型传输层的描述中,错误的是 A.提供分布式进程通信功能 B.支持面向连接的TCP协议 C.支持无连接的UDP协议 D.提路由选择功能

答案:D 4. 关于虚电路交换方式的描述中,正确的是 A.源节点与目的结点之间需要预先建立逻辑连接 B.数据分组通过虚电路传输时需要执行路由选择 C.在数据分组中需要携带源地址与目的地址 D.源结点发送分组的顺序与目的结点接收分组的顺序可能不同答案:A 5. 1000 BASE-LX标准支持的单根光纤最大长度为 A.25m B.100m C.300m D.3000m 答案:D 6. 在IEEE 802.11标准中,实现虚拟监听机制的层次是 A.应用层 B.物理层 C.MAC层

答案:C 7. 关于IEEE 802.11标准的描述中,错误的是 A.采用的是层次结构模型 B.采用的是层次结构模型 C.MAC层实现介质访问控制功能 D.仅支持争用服务的访问方式 答案:D 8. 关于直接序列扩频的描述中,正确的是 A.对应的英文缩写为FHSS B.可以使用专用的ISM频段 C.发送数据前进行调幅操作 D.最小传输速率为100Mbps 答案:B 9. 在Internet中,实现异构网络互联的设备通常是 A.调制解调器 B.集线器

最新数据库系统工程师考试资料-数据库系统工程师试题汇总

2010数据库系统工程师考试资料-数据库系统工程师试题

2010年数据库系统工程师考试资料:数据库系统工程师试题 1. 单个用户使用的数据视图的描述称为() A. 外模式 B. 概念模式 C. 内模式 D. 存储模式 2. 子模式ddl用来描述() A. 数据库的总体逻辑结构 B. 数据库的局部逻辑结构 C. 数据库的物理存储结构 D. 数据库的概念结构 3. 在dbs中,dbms和os之间的关系是() A.相互调用 B.dbms调用os C.os调用dbms D.并发运 4.数据库物理存储方式的描述称为() A.外模式 B。内模式 C.概念模式 D.逻辑模式 5.在下面给出的内容中,不属于dba职责的是() A.定义概念模式 B.修改模式结构 C.编写应用程序 D.编写完整性规则 6.在数据库三级模式间引入二级映象的主要作用是() A. 提高数据与程序的独立性 B. 提高数据与程序的安全性 C. 保持数据与程序的一致性 D.提高数据与程序的可移植性 7.db、dbms和dbs三者之间的关系是() A. db包括dbms和dbs B. dbs包括db和dbms

C. dbms包括db和dbs D. 不能相互包括 8.dbs中“第三级存储器”是指() A. 磁盘和磁带 B. 磁带和光盘 C. 光盘和磁盘 D. 快闪存和磁盘 9.位于用户和操作系统之间的一层数据管理软件是() A. dbs B. db C. dbms D. mis 10.数据库系统中的数据模型通常由()三部分组成 A. 数据结构、数据操作和完整性约束 B. 数据定义、数据操作和安全性约束 C. 数据结构、数据管理和数据保护 D. 数据定义、数据管理和运行控制 11.codasyl组织提出的dbtg报告中的数据模型是()的主要代表 A. 层次模型 B. 网状模型 C. 关系模型 D. 实体联系模型 12.数据库技术的三级模式中,数据的全局逻辑结构用()来描述 A. 子模式 B. 用户模式 C. 模式 D. 存储模式 13.用户涉及的逻辑结构用()描述 A. 模式 B. 存储模式 C. 概念模式 D. 子模式 14.数据库的开发控制,完整性检查,安全性检查等是对数据库的()

四级数据库工程师模拟题5有答案

四级数据库工程师模拟题5 一、选择题 1. ______是数据库技术与并行处理技术相结合的产物,是为了处理大型复杂数据库管理应用领域中的海量数据而提出的,该DBS的硬件平台是并行计算机系统.使用多个CPU和多个磁盘进行并行数据处理和磁盘访问操作,以提高数据库系统的数据处理和I/O速度。 A.集中式数据库系统 B.并行数据库系统 C.分布式数据库系统 D.客户/服务器数据库系统 答案:B [解答] 并行DBS是数据库技术与并行处理技术相结合的产物,是为了处理大型复杂数据库管理应用领域中的海量数据而提出的,该DBS的硬件平台是并行计算机系统,使用多个CPU和多个磁盘进行并行数据处理和磁盘访问操作,以提高数据库系统的数据处理和I/O速度。 2. 以下关于数据模型要求错误的是 A.能够比较真实地模拟现实世界 B.容易为人们所理解 C.便于在计算机上实现 D.目前大部分数据库模型能很好地同时满足这三方面的要求

[解答] 目前还没有一种数据库模型能够很好地同时满足能够比较真实地模拟现实世界、容易为人们所了解、便于在计算机上实现这三个方面的要求。 3. 根据数据库应用系统生命周期模型,完成数据库关系模式设计的阶段是______。 A.需求分析 B.概念设计 C.逻辑设计 D.物理设计 答案:C [解答] 数据库逻辑结构设计是指从数据库的概念模型出发,设计表示为逻辑模式的数据库逻辑结构,数据库逻辑设计的主要步骤包括ER图转换为初始关系模式、对初始关系模式进行优化等,所以本题的答案为C。 4. 以下关于死锁检测和恢复叙述错误的是 A.死锁检测,用于定期检查系统是否发生死锁 B.死锁恢复,用于将系统从死锁中解救出来 C.有效的方法是从后面向前RED0这个事务的部分操作,主要能够解开系统死锁即可 D.为了防止某些事务总是被选做被撤销事务,可以限定每个事务被选为撤销事务的次数

计算机四级网络工程师题库完整版完整答案

计算机四级网络工程师题库完整版完整答案 集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

6 下列选项组,哪一个不是操作系统所具有的功能? A A编译高级语言编写的程序 B管理计算机磁盘 C管理系统动态库 D提供用户操作计算机的界面 7 在操作系统的结构设计中,微内核结构表示的是B A层次结构 B分布式结构 C整体式结构 D客户机/服务器结构 8 用户程序在用户态下使用特权指令而引起的中断是 A A访问中断 B外部中断 C时钟中断 D溢出中断 9 下列各种事件中。不属于I/O中断的事件是 D A数据传送完毕 B设备出错 C键盘输入 D指令错 10用户在编写程序时,若要在屏幕上画出一个红色的圆需要A命令控制

B运行时系统 C自然语言 D系统调用 11.13 下列选项中。那一项是位于进程控制块中而不是位于进程中 A 需要访问的数据文件名 B进程优先级 C全局变量 D堆栈 A主从关系 B同步关系 C平等关系 D父子关系 17.19 当多个进程并发执行且需要相互通信时,下列哪一种方法最适合A管道 B信号量 C共享内存 D消息传递 22、下列关于生产者消费者的叙述中,哪一个是正确的?() A、生产者往缓冲区放产品前要先使用P操作确保缓冲区有空 闲…… B、生产者往缓冲区放产品前要先使用V操作确保缓冲区有空 闲……

C、消费者从缓冲区取产品前要先用P操作确保缓冲区互斥使…… D、生产者往缓冲区取产品前要先用P操作确保缓冲区互斥使…… 23、下表是某页式内存分配的情况,页面大小为4096B,有效位为1表示该页在内存……() A、3次 B、2次 C、1次 D、4次 24、下列关于页面的叙述中,哪一个是正确的?(B?) A、页式存储管理中的页面和页框大小只能采用一种尺寸 B、操作系统在每次启动时根据物理内存大小确定本次运行的页面大小 C、用户进程在运行过程中可以改变页面尺寸、 D、为了提高内存利用率,可以根据需要采用多种不同大小的页面25/26、从用户角度看,建立文件系统的主要目的是(D) A、管理设备文件 B、提高文件读写速度 C、共享系统文 D、实现文件的按名存取

2019年数据库系统工程师考试大纲共24页

数据库系统工程师考试大纲 一、考试说明 1.考试要求 (1)掌握计算机体系结构以及各主要部件的性能和基本工作原理; (2)掌握操作系统、程序设计语言的基础知识,了解编译程序的基本知识; (3)熟练掌握常用数据结构和常用算法; (4)熟悉软件工程和软件开发项目管理的基础知识; (5)熟悉计算机网络的原理和技术; (6)掌握数据库原理及基本理论; (7)掌握常用的大型数据库管理系统的应用技术; (8)掌握数据库应用系统的设计方法和开发过程; (9)熟悉数据库系统的管理和维护方法,了解相关的安全技术; (10)了解数据库发展趋势与新技术; (11)掌握常用信息技术标准、安全性,以及有关法律、法规的基本知识; (12)了解信息化、计算机应用的基础知识; (13)正确阅读和理解计算机领域的英文资料。 2. 通过本考试的合格人员能参与应用信息系统的规划、设计、构建、运行和管理,能按照用户需求,设计、建立、运行、维护高质量的数据库和数据仓库;作为数据管理员管理信息系统中的数据资源,作为数据库管

理员建立和维护核心数据库;担任数据库系统有关的技术支持,同时具备一定的网络结构设计及组网能力;具有工程师的实际工作能力和业务水平,能指导计算机技术与软件专业助理工程师(或技术员)工作。 3. 本考试设置的科目包括 (1)信息系统知识,考试时间为150分钟,笔试; (2)数据库系统设计与管理,考试时间为150分钟,笔试。 二、考试范围 考试科目1:信息系统知识 1. 计算机系统知识 1.1 硬件知识 1.1.1 计算机体系结构和主要部件的基本工作原理 ?CPU和存储器的组成、性能、基本工作原理 ?常用I/O设备、通信设备的性能,以及基本工作原理 ?I/O接口的功能、类型和特点 ?CISC/RISC,流水线操作,多处理机,并行处理 1.1.2 存储系统 ?虚拟存储器基本工作原理,多级存储体系 ?RAID类型和特性

3月计算机四级数据库工程师上机题库

3月计算机四级数据库工程师上机题库 一、选择题:(共70题,每题1分,满分70分。其中1-55题为中文题,56-70题为英文题。) 下列各题A)、B)、C)、D)四个选项中,只有一个是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1) 下列关于Cache的描述中,哪一个是错误的? A.Cache是缓冲技术在存储体系中的一个具体应用 B.Cache的主要特点之一是存储容量大 C.Cache处于内存和CPU之间 D.Cache中一般存放内存的一部分副本 (2) 为了保证程序能连续执行,CPU必须确定下一条指令的地址,起到这一作用的是 A.指令寄存器 B.状态寄存器 C.地址寄存器 D.程序计数器 (3) 计算机具有灵活性和通用性特征,能求解各种不同的计算和逻辑问题,这主要是取决于计算机的 A.快速运算 B.指令系统 C.可编程性 D.输入输出设备

(4) 栈结构不适用于下列哪一种应用? A.表达式求值 B.快速排序算法的实现 C.树的层次次序周游算法的实现 D.二叉树对称序周游算法的实现 (5) 设一棵二叉树中,度为1的结点数为9,则该二叉树的叶结点的数目为 A.10 B.11 C.12 D.不确定 (6) 如下所示是一个带权的图,图中结点A到结点D的关键路径的长度为 A.13 B.15 C.28 D.58 (7) 设散列表的地址空间为0到10,散列函数为h(k)= k mod 11,用线性探查法解决碰撞。现从空的散列表开始,依次插入关键码值95,14,27,68,60,则最后一个关键码60的地址为: A.4

C.6 D.7 (8) 没有关键码序列(Q,G,M,Z,A,N,B,P,X,H,Y,S,L,T,K,E),采用二路归并排序法进行排序,下面哪一个序列是第二趟归并后的结果? A.G Q,M Z A N,B,P H,X S,Y,L,T,E,K B.G,M,Q,Z,A,B,N,P,H,S,X,Y,E,K,L,T C.G,M,Q,A,N,B,P,X,H,Y,S,T,L,K,E,Z D.A,B,G,M,N,P,Q,Z,E,H,K,L,S,T,X,Y (9) 下列命题中是简单命题(或称原子命题)的为 A.张明和张红都是大学生 B.张葆丽和张葆华是亲姐妹 C.张晖或张旺是河北省人 D.王际大不是工人 (10) 设p:天下大雨,q:我骑自行车上班。命题除非天下大雨,否则我骑自行车上班的符号化形式为 A.pq B.┐qp

四级网络工程师模拟试题(附答案)

四级网络工程师模拟试题(附答案) 1中断处理程序的入口地址一般存放在下列哪个数据表格中? A.中断向量表 B.系统调用表 C.进程控制块 D.文件描述符表 【参考答案】:A 2在组成计算机系统的各类资源中,主要包含有硬件部件以及() A.代码和数据 B.键盘、鼠标和显示器 C.操作系统 D.各类应用软件 【参考答案】:A 3共享性是操作系统的特征之一,计算机中的各类设备在操作系统管理下实现共享,那么,下列哪种设备可以同时共享? A.磁带机 B.投影机 C.扫描仪 D.硬盘 【参考答案】:D 4当用户程序需要调用操作系统所提供的文件读写功能时,该功能首先执行的指令是 A.文件操作指令 B.访管指令 C.特权指令 D.I/O中断指令 【参考答案】:B 5用户需要动态请求和释放系统资源,在用户程序中所使用的方法是 A.通过系统调用 B.利用命令输入

C.调用中断服务程序 D.以管理员身份运行 【参考答案】:A 6多道程序设计技术使得进程能够并发运行,相比单道程序运行,并发运行的多道程序不再具有下列哪个特性? A.独立性 B.随机性 C.共享性 D.可再现性 【参考答案】:D 7某一单核处理机的计算机系统中共有20个进程,那么,处于运行状态的进程最多为几个? A.1 B.20 C.19 D.0 【参考答案】:A 8进程被成功创建以后,该进程的进程控制块将会首先插入到下列哪个队列中? A.就绪队列 B.等待队列 C.运行队列 D.活动队列 【参考答案】:A 9对于如下C语言程序 int main() { pid_t pid; int x=1; pid = fork(); if(pid==0)

2018上半年数据库系统工程师考试真题

2018 年上半年数据库系统工程师考试真题 上午题+下午题 ●计算机运行过程中,遇到突发事件,要求CPU 暂时停止正在运行的程序,转去为突发 (1) ,其处理过程中事件服务,服务完毕,再自动返回原程序继续执行,这个过程称为 保存现场的目的是(2) 。 (1)A.阻塞 B. 中断 C. 动态绑定 D. 静态绑定 (2)A.防止丢失数据 B. 防止对其他部件造成影啊 C. 返回去继续执行原程序 D. 为中断处理程序提供数据 ●流水线的吞吐率是指单位时间流水线处理的任务数,如果各段流水的操作时间不同,则 流水线的吞吐率是()的的倒数。 (3)A.最短流水段操作时间 B. 各段流水的操作时间总和 C. 最长流水段操作时间 D. 流水段数乘以最长流水段操作时间 ●计算机中机械硬盘的性能指标不包括 (4) 。 (4)A.磁盘转速及容量 B. 盘片数及磁道数 C. 容量及平均寻道时间 D. 磁盘转速及平均寻道时间 ●算术表达式采用后缀式表示时不需要使用括号,使用()就可以方便地进行求值。a-b (c +d 山)(其中,—、+、*表示二元算术运算减、加、乘)的后缓式为(), 与该表达式等价的语法树为()。 (5)A.队列 B. 数组 C. 栈 D. 广义表 (6)A.a b c d -*+ B. a b c d*+ - C.ab-c*d+ D.a b c d+*- (7)A.

B. C. D. ●设有n 阶三对角矩阵 A ,即非零元素都位于主对角线以及与主对角线平行且紧邻的两条对角 线上,现对该矩阵进行按行压缩存储,若其压储空间用数组 B 表示, A 的元素下标从0 开始,B 的元素下标从 1 开始。已知 A [0,0 ]存储在 B [1],A[n-1,n-1]存储在 B [3n-2 ],那么非零元素 A [i,j ](0≤ i <n,0≤ j <n,│i- j │≤ 1)存储在 B [()] (8)A.2i+j-1 B. 2i+j C. 2i+j+1 D. 3i-j+I ●用哈希表存储元素时,需要进行冲突(碰撞)处理,冲突是指(9) 。 (9)A.关键字被依次映射到地址编号连续的存储位置 B. 关键字不同的元素被映射到相同的存储位置 C. 关键字相同的元素被映射到不同的存储位置 D. 关键字被映射到哈希表之外的位置 ●对有n 个结点、 e 条边且采用数组表示法(即邻接矩阵存储)的无向图进行深度优先 遍历,时间复杂度为()。 2 (10)A.O(n) B.O(e 2) C.O(n+e) D.O(n*e) ●数字信封技术能够()。 (11)A.保证数据在传输过程中的安全性 B. 隐藏发送者的真实身份 C. 对发送者和接收者的身份进行认证证 D. 防止交易中的抵赖发生 ●在安全通信中,S 将所发送的信息使用(12) 进行数字签名,T 收到该消息后可利用 (13) 验证该消息的真实性。 (12)A.S 的公钥 B.S 的私钥 C.T 的公钥 D.T 的私钥 (13)A.S 的公钥 B.S 的私钥

计算机四级数据库工程师笔试试题

2010年9月计算机四级数据库工程师笔试试题:文字版 一、选择题 (1)视图是数据库中的重要对象,下列有关视图的说法错误的是 A)一般情况下,数据库只存储视图的定义,其数据仍存放在相关的基本表中 B)可以将复杂的查询语句封装在视图中以简化相关查询语句的编写 C)通过视图可以屏蔽不希望用户看到的敏感数据,提高数据库数据的安全性 D)可以在视图的基础上建立新的视图,但这样定义的视图会导致数据库性能下降,一般不推荐使用 (2)在概念数据模型中,联系用于描述现实世界中事物之间的关联关系。一阿d关于联系的说法错误的是 A)联系可用于描述一个实体集内记录之间的关联关系 B)联系可用于描述两个实体集属性之间的关联关系 C)ER模型通过1:1、1:n和m:n三种联系描述现实世界中各类事物之间的关联关系 D)最终的IDEFIX模型中只能出现I:1和1:n两种类型的联系 (3)在关系数据库中,NULL是一个特殊值,在很多数据操作中都需要对NULL进行特殊处理。关于NULL,下列说法正确的是 A)判断元组的某一列是否为NULL一般使用“=NULL” B)NULL在数据库中表示尚不确定的值 C)在SQL Server 2000中执行“SELECT NULL+5”将会出现异常 D)NULL只适用于字符和数值类型 (4)某教务管理系统包含选课模块、成绩录入模块和学籍管理模块。选课模块面向学校几万名学生,成绩录入模块面向学校上千名任课教师,学籍管理模块面向少量有一定权限的管理人员。该系统是上世纪用C/S结构和相关技术开发的,为了方便用户使用,需要对系统进行升级和改造。设有下列技术改造方案: I.选课模块和成绩录入模块采用B/S结构进行改造,学籍管理模块仍采用C/S结构 II.选课模块采用B/S结构进行改造,成绩录入模块和学籍管理模块仍采用C/S结构 III.选课模块、成绩录入模块和学籍管理模块均采用B/S结构进行改造 Ⅳ.成绩录入模块采用B/S结构进行改造,选课模块和学籍管理模块仍采用C/S结构 上述方案中,较为合理的是 A)仅I和II B)仅I、II和III C)仅I和III D)仅II、III和IV (5)数据库在外存中是以文件形式组织的,组织文件记录方法的不同就形成了不同的文件结构。下列关于顺序文件结构及其存取效率的说法错误的是 A)顺序文件因其记录按照查找码值升序或降序排列,当按照查找码的值顺序读取记录时其效率很高

计算机四级考试数据库工程师真题及答案

计算机等级考试/真题题库 2014年计算机四级考试数据库工程师真 题及答案 没有关键码序列(Q,G,M,Z,A,N,B,P,X,H,Y,S,L,T,K,E),采用二路归并排序法进行排序,下面哪一个序列是第二趟归并后的结果? A.G Q,M Z A N,B,P H,X S,Y,L,T,E,K B.G,M,Q,Z,A,B,N,P,H,S,X,Y,E,K,L,T C.G,M,Q,A,N,B,P,X,H,Y,S,T,L,K,E,Z D.A,B,G,M,N,P,Q,Z,E,H,K,L,S,T,X,Y 栈结构不适用于下列哪一种应用? A.表达式求值 B.快速排序算法的实现 C.树的层次次序周游算法的实现

D.二叉树对称序周游算法的实现 (1) 为了保证程序能连续执行,CPU必须确定下一条指令的地址,起到这一作用的是 A.指令寄存器 B.状态寄存器 C.地址寄存器 D.程序计数器 若或非门的输入变量为A和B,输出变量为Y,则A和B 分别为下述哪一种情况时, Y才为1? A) 1,0 B) 0,1 C) 0,0 D) 1,1 设(V,E)是一连通的无圈图,V包含 3个3度顶点 2个2度顶点 r个1度顶点 且V不再包含其他元素。E的元素个数为多少? (2分) A) 6 B) 9 C) 15-r D) 5+5r

(4) 设S是一个至少有两个元素的集合,且定义运算 X*Y=X适用于S集中的所有元素X和Y,下列命题中哪一个命题必是真命题? Ⅰ. *在S集中是可结合的 Ⅱ. *在S集中是可交换的 Ⅲ. *在S集中有单位元 A) 只有Ⅰ B) 只有Ⅱ C) Ⅰ和Ⅲ D) Ⅱ和Ⅲ (5) 设Z是整数集,且设f:Z×Z→Z,对每一个∈Z×Z,有f()=m2n。集合{0}的原象为(2分) A) {0}×Z B) Z×{0} C) ({0}×Z)∩(Z×{0}) D) ({0}×Z)∪(Z×{0}) (6) 对于一个只有3个不同元素的集合A来说,A上的等价关系的总数为 A) 2 B) 5 C) 9 D) 取决于元素是否为数值 2014年计算机四级考试数据库工程师真题及答案.doc [全

2017年上半年数据库系统工程师考试真题(案例分析)

2017年上半年数据库系统工程师考试真题(案例分析)下午试题 试题一(共15分〉 阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。 【说明】 某医疗器械公司作为复杂医疗产品的集成商,必须保持高质量部件的及时供应。为了实现这一目标,该公司欲开发一采购系统。系统的主要功能如下: 1.检查库存水平。采购部门每天检查部件库存量,当特定部件的库存量降至其订货店、时,返回低存量部件及库存量。 2.下达采购订单。采购部门针对低存量部件及库存量提交采购请求,向其供应商(通过供应商文件访问供应商数据〉下达采购订单,并存储于采购订单文件中。 3.交运部件。当供应商提交提单并交运部件时,运输和接收(S /R)部门通过执行以下三步过程接收货物: (1)验证装运部件。通过访问采购订单并将其与提单进行比较来验证装运的部件,并将提单信息发给S/R职员。如果收货部件项目出现在采购订单和提单上,则己验证的提单和收货部件项目将被送去检验。否则S/R职员提交的装运错误信息生成装运错误通知发送给供应商。

(2)检验部件质量。通过访问质量标准来检查装运部件的质量,并将己验证的提单发给检验员。如果部件满足所有质量标准,则将其添加到接受的部件列表用于更新部件库存。如果部件未通过检查,则将检验员创建的缺陷装运信息生成缺陷装运通知发送给供应商。 (3)更新部件库存。库管员根据收到的接受的部件列表添加本次采购数量,与原有库存量累加来更新库存部件中的库存量。标记订单采购完成。 现采用结构化方法对该采购系统进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流圈。 图1-1上下文数据流图

历年全国计算机等级考试四级数据库工程师共16套(真题)

1第一套 1.下列关于数据库基本概念的叙述中,哪一条是错误的()。 A) "数据库"可理解为是在计算机存储设备中按一定格式存放数据的仓库 B) 数据库是按一定结构组织并可以长期存储在计算机内的、在逻辑上保持一致的、可共享的大量相关联数据的集合 C) 数据库中的数据一般都具有较大的冗余度 D) 数据库中的数据是按一定的数据模型组织在一起的 2.下列关于数据模型的叙述中,哪一条是错误的()。 A) 数据模型是用来描述、组织和处理现实世界中数据的工具 B) 数据模型主要用于定义数据库的静态特征,但是不便于描述数据间的动态行为 C) 数据模型需要能比较真实地模拟现实世界 D) 数据模型是数据库系统的核心和基础 3如果一门课程只能由一位教师讲授,而一位教师可以讲授若干门课程,则课程与教师这两个实体型之间的联系是()。 A) 一对一 B) 多对多 C) 一对多 D) 多对一 4下列关于概念模型的叙述中,哪一条是错误的()。 A) 概念模型是现实世界到信息世界的抽象 B) 概念模型是从用户观点对数据和信息的建模 C) 概念模型具有较强的语法表达能力,却无法描述语义信息 D) 实体-联系模型是最常用的概念模型 5下列关于数据库中"型"和"值"的叙述中,哪一条是错误的()。 A) 数据库中的型是指对某一类数据的结构和属性的描述 B) 数据库的型是随时间发生不断变化的 C) 数据库的型亦称为数据库的内涵 D) 数据库的值是型的一个具体赋值 6下列关于数据模型的叙述中,哪一条是错误的()。 A) 数据模型是用来描述、组织和处理现实世界中数据的工具 B) 数据模型主要用于定义数据库的静态特征,但是不便于描述数据间的动态行为 C) 数据模型需要能比较真实地模拟现实世界 D) 数据模型是数据库系统的核心和基础 7下列关于关系数据模型的叙述中,哪一条是错误的()。 A) 关系模型中数据的物理结构是一张二维表 B) 在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示 C) 插入、删除、更新是关系模型中的常用操作 8列关于关系数据语言的叙述中,哪一条是错误的()。 A) 关系代数是关系操作语言的一种传统表示方式,是一种抽象的查询语言 B) 元组关系演算和域关系演算属于关系演算语言 C) 关系代数比关系演算具有更强的表达能力 D) SQL语言是一种重要的关系数据语言 现有"学生-选课-课程"数据库中的三个关系如下: S(S#,SNAME,SEX,BIRTHYEAR,DEPT),主码是S# C(C#,CNAME,TEACHER),主码是C# SC(S#,C#,GRADE),主码是(S#,C#) 9下列关于保持数据库完整性的叙述中,哪一条是错误的()。 A) 向关系SC插入元组时,S# 和C# 都不能是空值(NULL) B) 可以任意删除关系SC中的元组 C) 向任何一个关系插入元组时,必须保证关系主码值的唯一性 D) 可以任意删除关系C中的元组 10在关系代数中,从两个关系的笛卡尔积中选取它们属性间满足一定条件的元组的操作称为()。 A) 并 B) 选择 C) 自然连接 D) 连接 12 下列关于关系代数基本运算的等式中,哪一个是正确的()。 A) R - (R - S) = S B) R - (R - S) = RS C) R - (S - R) = S D) R - (S - R) = R S 13 基于"学生-选课-课程"数据库中的三个关系: S(S#,SNAME,SEX,BIRTHYEAR,DEPT),主码为S# C(C#,CNAME,TEACHER),主码为C# SC(S#,C#,GRADE),主码为(S#,C#) 为了提高查询速度,对SC表创建唯一索引,应该建立在哪个(组)属性上()。 A) S# B) C# C) GRADE D) (S#, C#) 14 基于"学生-选课-课程"数据库中的三个关系: S(S#,SNAME,SEX,BIRTHYEAR,DEPT),主码为S# C(C#,CNAME,TEACHER),主码为C# SC(S#,C#,GRADE),主码为(S#,C# 查找"选修了至少5门课程的学生的学号",正确的SQL语句是 ()。 A) SELECT S# FROM SC GROUP BY S# HAVING COUNT(*)≥ 5 B) SELECT S# FROM SC GROUP BY S# WHERE COUNT(*)≥ 5 C) SELECT S# FROM SC HAVING COUNT(*)≥ 5 D) SELECT S# FROM SC WHERE COUNT(*)≥ 5 15 基于"学生-选课-课程"数据库中的三个关系: S(S#,SNAME,SEX,BIRTHYEAR,DEPT),主码为S# C(C#,CNAME,TEACHER),主码为C# SC(S#,C#,GRADE),主码为(S#,C#) 查找"选修了C01号课程的全体学生的姓名和所在的系",下列SQL 语句中哪一个是错误的()。 A) SELECT SNAME, DEPT FROM S WHERE S# IN (SELECT S# FROM SC WHERE C# ='C01')

计算机四级网络工程师题库及参考答案

全国计算机等级考试四级计算机网络第2套试题一、单项选择题 操作系统部分 1.下列选项中,哪一个不是操作系统所具有的功能? A.管理计算机磁盘 B.提供用户操作计算机的界面 C.管理系统动态库 D.编译高级语言编写的程序 2.在操作系统的结构设计中,微内核结构表示的是 A.整体式结构 B.层次结构 C.分布式结构 D.客户机/服务器结构 3.用户程序在用户态下使用特权指令而引起的中断是 A.时钟中断 B.外部中断 C.访管中断 D.溢出中断 4.下列各种事件中,不属于中断的事件是 A.数据传送完毕 B.设备出错 C.指令错 D.键盘输入 5.用户在编写程序时,若要在屏幕上画出一个红色的圆,需要使用 A.自然语言 B.系统调用 C.命令控制 D.运行时系统 6.在多道程序设计系统中,下列能并行工作的是 与外部设备 B.内存和内存 C.用户与应用程序 和内存 7操作系统中,进程有多种状态。下列状态中,哪一个不是支持的状态? A.运行状态 B.安全状态 C.僵死状态 D.睡眠状态

8.假设在操作系统环境下执行以下程序: () { (" \n"); (); (" \n"); } 若程序正常运行,子进程创建成功,那么,屏幕上得到输出的有 A.1个 B.2个 C.3个 D.4个 9.在线程包中,线程操作表示的是 A.线程让出 B.创建一个线程 C.阻塞一个线程 D.等待一个特定的线程退出 10.在采用非抢占式调度的操作系统中,不能引起新进程调度的事件是 A.正在运行的进程用完时间片 B.正在运行的进程出错 C.正在运行的进程等待事件 D.新创建的进程进入就绪队列 11.系统中有2个并发进程,当一个进程在等待另一个进程向它发送消息时,它们之间的关系是 A.同步关系 B.互斥关系 C.调度关系 D.父子进程关系 12.对于信号量S,执行一次P(S)操作后,S的值 A.变为 1 B.不变 C.减1 D.减指定数值 13.下列关于管程的叙述中,不正确的是 A.管程是一种同步机制 B.管程只能解决进程互斥问题 C.引入管程是为了提高代码可读性 D.管程将共享变量及对共享变量的操作封装在一起 14.采用动态地址映射方式向内存装入程序时,其地址转换工作是在什么时间完成的? A.装入程序时刻 B.选中程序时刻 C.每一条指令执行时刻 D.移动程序时刻

四级数据库工程师知识点总结

第一章数据库原理概论 1.数据库,数据库管理系统 ?数据库(DB)是按一定结构组织并可以长期存储在计算机内的、在逻辑上保持一致的、可共享的大量相关联数据的集合,是存放数据的仓库。 ?数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展型,并可为在一定组织范围内的各种用户所共享。 ?数据库管理系统(DBMS)是位于用户与操作系统之间的一个定义、操作、管理、构建和维护数据库的系统软件,是数据库和用户之间的一个接口,并为不同用户和应用程序之间共享数据库提供便利。 ?文件系统与数据库系统的区别是:文件系统面向个某一应用程序,共享性差,冗余度大,数据独立性差,记录内有结构,整体无结构,由应用程序自己控制。数据库系统面向现实世界,共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力。 2.数据库应用系统(DBAS)生命周期 1.项目规划阶段 ①系统调查,对应用单位进行全面调查,发现其存在的主要问题,并画出层次图以了解企业的组织结构。 ②可行性分析,从技术、经济、效益、法律等方面对建立数据库的可行性进行分析,然后写出可行性分析报告,组 织专家进行讨论。 ③确定数据库系统的总目标,并对应用单位的工作流程进行优化和制定项目开发计划,在得到决策部门授权后,即 进入数据库系统的开发工作。 2.需求分析阶段 ①数据需求分析 ②功能需求分析(数据处理需求分析、业务规则需求分析) ③性能需求分析(数据操作响应时间或数据访问响应时间、系统吞吐量、允许并发访问的最大用户数、每秒TPS代 价值) ④其他需求分析(存储需求分析、安全性需求分析、备份和恢复需求分析)。 3.系统设计阶段 ?概念设计阶段 ①进行数据抽象,设计局部概念模型。常用的数据库抽象方法是“聚集”、“概括”。聚集:将若干个对象和它们之 间的联系组合成一个新的对象。概括:将一组具有某些共同特性的对象抽象成更高一层意义上的对象。 ②将局部概念模型综合成全局概念模型。 ③评审,评审分为用户评审和DBA及应用开发人员评审两部分。 ?逻辑设计阶段 ①数据库逻结构设计 将E—R图转换为初始关系模式,对初始关系模式进行优化,检查关系表对数据库事务的支持性,确定关系模式完整性约束,设计基于关系模式的用户视图。 ②数据库事务概要设计 ③应用程序概要设计 ?物理设计阶段 数据库物理设计的目的是将数据的逻辑模式转换为实现技术规范,其目标是设计数据存储方案,以便提供足够好的性能并确保数据库数据的完整性、安全性和可恢复性。通常,数据库物理设计并不包括文件和数据库的具体实现细节(例如如何创建文件、建立数据库以及如何加载数据等)。 ①确定存储结构 ②存取路径的选择和调整 ③确定数据存放位置

全国计算机四级网络工程师刷题笔记

全国计算机四级网络工程师刷题笔记 操作系统原理部分 单选题 1.批处理 2.操作系统体系整体式结构、层次式结构、微内核(客户机/服务器)结构 主要部分:进程管理、存储管理、文件管理、作业管理、设备管理 3.内核状态监控程序:特权指令(输入输出、修机指令)——访管中断 4.用户态一般指令(算术运算) 5.中断技术顺序(优先级) I/O中断——数据传送完毕、设备出错、键盘输入 程序性中断——指令出错 6.linux 5种状态运行、中断、不可中断、僵尸、停止状态 7.程序编程系统调用 8.多道程序设计提高cpu/ I/O利用率,缩短作业的平均周转时间 9.进程(指令、数据、进程控制块) 进程状态:唤醒(从等待转换为就绪) 10.线程调度线程占用CPU 进程调度进程让出CPU 进程是资源分配、线程是处理器调度 线程操作pthread_join:等待一个特定的线程退出 pthread_yield:线程让出CPU pthread_exit:结束线程 11.fork()函数被调用一次返回两次嵌套:2^n 12.进程同步协同动作以共同完成一个任务:流水线、一个在等另一个同一共享变量 13.Mutex 信号量的值1-(k+1) 14.PV P:S-1 V:S+1 15.管程同步机制、提高代码可读性、共享变量及操作封装在一起 16.动态扩充内存容量虚拟存储技术 17.可变分区存储管理若该分区的起始地址加长度等于空闲区表中某个登记项所表示 空闲区的起始地址,表明回收分区的下邻分区是空闲的。(图4-15)(4-25)(5-25)管理空闲物理内存空闲块链表法、位示图法、空闲页面表 页式存储管理虚拟地址空间(1-16) 缺页中断次数:内循环次数/页面大小*外循环次数虚拟存储管理页面置换算法将导致抖动(工作集)容量受计算机地址位宽影响 页表项:有效位(驻留位)、读写位、访问标志、修改位、页框号18.LRU 最近最少使用页面置换算法 OPT 最佳页面置换算法 FIFO 先进内存的页面被先换出 19.Belady异常FIFO 20.文件存取用户面前(逻辑结构)存储介质面前(物理结构) 文件的按名存取:文件目录查找 21.文件结构物理结构(顺序、链接、索引和I节点结构)逻辑结构(无结构) 22.打开文件fd=open(文件路径名,打开方式)返回文件描述符fd

数据库系统工程师

[编辑本段] 考试简介以及报考资格 数据库系统工程师考试属于全国计算机技术与软件专业技术资格考试(简称计算机软件资格考试)中的一个中级考试。考试不设学历与资历条件,也不论年龄和专业,考生可根据自己的技术水平选择合适的级别合适的资格,但一次考试只能报考一种资格。考试采用笔试形式,考试实行全国统一大纲、统一试题、统一时间、统一标准、统一证书的考试办法。笔试安排在一天之内。 [编辑本段] 报名流程 根据《计算机技术与软件专业技术资格(水平)考试实施办法》第八条相关规定:符合《暂行规定》(即《计算机技术与软件专业技术资格(水平)考试暂行规定》)第八条规定的人员,由本人提出申请,按规定携带身份证明到当地考试管理机构报名,领取准考证。凭准考证、身份证明在指定的时间、地点参加考试。 各地的报名办法由考生报考所在地的当地考试机构决定。考生相关报考费用标准由当地物价部门核准。 考生报名方式主要分为:网上报名与考生本人到指定地点报名两种。 注:报名时依据的身份证明包括:居民身份证、军人的证件、护照、户口本等。 [编辑本段] 科目内容 考试科目1:信息系统知识 1. 计算机系统知识 1.1 硬件知识 1.1.1 计算机体系结构和主要部件的基本工作原理 ·CPU和存储器的组成、性能、基本工作原理 ·常用I/O设备、通信设备的性能,以及基本工作原理 ·I/O接口的功能、类型和特点 ·CISC/RISC,流水线操作,多处理机,并行处理 1.1.2 存储系统 ·虚拟存储器基本工作原理,多级存储体系 ·RAID类型和特性 1.1.3 安全性、可靠性与系统性能评测基础知识 ·诊断与容错 ·系统可靠性分析评价

四级数据库知识点总结及历年全国计算机四级数据库工程师历年真题及答案

全国计算机四级数据库考试复习资料 一、数据模型 1.数据模型的三要素 (1)数据结构数据结构是所研究的对象类型(Object Type)的集合。这些对象和对象类型是数据库的组成成分。一般可分为两类:一类是与数据类型、内容和其它性质有关的对象;一类是与数据之间的联系有关的对象。前者如网状模型中的数据项和记录,关系模型中的域、属性和关系等。后者如网状模型中的关系模型(set type)。在数据库领域中,通常按照数据结构的类型来命名数据模型,进而对数据库管理系统进行分类。如层次结构、网状结构和关系结构的数据模型分别称作为层次模型、网状模型和关系模型。相应地,数据库分别称作为层次数据库、网状数据库和关系数据库。(2)数据操作数据操作是指对各种对象类型的实例(或值)所允许执行的操作的集合,包括操作及有关的操作规则。在数据库中,主要的操作有检索和更新(包括插入、删除、修改)两大类。数据模型定义了这些操作的定义、语法(即使用这些操作时所用的语言)。数据结构是对系统静态特性的描述,而数据操作是对系统动态特性的描述。两者既有联系,又有区别。(3)数据的约束条件数据的约束条件是完整性规则的集合。完整性规则是指在给定的数据模型中,数据及其联系所具有的制约条件和依存条件,用以限制符合数据模型的数据库的状态以及状态的变化,确保数据的正确性、有效性和一致性。 2.概念模型 数据模型是数据库系统的核心和基础。每个DBMS软件都是基于某种数据模型的。为了把现实世界中的具体事物或事物之间的联系表示成DBMS所支持的数据模型,人们首先必须将现实世界的事物及其之间的联系进行抽象,转换为信息世界的概念模型;然后将信息世界的概念模型转换为机器世界的数据模型。也就是说,首先把现实世界中的客观对象抽象成一种信息结构。这种信息结构并不依赖于具体的计算机系统和DBMS。然后,再把概念模型转换为某一计算机系统上某一DBMS所支持的数据模型。因此,概念模型是从现实世界到机器世界的一个中间层次。现实世界的事物反映到人的大脑之中,然后人们开始认识这些事物,经过选择、命名、分类和组织等抽象工作之 后形成概念模型,并进入到信息世界。 ?用户(user)关心的是现实世界中的事物、事物的属性及其 相互关系。例如,用户可能关心他的顾客及其属性,如顾客地 址、银行帐号等等。用户也关心自己的定货帐目,如谁订的货、 订的什么和订多少等等。 ?系统分析员(analyst)同样也关心现实世界,但是系统分 析员需要分析用户的信息需求。作为需求分析的结果,分析员 必须以文档的形式对需求进行结构化的描述;这个文档就是信 息模型。 ?实体(Entity)实体是构成数据库的基本元素。实体是指一 个存在的东西以区别这个东西所具有的属性和这个东西与其 它东西的联系。实体可以是人,也可以是物;可以是实际对象, 也可以是概念;可以是事物本身,也可以是指事物之间的联系。 ?属性(Attribute)一个实体可以由若干个属性来刻画。属 性是相对实体而言的,是实体所具有的特性。 ?关键字(Key)能唯一地标识实体的属性的集合称为关键字 (或码)。 ?域(Domain)属性的取值范围称作域。 ?实体型(Entity Type)一类实体所具有的共同特征或属性 的集合称为实体型。一般用实体名及其属性来抽象地刻画一类 实体的实体型。 ?实体集(Entity Set)同型实体的集合叫实体集。例如,学 生就是一个实体集。实体集的名即是实体型。对于学生和(学 号,姓名,年龄,系,年级)均是实体型,而学生是对实体型 (学号,姓名,年龄,系,年级)所起的名称,两者是指同一 客观对象。但本科生和研究生可以为相同实体型,而实体集不 同。 ?联系(Relationship)现实世界的事物之间是有联系的。一 般存在两类联系:一是实体内部的组成实体的属性之间的联 系,二是实体之间的联系。在考虑实体内部的联系时,是把属 性看作为实体。一般来说,两个实体之间的联系可分为三种: (1)一对一(1∶1)联系若对于实体集A中的每一个实体, 实体集B中至多有唯一的一个实体与之联系,反之亦然,则称 实体集A与实体集B具有一对一联系,记作1∶1。 (2)一对多(1∶n)联系若对于实体集A中的每个实体,实 体集B中有n个实体(n≥0)与之联系;反之,对于实体集B 中的每一个实体,实体集A中至多只有一个实体与之联系,则 称实体集A与实体集B有一对多联系,记为1∶n。相应地有多 对一(n∶1)联系多对一联系,从本质上说,是一对多联系 的逆转。其定义同一对多联系类似,不再赘述。 (3)多对多(m∶n)联系若对于实体集A中的每一个实体, 实体集B中有n个实体(n≥0)与之联系;反之,对于实体集B 中的每一个实体,实体集A中也有m个实体(m≥0)与之对应, 则称实体集A与实体集B具有多对多联系,记作m∶n。实质上, 多对多联系是任意一种联系。另外,同一实体集内的各个实体 间也可以有各种联系。概念模型的表示方法最常用的是实体一 联系方法(Entity-Relationship Approach),简称E-R方法。 该方法是由P.P.S.Chen在1976年提出的。E-R方法用E-R图 来描述某一组织的概念模型。在这里仅介绍E-R图的要点。在 E-R图中: a)长方形框表示实体集,框内写上实体型的名称。 b)用椭圆框表示实体的属性,并用有向边把实体框及其属性 框连接起来。 c)用菱形框表示实体间的联系,框内写上联系名,用无向边 把菱形框及其有关的实体框连接起来,在旁边标明联系的种 类。如果联系也具有属性,则把属性框和菱形框也用无向边连 接上。 3.三种主要的数据模型 实际DBMS所支持的数据模型主要有三种: ?层次模型(Hierarchical Model) ?网状模型(Network Model) ?关系模型(Relational Model)其中,关系模型是当前DBMS 所支持的数据模型的主流。90年代运行的DBMS几乎都是基于 关系模型的。层次模型和网状模型统称为非关系模型。非关系 模型的结构可以和图论中的图相对应,比较直观,但在理论上 不完备,实现效率较低,故此目前很少用。但是最近,层次模 型在研究面向对象的DBMS中已得到重视。在关系模型中,数

相关文档
最新文档