问题的提出
针对一个具体的问题,应该如何构造一个适合于它的数据模式,即应该构造几个关系模式,每个关系由那些属性组成等。这是数据库设计的问题,确切地将是关系数据库逻辑设计问题。
由于关系模型由严格的数学理论基础,并且可以向别的数据模型转换,因此,人们就以关系模型为背景来讨论这个问题,形成了数据库逻辑设计的一个有力的工具——关系数据库的规范化理论。规范化理论虽然是以关系模型为背景,但是它对于一般的数据库逻辑设计同样具有理论上的意义。
当且仅当U上的一个关系r满足F时,r称为关系模式R<U,F>的一个关系。
关系,作为一张二维表,对它的一个最起码的要求:每一个分量必须是不可分的数据项。满足了这个条件的关系模式称为第一范式(1NF)
数据依赖是一个关系内部属性与属性之间的一种约束关系。其中最重要的是函数依赖和多值依赖。
规范化
函数依赖
定义:设R(U)是属性集U上的关系模式,X,Y是U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不相等,则称X函数确定Y或Y函数依赖于X,记作X→Y
函数依赖和别的数据依赖一样是语义范畴概念。设计者也可以对现实世界做强制的规定。
X→Y,但Y不包含于X,则称X→Y是非平凡的函数依赖。
X→Y,但Y包含于X,则称X→Y是平凡的函数依赖。
定义: