[数据库]三级模式-两级映像详解

前言

一个数据系统包含了很多部分。作为一个系统,不同的用户看到的信息也是不一样的。

比如一个学校,虽然最终数据都在一个数据库系统中,但是教师、学生、财务、院长能看到的内容、能进入的系统也是不一样的。一个航空公司,客服、财务、用户能看到的内容也是不一样的。

模式(Schema)是对数据库中数据所进行的一种结构性的描述,是观察的数据的结构信息。比如,学生抽象为(学号,姓名,性别,系别,年龄,籍贯),而不涉及具体的值如张三或者李四的详细记录值。模式的一个具体值称为模式的一个实例(instance),如张三的记录(1111222,张三,男,计算机系,19,北京市),实例那就是数据库的一个快照snapshot。

数据库系统的三级模式结构和两层映像可以将数据库恰当的切分开来,不同权限的用户看到的内容不同,而设计者和开发者则需要从全局角度进行理解和管理,另外数据的最后存储和运维也是需要考虑的。

一、三级模式

1.External Schema,外模式或者用户模式

即用户(包括应用程序员和最终用户)所能看到和处理的局部数据的逻辑结构和特征描述。重点是能看到。外模式通常是逻辑模式的子集,一个数据库可以由很多个外模式。例如学籍管理员只能看到学生注册、课程登记和成绩登记相关的数据,而收发人员可以看到收发管理相关的数据,看不到其他的数据。因此,外模式是保证数据库安全性的有力措施。

2.Conceptual Schema,概念模式或者逻辑模式

是从全局角度理解、管理的数据的结构描述,还包含了相应的关联约束。它是数据库系统模式结构的中间层,即不涉及数据的物理存储细节和硬件环境,也与具体的应用程序、所使用的的应用开发工具及高级程序语言无关。即,不管你要安装在浪潮服务器还是云上,操作系统使用CentOS或者Suse,应用程序是手机APP还是Web,使用Java还是Python ,与这个逻辑整体无关。

3.Internal Schema,内模式或存储模式

是数据物理结构和存储方式的描述,包含存储路径、存储方式、索引方式等。一个数据库只有一个内模式。例如,数据存储在磁盘还是主存储器,存储方式是堆存储还是按照某些属性升(降)序排列,或者按照属性值聚簇存储,是否压缩,如何加密存储等,数据存储记录定长还是变长等。

假设我们高数考了99分(多一分怕你骄傲),然后教师和你都能在学校网站查询到这个成绩(外模式),实际呢这个成绩是在一个提前定义好的成绩表里面的(概念模式),然后这个表的数据实际存储在逸夫楼的一层机房的第一个机架的一台X86服务器的磁盘(内模式)里。

二、两级映像

两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

1、外模式/模式映像

外模式/模式的映像:实现外模式到概念模式之间的相互转换。

模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应于同一个模式可以有任意多个外模式。对于每一个外模式,数据库系统都会有一个外模式/模式映像,它定义了该外模式和模式之间的对应关系。这些映像定义通常包含在各自外模式的描述中。

当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变。应用程序是根据数据的外模式编写的,从而应用程序不用修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

2、模式/内模式映像

模式/内模式的映像:实现概念模式到内模式之间的相互转换。

数据库只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在内部是如何表示的。该映像定义通常包含在模式描述中。

当数据库的存储结构改变时(例如选用了另一种存储结构),由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序之间的物理独立性,简称数据的物理独立性。

三、物理独立性与逻辑独立性

1.什么是数据的独立性?

数据的独立性是指数据与程序独立,将数据的定义从程序中分离出来,由DBMS(数据库管理系统)负责数据的存储,从而简化应用程序,大大减少应用程序编制的工作量。数据的独立性是由DBMS的二级映像功能来保证的。数据的独立性包括数据的物理独立性和数据的逻辑独立性。

2.什么是数据的物理独立性?

答:数据的物理独立性是指当数据库的内模式发生改变时,数据的的逻辑结构不变。由于应用程序处理的只是数据的逻辑结构,这样物理独立性可以保证,当数据的物理结构改变了,应用程序不用改变。但是,为了保证应用程序能够正确执行,需要修改概念模式/内模式之间的映像。

3.什么是数据的逻辑独立性?

答:数据的逻辑独立性是指用户的应用程序与数据库结构是相互独立的。数据的逻辑结构发生变化后,用户程序也可以不修改。但是,为了保证应用程序能够正确执行,需要修改外模式/概念模式之间的映像。

4.总结一下

通俗来讲就是如果改变了某个模式,只需要修改上一层的映像。即改变内模式,只需要修改模式/内模式映像(物理独立性),改变概念模式(逻辑结构),只需要修改外模式/模式映像(逻辑独立性)

————————————————

原文链接:https://blog.csdn.net/qq_40406061/article/details/79769799

原文链接:https://blog.csdn.net/JavaEEKing/article/details/109219756

原文链接:https://blog.csdn.net/maizi518/article/details/124966044

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值