数据库系统体系结构-DBMS的三级模式结构、DBMS的工作方式、模式定义语言、二级映射

一、体系结构的概念

1、大多数DBMS遵循三级模式结构

(1)外模式

(2)概念模式

(3)内模式

2、DBMS的体系结构描述的应该是系统的组成结构及其联系以及系统结构的设计和变化的原则

3、1978年美国国家标准机构ANSI的DBMS研究组发表了SPARC报告,提出了一个标准化的数据库管理系统模型,对数据库管理系统的总体结构特征、各个组成部分以及相应接口作了明确的规定,把数据库管理系统的结构逻辑上分为外部级、概念级和内部级三级结构,称作ANSI/SPARC体系结构

4、其实早在1971年由数据库先驱Charles W.Bachman领导的数据系统语言协会下的数据库任务组DBTG的报告中已完整地给出了系统结构的三个层次,分别为视图层、逻辑层和物理层

二、DBTA的领导者 

Charles W.Bachman所领导的数据系统语言协会所给出的数据库任务组报告中,首次确定了数据库系统的三级体系结构,成为数据库历史上具有里程碑意义的文献;他主持和开发了世界上最早的网状数据库管理系统,该系统于1964年推出后,成为最受欢迎的数据库产品之一,而且它的设计思想和实现技术被后来的许多数据库产品所仿效;他也积极推动与促进了数据库标准的制定。基于他在数据库领域所作的贡献,Charles W.Bachman被授予1973年的图灵奖,成为数据库领域首位图灵奖的获得者

三、三级体系结构

1、采用ANSI/SPARC三级体系结构的好处

具有ANSI/SPARC三级体系结构的DBMS为用户提供了数据在不同层次上的抽象视图,这就是数据抽象,即不同的使用者从不同的角度去观察数据库管理系统中的数据所得到的结果。

外部级最接近用户,是单个用户所能看到的数据视图;概念级涉及到所有用户的数据,即全局视图;内部级最接近物理存储设备,涉及到数据的物理存储结构,而对普通用户来说,并不需要了解数据库管理系统中数据的复杂的数据结构

DBMS通过三个层次的抽象,可向用户屏蔽数据的复杂性,隐藏关于数据存储和维护的某些细节,提高了数据独立性,减轻了用户使用系统的负担

2、下表中给出了有关数据库体系结构的相关术语及对应关系

 在数据库管理系统中,通常采用三级模式结构来描述三个级别的数据抽象

三、模式

1、概念

在DBMS中用数据模型来组织、描述和存储数据,将数据库描述数据库本身,也就是实际的数据加以区别,数据库的描述称为数据库模式

2、模式反映的是数据库中数据的结构及其联系,是相对稳定的,它会在数据库设计阶段确定下来

3、举例:

模式图显示的只是模式的一些方面,如库中个关系的属性名称,关系间属性的参照关系,并没有显示每个属性的数据类型以及复杂的约束等

四、实例

1、概念

一个特定时刻数据库中的即时数据,也成为数据库状态、当前出现、快照

2、举例:

这就是学生选课数据库概念模式对应的一个数据库实例,模式是相对稳定的,实例是不断变化的

五、概念模式

1、概念

一个数据库只有一个概念模式,是对概念级数据视图的描述

(1)数据库概念模式以某一种数据模型为基础,综合考虑所有用户的需求,并将这些需求有机地结合成一个逻辑整体,所以概念模式也称逻辑模式,或简称模式

(2)是数据库中全体数据的逻辑结构和特征的描述

(3)它是数据库模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序所使用的应用开发工具及高级程序设计语言无关

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

比如:可以用SQL语言对学生选课关系数据库的概念模式进行模式定义,确定每个属性的数据类型、数据间的联系以及相关的约束等

六、外模式

对概念模式所描述的全局数据,数据库用户在应用需求、看待数据的方式、存储数据的权限等方面存在差异,能够看见和使用的局部数据是不同的,所以一个数据库可以对应多个外模式来描述外部级不同用户的数据视图 

1、概念

每个外模式描述的就是一个特定用户所感兴趣的那部分数据库的逻辑结构和特征

 数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述

外部级用户数据视图的描述

