首页 百科知识 数据库语言属于高级语言

数据库语言属于高级语言

时间:2022-06-22 百科知识 版权反馈
【摘要】:3.3 数据库管理系统图书管理员查找一本书时,首先要通过目录检索找到那本书的分类号和书号,然后在书库找到那一类书的书架,并在那个书架上按照书号的大小次序查找,这样很快就能找到所需要的书。数据库管理系统就是从图书馆的管理方法演化而来的。通过数据库管理系统,人们可以方便地管理存储在计算机中的大量数据。第一个数据库管理系统开发于20世纪60年代。

3.3 数据库管理系统

图书管理员查找一本书时,首先要通过目录检索找到那本书的分类号和书号,然后在书库找到那一类书的书架,并在那个书架上按照书号的大小次序查找,这样很快就能找到所需要的书。数据库里的数据就像图书馆里的图书一样,也需要让人们能够方便地找到。如果所有的书都不按规则,胡乱堆在各个书架上,那么借书的人根本就没有办法很快找到他们想要的书。同样的道理,如果把很多数据胡乱地存储在一起,人们同样很难高效率地查找到所需要的东西,这种数据存储的集合对人们来说也是无用的或低效的。数据库管理系统就是从图书馆的管理方法演化而来的。人们将越来越多的资料存入计算机中,并通过一些编制好的计算机程序对这些资料进行管理,例如分门别类存放数据、方便人们查找数据等,这些通用的、执行数据管理的软件后来渐渐标准化为一类系统软件——“数据库管理系统”。通过数据库管理系统,人们可以方便地管理存储在计算机中的大量数据。

3.3.1 数据库与数据库管理系统

计算机发展初期,计算机的应用只局限于科学计算,对计算机操作也需要较高的软、硬件背景知识,它只是科学家手中的“珍品”。随着计算机硬件价格的不断下降,计算机才有可能为广大企业服务,进行数据管理工作,在这种背景下产生了数据库技术。

数据库作为短语最早使用是在1963年6月,System Development Corporation赞助举办了一个题为“以计算机为中心的数据库的开发与管理”(Development and Management of a Computer-centered Database)的研讨会。数据库作为一个独立的单词大量出现在70年代初的欧洲,直到20世纪末才被美国各大报纸使用(数据银行——Databank,一个类似的用法,早在1966年即被《华盛顿邮报》所使用)。

第一个数据库管理系统开发于20世纪60年代。Charles Bachman开发了一款用于数据库管理的软件,主要目的是有效地利用该软件直接访问存储设备,而此前,数据处理是基于钻孔卡和磁带。受Bachman思想的启发,CODASYL开发了网络模型的数据库管理软件,North American Rockwell开发了层次模型的数据库管理软件。1969年,IBM公司为“阿波罗登月”计划设计开发的信息管理系统IMS采用了层次模型,随着阿波罗登月的成功,IMS也一鸣惊人,层次模型开始大规模进入企业管理领域。

层次模型数据库模式的数据结构采用了树状结构,即数据的组织方式满足整个结构中有且只有一个节点无父节点(根节点),其他节点有且只有一个父节点,如图3-4所示。层次模型在表达现实生活语义方面存在缺陷,研究人员为了解决这一问题,研制了基于网状模型的数据库模式。网状模型放松了层次模型的约束条件,即可以允许结构中有多个节点无父节点,一个节点可以有多个父节点,如图3-5所示。

img33

图3-4 系/学生/教研室/教师的层次数据库模式

注:本图中的实线箭头表示节点间逻辑结构、物理存储方面的上下链接关系。

img34

图3-5 学生/选课/课程的网状数据库模式

注:本图中的实线箭头表示节点间逻辑结构、物理存储方面的上下链接关系。

层次模型的数据库模式唤起了世人对数据库技术的兴趣,网状模型的数据库管理系统还没来得及走出实验室,基于关系模型的关系数据库管理系统就已经闪亮登场了,并且真正带领数据库技术走向了繁荣。

关系模型由E.F.Codd于1970年提出,他批评当时的模型结构混淆了信息结构的摘要描述和物理访问机制的描述。而在当时,关系模型只引起人们学术上的兴趣,CODASYL系统和IMS被视为实际的工程学解决方案。首先基于关系模型构建数据库系统的有伯克利大学的Michael Stonebraker和IBM公司,它们分别搭建了各自的实验系统Ingres和System R。Ingres和System R均是研究原形,其成果于1976年公开。第一个基于关系模型的商业产品是1980年左右Oracle公司和IBM公司出品的Oracle和DB2。第一个成功的微机数据库产品是运行于CP/M、PC-DOS、MS-DOS操作系统上的dBASE。时至今日,关系模型仍然是数据库领域的主流模型。

20世纪90年代,数据库领域的重点转向面向对象数据库。在需要处理比关系数据库更加复杂的数据的领域取得了一些成功,如空间数据库、数据工程(包括软件工程库)、多媒体数据。一些思想被关系数据库的供应商所接纳,整合成为其产品中的新功能。

img35

图3-6 学生/选课/课程的关系数据库模式

注:本图中的虚线箭头表示参照引用关系。

说了这么多,数据库到底是什么呢?

数据库是某个企业、组织或部门所涉及的数据的综合,它不仅反映数据本身的内容,而且反映数据之间的联系。

数据库是指长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。这里的数据,是数据库中存储的基本对象,是描述事物的符号记录。它可以表现为数字,也可以表现为文字、图形、图像、声音、语言等。无论哪种形式,最终它们都可以经过数字化后存入计算机,成为数据库管理的对象。

在数据库中是用数据模型(Data Model)这个工具来对现实世界进行抽象的,前面提到的层次模型、网状模型、关系模型都是数据模型。

数据库中的数据除了必须表示客观存在的某种实体(可以是具体的实体,也可以是抽象的实体)外,它还可以表示实体之间客观存在的某种联系。

由于数据库中的数据是反映和记录客观社会生活的,因此其准确度是要求极高的。为避免不必要的错误和产生错误的可能,数据库中存储的数据要求尽可能不重复存储,即表示一件事情的内容只存储在一个地方。同时,为了让更多的人可以同时使用数据库中的数据,数据库技术要求数据库的设计以最优方式为某个特定组织的多种应用程序服务,而数据结构却需要独立于使用它的应用程序,对数据的增加、删除、修改和检索操作由专门软件进行统一管理和控制。

既然对数据库的操作大致相同,即数据库中数据要进行科学地组织和存储,并提供高效存取和维护方法,那么就可以开发一个通用的软件来完成这些功能,这个软件就是数据库管理系统(Data Base Management System,DBMS)。

3.3.2 数据库管理系统的目标

从计算机软件系统的构成看,数据库管理系统是介于用户和操作系统之间的一组软件。它实现了对共享数据的有效组织、管理和提取。

数据库管理系统的功能和性能会因为其针对的目标客户不同而有所差别,如针对中小型客户,数据量不大,安全性要求不高,可以使用FoxPro,Access这样的小型数据库管理系统;针对大型企业,由于其数据量大,系统安全性要求高,则需要使用如Oracle,DB2,SQL Server等大型数据库管理系统。但不管哪种数据库管理系统,它们都应该满足以下目标:

img36

图3-7 数据库应用系统层次图

img37

图3-8 数据库应用系统

(1)用户界面友好

对于数据库管理系统来说,用户界面的友好程度会对其使用起到至关重要的作用,数据库管理系统的用户接口应面向多种用户,面向多种应用。一般来说,友好的用户界面应当具有可靠性、易用性、交互性和多样性等特性。

可靠性:指的是界面要具有一定的容错能力,能够即时正确给出运行状态指示和出错信息,并且能引导用户改正错误。

易用性:尽量减少用户负担,操作方式简单,容易记忆,输入/输出容易理解。

交互性:对用户的应用请求都应在用户心理许可的时间范围内给出响应,即使不能够得出结果,也应该给出一定的响应。

多样性:根据用户背景不同,提供多种接口,适应不同层次用户的需要。

对于初级用户或者初学者,提供以机器主导的会话形式,DBMS给出较多的提示信息;对于熟练用户采用以人为主导的方式,无须过多提示,以便提高处理效率;对于应用程序员提供开发接口,功能全面,方式灵活,满足应用开发需要。

(2)功能完备

数据库管理系统的核心功能随系统大小而异,大型数据库管理系统功能完全,小型数据库管理系统功能虽然少一些,但是定义数据库模式、操纵数据库内数据等基本功能都有。

