数据库系统的三级模式与两层映像:一个汉堡店的生动解析
数据库系统的三级模式与两层映像:一个汉堡店的生动解析
数据库系统的三级模式结构是理解数据库设计和管理的基础。本文将通过一个汉堡店的例子,帮助读者更好地理解这些抽象的概念。
数据库系统的三级模式结构
模式(逻辑模式)
- 数据库全体数据的逻辑结构和特征的描述
- 所有用户的公共数据视图
- 中间层逻辑级
外模式(子模式/用户模式)
- 数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述
- 数据库用户的数据视图
- 与某一应用有关的数据的逻辑表示
- 模式的子集
内模式(存储模式)
- 一个数据库只有一个内模式
- 数据物理结构和存储方式的描述
- 数据在数据库内部的组织方式
数据库的二级映像
外模式/模式映像
- 定义外模式与模式之间的对应关系
- 当模式改变时,由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变
- 应用程序仅依据外模式编写,保证数据的逻辑独立性
模式/内模式
- 定义数据全局逻辑结构与存储结构之间的对应关系
- 当存储结构改变时,由数据库管理员对各个模式/内模式的映像作相应改变,可以使模式保持不变,从而应用程序也不必改变,保证物理独立性
生活化案例解析
为了更好地理解这些概念,让我们通过一个汉堡店的例子来说明:
假设你想吃汉堡,要那种:两片烤的香喷喷的面包皮,中间夹着令人疯狂分泌唾液的肉和菜,简直就是人间仙品,但具体口味你还没想好。于是你来到一家汉堡店,看着菜单栏上的香辣鸡腿堡,新奥尔良烤鸡腿堡,双层嫩牛堡,藤椒风味鸡排堡……
汉堡的概念与数据库模式的类比
汉堡,所有人都知道它大致的样子,就像上面描述的一样(两块面包皮夹着肉和菜)。这就是汉堡的概念,我们可以把它看做数据库的逻辑模式即模式,也就是三层模式结构的中间层。
菜单上的各种口味与外模式的类比
那么菜单上的各种口味的汉堡分身,就可以视为外模式(用户模式)。鸡肉,牛肉还是素食,全都由用户直接接触和选择。你可以看到,且只能看到你选择的这款汉堡,在两片面包皮里加了什么,以及它的价格等。但你不可能知道它的制作方法,面包皮里有多少面粉,调味酱里到底加了什么。
汉堡的制作和存储秘方与内模式的类比
而内模式就可以是汉堡的制作和存储秘方,像美味蟹黄堡秘方一样,痞老板不知道,比奇堡居民不知道,同样你也不知道。但蟹黄黄堡秘方决定了蟹黄堡的制作流程,配料,比例等等,就像数据需要规定排序方式,存储记录结构等等。
外模式/模式映像的类比
外模式/模式映像就像是餐厅的菜单与顾客点的汉堡之间的关系。餐厅的菜单(模式)提供了所有可供选择的汉堡种类(外模式),顾客根据自己的喜好(用户视图)选择特定的汉堡。即使餐厅内部改变了某些汉堡的配方(模式的变更),只要这些变更不影响顾客点的汉堡(外模式),顾客就不需要知道这些变化(可能它为了提高盈利悄悄减少了配方的沙拉酱含量,从原来的两圈变成一圈,但店家才不会告诉你嘞)。
模式/内模式映像的类比
模式与内模式之间的映像就像是餐厅的后厨与菜单之间的关系。餐厅的菜单(模式)定义了汉堡的组成,而后厨(内模式)负责具体的制作和存储。如果后厨改变了烹饪方法(内模式的变更),比如今天的鸡排少炸了10秒,只要这些变更不影响菜单上汉堡的描述(概念模式),顾客也不需要知道这些变化,吃就完了!
通过这个生活化的例子,我们可以更直观地理解数据库系统的三级模式和两层映像的概念。这种类比方法可以帮助初学者更好地掌握数据库设计的基本原理。