php网站后台地址,建设一个大型网站大概费用,wordpress更换主题时,做外贸的人常用的网站一、函数依赖
给定一个x#xff0c;能唯一确定一个Y#xff0c;就称x确定Y#xff0c;或者说Y依赖于x#xff0c;例如YX*X函数。 函数依赖又可扩展以下两种规则: 部分函数依赖:A可确定C#xff0c;(A,B)也可确定C,(A,B)中的一部分#xff08;即A#xff09;可以确定C能唯一确定一个Y就称x确定Y或者说Y依赖于x例如YX*X函数。 ·函数依赖又可扩展以下两种规则: ·部分函数依赖:A可确定C(A,B)也可确定C,(A,B)中的一部分即A可以确定C称为部分函数依赖。 ·传递函数依赖:当A和B不等价时A可确定BB可确定c则A可确定c是传递函数依赖;若A和B等价则不存在传递,直接就可确定C。
二、键与约束
·超键:能唯一标识此表的属性的组合。 ·候选键:超键中去掉冗余的属性剩余的属性就是候选键。主键:任选一个候选键即可作为主键。 ·外键:其他表中的主键。 ·主属性:候选键内的属性为主属性其他属性为非主属性。
实体完整性约束:即主键约束主键值不能为空也不能重复。 ·参照完整性约束:即外键约束外键必须是其他表中已经存在的主键的值或者为空。用户自定义完整性约束:自定义表达式约束如设定年龄属性的值必须在o到150之间。
三、范式
第一范式1NF
关系中的每一个分量必须是一个不可分的数据项。通俗地说第一范式就是表中不允许有小表的存在。比如对于如下的员工表就不属于第一范式:
第二范式2NF ·如果关系R属于1NF且每一个非主属性完全函数依赖于任何一个候选码则R属于2NF。 ·通俗地说2NF就是在1NF的基础上表中的每一个非主属性不会依赖复合主键中的某一个列。 ·按照定义上面的学生表就不满足2NF因为学号不能完全确定课程号和成绩(每个学生可以选多门课)。
·将学生表分解为: ·学生(学号,学生姓名,系编号,系名,系主任)·选课(学号,课程号,成绩)。 ·每张表均属于2NF。
第三范式3NF
·在满足1NF的基础上表中不存在非主属性对码的传递依赖。 ·继续上面的实例学生关系模式就不属于3NF因为学生无法直接决定系主任和系名是由学号-系编号再由系编号-→系主任系编号-系名因此存在非主属性对主属性的传递依赖 ·将学生表进一步分解为: 学·生(学号学生姓名系编号) ·系(系编号系名系主任) ·选课(学号,课程号,成绩) ·每张表都属于3NF。
BC范式BCNF
·所谓BCNF是指在第三范式的基础上进一步消除主属性对于码的部分函数依赖和传递依赖。 ·通俗的来说就是在每一种情况下每一个依赖的左边决定因素都必然包含候选键如下: ·上图中候选键有两种情况:组合键(S,T)或者(S,J)依赖集为{SJ一TT一J}可知STJ三个属性都是主属性因此其达到了3NF(无非主属性然而第二种情况即(S,J)为候选键的时候对于依赖T-JT在这种情况不是候选键即T-J的决定因素不包含任意候选码因此上图不是BCNF。 ·要使上图关系模式转换为BCNF也很简单只需要将依赖T-s变为TS-即可这样其左边决定因素就包含了候选键之一S。