数据库管理系统主要功能包括数据库定义、数据库数据存取、数据库运行管理、数据组织和存储管理、数据库建立和维护等。

(3)高效率

数据库管理系统应该提供较高的系统效率。系统效率包括两个方面:一方面,是计算机系统内部资源利用率;另一方面是数据库管理系统本身的运行效率,根据系统目标确定恰当的体系结构、数据结构和算法,保证数据库管理系统运行的高效率。

(4)结构清晰

数据库管理系统是一个复杂的系统软件,涉及面广,包括向上与用户的接口,向下与操作系统、软件硬件资源的接口。因此,应该使数据库管理系统内部结构清晰,层次分明,便于自身的设计、开发和维护,以及支持外层开发环境的构造。

(5)开放性

开放性指的是符合标准和规范。遵循标准可以支持异构数据库管理系统的互操作性和可扩展性。

目前,主流数据库管理系统都支持交互式结构化查询语言(Standard Query Language,SQL)。结构化查询语言最初是在1974年由Boyce和Chamberlin提出的,并在IBM公司研制的System R系统上实现。1986年,美国国家标准局(American National Standard Institute,ANSI)的数据库委员会批准了SQL作为关系数据库语言的美国标准。1987年,国际标准化组织(International Organization for Standardization,IOS)也通过了这一标准。SQL语言规范化了几个数据库标准操作命令,如Create,Drop,Select,Insert,Delete等,在绝大部分数据库管理系统中都可以使用。

另外,绝大多数数据库管理系统产品支持标准的开放数据库互连接口,即ODBC。开放数据库互连接口,使得不同数据库管理系统管理的数据库数据可以进行互通、互连,更大限度地实现了数据的共享。

3.3.3 数据库管理系统的基本功能

数据库管理系统主要功能包括数据库定义、数据存取、数据库运行管理、数据组织和存储管理、数据库建立和维护等。针对这些功能,数据库管理系统通过以下几类语言来实现。

(1)数据定义语言

DBMS提供数据定义语言(Data Definition Language,DDL),用户通过它可以方便地对数据库中的数据对象进行定义。

数据定义语言描述的模式,由计算机软件进行编译,转换为便于计算机存储、查询和操纵的格式,完成这个转换工作的程序称为模式编译器。模式编译器处理模式定义主要产生两种类型的数据:数据字典以及数据类型和结构定义。

数据库模式的定义通常有两种方式:交互方式定义模式和通过数据描述语言描述文本定义模式。

①图表方式定义模式。通过屏幕交互方式定义和修改数据模式,包括交互表格设计方式和交互图形设计方式两种。交互方式借助图形化的表格或图形化的工具,操作简单、直观,易于修改。

目前大多数的关系数据库管理系统都提供了这种交互设计表结构的功能。如Access、Visual FoxPro、SQL Server、Oracle等关系数据库的模式定义。对要产生的表结构在屏幕上逐个输入表的字段名、字段类型、字段宽度等。交互表格方式通常用于简单数据类型的描述,对于复杂的数据类型及复杂数据间的复杂关系,不宜采用交互方式定义模式。

交互图形定义数据模式,多用于面向对象的分析和设计过程。用图形和各种符号表示类和对象,以及类和类之间的关系。现在已经出现许多图形化的数据库设计工具软件产品,如IBM的RATIONAL ROSE等。

img38

图3-9 Access中图形化方式定义数据库表

命令行方式定义模式。不同的数据库管理系统提供的定义语言不同,绝大多数关系数据库都使用SQL语言定义关系模式。数据定义语言定义的模式由模式编译器转换为便于计算机操作的格式。

在命令行定义模式中,通过SQL语言中的CREATE语句实现。例如,在数据库中存储学生基本情况,首先需要创建存储学生基本情况的数据结构,这里我们用关系模型来存储学生基本数据,则用SQL创建关系模型的语句如下,假定该关系模型叫Student:

CREATE TABLE Student

(Sno CHAR(10)NOT NULL UNIQUE,//学号不能为空,不能相同

Sname CHAR(20)NOT NULL,//列级完整性约束条件,姓名不能为空

Ssex CHAR(1),

Sage INT,

Sdept CHAR(20))

PRIMARYKEY(Sno);//指定主关键字为学号,实体完整性约束条件

