数据库的模式

     三级模式结构:外模式、模式和内模式

  一、模式(Schema)

  定义:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。

  理解:

  ① 一个数据库只有一个模式;

  ② 是数据库数据在逻辑级上的视图;

  ③ 数据库模式以某一种数据模型为基础;

  ④ 定义模式时不仅要定义数据的逻辑结构(如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。

  二、外模式(External Schema)

  定义:也称子模式(Subschema)或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

  理解:

  ① 一个数据库可以有多个外模式;

  ② 外模式就是用户视图;

  ③ 外模式是保证数据安全性的一个有力措施。

  三、内模式(Internal Schema)

  定义:也称存储模式(Storage Schema),它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式(例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定)。

  理解:

  ① 一个数据库只有一个内模式;

  ② 一个表可能由多个文件组成,如:数据文件、索引文件。

  它是数据库管理系统(DBMS)对数据库中数据进行有效组织和管理的方法

  其目的有:

  ① 为了减少数据冗余,实现数据共享;

  ② 为了提高存取效率,改善性能。

  1.概念模式(Conceptual Schema)

  概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户(应用)公共数据视图,此种描述是一种抽象的描述,它不涉及具体的硬件环境与平台,也与具体的软件环境无关。

  概念模式主要描述数据的概念记录类型及数据以及它们间的关系,它还包括一些数据间的语义约束,对它的描述可用DBMS中的DDL语言定义。

  2.外模式(External Schema)

  外模式也称子模式(Subschema)或称用户模式(User’s schema)它是用户的数据视图,亦即是用户所见到的模式的一个部分,它由概念模式推导而出,概念模式给出了系统全局的数据描述而外模式则给出每个用户的局部描述。一个概念模式可以有若干个外模式,每个用户只关心与它有关的模式,这样可以屏蔽大量无关信息且有利于数据保护,因此对用户极为有利。在一般的DBMS中都提供有相关的外模式描述语言(外模式DDL)。

  3.内模式(Internal Schema)

  内模式又称物理模式(Physical Schema),它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还不深入到设备级上(如磁盘及磁盘操作),但近年来有向设备级发展的趋势(如原始磁盘、磁盘分块技术等),DBMS一般提供相关的内模式描述语言(内模式DDL)。

  数据模式给出了数据库的数据框架结构,而数据库中的数据才是真正的实体,但这些数据必须按框架所描述的结构组织,以概念模式为框架所组成的数据库叫概念数据库(Conceptual Database),以外模式为框架所组成的数据库叫用户数据库(user’s Database),以内模式为框架所组成的数据库叫物理数据库(Physical Database),这三种数据库中只有物理数据库是真实存在于计算机外存中,其它两种数据库并不真正存在于计算机中,而是通过两种映射由物理数据库映射而成。

  模式的三个级别层次反映了模式的三个不同环境以及它们的不同要求,其中内模式处于最低层,它反映了数据在计算机物理结构中的实际存储形式,概念模式处于中层,它反映了设计者的数据全局逻辑要求,而外模式处于最外层,它反映了用户对数据的要求。

  数据库系统的三级模式是对数据的三个级别抽象,它把数据的具体物理实现留给物理模式,使用户与全局设计者能不必关心数据库的具体实现与物理背景,同时,它通过两级映射建立三级模式间的联系与转换,使得概念模式与外模式虽然并不具物理存在,但是也能通过映射而获得其存在的实体,同时两级映射也保证了数据库系统中数据的独立性,亦即数据的物理组织改变与逻辑概念级改变,并不影响用户外模式的改变,它只要调整映射方式而不必改变用户模式。

  1.概念模式到内模式的映射

  该映射给出了概念模式中数据的全局逻辑结构到数据的物理存储结构间的对应关系,此种映射一般由DBMS实现。

  2.外模式到概念模式的映射

  概念模式是一个全局模式而外模式则是用户的局部模式,一个概念模式中可以定义多个外模式,而每个外模式是概念模式的一个基本视图。外模式到概念模式的映射给出了   外模式与概念模式的对应关系,这种映射一般由DBMS实现。

需要注意的是:(1)要保证数据库逻辑数据独立性,需要修改的是  :模式与外模式的映射。

(2)要保证数据库逻辑数据独立性,需要修改的是:.模式与内模式的映射。

(3)在数据库的三个模式中:模式和内模式只有一个,而外模式可以有多个。

时间: 2024-09-30 01:34:36

数据库的模式的相关文章

关系型数据库的模式和映像

数据库的模型 数据库的模型从数据库技术出现至今一共有3种比较通用的模型 1.层次结构模型 最早使用层次结构模型的是IBM公司的IMS,即数据库管理信息系统.层次模型类似于倒置的树型,一个父表可以有多个子表,但是没一个字表都对应着一个父表. 2.网状结构模型 网状结构模型是对层次结构模型的改进,网状结构模型打破了层次结构模型使用的限制,可以更全面第描述数据库中表之间的关系,可以一个父表没有子表,也可以一个字表有多个父表,还可以设置两个表之间的多种关系 3.关系结构模型 关系结构模型可以是在层次结构

PostgreSQL表空间、数据库、模式、表、用户/角色之间的关系

看PostgreSQL9的官方文档,我越看越迷糊,这表空间,数据库,模式,表,用户,角色之间的关系怎么在PostgreSQL里这么混乱呢?经过中午的一个小实验,我逐渐理清了个中来龙去脉.下面我来还原我的试验,并循序讲清其中关系. 首先,实验出角色与用户的关系    在PostgreSQL中,存在两个容易混淆的概念:角色/用户.之所以说这两个概念容易混淆,是因为对于PostgreSQL来说,这是完全相同的两个对象.唯一的区别是在创建的时候: 1.我用下面的psql创建了角色kanon:   CRE

cxGrid 增加序号 (非数据库绑定模式) (测试通过)

cxGrid 增加序号 (非数据库绑定模式) ----------------------------------- 1. 选在 adoQuery 控件 , 鼠标右键菜单中 选择 Fields Editor 2. 在  adoQuery 控件 Fields Editor 中 鼠标右键菜单  (1)  Add all fields (2)  New field  --->  Name ==>     curRowNo                         Type    ==>

Database数据库切片模式

数据库切片模式关注的实现水平伸缩.切分是从单个数据库到平分数据访问两个或更多数据库切片.每个切片有和原始数据库相同的Schema.大多数据分布在每个切片每一行.从切片合并起来的数据和原始数据库一样.切片也被近似等同于水平分区(Horizontal Partitioning),网上很多地方也用水平分区来指代切片,二者之间实际上还是有区别的.的确,切片 的思想是从分区的思想而来,但数据库分区基本上是数据对象级别的处理,比如表和索引的分区,每个子数据集上能够有不同的物理存储属性,还是单个数据库范围内的

查看数据库恢复模式

SELECT recovery_model,recovery_model_desc FROM sys.databases WHERE name ='' 查看数据库恢复模式

数据库三级模式

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

MVC学习之数据库开发模式:代码优先实例介绍

数据库开发模式之代码优先主要有以下几步: 1.在Models文件夹中创建需要的表所对应的类 2.创建数据上下文类 3.在webConfig文件中配置数据库连接节点 4.添加控制器和相应的视图文件 5.在控制器的动作中创建数据上下文实例,通过实例操作数据库数据 具体步骤如下所示: 1.在Models文件夹中创建所需表对应的类 namespace CodeFirst.Models { public class book { public int Id { get; set; } public str

数据库归档模式

背景:新话单功能上线后,生产环境之前未配置定时任务产生话单,导致数据库有2000多万条的记录等待生成话单,定时任务配置正确后,由于环境开启了数据库归档模式,而生成话单的过程又在不断的update和delete行为轨迹表中的数据,导致产生大量的归档日志,必须实时监控磁盘空间. Oracle数据库的归档模式一般在开发.测试环境默认是不设置的的,主要是为了节省磁盘空间,在生产环境上,设置日志模式并自动归档主要是为了保证系统安全,恢复数据. (一)Oracle数据库进行日志的自动归档需要满足两个条件:

MVC学习之数据库开发模式:三种开发模式总结:

先介绍下三种开发模式的使用方法: 1.数据库优先: 数据库开发之:数据库优先主要步骤: 1.在数据库中建立好数据库和所需要得到表 2.选中Models文件夹,添加新项目--数据--ADO.NET实体数据模型……在生成数据库页面选着从数据库中生成 在完成2之后,会在web.config里面自动生成数据库连接字符串 3.创建控制器和对应的视图页面 4.在控制器中创建数据上下文实例对象,该对象是通过连接数据库字符串的名字来创建的. 2.代码优先: 数据库开发之代码优先步骤: 1.在Models文件夹中

枯燥的数据库“三级模式”

以下这些概念比较枯枯燥,若学好数据库,还是了解下基础的东西,在实际中感觉好象没有应到,但是系统化的学习还是有了解的必要. ANSI将数据库结构分为3级:面向用户或应用程序员的用户级.面向建立和维护数据库人员的概念级.面向系统程序员的物理级. 外模式.模式.内模式: 1.外模式是特定用户面对的数据视图.外模式又称子模式或用户模式,对应于用户级.不同的用户可以有不同的数据视图,且可能有重复和交叉.在很多情况下,外模式描述的是整个数据库中部分数据,而且外模式通常是逻辑视图的描述,并不实际存储数据.外模