系统架构设计师 - 数据库系统(2)

news2025/4/17 22:50:20

数据库系统

  • 数据库系统
    • 规范化理论 ★ ★ ★ ★ ★
      • 函数依赖
      • 求候选键
      • Armstrong公理
      • 范式判断
        • 第一范式 1NF
        • 第二范式 2NF
        • 第三范式 3NF
        • BC 范式 BCNF
      • 模式分解
        • 保持函数依赖分解
        • 无损分解
    • 并发控制 ★
      • 事务的 ACID 特性
      • 并发存在的问题
      • 并发解决方案 - 封锁协议
    • 数据库的安全性 ★
      • 安全性的分类
    • 数据库备份与恢复技术 ★
      • 数据备份
      • 数据库故障与恢复
    • 数据库的性能优化 ★


大家好呀!我是小笙,本章我主要分享系统架构设计师 - 数据库系统(2)知识,希望内容对你有所帮助!!

数据库系统

规范化理论 ★ ★ ★ ★ ★

非规范化的关系模式,可能存在的问题:数据冗余、更新异常(修改操作一致性问题)、插入异常、删除异常

函数依赖

假设 X 决定 Y,即 Y 依赖于 X,记为 X -> Y(可以理解为 在 XY 关系中,任何一个 X 都有与之对应并且唯一的 Y)

部分函数依赖以及传递函数依赖

image-20240411125742159 image-20240411125802478

求候选键

  • 将关系模式的函数依赖关系用“有向图”的方式表示
  • 找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键
  • 若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键

Armstrong公理

关系模式R<U,F>来说有以下的推理规则:

image-20240411204204828

根据以上三条推理规则可以得到下面的推理规则:

  • 合并规则:由 X -> Y,X -> Z 可得 X -> YZ
  • 伪传递规则:由 X -> Y,WY -> Z 可得 XW -> Z
  • 分解规则: 由 X -> Y 以及 Z 属于 Y 可得 X -> Z

注意记忆规则以及对应的推理公式

范式判断

第一范式 1NF

在关系模式R中,当且仅当所有域只包含原子值,即每个属性都是不可再分的数据项,则称关系模式R是第一范式

第二范式 2NF

当且仅当实体E是第一范式(1NF),且每一个非主属性完全依赖主键(不存在部分依赖)时,则称实体E是第二范式

第三范式 3NF

当且仅当实体E是第二范式(2NF),且实体E中没有非主属性传递依赖于码时,则称实体E是第三范式

BC 范式 BCNF

设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码

例题

1、给定关系模式R(U,F),其中:属性集U={A1,A2,A3,A4,A5,A6},函数依赖集F={A1→A2,A1-→A3,A3→A4,A1A5→A6}。关系模式R的候选码为 A1 A5,由于R存在非主属性对码的部分函数依赖,所以R属于 1NF

  • A1A3 A1A4 A1 A5 A1A6
  • 1NF 2NF 3NF BCNF

模式分解

考虑依据:是否保持函数依赖 & 是否无损

保持函数依赖分解

