categories: MySQL


关系数据库设计理论

基本概念

函数依赖

定义

设R(U)是属性集U上的一个关系模式,X,Y是U的子集。对于R(U)上的任何一个可能的关系r,如果r中不存在两个元组,他们在x上的属性值相同,而在y上的属性值不同,则称X函数决定Y或Y依赖X。

不存在一个X有多个Y,跟数学的函数概念一样

  1. 函数依赖只R的所有关系均要满足的约束条件
  2. 若X->Y,则称X为这个函数依赖的决定因素
  3. X->Y且Y->X 则X<—>Y

    平凡函数依赖

    定义

    设R(U)是属性集U上的一个关系模式X,Y是U的子集,如果X->Y,并且Y包含于X,则称X->Y是平凡函数依赖

    很显然,对于任一关系模式,平凡函数依赖都是必然存在的。

非平凡函数依赖

定义

设R(U)是属性集U上的一个关系模式X,Y是U的子集,如果X->Y,并且Y不包含于X,则称X->Y是非平凡函数依赖

完全函数依赖&部分函数依赖

定义

在R(U)中,如果X->Y,并且对于X的任何一个真子集X都有X不决定Y,则称Y对X完全函数依赖。
如果X->Y,但不完全函数依赖于X,则成Y对X部分函数依赖

传递函数依赖

定义

在R(U)中,如果,X->Y,Y->Z,且Y不包含于X,Y不决定X,则称Z传递函数依赖于X。

完全函数依赖,部分函数依赖,传递函数依赖,均是非平凡函数依赖

定义

设K为R中的属性或属性组合。若K完全函数决定U,则K为R的候选码。若候选码多于一个,则选定其中一个作为主键

包含在任何一个候选码中的属性称为主属性,不包含在任何码中的属性称为非主属性

外键

定义

关系模式R中属性或属性组X 并非R的码,但X是另一个关系模式S的码,则称X为R的外键

规范化

通常把关系数据库的规范化要求设立的不同标准称为范式 1NF<2NF<3NF<BCNF<4NF<5NF

第一范式

定义

如果关系模式R的所有属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式,简称1NF

关系数据库的语法决定了,所有关系的属性必须是原子性的,不满足1NF的数据库不符合关系型数据库

第二范式

定义

如果关系模式R属于1NF,且每个非主属性都完全函数依赖于R的码,则称R属于第二范式

如何实现1NF向2NF的转换

使用投影关系,将部分函数依赖接触

第三范式

定义

如果关系模式R属于2NF,且每个非主属性都不传递函数依赖于R的候选码,则称R属于3NF

怎么把2NF提升为3NF

运用投影分解法,将传递依赖解除

BC范式