数据库设计范式概要

在逻辑设计中,对于同一个实体的存储,可以有多种不同的设计的方式。

比如用户实体跟购物车实体,可以将用户信息和购物车信息存储在同一张表中,也可以分别存储在不同的表中。两种方式哪一种更好一些呢?实际上就要通过一些,数据库设计的一些规范来进行选择,这也就是数据库设计的范式。

符合规范所设计的数据库不符合这种规范式的设计
简洁高效、结构清晰存在大量的数据冗余,浪费大量存储空间
避免数据的维护异常存在数据的插入、更新、删除的异常
最大限度避免数据库的冗余

常见的数据库设计范式:

第一范式、第二范式、第三范式 以及 BC 范式。

当然还有第四、第五方式,不过在这侧重点放在前三个范式上,这也是目前大多数数据库设计所要遵循的范式。

如果数据库设计中存在着大量的操作异常和数据冗余,那么这个设计就不符合数据库范式要求

数据操作异常

数据操作异常包括:

异常分类说明
插入异常如果某实体伴随另一个实体的存在而存在,当缺少某个实体时无法表示另一个实体时,那么这个表就存在插入异常
更新异常如果更改表所对应的某个实体实例的单独属性时,需要将多行更新,那么这个表就存在更新异常
删除异常如果删除表的某一行来反映某实体实例,失效时导致另一个不同实体实例信息丢失,那么这个表中就存在删除异常

会导致在插入或者更新的时,可能会更新到其他并不应该更新,或者说并不应该删除的数据。

数据的冗余

指相同的数据在多个地方存在,或者表中的某个列可以由其他列来计算得到,这样表中就存在着数据的冗余。

导致对数据的一致性的维护造成很大的不便,漏掉某张表维护困难会导致数据一致性的异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值