接上篇
文章目录
- 10 transaction-view-index事物-视图-索引: transaction定义,ACID,导致事物结束的两种情况:commit,rollback/回滚rollback:导致回滚的情况,解决方法/sql4个隔离层级isolated level,选择/事物序列化的定义,操作/view的定义,种类,声明,结合触发器的视图,基表更改引起实例化视图更改问题以及解决方法/index索引定义,声明,使用索引优化数据库查询tuning的优点,缺点
- 11 psm持久型存储模块(存储过程),pl与sql: psm定义,参量的三种类型,声明,invoke调用,语法:判断,循环,指针,return/动态SQL声明,调用
- 12 grant授权: 语法:授权(操作权限,授权权限),撤销授权revoke,撤销授权的两种选项/授权图的点,边,AP,P*,P**,授权规则,撤销授权规则
- 13 concurrency 并发控制: 基本概念:transaction事物,conflicting action冲突行为的种类,schedule调度,调度的4种方式/并发事务运行存在的3个异常/冲突等价conflict equivalent的定义/precedence graph符号表示,前驱图的节点,边,两个定理/(一级)加锁解锁协议:符号,legal schedule合法调度和well-formed调度/2PL两阶段锁协议描述,避免数据出错的其他4种方法(共享锁,多粒度,插入删除,其他机制),共享锁和排他锁描述,3个法则(well-formed,legal,upgrade变化问题)/increment lock增量锁和update lock的描述,符号/锁的兼容性/系统一个解决并发多用户加解锁问题的方法/多粒度封锁granularity:多粒度封锁描述,锁的类型((主要是意向锁:)IS,IX,SIX),6个规则,兼容性,加锁对象上允许再加的其他锁/pehantom数据重影定义,解决方法
- 基本概念:transaction,conflicting action的种类,schedule,调度的四种方式
- 并发事务运行存在的3个异常
- 冲突等价conflict equivalent定义
- precedence graph前驱图的符号表示,节点,边,两个定理
- 加解锁协议:符号,legal schedule和well-formed
- 2PL:描述,避免数据出错的其他4种方法(共享锁,多粒度,插入删除,其他机制),共享锁和排他锁描述,3个法则(well-formed,legal,upgrade变化问题)
- increment lock和update lock描述,符号
- 锁的兼容性
- 系统一个解决并发多用户加解锁问题的方法
- 多粒度封锁granularity:多粒度封锁描述,锁的类型((主要是意向锁:)IS,IX,SIX),6个规则,兼容性,加锁对象上允许再加的其他锁
- pehantom数据重影定义,解决方法
- 14 tp: 事务结束的两种情况/可恢复调度,避免级联回滚的概念/死锁的检测,4个避免方法
- 15 view serializability视图可串行化: 视图等价,视图可串行化定义,定理,判断方法
- 21 xml可扩展标记语言: xml概念,两种类型,结构/DTD概念,结构,元素,用法,属性/ID和IDREF/XML例子
- 22 olap: data warehouse,olap,oltp,data mining/star schema的两个组成部分(事实表,维表)/cube的drill-down和roll-up操作
- 24 distributed分布式数据库: 优点,问题
10 transaction-view-index事物-视图-索引: transaction定义,ACID,导致事物结束的两种情况:commit,rollback/回滚rollback:导致回滚的情况,解决方法/sql4个隔离层级isolated level,选择/事物序列化的定义,操作/view的定义,种类,声明,结合触发器的视图,基表更改引起实例化视图更改问题以及解决方法/index索引定义,声明,使用索引优化数据库查询tuning的优点,缺点
transaction定义,ACID,commit
- transaction事物: 在数据库上进行的查询或修改操作
- ACID: 事物的4个基本特点:原子,一致,隔离,持久
- Atomic: Whole transaction or none is done.要么发生要么不发生
- Consistant: constraints preserved. 约束保持良好,前后不变化
- Isolated:it appears to the user as if only one process execute at a time.
- Durable: 事物一旦提交,其对数据的改变不可更改
- 导致事物结束的两种情况:
- commit: sql通过commit提交事务对数据的操作,导致事务完成
- roll back
roll back:导致回滚的情况,解决方法
- 导致回滚的情况:被0除,违反约束,程序员弄的
- 解决回滚带来的数据混乱: 用commit代替rollback,在commit之前,其他人无法看到其效果
sql4个隔离层级isolated level,选择
- 四个级别:
- read uncommited: 未提交读
- read commited: 提交读
- repeatable read: 重复读
- serializable: 序列化
- 选择: 自己选
视图的定义,两种类别,声明,结合触发器的视图,视图实例化,基表更改引起实例化视图更改问题的解决方法
- view的2种类别
- virtual,不可修改,因为它不存在
- Materialized
- 声明:
create [种类] view <名字> as <操作(select from where之类)> -- 种类默认是虚的
- 结合触发器的视图
可以通过instead of触发器来对虚拟视图进行修改,instead of insert on 视图,XXXXX(操作) - 基表更改引起实例化视图更改问题以及解决方法
解决: 定时更新视图
index索引定义,声明,使用索引优化数据库查询tuning的优点,缺点
- index: 加速查询,哈希表或B-树
- 声明: create 索引名 on 表名(列名);多个列名括号内用逗号隔开
- 使用索引优化数据库查询tuning的优点,缺点
- 优点: 加快查询sppeed up query
- 缺点: slow down all modifications on relation(因为索引也需要随之更新)
11 psm持久型存储模块(存储过程),pl与sql: psm定义,参量的三种类型,声明,invoke调用,语法:判断,循环,指针,return/动态SQL声明,调用
psm定义,参量,声明,invoke,3个基本种类及作用,语法:判断,循环,指针
- PSM持久型存储模块(存储过程)参量3种类型:
- i n : 使 用 , 但 不 更 改 in: 使用,但不更改 in:使用,但不更改
- o u t : 相 当 于 C 引 用 out: 相当于C引用 out:相当于C引用
- i n o u t : 都 有 inout: 都有 inout:都有
- 声明:
create procedure 名字 (<参量类型> <参量名>) --多个参量用逗号隔开
<变量声明>
<操作>; -- 常规sql语句select-from-where之类
- invoke:
call 存储过程名(实参)
- 语法:判断,循环,指针,return
- 判断: i f . . t h e n . . e l s e i f . . t h e n . . e l s e . . e n d i f ; if..then..elseif..then..else..end\quad if; if..then..elseif..then..else..endif;,总之end if之前一定是else
- 循环:
循环名字:Loop 循环内操作; leave 循环名; -- 跳出条件 end Loop; while<条件> do <操作> end while; repeat <操作> until<条件> end repeat;
- 指针: create 指针名 cursor for <查询>
- 使用: open 指针名
- 关闭: close指针名
- return:并不代表结束,只是return
动态SQL的声明,调用
- 声明:
exec sql prepare 名字 from <sql语句>;
- 调用:
exec sql execute 名字;
12 grant授权: 语法:授权(操作权限,授权权限),撤销授权revoke,撤销授权的两种选项/授权图的点,边,AP,P*,P**,授权规则,撤销授权规则
语法:授权(操作权限,授权权限),撤销授权(操作权撤销,授权权撤销),撤销授权的两种选项
- 授权
- 操作权: grant <操作列表> on <需要操作的对象> to <被授权者>
- 授权权: 既可以操作,又可以授权,在操作权授权后加 with grant option
--举个例子
grant select,update
on Sell
to Sally;
- 撤销授权
- 语法: revoke <操作列表> on <需要操作的对象> from <被撤销授权的人>
- 撤销授权的两种形式
- cascade级联: 权限被撤销,则由该用户授权的所有其他用户的权限也撤销,不管传得有多远
- restrict限制: 如果被撤销授权的用户还对其他用户授权了,则不能撤销对他的授权并弹出警告
授权图的点,边,AP,P*,P**,授权规则,撤销授权规则
- 点: 圆,(被)授权对象\权限
- 只要不同权限,哪怕在同一数据上操作,都是两个不同节点
- 边: 授权者指向被授权者
- AP: 用户A有P权
- P*: P的授权权
- P** :P权本权(包含授权权)
- 授权规则: A把P权(或P*权,代表有授权权)授予B,就用一个实线箭头指向B
- 撤销授权: 注意是否是级联,是则无法撤销.每个节点都必须有到相应P**的路径,否则把它删掉
13 concurrency 并发控制: 基本概念:transaction事物,conflicting action冲突行为的种类,schedule调度,调度的4种方式/并发事务运行存在的3个异常/冲突等价conflict equivalent的定义/precedence graph符号表示,前驱图的节点,边,两个定理/(一级)加锁解锁协议:符号,legal schedule合法调度和well-formed调度/2PL两阶段锁协议描述,避免数据出错的其他4种方法(共享锁,多粒度,插入删除,其他机制),共享锁和排他锁描述,3个法则(well-formed,legal,upgrade变化问题)/increment lock增量锁和update lock的描述,符号/锁的兼容性/系统一个解决并发多用户加解锁问题的方法/多粒度封锁granularity:多粒度封锁描述,锁的类型((主要是意向锁:)IS,IX,SIX),6个规则,兼容性,加锁对象上允许再加的其他锁/pehantom数据重影定义,解决方法
基本概念:transaction,conflicting action的种类,schedule,调度的四种方式
- transaction:事物,(狭义)读写行为
- conflicting action:
- 同一事物的读r和写w
- 不同事物对同一元素的w
- 不同事物对同一元素一个r一个w
- schedule:调度
- 四种方式: { s e r i a l s c h e d u l e : 串 行 化 调 度 , 事 物 之 间 没 有 交 错 执 行 的 部 分 , 按 顺 序 一 个 一 个 来 s e r i a l i z a b l e s c h e d u l e : 可 串 行 化 调 度 , 调 度 结 果 与 某 个 串 行 调 度 执 行 结 果 等 价 A C R : a v o i d c a s c a t i n g r o l l b a c k : 避 免 级 联 回 滚 : 事 物 仅 读 已 经 提 交 事 务 修 改 的 数 据 s t r i c t : 事 物 写 入 的 值 在 其 c o m m i t 之 前 没 有 其 他 事 物 读 或 写 \begin{cases} serial\quad schedule:串行化调度,事物之间没有交错执行的部分,按顺序一个一个来\\ serializable\quad schedule:可串行化调度,调度结果与某个串行调度执行结果等价\\ ACR:avoid\quad cascating\quad rollback:避免级联回滚:事物仅读已经提交事务修改的数据\\ strict:事物写入的值在其commit之前没有其他事物读或写 \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧serialschedule:串行化调度,事物之间没有交错执行的部分,按顺序一个一个来serializableschedule:可串行化调度,调度结果与某个串行调度执行结果等价ACR:avoidcascatingrollback:避免级联回滚:事物仅读已经提交事务修改的数据strict:事物写入的值在其commit之前没有其他事物读或写
并发事务运行存在的3个异常
- 丢失修改
- 不可重复读
- 读脏数据
冲突等价conflict equivalent定义
- conflict equivalent: S 1 可 以 通 过 非 冲 突 事 物 交 换 转 换 为 S 2 S_1可以通过非冲突事物交换转换为S_2 S1可以通过非冲突事物交换转换为S2
precedence graph前驱图的符号表示,节点,边,两个定理
- 符号: P ( S ) − − − − − − − − S 是 调 度 序 列 P(S) --------S是调度序列 P(S)−−−−−−−−S是调度序列
- 节点: S中的事物
- 边: 先执行指向后执行
- 两个定理:
- 冲突等价的事物前驱图相同,反之不成立
- 有环<=>冲突可序列化
加解锁协议:符号,legal schedule和well-formed
- 符号: 加 锁 : L i ( A ) ; 解 锁 : U i ( A ) 加锁:L_i(A);\quad 解锁:U_i(A) 加锁:Li(A);解锁:Ui(A)
- well-formed: 同一事物对同一数据的所有操作在锁内执行
- legal schedual: 数据被某事物锁了的时间内不允许其他事物来上锁
2PL:描述,避免数据出错的其他4种方法(共享锁,多粒度,插入删除,其他机制),共享锁和排他锁描述,3个法则(well-formed,legal,upgrade变化问题)
- 描述:事物运行完所有工作之前不允许解锁
- 避免数据出错的其他4种方法: 共享锁shared lock,multiple granularity,insert delete phantom,other types of C
- 共享锁和排他锁:
- 共享锁: S ( A ) , 加 上 之 后 其 他 事 物 不 可 加 排 他 锁 S(A),加上之后其他事物不可加排他锁 S(A),加上之后其他事物不可加排他锁
- 排他锁: X ( A ) , 仅 允 许 本 事 物 操 作 数 据 , 其 他 食 物 不 能 加 锁 不 能 操 作 X(A),仅允许本事物操作数据,其他食物不能加锁不能操作 X(A),仅允许本事物操作数据,其他食物不能加锁不能操作
- 3个法则
- well-formed
- legal: 共享锁上锁期间不允许其他事物加排他锁,排他锁上锁期间不允许其他事物上锁
- 对于更新操作:如果操作后锁的数量比原来多,则不允许更新;否则可以更新
increment lock和update lock描述,符号
- increment lock: I N i ( A ) IN_i(A) INi(A)
- update lock:意向锁,以 I I I开头,意向读,意向写
锁的兼容性
X均不兼容,共享锁与意向锁兼容本身
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0IhrI5V2-1582017850802)(2020-01-13-01-02-44.png)]
系统一个解决并发多用户加解锁问题的方法
don’t trust transactions’ requests of locks, system hold all locks until transaction commits
多粒度封锁granularity:多粒度封锁描述,锁的类型((主要是意向锁:)IS,IX,SIX),6个规则,兼容性,加锁对象上允许再加的其他锁
- granularity: 封锁对象的大小称封锁粒度,譬如一张表,一个属性啥的
- 锁的类型:
锁
的
强
度
:
X
>
S
I
X
>
(
I
X
=
S
)
>
I
S
锁的强度:X>SIX>(IX=S)> IS
锁的强度:X>SIX>(IX=S)>IS
- IS: 意向共享
- IX: 意向排他
- SIX: 共享意向排他
- 6个规则:
- 遵循粒度强度
- 先锁根节点
- 上共享或意向共享(S\IS)锁之前必须有某个父节点被上了意向锁(共享排他都可以)
- 上X,IX,SIX之前必须有某个父节点被上了IX\SIX
- 事物满足2PL
- 某事物给节点解锁的条件是其子节点被该事物锁了
- 兼容性
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oN4mZU6T-1582017850804)(2020-01-13-01-19-18.png)] - 加锁对象上允许再加的其他锁
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dDmjV9h7-1582017850806)(2020-01-13-01-19-55.png)]
pehantom数据重影定义,解决方法
- pehantom: 多用户并发执行操作之后同一数据有了不同的值
- 解决: use multiple pehantom tree, before insert of node Q,lock Q’s parent
14 tp: 事务结束的两种情况/可恢复调度,避免级联回滚的概念/死锁的检测,4个避免方法
事务结束的两种情况
- commit
- abort:会回滚
可恢复调度,避免级联回滚的概念
见13
死锁的检测,4个避免方法
- 死锁的检测: wait-for graph,指向请求
- 死锁避免的4个方法
- resource ordering
- timeout
- wait-die:请求资源的进程只能等待固定时间,不然就die
- Wound-wait
15 view serializability视图可串行化: 视图等价,视图可串行化定义,定理,判断方法
view equivalent,view serialiability定义,定理,判断方法
- view equivalent { 定 义 : 调 度 视 图 等 价 于 一 个 串 行 调 度 定 理 : 冲 突 可 串 行 化 = > 视 图 可 串 行 化 , 反 之 不 对 判 断 方 法 : 使 用 代 表 及 的 优 先 图 , 只 要 有 一 个 优 先 图 无 环 , 调 度 是 视 图 可 串 行 化 \begin{cases} 定义: 调度视图等价于一个串行调度\\ 定理: 冲突可串行化=>视图可串行化,反之不对\\ 判断方法:使用代表及的优先图,只要有一个优先图无环,调度是视图可串行化 \end{cases} ⎩⎪⎨⎪⎧定义:调度视图等价于一个串行调度定理:冲突可串行化=>视图可串行化,反之不对判断方法:使用代表及的优先图,只要有一个优先图无环,调度是视图可串行化
- view equivalent 定 义 : 对 一 个 事 物 集 的 两 个 调 度 S 1 , S 2 : 如 果 对 于 每 个 数 据 项 : { 事 物 在 S 1 中 读 取 其 初 值 , 则 在 S 2 中 也 读 取 其 初 值 事 物 在 S 1 中 对 由 T x 产 生 的 值 执 行 r e a d , 则 在 S 2 中 也 对 T x 产 生 的 值 r e a d S 1 中 有 事 物 执 行 了 最 后 的 w r i t e ( Q ) , S 2 中 该 事 物 也 必 须 执 行 最 后 的 w r i t e ( Q ) 定义:对一个事物集的两个调度S_1,S_2:如果对于每个数据项:\begin{cases} 事物在S_1中读取其初值,则在S_2中也读取其初值\\ 事物在S_1中对由T_x产生的值执行read,则在S_2中也对T_x产生的值read\\ S_1中有事物执行了最后的write(Q),S_2中该事物也必须执行最后的write(Q) \end{cases} 定义:对一个事物集的两个调度S1,S2:如果对于每个数据项:⎩⎪⎨⎪⎧事物在S1中读取其初值,则在S2中也读取其初值事物在S1中对由Tx产生的值执行read,则在S2中也对Tx产生的值readS1中有事物执行了最后的write(Q),S2中该事物也必须执行最后的write(Q)
21 xml可扩展标记语言: xml概念,两种类型,结构/DTD概念,结构,元素,用法,属性/ID和IDREF/XML例子
xml概念,两种类型
- xml:可扩展标记语言,标记电子文件使其具有某种结构
- xml两种类型
- well-formed:可以自定义标签(invent own tag)
- valid:必须符合一个标准模式(conform a certain DTD)
- 结构: 开头结尾被"<…xml…></…xml…>"修饰,中间用其他标签修饰
DTD概念,结构,元素,用法,属性
- DTD: 文档类型定义,声明于xml中
- 结构:
<!DOCTYPE <root tag>[
<!ELEMENT <NAME>(<components>)>
...其他elements....
]>
22 olap: data warehouse,olap,oltp,data mining/star schema的两个组成部分(事实表,维表)/cube的drill-down和roll-up操作
data warehouse,olap,oltp,data minging
- data warehouse: 数据仓库
- OLAP: 联机分析处理,探索挖掘数据价值作为决策参考
- OLTP: 联机事务处理,一线业务操作
- data minging: 数据挖掘
star schema的两个组成部分
- 描述: 事实表被维表包围,维表主键关联事实表外键,一个粒度一个维度
- fact table: 一张
- demension table: 不同维度之间互不关联
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZahKW3ji-1582017918657)(2020-01-13-02-32-15.png)]
cube的drill-down和roll-up操作
- drill-down: 向下钻取,“拆分group by”
- roll-up: 向上钻取,合并
24 distributed分布式数据库: 优点,问题
分布式数据库优点
模块化,容错,高性能,数据共享,低内耗
modularity,fault tolerance,high performance,data sharing,low cost components
分布式数据库解决的问题
数据分配,并行,并发与恢复,异质性
data distribution,exploiting parallelism,concurrency and recovery,heterogeneity