1.关系模式SLC(sno, sdept, sloc, cno, grade)的码是:(c)

A、sno        B、cno        C、(sno, cno)        D、sdept

sno:单独用sno(学号)可能无法唯一标识一个元组,因为同一个学生可能选修多门课程(对应多个cno和grade)。

cno:单独用cno(课程号)也无法唯一标识一个元组,因为多个学生可能选修同一门课程。

(sno, cno):组合(sno, cno)可以唯一标识一个元组,因为一个学生选修一门课程的成绩是唯一的(即一个学生在一门课程中只有一个成绩)。

sdept:单独用sdept(系别)显然不能唯一标识元组,因为一个系有多个学生和多门课程。

因此,码是(sno, cno),因为它能唯一确定关系中的每一个元组。

2.关系模式SLC(sno, sdept, sloc, cno, grade)中,部分依赖指的是(B)

A,sno->dept        B,(sno,cno)->sdept        C,(sno,cno)->grade        D,sdept->sloc

部分依赖某个非主属性只依赖于主键的一部分,而不是整个主键

举例:

一个学生选课表

  • 主键(唯一标识一条记录)(学号, 课程号)(因为只有学号+课程号才能确定唯一成绩)

  • 其他信息所在院系宿舍楼成绩

问题

  • 所在院系 只由学号决定(和课程号无关)→ 这就是部分依赖

  •  宿舍楼只由学号决定(和课程号无关)→ 这也是部分依赖

  • 成绩 必须由 学号+课程号 共同决定 → 不是部分依赖

解析: 

        

选项A:sno -> sdept
  • 描述:学号决定院系。

  • 是否正确

    • 这是函数依赖,但不是部分依赖,因为它不涉及复合主键 (sno, cno)

    • 部分依赖必须体现“非主属性对主键的部分依赖”,而这里没有提到主键 (sno, cno)

  • 结论: 不是部分依赖的正确表达。

选项B:(sno,cno) -> sdept
  • 描述:主键 (sno,cno) 决定院系 sdept,但实际 sdept 仅由 sno 决定(与 cno 无关)。

  • 是否正确

    • 这正是部分依赖的定义!sdept 依赖于主键的一部分(仅 sno),而非整个主键。

    • 虽然写法是 (sno,cno)->sdept,但本质是 sno->sdept(隐藏的部分依赖)。

  • 结论: 正确,这是题目对部分依赖的表述。

选项C:(sno,cno) -> grade
  • 描述:主键 (sno,cno) 决定成绩 grade

  • 是否正确

    • grade 完全依赖于整个主键,属于完全函数依赖,不是部分依赖。

选项D:sdept -> sloc
  • 描述:院系决定宿舍位置。

  • 是否正确

    • 这是普通的函数依赖,与主键 (sno,cno) 无关,更不是部分依赖。

3、关于SLC(sno, sdept, sloc, cno, grade)模式中的传递依赖,说法正确的是:(B)

A、sdept传递依赖于sno  B、sloc传递依赖于sno  C、grade传递依赖于sno D、cno传递依赖于sno

分析SLC模式中的依赖关系:

  1. sno → sdept:学号(sno)可以唯一确定学生所在的系(sdept)。

  2. sdept → sloc:学生所在的系(sdept)可以唯一确定学生的宿舍位置(sloc)。

    • 因此,sloc 传递依赖于 sno,因为:

      • sno → sdept

      • sdept → sloc

      • 且 sdept 不决定 sno(学号不会由系决定)。

  3. {sno, cno} → grade:学号和课程号共同决定成绩(grade),这是完全函数依赖,不是传递依赖。

  4. cno 与其他属性的关系:题目中没有提供 cno 与其他属性之间的直接依赖关系,因此无法得出 cno 传递依赖于 sno 的结论。

选项分析:

  • A:sdept 直接依赖于 sno,不是传递依赖。错误。

  • B:sloc 传递依赖于 sno,正确。

  • C:grade 依赖于 {sno, cno},是完全函数依赖,不是传递依赖。错误。

  • D:题目中未提供 cno 与其他属性的依赖关系,无法得出 cno 传递依赖于 sno 的结论。错误。

4,每一个分量必须是不可分的数据项。满足这个条件的关系模式称为(A)

A、1NF        B、2NF        C、3NF        D、BCNF

题目解析:

