diff --git a/notes/数据库系统原理.md b/notes/数据库系统原理.md index 0fb4a9b1..d4e9586e 100644 --- a/notes/数据库系统原理.md +++ b/notes/数据库系统原理.md @@ -179,13 +179,13 @@ MySQL InnoDB 采用的是两阶段锁协议。在事务执行过程中,随时 # 范式 -记 A->B 表示 A 函数决定于 B,也就是 B 函数依赖于 A。 +记 A->B 表示 A 函数决定于 B,也可以说 B 函数依赖于 A。 如果 {A1,A2,... ,An} 是关系的一个或多个属性的集合,该集合决定了关系的其它所有属性并且是最小的,那么该集合就称为键码。 对于函数依赖 W->A,如果能找到 W 的真子集使得 A 依赖于这个真子集,那么就是部分依赖,否则就是完全依赖; -以下关系中,Sno 表示学号,Cname 表示课程名,Sname 表示学生姓名,Sdept 表示学院,Mname 表示院长姓名。函数依赖为 (Sno, Cname) -> (Sname, Sdept, Mname)。注:实际开发过程中,不会出现这种表,而是每个实体都放在单独一张表中,然后实体之间的联系表用实体 id 来表示。 +以下关系中,Sno 表示学号,Sname 表示学生姓名,Sdept 表示学院,Cname 表示课程名,Mname 表示院长姓名。函数依赖为 (Sno, Cname) -> (Sname, Sdept, Mname)。注:实际开发过程中,不会出现这种表,而是每个实体都放在单独一张表中,然后实体之间的联系表用实体 id 来表示。

@@ -232,14 +232,13 @@ MySQL InnoDB 采用的是两阶段锁协议。在事务执行过程中,随时

- ## 第三范式 (3NF) 非主属性不传递依赖于键码。 上述 S1 存在传递依赖,Mname 依赖于 Sdept,而 Sdept 又依赖于 Sno,可以继续分解。 -

+

## BC 范式(BCNF) diff --git a/pics/923896c1-937e-4a38-b8a6-cec3040b4e2a.jpg b/pics/923896c1-937e-4a38-b8a6-cec3040b4e2a.jpg new file mode 100644 index 00000000..ee440e1d Binary files /dev/null and b/pics/923896c1-937e-4a38-b8a6-cec3040b4e2a.jpg differ