设数据库模式p={R1,R2,…,Rk}是关系模式R的一个分解,F是R上的函数依赖集,p中每个模式Ri上的FD集是Fi。如果{F1,F2,…,Fk与F是等价的(即相互逻辑蕴涵),那么称分解p保持FD

例题理解

保持函数依赖,通过 R1和R2 能得出 F = {A -> B,A -> C,B -> C} ,通过传递依赖得出 B -> C

image-20240417124641372

没有保持函数依赖,通过 R1和R2 只能得出 F = {A -> B,A -> C} 无法得出 B -> C

image-20240417124711993
无损分解

无损联接分解:指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式

表格法

将一个具有函数依赖:学号→姓名,课程号→课程名,(学号,课程号)→ 分数的关系模式:成绩(学号,姓名,课程号,课程名,分数),分解为:成绩(学号,课程号,分数);学生(学号,姓名);课程(课程号,课程名)

初始表如下:

image-20240624212514368

根据学号 → 姓名,对上表进行处理,将 X 改成符号 √ ;然后考虑课程号→课程名,将 X 改为 √ ,得下表:

image-20240624212629770

从上图中可以看出,第1行已全部为√,因此本次R分解是无损分解

公式法

只能用于分解成两个关系,两个关系直接交集能够推导出差集则为无损连接

例题

1、给出关系R(U,F),U={A,B,C,D,E},F={A -> BC,B -> D,D -> E}。以下关于F说法正确的是 F蕴涵A→D、A→E、B→E,故F存在传递依赖 。若将关系R分解为p = {RI(U1,F1),F2(U2,F2)},其中:U1= {A,B,C},U2= {B,D,E}则分解p 无损连接并保持函数依赖

2、某商场商品数据库的商品关系模式P(商品代码、商品名称,供应商,联系方式,库存量),函数依赖集F={商品代码 -> 商品名称,(商品代码,供应商) -> 库存量,供应商 -> 联系方式}。商品关系摸式P达到 1NF;该关系模式分解成 P1(商品代码,商品名称),P2(商品代码,供应商,库存量),P3(供应商,联系方式) 后,具有无损连接的特性,并能够保持函数依赖。


并发控制 ★

事务的 ACID 特性

  • 原子性:指事务包含的所有操作要么全部成功,要么全部失败回滚。这些操作是一个整体,不能部分地完成
  • 一致性:指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态
  • 隔离性:指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的
  • 持续性:指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,无论发送何种故障,都不应对其有任何影响

并发存在的问题

  • 丢失更新
  • 不可重复读
  • 读"脏"数据

并发解决方案 - 封锁协议

  • S 封锁(读):共享锁
  • X 封锁(写):独占锁
  • 一封锁协议(防止丢失更新问题):事务 T 在修改数据 R 之前必须先对其加 X 锁,直到事务结束才释放
  • 二封锁协议(防止丢失更新,还可防止读“脏”数据问题):一级封锁协议加上事务 T 在读取数据 R 之前先对其加 S 锁,读完后即可释放 S 锁
  • 三封锁协议(可防止上述的三个问题):一级封锁协议加上事务 T 在读取数据 R 之前先对其加 S 锁,直到事务结束才释放
  • 两段锁协议:可串行化的。可能发生死锁

数据库的安全性 ★

安全性的分类

措施说明
用户标识和鉴定最外层的安全保护措施,可以使用用户帐户、口令及随机数检验等方式
存取控制对用户进行授权,包括操作类型(如查找、插入、删除、修改等动作)和数据对象(主要是数据范围)的权限
密码存储和传输对远程终端信息用密码传输
视图的保护对视图进行授权
审计使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来

例题

1、数据库的安全机制中,通过提供 存储过程 第三方开发人员调用进行数据更新,从而保证数据库的关系模式不被第三方所获取。

  • 索引
  • 视图
  • 存储过程
  • 触发器

数据库备份与恢复技术 ★

数据备份

  • 冷备份也称为静态备份:是将数据库正常关闭,在停止状态下,将数据库的文件全部备份(复制)下来
    • 优点:非常快速的备份方法(只需复制文件);容易归档(简单复制即可);容易恢复到某个时间点上只需将文件再复制回去);能与归档方法相结合,做数据库“最佳状态”的恢复;低度维护,高度安全
    • 缺点:单独使用时,只能提供到某一时间点上的恢复;在实施备份的全过程中,数据库必须要作备份而不能做其他工作;若磁盘空间有限只能复制到磁带等其他外部存储设备上,速度会很慢;不能按表或按用户恢复
  • 热备份也称为动态备份:是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来
    • 优点:可在表空间或数据库文件级备份,备份的时间短;备份时数据库仍可使用;可达到秒级恢复(恢复到某一时间点上);可对几乎所有数据库实体做恢复;恢复是快速的
    • 缺点:不能出错,否则后果严重;若热备份不成功所得结果不可用于时间点的恢复;因难于维护,所以要特别小心,不允许“以失败告终“

根据备份量划分

  • 完全备份:备份所有数据
  • 差量备份:仅备份上一次完全备份之后变化的数据
  • 增量备份:备份上一次备份之后变化的数据

数据库故障与恢复

故障关系故障原因解决方法
事务本身的可预期故障本身逻辑在程序中预先设置 Rollback 语句
事务本身的不可预期故障算术溢出、违反存储保护由DBMS的恢复子系统通过日志,撤销事务对数据库的修改,回退到事务初始状态
系统故障系统停止运转通常使用检查点法(系统重启时自动完成)
介质故障外存被破坏一般使用日志重做业务

补充

  • 撤销事务:故障发生时未完成的事务,放入 Undo 撤销
  • 重做事务:故障发生前已提交的事务,放入 Redo 重做

例题

