• 数据库系统的三级模式和二级映射


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

    数据库系统的结构可以从多个不同的层次或角度来看。从数据库应用开发人员的角度看,数据库通常采用三级模式结构。

    基本概念

    先来看几个基本概念:

    • 数据模型中的“型(type)”:对某一类数据的结构和属性的说明
    • 数据模型中的“值(value)”:是型的一个具体赋值

    比如:(学号,姓名,性别,系别,年龄,籍贯)是一个记录型,(202001,李明,男,计算机,22 ,江苏)就是该记录型的一个记录值。

    • 模式(schema):反映数据的结构及数据之间的联系。它是型的描述。

    数据库系统的三级模式结构由外模式、模式和内模式这三级组成。它们的关系如下图:

    在这里插入图片描述

    模式(schema)

    • 定义:模式也叫逻辑模式。反映了数据库中全体数据的逻辑结构和特征。例如数据记录是由哪些数据项构成的,数据项的名字、类型、取值范围等,而且还要定义数据之间的联系。
    • 地位:它是数据库系统模式结构的中间层,是所有用户的公共数据视图。与数据的物理存储细节和硬件环境无关-,也与具体的应用程序、开发工具及高级程序设计语言无关。
    • 一个数据库只有一个模式

    外模式(external schema)

    • 定义:也称子模式或用户模式,它反映了数据库用户能够看见和使用的局部数据的逻辑结构和特征。是数据库用户的数据视图

    • 地位:介于模式与应用之间。

      • 模式与外模式的关系:一对多
        • 外模式通常是模式的子集
        • 一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求
        • 对模式中同一数据,在外模式中的结构、类型、长度保密级别等都可以不同
      • 外模式与应用的关系:一对多
        • 同一外模式也可以为某一用户的多个应用系统所使用
        • 一个应用程序只能使用一个外模式
    • 作用:保护数据。每个应用程序的用户只能看见和访问对应外模式中的数据。

    内模式 (Internal Schema)

    • 定义:也称存储模式。反映了数据的物理结构和存储方式。是数据在数据库内部的组织方式。例如,数据的存储方式是堆存储还是按照属性值聚簇存储;索引是按照什么方式组织的,是B+树索引还是hash索引;等等。
    • 作用:内模式影响了应用程序的执行效率和运行速度。通过内模式以达到较好的时间和空间效率。
    • 一个数据库只有一个内模式

    数据库系统的二级映射

    三级模式是对数据的三个抽象级别。而二级映象在 DBMS 内部实现这三个抽象层次的联系和转换。

    外模式/模式映象

    • 它定义了外模式与模式之间的对应关系。每一个外模式都对应一个外模式/模式映象。映象定义通常包含在各自外模式的描述中。
    • 作用:它保证了保证数据的逻辑独立性。当模式改变时,数据库管理员修改有关的外模式模式映象,使外模式保持不变。而应用程序是依据数据的外模式编写的,所以应用程序不必修改,这就保证了数据与程序的逻辑独立性简称数据的逻辑独立性。

    模式/内模式映象

    • 模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。例如说明逻辑记录和字段在内部是如何表示的。该映象定义通常包含在模式描述中。
    • 数据库中模式/内模式映象是唯一的
    • 作用:保证数据的物理独立性。当数据库的存储结构改变了 (例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变,这样应用程序就不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。

    总结

    在数据库的三级模式中,数据库模式即全局逻辑结构是数据库的中心与关键。因此设计数据库模式结构时先确定数据库的逻辑模式。数据库的内模式将全局逻辑结构中所定义的数据结构及其联系按照一定物理存储策略进行组织,以达到较好的时间和空间效率。数据库的外模式面向具体的应用程序,当应用需求发生较大变化时,外模式可能需要做出相应的改动,所以设计外模式时应充分考虑到应用的扩充性。

    感谢 💖

    好啦,这次的分享就到这里,感谢大家看到这里🤞

  • 相关阅读:
    MAVEN_HOME与M2_HOME的区别
    C++入门知识(二)
    Lua语法之简单变量
    Python正则表达式- 正向零宽度查找断言(positive lookbehind assertion)
    首届数据安全大赛初赛web
    淘宝Tmall,1688,拼多多API商品详情接口
    小编闲谈——刷题网站
    答对这3个面试问题,薪资直涨20K
    【pytorch源码分析--torch执行流程与编译原理】
    Linux命令(99)之rz
  • 原文地址:https://blog.csdn.net/m0_60511809/article/details/132860177