软考之路(六)---数据库---深入浅出 三层模式两级映像

在备课数据库的时候,再一次遇到这三个概念,兴奋起来了,这次务必要转化为自己的话说出来,这样的知识点,才算理解吧(今后学习也是这样,学习的内容要用自己的话说出来为标准,才算有一定的理解)。

我们首先,谈谈模式的概念,模式为某种事物的标准形式或使人可以照着做的标准样式。这个词用在数据库中,它是由英文的Schema翻译过来的。在数据库管理系统中,其模式是指数据模式(data schema),是数据抽象的结果表示,如用关系模型抽象学生的基本信息表示为:学生(学号,姓名,性别,出生年月,入校年月,专业编号),此表示即为一种数据模式。

在数据库管理系统中,将数据按三层结构来抽象,这实质上是与数据库的设计步骤密不可分的。

数据库的设计

首先应分析现实要求,即做需求分析,需求分析的任务就是通过调查、访谈、讨论,分析用户的业务流程,从而得出用户的需求,并用数据流程图、数据字典将用户需求描述出来;

其次,在需求分析的基础上,进行数据库概念设计,这种设计与具体的数据库管理系统无关,其任务是抽象出各用户所要求的数据视图(对应于外模式概念),最后综合为全局的数据视图(对应于模式概念),用概念数据模型来抽象,可用ER模型或对象模型

第三步,将用ER模型或对象模型表示的数据视图,转换为关系模式,并对所得关系模式进行优化处理,这就是所谓的数据库逻辑设计(这一步仍然对应于外模式和模式)

第四步,在逻辑设计的基础上,将所得的数据模式组织存储到物理介质上,这就是数据库的物理设计(这一步对应于内模式)

最后,就是数据库的安全设计,即允许什么样的用户访问数据库,以及合法用户访问数据库中数据的权限等问题。

美国家标准协会(American National Standard Institute,ANSI)的数据库管理系统研究小组于1978年提出了标准化的建议,将数据库结构分为3级:面向用户或应用程序员的用户级、面向建立和维护数据库人员的概念级、面向系统程序员的物理级。用户级对应外模式,概念级对应模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。所谓视图,就是指观察、认识和理解数据的范围、角度和方法,是数据库在用户“眼中”的反映,很显然,不同层次(级别)用户所“看到”的数据库是不相同的。

1. 模式

模式又称概念模式或逻辑模式,对应于概念级。它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图,数据库的表,字段的类型等等)。它是由数据库管理系统提供的数据模式描述语言(Data Description Language,DDL)来描述、定义的,体现、反映了数据库系统的整体观。

2.外模式

外模式又称子模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(Data Manipulation Language,DML)对这些数据记录进行处理。外模式反映了数据库的用户观(视图、查出数据的表)。

3.内模式

内模式又称存储模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,它描述了数据在存储介质上的存储方式及物理结构(顺序存储、按照B树结构存储还是按hash方法存储),对应着实际存储在外存储介质上的数据库。内模式由内模式描述语言来描述、定义,它是数据库的存储观。

在一个数据库系统中,只有唯一的数据库,因而作为定义、描述数据库存储结构的内模式和定义、描述数据库逻辑结构的模式,也是惟一的,但建立在数据库系统之上的应用则是非常广泛、多样的,所以对应的外模式不是惟一的,也不可能是惟一的。

4.三级模式间的映射(二级映像)

数据库的三级模式是数据库在三个级别 (层次)上的抽象,使用户能够逻辑地、抽象地处理数据而不必关心数据在计算机中的物理表示和存储。实际上,对于一个数据库系统而言,物理级数据库是客观存在的,它是进行数据库操作的基础,概念级数据库中不过是物理数据库的一种逻辑的、抽象的描述(即模式),用户级数据库则是用户与数据库的接口,它是概念级数据库的一个子集(外模式)。

结合access数据库来形象理解

