数据库范式解读

来源:互联网 发布:程序员常用app 编辑:程序博客网 时间:2024/06/06 00:22

就不列官方的描述了,以自己的理解来描述下,正规的解释百度一下一大把。
一、第一范式
每一列都是第一属性,这个没啥说的,别一列里面放两个属性就行。

二、第二范式
实际上就是一张表是组合主键(A和B)类型的,那不要把单独和A或B相关的属性加进这种表,常见的场景就是多对多(学生、老师)的关系表中,不要把学生和老师的非id属性放进关系表。
ps:两张表的关系表里冗余了两张表里的其余属性;
三、第三范式
我的理解就是不要把命名可以独立成一张表的几个属性放进另外一张表,举个小例子(订单id,订单编号,用户id,用户姓名,用户头像),用户信息明显可以独立出去,这种情况就是不符合第三范式。不要一个表里面包含另外一个逻辑独立的表就行。
ps:非主键属性存在传递依赖。

四、BC范式
组合主键内部存在传递依赖。如:仓库、管理员、商品,仓库和管理员明明一条记录就ok了,现在会根据商品的多少存在很多份。
ps:仓库可以知道管理员,管理员可以找到仓库,应该把这个关系独立出来。

0 0
原创粉丝点击