以上SQL语句的含义是,在数据库中创建一个存储结构Student,它由学号(Sno)、姓名(Sname)、年龄(Sage)、所在系(Sdept)构成,其中学号最长由10个字符构成,对任何学生学号不能为空,而且没有重复的学号;姓名最长由20个字符构成,对任何学生都不能没有名字;性别由一个字符构成,年龄由数值构成,所在系编号最长可以由20个字符构成;在Student表结构中,学生学号是主关键字,唯一标识每个学生。

(2)数据库操纵语言

DBMS提供的数据操纵语言DML(Data Manipulation Language,DML)是终端用户、应用程序实现对数据库中的数据进行各种操纵的语言。数据库操纵语言包括如下基本操作:增加数据、删除数据、修改数据、检索数据等,分别对应SQL中标准动词:Insert、Delete、Update、Select。

数据库操纵语言有三种使用形式:交互式命令语言、高级程序设计语言可调用的数据库操纵语言函数(过程)和嵌入式语言。无论采用哪种使用形式,在关系数据库管理系统中,都是以SQL语言来完成数据操纵的。大多数DBMS的数据库操纵语言都提供上述两种或三种使用形式。

①交互式命令语言。交互式命令语言方式可以借助命令行方式,也可以借助于友好的图形交互界面来实现。交互式命令语言语法简单、直观形象、使用方便,目前的关系数据库管理系统都支持SQL语句。图形交互界面也可以实现数据操纵,如图3-10所示,而且几乎所有的DBMS都把提供友好的面向图形的交互界面作为DBMS好用的一个重要指标,通常通过图形界面进行数据操纵,DBMS会将其查询转化为SQL语句。通过图3-10所创建的查询,在Access内部可以转化为图3-11所示的SQL语句。

img39

图3-10 Access中图形查询界面

②高级程序设计语言可调用的数据库操作语言函数(过程)。高级程序设计语言可调用的数据库操纵函数(过程)是面向应用程序设计人员的。应用程序设计员在应用程序中需要访问数据库的地方,调用相应的数据库操纵函数,完成对数据库的访问操作。因此,为了适应各种高级程序设计语言访问数据库的需求,数据库管理系统要提供各种高级程序设计语言对应的调用函数库。例如,开放数据库互连ODBC、数据对象接口ADO等。

img40

图3-11 “图3-10”所示图形化查询工具的SQL视图

图3-12就是在Visual Basic 6.0环境下调用数据库的设计界面。其中的Adodc1就是一个ADO控件,用于连接数据库。它的主要连接函数有ConnectionString和Record-Source,本例中:

ConnectionString具体值为“Microsoft.Jet.OLEDB.4.0;Data Source=D:\教学\Visual Basic\Visual Basic程序设计刘炳文\作业\JS.MDB;Persist Security Info=False”,其含义是这里使用的连接接口是“Microsoft.Jet.OLEDB.4.0”,数据库是“D:\教学\Visual Basic\Visual Basic程序设计刘炳文\作业\JS.MDB”。

RecordSource具体值为“Select* from kc”,其含义是从D:\教学\Visual Basic\Visual Basic程序设计刘炳文\作业\JS.MDB数据库中的kc表中查询所有信息。

img41

图3-12 Visual Basic 6.0环境下连接数据库的ADO控件

经过如上设计之后,该设计环境中的其他内容就可以取自于数据库中的内容了,例如,图3-13中文本框的数据就是来自于ADO控件中的查询信息,这里主要需要设置两个属性的值,DataSource和DataField。本例中,DataSource=Adodc1,DataField=“课程代号”,表示该文本框中将显示kc(注:课程数据库表)中的课程代号内容。

③嵌入式语言。嵌入式语言是把对数据库进行操作的SQL语句嵌入到数据库应用程序设计语言中。如把SQL语句嵌入到C、COBOL、PL/SQL等语言中。

嵌入式SQL语言主要需要解决与主语言的分界问题、通信问题及两种语言处理差异问题。

嵌入式SQL语句通过设定特殊标记来解决分界问题,如用“EXEC SQL BEGIN”作SQL语句的起始,用“EXEC SQL END;”作SQL语句的结束。

img42

图3-13 设置显示ADO控件所连数据库信息

EXEC SQL BEGIN

(SQL语句)

EXEC SQL END;