概念模式的子集,与应用有关,也称子模式用户模式

2、注意:

同一外模式可为某一用户的多个应用程序所使用,但一个应用程序只能使用一个外模式

七、内模式

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

1、概念

内模式是数据库的物理存储结构和存储方式的描述 ,是数据在数据库内部的表示方式

是内部级数据视图的描述

也称存储模式

2、内模式独立于具体的存储设备,不考虑具体存储设备的物理特性,而是假定数据存储在一个无限大的线性地址空间中 

八、三级模式结构举例

学生选课数据库中学生信息的三级模式

1、在概念模式中,数据库中包含了学生S表的信息,每个学生记录都有学号SNO、姓名SN、性别SEX、出生日期SB和所在系SD五个属性,并定义了每个属性的数据类型

2、在内模式中,学生信息可由一个长度为76字节的存储记录类型来表示,其中包含16个字节的前缀,主要存储如记录长度、模式指针等控制信息和对应于学生的五个属性的五个数据字段,此外,该存储记录按学生学号字段进行索引

3、在外模式中,使用过程语言SQL编程的用户对应一个数据库的外部视图每个学生的信息由三个变量来表示 ,其中两个变量对应于概念模式中学生S表中的学号SNO和姓名SN属性,还有一个变量对应概念模式中其它表中的数据。该用户根据过程化SQL的规则用变量声明来定义外模式。使用ODBC编程的用户也对应一个外部视图,每个学生的信息由四个变量来表示,对应于概念模式中学生S表中的学号SNO、姓名SN、性别SEX和出生日期SB四个属性,根据C语言的规则来定义外模式,该用户不需要学生所在系SD的信息

从某种程度讲,概念模式和内模式之间的关系,可以看作是设计与实现的关系;而概念模式和外模式之间的关系,可以看作是全局和局部的关系

九、模式定义语言

1、DBMS提供的数据定义功能,就是用DBMS支持的数据定义语言来定义各级模式完成的

2、早期的DBMS描述各级模式的模式定义语言是加以区分的,当前的DBMS并不将各级模式定义语言独立开来,而使用的一种综合集成语言,如SQL语言,SQL语言不仅可对各级模式中的数据库对象进行定义和说明,还具备数据操纵语言的功能以及以及一些其他特性

3、模式定义存储在DBMS的数据字典中,是DBMS对数据库进行操纵的基本依据

三级模式只是对在不同的抽象视图的描述,而实际的数据都存储在物理数据库上

十、DBMS的工作模式

1、在遵循ANSI/SPARC体系结构的数据库系统,用户对数据库进行的访问操作,是由DBMS将对外模式的请求转换为一个面向概念模式的请求,然后再转换为一个面向内模式的请求,进而通过操作系统,操纵存储器中的数据

如果有一请求要检索数据库,那么从物理数据库中提取出来的数据必须必须进行转换,以便与用户外模式相匹配

十一、二级映射

在各层间完成请求和结果转换的过程称为映射

1、数据库管理系统在各级模式之间提供了两级映射,外模式/概念模式间的映射,存在于外部级和概念级之间,用于定义外模式和概念模式的对应关系

2、概念模式/内模式间的映射,存在于概念级和内部级之间,用于定义概念模式和内模式的对应关系

由于用户所见的局部数据库的逻辑数据结构与概念级的全局的逻辑数据结构可能不一致,例如字段可能有不同的数据类型、字段名或记录名可能改变、几个概念字段可能合成一个单一的外部字段等等,因此,需要说明外模式概念模式之间的对应性,对于每一个外模式,都对应一个外模式/概念模式映射,这些映射通常包含在各自外模式的描述中

由于数据全局逻辑结构与存储结构是不一样的,需要说明概念记录和字段在内部级是如何表示的。由于数据库只有一个概念模式和一个内模式,则概念模式/内模式映射是唯一的,该映射定义通常包含在概念模式的定义描述

应用程序依赖于外模式,独立于概念模式和内模式。DBMS的三级模式和两级映射机制,使得数据的定义和描述可以从应用程序中分离出来。数据的存取由DBMS管理,用户也不必考虑存取路径等细节,从而简化了应用程序的编写,大大减少了应用程序的维护与修改,实现了数据独立性,也使得数据库技术得以广泛地应用