题目描述的是“每一个分量必须是不可分的数据项”,这直接对应1NF的定义。更高范式(2NF、3NF、BCNF)是在1NF的基础上进一步约束依赖关系,而题目并未涉及依赖关系的问题。

排除法:

  • 如果选B(2NF)、C(3NF)或D(BCNF),题目描述的条件不足以支持这些范式的定义,因为它们需要额外的依赖关系约束。

  • 只有A(1NF)直接对应“分量不可分”的要求。

1. 第一范式(1NF)

定义

  • 所有属性都是原子的(不可再分),即每个字段存储的值不能再拆分。

  • 关系模式必须满足1NF才能称为“关系”。

例子

❌ 不满足1NF的表(存储复合数据)

学生ID 学生姓名 课程(可再分)
1001 张三 数学, 英语
1002 李四 物理

✅ 满足1NF的表(每个字段不可再分)

学生ID 学生姓名 课程
1001 张三 数学
1001 张三 英语
1002 李四 物理

关键点

  • 1NF只关心“字段是否可再分”,不关心依赖关系。


2. 第二范式(2NF)

定义

  • 在1NF的基础上,消除“非主属性对候选键的部分函数依赖”

  • 要求所有非主属性必须完全依赖于整个候选键(不能仅依赖部分)。

例子

❌ 不满足2NF的表(部分依赖)

学号 课程号 学生姓名 成绩 课程学分
1001 C001 张三 90 3
1001 C002 张三 85 2
  • 问题

    • 主键是 (学号, 课程号)

    • 学生姓名 仅依赖于 学号(部分依赖)。

    • 课程学分 仅依赖于 课程号(部分依赖)。

✅ 拆分为满足2NF的表

  1. 学生表(学号 → 学生姓名):

    学号 学生姓名
    1001 张三
  2. 课程表(课程号 → 课程学分):

    课程号 课程学分
    C001 3
    C002 2
  3. 选课表(学号+课程号 → 成绩):

    学号 课程号 成绩
    1001 C001 90
    1001 C002 85

关键点

  • 2NF解决的是“非主属性部分依赖候选键”的问题


3. 第三范式(3NF)

定义

  • 在2NF的基础上,消除“非主属性对候选键的传递函数依赖”

  • 即:非主属性不能依赖于其他非主属性

例子

❌ 不满足3NF的表(传递依赖)

学号 学生姓名 系名 系主任
1001 张三 计算机系 王老师
1002 李四 数学系 李老师
  • 问题

    • 学号 → 系名系名 → 系主任,因此 系主任 传递依赖于 学号

✅ 拆分为满足3NF的表

  1. 学生表(学号 → 学生姓名, 系名):

    学号 学生姓名 系名
    1001 张三 计算机系
    1002 李四 数学系
  2. 系表(系名 → 系主任):

    系名(PK) 系主任
    计算机系 王老师
    数学系 李老师

关键点

  • 3NF解决的是“非主属性传递依赖候选键”的问题


4. BCNF(Boyce-Codd范式)

定义

  • 在3NF的基础上,进一步消除“主属性对候选键的部分或传递依赖”

  • 所有决定因素都必须是候选键(比3NF更严格)。

例子

❌ 不满足BCNF的表(主属性依赖非候选键)

学号 课程 教师 教师职称
1001 数学 张老师 教授
1002 物理 李老师 副教授
  • 问题

    • 假设 教师 → 教师职称,但 教师 不是候选键(候选键是 (学号, 课程))。

    • 这意味着 教师职称 依赖于非候选键 教师,违反BCNF。

✅ 拆分为满足BCNF的表

  1. 选课表(学号+课程 → 教师):

    学号 课程 教师
    1001 数学 张老师
    1002 物理 李老师
  2. 教师表(教师 → 教师职称):

    教师 教师职称
    张老师 教授
    李老师 副教授

关键点

  • BCNF比3NF更严格,确保所有依赖都基于候选键


总结

范式 要求 解决的问题
1NF 所有字段不可再分 确保数据是“关系”
2NF 非主属性完全依赖候选键 消除部分依赖
3NF 非主属性不传递依赖候选键 消除传递依赖
BCNF 所有决定因素必须是候选键 比3NF更严格

记忆技巧

  1. 1NF:字段不可再分(原子性)。

  2. 2NF:非主属性必须完全依赖候选键(不能部分依赖)。

  3. 3NF:非主属性不能依赖其他非主属性(不能传递依赖)。

  4. BCNF:所有依赖必须基于候选键(比3NF更严格)。

 

