1.3 数据库系统的结构

目录

1.3.1 数据库系统模式的概念

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

1. 模式

2. 外模式

3.内模式(也称存储模式)

1.3.3 数据库的二级映像功能与数据独立性

1.外模式/模式映像

2.模式/内模式映像

1.3.4 总结

模式

内模式

外模式

特定的应用程序

数据库二级映像功能与数据独立性


从数据库应用开发人员角度看,数据库系统通常采用三级模式结构, 是数据库系统内部的系统结构。

从数据库最终用户角度看,数据库系统的结构分为:单用户结构,主从式结构,分布式结构,客户-服务器,浏览器-应用服务器/数据服务器多层结构等。

1.3.1 数据库系统模式的概念

“型” 和“值” 的概念 :对某一类数据的结构和属性的说明型的一个具体赋值。

模式(Schema)1.数据库逻辑结构和特征的描述 2. 是型的描述,不涉及具体值 3.反映的是数据的结构及其联系 4.模式是相对稳定的。

实例(Instance):模式的一个具体值 ;反映数据库某一时刻的状态 ; 同一个模式可以有很多实例 ;实例随数据库中的数据的更新而变动。

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

1. 模式

模式(也称逻辑模式):数据库中全体数据的逻辑结构和特征的描述和所有用户的公共数据视图。

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

模式的地位是数据库系统模式结构的中间层。

模式与数据的物理存储细节和硬件环境无关,与具体的应用程序、开发工具及高级程序设计语言无关。

定义模式定义数据的逻辑结构,数据之间的联系以及数据有关的安全性、完整性要求。

2. 外模式

外模式(也称子模式或用户模式)数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述。

数据库用户的数据视图,与某一应用有关的数据的逻辑表示

外模式与模式的关系外模式通常是模式的子集。一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求;对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同。

外模式与应用的关系:同一外模式也可以为某一用户的多个应用系统所使用,一个应用程序只能使用一个外模式。

外模式的用途每个用户只能看见和访问所对应的外模式中的数据, 数据库中其余数据是不可见的。保证数据库安全性的一个有力措施。

3.内模式(也称存储模式)

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

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

1.3.3 数据库的二级映像功能与数据独立性

三级模式是对数据的三个抽象级别,二级映像在数据库管理系统内部实现这三个抽象层次的。

1.外模式/模式映像

模式:描述的是数据的全局逻辑结构。外模式:描述的是数据的局部逻辑结构。

同一个模式可以有任意多个外模式。

每一个外模式,数据库系统都有一个外模式/模式映象,定义外模式与模式之间的对应关系。这些映象定义通常包含在各自外模式的描述中。

保证数据的逻辑独立性:当模式改变时,数据库管理员对外模式/模式映象作相应改变,使外模式保持不变;应用程序是依据数据的外模式编写的,应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

2.模式/内模式映像

模式/内模式映象:定义了数据全局逻辑结构与存储结构之间的对应关系。 如:说明逻辑记录和字段在内部是如何表示的。

数据库中模式/内模式映象是唯一的,该映象定义通常包含在模式描述中。

保证数据的物理独立性当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变。模式不变,则应用程序不受影响,保证了数据与程序的物理独立性,简称数据的物理独立

1.3.4 总结

模式

数据库模式:即全局逻辑结构是数据库的中心与关键;独立于数据库的其他层次;设计数据库模式结构时应首先确定数据库的逻辑模式。

内模式

依赖于它的全局逻辑结构;独立于数据库的用户视图,即外模式;独立于具体的存储设备;将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率。

外模式

面向具体的应用程序;定义在逻辑模式之上;独立于存储模式和存储设备;当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式就得做相应改动;设计外模式时应充分考虑到应用的扩充性。

特定的应用程序

在外模式描述的数据结构上编制的;依赖于特定的外模式;与数据库的模式和存储结构独立;不同的应用程序有时可以共用同一个外模式。

数据库二级映像功能与数据独立性

