三、计算机理论-关系数据库-数据库的完整性与安全性,事务管理、并发控制、数据库的备份与恢复

数据库完整性

完整性是为了防止合法用户在使用数据库时向数据库中加入不符合语义的数据

实体完整性

实体完整性约束时通过主码的定义来实现的,使用PRIMARY KEY来定义,对于单个属性的主码可以使用列级完整性约束,若主码是一个属性组,则只可以使用表级完整性约束,即PRIMARY KEY(A,B,C)

完整性检查

①检查主码是否唯一,不唯一拒绝插入;②检查主码的各个属性是否为空值,空值拒绝插入

参照完整性

也称引用完整性,就是外码

完整性检查

①拒绝执行;②级联操作,删除或者修改参照关系(有外键的这个表)中所有导致不一致的元组;③将参照关系的不一致的元组设置为空值

用户完整性

①不许取null;②唯一UNIQUE;③检查列值是否满足条件CHECK

完整性检查

不满足就拒绝执行

数据库安全性

安全性是为了防止非法用户使用数据库

用户标识和鉴别

口令鉴别;生物特征鉴别;智能卡鉴别

存取控制

两个要素:数据库对象、操作类型

自主存取控制:授权GRANT;收回REVOKE; 强制存取控制:密级,许可证,主客体

视图机制

常常采用视图+授权机制相结合

安全审计

审计功能就是将用户对数据库的所有操作自动记录下来,放入审计日志中

AUDIT是设置审计功能,NOAUDIT是取消审计功能

数据加密

就是加密

事务管理

概念

事物是指用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位

特性

原子性、一致性、隔离性、持续性

并发控制

概念

并发操作要加以控制,不然会产生数据的不一致性,主要表现为:丢失修改、不可重复读、读“脏”数据

丢失修改

两个事务同时修改,后一个覆盖了前一个事务的修改

不可重读性

第一个事务读取数据,第二个事务修改了数据吗,使得第一个事务无法再现读取结果

读“脏”数据

第一个事务将数据写入磁盘,然后撤销了,第二个事务读取的数据就与数据库不一致

封锁

普遍采用的并发控制方式就是封锁

排他锁

简称X锁,也称写锁,不允许其他事务对其封锁的对象进行读取和修改

共享锁

简称S锁,也称读锁,只允许其他事务对其封锁的对象进行读取,不许修改

封锁粒度

封锁对象的大小成为封锁粒度,风多的粒度越大,开销越小,但并发性越低;封锁粒度越小,封锁的开销越大,但并发性越高

活锁和死锁

避免活锁的方式是先来先服务的策略

预防死锁就是破坏产生死锁的条件,通常有一次封锁法和顺序封锁法

死锁的诊断:超时法和等待图法

死锁的解除:撤销一个代价最小的事务,释放其所有的锁

并发调度的可串行性

多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同,称这种调度策略为可串行化调度

两段锁协议

简称2PL协议,是为了保证并发调度的可串行性而提出的封锁协议,分为两个阶段:获得封锁,也称扩展阶段;释放封锁,也称收缩阶段

事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件,即可串行化调度中不一定所有事务都符合两段锁协议

数据库的备份与恢复

故障的种类

事务故障、系统故障、介质故障、计算机病毒

数据库备份分类

完全备份,差异备份,增量备份,按需备份;            物理备份:冷、热备份,逻辑备份

故障恢复的实现技术

数据库故障恢复是建立冗余数据,并利用这些冗余数据恢复数据库的过程,常用技术是数据转储和登记日志文件

故障恢复策略

事务故障恢复;系统故障恢复;介质故障恢复

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

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

相关文章

golang如何生成csv文件

