说明
总结<数据库系统与原理设计>书中知识点及名词解释用于考研备考,按章划分,较难易混知识点以二级标题特别标注,方便在目录中查找到。
第一章-第三章知识点详解
第四章 数据库建模
- 数据库设计过程(6):需求分析;概念设计;逻辑设计;模式求精;物理设计;应用与安全设计.
ER模型基本概念及表示
- 实体:客观世界中可区别于其他事物的"事物"或"对象".具有两个特征:1)独立存在;2)可区别于其他实体;
- 实体集:具有相同类型即相同性质(或属性)的实体集合.
- 属性:实体集中每个实体都具有的特征描述.实体是通过一组属性来描述的.
属性分类:
1)简单属性:不能再分为更小部分的属性;复合属性:可以进一步划分为更小部分的属性.
2)单值属性:对一个特定实体任何时候只有一个单独值. 否则为多值属性.
3)派生属性:某属性的值可以从其他相关属性或实体(集)派生出来,则该属性称为派生属性.
- E-R图中,实体集用矩形,属性用椭圆,多值属性用双椭圆,派生属性用虚线椭圆,属性与实体之间用连线表示.加下划线的属性为主码
- 联系:多个实体之间相互关联.
- 联系集:同类联系的集合.
- 实体的角色:实体在联系中的作用.[当参与联系集的实体来自相同的实体集时,则需要声明角色.]
- 联系集的度:参与联系集的实体集的数目.
- 联系集的码:类似实体集,每个联系集也需要存在候选码并选择其中的一个候选码作为主码,用于唯一标识该联系集中的一个联系.
- 实体集A的一个实体通过某联系集R能与实体集B中的实体相联系的数目,称为实体集A到实体集B之间的联系集R的映射基数.
二元联系集的主码选择依赖于联系集的映射基数:
1)一对一联系集:主码选任一方联系集的主码;
2)一对多:主码由 “多” 一方实体集的主码组成;
3)多对多:主码由参与联系集中 所有实体集的主码 组成.
二元联系集的属性安置依赖于联系集的映射基数:
1)2)类似主码选择;
3)多对多:联系属性只能安置在联系集上,不能放到相关联的实体集上去.(p118)
-
有的实体集完全独立于其他实体集,有的依赖另一实体集.
-
依赖约束:
-
1)联系集之间的依赖约束: 联系中一种实体的存在依赖于该联系集中联系的存在.-----称依赖实体集
-
2)实体集之间的依赖约束: 联系中一种实体的存在依赖于该实体集中实体的存在.-----称弱实体集
-
弱实体集: 其属性不足以形成主码,需要依赖其他实体集的存在而存在.它依赖的强实体集称为标识实体集.
-
强,弱实体集相关联,该联系集称为标识联系集.
-
一个弱实体集中用来标识的属性(集)称为该弱实体集的部分码。
-
弱实体集的实体由其标识实体集的主码及其部分码共同标识。
对于弱实体集必须满足:
1)标识实体集合弱实体集必须是“一对多”联系集。(一个标识实体可以与一个或多个弱实体联系,但一个弱实体集只能与一个标识实体联系。
2)弱实体在标识实体集中是全部参与。
E-R图中,双矩形表示弱实体集,双菱形表示标识实体集,虚下划线表示弱实体的部分码。
- 多值联系:在同一个给定的联系集中,相关联的相同实体之间可能存在多个联系.
- 多值联系建模:将多值联系集单独建模成为一个弱实体集或依赖实体集,也就是说将问题转化为依赖约束的建模问题.
第五章 关系数据理论与模式求精
- 函数依赖:p161
- 非平凡依赖VS平凡依赖
- 完全函数依赖VS部分函数依赖
范式
基于函数依赖理论,关系模式可分成几种范式(如下),这几种范式的严格程度递增。
- 第一范式(1NF)–码
如果第一关系模式r( R)的每个属性对应的域值都是不可分的,则称r®属于第一范式,称r( R)属于1NF。
第一范式的目标是:将基本数据划分成称为实体集或表的逻辑单元,设计好每个实体后,需为其指定主码。
- 第二范式(2NF)–全部是码
设有关系模式r( R),a属于R,若a包含于r( R)的某个候选码中,称a为主属性,否则为非主属性。
如果一个关系模式r( R)是第一范式,且所有非主属性都完全函数依赖于r( R)的候选码,称r( R)属于第二范式。
也就是说,满足第一范式的关系模式,如果有复合候选码,那么非主属性不允许依赖于部分的候选码属性,必须依赖于全部的候选码属性——全部是码。
第二范式目标是:将只部分依赖于候选码的非主属性通过关系模式分解转移到其他表中去。
- 第三范式(3NF)–仅仅是码
如果一个关系模式r( R)是第二范式,且所有非主属性都直接函数依赖于r( R)的候选码(即不存在非主属性传递依赖于候选码),则称r( R)属于第三范式。
也就是说,对于满足第二范式的关系模式,非主属性不能依赖于另一个(组)非主属性(这样就形成了对非主属性的传递依赖)即非主属性只能直接依赖于候选码——仅仅是码。
第三范式的目标是:将不直接依赖(即传递依赖)于候选码的非主属性通过关系模式分解移到其他表去。
总之:所有非主属性应直接依赖(不能存在传递依赖,这是3NF的要求)于全部的候选码(即必须完全依赖,不能存在部分依赖,这是2NF的要求。)
对于非3NF的关系模式,可通过分解进行规范化,以消除部份依赖和传递依赖.
- Boyce-Codd 范式(BCNF)
定义在p165(写起来好复杂…)
从函数依赖角度,一个满足BCNF的关系模式:
1)所有非主属性都完全依赖于每个候选码;
2)所有主属性都完全依赖于每个不包含它的候选码;
3)没有任何属性完全依赖于非候选码的任何一组属性.
因此,BCNF在第三范式基础上,还排除了主属性间的传递依赖,已是最好的范式.
3NF的放松之处在于允许主属性对候选码的传递依赖和部份依赖.
函数依赖理论
- 若给定函数依赖集F,可以证明其他函数依赖也成立,则称这些函数依赖被F 逻辑蕴涵.
- 令F为一函数依赖集,F 逻辑蕴涵的所有函数依赖组成的集合称为F的闭包,记为F+.
- 如何计算一个给定函数依赖集的闭包?
Armstrong公理:
属性集闭包
- 令r( R)为关系模式,F为函数依赖集,A属于R的属性集,则称在函数依赖集F下由A函数确定的所有属性的集合为F下属性集A的闭包,记为A+.
无损连接分解
保持依赖分解
注:这部分内容在p170,符号太多打不出来 >_<