下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、数据库范式
范式:英文名称是NormalForm,它是英国人E.F.Codd(关系数据库老祖宗)在上个世纪
70年代提出关系数据库模型后总结出来,范式是关系数据库理论基本,也是咱们在设计数
据库构造过程中所要遵循规则和指引办法。当前有迹可寻共有8种范式,依次是:INF,2NF,
3NF,BCNF,4NF,5NF,DKNF,6NF。普通所用到只是前三个范式,即:第一范式(1NF),
第二范式(2NF),第三范式(3NF)。下面就简朴简介下这三个范式。
♦第一范式(INF):强调是列原子性,即列不可以再提成其她几列。
考虑这样一种表:【联系人】(姓名,性别,电话)
如果在实际场景中,一种联系人有家庭电话和公司电话,那么这种表构造设计就没有达到
INFo要符合1NF咱们只需把列(电话)拆分,即:【联系人】(姓名,性别,家庭电话,
公司电话)。1NF较好辨别,但是2NF和3NF就容易搞混淆。
♦第二范式(2NF):一方面是1NF,此外包括两某些内容,一是表必要有一种主键;二是
没有包括在主键中列必要完全依赖于主键,而不能只依赖于主键一某些。
考虑一种订单明细表:【OrderDetail】(OrderlD,ProductID,UnitPrice,Discount,Quantity.
ProductName)。
由于咱们懂得在一种订单中可以订购各种产品,因此单单一种OrderlD是局限性以成为主
键,主键应当是(OrderlD,ProductID)。显而易见Discount(折扣),Quantity(数量)完全
依赖(取决)于主键(OderlD,ProductID),而UnitPrice,ProductName只依赖于ProductlD»
因此OrderDetail表不符合2NF。不符合2NF设计容易产生冗余数据。
可以把(OrderDetail]表拆分为[OrderDetail](OrderlD,ProductID,Discount,Quantity)
和【Product】(ProductID,UnitPrice,ProductName)来消除原订单表中UnitPrice.ProductName
多次重复状况。
♦第三范式(3NF):一方面是2NF,此外非主键列必要直接依赖于主键,不能存在传递依
赖。即不能存在:非主键列A依赖于非主键列B,非主键列B依赖于主键状况。
考虑一种订单表【Order】(OrderlD,OrderDate,CustomerlD,CustomerName,CustomerAddr,
CustomerCity)主键是(OrderlD)o
其中OrderDate.CustomerlD.CustomerName,CustomerAddr,CustomerCity等非主键列都
完全依赖于主键(OrderlD),因此符合2NF。但是问题是CustomerName.CustomerAddr,
CustomerCity直接依赖是CustomerlD(非主犍列),而不是直接依赖于主犍,它是通过传递
才依赖于主键,因此不符合3NF。
通过拆分【Order】为【Order】(OrderlD,OrderDate,CustomerlD)fQ[Customer](CustomerlD,
CustomerName,CustomerAddr,CustomerCity)从而达至ij3NF。
第二范式(2NF)和第三范式(3NF)概念很容易混淆,区别它们核心点在于,2NF:非主键
列与否完全依赖于主键,还是依赖于主键一某些;3NF:非主键列是直接依赖于主键,还是
直接依赖于非主键列。
♦BCNF是比第三范式更严格一种范式。它规定关系模型中所有属性(涉及主属性和非主属
性)都不传递依赖于任何候选核心字。也就是说,当关系型表中功能上互相依赖那些列每一
列都是一种候选核心字时候,该满足BCNF。
BCNF事实上是在第三范式基本上,进一步消除了主属性传递依赖。
3.举例
有这样一种配件管理表WPE(WNO,PNO,ENO,QNT),其中WNO表达仓库号,PNO表达配件
号,ENO表达职工号,QNT表达数量。
有如下约束规定:
(1)一种仓库有多名职工;
(2)1种职工仅在一种仓库工作;
(3)每个仓库里一种型号配件由专人负责,但一种人可以管理几种配件;
(4)同一种型号配件可以分放在几种仓库中。
分析表中函数依赖关系,可以得到:
(1)ENO->WNO;
(2)(WNO,PNO)->QNT
(3)(WNO,PNO)->ENO
(4)(ENO,PNO)->QNT
可以看到,候选键有:(ENO,PN。);(WNO,PNO)o因此,ENO,PNO,WNO均为主属性,QNT
为非主属性。显然,非主属性是直接依赖于候选键。因此此表满足第三范式。
而咱们观测一下主属性:(WNO,PN。)->ENO;ENO->WNO,显然WNO对于候选键
(WNO,PNO)存在传递依赖,因此不符合BCNF.
解决这个问题办法是分拆为两个表:管理表EP(ENO,PNO,QNT);工作表EW(ENO,
WNO)。但这样做会导致函数依赖(WNO,PNO)->ENO丢失。
4.应用
虽然,不满足BCNF,也会导致某些冗余和一致性问题。但是,将表分解成满足BCNF表
乂也许丢失某些函数依赖。因此,普通状况下不会强制规定关系表要满足BCNF。
♦第四范式(4NF)
1.定义
第四范式需要满足如下规定:
(1)必要满足第三范式
(2)表中不能包括一种实体两个或各种互相独立多值因子。
2.阐明
显然,第四范式也是一种比第三范式严格范式。
第四范式意思是:当一种表中非主属性互相独立时(3NF),这些非主属性不应当有多
值。若有多值就违背了第四范式。定义比较抽象,可以参照下面例子理解。
3.举例
有这样一种顾客联系方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 混凝土分包合同模板示例
- 网吧电脑整机组购协议
- 2024中国工商银行个人住房借款质押合同
- 林场承包林地合同范例
- 水电装修安装合同范例
- 新能源产业链及价值链分析考核试卷
- 危险品仓储储罐检查方法考核试卷
- 抵押合同模板一
- 建筑总承包拍卖合同范例
- 农产品棉花采购合同范例
- 画法几何与机械制图(山东联盟)智慧树知到答案章节测试2023年聊城大学
- 催化原理ppt课件 05
- 优秀分包商评选评分标准
- 装载机操作安全培训课件
- GB/T 30790.3-2014色漆和清漆防护涂料体系对钢结构的防腐蚀保护第3部分:设计依据
- GB/T 24411-2009摩擦材料用酚醛树脂
- GB/T 18801-2008空气净化器
- 计算机应用技术专业调研方案
- 周围神经损伤课件
- 展览馆陈列展柜制作施工方案及施工工艺方法
- 鱼类洄游(总)详细版课件
评论
0/150
提交评论