闭卷说明“关系、元组、属性与域”的对象、成立条件和一个失败反例。
数据库系统 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷说明“候选键、主键与外键”的对象、成立条件和一个失败反例。
闭卷说明“选择与投影”的对象、成立条件和一个失败反例。
闭卷说明“连接不是把两张表随便拼起来”的对象、成立条件和一个失败反例。
闭卷说明“集合运算与除法”的对象、成立条件和一个失败反例。
闭卷说明“重命名与复杂查询树”的对象、成立条件和一个失败反例。
闭卷说明“从自然语言翻译成关系代数”的对象、成立条件和一个失败反例。
应覆盖:候选键要求唯一且最小,主键只是被选中的候选键;外键表达两个关系之间的引用承诺;规则:K 是候选键当且仅当 K→全部属性,且 K 的任一真子集都不具有该性质;并能围绕“用户既有 user_id 又有唯一 email,二者都可能是候选键;订单用 user_id 外键引用用户,不能用姓名替代稳定身份”给出可执行或可计算的反查。
应覆盖:关系是同构元组的有限集合,属性名决定语义位置,域限制可能取值;理论关系没有重复元组和固定行序;规则:n 元关系 R 是域 D1×…×Dn 的有限子集;并能围绕“R(student_id, course_id, score) 中一行是元组,score 的域可限制为 0 到 100;交换展示顺序不改变关系”给出可执行或可计算的反查。
应覆盖:连接由笛卡尔积加匹配条件构成;等值连接、自然连接和外连接对列与缺失行的处理不同;规则:R ⋈_θ S = σ_θ(R×S),连接输出规模上界为 |R|·|S|;并能围绕“学生与选课按 student_id 连接得到姓名和成绩;漏写条件会产生人数乘选课数的组合爆炸”给出可执行或可计算的反查。
应覆盖:选择按谓词保留行,投影按属性保留列并在关系语义下去重;先做选择常减少后续处理量;规则:σ_p(R) 过滤元组,π_A(R) 过滤属性;若谓词只依赖 R,可把 σ 下推到连接之前;并能围绕“从选课关系中取 score≥90 的记录,再投影 course_id,可得到有高分学生的课程集合”给出可执行或可计算的反查。
应覆盖:重命名解决自连接和属性歧义,复杂表达式应画成查询树逐层核对输入输出模式;规则:查询树每个节点都应标注输出属性和估算基数,避免投影过早丢失连接列;并能围绕“员工表自连接比较员工与经理,必须把两份 employee 分别重命名为 e 与 m,再按 e.manager_id=m.id 连接”给出可执行或可计算的反查。
应覆盖:并、交、差要求并相容;关系除法表达‘对所有’条件,是双重 NOT EXISTS 的代数原型;规则:R(X,Y) ÷ S(Y) 返回满足 ∀y∈S, (x,y)∈R 的全部 x;并能围绕“找修完培养方案中全部必修课的学生:用 enrollment(student,course) 除以 required(course)”给出可执行或可计算的反查。
应覆盖:翻译应先锁定最终输出,再找证据关系和量词,最后选择、连接、聚合或差;不能见名词就机械连表;规则:否定存在常写成集合差:All − π_key(σ_bad(Evidence));并能围绕“‘找从未挂科的学生’可先得到挂科学生集合,再用全部学生差去该集合,而不是筛 score≥60 后直接投影”给出可执行或可计算的反查。