嵌入式SQL语句与主语言解决通信问题时引入了主变量的定义,主变量是宿主语言中的变量,进入SQL语句块中使用的时候,增加特殊标记,表示其是主变量,例如C语言、PL/SQL中是用冒号来标注的。

SQL语句的查询对象和查询结果通常是一个集合,即包含多条记录,这种处理方式通常称为“一次一集合”方式;而主语言通常一次只能处理一条记录,即“一次一记录”方式。为了解决SQL语言和主语言处理方式不同的问题,SQL语句在嵌入式使用时引入了“游标”的概念,即在内存中开辟出一个缓冲区,当SQL语句返回多条记录时,暂时存放到游标区域,主语言通过游标指针一次读取一个记录进行处理。

实现嵌入式数据库操作通常要对带有嵌入语句的源程序代码进行预处理,转换成主程序语言源代码;再利用主语言编译器生成目标代码,最后产生可执行代码。

(3)数据控制语言

DBMS提供数据控制语言(Data Control Language,DCL)实现对数据库的各种运行控制。数据库控制包括数据库的维护与服务工作。数据库的维护与服务主要指对数据库和数据对象的安全保护,以及数据库的初始化、恢复和重构等。

①数据库的安全性保护机制。数据库的安全性保护机制主要指对数据库访问权限的控制,禁止未授权的用户非法存取他不应存取的数据,或者不能打开未授权使用的数据库。为此,通常采用一些授权控制机制。数据库管理系统采用的主要方法有:

●存取控制。数据库管理系统对访问数据库的用户设置登录的用户名和口令。用户名和口令机制主要防范数据库的非法使用。通过用户名和口令登录后,数据库管理系统只执行用户在权限内的访问请求,拒绝超越该用户权限的访问请求。

对允许使用数据库的用户,授予不同的权限。一个用户只能在他授权范围内访问数据库。例如,数据库的属主(数据库的创建者)对数据库有增、删、改、存取、检索等全部权限。数据库的属主可以对其他人员授予一定的权限,如读取、检索数据库等。那些没有授权使用该数据库的用户,无权打开该数据库。

在SQL标准中,建议使用GRANT,REVOKE进行授权的授予和回收操作。

●数据加密。对于重要数据,数据库管理系统提供加密选项,允许数据加密存放,在使用时由解码程序将数据转换为用户使用的数据形式。这样,非法使用者即使得到数据,也不了解密码数据的含义,增加了对重要数据的安全性保护。

②数据库恢复机制。数据库中存有企业运营所需的大量数据,一旦遇到硬件故障或软件运行失控,导致数据库的完整性遭到破坏,数据库管理系统必须提供机制,将其恢复到故障前的一致状态。

数据库恢复通常采取的措施是建立数据库副本,如定期对数据库进行转储,必要时用副本恢复数据库内数据。使用转储的同时,还要建立日志文件,记录所有更新数据库的操作。进行数据库恢复时,根据日志文件,重新执行某些操作,或撤销某些未完成的操作对数据库造成的不正确的影响。

③数据库的并发控制。数据库中数据的共享程度一直是衡量数据库应用系统好坏的一个重要指标,数据库共享程度高了,意味着同时允许更多的用户使用,因而也需要避免多用户同时存取、更新同一数据而可能产生的“用户读错误数据”、“丢失修改”、“系统死锁”等问题。

数据库管理系统通常引入“事务”的概念,作为解决并发问题的措施之一。在数据库管理系统中的“事务”,是一系列数据库存取操作,数据库管理系统把它们作为一个最小的运行单位,其主要特性是“要么全做,要么全不做”,即事务内的操作序列执行结果先存放到缓冲区中,当遇到事务正常结束的标志时,才一次性地写入硬盘中的数据库;否则,所做的一切操作都不会对数据库产生实质性的改变。

同时,数据库管理系统还引入封锁机制,如在需要读取的数据上加“读锁”,在需要更新的数据上增加“写锁”等。根据并发控制的策略,执行不同级别的封锁协议,如“一、二、三级封锁协议”;根据针对死锁的策略,采取“两段锁协议”等。

④数据库管理系统的服务性功能。数据库服务性功能包括数据库正常运转的很多辅助功能。

●数据出入:数据库初始数据的装入,数据库实施后的数据导入导出、数据在网上的发布,图形的或报表的显示和输出功能等。

●完整性检查:数据完整性约束检查保证数据库中数据的完整性和数据的正确性、有效性。

