数据库设计:规范化、反规范化与实体关系建模
1. 数据库规范化相关问题
在数据库操作中,有时会遇到信息丢失的情况。比如,我们能知道“哪个老师在教哪门课”,但却无法确定“哪个老师在给哪个学生教哪门课”,这就表明之前进行的分解是有损的。在执行BCNF(Boyce - Codd范式)操作时要格外小心,因为可能会在这个过程中丢失信息,而且并非所有情况都能实现BCNF。
BCNF其实比3NF(第三范式)更容易理解和实现。与3NF不同,BCNF不依赖于2NF(第二范式),也就不存在传递依赖的概念。
2. 第四范式(4NF)
- 定义 :如果一个表处于BCNF且主键没有任何独立的多值部分,那么这个表就处于第四范式(4NF)。4NF与多值依赖(MVD)的概念相关。简单来说,如果有两列A和B,对于给定的A,B可以有多个值,那么就称A和B之间存在MVD。如果表中有两个或更多这样不相关的MVD关系,就违反了第四范式。
- 示例 :假设有一个表存储了学生姓名、所学科目和所掌握的语言。一个学生可以学习零门或多门科目,同时也可以掌握零种或多种语言。这里存在两个独立的MVD事实:一是一个学生可以学习多门科目;二是一个学生可以掌握多种语言。
| Student | Subject | Language |
|---|---|---|
| Geeta | Mytholog |
超级会员免费看
订阅专栏 解锁全文
169万+

被折叠的 条评论
为什么被折叠?



