编辑: 梦三石 | 2017-10-12 |
安全性控制的方法:用户标识和鉴定存取控制定义视图审计数据加密 数据库的完整性 完整性的含义:数据库的完整性是指保护数据库中数据的正确性、有效性(相容性)和一致性,防止错误的数据进入数据库造成无效操作.完整性约束条件分为6类- 图5-3对象粒度:列级、元组级、关系级状态:动态:反映数据库状态变迁的约束静态:反映数据库状态合理性的约束 数据库的完整性 静态列级约束对数据类型、格式、取值范围、空值以及其他约束静态元组约束例如发货量 盲目写操作 视图等价 视图可串行化判定 read(Q);
T1 T2 write(Q);
write(Q);
write(Q);
T3 T1 T2 T3 无用的写操作 非冲突可串行化 视图可串行化判定 带标记的优先图的构造设调度S包含了事务{T1, T2, … , Tn},设Tb, Tf是两个虚事务,其中Tb为S中所有write(Q)操作, Tf为S中所有read(Q)操作.在调度S的开头插入Tb ,在调度S的末尾插入Tf,得到一个新的调度S' ①如果Tj读取Ti写入的数据项的值,则加入边Ti Tj ②删除所有关联无用事务的边.如果在优先图中不存在从Ti到Tf的通路,则Ti是无用事务 ③对于每个数据项Q,如果Tj读取Ti读取写入的Q值, Tk执行write (Q)操作且Tk≠Tb ,则: 视图可串行化判定 ⒈如果Ti = Tb且Tj≠Tf,则在带标记的优先图中插入边Tj Tk ⒉如果Ti≠Tb且Tj = Tf,则在带标记的优先图中插入边Tk Ti ⒊如果Ti≠Tb且Tj≠Tf,则在带标记的优先图中插入边Tk Ti与Tj Tk .其中p是一个唯一的,在前面边的标记中未曾用过的大于0的整数 视图可串行化判定 read(A);
T1 T2 write(A);
write(A);
T1 Tf Tb T2
0 0
0 0 视图可串行化判定 read(Q);
T1 T2 write(Q);
write(Q);
write(Q);
T3 T1 T2 T3 Tb
0 Tf
0 0
0 0 视图可串行化判定 read(Q);
T1 T2 write(Q);
write(Q);
write(Q);
T3 T1 T2 T3 Tb
0 Tf
0 0
0 0 read(Q);
1 1 视图可串行化判定 T1 T2 T3 Tb
0 Tf
0 0
0 0
1 T1 T2 T3 Tb
0 Tf
0 0
0 0
1 每个优先图包含标号大于1的边对中的一条 判定准则:只要有一个优先图无环,则调度是视图可串行化的