5,考虑到实际情况,以下哪些是合理的数据依赖(A)

A、姓名依赖于学号   B、学号依赖于姓名   C、性别依赖于年龄    D、年龄依赖于性别

数据依赖的定义

  • 函数依赖
    如果属性集 X 能唯一决定属性集 Y,则称 Y 函数依赖于 X,记作 X→Y。

  • 合理的依赖
    在现实世界中,X→Y成立,意味着 X 的值能唯一确定 Y 的值。


逐项分析选项

A、姓名依赖于学号(学号 → 姓名)
  • 现实逻辑

    • 在数据库中,学号通常是唯一的,每个学号对应一个学生。

    • 一个学号只能对应一个姓名(一个人不会有两个不同的姓名)。

  • 结论
    ✅ 合理,学号可以唯一确定姓名。


B、学号依赖于姓名(姓名 → 学号)
  • 现实逻辑

    • 姓名可能有重复(多个学生可能同名,如“张三”)。

    • 一个姓名可能对应多个学号(无法唯一确定学号)。

  • 结论
    ❌ 不合理,姓名不能唯一决定学号。


C、性别依赖于年龄(年龄 → 性别)
  • 现实逻辑

    • 年龄和性别之间没有必然联系

    • 同一个年龄的人可能有男有女(如20岁的人既有男性也有女性)。

  • 结论
    ❌ 不合理,年龄不能决定性别。


D、年龄依赖于性别(性别 → 年龄)
  • 现实逻辑

    • 性别和年龄之间没有必然联系

    • 同一个性别的人可能有不同年龄(如男性可以是10岁、20岁、30岁等)。

  • 结论
    ❌ 不合理,性别不能决定年龄。

6、下面哪些依赖,属于平凡函数依赖(D)

A、姓名依赖于学号

B、性别依赖于学号

C、成绩依赖于(学号,课程号)

D、学号依赖于(学号,课程号)

平凡函数依赖的定义

在关系模式 R(U) 中,如果 X→Y,并且 Y⊆X(即 Y 是 X 的子集),则称 X→Y 为平凡函数依赖
换句话说,如果 YY 已经包含在 XX 中,那么 X→YX→Y 就是平凡的

例子
  • {A,B}→{A}({A}⊆{A,B})→ 平凡依赖

  • {A,B}→{C}({C} 不在{A,B} 中)→ 非平凡依赖


逐项分析选项

A、姓名依赖于学号(学号 → 姓名)
  • 分析

    • X={学号}

    • Y={姓名}

    • {姓名} 不是 {学号} 的子集。

  • 结论
    ❌ 非平凡依赖(因为姓名不在学号中)。


B、性别依赖于学号(学号 → 性别)
  • 分析

    • X={学号}

    • Y={性别}

    • {性别} 不是 {学号} 的子集。

  • 结论
    ❌ 非平凡依赖(因为性别不在学号中)。


C、成绩依赖于(学号,课程号)({学号, 课程号} → 成绩)
  • 分析

    • X={学号,课程号}

    • Y={成绩}

    • {成绩} 不是{学号,课程号} 的子集。

  • 结论
    ❌ 非平凡依赖(因为成绩不在 {学号, 课程号} 中)。


D、学号依赖于(学号,课程号)({学号, 课程号} → 学号)
  • 分析

    • X={学号,课程号}

    • Y={学号}

    • {学号}⊆{学号,课程号}(因为学号是 XX 的子集)。

  • 结论
    ✅ 平凡依赖(因为学号已经包含在 {学号, 课程号} 中)。


总结

  • 平凡依赖
    D、学号依赖于(学号,课程号)(因为学号是 {学号, 课程号} 的子集)。

  • 非平凡依赖
    A、B、C(因为右侧属性不在左侧属性集中)。

最终答案

D、学号依赖于(学号,课程号) 是平凡函数依赖。

关键概念回顾

  1. 码(Key)

    • 能唯一标识一条记录的属性(或属性组)。

    • 可以是超码(Superkey,能唯一标识但可能包含冗余属性)或候选码(最小的超码)。

  2. 部分依赖

    • 在 X → Y 中,如果 X 是复合属性(如 {A, B}),而 Y 仅依赖于 X 的一部分(如仅 A),则称 Y 部分依赖于 X

    • 2NF 要求消除非主属性对码的部分依赖

  3. 主属性和非主属性

    • 主属性:包含在任何一个候选码中的属性。

    • 非主属性:不包含在任何候选码中的属性。

