第一范式是关系型数据库设计的最基本要求,核心规则是**关系模式的所有属性都是不可再分的原子数据项**

张开发
2026/4/15 1:19:11 15 分钟阅读

分享文章

第一范式是关系型数据库设计的最基本要求,核心规则是**关系模式的所有属性都是不可再分的原子数据项**
第一范式是关系型数据库设计的最基本要求核心规则是关系模式的所有属性都是不可再分的原子数据项即表中每一列的取值都是单一值不存在组合值或多值情况。1NF的典型问题以教材中的FIRST关系表为例供应商-零件供应关系该表的结构如下Sno供应商号Sname供应商名Status状态City所在城市Pno零件号Qty数量S1精益20天津P1200S1精益20天津P2300S1精益20天津P3480S2盛锡10北京P2168S2盛锡10北京P3500S3东方红30北京P1300S3东方红30北京P2280S4泰达40上海P2460该表满足1NF的要求所有字段都是原子值但存在以下4个核心问题冗余度大同一供应商的基本信息Sname、Status、City会随着供应零件种类的增加而重复存储例如供应商S1的信息重复出现3次造成存储空间浪费。修改操作不一致当供应商信息需要更新时必须同时修改所有相关记录否则会出现数据不一致的情况。例如供应商S1从天津搬迁到上海若只修改了第一条记录的City字段其余两条未修改则会导致同一供应商出现两个所在城市的矛盾数据。插入异常该表的主键是(Sno, Pno)根据实体完整性规则主键不能为空。若新的供应商暂时没有供应任何零件Pno为空则无法将该供应商的基本信息插入到表中导致合理的数据无法录入。删除异常若供应商S4的P2零件全部销售完需要删除对应记录时会将S4的基本信息一并删除导致客观存在的供应商信息丢失。2. 第二范式2NF定义第二范式建立在1NF的基础上核心规则是消除非主属性对码的部分函数依赖确保每个非主属性都完全依赖于整个主键。函数依赖说明在FIRST关系中主键是(Sno, Pno)但Status和City仅由Sno就能唯一确定即Sno → Status、Sno → City这种非主属性仅依赖于主键一部分的情况称为部分函数依赖是2NF需要消除的核心问题。2NF的实现方法通过模式分解将存在部分依赖的关系拆分为多个独立关系消除部分函数依赖。以FIRST表为例可分解为以下两个关系供应商基本信息表FIRST1Sno供应商号Sname供应商名Status状态City所在城市S1精益20天津S2盛锡10北京S3东方红30北京S4泰达40上海该表的主键为Sno所有非主属性都完全依赖于主键满足2NF要求。零件供应关系表FIRST2Sno供应商号Pno零件号Qty数量S1P1200S1P2300S1P3480S2P2168S2P3500S3P1300S3P2280S4P2460该表的主键为(Sno, Pno)非主属性Qty完全依赖于整个主键满足2NF要求。2NF的优势分解为2NF后原1NF存在的四大问题得到有效解决数据冗余显著降低供应商基本信息仅存储一次无需随零件供应记录重复存储。修改操作一致性提升更新供应商信息时仅需修改供应商表中的一条记录。插入异常消除新增供应商即使暂时没有供应零件也可直接在供应商表中录入信息。删除异常消除删除某一零件供应记录时不会影响供应商基本信息的存在。二、配套试题及答案一单项选择题每题2分共20分第一范式1NF的核心要求是 A. 每个表有唯一主键B. 每个属性都是不可再分的原子值C. 消除非主属性对主键的部分依赖D. 消除非主属性对主键的传递依赖第二范式2NF是在1NF的基础上消除了 A. 非主属性对主键的部分函数依赖B. 非主属性对主键的传递函数依赖C. 主属性对主键的部分函数依赖D. 多值依赖若关系模式R的主键是由多个属性组成的复合主键且存在非主属性仅依赖于主键中的某一个属性则该模式至少属于 A. 1NF B. 2NF C. 3NF D. BCNF下列哪种情况不属于1NF存在的问题 A. 数据冗余大 B. 修改异常 C. 插入异常 D. 外键约束失效若关系模式R满足2NF则它一定不满足以下哪种情况 A. 非主属性完全依赖于主键B. 存在非主属性对主键的部分依赖C. 属性都是原子值D. 存在多个候选键在供应商-零件关系中若主键为(供应商号, 零件号)下列哪个属性属于部分依赖于主键 A. 零件数量 B. 供应商所在城市 C. 零件价格 D. 供应日期消除部分函数依赖是哪个范式的主要目标 A. 1NF B. 2NF C. 3NF D. BCNF下列关于2NF的说法正确的是 A. 2NF的关系模式一定不存在数据冗余B. 2NF的关系模式仍然可能存在传递依赖C. 只要主键是单属性该模式一定满足2NFD. 2NF消除了所有操作异常若关系模式R的主键是单属性且满足1NF则R A. 可能不满足2NF B. 一定满足2NFC. 一定满足3NF D. 以上都不对关系模式规范化过程中从1NF到2NF主要解决的问题是 A. 提高查询速度 B. 消除非主属性对主键的部分依赖C. 增加数据的安全性 D. 简化表结构二多项选择题每题3分共15分下列属于1NF存在的问题有 A. 数据冗余度大 B. 修改操作不一致C. 插入异常 D. 删除异常关于第一范式的要求下列说法正确的有 A. 每个属性的值都是原子的B. 不允许出现组合属性C. 不允许出现多值属性D. 每个表必须有主键若关系模式满足2NF则它一定满足 A. 1NF B. 所有非主属性完全依赖于主键C. 没有非主属性对主键的部分依赖 D. 3NF下列哪些操作会导致1NF关系出现修改异常 A. 更新供应商的所在城市B. 修改某一零件的供应数量C. 更改供应商的名称D. 删除某一条零件供应记录将1NF关系分解为2NF时需要遵循的原则有 A. 分解后的关系要保持原有的函数依赖B. 分解后的关系要具有无损连接性C. 将部分依赖的属性单独组成新的关系D. 必须保留所有原有的属性三判断题每题2分共10分第一范式要求关系中的每个属性都不可再分。 满足2NF的关系模式一定满足1NF。 如果关系模式的主键是单属性则它一定满足2NF。 2NF可以消除所有的数据冗余和操作异常。 存在非主属性对主键的部分依赖的关系模式至少属于1NF。 四简答题每题5分共20分简述第一范式的定义及其存在的主要问题。简述第二范式的定义以及如何将1NF关系转换为2NF关系。举例说明什么是部分函数依赖以及它会导致哪些问题。以教材中的FIRST关系为例说明分解为2NF后如何解决了原有的插入异常问题。五综合应用题共35分现有学生选课关系模式选课(学号, 姓名, 所在系, 系主任, 课程号, 课程名, 成绩)其中一个学生属于一个系一个系有多名学生一个系只有一名系主任一个学生可以选多门课程一门课程可以被多名学生选每个学生选每门课程有一个成绩请回答以下问题写出该关系模式的主键和存在的函数依赖。10分判断该关系模式属于第几范式并说明理由。10分将该关系模式分解为符合2NF要求的关系模式并说明每个关系的主键。15分三、试题参考答案一单项选择题B 2. A 3. A 4. D 5. B 6. B 7. B 8. B 9. B 10. B二多项选择题ABCD 2. ABC 3. ABC 4. AC 5. ABCD三判断题√ 2. √ 3. √ 4. × 5. √四简答题参考答案第一范式要求关系模式的所有属性都是不可再分的原子数据项即每个字段的值都是单一值不存在组合值或多值。1NF存在的主要问题包括数据冗余度大、修改操作不一致、插入异常、删除异常。参考答案第二范式在1NF的基础上消除了非主属性对码的部分函数依赖确保每个非主属性都完全依赖于整个主键。转换方法是对1NF关系进行模式分解将存在部分依赖的非主属性与对应的主键部分单独组成新的关系原关系中保留完全依赖于整个主键的属性。参考答案部分函数依赖是指在复合主键的关系中某个非主属性仅依赖于主键的一部分而非整个主键。例如在供应商-零件关系中主键是(供应商号, 零件号)而供应商的所在城市仅由供应商号就能确定这就是部分函数依赖。部分函数依赖会导致数据冗余、修改异常、插入异常和删除异常等问题。参考答案原FIRST关系的主键是(Sno, Pno)当新供应商没有供应零件时Pno为空无法插入记录。分解为2NF后供应商基本信息单独成为一个表主键仅为Sno新供应商即使没有零件供应记录也可以直接在供应商表中插入信息解决了插入异常问题。五综合应用题参考答案主键(学号, 课程号)函数依赖学号 → 姓名, 所在系, 系主任所在系 → 系主任课程号 → 课程名(学号, 课程号) → 成绩参考答案该关系模式属于第一范式1NF。理由虽然所有属性都是原子值满足1NF要求但存在非主属性对主键的部分依赖姓名、所在系、系主任仅依赖于学号课程名仅依赖于课程号因此不满足2NF的要求。参考答案分解为以下三个符合2NF的关系模式学生表(学号, 姓名, 所在系, 系主任)主键学号课程表(课程号, 课程名)主键课程号选课表(学号, 课程号, 成绩)主键(学号, 课程号)每个关系中的非主属性都完全依赖于各自的主键消除了部分函数依赖满足2NF要求。

更多文章