什么是范式,怎样区分第1,2,3范式

wanpl 2003-09-29 04:52:28
我是个初学者,第一次看sql server 2000对范式很不明白~!
...全文
4229 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
buptzwp 2010-06-02
  • 打赏
  • 举报
回复
mark
killxtt 2003-09-30
  • 打赏
  • 举报
回复
随便找本数据库原理的书估计都会说的,范式可以 规范数据库设计,但是也不是绝对的,具体情况还要具体分析。而且,范式推出的时候存储设备十分昂贵,所以十分注意节省存储空间,因而牺牲了一些效率,但是现在存储设备价格已经十分低廉了,所以有时候应该更注意效率一些
westbulls 2003-09-29
  • 打赏
  • 举报
回复
对不起2nf写错了,大力写的对,是表中每一个列都应该函数依赖于此表的主关键字.
westbulls 2003-09-29
  • 打赏
  • 举报
回复
其实范式是关系型数据的基本知识.
1Nf--第1范式就是没有表中有表,即二维表就可以了
2Nf--第2范式就是表中没有重复列.
3Nf--第3范式就是没有传递依赖,表中所有列都函数依赖于主关键字.(比如,表a(ID,sum1,Sid,a1),表b(Sid,a1)例子中ID为表a的关键字,Sid为表b的关键字.
我们说表a传递依赖于表b,应该规范为表a(ID,sum1,Sid),表b(Sid,a1)

一般要求关系表能够满足第3范式就可以了.

txlicenhe 2003-09-29
  • 打赏
  • 举报
回复
范式
构造数据库必须遵循一定的规则在关系数据库中这种规则就是范式范式是符合
某一种级别的关系模式的集合关系数据库中的关系必须满足一定的要求即满足不同的
范式目前关系数据库有六种范式第一范式1NF 第二范式2NF 第三范式3NF
第四范式4NF 第五范式5NF 和第六范式6NF 满足最低要求的范式是第一
范式1NF 在第一范式的基础上进一步满足更多要求的称为第二范式2NF 其余
范式以次类推一般说来数据库只需满足第三范式3NF 就行了下面我们举例介绍
第一范式1NF 第二范式2NF 和第三范式3NF
第一范式1NF
在任何一个关系数据库中第一范式1NF 是对关系模式的基本要求不满足第一
范式1NF 的数据库就不是关系数据库
所谓第一范式1NF 是指数据库表的每一列都是不可分割的基本数据项同一列中
不能有多个值即实体中的某个属性不能有多个值或者不能有重复的属性如果出现重复
的属性就可能需要定义一个新的实体新的实体由重复的属性构成新实体与原实体之
间为一对多关系在第一范式1NF 中表的每一行只包含一个实例的信息例如对
于图3-2 中的员工信息表不能将员工信息都放在一列中显示也不能将其中的两列或多
列在一列中显示员工信息表的每一行只表示一个员工的信息一个员工的信息在表中只
出现一次简而言之第一范式就是无重复的列
第二范式2NF
第二范式2NF 是在第一范式1NF 的基础上建立起来的即满足第二范式2NF
必须先满足第一范式1NF 第二范式2NF 要求数据库表中的每个实例或行必须可
以被惟一地区分为实现区分通常需要为表加上一个列以存储各个实例的惟一标识如
图3-2 员工信息表中加上了员工编号emp_id 列因为每个员工的员工编号是惟一的
因此每个员工可以被惟一区分这个惟一属性列被称为主关键字或主键主码
第二范式2NF 要求实体的属性完全依赖于主关键字所谓完全依赖是指不能存在
仅依赖主关键字一部分的属性如果存在那么这个属性和主关键字的这一部分应该分离
出来形成一个新的实体新实体与原实体之间是一对多的关系为实现区分通常需要为表
加上一个列以存储各个实例的惟一标识简而言之第二范式就是非主属性非部分依赖
于主关键字
第三范式3NF
满足第三范式3NF 必须先满足第二范式2NF 简而言之第三范式3NF
要求一个数据库表中不包含已在其它表中已包含的非主关键字信息例如存在一个部门
信息表其中每个部门有部门编号dept_id 部门名称部门简介等信息那么在图3-2
的员工信息表中列出部门编号后就不能再将部门名称部门简介等与部门有关的信息再加
入员工信息表中如果不存在部门信息表则根据第三范式3NF 也应该构建它否则
就会有大量的数据冗余简而言之第三范式就是属性不依赖于其它非主属性
aierong 2003-09-29
  • 打赏
  • 举报
回复
一、范式例子

定义:
=====
第一范式:(1NF)
如果关系模式,它的每一分量是不可分的数据项,则此关系模式为第一范式
第二范式:(2NF)
若关系模式R属于1NF,且每个非主属性完全依赖于码,则R为2NF
第三范式:(3NF)
若关系模式R属于2NF,不存在非主属性对码的传递依赖,则称R为3NF
传递依赖:当属性间存在X->Y,Y-\->X,Y->Z,称z传递依赖与X

举例:
=====
将有关学生简历、选课等数据设计成一关系模式student
表示为:
student(sno,sname,age,sex,class,department,cno,cname,score,grade)
-----------------------------------------------------------------
该关系模式的每一属性对应的域为简单域,符合第一范式
该关系模式满足函数依赖集
F={sno->sname,sno->age,sno->sex,sno->class,sno->department
class->departmet (班级决定系)
cno->cname,cno->score(课程号决定课程名、学分)
sno,cno->grade(学号和课程号决定成绩)
}
下面将低级范式的关系模式转换成若干个高一级范式的关系模式集合
student1(sno,sname,age,sex,class,department)
--------------------------------------------
course(cno,cname,score)
-------------------------
sc(sno,cno,grade)
-----------------
非主属性对码完全依赖,均为2NF

分析模式student1,存在sno->class ,class-\->sno,class->department
所以存在department(系)对sno(学号)传递依赖,所以关系模式student1不是第三范式
student1分解为:
student2(sno,sname,age,sex,class)
---------------------------------
class(class,department)
-----------------------
所以关系模式student 可分解成 4个3NF的关系模式student2 ,class ,course,sc

  




pengdali 2003-09-29
  • 打赏
  • 举报
回复
所谓范式就是符合某一种级别的关系模式的集合。通过分解把属于低级范式的关系模式转换为几个属于高级范式的关系模式的集合。这一过程称为规范化。

1、 第一范式(1NF):一个关系模式R的所有属性都是不可分的基本数据项。
2、 第二范式(2NF):关系模式R属于第一范式,且每个非主属性都完全函数依赖于键码。
3、 第三范式(3NF):关系模式R属于第一范式,且每个非主属性都不伟递领带于键码。
4、 BC范式(BCNF):关系模式R属于第一范式,且每个属性都不传递依赖于键码。

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