Database2
否具有函数依赖保持性### 数据库原理(2)复习
分数分布
Components | Percentage |
---|---|
规范化设计 | 44% |
数据库设计 | 5% |
数据库管理 | 38% |
对象关系数据库 | 11% |
/ | 2% |
规范化设计
关系模式的设计问题
一个关系模型包括(外延)和(内涵)两个方面的内容
- 外延:关系、表、当前值
- 内涵:对数据的定义以及对数据完整性的约束
实际使用时,用关系模式的集合\rho = \{R_{1},..,R_{k}\}来代替R(U),\rho称为数据库的模式,关系r是R的任意具体值,称为泛关系模式
关系模式的冗余和异常问题:
- 数据冗余大
- 插入、修改与删除异常
函数依赖
函数依赖的定义:
- r是R的任一具体关系,对r的任意两个元组u、v,由u[x]=v[x]导致u[y] = v[y]那么x \to y
候选码求解算法
- 将R所有属性分为L、R、N、LR四类,令X = {L、R},Y = {LR}
- 求X的闭包
- 在Y中选取任意组合属性y_{i},求闭包(Xy_{i})的闭包
属性集闭包求解算法:
- X_{0} = X
- $X_(i+1) = X_{i} \cup A,A为使用X_{i}的新增依赖 $
- 若X_{i+1} =X_{i}退出
FD的最小依赖集
- 任一函数以依赖右部为单属性
- F中任一函数依赖X\to A,不存在F-\{X\to A\}等于F:每个函数依赖左部没有多余的属性
- F中任一函数依赖X\to A,X的任一真子集Z,不存在F-\{X\to A\}\cup\{Z\to A\}等于F:不存在多余的函数依赖
求FD最小依赖集的步骤:满足FD最小依赖集的定义即可
- 满足(1):应用分解规则
- 满足(2):应用伪传递
- 满足(3):应用传递性
关系模式的分解特性
无损分解:原关系模式下的任一合法关系实例,在分解后,应能通过自然连接运算恢复起来。
无损分解的测试方法:
- 构造初始表
- 反复检测:若A\to C,那么将A列中相同的列,把C中对应的列改成相同的符号
无损分解的充分必要条件(只对元素个数为2⃣️的分解有效):
- R_{1}\cup R_{2} \to R_{1}-R_{2}或R_{1}\cup R_{2} \to R_{2}-R_{1}
测试分解\rho是否具有函数依赖保持性
- 对于z \in F = \{f_{0},f_{1},…,f{n-1}\},求\pi_z(F) = \{X\to Y | X\to Y \in F^+ \and XY \subseteq z\}
- 如果\left[\bigcup_{i=1}^k \pi_{z_{i}}(F)\right]^+ = F^+那么成功
关系模式的范式
intro:
-
1NF:不存在多值属性
-
BCNF:R中每个属性都不传递依赖于R的候选键
-
F 中的每个非平凡的函数依赖 X → Y,都有 X是 R 的超键
- \rho={R}
- 检查\rho中各关系模式是否均属于BCNF,若是结束
-
设\rho中Ri(Ui)不属于BCNF,那么必有X→A∈Fi+但X非Ri的超键,对Ri进行分解 为\rho={XA,U-{A}},U=U-{A}转到(2)
-
2NF:非主属性完全依赖于某个候选键
- 3NF:非主属性不传递依赖于某个候选键
- 求F_{\min},合并左部相同的依赖
- 对每个X\to Y构成一个模式XY
- 如果都不包含候选键,那么加入候选键
好的模式设计方法应符合三个原则:
- 表达性
- 分离性
- 最小冗余
#From Prof.Li's slides, start here.
第七章:数据库设计
数据库设计概述
数据库设计(Database Design,简称 DBD) 是指在给定的或待定的软硬件环境下,针对实际的问题和用户需求,设计一个较优的数据模型,建立DB结构和DB应用系统
计算机信息系统以数据库为核心,在数据库管理系统的支持下, 进行信息的收集、整理、存储、检索、更新、加工、统计和传播等操作。
需求分析
步骤:
- 用户活动图
- 系统范围图
- 数据流图
- 数据字典
****需要fine-grain
第八章:数据库管理
事物概念
ACID:
- Atomicity:原子性
- Consisitency:一致性
- Isolation:隔离性
- Durability:持久性
故障恢复
检查点机制:
- 在检查点时刻才真正做到把对DB的修改写到磁盘,并在日志文件写入一条检查点记录
- 检查点方法的恢复算法:
- 从头扫描日志文件,找到故障发生前最后一个检查点记录
- 由该检查点记录得到检查点建立时刻所有正在执行的事务清单,把他们暂时放入撤销队列
- 从检查点开始正向扫描日志文件,如有新开始事务放入撤销队列;如有提交的事务从撤销队列移到重做队列,直到日志文件结束
- 对撤销队列的每个事务执行UNDO操作;对重做队列的每个事务执行REDO操作
数据库的并发控制
封锁机制
- X锁:写锁,XFIND
- S锁:读锁,SFIND,UPDX
并发调度可串行化
- 串行调度:让多个事物依次执行
- 并发调度
- 如果一个并发调度与某一串行调度具有相同的执行结果,那么称这个并发调度是"可串行化的调度"
触发器
用户权限
- ```mysql 授权语句: GRANT <权限表> ON <数据库元素> TO <用户表> [WITH GRANT OPTION] eg: GRANT SELECT, UPDATE ON S TO WANG WITH GRANT OPTION eg: GRANT REFERENCES (CNO) ON C TO BAO WITH GRANT OPTION eg: GRANT INSERT(SNO,PNO,JNO) ON SPJ TO LOU WITH GRANT OPTION
回收语句: REVOKE <权限表> ON <数据库元素> FROM <用户表> [RESTRICT | CASCADE] eg: REVOKE SELECT, UPDATE ON S FROM WANG CASCADE ```
对象关系数据库
ORDBS:Object-Relational Database Systems(SQL3)
OODBS:Object-oriented databases
****未完..