模式(或者说逻辑模式,概念模式)相当于access设计视图里对表各个字段名字、数据类型、字段长度等属性的设置,一个数据库可以有很多表,这些表存在一定的关系,他们共同描述了该数据库的模式(概念模式或逻辑模式);

外模式(External Schema,子模式或用户模式),相当于access中各个窗体,报表以及数据表视图等等,它的特点就是,每个外模式对应于一个或多个表中的数据(不是多个模式,因为这些表总起来才能描述一个模式),而我们可以采用不同的形式显示相同的数据,可以用窗体,报表,或数据表视图。大家都知道,access中数据表视图并不等于设计视图,首先它不能修改数据,其次它显示形式可以不同于设计视图(例如格式属性可以设置显示不同于设计)。它是面向用户的,而设计视图则是面向数据库管理员的。

内模式(Internal Schema)就比较好理解了,它可以理解为access数据库中各个数据在磁盘中的具体组织形式,这个二级公共基础知识第一张讲得很清楚了,相信大家都明白吧。

总结

用户应用程序根据外模式进行数据操作(可以结合三层的思想来理解这个内容)

  通过外模式/模式映射,定义和建立某个外模式与模式间的对应关系,将外模式与模式联系起来,当模式发生改变时,只要改变其映射,就可以使外模式保持不变,对应的应用程序也可保持不变;(逻辑性)

  通过模式/内模式映射,定义建立数据的逻辑结构(模式)与存储结构(内模式)间的对应关系,当数据的存储结构发生变化时,只需改变模式/内模式映射,就能保持模式不变,因此应用程序也可以保持不变。(物理性)

总的来看,说了这么多,它都在基于分层的思想,解耦的观念深入到各个方面,学习的联系无处不在,多多得与已有的知识关联,学习起来不陌生,也较好的理解、效率也高,网越织越密。

软考之路(六)---数据库---深入浅出 三层模式两级映像

时间: 2024-10-05 17:22:44

软考之路(六)---数据库---深入浅出 三层模式两级映像的相关文章

数据库精华知识点总结(1)—数据库的三层模式和二级映像,E-R(实体联系图)图,关系模型

