数据库第八章 关系数据库设计
无损分解&有损分解
一个数据库的好坏主要取决于ER图的设计质量
该数据表:

存在数据的冗余,且如果一个系没有教师,则无法表示该系的信息(dept_name,building,budget)
因此可以考虑将其进行分解:
分解为 teacher(ID,name,salary,dept_name) dept(dept_name,building,budget)
该分解可以解决冗余问题,但是否分解总是好的?
考虑将employee(ID, name, street, city, salary) 分解为employee1 (ID, name) 和 employee2 (name, street, city, salary) ,则会产生数据关系的丢失。因为如果存在同名的情况,则自然连接两个表时将导致部分数据错误的连接,因此失去了一些信息。

有损分解 lossy decomposition: 无损分解指的是对关系模式分解时,原关系模型下任一合法的关系值在分解之后不能通过自然联接运算恢复起来
无损分解 lossless decomposition: 无损分解指的是对关系模式分解时,原关系模型下任一合法的关系值在分解之后应能通过自然联接运算恢复起来
原子域&第一范式
如果一个域的元素是不可分的单元,则该

本文探讨了关系数据库设计的重要性,详细解释了无损分解和有损分解的概念,强调了无损分解在消除冗余和保持数据完整性的关键作用。同时,介绍了原子域和第一范式,以及函数依赖的理论和应用,包括如何通过函数依赖判断关系模式是否满足BCNF和3NF。最后,讨论了分解算法和多值依赖,以及它们在数据库设计中的角色。
最低0.47元/天 解锁文章
2133

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



