【架构之路】数据库基础(4)- 无损连接性、无损分解

上一篇: 【架构之路】数据库基础(3)- 设计的等级规范化

  • 无损连接:根据定义,简单说是拆分后保持原属性、原依赖关系
  • 不谈理论,白话来讲,把一件物体分解为多件物体后,能否再拼装回去?拼装后和原物体是否一样,具备原来的性质。若是,则具备无损连接性。

    • 打个比方,学校有学生地址表,为{学号,学生姓名,学生地址},因其具备传递性,不符合第三范式(学号->姓名,姓名->地址),所以需要拆解

      • 拆解成{学号,姓名},和{姓名,地址}。若单独看每个表,谁也无法想到这是学校的地址信息表。
      • 拆解成{学号,姓名},和{学号,地址}。此时能否想到这两个表具有一定关联性,是业务相关表。
    • 按这样理解,对无损连接的解题方式也就清晰了。

      • 解题方式规定,对于1生2的形式,取这两个分解后表的交集。对于上面的情况,{学号,姓名},和{姓名,地址}的交集是{姓名},明显其不是原始表的候选键。而{学号,姓名},和{学号,地址}的交集为{学号},为原始表的候选键。所以此分解方式为无损分解。
      • 对于1生3及更多的情况,书中规定要用表方式,a1, a2, bij之类的极其麻烦。其实本质上是相同的。都是看这几个分解后的零件(表),有没有相互连接上的榫卯接口。

例题:
【架构之路】数据库基础(4)- 无损连接性、无损分解_第1张图片

稍难一点的:
【架构之路】数据库基础(4)- 无损连接性、无损分解_第2张图片
此题的官方解题思路:
【架构之路】数据库基础(4)- 无损连接性、无损分解_第3张图片
【架构之路】数据库基础(4)- 无损连接性、无损分解_第4张图片

你可能感兴趣的:(架构数据库)