数据库技术基础

根据希赛相关视频课程汇总整理而成,个人笔记,仅供参考。

基本概念

数据库通常是指有组织地、动态地存储在(外存上的相互联系的数据的集合)应用数据库主要目的是解决数据(共享)问题。

三级模式/两级映像

数据库系统设计员可通过外模式、概念模式和内模式来描述(视图层、逻辑层和物理层)上的数据特性;

数据库的视图、基本表和存储文件的结构分别对应(外模式、模式、内模式);

数据的物理独立性和数据的逻辑独立性是分别通过修改(模式/内模式)和(外模式/模式)的映像来保证的。

在这里插入图片描述

数据库管理系统的特点

数据库中数据(完整性)是指数据库的正确性和相容性,以防止合法用户向数据库加入不符合语义的数据;(安全性)是指保护数据库,以防止不合法地使用所造成的数据泄露、更改或破坏;(并发控制)是指在多用户共享的系统中,保证数据库的完整性不受破坏,避免用户得到不正确的数据。

数据模型的三要素
数据结构、数据操作、数据的约束条件

在这里插入图片描述

概念数据模型是按用户的观点对数据和信息建模,强调其语义表达功能,易于用户理解。

在这里插入图片描述

数据仓库的基本特性
面向主题、数据是集成的、相对稳定和反映历史变化的

OLTP和OLAP
在这里插入图片描述

在这里插入图片描述

事务管理

事物的基本概念

定义
事务是一系列的数据库操作,是数据库应用程序的基本逻辑单位,即应用程序对数据库的操作都应该以事务的方式执行。

事务的四个特性(ACID)

①原子性(Atomicity)

要么都做,要么都不做”,是数据库环境中不可分割的逻辑工作单位

②一致性(Consistency)
③隔离性(Isolation)
④持久性(Durability)

SQL标准规定当一条SQL语句被执行,就隐式地开始了一个事务
在这里插入图片描述
ROLLBACK 事务回滚,表示事务非成功地结束;
COMMIT 事务提交,表示事务成功结束

数据库的并发控制

在这里插入图片描述

脏读:读取事务 未提交的 修改 之后的数据;
幻读:读取事务 未提交的 增删 之后的数据;
不可重复读:多次读取事务已经提交的数据;

解决并发操作带来的数据不一致性一般采用(封锁)

并发控制技术加锁
排它锁 (简称X锁) 又称写锁

如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁

共享锁 (简称S锁) 又称读锁

如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁

封锁协议

三级封锁协议
一级封锁协议 解决丢失更新问题;

事务T 在修改数据A之前必须先对其加上排他锁(不加锁直接修改数据是被禁止的,一定要加锁),直到事务结束才释放。

二级封锁协议 解决了读“脏”数据;不能保证可重复读;

在一级封锁协议的基础上,加上事务Y 在读取数据A之前先对其加共享锁,读完后即可释放共享锁

三级封锁协议 防止丢失修改、不读“脏”数据、防止了不可重复度

在一级封锁协议的基础上,加上事务Y 在读取数据A之前先对其加共享锁,知道整个事务全部完成后才释放共享锁。

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

两段锁协议
更加直接,可能产生死锁,是可串行化调度的充分条件(即满足可串行化的不一定遵循两段锁协议)
在这里插入图片描述
在这里插入图片描述

活锁和死锁

避免活锁解决方法
先来先服务

避免死锁解决方法
①采取一定的措施来预防死锁的发生;
②允许发生死锁,并采用一定手段定期诊断系统中是否有死锁,如果发现了死锁则立即解除掉

数据库的备份与恢复

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

数据库恢复 Undo/Redo
Undo
撤销事务 将未完成的事务撤销,使数据库恢复到执行前的正确状态;
Redo
重做事务 对已经提交的事务重新执行

事务故障的恢复由系统自动完成,对用户是透明的
在这里插入图片描述
系统故障的恢复是在系统重启之后自动执行的
在这里插入图片描述
介质故障的恢复需要DBA的介入在这里插入图片描述
在这里插入图片描述

应用题训练1-数据库并发控制