十二、小结

1、具有ANSI/SPARC体系结构的DBMS支持一个内模式、一个概念模式和多个外模式。

  • 概念模式独立于其他模式,设计数据库模式结构时应首先确定数据库的概念模式,即全局的数据逻辑结构。
  • 内模式独立于外模式,也独立于具体的存储设备,但依赖于概念模式,它将概念模式中所定义的全局的数据逻辑结构按照一定的物理存储策略进行组织
  • 外模式定义在概念模式之上,独立于内模式和存储设备,面向具体的应用程序

2、当应用需求发生较大变化时,相应外模式不能满足用户视图需求时,需要对外模式进行修改

3、大多数DBMS并不是将这三层模式完全分离开,而只是在一定程度上支持三层模式体系结构,比如有些DBMS在概念模式中还包括一些物理层的细节

4、并不是所有的DBMS都具有这种三级结构,但SNSI/SPQRC体系结构基本上能很好地适应大多数系统

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

双向长短期记忆神经网络BiLSTM

先说一下LSTM LSTM 是一种特殊的 RNN,它通过引入门控机制来解决传统 RNN 的长期依赖问题。 LSTM 的结构包含以下几个关键组件: 输入门(input gate):决定当前时间步的输入信息对细胞状态的影响程度。遗忘门&#xff…

大模型回归实业,少谈梦,多赚钱

前言 大家都知道美国现在AI很火,但是现在火到已经有点看不懂的地步了。 苹果前脚在WWDC24上公布了自己在AI上的新进展,隔天市值就上涨了2142亿美元。而以微软为首的美股“Big 7”的市值更是达到史无前例的14万亿,占据标普500的32%。 冷静下…

【吊打面试官系列-Mysql面试题】你可以用什么来确保表格里的字段只接受特定范围里的值?

大家好,我是锋哥。今天分享关于 【你可以用什么来确保表格里的字段只接受特定范围里的值?】面试题,希望对大家有帮助; 你可以用什么来确保表格里的字段只接受特定范围里的值? 答:Check 限制,它在数据库表格里被定义&…

bigtop gradle 任务依赖关系

./gradlew deb 会编译ubuntu的所有deb包 任务deb会依赖17个任务,它们会按字母排序执行,如下: alluxio-deb bigtop-groovy-deb bigtop-jsvc-deb bigtop-utils-deb flink-deb hadoop-deb hbase-deb hive-deb kafka-deb livy-deb phoenix-deb …

网络构建关键技术_2.IPv4与IPv6融合组网技术

互联网数字分配机构(IANA)在2016年已向国际互联网工程任务组(IETF)提出建议,要求新制定的国际互联网标准只支持IPv6,不再兼容IPv4。目前,IPv6已经成为唯一公认的下一代互联网商用解决方案&#…

【Linux】解决windows下文件到linux下文件格式^M的问题之tr命令、sed命令

方法一: sed -i s/^M/ /g 方法二 : tr -d "^M" 1. 删除 -d 2. 替换字符

阅读笔记——《Large Language Model guided Protocol Fuzzing》

【参考文献】Meng R, Mirchev M, Bhme M, et al. Large language model guided protocol fuzzing[C]//Proceedings of the 31st Annual Network and Distributed System Security Symposium (NDSS). 2024.(CCF A类会议)【注】本文仅为作者个人学习笔记&a…

Android音频系统

最近在做UAC的项目,大概就是接收内核UAC的事件,也就是声音相关事件。然后就是pcm_read和AudioTrackr->write之间互传。感觉略微有点奇怪,所以简单总结一下。 1 UAC的简要流程 open_netlink_socket 打开内核窗口,类似于ioctl。…

游戏AI的创造思路-技术基础-深度学习(1)

他来了,他来啦,后面歌词忘了~~~~~ 开谈深度学习,填上一点小坑,可又再次开掘大洞 -.-b 目录 1. 定义 2. 深度学习的发展历史和典型事件 3. 深度学习常用算法 3.1. 卷积神经网络(CNN) 3.1.1. 算法形成过…

【内网穿透】FRP 跨平台内网穿透 支持windows linux x86_64 arm64 端口范围映射

