三种范式

shpyw 2003-08-27 04:06:22
谁能帮我说说三种范式之间的区别和如何区分他们?
上次看到这个里面有介绍它的贴子,可今天查了半天也查不到,
只能发表了,希望大家帮我找找或重新说一下!谢谢!
...全文
53 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
happydreamer 2003-08-27
  • 打赏
  • 举报
回复
所谓范式就是符合某一种级别的关系模式的集合。通过分解把属于低级范式的关系模式转换为几个属于高级范式的关系模式的集合。这一过程称为规范化。

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


不到第一范式:
create 学生(姓名,性别年龄) ----(因为性别年龄列包括了两个属性)
第一范式不到第二范式:
create 学生(姓名,性别,年龄,语文老师名) --(因为老师列不是完全函数依赖于键码)
第二范式不到第三范式
create 学生(姓名,性别,年龄,语文老师id,数学老师id)
create 老师(老师id,老师名,老师年龄)
第三范式不到第四范式
create 学生(学生id,姓名,性别,年龄,籍贯)
create 关系表(学生id,老师id)
create 老师(老师id,老师名,老师年龄,籍贯)
第四范式
create 学生(学生id,姓名,性别,年龄,籍贯id)
create 关系表(学生id,老师id)
create 老师(老师id,老师名,老师年龄,籍贯id)
cteate 籍贯表(id,籍贯)
txlicenhe 2003-08-27
  • 打赏
  • 举报
回复
看看你的设计是不是满足第三范式3NF .

范式
构造数据库必须遵循一定的规则在关系数据库中这种规则就是范式范式是符合
某一种级别的关系模式的集合关系数据库中的关系必须满足一定的要求即满足不同的
范式目前关系数据库有六种范式第一范式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 也应该构建它否则
就会有大量的数据冗余简而言之第三范式就是属性不依赖于其它非主属性

34,590

社区成员

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

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