数据库设计:讲解三范式和er图 (数据库三范式 e-r图)

数据库设计:讲解三范式和ER图

随着信息时代的发展,数据库设计已经成为了计算机科学中不可缺少的知识点。在面向对象的思想下,好的数据库设计可以提高系统的运行效率和数据的可靠性。三范式和ER图是数据库设计中关键的两个知识点,本文将对它们进行详细讲解。

一、三范式

三范式是将数据规范化的重要步骤,在数据库设计中影响巨大。三范式包括以下三个层次:

1. 之一范式(1NF)

之一范式是指任何的关系型数据库表中,每一列的值都是不可再分的原子值。

如下图所示,学生这张表并不满足之一范式:

| 学生编号 | 学生姓名 | 活动时间 |

| ———— | ———— | ———— |

| 001 | 小明 | 1,2,3 |

| 002 | 小红 | 2,3 |

在上面的表中,活动时间一列看似是一个属性,但实际上它涵盖了多个值。因此,要使其满足之一范式,需要拆分得到如下两张表:

学生表:

| 学生编号 | 学生姓名 |

| ———— | ———— |

| 001 | 小明 |

| 002 | 小红 |

活动表:

| 活动编号 | 学生编号 | 活动时间 |

| ———— | ———— | ———— |

| 001 | 001 | 1 |

| 002 | 001 | 2 |

| 003 | 001 | 3 |

| 004 | 002 | 2 |

| 005 | 002 | 3 |

这样就满足了之一范式的要求。

2. 第二范式(2NF)

第二范式是在之一范式的基础上建立的,要求每个表必须有一个主键,并且非主键列必须完全依赖于主键。

下图展示了一个不满足第二范式的表:

| 活动编号 | 学生编号 | 活动名称 | 成绩 |

| ———— | ———— | ———— | ———— |

| 001 | 002 | 语文 | 90 |

| 001 | 003 | 语文 | 80 |

| 001 | 002 | 英语 | 95 |

| 001 | 003 | 英语 | 85 |

在上面的表中,组合主键(活动编号、学生编号)并不包含非主键列(活动名称),因此无法满足第二范式的要求。需要拆分出两个表:

活动表:

| 活动编号 | 活动名称 |

| ———— | ———— |

| 001 | 语文 |

| 002 | 英语 |

成绩表:

| 活动编号 | 学生编号 | 成绩 |

| ———— | ———— | ———— |

| 001 | 002 | 90 |

| 001 | 003 | 80 |

| 002 | 002 | 95 |

| 002 | 003 | 85 |

这样就满足了第二范式的要求。

3. 第三范式(3NF)

第三范式是在第二范式的基础上建立的,要求非主键列之间不能相互依赖。

下面是一个不满足第三范式的表:

| 课程编号 | 教师编号 | 课程名称 | 教师姓名 | 教师职称 |

| ———— | ———— | ———— | ———— | ———— |

| 001 | 001 | 数据库 | 张三 | 讲师 |

| 001 | 002 | 数据库 | 李四 | 讲师 |

| 002 | 001 | 网络 | 张三 | 讲师 |

| 002 | 002 | 网络 | 李四 | 讲师 |

在上面的表中,教师姓名和教师职称都只和教师编号有关,因此需要拆分表:

课程表:

| 课程编号 | 课程名称 |

| ———— | ———— |

| 001 | 数据库 |

| 002 | 网络 |

教师表:

| 教师编号 | 教师姓名 | 教师职称 |

| ———— | ———— | ———— |

| 001 | 张三 | 讲师 |

| 002 | 李四 | 讲师 |

这样就满足了第三范式的要求。

二、ER图

ER图(Entity-Relationship Diagram)即实体-关系图,是用于描述各种实体之间关系的图形化工具。 ER图包括实体(Entity)、属性(Attribute)和关系(Relation)三个要素。

下图是一个示例ER图:

![ER](https://cdn.luogu.com.cn/upload/image_hosting/4oa10l4l.png)

在上图中,学生和课程是实体,学生编号、课程编号等都是它们对应的属性。学生和课程之间有选修关系,用一个菱形表示。课程表中包含了学生信息,因此课程表和学生表之间是联系关系。

在实际应用中,ER图可以帮助我们更好地了解各种实体之间的关系,从而设计出更合理的系统。此外,ER图的绘制还可以用于沟通、讨论,确保各方面所需的信息的完整性和准确性。

三、

三范式和ER图是数据库设计过程中不可或缺的两个环节。通过三范式的规范化设计,可以使数据更加规范和易于处理;而通过ER图的视觉化设计,可以更好地盘点实体间的关系,提高系统运行效率和数据的可靠性。因此,掌握三范式和ER图是进行数据库设计的必要条件,也是广大计算机从业人员应该掌握的基本技能。


数据运维技术 » 数据库设计:讲解三范式和er图 (数据库三范式 e-r图)