步骤 1:确定该关系模式的码

观察数据:

  • 仅 Sno(学号)无法唯一标识一条记录,因为同一个学生可能选修多门课程(但表中 Sno 无重复,可能是题目数据限制)。

  • 仅 Cno(课程号)也无法唯一标识,因为多个学生可能选修同一门课程。

  • {Sno, Cno} 组合可以唯一确定一条记录(即一个学生的某门课成绩),因此:

    • {Sno, Cno} 是候选码(最小的超码)。

    • 题目中 Sno 单独不能作为码(除非题目数据表明 Sno 唯一,但现实逻辑中 Sno + Cno 更合理)。

结论

  • A(码是 Sno)❌ 错误,因为 Sno 不能单独唯一标识。

  • B(没有码)❌ 错误,{Sno, Cno} 是码。


步骤 2:检查是否存在部分依赖

  • {Sno, Cno}

  • 非主属性SdeptMnameGrade

分析依赖关系:

  1. Grade

    • 由 {Sno, Cno} 共同决定(一个学生的某门课成绩),属于完全依赖,无部分依赖。

  2. Sdept 和 Mname

    • 从数据看,Sdept 和 Mname 仅由 Sno 决定(同一个学号对应同一个系和系主任)。

    • 即 Sno → Sdept 和 Sno → Mname

    • 但码是 {Sno, Cno},因此 Sdept 和 Mname 仅依赖于码的一部分(Sno),属于部分依赖

结论

  • C(存在非主属性对码的部分依赖)✅ 正确。

  • D(不存在部分依赖)❌ 错误。


步骤 3:范式分析

  • 1NF:满足(所有属性原子)。

  • 2NF:不满足(存在非主属性 SdeptMname 对码 {Sno, Cno} 的部分依赖)。

  • 3NF/BCNF:未达到。


最终答案

C、该模式存在非主属性对码的部分依赖 是正确的

 

 

 

关键概念回顾

  1. 码(Key)

    • 能唯一标识一条记录的属性(或属性组)。

    • 在本题中,{Sno, Cno} 是候选码(因为需要学号和课程号共同确定成绩)。

  2. 部分依赖

    • 非主属性依赖于码的一部分(如仅依赖于 Sno 或仅依赖于 Cno)。

  3. 传递依赖

    • 如果 A → B 且 B → C,则 A → C 是传递依赖(前提是 B 不决定 A)。

  4. 2NF

    • 在1NF的基础上,消除非主属性对码的部分依赖。

  5. 3NF

    • 在2NF的基础上,消除非主属性对码的传递依赖。

步骤 1:确定码和非主属性

  • 候选码{Sno, Cno}(因为需要学号和课程号共同确定成绩)。

  • 非主属性SdeptMnameGrade


步骤 2:检查部分依赖(判断是否满足2NF)

  • Grade

    • 完全依赖于 {Sno, Cno}(一个学生的某门课成绩),无部分依赖。

  • Sdept 和 Mname

    • 从数据看,Sno → Sdept 和 Sno → Mname(同一个学号对应同一个系和系主任)。

    • 但码是 {Sno, Cno},因此 Sdept 和 Mname 仅依赖于码的一部分(Sno),属于部分依赖

结论

  • 存在部分依赖 → 不满足2NF

  • A(该模式是2NF)❌ 错误。


步骤 3:检查传递依赖

  • 传递依赖的定义是:A → B 且 B → C,则 A → C 是传递依赖。

  • 观察依赖关系:

    1. Sno → Sdept(一个学号对应一个系)。

    2. Sdept → Mname(一个系对应一个系主任)。

    3. 因此 Sno → Mname 是传递依赖(因为 Sdept 不决定 Sno)。

结论

  • 存在传递依赖(Sno → Mname)。

  • B(存在传递依赖)✅ 正确。

  • C(不存在传递依赖)❌ 错误。


步骤 4:判断模式结构是否合理

  • 该模式存在部分依赖和传递依赖,导致数据冗余和更新异常(如系主任姓名重复存储)。

  • 因此结构不合理,需拆分为多个表(如学生表、系表、选课表)。

  • D(该模式结构合理)❌ 错误。


