数据库设计的三大范式是什么

数据库设计的三大范式:1、第一范式,确保每列保持原子性;2、第二范式,确保表中的每列都和主键相关;3、第三范式,确保每列都和主键列直接相关,而不是间接相关。

本文环境:windows10系统、thinkpad t480电脑。

数据库设计的三大范式:

1、第一范式(确保每列保持原子性)

第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。

第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等多个部分进行存储,这样在对地址中某一部分操作的时候将非常方便。这样设计才算满足了数据库的第一范式。

上表所示的用户信息遵循了第一范式的要求,这样在对用户使用城市进行分类的时候就非常方便,也提高了数据库的性能。

2、第二范式(确保表中的每列都和主键相关)

第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。

比如要设计一个订单信息表,因为订单中可能会有多种商品,所以要将订单编号和商品编号作为数据库表的联合主键。

订单信息表

这样就产生一个问题:这个表中是以订单编号和商品编号作为联合主键。这样在该表中商品名称、单位、商品价格等信息不与该表的主键相关,而仅仅是与商品编号相关。所以在这里违反了第二范式的设计原则。

而如果把这个订单信息表进行拆分,把商品信息分离到另一个表中,把订单项目表也分离到另一个表中,就非常完美了。

这样设计,在很大程度上减小了数据库的冗余。如果要获取订单的商品信息,使用商品编号到商品信息表中查询即可。

3、第三范式(确保每列都和主键列直接相关,而不是间接相关)

第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。

比如在设计一个订单数据表的时候,可以将客户编号作为一个外键和订单表建立相应的关系。而不可以在订单表中添加关于客户其它信息(比如姓名、所属公司等)的字段。如下面这两个表所示的设计就是一个满足第三范式的数据库表。

以上就是数据库设计的三大范式是什么的详细内容,更多请关注易知道|edz.cc其它相关文章!

推荐阅读

    怎么设置主键|access怎么设置主键

    怎么设置主键|access怎么设置主键,,access怎么设置主键Access是一款功能强大的关系数据库管理系统,该软件具备开发软件功能,可以帮助用户开

    mysql什么叫主键

    mysql什么叫主键,主键,约束,字段,设置,删除,联合主键,在mysql中,主键全称“主键约束”,是一个列或者多个列的组合,其值能唯一地标识表中的每一行,通

    魅蓝的快捷键|魅蓝怎么关闭主键

    魅蓝的快捷键|魅蓝怎么关闭主键,,魅蓝怎么关闭主键操作步骤如下:1、按HOME圆键,找到“设置”并点击进入。2、进入后,默认首先显示的是“个性

    pg怎么设置快捷键|pg修改主键

    pg怎么设置快捷键|pg修改主键,,1. pg修改主键1.mysql支持多种存储引擎,存储引擎选择较为灵活,实际上一般都在用innodb。ddl放在server端,ddl

    mysql设置主键|mysql设置主键约束

    mysql设置主键|mysql设置主键约束,,mysql设置主键约束MySQL中约束保存在表中,可以通过表查询约束信息进行约束的时间:使用create table语句

    魅蓝主键设置|魅蓝home键

    魅蓝主键设置|魅蓝home键,,1. 魅蓝home键返回键指的是导航键,设置方法如下1、打开手机的【设置】菜单,下拉到底部选择【系统】。2、在【系统

    主键的设置|主键的设置不了怎么解决

    主键的设置|主键的设置不了怎么解决,,主键的设置不了怎么解决故障原因和解决方法如下1、如果home键在锁屏的时候就已经坏了,那么按开机键启

    魅蓝快捷键|魅蓝怎么关闭主键

    魅蓝快捷键|魅蓝怎么关闭主键,,魅蓝怎么关闭主键1.可以使用电源键,按一下亮屏,再按一下息屏。2.打开手机管家,第一排有创建快捷方式,点进去,有

    如何设置主键|如何设置主键和外键

    如何设置主键|如何设置主键和外键,,1. 如何设置主键和外键主键只有一个,但是可以设置为多个字段为主键,也即联合主键。外键就是自己设置了也