大家好,又见面了,我是你们的朋友全栈君。
1、外模式、模式、内模式之间的区别及其映射关系
从数据库管理系统角度看,数据库系统通常采用三级模式结构:外模式、模式、内模式,这是数据库管理系统内部的系统结构。在数据模型中有“型”(Type)和“值”(Value)的概念。型是指对某一类数据的结构和属性的说明,值是型的一个具体赋值。数据库系统的模式是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及到型的描述,不涉及具体的值。模式的一个具体值成为模式的一个实例(Instance),同一个模式可以有多个实例。模式是反映数据的结构及其联系的,其实相对稳定的。而实例反映的是数据库某一时刻的状态,其随着数据库中数据的的更新处于相对变动中。
1)模式:(全体数据 1个)也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用、所使用的应用开发工具及高级程序设计语言无关。模式实际上是数据库数据在逻辑上的视图,一个数据库只有一个模式。定义模式时不仅要定义数据的逻辑结构,而且要定义数据之间的联系,定义与数据相关的安全性、完整性要求。
2)外模式:(部分数据(子集) 多个)也称为子模式或用户模式,它是数据库用户所能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。对于不同的用户应用需求,外模式的描述也不同,所以一个数据库可以有多个外模式。另外,同意外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式,即一个用户只能看见和访问其所对应的外模式中的数据。
3)内模式:(内部存储 1个)也称为存储模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,一个数据库只有一个内模式,其对数据库用户是透明的。
由上述可以看出,模式、外模式、内模式是对数据的3个抽象级别,模式是外模式和内模式之间的桥梁。在数据库内部是通过外模式/模式、模式/内模式两层映像将其联系起来,从而为数据提供较高的逻辑独立性和物理独立性。
1)模式描述的是数据的全局逻辑结构,而外模式描述的是数据的局部逻辑结构。当模式改变时,由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变。而应用程序是依据数据的外模式编写的,从而应用程序不必改变,保证了数据与程序的逻辑独立性。
2)模式与内模式描述了数据的全局逻辑结构和存储结构之间的对应关系。当数据库的存储结构改变时,有数据库管理员对模式/内模式映像进行相应的改变,从而保证模式可以保持不变。从而应用程序不用改变,保证了数据的物理独立性。
2、关系数据库管理系统(RDBMS)中模式与视图、基本表之间的对应关系
在关系数据库中,一个关系就对应数据库中的一个基本表(实体表)。支持SQL的RDBMS也支持数据库三级模式结构,其中外模式对应于视图和部分基本表,模式对应于基本表,而内模式对应于存储文件。
1)基本表:它是本身独立存在的表,在SQL中,一个(或多个)基本表对应于一个存储文件,一个表可以带若干索引,索引也可以存放在存储文件中。存储文件的逻辑结构组成了关系数据库的内模式。存储文件的物理结构是任意的,对用户是透明的。
2)视图是从一个或几个基本表导出的表,它本身并不单独存储在数据库中,即数据库中存放视图的定义而不存放视图对应的数据。这些数据仍在导出视图的基本表中,因此视图是一个虚表。
可视化工具查看视图:
它们之间的对应关系如下图所示:
3、索引
索引就是一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它类似于书得目录,不需要查询整本书内容就可以找到想要的数据,索引可以是唯一的,创建索引允许指定单个列或多个列。建立索引是加快查询的有效手段,但是它减慢了数据录入的速度,同时也增加了数据库尺寸大小。
——————— 本文来自 yangqingna_1986 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/yangqingna_1986/article/details/6585085?utm_source=copy
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/163014.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...