软考系统分析师·每日学习卡 | [日期:2025-08-14] | [今日主题:关系代数]

一、今日学了啥?

  • 关系代数核心运算:并(∪)、交(∩)、差(-)要求两关系结构一致;笛卡尔积(×)无此限制,结果为行数相乘、列数相加;自然连接(⨝)隐含相同属性值相等且合并重复列。
  • 操作优先级与效率:先通过选择(σ)缩小数据集再连接,自然连接效率高于笛卡尔积;符号优先级:括号 > 投影/选择 > 笛卡尔积/连接 > 并/交/差。
  • 易错点:投影可能丢失列导致后续条件误判;自然连接隐含条件易与笛卡尔积混淆;差操作方向敏感(A-B ≠ B-A)。

二、重点/要记住的!

  • 关系代数运算

    • 并(∪):两关系结构相同,合并后去重。
    • 交(∩):两关系中完全相同的元组。
    • 差(-):从一个关系中移除与另一个关系相同的元组(方向敏感)。
    • 笛卡尔积(×):两关系所有行组合,列数相加,无需结构一致。
    • 投影(π):按列选择(列操作),保留指定属性。
    • 选择(σ):按行筛选(行操作),保留满足条件的元组。
    • 自然连接(⨝):合并两关系,保留相同属性名且值相等的元组,合并重复列。
  • 符号与优先级

    • 并、交、差:要求两关系属性一致。
    • 笛卡尔积:无结构限制,结果列数为两者之和。
    • 自然连接:隐含条件(相同属性值相等),合并重复列。
    • 运算符优先级:括号 > 投影/选择 > 笛卡尔积/自然连接 > 并/交/差。
  • 效率优化原则

    • 先筛选后连接:先通过选择(σ)缩小数据集,再进行连接或笛卡尔积。
    • 自然连接优于笛卡尔积:自然连接减少行数和列数,效率更高。
  • 示例对比

    操作 结构一致要求 结果行数 结果列数 典型错误点
    并(∪) 合并后去重 保持原列数 忽略去重
    交(∩) 共有元组 保持原列数 混淆为差集
    差(-) 差集元组 保持原列数 忽略方向性(A-B ≠ B-A)
    笛卡尔积(×) 行数相乘 列数相加 误认为需要结构一致
    自然连接(⨝) 满足属性值相等 合并重复列 忽略隐含条件和列合并

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

暂不涉及

四、明天学啥?

明天学习函数依赖-有向图

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

愿你我共同进步!