最近小编数据库用到的比较多,因为本人处于项目中的数据库设计阶段,所以最近学的较多的就是关于数据库方面的知识了。
而本期将要分享的是用三范式来设计数据库
那么三范式是什么呢,那么抛开它本身不说这就是一种设计数据库的规则
好了,下面我们就具体来了解一下所谓的三范式吧
第一范式
这第一范式代表的呢通俗的来讲呢就是说的表的列是不可重复的,每一列属性都是不可再分的属性值,确保每一列的原子性,两列的属性相近或相似或一样,尽量自己归类属性一样的列放在一个表,这样可以确保不产生冗余数据。
举个例子
学院名称,学院编码
像上面这样属性意思是差不多的就可以放在一个表中
如下图
总而言之,第一范式分字段到各个属性表里(我简称它为归类)
第二范式
第二范式是在第一范式的基础上建立起来的,即满足第二范式必须先满足第一范式。第二范式要求数据库表中的每个实例或行必须可以被惟一地区分(即主键ID)。
举个例子
有一个学院表,要想准确的拿到里面的数据呢我们就要给它一个主键ID来令的表的每一行都可以准确的区分开
数据库里如下图
总而言之,第二范式就是属性完全依赖于主键。
第三范式
满足第三范式必须先满足第二范式。简而言之,第三范式要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。
例如,存在一个学院信息表,其中每个学院有学院ID(即是这个表的主键ID)、学院名称、学院编码。那么在别的年级信息表中列出学院ID(即是做为外键)后就不能再将学院名称、学院编码等与学院有关的信息再加入员工信息表中。如果不存在学院信息表,则根据第三范式也应该构建它。不然的话可能会产生数据冗余哈
如下图
总而言之,第三范式就是属性不依赖于其它非主属性。 也就是说, 如果存在非主属性对于码的传递函数依赖,则不符合三范式的要求。
欧了,本期结束