●运行监控:数据库建立后,需要进行系统性能和运行状态的监控、数据库模式的修改和维护等。

●通信功能:提供与其他程序的通信,包括与操作系统的联机处理,远程数据库的访问处理,Web通讯功能等,以保证事务的正常运行和数据库的正确有效。

3.3.4 数据库管理系统和操作系统

数据库管理系统和操作系统对用户来说都是系统软件,从操作系统角度讲,数据库管理系统只是其上的一个应用软件;数据库管理系统也必须基于操作系统之上,没有操作系统就无法使用数据库管理系统。比较来说,数据库管理系统需要在以下两个方面与操作系统密切合作:

(1)文件管理

数据库包括原始数据、数据库模式以及支持有关访问的辅助结构,如索引等,所有这些都要映像到操作系统的文件中。

当安装一个数据库管理系统或创建一个数据库时,必须定义所需要的文件,其中包括大量的参数,如文件访问方法、存储空间的组织、记录格式和长度以及缓冲区技术等。参数选择得不好会影响导航的效果。

(2)任务管理

现今的操作系统都基于进程并发执行的原理。因此,组织事务的直接方法应当是把每个事务与一个进程联系起来(这里的事务是数据库原理中的概念,其由一条或多条语句构成,其主要特点是“要么不做,要么全做”)。通常有几种选择方案:

①每个进程对应一个事务:即每个并发的事务在单独的一个用户进程(任务)中运行。把数据库管理系统与任务内的事务程序“连接”起来,由操作系统根据它自己的策略实现调度,操作系统的这些策略适合数据库的特殊要求。如果数据库管理系统是不可重入的程序,每个任务都有它自己的数据库管理系统拷贝副本。可重入的程序可同时被多个任务或多个用户使用,常用于多道程序设计和分时系统中。由于任务之间的交叉,数据库管理系统必须保证事务的特性,必须管理几个共享的数据结构,并由操作系统同步对它们访问。这些数据结构将发展成一系列性能的“瓶颈”。

②独立的数据库管理系统进程:为了克服“瓶颈”造成的困难,可以把数据库管理系统组织成一个单独的、永久执行的任务。用户任务和数据库管理系统任务之间的通信由消息完成,用户任务刚好包括事务程序。只有当事务的调度由数据库管理系统任务负责而不是留给操作系统来完成时,这种方式才有实际优点。然而,大量的任务切换会降低系统的性能。

实际系统中,选择哪种策略取决于对具体情况的分析,这类工作由系统管理员负责。

3.3.5 常用数据库管理系统

数据库管理系统,仅次于操作系统从软件开发领域分离出来,成为软件开发行业中独立的部分。在这几十年的发展过程中,涌现出许多出色的数据库管理系统产品,如Oracle、Sybase、Informix、Microsoft SQL Server、Microsoft Access、Visual FoxPro等产品都以自己特有的功能,在数据库市场上占有一席之地。数据库管理系统的发展,也成就了许多创业神话,如以数据库管理系统为主营业务的Oracle公司。

下面简要介绍几种常用的数据库管理系统。

(1)Oracle

Oracle既是商品名称,也是公司名称。它是一个最早商品化的关系型数据库管理系统,也是应用广泛、功能强大的数据库管理系统。Oracle作为一个通用的数据库管理系统,不仅具有完整的数据管理功能,还是一个分布式数据库系统,支持各种分布式功能,特别是支持Internet应用。作为一个应用开发环境,Oracle提供了一套界面友好、功能齐全的数据库开发工具。Oracle使用PL/SQL语言执行各种操作,具有可开放性、可移植性、可伸缩性等功能。特别是从Oracle8i开始,支持面向对象的功能,如支持类、方法、属性等,使得Oracle产品成为一种对象/关系型数据库管理系统。

(2)DB2

DB2是IBM公司出品的数据库管理系统,它内嵌于IBM的AS/400系统上,直接由硬件支持,支持标准的SQL语言,具有与异种数据库相连的GATEWAY。因此它具有速度快、可靠性好的优点。但是,只有硬件平台选择了IBM的AS/400,才能选择使用DB2数据库管理系统。因此移植性差,不同版本的数据结构不兼容。

(3)Microsoft SQL Server

