关系型数据库的3NF规则

        三范式(Third Normal Form,3NF)是关系数据库设计中的一个基本概念,用于规范化数据库表格,以减少

数据冗余并确保数据的一致性。三范式是正规化(Normalization)过程的一个阶段,它包括一组规则,确保表格中的数据存储在最小化的冗余状态下

第一范式(1NF)

1NF是正规化的第一步。在1NF中,表格中的每个列都包含原子性的值,也就是每列中的每个单元格只包含一个不可分割的数据项。这意味着表格中的每个列都不包含重复的、多个值的列表或集合。

例如,以下表格不符合1NF

StudentIDCourses
1Math, Physics
2Chemistry, Math

在1NF中,应将表格拆分为两个表格,一个存储学生信息,另一个存储课程信息,如下:

学生表格(Students)

StudentIDStudentName
1Alice
2Bob

课程表格(Courses)

StudentIDCourse
1Math
1Physics
2Chemistry
2Math

现在,每个表格都符合1NF,每个列都包含原子性的值。

第二范式(2NF)

在1NF的基础上,2NF要求每个非主键列都完全依赖于候选键(主键)列。这意味着,如果表格的候选键有多个列组成,那么每个非主键列都必须依赖于所有候选键列,而不是部分依赖。

例如,考虑以下表格:

订单表格(Orders)

OrderIDCustomerIDProductPrice
1101Laptop800
2102Smartphone500
3101Tablet300

在这个表格中,候选键是{OrderID},但产品(Product)和价格(Price)列部分依赖于候选键(CustomerID)。为了符合2NF,应该将表格拆分为两个表格,一个存储订单信息,另一个存储产品信息:

订单表格(Orders)

OrderIDCustomerID
1101
2102
3101

产品表格(Products)

OrderIDProductPrice
1Laptop800
2Smartphone500
3Tablet300

现在,每个表格都符合2NF,每个非主键列完全依赖于候选键。

第三范式(3NF)

在2NF的基础上,3NF要求非主键列之间没有传递依赖关系。换句话说,任何非主键列都不应该依赖于其他非主键列。

例如,考虑以下表格:

雇员表格(Employees)

EmployeeIDEmployeeNameDepartmentManagerName
1AliceHRBob
2BobHRCarol
3CarolFinanceNULL

在这个表格中,ManagerName列依赖于EmployeeName列,形成了传递依赖。为了符合3NF,应将表格拆分为两个表格,一个存储员工信息,另一个存储部门信息:

员工表格(Employees)

EmployeeIDEmployeeNameDepartmentID
1Alice1
2Bob1
3Carol2

部门表格(Departments)

DepartmentIDDepartmentName
1HR
2Finance

现在,每个表格都符合3NF,没有传递依赖关系存在。

总结:

  1. 第一范式(1NF)要求每列包含原子性的值。

  2. 第二范式(2NF)要求非主键列完全依赖于候选键。

  3. 第三范

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值