没有合适的资源?快使用搜索试试~ 我知道了~
软考中级-数据库系统工程师(知识点全面笔记)
需积分: 0 30 下载量 153 浏览量
2023-09-04
15:09:33
上传
评论 4
收藏 53.89MB DOCX 举报
温馨提示
试读
88页
自己学习数据库系统工程师的时候做的笔记,内容比较齐全,主要的考点都在里面,特别是重点部分,都是有标注。没有报班,自学,并且本人软考中级已通过,有需要的可以下载参考。免费下载。
资源推荐
资源详情
资源评论
直接存储器访问 direct memory access
DMA 传输过程必须经过 DMA 请求,DMA 响应,DMA 传输,DMA 结束 4 个步骤
DMA 控制器与 CPU 怎样分时使用内存:1.停止 CPU 访问内存,2.周期挪用 3.DMA 与 CPU
交替访问内存。 ALU 算术逻辑单元:
(arithmetic logic unit)整数算术运算(加,减,有时还包括乘和除)
位逻辑运算(与,或,非,异或)移位运算(将一个字向左或向右移位或浮动特定位)
AC 累加寄存器:
运算器
DR 数据缓冲寄存器:
PSW 状态条件寄存器:
CPU
控制器
AR 地址寄存器:是保存当前 CPU 所访问的内存单元的地
址,由于在内存和 CPU 之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地
址信息,直到内存的读/写操作完成为止 。
ID:指令译码器,用来对指令寄存器中的指令进行译码分
析,指出指令的操作种类和寻址方式
数据寄存器 MDR:用来存放操作数、运算结果和运算的 中间结果
寄存器
社会工程学:在计算机中是指通过与他人合法的交流,来使其心理受到影响,做出某些动
作或者是透露一些机密信息的方式
IR 指 令 寄 存
器:
PC 程序计数器:用来存放下一条指令的地址
内部存储器
外部存储器
负责处理数据,实现对数据的算术运算和逻辑运算
当 ALU 执行运算时,提供一个工作区
对内存进行读写操作时,用 DR 暂时存放由内存
读写的一条指令或一个数据字段,作为 CPU 和
内存,外设之间在操作速度上的缓冲,以及数据
传送的中转站
保存根据算术指令和逻辑指令运行或测试的结果
建立的各种条件码的内容,主要分为状态标志和
控制标志。运算结果进位标志 C,运算结果溢出
标志 V,运算结果为 0 标志 Z,运算结果为负标
志 N,中断标志 I,方向标志 D
用来暂时存放一条指令,当前正在执行的指令,
也非指令地址由指令
社会工程学攻击是一种利用人的弱点,如人的本能反应,好奇心,信任,贪便宜等弱点进
行诸如欺骗,伤害等危害手段,获取自身利益的手法。
a database system is a ollction(集合) of iterelated(相关的)data and set of programs
that allow users to access and modify these data.a major purpose(目的) of a database
system is to provide(提供) users with an abstract(抽象) view of the data
算法
算法稳定性 -- 假设在数列中存在 a[i]=a[j],若在排序之前,a[i]在 a[j]前面;并且排序之后,
a[i]仍然在 a[j]前面。则这个排序算法是稳定的!
不稳定的算法有堆、 希尔、选择、快速
排序方法
时间复杂度
辅助空间
稳定性
直接插入
O(1)
稳定
简单选择
不稳定
冒泡排序
稳定
希尔排序
不稳定
快速排序
不稳定
堆排序
不稳定
归并排序
稳定
基数排序
稳定
UML 图,简单了解,静态和动态的
链表的查找算法
顺序查找:算法简单,效率低。它是用所给关键字与线性表中各元素的关键字逐个比较,
直到成功或失败。无序的。
折半算法也叫二分法:比较次数少,查找速度快,平均性能好。缺点是要求待查表为有序
表,且插入和删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。
分块查找方法又称索引查找,它主要用于“分块有序表的查找。所谓”分块有序是指将线性
表 L(一维数组)分成 m 个子表(要求每个子表的长度相等),且第 i+1 个子表中的每一个
项目均大于第 i 个子表中的所有项目。“分块有序表应该包括线性表 L 本身和分块的索引表。
因此,分块查找的关键在于建立索引表 l,其查找的平均长度介于顺序查找和折半查找之
间。”
串:是由零个或多个任意字符组成的有限序列。
队列
顺序队列:先进先出原则,插入数据的为队尾(rear),删除数据的为队头(front)
栈:先进后出原则, 仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。
出栈
入栈
an ---------栈顶
an-1
…….
a2
a1 ---------栈底
链表
链表是一种数据结构,在内存中通过节点记录内存地址而相互链接形成一条链的存储方式。
相比数组而言,链表在内存中不需要连续的区域,只需要每一个节点都能够记录下一个节
点的内存地址,通过引用进行查找,这样的特点也就造成了链表增删操作时间消耗很小,
而查找遍历时间消耗很大的特点。
两种链表结构
无头单链表
data
next
1 2 3 null
双链表:
null next
1 2 3 null
prev
从图中可以看出,二者主要差别在于内部的 node 类。单链表只需要一个指向下一个节点
的引用 next,而双向链表则需要指向前一个 node 的 prev 和 下一个 node 的 next
区别:
二者最大的不同就是引用指向不同。实际上,在日常中,双向链表应用更加广泛,相比单
链表,双向链表可从头尾两端进行遍历的特点非常具有优势,当我们需要查找最新的数据
时,我们可以从尾部开始遍历,需要查找旧数据时,从头部开始遍历,这样能大大减少遍
历链表所需要的时间,而单链表只能从头部开始遍历。
并发事务正确性的准则
数据库事务正确执行的四个基本要素(事务的四个属性)
ACID
事务基本要素
原子性(atomicity):用于标识事务是否完全地完成。如果由于某种原
因出错,事务不能完成它的全部任务,系统将返回到事务开始前的状
态(回滚)
一致性(consistency): 事务在系统完整性中实施一致性,以此保证系统
的任何事务最后都处于有效状态。如果事务成功,则所有数据变为一个
新的状态,如果事务失败,则所有数据处于开始之前的状态。
隔离性(isolation):如果有 2 个事务在相同时间,执行相同的功能,事
务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种
有时称为串行化。直到事务完成,才对系统的其他部分可见。隔离性不
仅仅保证多个事务不能同时修改相同数据,而且能够保证事务操作产生
的变化直到变化被提交或终止时才能对另一个事务可见,并发事务彼此
之间毫无影响。
持久性(durability):持久性意味着一旦事务执行成功,在系统中产生
的所有变化将是永久的。
1. 更新丢失(lost update)
两个事务 T1 和 T2 读入同一数据并修改,T2 提交的结果覆盖了 T1 提交
的结果,导致 T1 的修改被丢失。
2.脏读(dirty reads)
事务 T1 对数据进行修改,但是还没有提交时,事务 T2 读取数据进行修改,此时
T2 读取的是 T1 修改了的值。但是突然由于某种原因 T1 进行了回滚,这时候数据
恢复了原来的值,而 T2 取得的数据依然是 T1 修改的值,这就导致了数据库中的
值与事务获取的值不同的现象。也就是读到了不正确的值,这就叫脏读。
并发事务
带来的问题
不可重复读和幻读的情况很类似,但是不可重复读的重点是修改:同样条件下,你读取过
的数据,再次读取出来发现值不一样了。 幻读的重点在于新增或者删除:同样条件下,
第一次和第二次读出来的记录数不一样。
避免不一致的方法和技术就是进行并发控制。最常用的就是封锁技术。封锁技术的缺
点是会造成死锁和性能下降。
数据库事务的隔离级别
read uncommitted (读未提交数据)---最低级别保证不了什么
read committed(读已提交数据)—避免脏读
repeatable read (可重复读) ---避免脏读,不可重复读
serializable(可串行化)----避免幻读,脏读,不可重复读,但是这个不是并发的,是
牺牲性能为代价的
数据库的锁机制
按锁类型划分:共享锁,排他锁
按锁的粒度划分:可分为表级锁,行级锁,页级锁
按使用机制划分,可分为乐观锁,悲观锁
共享锁:也叫读锁,死锁:多个事务可封锁一个共享页,任何事务都不能修改该页,
通常是该页读取完毕,S 锁立即被释放。在执行 select 语句的时候需要给操作对象(表
或者一些记录)加上共享锁,但加锁之前需要检查是否有排他锁。如果没有,则可以
加共享锁,否则不行。
排他锁:也叫写锁,X 锁 仅允许一个事务封锁此页,只有此事务能对此页进行读取和
修改,其他任何事务必须等到 X 锁被释放才能对该锁页进行访问。X 锁一直到事务结
束才能被释放。执行 insert,update ,delete 语句的时候需要给操作对象加排他锁,在
加排他锁之前必须确认该对象上没有任何锁,一旦加上排他锁之后,就不能再给这个
对象加其他任何锁。
3.非重复读(no-repeatable reads)
是指在一个事务内,多次读取同一数据。在这个事务还没结束时,另外一个事务也访问
该同一数据,并对该数据进行了修改。此时第一个数据再去读此数据时读到的结果与之
前的结果不同。这就导致了在一个事务内 2 次相同的查询读到的数据时不一样的,因此
称为是不可重复读。
4.幻读
目前工资为 5000 元的员工有 10 个人,事务 A 读取所有工资为 5000 元的员工的
人数为 10 人。此时事务 B 插入一条工资也为 5000 的记录。这时,事务 A 再次
读取工资为 5000 元的员工,记录为 11 人。此时就会产生了幻读。
剩余87页未读,继续阅读
资源评论
huahualaly
- 粉丝: 63
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功