1、假设某证券公司的股票交易系统中有正在运行的事务,此时,若要转储该交易系统数据库中的全部数据,则应采用 动态全局转储 方式

  • 静态全局转储
  • 动态全局转储
  • 静态增量转储
  • 动态增量转储

数据库的性能优化 ★

image-20240424120541169

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

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

相关文章

C++多线程异步日志实现

使用C11标准&#xff0c;构建了一个方便使用的、轻量化的日志系统。封装线程安全的lockQueue&#xff0c;实现对每条日志添加信息、push到lockQueue中的LogTmp类&#xff0c;实现一个多线程异步的日志系统Logger。 lockqueue.h #pragma once #include <queue> #include…

pdf转图片转换器,pdf转图片的工具

在日常的工作和学习中&#xff0c;我们经常会遇到需要将PDF文件转换为图片格式的情况。那么&#xff0c;如何才能将PDF格式转换为图片格式呢&#xff1f;今天&#xff0c;我将为大家介绍几种简单易用的方法&#xff0c;帮助大家轻松实现PDF转图片。 打开“轻云pdf处理官网网站”…

Linux 动态监控系统

top与ps命令很相似。它们都用来显示正在执行的进程。Top与ps最大的不同之处&#xff0c;在于top在执行一段时间可以更新正在运行的的进程。 一、基本指令 top top -d&#xff1a; 秒数 :每隔设定值秒数更新&#xff0c;未设置下默认为3秒 top -i:使top不显示任何闲置或者僵死进…

行人重识别Reid(可实现人员换装情况下的人员检索)

本项目的行人重识别是出自论文"Beyond Scalar Neuron: Adopting Vector-Neuron Capsules for Long-Term Person Re-Identification",该文章所涉及到的相关理论在我另外一篇文章中有讲解&#xff1a;Reid系列论文学习——换装Reid&#xff0c;不过经过本人测试&#x…

高清录屏软件哪个好用?分享这3款录屏软件

在我们的日常生活和工作中&#xff0c;视频录制是我们经常需要使用到的功能。不仅可以帮助我们录制网课内容方便后期复习&#xff0c;还可以录制视频会议&#xff0c;记录上级指示&#xff0c;甚至可以通过录制一些视频教程或游戏视频上传网络进行分享。 对电脑屏幕进行录制&a…

postman教程-22-Newman结合Jenkins执行自动化测试

上一小节我们学习了Postman Newman运行集合生成测试报告的方法&#xff0c;本小节我们讲解一下Postman Newman结合Jenkins执行自动化测试的方法。 在软件开发过程中&#xff0c;持续集成&#xff08;CI&#xff09;是一种实践&#xff0c;旨在通过自动化的测试和构建过程来频繁…

QThread 与QObject::moveToThread利用Qt事件循环在子线程执行多个函数

1. QThread的两种用法 第一种用法就是继承QThread&#xff0c;然后覆写 virtual void run()&#xff0c; 这种用法的缺点是不能利用信号槽机制。 第二种用法就是创建一个线程&#xff0c;创建一个对象&#xff0c;再将对象moveToThread, 这种可以充分利用信号槽机制&#xff…

使用插件和微调优化 GPT 模型

文章目录 LLM 用例和示例产品警惕 AI 幻觉&#xff1a;限制与考虑使⽤插件和微调优化 GPT 模型 OpenAI 在其网站上展示了许多激励人心的客户故事&#xff0c;我们需要了解这些模型如何改变我们的社会并为商业和创造力开辟新机遇。正如你将看到的&#xff0c;许多企业已经开始使…

【kaggle数据集无法下载解决办法】

kaggle数据集无法下载的解决办法 当我们在做机器学习相关问题的时候&#xff0c;需要到kaggle网站上下载数据集&#xff0c;但是很多时候速度很慢或者连接超时等问题&#xff0c;此时解决办法如下&#xff1a; 在本地安装Kaggle API包 打开终端输入如下指令&#xff1a; pip i…

ONLYOFFICE8.1-------宝藏级别桌面编辑器测评

简介 ONLYOFFICE 8.1 是一个功能强大的办公套件&#xff0c;提供了一系列广泛的功能&#xff0c;用于文档管理、协作和沟通。它包括用于创建和编辑文本文档、电子表格、演示文稿等的工具。ONLYOFFICE 8.1 的一些关键特性包括&#xff1a; 1. 协作&#xff1a;ONLYOFFICE 8.1 …

