BC范式(BCNF)
数据库的事务性
事务处理
事务ACID属性
Hello,小伙伴们大家好!我是灰小猿,一个超会写bug的程序猿!
在进行比较正规的项目开发的时候,通常会根据需求设计相应的数据库,而这些数据库则通常需要考虑数据库的冗余性和简洁性,数据库三大范式就是对关系数据库设计结构的一个规定。
什么是范式?
==========
当一个关系中的所有分类都是不可再分的数据项时,该关系是规范化的。不可再分的数据项,即不存在组合数据项和多项数据项。一个低一级的关系模式,通过模式分解可以转换为若干高一级范式的关系模式的集合,这个过程就叫规范化。二维数据表可以分为5级范式为1NF、2NF、3NF、4NF、5NF。第一范式满足最低的要求条件,第五范式满足最高要求的条件。并且在数据库设计中我们要秉承以更高范式设计标准的原则设计和开发数据库。
那么接下来我和小伙伴们简单介绍一下数据库中常用的三大范式:
第一范式(1NF)
=============
概念:数据库中所有元素都是不可再分的,确保元素的原子性
从概念上我们其实也很好理解,第一范式所说的就是每一列中的属性值都是不可再分的。打个比方如下表:
院系 |
人数 |
|
男生 |
女生 |
|
软件学院 |
1652 |
689 |
计算机学院 |
1264 |
489 |
大数据学院 |
653 |
534 |
人数列中的属性是可以再次分割成男生和女生人数的,这就不满足了数据库设计的第一范式中的“每一列的属性值都是不可再分的”。
那么对于这样的设计,如何使非规范式设计转换为规则的第一范式呢?
其实很简单,