任务1-5 明确数据库系统的组成和结构

【任务分析】

设计人员现在的任务是明确数据模型怎样在计算机上实现,同时理解与之相关的基本概念。

【课堂任务】

如何在计算机上实现对数据的管理,本节的任务是明确数据在计算机上的存在形式。

● 数据库相关概念

● 数据库系统的体系结构

(一)数据库相关概念

1. 数据库

数据库(Data Base,DB)是长期存放在计算机内、有组织的、可共享的相关数据的集合,它将数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性、可被各类用户共享等特点。

2. 数据库管理系统

数据库管理系统(Data Base Management System,DBMS)是位于用户与操作系统(OS)之间的一层数据管理软件,它为用户或应用程序提供访问数据库的方法,包括数据库的创建、查询、更新及各种数据控制,它是数据库系统的核心。数据库管理系统一般由计算机软件公司提供,目前比较流行的DBMS有Oracle、Access、SQL Server、MySQL、PostgreSQL等。

数据库管理系统的主要功能包括以下几个方面。

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

(2)数据操纵。DBMS还提供数据操纵语言(Data Manipulation Language,DML),用户可以使用DML操纵数据实现对数据库的基本操作,如查询、插入、删除和修改等。

(3)数据库的运行管理。数据库在创建、运用和维护时由DBMS统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。

(4)数据库的创建和维护。数据库的创建和维护包括数据库初始数据的输入、转换,数据库的转储、恢复,数据库的组织和性能监视、分析等。这些功能通常是由一些实用程序完成的。

3. 数据库应用系统

凡使用数据库技术管理其数据的系统都称为数据库应用系统(Data Base ApplicationSystem,DBAS)。数据库应用系统的应用非常广泛,它可以用于事务管理、计算机辅助设计、计算机图形分析和处理及人工智能等系统中。

4. 数据库系统

数据库系统(Data Base System,DBS)是指在计算机系统中引入数据库后的系统,它由计算机硬件、数据库、数据库管理系统(及其开发工具)、数据库应用系统、数据库用户构成。

数据库用户包括数据库管理员、系统分析员、数据库设计人员及应用程序开发人员和终端用户。

数据库管理员(Data Base Administrator,DBA)是高级用户,他的任务是对使用中的数据库进行整体维护和改进,负责数据库系统的正常运行,他是数据库系统的专职管理和维护人员。

系统分析员负责应用系统的需求分析和规范说明,要和用户及DBA结合,确定系统的硬件软件配置,并参与数据库系统的概要设计;数据库设计人员负责数据库中数据的确定、数据库各级模式的设计;应用程序开发人员负责设计和编写应用程序的程序模块,并进行调试和安装。

终端用户是数据库的使用者,主要是使用数据,并对数据进行增加、删除、修改、查询、统计等操作,方式有两种:使用系统提供的操作命令和程序开发人员提供的应用程序。在数据库系统中,各组成部分的层次关系如图1.7所示。

图1.7 数据库系统层次示意图

(二)数据库系统的体系结构

数据库的体系结构分为三级模式和两级映像,如图1.8所示。

图1.8 数据库的体系结构

数据库的三级模式结构是数据的3个抽象级别,它把数据的具体组织留给DBMS去处理,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。

三级结构之间的差别往往很大,为了实现这3个抽象级别的联系和转换,DBMS在三级结构之间提供了两级映像(Mapping):外模式/模式映像、模式/内模式映像。

正是这两级映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

1. 模式

模式(Schema)也称概念模式(Conceptual Schema)或逻辑模式,是对数据库中全部数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也不涉及具体的应用程序及使用的应用开发工具和高级程序设计语言。

模式实际上是数据库数据在概念级上的视图,一个数据库只有一个模式。模式通常以某种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。定义模式时不仅要定义数据的逻辑结构,如数据记录由哪些数据项构成,数据项的名称、类型、取值范围等,而且要定义数据项之间的联系、不同记录之间的联系,以及与数据有关的完整性、安全性等要求。

完整性包括数据的正确性、有效性和相容性。数据库系统应提供有效的措施,以保证数据处于约束范围内。

安全性主要是指保密性。不是任何人都可以存取数据库中的数据,也不是每个合法用户可以存取的数据范围都相同,一般采用口令和密码的方式对用户进行验证。

数据库管理系统提供模式描述语言(Schema Data Definition Language,SDDL)来定义模式。

2. 外模式

外模式(External Schema)也称子模式(Subschema)或用户模式,它是对数据库用户(包括程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,即个别用户涉及的数据的逻辑结构。

外模式通常是模式的子集,一个数据库可以有多个外模式。外模式是根据用户自己对数据的需要,从局部的角度设计,因此如果不同的用户在应用需求、看待数据的方式、对数据保密的要求等方面存在差异,则其外模式描述也不同。一方面即使是模式中的同一数据,在外模式中的结构、类型、长度、保密级别等也可以不同;另一方面,同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。

外模式是保证数据库安全性的一个有效措施,每个用户只能看见或访问对应的外模式中的数据,数据库中的其余数据是不可见的。

数据库管理系统提供外模式描述语言(外模式DDL)来定义外模式。

3. 内模式

内模式(Internal Schema)也称存储模式(Storage Schema)或物理模式,一个数据库只有一个内模式。内模式是对数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定等。

内模式的设计目标是将系统的模式(全局逻辑结构)组织成最优的物理模式,以提高数据的存取效率,改善系统的性能指标。

数据库管理系统提供内模式描述语言(内模式DDL)来定义内模式。

4. 外模式模式映像

模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构,同一个模式可以有任意多个外模式。对于每个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系。这些映像定义通常包含在各自外模式的描述中。

5. 模式内模式映像

因为数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的,它定义了数据库全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在内部是如何表示的。该映像定义通常包含在模式描述中。

6. 两级数据独立性

数据独立性(Data Independence)是指应用程序和数据库的数据结构之间相互独立,不受影响。

(1)逻辑数据独立性。当模式改变时(如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,因而应用程序不必修改,保证了数据与程序的逻辑独立性,简称逻辑数据独立性。

(2)物理数据独立性。当数据库的存储结构改变了(如选用了另一种存储结构),由数据库管理员对模式/内模式映像做相应改变,可以保证模式保持不变,因而应用程序也不必改变。保证了数据与程序的物理独立性,简称物理数据独立性。

特定的应用程序是在外模式描述的数据结构上编制的,它依赖于特定的外模式,与数据库的模式和存储结构相独立。不同的应用程序可以共用同一外模式。数据库的两级映像保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改。

数据与程序之间的独立性,使数据的定义和描述可以从应用程序中分离出去。另外,数据的存取由DBMS管理,用户不必考虑存取路径等细节,从而简化了应用程序的编写,大大减少了对应用程序的维护及修改工作。