题目:
在这里插入图片描述
在这里插入图片描述
同时预定时,可能会产生一个客户订不到或者把同一房订给两个客户
在这里插入图片描述
在这里插入图片描述
(1)出现问题:丢失修改,客户1预定a1数量房间后,对空房数量的修改被T2的修改覆盖,造成数据不一致。
在这里插入图片描述
在这里插入图片描述
(2)如上表:XLOCK(A),x1=R(A), W(A, x1-a1), XLOCK(B), UNLOCK(A), W(B1, a1), UNLOCK(B), XLOCK(A), x2=R(A), W(A, X2-A2), XLOCK(B),UNLOCK(A), W(B2,a2),UNLOCK(B)

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

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

相关文章

【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题

文章目录 一、什么是时间复杂度和空间复杂度?1.1 算法效率1.2 时间复杂度的概念1.3 空间复杂度的概念1.4 复杂度计算在算法中的意义 二、时间复杂度的计算2.1 大O渐进表示法2.2 常见时间复杂度计算举例 三、空间复杂度的计算四、Leetcode刷题1. 消失的数2. 旋转数组…

代理服务器端口分配测试

上游服务器需要一个短暂或临时端口请求下游服务器&#xff0c;测试端口分配方式。 参考nginx 摘录-腾讯云开发者社区-腾讯云 框架为 <dependency><groupId>org.mitre.dsmiley.httpproxy</groupId> <artifactId>smiley-http-proxy-servlet</ar…

一些docker安装配置以及常见命令

​常用命令 docker 命令 //进去容器内部&#xff0c;找到需要拷贝的文件及目录 docker exec -it 2c2600fb60f8 /bin/bash ​ //将container id为4db8edd86202的容器内elasticsearch.yml文件拷贝到宿主机指定目录下&#xff1a; docker cp 4db8edd86202:/usr/share/elasticsea…

git出现错误 fail to push some refs to “xxx“

问题产生原因&#xff1a;根据测试猜测造成这一错误的原因是在码云的远程仓库上删除了一个文件,本地没有pull下来,直接进行了commit,commit到本地仓库后,如果在pull下来,也是无法提交的 问题解决办法: 使用 git pull --rebase,拉取远程仓库,并将本地仓库新的提交作为最顶层的提…

张大哥笔记:电脑周边的10大刚需创业小项目

hello&#xff0c;大家好&#xff0c;我是张大哥&#xff0c;今天一口气给大家分享围绕电脑周边的10大刚需创业小项目&#xff0c;本文章旨在帮助大家如何快速切入到细分领域里面搞钱&#xff01; 如何赚钱&#xff0c;无非就是解决人群痛点&#xff0c;你要懂得根据用户痛点去…

实现 Table 的增加和删除,不依赖后端数据回显

需求 删除前 删除后 分析 首先写一个 Table <a-card style"width:100%"><template#extra><a-button type"text" click"addSelectItem" style"margin-right: 5px">添加</a-button><a-button type&quo…

融合创新!全局特征+局部特征,性能优于Transformer

在图像处理领域&#xff0c;全局特征和局部特征融合是一种常见且十分高效的策略&#xff0c;用于提高图像分析和识别任务的性能。 全局特征反映了图像的整体属性&#xff0c;如颜色分布、形状轮廓等&#xff0c;它们通常对图像的尺度和旋转具有不变性。 局部特征关注于图像中特…

python 如何获得重定向输入

通过内置的fileinput模块即可实现&#xff0c;创建文件filein.py&#xff1a; #!/usr/bin/env python import fileinput f_input fileinput.input() for line in f_input:print(line, end)增加可执行权限&#xff1a; chmod ax filein.py 使用&#xff1a; $ ls | ./filein.py…

2.8 Profile

开发者在项目发布之前&#xff0c;一般需要频繁地在开发环境、测试环境以及生产环境之间进行切换&#xff0c;这个时候大量的配置需要频繁更改&#xff0c;例如数据库配置、redis配置、mongodb配置、jms配置等。频繁修改带来了巨大的工作量&#xff0c;Spring对此提供了解决方案…

2024软考知识记忆点

