欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 【无标题】

【无标题】

2024/10/25 15:20:00 来源:https://blog.csdn.net/w605283073/article/details/141176113  浏览:    关键词:【无标题】

一、概念

通俗示例

假设你在管理一个小型图书馆的书籍信息,有一本书的记录表格包含书名、作者、出版社、出版年份和分类。你希望这个表格能够尽量简洁,同时避免重复信息,方便查询。

通俗解释

在这里插入图片描述
1NF(第一范式)

  • 要求:数据表中的每一列都必须是原子值(即每一列的数据都是不可再分的单一值),不能包含列表、数组等复杂数据。

在这里插入图片描述

  • 举例:如果一本书有多个作者,在第一范式中,你不能把所有作者放在一个字段里(例如“作者”字段中填“张三, 李四”)。相反,应该为每位作者单独开设一行或创建一个独立的作者表。

2NF(第二范式)

  • 要求:在满足第一范式的基础上,表中的非主键字段必须完全依赖于主键,而不能部分依赖。
    在这里插入图片描述

  • 举例:如果你以“书名”和“作者”作为联合主键,但“出版社”只依赖于“书名”而不依赖于“作者”,这就违反了第二范式。为了解决这个问题,可以将“出版社”信息单独放在一个表中,避免部分依赖。

3NF(第三范式)

  • 要求:在满足第二范式的基础上,非主键字段之间不能存在传递依赖(即非主键字段不能依赖于另一个非主键字段)。

在这里插入图片描述

  • 举例:假设“出版社”字段还包含了“出版地点”这个信息。如果“出版地点”完全由“出版社”决定,那么“出版地点”就不应该放在这个表中,而应该移到“出版社”表中。这样可以避免“出版地点”依赖于“出版社”这个非主键字段。

BCNF(巴斯-科德范式)

  • 要求:在满足第三范式的基础上,表中的每个决定因素(即能够决定其他字段的字段)都必须是超键(即唯一确定一条记录的字段集合)。
  • 举例:假设一个表的联合主键是“图书馆分馆名”和“书名”,但“图书馆分馆名”也能决定“分馆地址”。在BCNF中,这样的表是不允许的,因为“图书馆分馆名”不是整个表的超键。要解决这个问题,可以将“分馆地址”移到另一个专门的表中。

二、例题

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com