Microsoft SQL Server是微软公司提供的一种典型的关系型数据库管理系统,可以在许多操作系统上运行,它使用Transact-SQL语言完成数据操作。由于Microsoft SQL Server是开放式的系统,其他系统可以与它进行完好的交互操作。目前最新版本的产品为Microsoft SQL Server 2000,它具有可靠性、可伸缩性、可用性、可管理性等特点,为用户提供了完整的数据库解决方案。

(4)MySQL

MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQL AB公司开发、发布并支持的。MySQL AB是由多名MySQL开发人创办的一家商业公司。它是一家第二代开放源码公司,结合了开放源码价值取向、方法和成功的商业模型。“开放源码”意味着任何人都能使用和改变软件;任何人都能从Internet下载MySQL软件,而无须支付任何费用。MySQL软件采用了GPL(GNU,通用公共许可证,http://www.fsf.org/licenses/),定义了在不同情况下可以用软件做的事和不可做的事。

MySQL是一种关联数据库管理系统。关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。这样就增加了速度并提高了灵活性。

(5)Visual FoxPro

Visual FoxPro系列数据库管理系统目前是微软的产品,是中小企业信息系统设计的首选数据库管理系统。

这个系列的产品最初起源于1982年Ashton-Tate公司出品的dBaseⅡ,它简单、易学、易用。其命令格式与英语自然语言接近,被誉为“大众数据库”。但数据类型不丰富,数据精度不高,各数据表文件中字段个数和同时打开的文件数少。1984年6月,Ashton-Tate出品了dBaseⅢ,在dBaseⅡ的基础上增加了日期型、备注型两种数据类型,数据精度提高到16位,同时增加了一些功能。其缺点是只能解释执行,应用程序无法保密,运行速度慢。1986年,Ashton-Tate出品了dBaseⅢPlus,在dBaseⅢ的基础上增加了30多条命令和30多个函数,用户界面更为友好,有了网络版。缺点是速度仍较慢、不带编译器、命令和函数仍有限。1988年,Ashton-Tate出品的dBaseⅣ解决了编译问题,还支持SQL语句,具有网络功能,提供了一系列工具,并由数据库管理系统本身提供保密功能。

1984年,Fox Software公司出品FoxBase,Fox与dBase完全兼容,速度大大优于dBase。1986年,Fox Software公司出品FoxBase+,与dBaseⅢPlus完全兼容,速度大大加快,许多方面有所加强,如提供了编译功能、支持数组,命令和函数更加丰富,拥有更多工具。不久网络版也投放市场,一时间引起轰动。1987年7月Fox Software公司出品的FoxBase+2.0和1988年7月的FoxBase+2.1,不仅速度超越前期产品,而且还扩充了对开发者极其有用的语言,并提供了良好的用户界面和较丰富的工具。1989年,Fox Software公司出品了FoxPro 1.0,它是FoxBase+2.1的换代产品。首次引入了基于DOS环境的窗口技术和菜单系统,它支持鼠标。运行速度比dBaseⅣ快8倍,比FoxBase+2.1快两倍。1991年7月,Fox Software公司出品FoxPro 2.0,使用了Rushmore查询优化技术及第四代语言工具,在性能上大幅提高。它面向对象和事件,还增加了100多条全新的命令与函数,从而使FoxPro程序设计语言成为XBase语言的标准。采用字符环境下的图形界面GUI。第一次引入SQL结构化查询语言及查询设计器,增加了屏幕设计器、菜单生成器、报表生成器和项目管理器等强大工具。

1992年,Fox公司被Microsoft公司收购后推出FoxPro 2.5。FoxPro 2.5以其优越的性能、最快的速度领先于任何其他微机数据库管理软件。其可运行于DOS、Windows、Machitosh、Unix操作系统环境,有相同的图形界面、工具和语言。其紧接着出品了Fox-Pro 2.5的扩充版FoxPro 2.6。1995年9月,Microsoft出品Visual FoxPro 3.0,1998年出品Visual FoxPro 6.0,2001年出品Visual FoxPro 8.0,这几个版本集Wizards技术和Rushmore技术于一体,是继Visual C++、Visual Basic后又一可视化产品。

目前,Visual FoxPro已经成为高等学校、各类专业培训非信息系统专业学生数据库技术介绍的首选软件。

(6)Microsoft Access

作为Microsoft Office组件之一的Microsoft Access是在Windows环境下非常流行的桌面型数据库管理系统。使用Microsoft Access无须编写任何代码,只需通过直观的可视化操作就可以完成大部分数据管理任务。在Microsoft Access数据库中,包括许多组成数据库的基本要素。这些要素是存储信息的表、显示人机交互界面的窗体、有效检索数据的查询、信息输出载体的报表、提高应用效率的宏、功能强大的模块工具等。它不仅可以通过ODBC与其他数据库相连,实现数据交换和共享,还可以与Word、Excel等办公软件进行数据交换和共享,并且通过对象链接与嵌入技术在数据库中嵌入和链接声音、图像等多媒体数据。

3.3.6 数据库管理系统选择原则

林林总总的数据库管理系统很多,企业在信息系统选型的时候最主要关注的是数据库管理系统管理数据的规模,例如针对大中型企业的信息系统应该使用Oracle、DB2、SQL Server之类的数据库管理系统,而对于小企业或小规模应用使用Visual FoxPro、Access即可。通常,选择数据库管理系统时应从以下几个方面予以考虑:

(1)构造数据库的难易程度

需要分析数据库管理系统有没有范式的要求,即是否必须按照系统所规定的数据模型分析现实世界,建立相应的模型;数据库管理语句是否符合国际标准,符合国际标准则便于系统的维护、开发、移植;有没有面向用户的易用的开发工具;所支持的数据库容量,数据库的容量特性决定了数据库管理系统的使用范围。

(2)数据库管理系统的性能分析

包括性能评估(响应时间、数据单位时间吞吐量)、性能监控(内外存使用情况、系统输入/输出速率、SQL语句的执行、数据库元组控制)、性能管理(参数设定与调整)。

(3)程序开发的难易程度

有无计算机辅助软件工程工具的支持。计算机辅助软件工程工具可以帮助开发者根据软件工程的方法提供各开发阶段的维护、编码环境,便于复杂软件的开发、维护。

有无第四代语言的开发平台的支持。第四代语言具有非过程语言的设计方法,用户无须编写复杂的过程性代码,易学、易懂、易维护。

有无面向对象的设计平台的支持。面向对象的设计思想十分接近人类的逻辑思维方式,便于开发和维护。

有无对多媒体数据类型的支持。多媒体数据需求是今后发展的趋势,支持多媒体数据类型的数据库管理系统必将减少应用程序的开发和维护工作。

(4)对分布式应用的支持

对分布式应用的支持包括数据透明与网络透明程度的支持。数据透明是指用户在应用中无须指出数据在网络中的什么节点上,数据库管理系统可以自动搜索网络,提取所需数据;网络透明是指用户在应用中无须指出网络所采用的协议,数据库管理系统自动将数据包转换成相应的协议数据。

(5)并行处理能力

能否支持多CPU模式的系统,负载如何分配,并行处理的粒度、范围等。

(6)扩展性

可扩展性指垂直扩展和水平扩展能力。垂直扩展要求新平台能够支持低版本的平台,数据库客户机/服务器机制支持集中式管理模式,这样保证用户以前的投资和系统;水平扩展要求满足硬件上的扩展,支持从单CPU模式转换成多CPU并行机模式。

(7)数据完整性约束

是否支持数据完整性约束。数据完整性指数据的正确性和一致性保护,包括实体完整性、参照完整性以及用户自定义的完整性规则。

(8)并发控制功能

对于分布式数据库管理系统,并发控制功能是必不可少的。因为它面临的是多任务分布环境,可能会有多个用户点在同一时刻对同一数据进行读或写操作,为了保证数据的一致性,需要由数据库管理系统的并发控制功能来完成。评价并发控制的标准应从下面几方面加以考虑:保证查询结果一致性方法、数据锁的粒度(数据锁的控制范围,表、页、元组等)、数据锁的升级管理功能、死锁的检测和解决方法等。

(9)容错能力

异常情况下对数据的容错处理。评价标准:硬件的容错,有无磁盘镜象处理功能软件的容错,有无软件方法异常情况的容错功能。

(10)安全性控制

安全性控制能力如何。包括安全保密的程度(如账户管理、用户权限、网络安全控制、数据约束等)。

(11)支持汉字处理能力

包括数据库描述语言的汉字处理能力(表名、域名、数据)和数据库开发工具对汉字的支持能力。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