数据库面试题——范式

本文介绍了数据库设计中的范式概念,包括第一范式、第二范式和第三范式的定义及实例。通过实例展示了如何从非规范化表格转换为满足各范式的结构,以减少冗余和提高数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、范数的定义

在设计数据库时,为了使其冗余较小、结构合理,设计数据库时必须遵循一定的规则。在关系型数据库中,这种规则被称为范数。范数是符合某一设计规则的总结。

2、实际开发中的常见范式

(1)第一范式

定义:

数据库表中的所有字段值都是不可分割的原子值。

非第一范式举例:

原因:高三年1班含有年级和班级信息,可继续拆分,为非原子信息。

改:

(2)第二范式:

定义:

数据库表中的每一列都与主键完全相关,而不能只与主键的部分相关

例子:

假定选课关系表为SelectCourse(学号, 姓名, 年龄, 课程名称, 成绩, 学分),主键为属性组(学号, 课程名称),因为存在如下决定关系

(学号, 课程名称) → (姓名, 年龄, 成绩, 学分)

这个数据库表不满足第二范式,因为存在如下决定关系:

(课程名称) → (学分) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值