数据库系统#2——数据库系统的模式与模型

849 阅读3分钟

数据库系统的标准结构

数据库系统的分层抽象

DBMS管理数据的三个层次

  • User Level:用户层次。某一用户能够看到、处理数据,全局数据中的某一部分;
  • Logic Level:逻辑/概念层次。从全局角度理解/管理的数据。含相关的关联约束;
  • Physical Level:物理层次。存储在介质上的数据,含存储路径、存储方式、索引方式。

数据(视图)与模式

模式

对数据库中数据所进行的一种结构型的描述。

以mysql为例,输入desc citizen查看到的表结构就是模式

image-20200718203624750
image-20200718203624750

视图/数据

某一种表示形式下表现出来的数据库中的数据,也就是模式的具象化

image-20200718203822444
image-20200718203822444

三级模式两层映像

三级模式(三级视图)

  • External Schema——(External) View:外部模式(视图)。某一用户能够看到与处理的数据的结构描述。作用于应用程序(表的抽象)。一般情况下我们说的视图就是这一层面;
  • (Conceptual) Schema——Conceptual View:概念模式(视图)。从全局角度理解/管理数据的结构描述,含相应的关联约束,体现在数据之间的内在本质联系。作用于DBMS层面(表的管理)。一般情况下我们说的模式就是这一层面;
  • Internal Schema——Internal VIew:内部模式(视图)。存储在介质上的数据的结构描述,含存储路径、存储方式、索引方式等。作用与数据库(表的存储)

两层映像

模式之间结构是不相同的,是无法简单关联在一起的。因此我们需要引入新的概念:映像(Mapping)

由上文可知,我们需要两个映像将三个模式关联起来:

  • E-C Mapping: 将外模式映射为概念模式,从而支持实现数据概念视图向外部视图的转换,便于用户观察和使用。
  • C-I Mapping:将概念模式映射为内模式,从而支持是实现数据概念视图向内部视图的转换,便于计算机进行存储和处理

为什么需要这么设计?

三级模式与两层映像组成了我们数据库的标准结构。用户自己定义三层视图,由DBMS帮助我们完成两层映射的实现。在实际应用中,应用程序实际上只对外部视图进行操作。

那为什么需要这么设计呢?

实际上是遵循两个独立性

  • 逻辑数据独立性

    当概念模式变化时,可以不改变外部模式(只需要改变E-C Mapping),从而无需改变应用程序,减少耦合度。

  • 物理数据独立性

    当内部模式变化时,同样只需改变C-I Mapping,从而不改变概念模式,也不需要改变外部模式。

数据模型

概念

数据模型是规定模式统一描述方式的模型,包括数据结构操作约束。模型是对模式本身的抽象,而模式是对数据的抽象。

例如:关系模型就是对一类数据有联系的抽象表形式的模式。关系模型中就是对模型中包含的模式做出要求:每一个具体的模式都拥有不同列名的具体的表,规定了对这类表可以进行哪些操作和约束。

三大经典数据模型

  • 关系模型:表的形式组织数据;
  • 层次模型:树的形式组织数据。通常用来表示两个节点(实体型)之间的联系(系型)。查询效率高,但是结构不够灵活;
  • 网状模型:图的形式组织数据。多个节点之间的联系。表示现实中的关系很清晰明了,但是实现太过复杂,维护不易。

本文使用 mdnice 排版