关系和关系模式
关系是两个域的笛卡尔积的子集(或者元组的集合,我的 数据库(基础概念part two)解释过关系是什么),
而关系模式是什么?
百度百科有这样一句话:关系的描述称为关系模式(Relation Schema),
关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,
而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。
表示方式
关系模式可以表示为R(U,F),这里的U是属性集,F是函数依赖。
属性集是什么?一个关系里面,每一列称之为属性,属性集就是属性的集合。
函数依赖是什么?打个比方,学号------>姓名,称为学号函数决定姓名,姓名函数依赖于学号。
函数依赖的几种类型
P126页,非平凡函数依赖和平凡函数依赖,部分函数依赖,完全函数依赖,传递函数依赖。
范式
第一范式(1NF)
设R是一个关系模式, R中的每一个属性A的属性名和属性值都是不可再分的,则成R属于第一范式。
第二范式(2NF)
R∈1NF,且每一个非主属性都完全依赖于码。
第三范式(3NF)
定义稍微复杂,换成文字表述就是,若R∈3NF,则R的每一个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码。
BCNF
所有非主属性对每一个码都是完全函数依赖; (2NF)
所有的主属性对每一个不包含它的码,也是完全函数依赖;
没有任何属性完全函数依赖于非候选键的任何一组属性。
数据依赖的公理系统
函数依赖集闭包,属性集闭包,码值理论,最小函数依赖集的定义和求解算法。(P135)
模式分解
模式分解与原关系模式是否具有 等价性,这里的等价性包括两个方面:
分解前的关系模式R和分解后的p是否表示相同的数据,即分解是否导致数据的丢失。(即无损分解,也可表述为不失真)
分解前的关系模式R和分解后的p是否保持相同的函数依赖,即分解是否保持函数依赖的丢失。
无损分解的定义和判定的算法(P145)略。
模式分解的依赖保持性和判定算法(P148)略。
关系模式的分解算法
如果想同时满足三个条件,分解不导致数据的丢失,分解不导致函数依赖的丢失以及某一个范式。
这个范式最多能达到3NF。
满足3NF的函数依赖保持分解算法和满足3NF的函数依赖保持和无损连接分解算法(P149)略