分层设计
主要分为3个层级
物理层
物理层就是描述 数据库如何存储记录,即 数据的实际存储方式,是 how
逻辑层
逻辑层就是描述 数据库中存储数据的结构以及它们之间的关系,即 存储了什么样的数据,是 what
视图层
视图层就是描述 数据的呈现方式,即 哪些数据应该被哪些用户看到,换句话说,不同的用户能够访问不同的数据,是 which
分层设计 如下:
这种设计就是数据库系统 抽象业务数据的方法,各层级之间相互影响小,也就是说改动的影响只局限在被改动的层级,而不会影响其他层级
这样做的好处是,我们可以隐藏数据库系统实现的细节,让用户访问他们能访问的,方便了以后系统功能的扩展等等
三级模式架构
模式
数据库的逻辑结构,其实就有点像是编程语言中的结构体、类这些,主要就是定义数据的结构(类型、关系等等)
三级模式
三级模式其实就对应着三个层级
-
物理模式(内模式)
数据库在 物理层 的设计
-
逻辑模式(概念模式)
数据库在 逻辑层 的设计
-
子模式(外模式)
数据库在 视图层 的设计,即 不同的视图
两级映射
-
概念模式到内模式之间的映射
可以想象一下,我们有一张表,表里记载了很多数据,我们编程或者访问这张表,其实访问的是逻辑层,然后通过概念模式到内模式之间的映射,实际获取到存储在数据库中的数据
换句话说,逻辑层提供给我们访问的是 逻辑上连续 的数据,而实际上的数据可能是很分散的,这主要由物理层的设计决定
总结就是,确保逻辑结构与物理存储之间的一致性,处理数据如何实际存储和访问
-
外模式到概念模式之间的映射
这个映射将用户视图(外模式)与数据库的概念结构(概念模式)关联起来
它定义了用户如何通过其视图访问数据库中的数据,并确保视图中的数据正确映射到概念模式中的数据
三级模式架构图
数据独立性
-
物理数据独立性
物理层的修改不会影响或者说对逻辑层的影响小
-
逻辑数据独立性
逻辑层的修改不会影响或者说对视图层的影响小
三级模式架构的一个例子
我们可以看到,逻辑模式中,有各种各样的表,表中有各种各样的字段(即列),这些表之间可以通过相同的字段(即列)联系起来,比如说我们可以通过一个学生的姓名得到他的家长的名字,这就需要学生信息表和家属信息表(由学号联系起来)
在看到外模式,该模式下有各种各样的视图,针对不同的用户,可以看到这里也有学生信息表,但对比逻辑层中的学生信息表,我们发现少了几个字段,这就是一种视图(不让该用户看到学生的家庭电话等)
最后看到内模式,这个我也不知道咋讲,总之,它的存储方式并不是我们所设想的那样 有序就是了,我们通过概念模式到内模式的映射才能够访问这些 无序 的数据
标签:逻辑,概念模式,架构,数据库,视图,模式,------,数据库系统,数据 From: https://www.cnblogs.com/winter-z/p/18389598