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

news2024/9/25 11:15:04

  • 数据库系统的三级模式结构
    • 基本概念
    • 模式(schema)
    • 外模式(external schema)
    • 内模式 (Internal Schema)
  • 数据库系统的二级映射
    • 外模式/模式映象
    • 模式/内模式映象
  • 总结
  • 感谢 💖

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

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

基本概念

先来看几个基本概念:

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

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

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

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

在这里插入图片描述

模式(schema)

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

外模式(external schema)

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

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

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

内模式 (Internal Schema)

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

数据库系统的二级映射

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

外模式/模式映象

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

模式/内模式映象

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

总结

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

感谢 💖

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1014050.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web安全与攻防

Web安全概述 在Internet大众化及Web技术飞速演变的今天,在线安全所面临的挑战日益严峻。伴随着在线信息和服务的可用性的提升,以及基于Web的攻击和破坏的增长,安全风险达到了前所未有的高度。Web安全可以从以下三个方面进行考虑:…

Matlab图像处理-从RGB转换为HSV

从RGB转换为HSV HSV彩色系统基于圆柱坐标系。从RGB转换为HSV需要开发将(笛卡儿坐标系中的)RGB值映射到圆柱坐标系的公式。多数计算机图形学教材中已详细推导了这一公式,故此处从略。 从RGB转换为HSV的MATLAB函数是rgb2hsv,其语法为: hsv_imag…

商业综合体AI+视频安防监控与智能监管解决方案

一、方案背景 商业综合体需要具备更好的品质和环境才能吸引更多客流,如何有效地进行内部管理、外部引流,是综合体管理人员思考的重点。 传统的视频监控需要靠人盯牢屏幕或者发生报警后通过查看录像,才能找到意外事件相关人员与起因&#xf…

VMware启用共享文件夹

1. 启用 编辑虚拟机设置 - 选项 - 共享文件夹 - 总是启用 - 添加 2. 启动Ubuntu查看 正常情况/mnt目录会出现文件夹hgfs 如果不存在,可参考 这篇文章 操作 如果安装VMWare tools后/mnt中有hgfs但没共享文件,可参考 这篇文章 如果出现 mount: unkno…

Mac 安装软件各种报错解决方案

Mac 安装软件各种报错解决方案 文章目录 Mac 安装软件各种报错解决方案一. 打开允许“允许任何来源”二. 无法打开"xxx",因为它不是从App Store下载三. 无法打开"xxx",因为 Apple无法检查其是否包含恶意软件。四. "xxx"已…

执行 git remote add github git@github.com:xxxx/testGit.git时,git内部做了啥?

git remote add 往 .git/config 中写入了一个叫 [remote "origin"] 配置 url → 表示该远程名称对应的远程仓库地址fetch 参数分为两部分,以冒号 : 进行分割冒号左边 ☞ 本地仓库文件夹冒号右边 ☞ 远程仓库在本地的副本文件夹 ☞ 往里面添加数据的意思 可…

pgzrun 拼图游戏制作过程详解(6,7)

6. 检查拼图完成 初始化标记成功的变量Is_Win Is_WinFalse 当鼠标点击小拼图时,判断所有小拼图是否都在正确的位置,并更新Is_Win。 def on_mouse_down(pos,button): # 当鼠标被点击时# 略is_win Truefor i in range(6):for j in range(4):Square S…

今天早上在使用Layui的时候,排查出了自己的BUG

昨天使用的时候,一直渲染不出来,今天,翻看了文档找到了问题特意,留了一个,field写成了filed,辛辛苦找了半天 ... /委屈差点错怪了Layui

【Transformer系列】深入浅出理解Tokenization分词技术

一、参考资料 NLP技术中的Tokenization是什么?核心任务是什么? 二、Tokenization相关介绍 1. Tokenization的概念 NLP技术中Tokenization被称作是“word segmentation”,直译为分词。具体来说,分词是NLP的基础任务&#xff0c…

