在一个数据库系统中,不同的用户从不同的角度看待数据库,会形成不同的视图结构。
- 从DBA的角度来看, 数据库系统分为:
- 内部系统结构:
- 模式
- 外模式
- 内模式
- 外部系统结构:
- 集中式结构
- 分布式结构
- 并行结构
- 内部系统结构:
- 从数据库系统的用户(如应用程序开发人员)来看——数据系统的运行和应用结构
- 客户/服务器结构,CS
- 浏览器/服务器结构,BS
一、数据库系统的三级模式结构
所有的DBMS都遵循美国 ANSI/SPARC 数据库管理研究组提出的三级模式结构:外模式(用户级)、模式(概念级)、内模式(物理级)。
1.模式,概念模式,逻辑模式,Schema
模式:是数据库中全体数据的逻辑结构和特征的描述,是数据库的全局概念视图。
模式定义了数据的逻辑结构、数据之间的联系,以及数据的安全性、完整性要求。
模式与数据的物理存储细节、硬件环境无关,也与具体的应用程序、开发工具、开发语言无关。
一个数据库只能有一个模式。
P.S. 模式可以简单的理解为 表、主键、外键、视图、约束等,并且属于所有用户(不属于特定用户)。
2.外模式,子模式,用户模式,subSchema
外模式:是数据库用户(包括程序员和终端用户)能够看见和使用的,局部数据的逻辑结构和特征的描述。
外模式是用户视图,是模式的子集,它和某个应用所需的数据紧密联系。
外模式还能够对模式的局部数据重构。
模式中同样的数据,在外模式中其结构、类型、长度、权限都可以不同。
外模式可以保证数据库安全,还可以简化数据库系统的用户接口,并支持了数据的独立性和共享性。
3.内模式,存储模式,storage schema
内模式:是对数据库中数据的物理结构和存储方式的描述,是数据在数据库内部的表示形式。
内模式是数据库的最底层,但并非物理层!它仍然属于逻辑描述,比如:
记录、索引、文件的组织方式,存储数据时采用顺序结构存储还是B树结构存储,数据是否压缩是否加密等。
而非具体的物理方法:柱面、磁道的大小等,那些属于文件系统的范畴。
4. 三级模式结构的两层映像,与数据独立性
三级模式是对数据的三级抽象,三级抽象具有如下的特点:
- 概念模式独立于内模式和外模式(它只和业务相关),是数据库的核心,也是数据库设计的关键
- 内模式依赖于概念模式,但独立于外模式和存储设备。
- 外模式依赖于模式和具体的应用程序,独立于内模式和存储设备。
- 应用程序依赖于外模式,独立于模式和内模式
为了有效支撑三级抽象,DBMS提供了两层映像(映像就是对应规则,指出双方如何转换的)
- 外模式/模式映像:定义了各个外模式和模式之间的映像关系,这些映像存在于外模式中。每一个外模式都有一个外模式/模式映像。如果模式发生变化,DBA会对各个外模式/模式映像进行更新,以尽量保持外模式不变,实现数据与程序的逻辑独立性。
- 模式/内模式映像:定义了概念模式和内模式之间的对应关系,通常存在于概念模式中。模式/内模式映像只有一个。当内模式发生改变时,DBA会修改模式/内模式映像,使模式保持不变,实现了数据与程序的物理独立性。
二、数据库系统的运行与应用结构
1. 客户/服务器结构,CS
- 客户端/前台/表示层:命令行客户端、GUI管理工具、应用程序
- 服务器/后台/数据层:DBMS
2. 浏览器/服务器结构,BS
BS结构:基于WEB应用的客户/服务器结构,也称为”三层结构“。
- 表示层:数据库使用者的操作和展示界面,通常指浏览器。
- 处理层:也称为中间层,负责处理具体的应用逻辑。
- 数据层:DBMS。
处理层+ 数据层,称为”胖服务器“。