【软考--软件设计师】10.2 关系型数据库

在这里插入图片描述
在这里插入图片描述

10 模式分解

  • 分解
    模式分解:将一个关系模式分解为多个子模式
    模式分解就是模式规范化的工具,模式分解使用无损连接和保持函数依赖来衡量模式分解后是否导致原有模式中部分信息丢失。

  • 无损连接
    在这里插入图片描述

  • 保持函数依赖
    在这里插入图片描述

11、事务管理

事务的ACID性质:
(1)原子性(Atomicity):要么都做,要么都不做。
(2)一致性(Consistency):事务执行的结果必须从一个一致性状态转到另一个一致性状态。中间状态对外不可见。
(3)隔离性(Isolation):事务之间相互隔离,互不干扰。
(4)持久性(Durability):事务成功提交后,对数据库的更新操作是永久有效的。

12、并发控制

  • 并发操作就是在多用户系统中,可能出现多个事务同时操作同一数据的情况。并发操作会导致3种数据不一致的问题:
    • 丢失修改(丢失更新)
      当两个事务T和T,读入同一数据做修改,并发执行时,T把T或T,把T,的修改结果覆盖掉,造成了数据的丢失更新问题,导致数据不一致。
    • 不可重复读
      事务7,读取了数据R,事务T,读取并更新了数据R。当事务T,再读取数据R以进行核对时,得到的两次读取数据不一致。
    • 读脏数据
      事务T,更新了数据R,事务T,读取了更新后的数据R,事务T,由于某种原因被撤销,进行了事务回滚,数据R恢复原值,事务T,读取了脏数据。
      造成以上3种数据不一致的主要原因是事务的并发操作破坏了事务的隔离性-
  • 并发控制类型:
    • 排他锁(X锁):
      事务T对数据A加X锁:
      (1)只允许事务T读取、修改数据A;
      (2)只有等该锁解除之后,其他事务才能够对数据A加任何锁类型
    • 共享锁(S锁):
      解决了X锁太严格,不允许其他事务并发读的问题。事务T对数据A加S锁,则:
      (1)只允许事务T读取数据A但不能够修改:
      (2)可允许其他事务对其加S锁,但不允许加X锁

13 数据库备份与回复

  • 数据库的故障类型
    ①事务内部故障:如运算溢出、除零错误、并发事务发生死锁等;
    ②)系统故障:也称为软故障,是指造成系统停运的事件,如CPU故障、OS故障、突然停电等③介质故障:也称为硬故障,如磁盘损坏等;
    ④计算机病毒:
  • 数据库的备份方法
    数据库的转储分为静态转储和动态转储,海量转储、增量转储和差量转储,以及日志文件
    • 静态转储:即冷备份,指在转储期间不允许对数据库进行任何存取、修改操作。
      优点是非常快速、容易归档(直接物理复制操作)。
      缺点是只能提供到某一时间点上的恢复,不能做其他工作,不能按表或按用户恢复。
    • 动态转储:即热备份,在转储期间允许对数据库进行存取、修改操作,因此,转储和用户事务可以并发执行。
      优点是可在表空间或数据库文件级备份,数据库仍可使用,可达到秒级恢复。
      缺点是不能出错,否则后果严重,若热备份不成功,所得结果几乎全部无效。
  • 海量转储(完全转储):是指每次转储全部数据库。
  • 增量转储:是指每次只转储上次转储后更新过的数据,用于数据库很大,事务处理频繁的场景。
  • 差量转储:是对最近一次数据库完全备份以来发生的数据变化进行备份,优点是速度快,占用较小的时间和空间。
  • 日志文件:在事务处理过程中,DBMS把事务开始、事务结束以及对数据库的插入、删除和修改的每一次操作写入日志文件。一旦发生故障,DBMS的恢复子系统利用日志文件撤销事务对数据库的改变,回退到事务的初始状态。

14 数据仓库

在这里插入图片描述
数据仓库与数据库对比:

数据仓库数据库
面向主题面向事务
数据结构是集成的,具有一致性数据结构更为复杂
是静态的历史数据,只能定期添加、刷新是动态变化的,业务发生,数据就更新
存储历史数据存储实时、在线数据
设计需要引入冗余设计尽量避免冗余

15 分布式数据库

  • 分布式数据库通常使用较小的计算机系统,每台算机可以单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本或部分拷贝副本,并具自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库
  • 分布式数据库的核心:
    • 数据分片:突破中心化数据库单机的容量限,将数据分散到多节点,以更灵活、高效的方式来处理数据。
      分片方式包括:
      ①水平分片:按行进行数据被分割,数据分割为一个个数据组,分散到不同节点上;
      ②垂直分片:按列进行数据分割,一个数据表的模式被切割为多个子模式。
    • 数据同步:由于数据库理论传统上是建立在单机数据库基础上,而引入分布式理论后,一致性原则被打破。因此引入数据库同步技术来帮助数据库回复一致性。
  • 分布式数据库特点:高可扩展性、高并发性、高可用性。

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

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

相关文章

python训练day44 预训练模型

预训练模型发展史 预训练模型的训练策略 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pyplot as plt# 设置中文字体支持 plt.rcParams["…

[论文阅读]MISSRce

论文title: MISSRec: Pre-training and Transferring Multi-modal Interest-aware Sequence Representation for Recommendation

Redis学习笔记——黑马点评 附近商铺到UV统计 完结

前言: 今天完结了Redis的所有实战篇。 学习收获: GEO数据结构: GEO就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本中加入对Geo的支持,存储、管理和操作地理空间数据的特殊数据结构,它能高效处…

【客户端排查】mac电脑怎么查看客户端的实时运行日志