范式分析总结

  • 1NF:满足(所有属性原子)。

  • 2NF:不满足(存在部分依赖)。

  • 3NF:不满足(存在传递依赖)。


最终答案

B、该模式中,存在传递依赖 是正确的

 

关系模式的组成

关系模式通常表示为 R(U,D,DOM,F),其中:

  1. U:属性的集合(即表的字段名,如学号、姓名等)。

  2. D:属性的域(取值范围,如学号的域是字符串集合)。

  3. DOM:属性到域的映射(如"学号"映射到字符串域)。

  4. F属性间的数据依赖(如函数依赖 学号→姓名学号→姓名)。

选项分析

  • A. U:表示属性集合,错误。

  • B. D:表示属性的域(取值范围),错误。

  • C. DOM:表示属性与域的映射关系,错误。

  • D. F:表示属性间的数据依赖(如函数依赖、多值依赖等),正确。

为什么选 D?

  • 数据依赖(如函数依赖 X→Y)是关系数据库设计的核心概念,用于描述属性间的约束关系。

  • 在形式化定义中,F 专门用于表示这些依赖规则。

常见混淆点

  • 可能误选 D,因为字母"D"容易联想到"Dependency"(依赖),但实际 D 表示"Domain"(域)。

  • F 是"Functional Dependency"的缩写,代表数据依赖。

10、以下范式规范化程度最高的是(D)

A、2NF        B、3NF        C、BCNF        D、4NF

 

范式层级关系

数据库范式从低到高依次为:

  1. 1NF(第一范式):确保字段原子性(不可再分)。

  2. 2NF(第二范式):在1NF基础上,消除非主属性对码的部分依赖

  3. 3NF(第三范式):在2NF基础上,消除非主属性对码的传递依赖

  4. BCNF(Boyce-Codd范式):在3NF基础上,消除主属性对码的部分或传递依赖(更严格的3NF)。

  5. 4NF(第四范式):在BCNF基础上,消除多值依赖

范式越高,规范化程度越高,冗余越少,但查询可能越复杂


选项分析

  • A. 2NF:仅解决部分依赖问题,低于3NF、BCNF和4NF。

  • B. 3NF:解决部分依赖和传递依赖,但低于BCNF和4NF。

  • C. BCNF:比3NF更严格,但仍低于4NF。

  • D. 4NF:目前选项中最高级的范式,解决多值依赖问题。


为什么是4NF?

  • 4NF 在BCNF的基础上进一步消除了多值依赖(即一个属性决定一组值,而非单个值的情况)。

  • 例如,如果一个关系模式中存在 学号 →→ 课程 和 学号 →→ 爱好,则需要4NF来拆分表。

  • 4NF的规范化程度高于BCNF、3NF和2NF


常见误区

  1. 误选BCNF
    BCNF已经很严格,但4NF针对的是多值依赖(BCNF不解决此问题)。

  2. 忽略多值依赖
    多值依赖在实际数据库中较少见,但理论上是比函数依赖更高级的约束。

 

11、关系数据库规范化是解决关系数据库中()问题而引人的。(A)

A、插入、删除和数据冗余

B、提高查询速度

C、减少数据操作的复杂性

D、保证数据的安全性和完整性

关系数据库规范化的核心目标

数据库规范化(Normalization)的主要目的是减少数据冗余,并由此解决因冗余导致的数据操作异常,包括:

  1. 插入异常

    • 例如,无法单独插入一个系的信息,除非有学生属于该系。

  2. 删除异常

    • 例如,删除某个学生的选课记录时,可能意外删除该系的唯一信息。

  3. 更新异常

    • 例如,修改系主任姓名时,需要更新多条记录,否则数据不一致。

这些问题均源于数据冗余,而规范化通过分解表结构来消除冗余。


选项分析

  • A. 插入、删除和数据冗余
    ✅ 正确。规范化直接解决因冗余导致的插入、删除异常。

  • B. 提高查询速度
    ❌ 错误。规范化可能增加查询复杂度(需要多表连接),有时甚至需要反规范化(Denormalization)来提高查询性能。

  • C. 减少数据操作的复杂性
    ❌ 错误。规范化可能增加操作复杂性(如多表关联),但这是为了数据一致性付出的代价。

  • D. 保证数据的安全性和完整性
    ❌ 错误。安全性和完整性通常通过权限控制、约束(如主键、外键)实现,而非规范化。

