数据库第八章 关系数据库设计
无损分解&有损分解
一个数据库的好坏主要取决于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: 无损分解指的是对关系模式分解时,原关系模型下任一合法的关系值在分解之后应能通过自然联接运算恢复起来
原子域&第一范式
如果一个域的元素是不可分的单元,则该域是原子的(atomic)
如果一个关系模式R的所有属性的域都是原子的,则称该关系模式满足第一范式(1NF)
函数依赖
R的子集K是r(R )的超码的条件:在关系r(R )的任意合法实例中,对于r的实例中的所有元组对t1和t2总满足:若t1≠t2,则t1[K]≠t2[K] . 也就是说不同元组的K是不同的,即K唯一标识