数据库系统的规范构造
数据库系统的分层形象
DBMS 治理数据的三个档次
- User Level:用户档次。某一用户可能看到、解决数据,全局数据中的某一部分;
- Logic Level:逻辑 / 概念档次。从全局角度了解 / 治理的数据。含相干的关联束缚;
- Physical Level:物理档次。存储在介质上的数据,含存储门路、存储形式、索引形式。
数据(视图)与模式
模式
对数据库中数据所进行的一种结构型的形容。
以 mysql 为例,输出 desc citizen
查看到的表构造就是模式
image-20200718203624750
视图 / 数据
某一种示意模式下体现进去的数据库中的数据,也就是模式的具象化
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,从而不扭转概念模式,也不须要扭转内部模式。
数据模型
概念
数据模型是规定模式对立形容形式的模型,包含 数据结构
、 操作
和束缚
。模型是对模式自身的形象,而模式是对数据的形象。
例如:关系模型就是对 「一类」 数据有分割的形象表模式的模式。关系模型中就是对模型中蕴含的模式做出要求:每一个具体的模式都领有不同列名的具体的表,规定了对这类表能够进行哪些操作和束缚。
三大经典数据模型
- 关系模型:表的模式组织数据;
- 层次模型:树的模式组织数据。通常用来示意两个节点(实体型)之间的分割(系型)。查问效率高,然而构造不够灵便;
- 网状模型:图的模式组织数据。多个节点之间的分割。示意事实中的关系很清晰明了,然而实现太过简单,保护不易。