一:数据库系统模式的概念
(1)型和值
数据模型中有“型(type)”和“值(value)”的概念
- 型(type):对某一类数据的结构和属性的说明
- 值(value):是型的一个具体赋值
(2)模式和实例
虽然实际的数据库管理系统产品种类很多,它们支持不同的数据模型,使用不同的数据库语言,建立在不同的操作系统之上,数据的存储结构也各不相同,但它们在体系结构上通常都具有相同的特征,即采用三级模式结构(早期微机上的小型数据库系统除外)并提供两级映像功能
模式(schema):是数据库逻辑结构和特征的描述
- 是型的描述
- 反应的是数据的结构及其联系
- 模式相对稳定
实例(instance):模式的一个具体值
- 反映数据库某一时刻的状态
- 同一个模式可以有很多实例
- 实例随数据中的数据的更新而变动
一个数据库只有一个模式,可以把模式看成是唯一的数据库,实例就是数据库里面的多个表
- 所以MYSQL中创建模式其实也就是在创建数据库
二:三级模式
(1)模式(schema)
模式:是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,综合了所有用户的需求,对应概念模式
- 它是数据库模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,又与具体的应用程序、所使用的应用开发工具及高级语言无关
- 一个数据库只有一个模式
- 数据库模式以某一种数据模型为基础,统一考虑所有用户需求,并将这些需求有机结合为一个逻辑整体
- DBMS提供模式DDL来严格定义模式
(2)外模式(external schema)
外模式:是数据库用户(包括程序员和最终用户)能够看见和使用的局部的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑描述
- 外模式通常是模式的一个子集,所以模式与外模式的关系为一对多
- 一个数据库可以有多个外模式,反映了不同用户的需求(比如爱奇艺的付费用户和普通用户)
- 同一个外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式
- 外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的
- DBMS提供外模式DDL来严格定义外模式
(3)内模式(internal schema)
内模式:是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式
- 一个数据库只有一个内模式
三:二级映像
(1)外模式/模式映像
同一个模式可以有任意多个外模式,对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系
当模式改变时( 例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性
(2)模式/内模式映像
当数据库的存储结构改变时( 例如选用了另一种存储结构),由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变。从而应用程序不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性