1.2 数据库系统的特点及组成
1.2.1 数据库系统的特点
与人工管理和文件系统相比,数据库系统的特点主要有以下几个方面。
1.数据结构化
数据库在描述数据时不仅要描述数据本身,还要描述数据之间的联系。在文件系统中,尽管其记录内部已有了某些结构,但记录之间没有联系。数据库系统实现了整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。在数据库系统中,数据不再针对某一应用,而是面向全组织,具有整体的结构化。
2.数据的共享性高,冗余度低,易扩充
数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。
由于数据面向整个系统,是有结构的数据不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充,可以适应各种用户的要求。
3.数据独立性高
数据独立性包括数据的物理独立性和数据的逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。也就是说,数据在磁盘上的数据库中怎样存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不变。
数据独立性是由DBMS的二级映射功能来保证的。
数据与程序的独立,把数据的定义从程序中分离出去,加上数据的存取又由DBMS负责,从而简化了应用程序的编制,大大减少了应用程序的维护和修改的工作量。
4.数据由DBMS统一管理和控制
数据由DBMS统一管理和控制,用户和应用程序通过DBMS访问和使用数据库。数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据。
为此,DBMS还必须提供以下几方面的数据控制功能。
(1)数据的安全性(Security)保护
数据的安全性是指保护数据以防止不合法的使用造成数据的泄密和破坏。使每个用户只能按规定对某些数据以某些方式进行使用和处理。
(2)数据的完整性(Integrity)检查
数据的完整性指数据的正确性、有效性和相容性。完整性检查将数据控制在有效的范围内,或保证数据之间满足一定的关系。
(3)并发(Concurrency)控制
当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果或使得数据库的完整性遭到破坏,因此必须对多用户的并发操作加以控制和协调。
(4)数据库恢复(Recovery)
计算机系统的硬件故障、软件故障、操作员的失误以及故意的破坏也会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失。DBMS必须具有将数据库从错误状态恢复到某一已知的正确状态的功能,这就是数据库的恢复功能。
数据库管理阶段应用程序与数据之间的对应关系可用图1-6表示。
图1-6 数据库系统阶段应用程序与数据之间的对应关系
综上所述,数据库是长期存储在计算机内有组织的大量的共享的数据集合。它可以供各种用户共享,具有最小的冗余度和较高的数据独立性。DBMS在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。
数据库系统的出现使信息系统从以加工数据的程序为中心转向以共享数据库为中心的新阶段。这样既便于数据的集中管理,又有利于应用程序的研制和维护,从而提高了数据的利用率和相容性,提高了决策的可靠性。
1.2.2 数据库系统的组成
数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。
1.硬件平台及数据库
由于数据库系统数据量都很大,加之DBMS丰富的功能使得自身的规模也很大,因此整个数据库系统对硬件资源提出了较高的要求,这些要求如下。
1)要有足够大的内存,存储操作系统、DBMS的核心模块、数据缓冲区和应用程序。
2)有足够大的磁盘等直接存取设备存储数据,有足够的磁带(或微机软盘)作数据备份。
3)要求系统有较高的通道能力,以提高数据传送率。
2.软件
数据库系统的软件主要如下。
1)DBMS。DBMS是为数据库的建立、使用和维护配置的软件。
2)支持DBMS运行的操作系统。
3)具有与数据库接口的高级语言及其编译系统,便于开发应用程序。每种程序设计语言(如Java、PHP、C++、C#等)都需要使用这些数据库接口完成对数据库的访问操作。
4)以DBMS为核心的应用开发工具。
应用开发工具是系统为应用开发人员和最终用户提供的高效率、多功能的应用生成器、第四代语言等各种软件工具。它们为数据库系统的开发和应用提供了良好的环境。
5)为特定应用环境开发的数据库应用系统。
3.人员
开发、管理和使用数据库系统的人员主要是数据库管理员、系统分析员和数据库设计人员、应用程序员和最终用户。不同的人员涉及不同的数据抽象级别,具有不同的数据视图,其各自的职责分别如下。
(1)数据库管理员(DataBase Administrator,DBA)
数据库管理员是全面负责管理和控制数据库系统的一个人或一组人员。具体职责如下。
1)决定数据库中的信息内容和结构。数据库中要存储哪些信息,DBA要参与决策。因此,DBA必须参加数据库设计的全过程,并与用户、应用程序员、系统分析员密切合作、共同协商,做好数据库设计。
2)决定数据库的存储结构和存取策略。DBA要综合各用户的应用要求,和数据库设计人员共同决定数据的存储结构和存取策略,以求获得较高的存取效率和存储空间利用率。
3)定义数据的安全性要求和完整性约束条件。DBA的重要职责是保证数据库的安全性和完整性。因此,DBA负责确定各个用户对数据库的存取权限、数据的保密级别和完整性约束条件。
4)监控数据库的使用和运行。DBA还有一个重要职责就是监视数据库系统的运行情况,及时处理运行过程中出现的问题。比如,系统发生各种故障时,数据库会因此遭到不同程度的破坏,DBA必须在最短时间内将数据库恢复到正确状态,并尽可能不影响或少影响计算机系统其他部分的正常运行。为此,DBA要定义和实施适当的后备和恢复策略,如周期性地转储数据、维护日志文件等。
5)数据库的改进和重组重构。DBA还负责在系统运行期间监视系统运行状况,依靠工作实践并根据实际应用环境,不断改进数据库设计。在数据运行过程中,大量数据不断插入、删除、修改,时间一长,会影响系统的性能。因此,DBA要定期对数据库进行重组织,以提高系统的性能。当用户的需求增加和改变时,DBA还要对数据库进行较大的改造,包括修改部分设计,即数据库的重构造。
(2)系统分析员和数据库设计人员
系统分析员负责应用系统的需求分析和规范说明,要和用户及DBA相结合,确定系统的硬件和软件配置,并参与数据库系统的概要设计。在很多情况下,数据库设计人员由数据库管理员担任。
(3)应用程序员
应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。
(4)用户
这里的用户是指最终用户(End User)。最终用户通过应用系统的用户接口使用数据库。常用的接口方式有浏览器、菜单驱动、表格操作、图形显示、报表书写等,给用户提供简明直观的数据表示。
注意:数据库、数据库管理系统、数据库系统是三个不同的概念。数据库强调的是相互关联的数据;数据库管理系统强调的是管理数据库的系统软件;而数据库系统强调的是基于数据库技术的计算机系统。