数据库系统体系结构-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体系结构基本上能很好地适应大多数系统

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

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

相关文章

Java学习 (七) 面向对象--多态、object类

一、多态性 多态在java中的体现是 父类的引用指向子类的对象 格式: 父类类型 变量名 子类对象 1、代码案例 vi Person.java public class Person {public String name;public int age;//新增方法public void eat(){System.out.println("人吃饭");}…

github仓库的基本使用-创建、上传文件、删除

1.第一步 先点击左侧菜单栏的远程仓库 2.点击NEW 3.创建仓库 然后点击右下角的 CREATE 4.点击code 点击SSH,然后我出现了You don’t have any public SSH keys in your GitHub account. You can add a new public key, or try cloning this repository via HTTPS. 1&#xff…

【MySQL备份】Percona XtraBackup加密备份实战篇

目录 1.前言 2.准备工作 2.1.环境信息 2.2.配置/etc/my.cnf文件 2.3.授予root用户BACKUP_ADMIN权限 2.4.生成加密密钥 2.5.配置加密密钥文件 3.加密备份 4.优化加密过程 5.解密加密备份 6.准备加密备份 7.恢复加密备份 7.1.使用rsync进行恢复 7.2.使用xtrabackup命令恢…

order by优化案例与原理剖析

一、引言 在数据库查询中,ORDER BY 语句用于对结果集进行排序,是日常开发中不可或缺的一部分。然而,随着数据量的增长,ORDER BY 的性能问题逐渐凸显。本文将结合一个实际案例,分析如何优化 ORDER BY 的性能&#xff0…

ICCV2023图像相关论文摘要速览两部分

tips:有两部分的原因主要是我筛选的时候没有统一image & images Paper1 PromptCap: Prompt-Guided Image Captioning for VQA with GPT-3 摘要原文: Knowledge-based visual question answering (VQA) involves questions that require world knowledge beyon…

深度学习之半监督学习:一文梳理目标检测中的半监督学习策略

什么是半监督目标检测? 传统机器学习根据训练数据集中的标注情况,有着不同的场景,主要包括:监督学习、弱监督学习、弱半监督学习、半监督学习。由于目标检测任务的特殊性,在介绍半监督目标检测方法之前,我…

YOLO10 用分割数据集训练

1、 下载Funiture数据集 http://kaggle.com/datasets/nicolaasregnier/furniture 并生成数据配置文件 data.yaml import yaml import os dataDir "你的工程路径/Furniture/sam_preds_training_set" os.path.join(dataDir, train) num_classes 2 classes [Chair, …

为什么要使用多线程(并发编程)

目录 1.上下文的切换 1.1 什么是上下文切换 2. 并发编程的死锁问题 2.1 死锁产生的原因 2.2 避免死锁的方法 3.资源限制的挑战3.1 什么是资源限制 并发编程的目的是为了让程序更快,大家都知道并不是开启的线程越多越快,因为开启的线程越多随即面临…

【驱动篇】龙芯LS2K0300之红外驱动

实验目标 编写HX1838红外接收器驱动,根据接收的波形脉冲解码红外按键键值 模块连接 模块连接:VCC接Pin 2,GND接Pin1,DATA接Pin16 驱动代码 HX1838 GPIO初始化,申请中断,注意:GPIO48默认是给…

部署最新版本elasticsearch 8.14.1和 kibana 8.14.1

部署最新版的elasticsearch和kibana&#xff0c;前提时已经部署docker 设置用户密码 export ELASTIC_PASSWORD"<ES_PASSWORD>" # 设置elastic用户密码 export KIBANA_PASSWORD"<KIB_PASSWORD>" # 设置kibana_system密码创建docker网络 保…

实用的网站

前端 精简CSS格式 Font Awesome 图标库 BootCDN 加速服务 LOGO U钙网 AI AI工具集 视频下载 B站视频解析下载

2023-2024华为ICT大赛中国区 实践赛网络赛道 全国总决赛 理论部分真题

Part1 数通模块(10题)&#xff1a; 1、如图所示&#xff0c;某园区部署了IPv6进行业务测试&#xff0c;该网络中有4台路由器&#xff0c;运行OSPFv3实现网络的互联互通&#xff0c;以下关于该OSPFv3网络产生的LSA的描述&#xff0c;错误的是哪一项?(单选题) A.R1的LSDB中将存在…

Appium adb 获取appActivity

方法一&#xff08;最简单有效的方法&#xff09; 通过cmd命令&#xff0c;前提是先打开手机中你要获取包名的APP adb devices -l 获取连接设备详细信息 adb shell dumpsys activity | grep mFocusedActivity 有时获取到的不是真实的Activity 方法二 adb shell monkey -p …

【瑞吉外卖 | day01】项目介绍+后台登录退出功能

文章目录 瑞吉外卖 — day011. 所需知识2. 软件开发整体介绍2.1 软件开发流程2.2 角色分工2.3 软件环境 3. 瑞吉外卖项目介绍3.1 项目介绍3.2 产品原型展示3.3 技术选型3.4 功能架构3.5 角色 4. 开发环境搭建4.1 数据库环境搭建4.2 Maven项目构建 5. 后台系统登录功能5.1 创建需…

会声会影2024破解版下载 让视频编辑更简单、更有趣

在数字时代&#xff0c;视频已经成为我们生活中不可或缺的一部分。无论是记录生活、分享快乐&#xff0c;还是宣传产品、传递信息&#xff0c;视频都扮演着重要的角色。然而&#xff0c;对于很多人来说&#xff0c;视频编辑却是一个让人望而却步的领域。复杂的软件操作、繁琐的…

容器安全:等保合规性的基石

随着云计算和微服务架构的蓬勃发展&#xff0c;容器技术已经成为现代IT基础设施不可或缺的一部分。在网络安全等级保护制度&#xff08;等保&#xff09;的框架下&#xff0c;容器安全的要求日益凸显&#xff0c;成为等保合规性的基石。本文将深入探讨容器安全在等保中的重要性…

【kneighborsclassifier 函数及其参数介绍】

文章目录 一、kneighborsclassifier是什么&#xff1f;二、使用步骤三、kneighborsclassifier函数及其参数详解1. 参数说明 一、kneighborsclassifier是什么&#xff1f; kneighborsclassifier 是 scikit-learn 库中 K-近邻算法的实现&#xff0c;用于分类任务。KNN 算法的基本…

爽!强化学习+注意力机制,吞吐量提升了10多倍!

通过引入注意力机制&#xff0c;强化学习模型不仅能够更加高效地处理复杂的环境和任务&#xff0c;还能在学习和决策过程中实现更高的精度和适应性。 因此这种结合迅速成为了各大领域的研究热点&#xff0c;而且已经在实际应用中有了显著的性能提升。比如分散式强化学习框架SA…

在嵌入式商用里面哪款RTOS(实时操作系统)比较多人用?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; 传统的RTOS和嵌入式Linu…

JWT原理与在身份验证中的应用

JWT原理与在身份验证中的应用 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨JWT&#xff08;JSON Web Token&#xff09;的原理及其在身份验证中的广泛应用。 JWT简介 JWT是一种…