【数据库系统知识】关系模型的范式

1NF(第一范式)、2NF(第二范式)和3NF(第三范式)是关系型数据库设计中的规范化概念,用于确保数据表的结构良好,减少数据冗余和提高数据的一致性。

1NF(第一范式):

1NF 要求关系中的每个属性具有原子性,即每个属性的值都是不可再分的。这意味着在关系中的每个单元格中,只能包含一个单一的值。

例子:

考虑以下学生表:

学生ID姓名课程
1小明数学, 物理
2小红语文, 英语

这个表不符合1NF,因为"课程"列包含了多个值。修正后的表应该如下:

学生ID姓名课程
1小明数学
1小明物理
2小红语文
2小红英语

2NF(第二范式):

2NF 要求关系中的非主属性完全依赖于关系的候选键。一个表达式完全依赖于候选键,是指没有任何一个属性能够被候选键的一部分所确定。

例子:

考虑以下订单表:

订单号产品产品描述价格
1电脑台式电脑1000
2手机智能手机500

这个表不符合2NF,因为"产品描述"和"价格"这两列对于"产品"而言只依赖于部分候选键(“产品”),而不是全部候选键(“订单号”,“产品”)。修正后的表应该如下:

产品产品描述价格
电脑台式电脑1000
手机智能手机500

3NF(第三范式):

3NF 要求关系中的非主属性不传递依赖于关系的候选键。这意味着在关系中,任何非主属性都不依赖于其他非主属性。

例子:

考虑以下学生-教师表:

学生ID学生姓名教师姓名
1小明张老师
2小红王老师

这个表不符合3NF,因为"教师姓名"依赖于非主属性"学生姓名"。修正后的表应该如下:

学生ID学生姓名
1小明
2小红
学生姓名教师姓名
小明张老师
小红王老师

这样,每个表都符合3NF。

如有不对,敬请批评指正!
(转载文章请注明作者和出处)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值