Data base: 长期存储在计算机内,有组织的,可共享的大量数据集合.基本特征:永久存储,可共享,有一定的物理和逻辑结构. Data base manage system(DBMS):用户和os之间的一层数据管理软件. 1.提供数据操纵语言DML对数据库增删改查 2.数据库的建立和维护 3.提供数据控制功能:在数据库建立,运行和维护时,DBMS管理数据的安全性,完整性,并发控制和故障的系统恢复,(也就是数据库的事务管理和运行管理) 4.与其它软件系统通信 Data base system(D

我的软考之路(六)——数据结构与算法(4)之八大排序

排序是编程的基础,在程序中会常常使用,好的排序方法能够帮助你提高程序执行的效率,所以学好排序,打好基础,对于程序的优化会手到擒来.不管你的技术多么强,假设没有基础也强不到哪去. 不多说了,我们直接进入今天的主题. 总有人说排序非常难,可是我总认为非常easy,我们仅仅须要了解基本思想就好了,通过简单的样例来加深理解. 1.直接插入排序 (1)简单介绍:直接插入排序,从字面意思能够看出,直接插入数据完毕排序. (2)基本思想:在插入第i个数时,如果前i-1数已经排好序了,仅仅须要将第i个数插入到i

我的软考之路(七)——数据结构与算法(5)之查找

上篇博文我重点介绍了八大内部排序,这篇博文(数据结构与算法的最后一课)重点介绍查找,我们依旧沿用上篇博文的风格,先简单介绍,再以例子重点讲解. 下面我们开始今天的旅行,首先祝你旅行愉快,呵呵. 静态查找 若查找目的是为了查询某个特定的数据是否在表中或检索某个特定数据的各种属性,则此类查找表为静态查找表. 1.顺序查找 基本原理:从表一端开始逐个和关键字进行比较,若找到一个记录和给定值相等,则查找成功,反之失败.再简单点就是,一个一个的比大小,看看是否相等. 例子: 顺序查找更适合于顺序存储结构和

软考之路--数据结构之线性表

数据就是数值,也就是我们通过观察.实验或计算得出的结果.数据有很多种,最简单的就是数字.数据也可以是文字.图像.声音等.数据可以用于科学研究.设计.查证等.结构,组成整体的各部分的搭配和安排,两者完美结合在一起,我们这样需要重新认识她,对她重新审视与定义:数据结构是程序设计的重要理论和技术基础,她所讨论的内容和技术,对从事软件项目的开发有重要作用,通过学习数据结构,我们学会从问题出发,分析和研究计算机加工的数据的特性,以便为应用所设计的数据悬着适当的逻辑结构.存储结构及其相应的操作方法,为提高应

我的软考之路(九)——总结篇

经过两个月的备战,软考总算结束了.软考虽然结束了,但是还需要简单的总结一下得与失.我从时间安排,到讲课做真题简单的回顾一下软考的整个过程. 时间安排: 对于时间的安排,整个小组成员每个人都有自己的看法,我就不在这里吐槽了.对于我来说,时间安排有点仓促,看书的时间是拿晚上的休息时间补过来的.看书让我将课本的概念性的知识简单的过了一遍,即补充了当初学习的不足,也恶补一下基本知识,不管对于软考,还是对于后面的继续学习都是有帮助的. 时间安排,没有什么合理与不合理.以松散的状态完成一项任务的时间是合理的

软考之路(五)---编译原理 概念篇

从组成原理到编译原理,都是相互联系的,学习的知识都是在层层推进,顺利成章的,整个软考的所有的知识都可以从计算机的发展(组成原理)--->软件的开发(软件工程)--->软件的算法设计(数据结构)-->高级语言写的系统--->在计算机上识别(编译原理)--->各个系统的背后数据的支持--->(数据库)---->---网络知识的应用---->网络基础--,可以把整个所有的软考的课本给串起来,这些都是构成现在丰富世界的必不可少的条件. 当然由于机器语言由0.1组成,

我的软考之路(五)——数据结构与算法(3)之图

图跟树一样,也是非线性结构,咋看起来有点复杂,其实它很简单.树具有层次关系,上层元素可以与下一个多个元素连接,但是只能和上层的一个元素连接.在图结构中,节点间的连接是任意的,任何一个元素都可以与其他元素连接. 图相对而言很简单,我们只介绍的图的遍历和最小生成树,现在我们开始. 遍历 1.概念 从图中某一个顶点出发,访问图中的每一个结点,并要求只能访问一次,不能重复访问. 2.方法 (1)广度优先遍历 基本思想:首先访问顶点,再访问顶点的全部未访问的邻结点,再访问邻结点的所有结点即可(类似树的层次

【软考】(六)关系代数

关系代数的由来 首先从宏观上来认识一下关系演算这个概念,换句话讲也就是什么是关系代数,这也是我在接触一些东西的首要工作.大家都知道对于关系型数据库的数据库操作语言分为查询和更新两类.而查询语言这块,又分为关系代数语言与关系演算语言.这里讲的就是关系代数.所以能够这样定义,关系代数就是为数据库操作语言进行查询的集合操作. 关系代数中的操作可分为两类 (1)传统的集合操作:并.差.交.笛卡儿积.除法. (2)扩充的关系操作:投影.选择.连接.. 常见符号 五种主要的关系代数 1.并 设关系R和S具有

软考之路(6)——设计模式之工厂系列

mnesia在频繁操作数据的过程可能会报错:** WARNING ** Mnesia is overloaded: {dump_log, write_threshold},可以看出,mnesia应该是过载了.这个警告在mnesia dump操作会发生这个问题,表类型为disc_only_copies .disc_copies都可能会发生. 如何重现这个问题,例子的场景是多个进程同时在不断地mnesia:dirty_write/2 mnesia过载分析 1.抛出警告是在mnesia 增加dump