数据库系统(Data Base System,DBS)
目录
|
数据库系统是指在计算机系统中引入数据库后构成的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。
数据库系统是一个由硬件、软件(操作系统、数据库管理系统和编译系统等)、数据库和用户构成的完整计算机应用系统。数据库是数据库系统的核心和管理对象。因此,数据库系统的含义已经不仅仅是一个对数据进行管理的软件,也不仅仅是一个数据库,数据库系统是一个实际运行的,按照数据库方式存储、维护和向应用系统提供数据支持的系统。
20世纪60年代后期,使用电子计算机进行数据处理的规模越来越大,同时出现了大容量且价格低廉的磁盘存储器,操作系统也日渐成熟。为了解决数据的独立性问题,实现数据的统一管理,达到数据共享的目的,出现了数据库技术。数据库技术从20世纪60年代中期产生到今天,仅仅30多年的历史,经历了三代演变,发展成为以数据建模和DBMS核心技术为主,内容丰富的一门学科;带动了一个巨大的软件产业——DBMs产品及其相关工具和解决方案。数据库技术取得了巨大的成功,从第一代层次与网络数据库系统和第二代关系数据库系统,发展到第三代以面向对象数据库模型为主要特征的新一代数据库系统。
是20世纪70年代研制的层次和网状数据库系统。1963年,Bachman设计开发的IDS系统开始投入运行,它可以为多个COBOL程序共享数据库;1968年,TOTAL等网状数据库系统开始出现;1969年,IBM公司McGee等人开发的层次式数据库系统的IMS系统发表,它可以让多个程序共享数据库。1969年lo月,CODASYL数据库研制者提出了网络模型数据库系统规范报告,使数据库系统开始走向规范化和标准化。1971年,美国数据库系统语言协会下属的数据库任务组对网络数据库方法进行了系统的研究、探讨,提出了称为DBTG报告的若干报告,DBTG报告确定并建立了网络数据库系统的许多概念、方法和技术,提出了三级抽象模式,即对应用程序所需的那部分数据结构描述的外模式,对整个客体系统数据结构描述的概念模式,对数据存储结构描述的内模式,解决了数据独立性的问题,标志着数据库在理论上的成熟。正因为如此,许多专家认为数据库技术起源于20世纪60年代末。
是关系数据库系统。1970年IBM公司Codd发表了题为“大型共享数据库数据的关系模型”的论文,提出了关系数据模型,开创了关系数据库方法和关系数据库理论。关系方法由于其理论上的完美和结构上的简单,对数据库技术的发展起了至关重要的作用,成功地为关系数据库技术奠定了理论基础。20世纪70年代是关系数据库理论研究和原型系统开发的时代。关系数据库系统的研究取得了一系列的成果,主要包括以下几个方面:
(1)奠定了关系模型的理论基础,给出了被人们普遍接受的关系模型的规范说明。
(2)提出了关系数据语言,如关系代数、关系演算、SQL语言、QBE等。这些描述性语言一改以往程序设计语言和网状、层次数据库语言的面向过程的风格,以其易学易懂的优点得到了最终用户的欢迎,为20世纪80年代数据库语言标准化打下了基础。
(3)研制了大量的关系数据库系统原型,攻克了系统实现中查询优化、并发控制、故障恢复等一系列关键技术。不仅大大丰富了数据库管理系统实现技术和数据库理论,更重要的是促进了关系数据库系统产品的蓬勃发展和广泛应用。
20世纪80年代以来,数据库理论和应用进入成熟发展时期。随着计算技术和计算机网络的发展,计算机应用领域迅速扩展,数据库应用领域也在不断地扩大,数据库技术在商业领域的巨大成就刺激了其他领域对数据库需求的迅速增长。一方面,新的数据库应用领域,如计算机辅助设计/管理(CAD/CAM)、过程控制、办公自动化系统、地理信息系统(GIS)、计算机制造系统(CIMS)等,为数据库的应用开辟了新的天地;另一方面,在实际应用中管理方面的新需求也直接推动了数据库技术的研究与发展。
以关系数据库为代表的传统数据库已经很难胜任新领域的需求,因为新的应用要求数据库能处理复杂性较高的数据,如处理与时间有关的属性,甚至还要求数据库有动态性和主动性。这样就必须有新的数据库技术才能够满足现实需要,为了满足现代应用的需求,必须将数据库技术与其他现代数据处理技术(如面向对象技术、时序和实时处理技术、人工智能技术、多媒体技术)完善地集成,以形成“新一代数据库技术”,也可称为“现代数据库技术”,如时态数据库技术、实时数据库技术和多媒体数据库技术等。第三代数据库系统中最主要的数据库类型是面向对象数据库系统(objectorienteddatabasesystem,简称OODBS),它是数据库技术与面向对象程序设计方法相结合的产物,它既是一个DBMS,又是一个面向对象系统。因而既具有DBMS特性,如持久性、辅助管理、数据共享(并发性)、数据可靠性(事务管理和恢复)、查询处理和模式修改等,又具有面向对象的特征,如类型/类、封装性/数据抽象、继承性、对象标识、复合对象和可扩充等特性。
用数据库系统来管理数据具有如下特点:
在描述数据时不仅要描述数据本身,还要描述数据之间的联系。数据结构化是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。在同一数据库中,各个数据文件存在联系,且在整体上服从一定的结构形式(图)。
共享性高:数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,这样可以减少数据冗余,节约存储空间。即数据库中的数据可以被多个用户、多个应用同时使用。
冗余度低:冗余度是指同一数据被重复存储的程度,数据库系统由于数据结构化,使得冗余度可能降到最低程序。
易扩充:由于设计时主要考虑数据结构化,即面向系统,而不是面向某个应用,所以容易扩充。
数据共享和减少冗余还能避免数据之间的不相容性和不一致性。
不相容性:例如,某人工作了两个部门,1986-1990年在甲部门,19901996年在乙部门,在写档案材料时,甲部门写成了1986-1990年,由于信息不共享,加之工作疏忽,乙部门写成了1989-1996年,即造成了不相容,两部门间重复了1年。
不一致性:例如,某职工为“李萍”,由于信息不共享,系别输入的姓名为“李萍”,但工资记录输入的姓名为“李平”,即造成了不一致。
由于应用程序取数不是直接从数据库中取数,而是通过DBMS间接取数,故保持了应用与数据库数据的物理独立性和逻辑独立性。所谓物理独立性是指:当数据的存储结构(或物理结构)改变时,通过DBMS的相应改变可以保持数据的逻辑结构不变,从而应用程序也不必改变。逻辑独立性是指:当数据的总体逻辑结构改变时,通过DBMS的相应改变可以保持数据的局部逻辑结构不变,应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必改变。
由于数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中同一个数据。为此DBMS必须提供以下几方面的数据控制功能:
(1)数据的安全性保护指保护数据,防止不合法使用数据造成数据的泄密和破坏,使每个用户只能按规定,对某些数据以某些方式进行访问和处理。
(2)数据的完整性检查指数据的正确性、有效性和相容性。即将数据控制在有效的范围内,或要求数据之间满足一定的关系。
正确性:如输入工资时,应该输入数值,而实际输入了字符,即不正确。
有效性:如输人年龄时,应该输人0~150之间的数据,而实际输入了-5,即无效。
相容性:如输入饲料配比百分比时,应该5种原料百分比之和加起来为100,而实际输入数据加起来大于100,即不相容。
(3)并发控制指控制多个用户同时存取、修改数据库中的数据,以保证数据库的完整性。例如,多个用户可以同时读,但同一时间只能允许一个用户写数据。
(4)数据库恢复指将数据库从错误状态恢复到某一已知的正确状态(亦称为完整状态或一致状态)的功能。计算机系统的硬件故障、软件故障、操作员的失误,以及故意的破坏均会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失。
数据库系统的组成如下图所示。
数据库系统的硬件包括计算机的主机、键盘、显示器和外围设备(例如打印机、光盘机、磁带机等)。由于一般数据库系统所存放和处理的数据量很大,加之DBMS丰富的功能软件,使得自身所占用的存储空间很大,因此整个数据库系统对硬件资源提出了较高的要求。这些要求是:①有足够大的内存以存放操作系统、DBMS的核心模块、数据缓冲区和应用程序;②有足够大的直接存取设备存放数据(如磁盘),有足够的存储设备来进行数据备份;③要求计算机有较高的数据传输能力,以提高数据传送率。
数据库系统的软件除了数据库管理系统之外,还包括操作系统各种高级语言处理程序(编译或解释程序)、应用开发工具软件和特定应用软件等。应用开发工具包括应用程序生成器和第四代语言等高效率、多功能的软件工具,如报表生成系统、表格软件、图形编辑系统等。它们为数据库系统的应用开发人员和最终用户提供了有力的支持。特定应用软件是指为特定用户开发的数据库应用软件,如基于数据库的各种管理软件、管理信息系统(MIS)、决策支持系统(DSS)和办公自动化(OA)等。
数据是数据库的基本组成,是对客观世界所存在事物的一种表征,也是数据库用户的操作对象。数据是数据库系统,也是企业或组织的真正财富。数据应按照需求进行采集并有结构地存人数据库。由于数据的类型多样性,数据的采集方式和存储方式也会不同。数据作为一种资源是数据库系统中最稳定的成分,即硬件可能更新,甚至软件也可以更新,但只要企业或组织的性质不改变,数据将是可以长期使用的财富。数据库中的数据具有如前所述的集合、共享、最少冗余和能为多种应用服务的特征。
数据库用户是管理、开发、使用数据库的主体。根据工作任务的差异,数据库用户通常可以分成终端用户、应用程序员和数据库管理员等3种不同类型。
终端用户使用数据库系统提供的终端命令语言,或者菜单驱动、表格驱动、图形显示和报表生成等对话方式,来存取和应用数据库中的数据。这类人员是一些并不精通计算机和程序设计的各级管理人员,但必须接受必要的数据库应用培训。
应用程序员是负责设计和编制应用程序的人员。他们通常使用C语言、数据库语言或4GL(第四代语言)等来设计和编写应用程序,供终端用户使用。应用程序员不仅要求具有较高的技术专长,而且还要具备较深的资历,熟悉部门全部数据的性质和用途,兼有系统程序员、系统分析员的能力。其具体职责是:①决定数据库的内容和结构;②决定数据库的存储结构和存取策略,使数据的存储空间利用率和存取效率均较优;③定义数据的安全性要求和完整性约束条件;④根据终端用户的需要,设计和编制各种功能强劲的应用程序。
对于应用程序员而言,有两个重要的工具是必需的,一个是系列的实用程序(DBMS的装配、重组日志、恢复、统计等程序);另一个是数据字典(存储数据库结构的定义、记录类型和字段定义等信息)。数据库系统建立时,DBA还必须和系统分析员一起负责应用系统的需求分析和规范说明,确定系统的软硬件配置并参与数据库的设计。
数据库管理员(data basead ministrator,DBA)是指全面负责数据库系统的日常管理、维护和运行的人员。DBA处于终端用户与应用程序员之间,是数据库系统能否正常运转的关键,大型数据库系统需要设置专门的管理办公室。其职责是监督控制数据库的使用和运行,实施数据库系统的维护、改进和重组,开展信息社会化服务。
对于不同规模的数据库系统,用户的人员配置是不相同的。只有大型数据库系统才配备有应用程序员和数据库管理员。应用型微机数据库系统比较简单,其用户通常兼有终端用户和数据库管理员的职能,但必要时也应当兼有应用程序员的能力。