软考
APP下载

怎样区分第几范式

在数据库设计中,第一范式、第二范式、第三范式、BC范式等一系列范式是常常被提到的概念。在设计完整的数据库时,需要根据实际的需求选择何种范式是最适合的。那么,如何区分出是处于哪一个范式呢?下面将从多个角度分析。

一、第一范式

第一范式是指一个关系模式中的所有属性都是不可分的原子值,也就是满足原子性。通俗地说,就是每个字段中不应该再包含其他字段。

例如:

学生信息表:

| 学生姓名 | 学生性别 | 学生年龄 | 学生所在班级 |

其中“学生所在班级”这个字段就不满足第一范式,因为它还可以再分解为“班级名称”和“班级编号”等两个字段。

二、第二范式

第二范式是在满足第一范式的条件下,将非主键的属性依赖于主键。也就是说,一个关系模式中,不存在非关键字属性部分依赖于关键字的情况。

例如:

订单信息表:

| 订单编号 | 商品编号 | 商品名称 | 商品单价 | 商品数量 | 订单总金额 |

在这个表中,“商品名称”和“商品单价”这两个字段依赖于“商品编号”,而非依赖于整个订单,因此不满足第二范式。

三、第三范式

第三范式是在满足第二范式的条件下,消除非关键字对主关键字的传递依赖。也就是说,一个关系模式中不存在非关键字属性对主关键字的传递函数依赖。

例如:

商品信息表:

| 商品编号 | 商品名称 | 商品品牌 | 商品分类 | 商品库存 | 商品单价 |

在这个表中,“商品品牌”和“商品分类”这两个字段并不依赖于“商品库存”,而是依赖于“商品编号”,所以不满足第三范式。

四、BC范式

BC范式是指在满足第三范式的基础上,所有的函数依赖都是由候选键决定的。也就是说,不存在非平凡函数依赖X→Y,其中X不是任何超键或候选键。

总结起来,区分范式主要从单个字段原子性和属性间的依赖关系入手,确定每个字段应该属于哪个表,再根据实际情况进一步优化。

备考资料 免费领取:软件设计师报考指南+考情分析+思维导图等 立即下载
真题演练 精准解析历年真题,助你高效备考! 立即做题
相关阅读
软件设计师题库