|
|
|
如果某关系模式存在存储异常问题,则可通过分解该关系模式来解决问题。把一个关系模式分解成几个子关系模式,需要考虑的是该分解是否保持函数依赖,是否是无损联接。
|
|
|
|
无损联接分解的形式定义如下:设R是一个关系模式,F是R上的一个函数依赖(FD)集。R分解成数据库模式δ={R1,…,RK}。如果对R中每一个满足F的关系r都有下式成立:
|
|
|
|
|
|
那么称分解δ相对于F是无损联接分解,否则称为损失联接分解。
|
|
|
|
|
|
设p={R1,R2}是R的一个分解,F是R上的FD集,那么分解p相对于F是无损分解的充分必要条件是:(R1∩R2)→(R1-R2)或(R1∩R2)→(R2-R1)。:这两个条件只要有任意一个条件成立就可以了。
|
|
|
|
设数据库模式δ={R1,…,RK}是关系模式R的一个分解,F是R上的FD集,δ中每个模式Ri上的FD集是Fi。如果{F1,F2,…,FK}与F是等价的(即相互逻辑蕴涵),那么我们称分解δ保持FD。如果分解不能保持FD,那么δ的实例上的值就可能有违反FD的现象。
|
|
|