12、关系模式中,满足2NF的模式(B)。

A、可能是1NF        B、必是1NF        C、必是3NF        D、必是BCNF

范式层级关系

数据库范式从低到高依次为:

  1. 1NF(第一范式):所有属性都是原子的(不可再分)。

  2. 2NF(第二范式):在1NF基础上,消除非主属性对码的部分依赖

  3. 3NF(第三范式):在2NF基础上,消除非主属性对码的传递依赖

  4. BCNF(Boyce-Codd范式):在3NF基础上,消除主属性对码的部分或传递依赖

范式之间的关系

  • 满足更高范式的模式必然满足所有更低范式(如3NF必然满足2NF和1NF)。

  • 但满足低范式的模式不一定满足更高范式(如2NF不一定满足3NF)。


选项分析

  • A. 可能是1NF
    ❌ 表述不严谨。2NF 必然满足1NF,而非“可能”。

  • B. 必是1NF
    ✅ 正确。2NF的定义建立在1NF的基础上,因此满足2NF必然满足1NF。

  • C. 必是3NF
    ❌ 错误。2NF可能仍存在传递依赖(即不满足3NF)。

  • D. 必是BCNF
    ❌ 错误。BCNF比3NF更严格,2NF显然不一定满足。


关键结论

  • 2NF ⇒ 1NF(必然成立)。

  • 2NF ⇏ 3NF(不一定成立)。

反例说明
如果一个关系模式满足2NF但存在非主属性对码的传递依赖,则它不满足3NF。例如:

  • 表 Student(Sno, Sdept, Mname),其中:

    • 码:Sno(假设学号唯一)。

    • 依赖:Sno → SdeptSdept → Mname(传递依赖)。

    • 该表满足2NF(无部分依赖),但不满足3NF(存在传递依赖)。


总结

满足2NF的模式必然满足1NF,但无法保证更高范式(如3NF或BCNF)。

 

13、任何满足2NF但不满足3NF的关系模式都存在(D)。

A、主属性对候选码的部分依赖

B、非主属性对候选码的部分依赖

C、主属性对候选码的传递依赖

D、非主属性对候选码的传递依赖

核心概念回顾

  1. 2NF(第二范式)

    • 在1NF的基础上,消除非主属性对候选码的部分依赖

    • 即所有非主属性必须完全依赖于候选码(不能仅依赖候选码的一部分)。

  2. 3NF(第三范式)

    • 在2NF的基础上,消除非主属性对候选码的传递依赖

    • 即非主属性不能依赖于其他非主属性(如 A → B → C,且 B 不决定 A)。

  3. 主属性 vs 非主属性

    • 主属性:包含在任何一个候选码中的属性。

    • 非主属性:不包含在任何候选码中的属性。


题目关键点

  • 满足2NF但不满足3NF
    说明已消除部分依赖(满足2NF),但仍存在传递依赖(不满足3NF)。

  • 必然存在的问题
    根据定义,只能是非主属性对候选码的传递依赖(因为2NF已解决部分依赖问题)。


选项分析

  • A. 主属性对候选码的部分依赖
    ❌ 错误。2NF已消除非主属性的部分依赖,但主属性的部分依赖由BCNF解决(与3NF无关)。

  • B. 非主属性对候选码的部分依赖
    ❌ 错误。2NF已解决此问题(否则不满足2NF)。

  • C. 主属性对候选码的传递依赖
    ❌ 错误。主属性的传递依赖由BCNF解决(与3NF无关)。

  • D. 非主属性对候选码的传递依赖
    ✅ 正确。3NF需要消除非主属性的传递依赖,因此这是2NF满足但3NF不满足的唯一原因。


反例验证

假设关系模式 R(Sno, Sdept, Mname),其中:

  • 候选码:Sno(学号唯一)。

  • 函数依赖:

    • Sno → Sdept(学号决定系别)。

    • Sdept → Mname(系别决定系主任)。

  • 分析:

    • 2NF:满足(无部分依赖,因为码是单属性 Sno)。

    • 3NF:不满足(存在传递依赖 Sno → Sdept → Mname)。

  • 问题:非主属性 Mname 对候选码 Sno 的传递依赖


总结

任何满足2NF但不满足3NF的关系模式,必然存在非主属性对候选码的传递依赖

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