在Go语言中,可以使用标准库中的"encoding/csv"包来生成CSV文件。下面是一个简单的示例代码,演示如何使用Go生成CSV文件: package mainimport ("encoding/csv""os" )func main() {// 创建一个新的CSV文件file,…

EtherCAT主站SOEM -- 14 --Qt-Soem通过界面采集从站IO进行显示

EtherCAT主站SOEM -- 14 --Qt-Soem通过界面采集从站IO进行显示 一 mainwindow.c 文件函数:1.1 自定义PDO配置1.2 主站初始化二 motrorcontrol.c 文件三 allvalue.h 文件该文档修改记录:总结一 mainwindow.c 文件函数: 1.1 自定义PDO配置 int IO_setup(uint16 slave) {int

YoloV7使用detect.py检测,结果图片不显示框

detect.py里画框部分默认是屏蔽的,需要自己打开。下图红框里屏蔽部分打开后,就显示框了。

QT上位机开发(日志调试)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 程序开发中有很多的调试方法,比如说IDE调试,也就是设置断点、查看变量等等;比如说日志调试;比如说c…

PDF控件Spire.PDF for .NET【安全】演示:获取并验证 PDF 中的数字签名

在 PDF 中创建数字签名广泛用于保护 PDF 文件。因此,当您查看一些带有数字签名的PDF文件时,需要获取并验证数字签名。本文向您展示了一种通过使用Spire.PDF和 C# 代码来获取和验证 PDF 中的数字签名的解决方案。 Spire.PDF for .NET 是一款独立 PDF 控件…

【Linux】常用的基本命令指令①

前言:从今天开始,我们逐步的学习Linux中的内容,和一些网络的基本概念,各位一起努力呐! 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:数据结构 👈 💯代码…

CLIP is Also an Efficient Segmenter

表1 复现结果–Seed:70.7245673447014,dCRF:74.85437742935268 误差小于0.5个点,可以接受 表4 复现结果–训练300轮,Val:58.76741354153312,Test:59.18210 感想 VOC全部复现完成&…

基于SpringBoot的校园外卖服务系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的校园外卖服务系统,java…

小白入门基础 - tomcat

一:前言 Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为&#x…

xxxView

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:…

【INTEL(ALTERA)】生产中使用多个目标设备,如何满足外部内存接口Intel Agilex® 7偏移匹配准则?

说明 对于外部内存接口Intel Agilex 7使用的引脚,不同的引脚兼容设备可能会有不同的封装延迟。如果您遵循《外部内存接口用户指南》中的“偏移匹配指南”部分所述的要求,您可能会发现无法同时满足多个器件的要求。用户指南仅适用于您计划在开发阶段使用…

【SpringBoot+dubbo+zk】实现服务之间rpc通信

0)前置准备&#xff0c;我们使用zk作为注册中心&#xff0c;先启动zk&#xff0c;也就是2181端口。 1)父工程pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http…

【软件测试】概述

《软件缺陷》 定义 &#xff08;从产品内部看&#xff09;软件产品开发或维护过程中存在的错误、毛病等各种问题&#xff08;从产品外部看&#xff09;系统所需要实现的某种功能的失效或违背 表现形式(1) 软件没有实现产品规格说明所要求的功能模块(2) 软件中出现了产品规格说…

SpringBoot2.7升级项目到Springboot3踩坑指南

文章目录 概要国内顶级开源项目升级情况适配SpringBoot3指南技术细节小结 概要 由于SpringBoot3.x全面拥抱JDK17,兼容jdk21&#xff0c;jdk17乃是大势所趋。这里是从SpringBoot2.7-->SpringBoot3.1踩坑指南。 提前阅读&#xff1a;jdk8升级JDK17避坑指南&#xff08;适用于…

Transformer-MM-Explainability

two modalities are separated by the [SEP] token&#xff0c;the numbers in each attention module represent the Eq. number. E h _h h​ is the mean&#xff0c; ∇ \nabla ∇A : ∂ y t ∂ A {∂y_t}\over∂A ∂A∂yt​​for y t y_t yt​ which is the model’s out…

写字母(文件)

请编写函数&#xff0c;将大写字母写入文件中。 函数原型 void WriteLetter(FILE *f, int n);说明&#xff1a;参数 f 为文件指针&#xff0c;n 为字母数目(1 ≤ n ≤ 26)。函数将前 n 个大写英文字母写入 f 所指示的文件中。 裁判程序 #include <stdio.h> #include &…

书生·浦语大模型实战营 Lesson 1

书生浦语大模型全链路开源体系 书生浦语大模型开源历程 书生浦语大模型系列 从模型到应用 数据 预训练 微调 部署

Raect中自定义hook

一、自定义Hook 自定义Hook&#xff1a;将一些常用的、跨越多个组件的Hook功能&#xff0c;抽离出去形成一个函数&#xff0c;该函数就是自定义Hook&#xff0c;自定义Hook&#xff0c;由于其内部需要使用Hook功能&#xff0c;所以它本身也需要按照Hook的规则实现&#xff1a;…

【华为OD真题 Python】攀登者2

文章目录 题目描述示例1输入输出说明示例2输入输出说明实现代码题目描述 攀登者喜欢寻找各种地图,并且尝试攀登到最高的山峰。 地图表示为一维数组,数组的索引代表水平位置,数组的高度代表相对海拔高度。其中数组元素0代表地面。 例如[0,1,4,3,1,0,0,1,2,3,1,2,1,0], 代表…

linux进程管理工具的使用(supervisorctl、systemd、init.d、Upstart、Monit、runit、Daemontools)

1、supervisorctl&#xff1a; 这是Supervisor提供的命令行客户端&#xff0c;Supervisor是一个进程控制系统。它用于在UNIX类操作系统上控制和监视进程。它通常用于服务器环境中管理长时间运行的进程。 Supervisor 是一个用于监控和控制 UNIX 系统上的进程的程序。它不是大多…