如何优化你的Vue.js应用以获得最佳性能

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

C++版本的OpenCV实现二维图像的卷积定理(通过傅里叶变换实现二维图像的卷积过程,附代码!!)

C版本的OpenCV库实现二维图像的卷积定理过程详解 前言一、卷积定理简单介绍二、不同卷积过程对应的傅里叶变换过程1、“Same”卷积2、“Full”卷积3、“Valid”卷积 三、基于OpenCV库实现的二维图像卷积定理四、基于FFTW库实现的二维图像卷积定理五、总结与讨论 前言 工作中用…

基于matlab实现的弹簧振动系统模型程序(动态模型)

完整代码: clear all; %System data m1.0; zeta0.01; omega01.0; Dt1.0; f01.0; x00.0; dotx00.0; xmaxsqrt(x0^2(dotx0/omega0)^2)min([0.5*abs(f0)*Dt/(m*omega0) f0/omega0^2]); omegadomega0*sqrt(1-zeta^2); dt00.1*pi/omega0; nstep500; a0.70; b0.…

Python爬虫(二十)_动态爬取影评信息

本案例介绍从JavaScript中采集加载的数据。更多内容请参考:Python学习指南 #-*- coding:utf-8 -*- import requests import re import time import json#数据下载器 class HtmlDownloader(object):def download(self, url, paramsNone):if url is None:return Noneuser_agent …

Echarts 雷达图的详细配置过程

文章目录 雷达图 简介配置步骤简易示例 雷达图 简介 Echarts雷达图是一种常用的数据可视化图表类型,用于展示多个维度的数据在同一坐标系下的分布情况。雷达图通过不同的坐标轴表示不同的维度,数据点的位置表示了各个维度的数值大小。 Echarts雷达图的…

035:vue项目中 radio和checkbox美化方法

第035个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

基于matlab实现的中点放炮各类地震波时距曲线程序

完整程序&#xff1a; clear all dx50;x-500:dx:500;%炮检距 h100;V11500; theta25*pi/180; V2V1/sin(theta); t1sqrt(x.*x4*h*h)/V1;%反射波时距曲线 t2abs(x)./V1;%直达波时距曲线 %折射波时距曲线 xm2*h*tan(theta);%求盲区 k1; for i1:length(x) if x(i)<-xm …

JVM 篇

一、知识点汇总 其中内存模型&#xff0c;类加载机制&#xff0c;GC是重点方面。性能调优部分更偏向应用&#xff0c;重点突出实践能力。编译器优化和执行模式部分偏向于理论基础&#xff0c;重点掌握知识点。 内存模型&#xff1a;各部分作用&#xff0c;保存哪些数据。类加载…

Python if条件分支结构

视频版教程 Python3零基础7天入门实战视频教程 如果 Python程序的多行代码之间没有任何流程控制&#xff0c;则程序总是从上向下依次执行。 但是现实生活中&#xff0c;我经常遇到一些需要做判断的业务流程。比如去银行ATM取款&#xff0c;如果密码输入正确&#xff0c;则可以…

基于matlab实现的额特征线法管道瞬变流计算程序

完整曲线&#xff1a; % 假设阀门瞬间关闭 % 初始数据: clear tic L3000; % 管线长度 Hr70; % 泵压力 N10; % 分段数 NSN1; % 节点数 e0.001651; % 壁厚m,0.065 D0.00635-2*e; % 管道内径 K2.1e9; % 流体体积弹性系数 Rho…

软考高级架构师下篇-15嵌入式系统架构设计的理论

目录 1. 引言2. 嵌入式系统发展历程3. 嵌入式系统硬件4.嵌人式系统软件5.嵌入式系统软件架构设计方法6.嵌入式系统软件架构实践7. 前文回顾1. 引言 此章节主要学习嵌入式系统架构设计的理论和工作中的实践。根据新版考试大纲,本小时知识点会涉及案例分析题(25分)。在历年考…