Ubuntu 使用Vscode的一些技巧 ROS

Ubuntu VSCode的一些设置&#xff08;ROS&#xff09; 导入工作空间 推荐只导入工作空间下的src目录 如果将整个工作空间导入VSCode&#xff0c;那么这个src就变成了次级目录&#xff0c;容易在写程序的时候把本应该添加到具体工程src目录里的代码文件给误添加到这个catkin_w…

邂逅Three.js探秘图形世界之美

可能了解过three.js等大型的3D 图形库同学都知道啊&#xff0c;学习3D技术都需要有图形学、线性代数、webgl等基础知识&#xff0c;以前读书学的线性代数足够扎实的话听这节课也会更容易理解&#xff0c;这是shader课程&#xff0c;希望能帮助你理解着色器&#xff0c;也面向第…

20240624在飞凌OK3588-C的Buildroot下查证GPIO64和gpiochip64的差异

20240624在飞凌OK3588-C的Buildroot下查证GPIO64和gpiochip64的差异 2024/6/24 20:19 GPIOchip代表GPIO控制器的编号&#xff0c;gpio代表特定GPIO的引脚号 本文以linux R4/Buildroot位例子&#xff0c;同样适用于Android12和其他【使用linux内核的】操作系统。 https://www.ji…

Java包介绍

今天看jdk文档&#xff0c;顺便写一下java几个包的作用。 java.applet 主要用于创建java applet小应用程序&#xff0c;可以嵌入到网页中能够呈现出特殊的效果&#xff0c;现在基本已经被废弃&#xff0c;很少使用。 java.awt AWT 是Abstract Window ToolKit (抽象窗口工具包…

分享9款AI抠图神器:不会PS?AI一键批量抠图,3秒轻松搞定!(建议收藏)

文章首发于公众号&#xff1a;X小鹿AI副业 大家好&#xff0c;我是程序员X小鹿&#xff0c;前互联网大厂程序员&#xff0c;自由职业2年&#xff0c;也一名 AIGC 爱好者&#xff0c;持续分享更多前沿的「AI 工具」和「AI副业玩法」&#xff0c;欢迎一起交流~ 今天被一位在用 AI…

猫头虎 AI 前沿科技探索之路(持续更新):ChatGPT/GPT-4 科研应用、论文写作、数据分析与 AI 绘图及文生视频实战全攻略

猫头虎 AI 前沿科技探索之路(持续更新)&#xff1a;ChatGPT/GPT-4 科研应用、论文写作、数据分析与 AI 绘图及文生视频实战全攻略 背景介绍 随着人工智能技术的飞速发展&#xff0c;AI 的应用已经渗透到各个领域&#xff0c;从商业决策到医疗健康&#xff0c;再到日常生活中的…

【扩散模型(一)】Stable Diffusion中的重建分支(reconstruction branch)和条件分支(condition branch)

Stable Diffusion 是一种基于扩散模型的生成模型&#xff0c;用于生成图像等数据。在解释 Stable Diffusion 的过程中&#xff0c;经常会提到两个主要的分支&#xff1a;重建分支&#xff08;reconstruction branch&#xff09;和条件分支&#xff08;condition branch&#xf…

猫头虎 分享已解决Error || **Data Leakage**: `Unexpectedly high validation performance`

猫头虎 分享已解决Error || Data Leakage: Unexpectedly high validation performance &#x1f42f; 摘要 &#x1f4c4; 大家好&#xff0c;我是猫头虎&#xff0c;一名专注于人工智能领域的博主。在AI开发中&#xff0c;我们经常会遇到各种各样的错误&#xff0c;其中Data…

通过ETLCloud实现SQL Server数据同步至Oracle

SQL Server与Oracle作为全球两大主流的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;在企业级应用中扮演着至关重要的角色。它们各自凭借独特的技术优势、强大的数据处理能力以及高度的可扩展性&#xff0c;支撑着从中小型企业到大型跨国公司的各类复杂业务需…

【面试题】前端 移动端自适应?_前端移动端适配面试题

设备像素比 设备像素比 (DevicePixelRatio) 指的是设备物理像素和逻辑像素的比例 。比如 iPhone6 的 DPR 是2。 设备像素比 物理像素 / 逻辑像素。可通过 window.devicePixelRatio 获取&#xff0c;CSS 媒体查询代码如下 media (-webkit-min-device-pixel-ratio: 3), (min-…