第二章:数据库系统结构

1 引言

        数据库系统模式是对数据库中数据的逻辑结构和特征的描述。它是数据库系统内部体系结构的基础,用于组织和管理数据,确保数据的一致性和完整性。模式的概念在数据库设计中起着至关重要的作用,它提供了数据的全局视图,使得数据库管理员和用户能够清晰地理解数据的结构和关系。

1.1 从数据库管理系统角度看

        数据库管理系统是数据库系统的核心,它负责数据的定义、组织、存储、管理和维护。从DBMS角度看,数据库系统结构主要包括以下几个层次或组件:

  1. 应用层
    • 是DBMS与终端用户和应用程序的界面。
    • 负责处理各种数据库应用,如使用结构化查询语言(SQL)发出的事务请求或嵌入通用的程序设计语言的应用程序对数据库的请求。
  2. 语言处理层
    • 由数据定义语言(DDL)编译器、数据操作语言(DML)编译器等组成。
    • 负责完成对数据库语言的各类语句进行词法分析、语法分析和语义分析,生成可执行的代码。
    • 还负责进行授权检验、视图转换、完整性检查、查询优化等。
  3. 数据存取层
    • 将上层的集合操作转换为对记录的操作,包括扫描、排序、查找、插入、删除、修改等。
    • 完成数据的存取、路径的维护以及并发控制等任务。
  4. 数据存储层
    • 由文件管理器和缓冲区管理器组成。
    • 负责完成数据的页面存储和系统的缓冲区管理等任务,包括打开和关闭文件、读写页面、读写缓冲区、页面淘汰、内外存交换以及外层管理等。

        此外,DBMS还通常具有数据定义模块、数据操纵模块、数据库运行管理模块和数据组织、存储和管理模块等功能组件,以实现数据库系统的各种功能。

1.2 从数据库最终用户角度看

        最终用户是数据库系统的直接使用者,他们通过应用程序或接口与数据库进行交互。从最终用户角度看,数据库系统结构主要表现为不同的体系结构和访问方式:

  1. 集中式结构
    • 单用户结构:整个系统都装在一台计算机上,由一个用户独占。这种结构适用于个人或小型团队使用。
    • 主从式结构:一个主机带多个终端的多用户结构,所有处理任务都由主机完成。这种结构适用于中大型系统,但主机的性能要求较高,且存在单点故障的风险。
  2. 分布式结构
    • 客户机/服务器(C/S)结构:将一个数据库分解为客户机、应用程序和服务器三部分,通过网络连接应用程序和服务器。这种结构提高了系统的可扩展性和灵活性,但也需要考虑网络延迟和安全性问题。
    • 多层结构:在C/S结构的基础上增加一层用于转换的服务器,形成三层结构的数据库应用模式。这种结构适用于复杂的大型系统,可以提供更好的性能和安全性。
  3. 访问方式
    • 用户通过应用程序或数据库管理系统提供的接口(如SQL查询语言、图形用户界面等)来访问数据库中的数据。
    • 用户可以根据自己的需求选择适合的访问方式,如查询、插入、更新或删除数据等。

        综上所述,从数据库管理系统角度看,数据库系统结构侧重于数据的处理、存储和管理;而从数据库最终用户角度看,数据库系统结构则主要表现为不同的体系结构和访问方式。这两种视角共同构成了数据库系统的完整视图,使得数据库系统能够满足不同用户的需求并提供高效的数据服务。

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

        数据库系统的三级模式结构包括外模式、模式和内模式,它们共同构成了数据库系统的内部体系结构。

图1 

2.1 外模式(External Schema)

  1. 定义
    • 外模式也称子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。
    • 它是用户与数据库系统的接口,是用户用到的那部分数据的描述,通常由若干个外部记录类型组成。
  2. 特性
    • 外模式是模式的子集,即它反映了数据库中某一部分数据的逻辑结构。
    • 一个数据库可以有多个外模式,以满足不同用户的需求和应用场景。
    • 同一外模式可以为某一用户的多个应用所使用,但一个应用程序通常只能使用一个外模式。
  3. 作用
    • 外模式是保证数据库安全性的有力措施,每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据对他们是不可见的。
    • 它还提供了数据的逻辑视图,使得用户可以根据自己的需求来定制和访问数据。
    • 外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据的不可见的。
    • DBMS提供子模式描述语言(子模式DDL)来严格地定义子模式。

2.2 模式(Schema)

  1. 定义
    • 模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述。
    • 它是所有用户的公共数据视图,反映了数据库的整体逻辑结构。
  2. 特性
    • 一个数据库只有一个模式。
    • 模式定义了数据的逻辑结构,包括数据项的名字、类型、取值范围等,以及数据之间的联系。
    • 它还定义了与数据有关的安全性、完整性要求。
  3. 作用
    • 模式为数据库提供了一个全局的逻辑视图,使得管理员可以全面地管理和维护数据库。
    • 它也是数据库设计和实现的基础,为数据库的开发和应用提供了指导。
    • DBMS提供模式描述语言(模式DDL)来严格地定义模式。
  4. 举例
    • 数据记录由哪些数据项构成,数据项的名字、类型、取值范围等,而且要定义数据之间的联系,定义与数据有关的安全性、完整性药性。

