数据库的设计规范

1.1 范式简介
在关系型数据库中,关于数据表设计的基本原则、规则称为范式。要想设计一个结构合理的关系型数据库,必须满足一定的范式。
1.2 范式都包括哪些
目前关系型数据库里由六种常见范式,按照范式级别,从低到高分别是第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。
1.3 键和相关属性的概念
这里有两个表:

球员表(player):球员编号 | 姓名 | 身份证号 | 年龄 | 球队编号

球队表(team):球队编号 | 主教练 | 球队所在地

  • 超键:对于球员表来说,超键就是包括球员编号或者身份证号的任意组合,比如(球员编号)(球员编号,姓名)(身份证号,年龄)等。

  • 候选键:就是最小的超键,对于球员表来说,候选键就是(球员编号)或者(身份证号)。

  • 主键:我们自己选定,也就是从候选键中选择一个,比如(球员编号)。

  • 外键:球员表中的球队编号。

  • 主属性非主属性:在球员表中,主属性是(球员编号)(身份证号),其他的属性(姓名)(年龄)(球队编号)都是非主属性。
    1.4 第一范式
    第一范式主要是确保数据表中每个字段的值必须具有原子性,也就是说数据表中每个字段的值为不可再次拆分的最小数据单位。
    1.5 第二范式
    第二范式要求,在满足第一范式的基础上,还要满足数据表里的每一条数据记录,都是可唯一标识的。而且所有非主键字段,都必须完全依赖主键,不能只依赖主键的一部分。
    1.6 第三范式
    第三范式是在第二范式基础上,确保数据表中的每一个非主键字段都和主键字段直接相关,也就是说,要求数据表中的所有非主键字段不能依赖于其他非主键字段
    1.7 小结
    关于数据表的设计,前三个范式需要遵循。范式等级越高,设计出来的数据表就越多、越精细,数据的冗余度就越低,进行数据查询的时候就需要关联多张表,这不但代价昂贵,也可能使一些索引策略无效。

    范式只是提出了设计的标准,实际上设计表时,未必一定要符合这些标准。实际开发中通常根据需要从前三个范式中选择遵循。处于性能考虑,不使用后面的范式。其中第三范式通常被认为在性能、拓展性和数据完整性方面达到了最好的平衡。

笔记来自尚硅谷康师傅的MYSQL课程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值