一、数据库系统模式的概念
在数据模型中有 “型”(type) 和 “值”(value) 的概念。
型:是指对某一类数据的结构和属性的说明
值:是型的一个具体赋值
姓名 | 学号 |
---|---|
张三 | 18101 |
李四 | 18102 |
(姓名、学号)是型
(张三,18101)(李四,18102)是值
模式(schema) 是数据库中 全体数据 的 逻辑结构 和 特征 的描述,仅仅涉及型的描述,不涉及具体的值。
模式的一个具体值称为模式的一个 实例(instance)
同一个模式可以有很多实例。
模式是相对稳定的,实例是相对变动的
例:2012年学生选课数据和2013年学生选课数据对应的实例是不同的,实际上2013年的学生选课数据也是变动的,随着时间的变化,有的学生退学或转系,实例是在变动的,而学生选课数据库模式是不变的。
二、数据库系统的三级模式结构
在SQL中,
外模式 对应于 “视图”和“部分基本表”
模式 对应于 “基本表”
内模式 对应于 “存储文件”
数据库系统的三级模式结构是指数据库系统是由外模式、模式、内模式三级构成的,如下图:
2.1 模式(schema)
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
模式是数据库系统模式的中间层,既不涉及数据的物理存储细节和硬件环境,又与具体的应用程序、所使用的应用开发工具及高级程序设计语言无关。
模式实际上是数据库数据在逻辑上的视图。
一个数据库只有一个模式
2.2 外模式(external schema)
外模式也称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
外模式通常是模式的子集
一个数据库可以有多个外模式
同一外模式可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。
外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问对应的外模式中的数据,数据库中的其余数据是不可见的。
2.3 内模式(internal schema)
内模式也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
一个数据库只有一个内模式
例:记录的存储方式是堆存储还是按照属性值升(降)序存储;索引按照什么方式组织,是B+树索引还是hash索引等。
三、数据库系统的二级映像功能与数据独立性
数据库的三级模式是数据的三个抽象级别,它把数据的具体组织留给数据库系统管理,使用户能够逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。
为了能够在系统内部实现这三个抽象层次的联系和转换,数据库管理系统在这三级模式直接提供了两层映像:
- 外模式/模式映像
- 模式/内模式映像
这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
3.1 外模式/模式映像
模式描述的是数据的全局逻辑结构;外模式描述的是数据的局部逻辑结构。
对应于一个模式,可以有任意多个外模式。
对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系。
外模式/模式映像定义通常包含在各自外模式的描述中。
当模式改变时(例如:增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像做出相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
3.2 模式/内模式映像
数据库中只有一个模式和一个内模式,所以模式/内模式映像是唯一的,它定义的数据全局逻辑结构与存储结构之间的对应关系。
模式/内模式映像的定义通常包含在模式描述中。
当数据库的存储结构改变时(例如:选择了另一种存储结构),由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
四、数据库系统的组成
数据库系统一般由
- 数据库
- 数据库管理系统(及其应用开发工具)
- 应用程序
- 数据库管理员
组成。
五、总结
模式(schema) 是数据库中 全体数据 的 逻辑结构 和 特征 的描述,仅仅涉及型的描述,不涉及具体的值。
模式是相对稳定的,实例是相对变动的
一个数据库只有一个模式
外模式通常是模式的子集
一个数据库可以有多个外模式
一个数据库只有一个内模式
模式直接提供了两层映像:
- 外模式/模式映像
- 模式/内模式映像
外模式/模式映像保证了数据与程序的逻辑独立性
模式/内模式映像保证了数据与程序的物理独立性
数据与程序的独立性使得数据的定义和描述可以从应用程序中分离出去。