IT部分 智慧城市5个核心能力要素 数据治理数字孪生多元融合边际决策态势感知 OSI开放式互联通信参考模型 物理层数据链路层网络层传输层会话层表示层应用层 大数据基本特征 容量大种类多速度快真实价值密度低 物联网架构 感知层网络层应用层 运行维护服务能力体系4要素 人员资源…

解锁火锅店油烟净化器的黄金选择之道

我最近分析了餐饮市场的油烟净化器等产品报告&#xff0c;解决了餐饮业厨房油腻的难题&#xff0c;更加方便了在餐饮业和商业场所有需求的小伙伴们。 在火锅店的热闹繁华中&#xff0c;如何选择一款完美的油烟净化器成为了当务之急。这不仅关系到餐饮环境的清新舒适&#xff…

Latex学习(从入门到入土)2

第一章 &#xff1a;插图 在LaTeX中插入插图可以通过graphicx宏包来实现&#xff0c;这个宏包提供了强大的图像处理功能。以下是如何使用graphicx宏包插入图像的基本步骤&#xff1a; ### 1. 加载宏包 在文档的序言部分&#xff08;\begin{document}之前&#xff09;&#x…

Arduino中read()和peek()

串口接收到的数据都会暂时存放在接收缓冲区中&#xff0c;使用read()与peek()都是从接收缓冲区中读取数据。不同的是&#xff0c;使用read()读取数据后&#xff0c;会将该数据从接收缓冲区移除&#xff1b;而使用peek()读取时&#xff0c;不会移除接收缓冲区中的数据。 可以使…

Pr2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 Premiere简称“Pr”&#xff0c;是一款超强大的视频编辑软件&#xff0c;它可以提升您的创作能力和创作自由度&#xff0c;它是易学、高效、精确的视频剪辑软件&#xff0c;提供了采集、剪辑、调色、美化音频、字幕添加、输出、D…

贝锐蒲公英自研异地组网新技术:远程视频监控,流畅度、清晰度大幅提升

在远程视频监控过程中&#xff0c;若遇到网络带宽若遇到网络波动&#xff0c;如&#xff1a;丢包、高延迟等&#xff0c;往往会导致视频流传输时发生数据丢失或延迟现象&#xff0c;从而严重影响视频画面的清晰度和流畅度。 比如&#xff1a;在公司总部集中监看远程矿山或户外水…

Unity 点击次数统计功能

介绍 &#x1f4a1;.调用方便&#xff0c;发生点击事件后直接通过"xxx".CacheClick缓存 &#x1f4a1;. 在允许的时间间隔内再次点击会累计点击次数&#xff0c;直到超出后触发事件 传送门&#x1f448;

友元 常成员

友元是一扇通向私有成员的后门 友元即可已是不属于任何类的一般函数,也可以是一个类的成员函数,还可以时整个类. 一 将非成员函数声明为友元函数 在类中进行声明 friend 类型 函数名(参数表); 二 将同一个函数定义为两个类的友元 1.在类前先声明函数 void sharedFuncti…

Element入门

安装ElementUI组件库 npm install element-ui2.15.3 引入 import Vue from vue; import ElementUI from element-ui; import element-ui/lib/theme-chalk/index.css; import App from ./App.vue;Vue.use(ElementUI);new Vue({el: #app,render: h > h(App) }); 应用 模板 …

一篇文章带你快速认识边缘计算(必看)

引言 5G时代带来了万物互联的飞跃&#xff0c;但随之而来的是数据量爆炸性增长与集中式数据中心处理模式的瓶颈&#xff1a;响应延迟、带宽压力、安全隐忧。边缘计算应运而生&#xff0c;借鉴生物智能分布式原理&#xff0c;将计算与分析推向数据源头&#xff0c;有效解决了以上…

Linux的重要命令(一)

目录 一.查看当前的工作目录-pwd 二.切换工作目录-cd 三.列表显示目录内容或文件本身-ls 四.通配符 通配符用法 五.设置别名-alias 六.统计文件或目录空间占用情况 七.创建新目录-mkdir 八.创建新文件-touch 九.创建链接文件-ln 十.复制文件或目录 十一.删除文件或目…