保证了应用程序的稳定性(从底层保证了应用程序的稳定性,除非应用需求本身发生 变化,否则应用程序一般不需要修改);程序为中心发展为以数据为中心(具有数据与程序之间的独立性,使得数据的定义和描述可以从 应用程序中分离出去);数据的存取由数据库管理系统管理(简化了应用程序的编制,大大减少了应用程序的维护和修改)

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

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

相关文章

nicegui学习使用

https://www.douyin.com/shipin/7283814177230178363 python轻量级高自由度web框架 - NiceGUI (6) - 知乎 python做界面,为什么我会强烈推荐nicegui 秒杀官方实现,python界面库,去掉90%事件代码的nicegui python web GUI框架-NiceGUI 教程…

C++前置声明的学习

【C】C中前置声明的应用与陷阱_前置生命如何使用-CSDN博客 首先,这样写会报错: #pragma once #include "A.h" class B {A a; public:B(void);~B(void); };#include "B.h" B::B(void) { }B::~B(void) { } #pragma once #include &…

【LeetCode】并查集OJ

目录 1.省份数量 2. 等式方程的可满足性 1.省份数量 题目地址: 547. 省份数量 - 力扣(LeetCode) 解题思路:对于该题我们直接使用并查集,将可以直接的城市都归类一个集合,最后统计数组中集合的总数就是…

Linux Ubuntu部署SVN服务端结合内网穿透实现客户端公网访问

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…

docker部署若依项目

目录 目录 一、搭建局域 二、redis安装 1.创建目录 2. redis.conf修改 三、MySQL安装 1. 安装 2. 设置远程连接 3. 创建数据库 四、若依后端项目搭建 1. 切换到家目录 2. 上传jar包 3. 上传Dockerfile文件 4. 构建镜像 5. 运行容器 6. 查看运行情况 7. 测试(自己…

实用干货!产品经理的进阶秘籍:必备的10项核心技能

在现代商业环境中,产品经理的角色变得愈发关键和多样化。成功的产品经理不仅需要深厚的行业知识,还要具备一系列多面手的技能,以应对不断变化的市场需求和竞争压力。本文将深入探讨产品经理必备的10项核心技能,揭示职场进阶的秘籍…

个推与华为深度合作,成为首批支持兼容HarmonyOS NEXT的服务商

自华为官方宣布HarmonyOS NEXT鸿蒙星河版开放申请以来,越来越多的头部APP宣布启动鸿蒙原生开发,鸿蒙生态也随之进入全新发展的第二阶段。 作为华为鸿蒙生态的重要合作伙伴,个推一直积极参与鸿蒙生态建设。为帮助用户在HarmonyOS NEXT上持续享…

MedSAM 项目排坑记录

MedSAM 项目排坑记录 任务排坑过程配置python环境测试构建docker模型训练数据预处理 单GPU训练最后推理 任务 做一个课程大作业,需要进行CVPR2024年医疗影像分割赛题的打榜(CVPR 2024: SEGMENT ANYTHING IN MEDICAL IMAGES ON LAPTOP)。看到…

买不到的数目c++

题目 输入样例: 4 7输出样例: 17 思路 一个字,猜。 一开始不知道怎么做的时候,想要暴力枚举对于特定的包装n, m,最大不能买到的数量maxValue是多少,然后观察性质做优化。那么怎么确定枚举结果是否正确呢…

内存管理 三大技术(覆盖交换虚存)

1.覆盖技术 程序显然比内存要大的 因为A的话要调用很多,bc ,所以把A放在了常驻区域,然后bc 再同一个分区,如果B调用的话那么这50k就是b在调用,DEF的话三的共享,需要的话就从内存中划拨出来。C在调E的时候&…

局域网管理工具

每个组织的业务运营方法都是独一无二的,其网络基础设施也是如此,由于随着超融合基础设施等新计算技术的发展,局域网变得越来越复杂,因此局域网管理也应该如此,组织需要量身定制的局域网管理解决方案,这些解…

VBA技术资料MF127:移动文件覆盖目标文件

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…