AI提供的资料: FRP(Fast Reverse Proxy)是一个专为内网穿透设计的高性能反向代理程序。以下是一些关于FRP的详细资料,帮助您更好地理解和使用这一工具: 核心特点: 内网穿透:能够将位于内网的…

异常处理的例子

多个except 示例代码如下 try:a input("请输入被除数:")b input("请输入除数:")c float(a)/float(b)print(c)except ZeroDivisionError:print("异常:除数不能为0") except TypeError:print("异常&am…

Vlog视频如何剪辑 Vlog视频剪辑逻辑 视频剪辑制作教程

剪出感觉、剪出情绪,给Vlog视频注入高级氛围感。不用购买昂贵的前期设备,正确地剪辑思维搭配一款好用的视频剪辑软件,你也能剪出令人惊艳的Vlog作品。请收藏本文并反复练习,相信在不久的将来,您的作品必会让人眼前一亮…

【linux基础awk】如何基于强大的awk打印列、计算

打印列 awk {print $1} test.txt#-F参数去指定分隔的字符 awk -F "," {print $1,$2} file 匹配打印列 awk /a/ {print $4 "\t" $3} test.txt筛选数值 仅打印那些含有多于18个字符的行。awk length($0) > 18 test.txt 统计数目 #统计行数 less num…

【Linux】进程信号_1

文章目录 八、进程信号1.信号 未完待续 八、进程信号 1.信号 信号和信号量之间没有任何关系。信号是Linux系统提供的让用户/进程给其他进程发送异步信息的一种方式。 常见信号: 当信号产生时,可选的处理方式有三种:①忽略此信号。②执行该…

机器人控制系列教程之运动规划(2)

简介 在笛卡尔坐标空间中轨迹规划时,首先用位置矢量和旋转矩阵表示所有相应的机器人节点,其次在所有路径段插值计算相对的位置矢量和旋转矩阵,依次得出笛卡尔坐标空间中的轨迹序列通过求解运动学逆问题得到相应关节位置参数。 优点&#xf…

鸿蒙北向开发 ubuntu20.04 gn + ninja环境傻瓜式搭建闭坑指南

ninja跟gn都是比较时髦的东西,由歪果仁维护,如果走下载源码并编译这种流程的话需要走github跟google官网下载,国内的用网环境相信各位傻瓜都知道,github跟google这几年基本是属于连不上的状态,好在你看的鸿蒙项目跟国内的一些软件大厂已经帮你爬过梯子了,ninja工具跟gn工具已经…

PTP时间同步协议简介

注意,上图中 t1 t4 都是主机时间。 t2 t3 都是从机时间。 总延迟为 (t4 - t1) - (t3 - t2) 单边的平均延迟为 ((t4 - t1) - (t3 - t2) ) / 2,公式d1 两边的时钟偏差为 (((t3 t2) / 2)) - ((t4 t1) / 2) 也可以通过下面2个式子 t2 offset delay t1…

CAN报文的发送类型-OnChange、OnWrite、IfActive、Repetition

CAN报文的发送类型分为基本发送类型和混合发送类型两大类 CAN基本发送类型包括Cyclic周期发送、OnChange变化时发送、OnWrite写入时发送和IfActive有效时发送。基本发送类型中的Cyclic称为周期型,而其他3个类型称为事件型(Event)。发送次数是通过定义Repetition重复次数来实…

实用软件下载:ABBYY Finereader 15最新安装包及详细安装教程

数据表明FineReader PDF提供实用、简易的工具,将纸质文档和PDF结合起来,提高了数字工作场所的效率。我们都知道 即时背景识别:使不可搜索的PDF能够在工作中立即使用。值得一提的是文档转换更精准:OCR技术,它提高了PDF转换、布局保…

深入解析Elasticsearch 8.4.1:Mapping与字段类型实战指南

标题Elasticsearch8.4.1常见字段类型介绍 Mapping概述 在Elasticsearch中,Mapping定义了索引中每个字段的类型、属性以及设置。Mapping的作用是告诉Elasticsearch如何索引文档中的字段,包括如何分析字段值以及如何存储它们。 常见字段类型 字符串类型…