软考
APP下载

数据库第一二三范式例题

数据库范式是指在数据库设计中,通过一系列的规范或要求,对数据表设计的合理性、正确性和高效性进行保证。其中,第一二三范式是最基本的三种范式,也是最常用的三种范式。

一、第一范式

第一范式强调的是每个属性不可再分。也就是说,数据库表中的每个属性都是最基本的数据单位,不可以被继续拆分。只要表中的每个属性都满足这个条件,就可以认为该表是符合第一范式的。下面以一个教学班级信息表为例,来说明第一范式的概念:

班级信息表

| 班级号 | 姓名 | 学号 | 性别 |

|--------|--------|-------|----|

| 101001 | 张三 | 100101 | 男 |

| 101001 | 李四 | 100102 | 男 |

| 101001 | 王五 | 100103 | 女 |

| 101002 | 赵六 | 100104 | 男 |

| 101002 | 钱七 | 100105 | 女 |

| 101002 | 孙八 | 100106 | 男 |

可以看出,表中的每个属性都不能再继续拆分,每一列都是最基本的数据单位,所以符合第一范式。

二、第二范式

第二范式强调的是非主属性对于主键要完全依赖。也就是说,在一个表中,任何非主属性都必须完全依赖于主键。因此,如果一个表中存在多个主键,则需要将其拆分成符合第二范式的多个表。下面以一个订单信息表为例,来说明第二范式的概念:

订单信息表

| 订单编号 | 商品编号 | 商品名称 | 商品单价 | 商品数量 | 顾客编号 | 顾客姓名 | 顾客联系方式 |

|-------|-------|--------|-------|-------|-------|-------|-----------|

| 001 | 001 | 洗面奶 | 19.9 | 2 | 001 | 张三 | 13512345678 |

| 001 | 002 | 牙刷 | 6.5 | 3 | 002 | 李四 | 13812348765 |

| 002 | 003 | 浴巾 | 39.9 | 1 | 003 | 王五 | 13576543210 |

可以看出,在这个表中,非主属性包括商品名称、商品单价、商品数量、顾客姓名和顾客联系方式都是对于主键订单编号的完全依赖,因此符合第二范式。

三、第三范式

第三范式强调的是任何非主属性都不能相互依赖。也就是说,如果一个表中存在非主属性之间的依赖关系,那么在设计表结构时,需要将其拆分成符合第三范式的多个表。下面以一个学生信息表为例,来说明第三范式的概念:

学生信息表

| 学号 | 姓名 | 学院 | 院长 | 学院地址 |

|-------|--------|------------|-----|-----------|

| 100101 | 张三 | 计算机学院 | 王五 | 华南路3号 |

| 100102 | 李四 | 电子信息工程学院 | 赵六 | 中山路8号 |

| 100103 | 王五 | 机械工程学院 | 孙八 | 金湖路12号 |

可以看出,在这个表中,学院和院长之间存在依赖关系,因为任何一个学院的院长都是唯一的,而且一个院长只能管理一个学院。因此,表结构需要拆成两个表才符合第三范式,即学生基本信息表和学院基本信息表,其中学生基本信息表中包含学号、姓名和所在学院的外键,学院基本信息表中包含学院名称、院长和学院地址。

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