银河999游戏官方下载Rn上的投影的自然连接等于r

当前位置:银河999游戏下载 > 银河999游戏官方下载 > 银河999游戏官方下载Rn上的投影的自然连接等于r
作者: 银河999游戏下载|来源: http://www.sterilecreed.com|栏目:银河999游戏官方下载

文章关键词:银河999游戏下载,关系模式分解

  在前面的讨论中,为了提高关系模式的规范化程度,我们都是通过把低一级的关系模式分解为若干个高一级的关系模式来实现的。这样的分解使各个关系模式达到某种程度的分离,让一个关系模式描述一类实体或者实体间的一种联系。

  然而,如何对关系模式进行分解呢?对于同一个关系模式可能有多种分解方案。例如,关系模式S(SNO,CLASSNO,DEPTNO),其中学号SNO,班级编号CLASSNO,系编号DEPTNO。

  每种分解方案得到的两个关系模式都属于3NF,实际上,它们都属于BCNF和4NF范式。如何比较这三种分解方案的优劣呢?将一个关系模式分解为多个关系模式时,除了提高规范化程度外还需要什么别的考虑吗?

  规范化过程中将一个关系模式分解为若干个关系模式,应该保证分解后产生的模式和原来的模式等价。常用的等价标准有要求:

  将一个关系模式R(U,F)分解为若干个关系模式R1(U1,F1),R2(U2,F2)…Rn(Un,Fn)(其中U=U1 U2 … Un,R1为F在U1上的投影),这意味着相应的将存储在一个二维表r中的数据分散到若干个二维表r1,r2,…,rn中(其中r1是r在属性组U1上的投影)。我们当然希望这样的分解不丢失信息,也就是说,希望能够通过对关系r1,r2…rn的自然连接运算重新得到关系r中的所有信息。

  事实上,将关系r投影为r1,r2,…,rn时并不会丢失信息,关键是对r1,r2,…,rn作自然连接可能会产生一些原来r中没有的元组,从而无法区别那些元组是r中原来有的,即数据库中应该存在的数据,在这个意义上丢失了信息。

  r中的元组S1C3D1和S4C1D1都不是原来r中的元组。就是说,我们无法知道原来r中到底有哪些元组,这是我们不希望的。

  定义1:设关系模式R(U,F)分解为关系模式R1(U1,F1),R2(U2,F2),…,Rn(Un,Fn),若对于R的任何一个可能的关系r,都有r=r1*r2…*rn,即r在R1,R2,…,Rn上的投影的自然连接等于r,则称关系模式R的这个分解是具有无损连接性的。

  在将一个关系模式分解为三个或者更多个关系模式的情况下,要判别分解是否具有无损连接性需要比较复杂的算法。然而若将一个关系模式分解为两个关系模式,则很容易判别分解是否具有无损连接性。

  由于U1∩U2=SNO,U1-U2=CLASSNO,显然U1 U2→U1-U2,所以分解2具有无损连接性。然而分解2也不是一个很好的分解方案,将前面例子的关系r投影到S21,S22的属性上,得到关系r21如表5-18和r22如表5-19:

  在这种分解中,假设学生S3从C2班转到C3班,于是我们需要在r21中将元组S3C2修改为S3C3,同时在r22中将元组S3D2修改为S3D1。如果这两个修改没有同时完成,数据库中就会存在不一致信息。这是因为分解得到的两个关系模式不是互相独立造成的。F中的函数依赖CLASSNO→DEPTNO既没有投影到关系模式R22中,而是跨在两个关系模式上。函数依赖是数据库中的完整性约束条件。在r中,若两个元组的X值相等,则Y值也必须相等。现在r的一个元组中的X值和Y值跨在两个不同的关系中,为维护数据库的一致性,在一个关系中修改X值时就需要相应的在另外一个关系中修改Y值,这当然是很麻烦而且是容易出错的,于是我们要求模式分解保持函数依赖这条等价标准。

  :设关系模式R(U,F)分解为关系模式R1(U1,F1),R2(U2,F2),…,银河999游戏官方下载Rn(Un,Fn),若F=(F1

  Fn) ,即F所逻辑蕴含的函数依赖一定也由分解得到的各个关系式中的函数依赖所逻辑蕴含,则称关系模式R的这个分解是保持函数依赖的。

  分解方案二不是保持函数依赖的,因为分解得到的关系模式中只有函数依赖SNO→CLASSNO,银河999游戏官方下载丢失了函数依赖CLASSNO→DEPTNO。不是一个好的分解。

  (1) 分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定保持函数依赖,例如分解方案二;保持函数依赖的分解不一定具有无损连接性。

  例如,有学号SNO,班级号CLASSNO,课程号COURSENO,学分CREDIT,构成关系模式:

  因此,关系模式的一个分解可能是保持函数依赖的,可能是具有无损连接性的,也可能是既具有无损连接性又保持函数依赖的。

  (3) 若要求分界保持函数依赖,那么模式分解可以达到3NF,但不一定能达到BCNF。

  (4) 若要求分解既具有无损连接性,又保持函数依赖,则模式分解可以达到3NF,但不一定能达到BCNF。

网友评论

我的2016年度评论盘点
还没有评论,快来抢沙发吧!