数据库规范化是组织数据库的属性以减少或消除数据冗余(具有相同数据但在不同位置)的过程。
数据冗余导致的问题
数据冗余不必要地增加了数据库的大小,因为相同的数据在许多地方重复。在插入、删除和更新操作期间也会出现不一致问题。
功能依赖
功能依赖性是与数据库相关的两组属性之间的约束。函数依赖用箭头 (→) 表示。如果一个属性 A 在功能上决定了 B,那么它被写为 A → B。
例如,employee_id → name 表示employee_id 在功能上决定了雇员的姓名。作为时间表数据库中的另一个示例,{student_id, time} → {lecture_room},student ID 和 time 决定了学生应该在的教室。
功能依赖是什么意思?
函数依赖 A → B 意味着对于 A 的特定值的所有实例,B 的值相同。
例如,在下表中,A → B 为真,但 B → A 不为真,因为 B = 3 时 A 的值不同。
A B
------
1 3
2 3
4 0
1 3
4 0
平凡的函数依赖
只有当 Y 是 X 的子集时,X → Y 才是微不足道的。
例子
ABC → AB
ABC → A
ABC → ABC
非平凡的函数依赖
当 Y 不是 X 的子集时,X → Y 是一个非平凡的函数依赖。
当 X 与 Y 相交为 NULL 时,X → Y 被称为完全非平凡的。
例子:
Id → Name,
Name → DOB
半非平凡的函数依赖
当 X 与 Y 相交不为 NULL 时,X → Y 被称为半非平凡的。
例子:
AB → BC,
AD → DC
- 范式
- 标准化测验