1NF-2NF-3NF-4NF.docx

上传人:王** 文档编号:1155620 上传时间:2024-04-07 格式:DOCX 页数:2 大小:16.59KB
下载 相关 举报
1NF-2NF-3NF-4NF.docx_第1页
第1页 / 共2页
1NF-2NF-3NF-4NF.docx_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《1NF-2NF-3NF-4NF.docx》由会员分享,可在线阅读,更多相关《1NF-2NF-3NF-4NF.docx(2页珍藏版)》请在优知文库上搜索。

1、大部分数据库从业人员都知道关系数据库有三个基本的范式,即:第一范式,第二范式,第三范式。当然也有牛人知道BC范式,第四范式,第五范式,第六范式,甚至还有个DK范式。本人对数据库的范式概念也是一知半解的,想想有些可笑,搞数据库的竟然不了解关系数据库的基础范式。这不最近查阅了不少资料,今天把这些东东总结一下。范式:英文名称是NormalForm,它是英国人E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次是:INF,2NF,3NF,BCNF,4N

2、F,5NF,DKNF,6NF。通常所用到的只是前三个范式,即:第一范式(INF),第二范式(2NF),第三范式(3NF)Discount,Quantity,ProductName)因为我们知道在一个订单中可以订购多种产品,所以单单一个OrderlD是不足以成为主键的,主键应该是(OrderID,ProductID)显而易见DiSCoUnt(折扣),Quantity(数量)完全依赖(取决)于主键(OderID,ProductID),而UnitPrice,ProductName只依赖于ProductIDo所以OrderDetail表不符合2NF。不符合2NF的设计容易产生冗余数据。可以把IOrde

3、rDetail表拆分为(OrderDetail)(OrderID,ProductID,Discount,Quantity)11Product(ProductID,UnitPrice,PrOdUCtName)来消除原订单表中UnitPrice,ProductName多次重复的情况, 第三范式(3NF):首先是2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列A依赖于非主键列B,非主键列B依赖于主键的情况。考虑一个订单表【Order】(Order【D,OrderDate,CustomerID,CustomerName,CustomerAddr,CustomerCity)

4、主键是(OrderID)。其中OrderDate,CustomerID,CustomerName,CustomerAddr,CustomerCity等非主键列都完全依赖于主键(OrderID),所以符合2NF。不过问题是CustomerName,CustomerAddr,CustomerCity直接依赖的是CustomerID(非主键列),而不是直接依赖于主键,它是通过传递才依赖于主键,所以不符合3NFo通过拆分【Order】为【OrderKOrderID,OrderDate,CUStomerID)和【Customer(CustomerID,CustomerName,CustomerAddr,CustomerCity)从而达到3NF。第二范式(2NF)和第三范式(3NF)的概念很容易混淆,区分它们的关键点在于,2NF:非主键列是否完全依赖于主键,还是依赖于主键的一部分;3NF:非主键列是直接依赖于主键,还是直接依赖于非主键列。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医学/心理学 > 眼科学

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!