Skip to content

Commit

Permalink
Update Database.md
Browse files Browse the repository at this point in the history
  • Loading branch information
CharlesZKQ committed May 27, 2020
1 parent 9787335 commit 0da2447
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion Database.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,10 +146,11 @@ delete;
- B完全依赖于A,就是说A中的所有属性唯一决定B,属性少了就不能唯一决定,属性多了则有冗余(叫依赖不叫完全依赖)。举例:(学号,课程名)这个主属性集可以唯一决定成绩,但是对于学生姓名这个属性,(学号,课程名)这个属性集就是冗余的,所以学生姓名不完全依赖于(学号,课程名)这一属性集;
- 主属性集/候选码集:某一组属性能够唯一确定其它的属性(主键就是从候选键集中选的一个键),而其子集不能,这样的属性组中的属性就是主属性;不在候选码集中的属性成为非主属性;
- 可以通过分解来满足 2NF:将(学号,课程名,成绩)做成一张表;(学号,学生姓名)做成另一张表,避免大量的数据冗余;
满足1NF后,要求表中的所有列,都必须依赖于主键,而不能有任何一列与主键没有关系,也就是说一个表只描述一件事情;
- **第三范式** 3NF:在 2NF 的基础上,非主属性**不传递依赖**于主属性
- 传递依赖:如果C依赖于B,B依赖于A,那么C传递依赖于A;
- 3NF在2NF的基础上,消除了非主属性之间的依赖;比如一个表中,主属性有(学号),非主属性有(姓名,院系,院长名),可以看到院长名这个非主属性依赖于院系,传递依赖于学号。消除的办法是分解。

必须先满足第二范式(2NF),要求:表中的每一列只与主键直接相关而不是间接相关,(表中的每一列只能依赖于主键);
<details>
<summary>不符合范式会出现哪些异常?</summary>

Expand Down

0 comments on commit 0da2447

Please sign in to comment.