【数据库】数据库四大范式1NF、2NF、3NF、BCNF

数据库范式是优化数据存储的关键,包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BC范式(BCNF)。1NF要求属性不可分;2NF要求非主属性完全依赖于码;3NF消除传递依赖;BCNF则规定任何属性都不能依赖于码。通过对不满足这些范式的表进行投影分解,可以解决数据冗余和操作复杂性问题,提高数据库效率。

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

一、数据库范式

1.什么是范式?

  • 什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。
先说说基础概念
  • 实体:实体就是现实世界中客观存在并可以被区别的事物。比如:学生、书、课程。
  • 属性:就是每个实体的属性,也就是表中的列。比如:王同学、李同学。
  • 元组:表中的一行数据就是一个元组。
  • 分量:元组中的某一个属性值。
  • 码:表中可以唯一确定一个元组的某个属性(或属性组)。如果有多个码,大家都叫候选码。
  • 全码:如果一个码包含了所有的属性,这个码就是全码。
  • 主属性:一个属性只要在任何一个候选码中出现过,这个属性就是主属性。
  • 非主属性:没有在任何一个候选码中出现过,就是非主属性。
  • 外码:一个属性,它不是嘛,但是它是别的表的码,他就是外码。
第一范式(1NF)
  • 特点:属性不可分
  • 如图:
    在这里插入图片描述
  • 加入这是一个数据库中的表,那么它的电话是一个实体,下面这一列都是属性,可以发现有一行的属性分为了两个,这就违背了属性不可分的特点。不满足第一范式的数据库,不是关系数据库!
  • 针对上面的数据库修改,可以把电话再分为手机和座机,然后属性就没有再分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值