先退出客户端;打开访达里的应用程序; 打开【显示包内容】; 找到MacOS 双击里面的终端程序; 双击后,客户端会自动启动,且可以在终端中查看客户端的实时日志啦~

HarmonyOS NEXT仓颉开发语言实战案例:健身App

各位好,今日分享一个健身app的首页: 这个页面看起比之前的案例要稍微复杂一些,主要在于顶部部分,有重叠的背景,还有偏移的部分。重叠布局可以使用Stack容器实现,超出容器范围的偏移可以使用负数间距来实现&…

TreeMap源码分析 红黑树

今天尝试刨一下TreeMap的祖坟。 底层结构对比 先来看一下与HashMap、LinkedHashMap和TreeMap的对比,同时就当是复习一下: HashMap使用数组存储数据,并使用单向链表结构存储hash冲突数据,同一个冲突桶中数据量大的时候&#xff…

华为云Flexus+DeepSeek征文|基于Dify构建拍照识题智能学习助手

华为云FlexusDeepSeek征文|基于Dify构建拍照识题智能学习助手 一、构建拍照识题智能学习助手前言二、构建拍照识题智能学习助手环境2.1 基于FlexusX实例的Dify平台2.2 基于MaaS的模型API商用服务 三、构建拍照识题智能学习助手实战3.1 配置Dify环境3.2 配置Dify工具…

题解:CF2120E Lanes of Cars

根据贪心,不难想到每次会把最长队伍末尾的那辆车移动到最短队伍的末尾。但由于 k k k 的存在,会导致一些冗余移动的存在。设需要挪动 C C C 辆车,则怒气值可以表示为 f ( C ) k C f(C) kC f(C)kC,其中 f ( C ) f(C) f(C) 是…

Excel基础:选择和移动

本文演示Excel中基础的选择和移动操作,并在最后提供了一张思维导图,方便记忆。 文章目录 一、选择1.1 基础选择1.1.1 选择单个单元格1.1.2 选择连续范围 1.2 行列选择1.2.1 选择整行整列1.2.2 选择多行多列 1.3 全选1.3.1 全选所有单元格1.3.2 智能选择…

Java面试宝典:基础四

80. int vs Integer 维度intInteger类型基本数据类型(8种之一)包装类默认值0null应用场景性能敏感场景(计算密集)Web表单、ORM框架(区分null和0)特殊能力无提供工具方法(如parseInt())和常量(如MAX_VALUE)示例:

RabbitMQ + JMeter 深度集成指南:中间件性能优化全流程解析!

在 2025 年的数字化浪潮中,中间件性能直接决定系统的稳定性和用户体验,而 RabbitMQ 作为消息队列的“老大哥”,在分布式系统中扮演着关键角色。然而,高并发场景下,消息堆积、延迟激增等问题可能让系统不堪重负&#xf…

uniapp image引用本地图片不显示问题

1. uniapp image引用本地图片不显示问题 在uniapp 开发过程中采用image引入本地资源图片。 1.1. 相对路径和绝对路径问题 在UniApp中开发微信小程序时,引入图片时,相对路径和绝对路径可能会有一些差异。这差异主要涉及到小程序和UniApp框架的文件结构、…

论文阅读:arxiv 2025 ThinkSwitcher: When to Think Hard, When to Think Fast

总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 ThinkSwitcher: When to Think Hard, When to Think Fast https://arxiv.org/pdf/2505.14183#page2.08 https://www.doubao.com/chat/10031179784579842 文章目录 速览一、…

智能体记忆原理-prompt设计

智能体记忆的管理与设计开发分为以下几步: 1.记忆的抽取; 2.记忆的存储; 3.记忆的搜索; 一、记忆抽取一: FACT_RETRIEVAL_PROMPT f"""你是一位个人信息整理助手,专门负责准确存储事实、用…

026 在线文档管理系统技术架构解析:基于 Spring Boot 的企业级文档管理平台

在线文档管理系统技术架构解析:基于Spring Boot的企业级文档管理平台 在企业数字化转型的进程中,高效的文档管理系统已成为提升协作效率的核心基础设施。本文将深入解析基于Spring Boot框架构建的在线文档管理系统,该系统整合公告信息管理、…

AWTK-MVVM的一些使用技巧总结(1)

在项目中用了一段时间的AWTK-MVVM框架,由于AWTK-MVVM本身的文档十分欠缺,自己经过一段时间的研究折腾出了几个技巧,在此记录总结。 用fscript启用传统UI代码 AWTK-MVVM里面重新设计了navigator机制,重定位了navigator_to的调用方…

openwrt使用quilt工具制作补丁

前言:简单聊一下为什么需要制作补丁,因为openwrt的编译是去下载很多组件放到dl目录下面,这些组件都是压缩包。如果我们要修改这些组件里面的源码,就需要对这些组件打pacth,也就是把我们的差异点在编译的时候合入到对应…

强化学习 (1)基本概念

grid-world example 一个由多个格子组成的二维网格 三种格子:accessible可通行的; forbidden禁止通行的; target目标 state状态 state是智能体相对于环境的状态(情况) 在grid-world example里,state指的…

【Typst】纵向时间轴

概述 6月10日实验了一个纵向时间轴排版效果,当时没有做成单独的模块,也存在一些Bug。 今天(6月29日)在原基础上进行了一些改进,并总结为模块。 目前暂时发布出来,可用,后续可能会进行大改。 使用案例 导入模块使用…

【Visual Studio Code上传文件到服务器】

在 Visual Studio Code (VS Code) 中上传文件到 Linux 系统主要通过 SSH 协议实现,结合图形界面(GUI)或命令行工具操作。以下是具体说明及进度查看、断点续传的实现方法: ⚙️ 一、VS Code 上传文件到 Linux 的机制 SSH 远程连接 …