数据库三大范式详解,部分依赖、完全依赖、传递依赖 |
您所在的位置:网站首页 › 传递函数属于什么模型 › 数据库三大范式详解,部分依赖、完全依赖、传递依赖 |
数据库三大范式详解以及部分、完全、传递依赖
一、第一范式二、第二范式三、第三范式四、部分依赖、完全依赖、传递依赖完结撒花
一、第一范式
数据库每一列都是不可分的基本数据项(原子数据项) 就比如说:下面一个数据表 编号姓名地址001李一山东,青岛002李二山东,济南003李三山东,济宁上表所示的地址,就不符合第一范式,以为地址那一列可以分为省份和市区,故可以修改为 编号姓名省份市区001李一山东青岛002李二山东济南003李三山东济宁 二、第二范式第二范式要求在满足第一范式的基础上,非码属性必须完全依赖于候选字,也就是要消除部分依赖。(完全依赖,部分依赖在后文) 就比如说: 订单号产品号产品数量产品价格订单时间订单金额200100138.52020022425.5200200227.52020042417200200326.52020042417200300128.52020032416如上图加粗字体所示,可能对于同一个订单,含有不同的产品,因此主键必须是产品号和订单号联合组成。但可以发现产品数量、产品价格与订单号、产品号都有关,不过订单时间与订单金额仅与订单号有关,这就违反了第二范式。故可以修改为: 订单号产品号产品数量产品价格200100138.5200200227.5200200326.5200300128.5 订单号订单时间订单金额20012020022425.5200220200424172002202004241720032020032416 三、第三范式第三范式要求在满足第二范式的基础上,任何非主属性不依赖于其他非主属性,即在第二范式的基础上消除传递依赖。第三范式要求数据表的每一列都与主键直接相关,而不是间接相关。 就比如说: 学号姓名性别班主任姓名班主任性别班主任年龄2001李一男陈毅男352003李二男陈毅男352004李三男王玉女262005李四男王玉女26从上表可以看出,所有属性都完全依赖于学号,故符合第三范式,但是班主任性别和班主任年龄直接依赖于班主任姓名,而不是主键学号,故不符合第三范式。可修改为: 学号姓名性别班主任姓名2001李一男陈毅2003李二男陈毅2004李三男王玉2005李四男王玉 班主任姓名班主任性别班主任年龄陈毅男35陈毅男35王玉女26王玉女26这样就满足第三范式了。 四、部分依赖、完全依赖、传递依赖部分函数依赖:设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。 比如说:C可以通过AB得到,并且C也可以仅通过A得到,仅通过B得到, 那么就说C部分依赖AB。完全函数依赖:设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。 比如说:C可以通过AB得到,并且C不可以仅通过A得到,也不可以仅通过B得到, 那么就说C完全依赖AB。传递函数依赖:设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。 比如说:B可以通过A得到,C可以通过B得到,那么就称C传递依赖A。 完结撒花biu 点个赞再走呗 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |