社区
MS-SQL Server
帖子详情
谁有2NF和3NF的例子给我一个!!!
cl2002
2002-11-12 09:11:05
如题
...全文
271
3
打赏
收藏
谁有2NF和3NF的例子给我一个!!!
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wuguangyao
2002-11-14
打赏
举报
回复
wu_07(BLUETLCK)老大贴的很棒,看了之后茅塞顿开,可惜的是3NF的例子没有贴完啊,好像看看哪
cl2002
2002-11-14
打赏
举报
回复
谢了!!
wu_07
2002-11-12
打赏
举报
回复
一范式
一个数据结构,首先要考虑是否达到“一范式”(1-NF)。如果一个数据结构含有多值项(即“不平坦项”),就说它是非一范式的;将它分解,移除其多值项另设一表,即可达到一范式。
例1. 职工档案(工号,姓名,出生时间,受奖情况,...)。
其中,“受奖情况”即为多值项,包括“受奖时间”和“受奖称号”两项内容。
通常设计这种职工档案的数据结构方法有二:
一是“横向冗余”法,即多设几个受奖项目,如“受奖时间1”和“受奖称号1”,“受奖时间2”和“受奖称号2”,“受奖时间3”和“受奖称号3”,等等;
二是“纵向冗余”法,即只有一个“受奖时间”和“受奖称号”,一个人如有三次受奖,则记成三行,后面两行除“受奖时间”和“受奖称号”外,其它完全重复第一行的信息。这都是不好的方法。
科学的方法是,移出“受奖情况”成一个新表,这样就有如下的一范式数据模型:
职工档案(基本信息)
*工号 姓名 出生时间 ...
职工受奖情况
*工号 *受奖时间 受奖称号
该模型中的第一个表,由“工号”作为唯一识别每一行数据的标识,称为“主码”(或“主键”);第二个表由“工号”加上“受奖时间”作为每一行数据的唯一标识,是一种由两个数据元素组成的“主码”。因为,一个人可能有多次受奖,所以由上表到下表是“一对多”关系;而多个受奖记录可能是属于一个人的,即由下表到上表对应是“多对一”的关系。
二范式
其次,是考虑一个数据结构是否达到“二范式(2-NF)”。如果数据结构中非主码元素不完全依赖于整个主码(即含有“不完全依赖性”),则说它是非二范式的;将之进一步分解,作到每个非主码元素都完全依赖于主码,即达到二范式。
例2. 一初学者搞出的企业部门人员登记表的数据结构如下:
*部门号 *职工号 工种 工资 部门负责人
它的主码定义为“部门号”加上“职工号”,这就有许多问题:
“工种”、“工资”仅仅依赖“职工号”,即部分依赖于主码;“部门负责人”仅仅依赖于“部门号”,也是部分依赖于主码,所以是非二范式的。
经过优化后,得出下面的二范式模型:
*部门号 部门负责人
*部门号 *职工号
*职工号 工种 工资
这里有一个有趣的现象是:第二个表的两个数据元素都列为主码,除此之外再无“非主码元素”。这是允许的,而且在关系型数据库中是常见的,它表明了两个表的关系,在这里是表明每个部门中都有哪些职工。
三范式
第三,要考虑一个数据结构是否达到“三范式(3-NF)”。如果数据结构中有的非主码元素依赖于另一个非主码元素,即为非三范式。这种依赖现象也称为“传递依赖”,因为,如果 A→B,B→C, 那么B就起到中间“传球手”的作用了,这是一种不好的结构。在二范式的基础上消除这种传递依赖,就达到了三范式。
例3.有的统计数据结构含有一些“计算项”,实际上,在组织数据存储时是不必要的。
范式通俗理解:1NF、
2NF
、
3NF
和BNCF
范式通俗理解:1NF、
2NF
、
3NF
和BNCF准备知识超键、候选键、主键函数依赖部分依赖传递依赖范式1NF
2NF
3NF
BCNF参考 准备知识 超键、候选键、主键 超键 超键(super key):在关系中能唯一标识元组的属性集称为关系模式...
外行人都能看懂的技术文章系列——数据库范式1NF,
2NF
,
3NF
,BCNF,4NF,5NF,6NF举例详解
数据库范式1NF,
2NF
,
3NF
,BCNF,4NF,5NF,6NF举例详解 目录 1. 致读者 2. 基本概念(作者自己的定义) 3. 本文范例场景 4. 正文 第一范式(1NF) 第二范式(
2NF
) 第三范式(
3NF
) BC范式(BCNF) 第四范式(4...
【通俗易懂】关系模式范式分解教程
3NF
与BCNF口诀!小白也能看懂
在模式分解之前,首先对于1NF,
2NF
,
3NF
,BCNF做
一个
简明扼要的介绍。 1NF是指数据库表的每一列都是不可分割的基本数据项,即实体中的某个属性不能有多个值或者不能有重复的属性。
2NF
要求属性...
3NF
、BCNF和4NF基本概念和分解
一、第三范式(
3NF
)——相...1、把
一个
关系模式分解成
3NF
,使它具有保持函数依赖性 算法如下: 其中提到了最小函数依赖集,那么最小函数依赖集怎么求呢?方法如下: 举个
例子
:在R(U,F)中,U=ABCDEG,F={B→D,
范式1NF、
2NF
、
3NF
和BCNF的区别
主属性:候选码的每
一个
属性。 完全函数依赖:举个
例子
(Sno,Cno)->Grade。Sno-/>Grade,Cno-/>Grade. 部分函数依赖:举个
例子
(Sno,Cno)->Sno,(Sno,Cno)->Sage,明白了吗?拿第二个 说,(Sno,Cno)->...
MS-SQL Server
34,590
社区成员
254,589
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章