数据库体系结构概念--集中式数据库、分布式数据库
数据库模式
前言:
平时我们接触的‘数据库’一般指的是DBMS,数据库管理系统,DBMS是软件如:mysql、oracle、dm等等都是集中式数据库,但它们不能代表整个数据库,只是通过这些软件来管理相应的数据内容;
数据库模式:
- 集中式数据库
- 分布式数据库
集中式数据库
上图是集中数据库的体系结构图:三级模式两层映射;
- 外模式:对应的是用户视图,用户和应用程序所关注的内容,只与用户相关, 比如我们上面说指的DBMS,数据库管理系统;
- 概念模式:逻辑模式,逻辑结构,对应的是DBA视图,整个数据库的核心,主要是概念级数据库,里面主要包含的是所有数据的逻辑结构和特征的描述,比如:我们用create语句所创建的基本表(基表)就是概念模式所对应的内容;
- 外模式-概念模式映射:外模式的数据来源于概念模式,所以外模式与概念模式之间存在某种映射!保证了数据的逻辑独立性
- 内模式:存储模式、物理模式,对应的是内部视图,主要是物理级数据库,对应是计算机磁盘上存储的基本数据文件;
- 概念模式-内模式映射:概念模式与内模式也就是与物理存储之间存在某种映射关系;保证了数据的物理独立性。
- 逻辑独立性:外模式-概念模式映射保证了数据的逻辑独立性;当概念模式中的逻辑结构发生了变化,我们不用去修改外模式对应的应用程序,只需修改外模式-概念模式映射关系就可以了;
- 物理独立性:概念模式-内模式映射保证了数据库的物理独立性;指的是外模式所对应的应用程序,与内模式的物理存储之间相互独立;当内模式中的物理存储发生了变化时,外模式的应用程序无需发生变化,只需要更改相关映射关系即可。例如:数据迁移后,物理存储相对之前发生了变化,无需修改用户面对的应用程序,只需修改路径映射即可。
关系的三种类型
- 针对关系型数据库;
- 关系表:关系模型,关系类型,简称:关系,关系型数据库中的表;
- 基本表:使用create创建的表一般都是基本表,也叫基表;
视图
- 一般传统意义上的视图没有存储数据,每次都需要通过查询原始表从而动态生成所需数据,所以它比查询直接存储了相关数据的表而言,性能和效率较差;
- 需要关联多表进行的查询,而且使用视图则简化了用户操作;
- 通过同一数据,查询不同的字段和字段的相关操作,使得用户可以在不同角度上看待同一数据;
- 如果数据库的概念模型发生了变化,用户视图无需更改,只需更改外模式和概念模式的映射,具体一定程度的逻辑独立性;
- 在视图中可以指定原始表的部分字段显示,也可以限制用户对原始表的操作,视图只读不可写,还可以限制用户访问,从而保护了原始表;
- 物化视图:本身会存储数据,因为原始表数据更新时,物化视图也要更新,所以物化视图适合多读少写的场景。
分布式数据库
- 在集中式数据库的三级模式两层映射基础上,增加了全局的概念;
- 不同于集中式数据库,数据存储在同一个物理节点,分布式数据库数据存储在不同的物理节点;
- 分布式数据库在访问数据时,可以从先从临近的节点去访问,所以在效率上比集中式数据库具有更多的优化操作;
- 负载均衡;
- 对同一数据在不同节点上,可以存储相关的数据副本,起到数据备份作用,从而解决一些数据库可靠性和安全问题;
- 数据库可靠性和安全问题:一个节点上的数据库挂了,不至于数据丢失,因为同一数据在其他节点进行了备份,可以直接访问其他存活节点上的数据库;
相关文章:
数据库体系结构概念--集中式数据库、分布式数据库
数据库模式 前言: 平时我们接触的‘数据库’一般指的是DBMS,数据库管理系统,DBMS是软件如:mysql、oracle、dm等等都是集中式数据库,但它们不能代表整个数据库,只是通过这些软件来管理相应的数据内容&#…...
PyQt5数据库开发2 5.2 QSqlRelationalTableModel
目录 一、Qt窗体设计 1. 新建Qt项目 2. 添加组件 3. 添加资源 4. 添加Action 5. 添加工具栏 6. 添加菜单项 7. 添加退出功能 二、SQL Server下建表插数据 1. 建立表 2. 插入数据 3. 单表数据 4. 联合查询 三、代码实现 1. 新建项目目录 2. 编译窗体文件和资…...
树莓派——智能家居第一步
辛辛苦苦配了成功让树莓派开始工作了,开始搞智能家居!大体思路:基于工厂模式,分模块来实现上图分为三部分:主控、外设、控制主控我采用的是树莓派的4b4G版本,外设包括四个区域的灯(我的和上图有…...
【Golang】Golang基础入门级教程 -- 0基础安装搭建Go语言开发环境
目录 安装和下载GO语言 下载 下载地址 版本的选择 安装 Windows安装 Linux下安装 Mac下安装 检查 GOROOT和GOPATH GOPROXY Go开发编辑器 VS Code介绍 下载与安装 配置 Go扩展 第一个Go程序 Hello World go mod init 编写 编译 VSCode切换默认终端 本篇文章…...
MATLAB | 如何解决实验数据散点图重叠问题(overlap)
本期部分实验效果: 这期讲一下如果数据重合严重该咋办(overlap),事先说明,本文中的绘图均使用一个几行的简单小代码进行了修饰: function defualtAxes axgca;hold on;box on ax.XGridon; ax.YGridon; ax.XMinorTickon; ax.YMinor…...
Kubernetes 一键部署利器:kubeadm
文章目录集群部署痛点kubeadm 的工作原理kubeadm init 的工作流程kubeadm join 的工作流程kubeadm 的部署配置参数集群部署痛点 Kubernetes 的部署一直以来都是挡在初学者前面的一只“拦路虎”。尤其是在 Kubernetes 项目发布初期,它的部署完全要依靠一堆由社区维护…...
[jS 事件循环理解] 主线程 宏任务 微任务 - 执行顺序优先级理解
最近看了一个帖子 事件循环机制-宏任务-微任务 把js单线程中 , 主线程 | 宏任务 | 微任务 的调用顺序讲解的很直白精巧 , 记录一下以供查阅 1.主线程, 可以理解为从上到下顺序执行的一个js线程 2. 宏任务 script / setTimeOut /setInterval等 3. 微任务主要有promise等 4. 热…...
顺序表和链表的比较
这两个结构各有优势,相辅相成。 顺序表: 优点: 1.支持随机访问。 2.CPU高速缓存命中率更高。(物理空间连续) 缺点: 1.头部和中部插入和删除时间效率低(O(n))。 2.连续的物理空间,空间不够后需要增容:…...
Java为什么只能单继承???
目录 先屡清楚继承和实现的区别: 分析原因: 多继承虽然能使子类同时拥有多个父类的特征,但是其缺点也是很显著的,主要有两方面: (1)如果在一个子类继承的多个父类中拥有相同名字的实例变量,子类在引用该…...
数据安全-分类分级 调研分析报告
目录 前言一、数据分类分级概述1.数据分类2.数据分级二、数据分类分级原则三、数据分类分级的框架和方法1.数据分类分级的框架2.分类标准分类常见的方法2.1 MECE2.2 线分法和面分法及混合分法2.3 数据主题域2.4 技术选型维度2.5 以业务应用维度2.6 信息安全隐私方面的分类法3.分…...
浏览器对象详解
文章目录浏览器对象详解一、参考资料二、认识浏览器运行态下的 js1.问:是否了解浏览器的执行态(分层设计)?2.BOM1.[location](https://developer.mozilla.org/zh-CN/docs/Web/API/Location)拓展方向:2.[History](https…...
异步电路后端实现流程(cdc signOff 后端做什么)
一种后端异步电路的signOff流程同步电路和异步电路分别signOff对于同步电路,后端会分析sta setup/hold,这里不在赘述。在该scenario下 异步电路是不会分析,也不会关注异步电路之间的走线在cdc scenario(mode)下sdc有一下设置:将所…...
Linux网络编程实战介绍
文章目录 前言一、Linux网络编程介绍二、文章目录总结前言 本专栏将为大家讲解Linux网络编程的知识,本专栏只需要有C语言基础即可学习,学习本专栏将大大提高你的C语言水平,当然了我也还会在ARM板子上进行实验将Linux驱动也和网络编程联系起来,方便大家去实现自己的项目。我…...
C++概述 课堂笔记
函数的重载在C语言中函数名是唯一的,不可以重复定义,当我们利用函数执行,功能相似的函数,我们也不能使用同一个函数,比如说,求整型的函数,不能用来求浮点型、字符型。在C中引入函数重载的概念&a…...
一文读懂SpringBoot整合Elasticsearch(一)
(本篇文章主要介绍Spring Boot如何整合Elasticsearch,包括基本配置、数据操作、搜索功能等方面。) 一、前言 Elasticsearch是一款全文搜索引擎,可用于快速、准确地存储、搜索和分析大量数据。而Spring Boot是一款快速开发框架&a…...
(数论)(枚举)(前缀和)1230. K倍区间
目录 题目链接 一些话 切入点 流程 套路 ac代码 题目链接 1230. K倍区间 - AcWing题库 ~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水&…...
万字带你深入理解 Linux 虚拟内存管理(下)
接上文:万字带你深入理解 Linux 虚拟内存管理(上) 6. 程序编译后的二进制文件如何映射到虚拟内存空间中 经过前边这么多小节的内容介绍,现在我们已经熟悉了进程虚拟内存空间的布局,以及内核如何管理这些虚拟内存区域&…...
【iOS】—— JSONModel源码学习
JSONModel 文章目录JSONModel关于JSONModel的用法initWithDictionary等方法load方法实现load方法调用时机init方法__setup__方法__inspectProperties:方法__doesDictionary方法__importDictionary方法关于JSONModel的用法 可以参考之前写的博客:【iOS】—— JSONMo…...
单片机怎么实现真正的多线程?
所谓多线程都是模拟的,本质都是单线程,因为cpu同一时刻只能执行一段代码。模拟的多线程就是任务之间快速切换,看起来像同时执行的样子。据说最近有多核的单片机,不过成本应该会高很多。对于模拟的多线程,我知道的有两种…...
【LeetCode】剑指 Offer(23)
目录 题目:剑指 Offer 46. 把数字翻译成字符串 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 题目:剑指 Offer 46. 把…...
[免费专栏] 汽车威胁狩猎之不应该相信的几个威胁狩猎误区
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 汽车威胁狩猎专栏长期更新,本篇最新内容请前往: …...
LinuxFTP文件传输服务和DNS域名解析服务
♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放࿰…...
二叉搜索树原理及底层实现
二叉搜索树BST 概念 二叉搜索树又称二叉排序树,它可以是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值;若它的右子树不为空,则右子树上所有节点的值都…...
python自动化办公(一)
本文代码参考其他教程书籍实现。 文章目录文件读写open函数读取文本文件写入文本文件文件和目录操作使用os库使用shutil库文件读写 open函数 open函数有8个参数,常用前4个,除了file参数外,其他参数都有默认值。file指定了要打开的文件名称&a…...
LeetCode - 198 打家劫舍
目录 题目来源 题目描述 示例 提示 题目解析 算法源码 题目来源 198. 打家劫舍 - 力扣(LeetCode) 题目描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装…...
简单粗暴的分布式定时任务解决方案
分布式定时任务1.为什么需要定时任务?2.数据库实现分布式定时任务3.基于redis实现1.为什么需要定时任务? 因为有时候我们需要定时的执行一些操作,比如业务中产生的一些临时文件,临时文件不能立即删除,因为不清楚用户是…...
蓝桥杯第五天刷题
第一题:数的分解题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2和 4,一共有多少种不同的分解方法&…...
Java数组的定义和使用(万字详解)
目录 编辑 一. 数组的基本概念 1、什么是数组 2、数组的创建及初始化 1、数组的创建 2、数组的初始化 3、数组的使用 (1)数组中元素访问 (3)遍历数组 二、数组是引用类型 1、初始JVM的内存分布 2、基本类型变量与引用类…...
【SpringBoot】自定义Starter
🚩本文已收录至专栏:Spring家族学习之旅 👍希望您能有所收获 一.概述 在使用SpringBoot进行开发的时候,我们发现使用很多技术都是直接导入对应的starter,然后就实现了springboot整合对应技术,再加上一些简…...
【C陷阱与缺陷】----语法陷阱
💯💯💯 要理解一个C程序,必须理解这些程序是如何组成声明,表达式,语句的。虽然现在对C的语法定义很完善,几乎无懈可击,大门有时这些定义与人们的直觉相悖,或容易引起混淆…...
企业网站类型有哪些/网站测试报告
文章目录1 基本算法1.1 原地切分1.2 边界1.3 随机性1.4 终止循环1.5 切分元素重复1.6 终止递归2 备注1 基本算法 快速排序是一种分治的排序算法。它将一个数组分成2个子数组,将两部分独立排序。听起来和归并排序很像,那么有什么不一样呢?…...
安装wordpress导入工具/长沙关键词优化新报价
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net package live.every.day.Programming.Array;/*** 题目:* 转圈打印矩阵。** 思路…...
广东省医院建设协会网站首页/百度商家版下载
解决办法: window --> preferences --> Team --> SVN --> Client选项选择: SVNKit x.x.x.xxx 转载于:https://www.cnblogs.com/zheh/p/4199400.html...
外贸网站如何seo推广/做关键词优化
一些官方提供的Frank-Cucumber代码,可以参考去写我们自己的自动化测试代码 WAIT_TIMEOUT 240require rspec/expectations# -- See -- # Then /^I wait to see "([^\"]*)"$/ do |expected_mark|Timeout::timeout(WAIT_TIMEOUT) dountil view_with_ma…...
怎么看网站建设有多久/营销技巧培训ppt
07.JAVA中,什么是构造方法?什么是构造方法重载?什么是复制构造方法? 当新对象被创建的时候,构造方法会被调用。每一个类都有构造方法。在程序员没有给类提供构造方法的情况下,JAVA编译器会为这个类创建一个…...
手机怎么样自己做网站/河北网站建设推广
问题 已经安装过serial和pyserial两个库了,但是运行代码依然报错。 检查是否安装,发现是没有问题的。 解决方法 将两个库都卸载掉,然后只安装pyserial,即可。 pip uninstall serial pip uninstall pyserialpip install pys…...