关系代数
对于关系S1、S2:
并
交
差
笛卡尔积
投影
选择
连接
例题 1.找出 R和S 的公共属性—>(A1,A2)2.R÷S 找出 R有S没有的属性 —> A3
3.找出A3的象集 3–>{(1,2)} 4–>{(2,1),(3,4)} 7–>{(4,6)}
4.求出πA1,A2(σ1小于3(S))的结果 {(2,1),(3,4)}
5.在 #3的结果 里面找到包含所有 #4结果的答案 —>4
第二问显然为4,4,6
例题:
F+是代表,F函数依赖集的闭包,通俗一点,就是从F函数依赖集能推导出来的依赖关系。原依赖集有A3→A2,A2→A3A4,因此可以得到A3→A2A4。函数依赖
规范化理论
价值与用途
解决:
- 数据冗余
- 更新异常
- 插入异常
- 删除异常
键
求解候选键
- 将关系模式的函数依赖关系用“有向图”的方式表示
- 找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属集即为关系模式的候选键
- 若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键
范式
第一范式(1NF)
在关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称R是第一范式。
第二范式(2NF)
当且仅当R是1NF,且每一个非主属性完全依赖主键(不存在部分依赖)时,则称R是第二范式。
第三范式(3NF)
当且仅当R是1NF,且E中没有非主属性传递依赖于码时,则称R是第三范式。
BC范式(BCNF)
设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。
数据库的关系范式有:
( 1 )第一范式( 1NF ):属性不可拆分或无重复的列。
( 2 )第二范式( 2NF ):完全函数依赖。在一个关系中,若某个非主属性数据项依赖于全部关键字称之为完全函数依赖。例:成绩表(学号,课程号,成绩)关系中,(学号,课程号)→ 成绩,只有学号或者只有课程号都无法推导出成绩,因此该关系式属于完全函数依赖。
( 3 )第三范式( 3NF ):消除传递依赖。不依赖于其他非主属性(消除传递依赖)。满足第三范式的数据库必须先满足第二范式。也就是说,数据库中的属性依赖仅能依赖于主属性,不存在于其他非主属性的关联。例如,图书,图书室的关系。图书包括编号、出版商、页码等信息,图书室包括图书室编号、所存图书(外键)。其中,图书室的表中不应该存储任何图书的具体信息(例如,出版商。),而只能通过主键图书编号来获得对应图书的信息。
( 4 ) BC 范式( BCNF ):所有非主属性对每一个码都是完全函数依赖;所有的主属性对于每一个不包含它的码,也是完全函数依赖;没有任何属性完全函数依赖于非码的任意一个组合。 如果说关系模式 R 属于 3NF ,不一定属于 BCNF ,如果 R 属于 BCNF ,则一定属于 3NF 。
( 5 )第四范式( 4NF ):对于每一个 X- 小于Y , X 都能找到一个候选码( 若关系中的某一属性组的值能唯一地表示一个元组 , 而其真子集不行 , 则称该属性组为候选码)。题干中 “ ( 时间,教室 ) →培训科目 ”且“ 培训科目 →培训师 ”,这之间存在传递依赖,不满足 3NF属于2NF 。
模式分解
模式分解就是将以前的关系模式R<U,F>分解成小的关系模式,所谓Fi在Ui上的投影,就是F+中的FD在Ui上成立(X→Y,X,Y∈Ui),对Ui做出规定,首先就是所有Ui的∪组成整个属性集U,其次就是不存在Ui是Uj子集的这种情况。