2.3 内模式(Internal Schema)

  1. 定义
    • 内模式也称存储模式,是数据物理结构和存储方式的描述。
    • 它是数据在数据库内部的表示方式,包括数据的存储结构、存取路径等。
  2. 特性
    • 一个数据库只有一个内模式。
    • 内模式定义了数据的物理存储结构,如数据文件的组织形式、索引结构、数据块分配策略等。
    • 它还涉及数据的存取方法,如数据的压缩、加密等。
  3. 作用
    • 内模式为数据库提供了高效的存储和存取机制,使得数据库系统能够快速地响应用户的请求。
    • 通过合理设计内模式,可以提高数据库的存取速度和存储效率,确保数据的安全性和完整性。
    • DBMS提供内模式描述语言(内模式DDL,或存储模式DDL)来严格地定义内模式。

        综上所述,数据库系统的三级模式结构为外模式、模式和内模式。这三个层次相互关联、相互依存,共同构成了数据库系统的完整结构。它们分别从不同的角度为数据库的设计、实现和使用提供了指导和支持。

3 数据库的二级映像功能与数据独立性

        数据库系统的三级模式是对数据的3个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。为了能够在系统内部实现这3个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像:

  • 外模式/模式映像
  • 模式/内模式映像

图2

数据库的二级映像功能与数据独立性是数据库系统中的核心概念,它们确保了数据库系统的灵活性和稳定性,提高了数据管理的效率。以下是从外模式/模式映像、模式/内模式映像两个角度对数据库的二级映像功能与数据独立性的详细阐述:

3.1 外模式/模式映像

  1. 定义

    • 外模式/模式映像(External Schema/Conceptual Schema Mapping)是指将外部模式与概念模式之间的映射关系。
    • 外部模式是指用户或应用程序对数据库的特定视图或子集的定义。
    • 概念模式是指数据库的整体逻辑结构和组织方式。
  2. 作用

    • 外模式/模式映像将外部模式与概念模式解耦,使得数据库系统可以同时支持多个不同的外部模式,并提供数据的独立性和灵活性。
    • 通过外模式/模式映像,数据库系统可以在概念模式的基础上定义不同的外部模式,使得用户能够根据自己的需求定义和操作数据。
  3. 实现数据独立性

    • 逻辑独立性:即使数据库的逻辑结构(概念模式)发生变化,只要外模式保持不变,应用程序就不需要修改。这有助于保护应用程序免受数据库内部结构调整的影响。
    • 通过外模式/模式映像,数据库系统实现了不同用户类型的数据独立性和灵活性,确保了他们能访问和操作与其权限相符的数据,保证了数据的安全性和隐私保护。

3.2 模式/内模式映像

  1. 定义

    • 模式/内模式映像(Conceptual Schema/Internal Schema Mapping)定义数据库全局逻辑结构与存储结构之间的对应关系。
    • 数据库中不仅只有一个模式,而且也只有一个内模式,所以模式/内模式映像是唯一的,它定义了数据全局逻辑结构与储存结构之间的对应关系。
  2. 作用

    • 当数据库的存储设备和存储方法发生变化时,数据库管理员对模式/内模式映像要做相应的改变,使模式保持不变,从而应用程序也不变,保证了数据与程序的物理独立性,简称为数据的物理独立性。
  3. 实现数据独立性

    • 物理独立性:涉及应用程序与数据库的物理存储细节(如文件组织、索引机制等)之间的独立性。通过模式/内模式映像,数据库系统能够在物理存储结构发生变化时,保持应用程序的稳定性和数据的完整性。

3.3 二级映像功能与数据独立性的关系

  1. 二级映像功能

    • 二级映像功能是数据库系统中的一种关键特性,它允许数据的逻辑表示与物理存储之间存在映射关系。
    • 通过二级映像功能,数据库管理系统能够在不改变应用程序的前提下调整数据的物理存储结构或逻辑结构。
  2. 数据独立性

    • 数据独立性是指数据库系统在逻辑结构或物理存储发生变化时,不影响应用程序对数据的访问和操作。
    • 二级映像功能是实现数据独立性的关键机制,它通过将数据的逻辑结构和物理存储结构分离,使得用户在操作数据时不需要关心数据的物理存储细节,只需要关注数据的逻辑结构。
  3. 二级映像功能对数据独立性的支持

    • 二级映像功能通过抽象化数据存储和访问方式,使得数据库系统能够更高效地处理查询请求,减少了物理存储与逻辑结构之间的直接依赖,从而提高了数据处理速度和系统响应时间。
    • 当需要对数据库进行结构调整或优化时,只需修改映射关系而无需直接操作底层数据,这进一步增强了系统的灵活性和可维护性。

        综上所述,数据库的二级映像功能通过外模式/模式映像和模式/内模式映像实现了数据的逻辑独立性和物理独立性。这种独立性使得数据库系统能够更灵活地适应业务需求的变化和技术发展的趋势,提高了数据管理的效率和安全性。