面试突击:什么是三范式?它有什么用?

作者 | 磊哥

专注于为中小企业提供成都网站设计、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业盐城免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了数千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

来源 | Java面试真题解析(ID:aimianshi666)

转载请联系授权(微信ID:GG_Stone)

一、第一范式

第一范式规定表中的每个列都应该是不可分割的最小单元。比如以下表中的 address 字段就不是不可分割的最小单元,如下图所示:

其中 address 还可以拆分为国家和城市,如下图所示:


这样改造之后,上面的表就满足第一范式了。

二、第二范式

第二范式是在满足第一范式的基础上,规定表中的非主键列不存在对主键的部分依赖,也就是说每张表只描述一件事情,比如以下订单表就不满足第二范式,它可以拆分为两张独立的表:订单表和商品表。

1、不满足第二范式的订单表

PS:上面的表可拆分为两张独立的表:订单表和商品表。

2、 满足第二范式的表

订单表:

商品表:

三、第三范式

第三范式是在满足第一范式和第二范式的基础上,规定表中的列不存在对非主键列的传递依赖。比如以下的订单表中的顾客名称就不符合第三范式,因为它存在了对非主键顾客编号的依赖,如下图所示:

修改之后(符合第三范式)的表结构如下:

总结

第一范式规定表中的每个列都应该是不可分割的最小单元。第二范式是在满足第一范式的基础上,规定表中的非主键列不存在对主键的部分依赖。第三范式是在满足第一范式和第二范式的基础上,规定表中的列不存在对非主键列的传递依赖。使用数据库三范式的优势是:表的结构更简单、优雅,表的逻辑和条理性更强,并且使用三范式可以很大程度的减少表中的冗余数据,很好的节省了数据库的存储资源。

网页题目:面试突击:什么是三范式?它有什么用?
文章路径:http://www.stwzsj.com/qtweb/news31/5781.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联