【SQL与关系数据库】第三节 数据定义(DDL)(一)三级模式结构与两层映射

基本术语:

一、数据库管理员(DBA)web

数据库系统的三级模式结构

  在一个组织的数据库系统中,有着各类不一样类型的人员(或用户)须要与数据库打交道。他们从不一样的角度以各自的观点来看待数据库,从而造成了数据库系统不一样的视图结构。所以,考察数据库系统的结构能够有多种不一样的层次或不一样的视角。
  若从DBA的视角上来看,数据库系统可分为内部系统结构和外部系统结构,其中内部系统结构一般采用三级模式结构,而外部体系结构一般表现为集中式结构、分布式结构和并行结构等;
  若从数据库应用的用户(如应用程序的编写人员)的角度来看,目前数据库系统一般具备客户/服务器结构和浏览器/服务器结构,这也是数据库系统总体的运行与应用结构。
  从DBA的角度来审视数据库系统,其内部基本上遵循三级体系结构:·用户级、概念级和物理级
  各类不一样的数据库管理系统产品在体系结构上一般具备相同的特征,即采用三级模式结构,并提供两层映射功能。
  具体来讲,三级模式是指数据库系统是由概念模式(Schema)外模式(External Schema)内模式(Internal Schema)三级构成的,以下图所示:
数据库


MySQL中的SQL对关系数据库模式的支持

1、概念模式:

  概念模式也简称模式或称为逻辑模式,它是数据库中全体数据的逻辑结构和特征的描述,是全部用户的公共数据视图。
  概念模式其实是数据库数据在逻辑级上的视图,即概念视图,它的形式要比数据的物理存储方式抽象。DBA必须考虑整个数据库的这种全局概念视图,它不包含任何数据库的实现细节,例如是哪种DBMS、文件组织、存取方法以及设备特征等,而是定义数据的逻辑结构、数据之间的联系,以及与数据相关的安全性、完整性等要求。
  数据库按外模式的描述向用户提供数据,按内模式的描述存储数据,而概念模式是这二者的中间层,它既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序、所使用的应用开发工具及程序涉及语言无关,同时一个数据库只有一个概念模式,且相对稳定。编程

2、外模式

  外模式也叫子模式(Subschema)或用户模式,它是数据库用户(包括应用程序和最终用户)可以看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。
  外模式其实是用于知足不一样数据库用户需求的数据视图,即用户视图,其一般是模式的子集,是对数据库总体数据结构的局部重构。若是不一样的用户在应用需求、看待数据的方式、对数据保密的要求等方面存在差别,则其外模式描述就不相同,而且模式中一样的数据,在外模式中的结构、类型、长度、保密级别等均可以不一样。
  一个数据库能够有多个不一样的外模式(如图所示),容许它们有必定的重叠,且一个外模式能够只为一个应用程序使用,也能够为多个应用程序所共享。浏览器

  举例来讲:安全

在一个学校的管理信息系统中,教务处子系统用户只能看到教师的授课信息、学生的选课及成绩信息,人事处子系统用户只能看到教师的基本资料信息,学工处子系统用户只能看到学生的基本资料管理信息,而学校管理信息系统的数据库则存储的是这些信息数据的总集合。服务器

  所以,外模式是保证数据库安全的重要措施,每一个用户只能看见和访问所对应的外模式中的数据,而数据库中其他数据是不可见的。同时,外模式简化了数据库系统的用户接口,便于用户使用,并有效支持了数据的独立性和共享性。
  相应地,DBMS提供子模式描述语言(Subschema DDL)来严格地定义子模式。数据结构

3、内模式

  在三级模式结构中,内模式也叫存储模式(Storage Schema),它是对数据库中数据物理结构和存储方式的描述,是数据在数据库内部的表示形式。
  内模式其实是整个数据库的最底层表示,它不一样于物理层,是DBA所见到的,特定的DBMS所处理的数据库的内部结构,即内部视图或存储视图。
  如上图所示,有一个数据库只有一个内模式,它不是存储设备上的物理记录或物理块,也不涉及任何具体设备限制,例如柱面或磁道的大小等,也就是说,内模式还不是最底层的物理层,比内模式更接近于物理存储和访问的哪些软件机制是操做系统的一部分,好比从磁盘上对数据进行读、写操做。
  DBMS提供内模式描述语言(内模式DDL或者存储模式DDL)来严格定义内模式,即定义全部内部记录类型、索引和文件的组织方式,以及全部数据控制方面的细节,例如,记录的存储方式是按照顺序结构存储仍是按照B树结构存储,数据是否压缩、是否加密等。数据库设计

两层映射功能与数据独立性

  简要来讲,构成数据库系统三级模式结构的三个模式分别是对数据的三级抽象,它们彼此间具备以下一些特色。分布式

  • 一个数据库的总体逻辑结构和特征的描述(概念模式)是独立于数据库其余层次结构(内/外模式)的描述,它是数据库的核心,也是数据库设计的关键。
  • 一个数据库的内部存储模式依赖于概念模式,但存储模式独立于外部模式,也独立于具体的存储设备。
  • 用户逻辑结构(外模式)是在全局逻辑结构描述的基础上定义的,它面向具体的应用程序,独立于内部模式和存储设备。
  • 特定的应用程序是在外模式的逻辑结构上编写的,它依赖于特定的外模式,与数据库的模式和存储结构独立。
    所以,用户可没必要考虑数据的物理存储细节,而把数据的具体组织留给DBMS负责管理,同时为了有效支撑数据的三级抽象以及它们相互间的联系和转换,DBMS经过在内部提供三级模式之间的两层映射来实现,即外模式/概念模式映射与概念模式/内模式映射

1)外模式/概念模式映射

  所谓映射,就是一种对应规则,它指出映射双方是如何进行转换的。外模式/概念模式映射定义了各个外模式与概念模式之间的映射关系,这些映射定义一般在各自的外模式中加以描述。因为一个概念模式能够有任意多个外模式,所以对于每个外模式,数据库系统都会有一个外模式/概念模式映射。
  数据库系统的概念模式若是发生改变,好比增长新的属性、新的关系、改变数据类型等,DBA一般会对各个外模式/概念模式的映射作出相应的改变,使那些对用户可见的外模式保持不变,从而应用程序的编程人员就没必要取修改那些依据数据的外模式所编写的应用程序,实现了外模式不受概念模式变化的影响,保证了数据与程序的逻辑独立性。svg

2)概念模式/内模式映射

概念模式/内模式映射定义了数据库全局逻辑结构与物理存储之间的对应关系,这种映射定义一般是在模式中加以描述的。因为数据库中只有一个概念模式,且也只有一个内模式,因此概念模式/内模式映射是惟一的。 数据库系统的物理存储如若发生改变,例如选用另一种存储结构或更换另一个存储位置,DBA一般也会对概念模式/内模式映射作出相应调整,以使数据库系统的模式保持不变,从而也没必要去修改应用程序,如此实现了概念模式不受内模式变化的影响,保证了数据与程序的物理独立性。 因而可知,正是这两层映射保证了数据库系统中的数据可以具备较高的逻辑独立性和物理独立性,使得数据的定义和描述能够从应用程序中分离出去,从而简化了数据库应用程序的开发,也减小了维护应用程序的工做量。