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

数据库系统的标准结构

数据库系统的分层抽象

DBMS管理数据的三个层次mysql

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

数据(视图)与模式

模式

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

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

image-20200718203624750

image-20200718203624750数据结构

视图/数据

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

image-20200718203822444

image-20200718203822444spa

三级模式两层映像

三级模式(三级视图)

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

两层映像

模式之间结构是不相同的,是没法简单关联在一块儿的。所以咱们须要引入新的概念:映像(Mapping)设计

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

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

为何须要这么设计?

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

那为何须要这么设计呢?索引

其实是遵循「两个独立性」

  • 逻辑数据独立性

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

  • 物理数据独立性

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

数据模型

概念

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

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

三大经典数据模型

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