系统架构设计师考点—数据库范式

1.1范式概述

  关系型数据库中,关于数据表设计的基本原则,规则就称为范式,范式是我们在设计数据库结构过程中需要遵循的规则和指导方法。不过,有的时候为了提高某一些查询性能,我们还需要破坏范式规则,也就是反规范化。

1.2键和相关属性的概念

  范式的定义会使用到主键和候选键,数据库中的键(key)由一个或者多个属性组成。

数据表中常用的几种键和属性的定义:

①超键:能唯一标识元祖的属性集叫做超键

②候选键:如果超键不包括多余的属性,那么这个超键就是候选键。

③主键:用户可以从候选键中选择一个作为主键。

④外键:如果数据表R1中的某属性集不是R1的主键,而是另一个数据表R2的主键,那么这个属性集就是数据表R1的外键。

⑤主属性:包含在任一候选键中的属性称为主属性。

⑥非主属性:与主属性相对,指的是不包含在任何一个候选键中的属性。通常,我们也将候选键称之为“码”,把主键也称为“主码”。因为键可能是由多个属性组成的,针对单个属性,我们还可以用主属性和非主属性来进行区分。

1.3范式都包括哪些

  目前关系型数据库有六种常见范式,按照范式级别,从低到高分别是:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。

  数据库的范式设计越高阶,冗余度就越低,同时高阶的范式一定符合低阶范式的要求,满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般来说,在关系型数据库设计中,最高也就遵循到BCNF,普遍还是3NF。但也不绝对,有时候为了提高某些查询性能,我们还需要破坏范式规则,也就是反规范化。

ca7a1d7e8c154f3598318d1fb15e5505.png

 1.4第一范式(1NF)

  第一范式要求数据表中每个字段的值必须具有原子性,也就是不可再分;属性的原子性具有主观性,需要根据场景应用具体分析;

1.5第二范式(2NF)

  在第一范式基础上,要求:①非主键字段必须完整依赖主键字段,而不是部分依赖;②数据表记录可唯一标识;第二范式说明每个数据表都是一个独立的对象,有自己的独立含义;

1.6第三范式(3NF)

  在第二范式基础上,要求:数据表中的所有非主键字段必须与主键字段直接相关,而不能与其他非主键字段存在依赖关系,所有非主键字段之间互相独立;

1.7巴斯·科德范式(BCNF)

  简称巴斯范式,是改进的第三范式;在第三范式基础上,要求:数据表只能有一个候选键或每个候选键都是单属性,进一步降低数据冗余性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值