软考系统分析师·每日学习卡 | [日期:2025-08-16] | [今日主题:规范化理论-范式判断]

一、今日学了啥?

  • 数据库范式知识,包括1NF、2NF、3NF和BCNF的判断方法;范式用于解决数据冗余和各种异常问题,优化数据库设计。

二、重点/要记住的!

  • 非规范化的问题

    • 数据冗余:大量重复数据占用存储空间
    • 更新冗余:修改操作存在一致性问题(需要同时修改多处,容易出错)
    • 插入异常:无法插入某些合理的数据
    • 删除异常:删除数据时可能误删其他重要信息
  • 四种范式

    • 1NF:属性值都是不可分的原子值
    • 2NF:消除非主属性对候选键的部分依赖
    • 3NF:消除非主属性对候选值的传递依赖
    • BCNF:消除主属性对候选键的部分和传递依赖

三、今天的小收获/卡住的地方

  • 例题:

    有一个关系模式R(A1, A2, A3, A4, A5, A6),函数依赖集F如下:
    
    A1 → A2
    A1 → A3
    A3 → A4
    (A1, A5) → A6
    问题:
    
    1.求候选码
    2.判断该关系模式属于第几范式
    
  • 解题思路:

    1. 绘制函数依赖有向图

      graph TD A1[A1] –> A2[A2] A1 –> A3[A3] A3 –> A4[A4] A1 –> A6[A6] A5[A5] –> A6

    2. 确定候选码

      • 入度为0的节点:A1, A5
      • 单独测试A1:无法推导出A5和A6;单独测试A5:无法推导出A1, A2, A3, A4;组合测试(A1, A5):可以推导出所有属性
      • 确定候选码为(A1, A5)
    3. 范式判断

      • 存在非主属性对候选键的部分依赖:A1是候选码的一部分,但A1→A2, A1→A3
      • 不满足第二范式,该关系模式只满足第一范式
  • 注意:仔细审题,我这里一开始看到部分依赖就直接选了第二范式,但实际是存在非主属性对候选键的部分依赖,所以不满足第二范式,该关系模式只满足第一范式

四、明天学啥?

明天学习模式分解

像实干家一样思考问题,像思想家一样付诸行动。

愿你我共同进步!