【数据库系统】数据库系统三级模式和两层映像

  数据库系统学习第四篇:数据库系统三级模式和两层映像。

文章目录

  • 前言
  • 三级模式
    • 模式和实例
    • 三级模式
  • 两层映像
    • 数据独立性
      • 逻辑数据独立性
      • 物理数据独立性
    • 两层映像

前言

  数据库三层结构隐藏了数据的存储和维护的细节,降低了数据库系统的复杂性,方便用户访问数据库。那三层结构具体是怎样设计的呢?这有赖于数据库系统三级模式。

三级模式

模式和实例

  在说三级模式之前,先了解一下数据库模式和数据库实例是什么。数据库模式简单来说就是数据库的设计而数据库实例指的是特定时刻数据的集合数据库模式不常变化
举例如下所示:

class A{
//nothing here
}

class B{
  public static void  main(String [] args){
  // demo 即引用变量  代表  数据库模式
  // 每一次new出来的实际变量则  代表 数据库实例
  // 数据库模式不常变化指的是类A不常改变

  A demo =  new  A();
    demo =  new  A();
    demo =  new  A();
  }
}

三级模式

  数据库系统设计从三层结构层面引出了三级模式,如下对应:

  • 物理(内部)层 ------------------ 物理(内)  模式
  • 逻辑(概念)层 ------------------ 逻辑(概念)模式
  • 视图(外部)层 ------------------ 子  (外)  模式

  简单来说 物理模式就是从物理层设计整个数据库,依次类推。但是需要注意的是,子模式不止一个,因为不同的用户对应的视图不同,那就可以知道子模式应该也就不同,所以不止一个。
  通常情况下,数据库系统的设计都是由简到繁,一般是先获得用户需求之后在进行设计,那么可以理解为是先从子模式设计开始,然后到逻辑模式,再到物理模式。

两层映像

  两级映像的提出主要是保证数据的独立性,数据的独立性与否是判断一个数据库系统是否合格的重要指标。

数据独立性

  数据独立性分为两种:1.逻辑数据独立性。2.物理数据独立性

逻辑数据独立性

  Logical data independence refers to the immunity of the external schemas to changes in the conceptual schema.Conceptual schema changes (e.g. addition/removal of entities) should not require changes to external schema or rewrites of application programs

  也就是说概念模式的改变不修改外模式。如提出了一个新的功能需求时,需要新增一些信息,那概念模式必然新增属性或字段,这时候不应该影响外模式,以及修改程序。

物理数据独立性

  Physical data independence refers to the immunity of the conceptual schema to changes in the internal schema.Internal schema changes (e.g. using different file organizations, storage structures/devices) should not require change to conceptual or external schemas.

  也就是说内模式的改变不影响概念模式。如数据的存储位置等的修改不应该改变概念模式,当然,更不能改变外模式。

两层映像

  为了满足逻辑数据独立性和物理数据独立性,概念层 与 外部层之间设置一层映像,使得概念模式改变,不修改外模式。概念层 与 内部层之间也设立一层印象,使得内模式改变,不修改概念模式。
  注意由于外模式(子模式)不止一个,那么这两个模式之间的映射关系也不止一个。具体如下图:

【数据库系统】数据库系统三级模式和两层映像_第1张图片
  额,写完收工。

你可能感兴趣的:(数据库系统)