数据库的三级模式
人们为数据库设计了一个严谨的体系结构,数据库领域公认的标准结构是三级模式结构,它包括外模式、概念模式、内模式,有效地组织、管理数据,提高了数据库的逻辑独立性和物理独立性。用户级对应外模式,概念级对应概念模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。所谓视图,就是指观察、认识和理解数据的范围、角度和方法,是数据库在用户“眼中”的反映,很显然,不同层级(级别)用户“看到”的数据库是不相同的。
美国国家标准协会(ANSI)的数据库管理系统研究小组于1978年提出了标准化的建议,将数据库结构分为3级:面向用户或应用程序员的用户级、面向建立和维护数据库人员的概念级、面向系统程序员的物理级。
外模式:又称子模式或用户模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。概念模式给出了系统全局的数据描述而外模式则给出了每个用户的局部描述。一个概念模式可以有若干个外模式,每个用户只关心与它相关的模式,这样可以屏蔽大量无关信息而有利于数据保护,因此对用户极为有利。
用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(DML)对 这些数据记录进行操作。外模式反映了数据库的用户观。外模式理解:(1)一个数据库可以有多个外模式;(2)外模式就是用户视图。(3)外模式是保证数据安全性的一个有力措施。
概念模式是全局数据逻辑结构的描述,是全体用户(应用)公共数据视图,此种描述是一种抽象的描述,它
不涉及具体的硬件环境与平台,也与具体的软件环境无关。
概念模式主要描述数据的概念记录及数据,以及它们间的关系,它还包括一些数据间的语义约束,对它的描述可以用DBMS的DDL语言定义。
概念模式理解:(1)一个数据库只有一个模式;(2)是数据库数据在逻辑上的视图;(3)数据库模式以某一种数据模型为基础;(4)定义模式时不仅要定义数据的逻辑结构(如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。
内模式:又称存储模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式给出了数据库物理存储与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还不深入到设备级上(如磁盘及磁盘操作),但近年来有向设备级发展的趋势(如原始磁盘、磁盘分块技术等)。
内模式由内模式描述语言来描述、定义(内模式DDL),它是数据库的存储观。在一个数据库系统中,只有唯一的数据库,因而作为定义、描述数据库存储结构的内模式和定义、描述数据库逻辑结构的模式,也是唯一的,但建立在数据库系统之上的应用则是非常广泛、多样的,所以对应的外模式不是唯一的。内模式理解:(1)一个数据库只有一个内模式;(2)一个表可以由多个文件组成,如:数据文件、索引文件。
内模式是数据库管理系统(DBMS)对数据库中数据进行有效组织和管理的方法;其目的是:(1)减少数据冗余,实现数据共享;(2)提高存取效率,改善性能。
数据库的三级模式是数据库在三个级别(层次)上的抽象,使用户能够逻辑地、抽象地处理数据而不必关心数据在计算机中的物理表示和存储。实际上,对于一个数据库系统而言,物理级数据库是客观存在的,它是进行数据库操作的基础,概念级数据库不过是物理数据库的一种逻辑的、抽象的描述(即模式),用户级数据库则是用户与数据库的接口,它是概念级数据库的一个子集(外模式)。
数据模式给出了数据库的数据框架结构,而数据库中的数据才是真正的实体,但这些数据必须按框架所描述的结构组织,以概念模式为框架所组成的数据库叫做概念数据库,以外模式为框架所组成的数据库叫做用户数据库,以内模式为框架组成的数据库叫物理数据库,这三种数据库只有物理数据库是真实存在于计算机外存中,其他两种数
据库并不真正存在与计算机汇总,而是通过外模式--模式和模式--内模式这两种映射由物理数据库映射而成的。
模式的三个级别层次反映了模式的三个不同环境以及它们的不同要求,其中内模式处于最底层,它反映了数据在计算机物理结构中的实际存储形式,概念模式处于中层,它反映了设计者的数据全局逻辑要求,而外模式处于最外层,它反映了用户对数据的要求。
数据库系统的三级模式是数据的三个级别抽象,它把数据的具体物理实现留给物理模式,使用户与全局设计者不必关系数据库的具体实现与物理背景,同时,它通过两级映射建立三级模式间的联系与转换,使得概念模式与外模式虽然并不物理存在,但是也能通过映射而获得其存在的实体,同时两级映射也保证了数据库系统中数据的独立性,亦即数据的物理组织改变与逻辑概念级改变,并不影响用户外模式的改变,它只要调整映射方式而不必改变用户模式。
原帖1:http://baike.haosou.com/doc/6145939-6359118.html
原帖2:http://www.php100.com/html/webkaifa/database/Mysql/2011/1216/9501.html