网站如何建设数据库,网站建设和执纪监督,wordpress vul,九一人才网手机版文章目录MySQL数据库范式1、范式的优缺点2、第一范式3、第二范式4、第三范式5、BC范式6、第四范式MySQL数据库范式
1、范式的优缺点
应用数据库范式的好处#xff1a;
减少数据冗余#xff08;这是最主要的好处#xff0c;其他好处都是由此而附带的#xff09;消除异常
减少数据冗余这是最主要的好处其他好处都是由此而附带的消除异常插入异常更新异常删除异常让数据组织的更加和谐
范式设计的缺点
范式越高意味着表越多多表联合查询的机率就越大SQL的效率就变低表越多时在做更新、删除、插入数据时需要维护的表越多同样会降低数据库的效率
因此 并不是应用的范式越高越好视实际情况而定。第三范式已经很大程度上减少了数据冗余并且基本预防了数据插入异常更新异常和删除异常了。 2、第一范式
第一范式 每一列保持原子特性
列都是基本数据项不能够再进行分割否则设计成一对多的实体关系
注不符合第一范式不能称作关系型数据库
例如表中的地址字段可以再细分为省市区等不可再分割即原子特性的字段 3、第二范式
第二范式属性完全依赖于主键-主要针对联合主键
非主属性完全依赖于主关键字如果不是完全依赖主键即不全依赖联合主键中的所有关键字应该拆分成新的实体设计成一对多的实体关系
例如选课关系表为SelectCourse(学号, 姓名, 年龄, 课程名称, 成绩, 学分)学号课程名称是联合主键但是学分字段只和课程名称有关和学号无关相当于只依赖联合主键的其中一个字段不符合第二范式。 4、第三范式
第三范式属性不依赖于其它非主属性
要求一个数据库表中不包含已在其它表中已包含的非主关键字信息
注一般关系型数据库满足第三范式就可以了
示例学生关系表为Student学号 姓名 年龄 所在学院 学院地点 学院电话学号是主键但是学院电话只依赖于所在学院并不依赖于主键学号因此该设计不符合第三范式应该把学院专门设计成一张表学生表和学院表两个是一对多的关系。 5、BC范式
BC范式每个表中只有一个候选键
BC范式是在第三范式的基础上的一种特殊情况即每个表中只有一个候选键在一个数据库中每行的值都不相同则可称为候选键
示例每一个员工的email都是唯一的不可能两个人用同一个email则此表不符合BC范式对其进行BC范式化后的关系图为 注意 在要求更好的查询效率时可以不遵循BC范式多一个候选键就多一份表更多可能需要进行联合查询候选键储存在主表上也是没有问题的并不会造成数据的冗余在一定程度上提高查询效率 6、第四范式
第四范式消除表中的多值依赖减少维护数据一致性的工作
比如noNF表中的skill技能这个字段有的人是“javamysql”有的人描述的是“JavaMySQL”这样数据就不一致了解决办法就是将多值属性放入一个新表 样数据就不一致了解决办法就是将多值属性放入一个新表
[外链图片转存中…(img-n7yeQkem-1680516329350)]