关系型数据库三大范式

1.范式概述

关系型数据库设计时,遵照一定的规范要求,目的在于降低数据的冗余性和数据的一致性,目前业界范式有:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)、第五范式(5NF)。一般说来,数据库只需满足第三范式(3NF)就行了。

2.使用范式的目的

减少数据冗余,尽量让每个数据只出现一次,获取数据时通过 join 拼接出最后的数据。

3.为什么要降低数据冗余?

①为了减少磁盘存储,十几年前,磁盘是十分昂贵的

②以前没有分布式系统,多存储数据就得加磁盘

③一次修改,需要修改多个表,很难保证数据一致性

附:数据冗余:在一个数据集合中重复的数据称为数据冗余

4.缺点

获取数据时,需要通过多表连接才能得出最后数据。

5.三大范式

第一范式:所有的字段都是基本数据字段,不可进一步拆分,是所有关系型数据库的最基本要求

第二范式:在满足第一范式的基础上,还要满足数据表里的每一条数据记录,都是可唯一标识的。而且所有字段,都必须完全依赖主键,不能只依赖主键的一部分

第三范式:在满足第二范式的基础上,不能包含那些可以由非主键字段派生出来的字段,或者说,不能存在依赖于非主键字段的字段。

6.解决方案

为了消除这种部分依赖,将大数据表拆分成两个或者更多个更小的数据表。

***************

遵循范式的要求,可以减少冗余,结合外键约束,可以防止添加、删除、修改数据时产生数据的不一致问题

你可能感兴趣的:(Hive,笔记,数据库,hive,数据仓库)