关系数据库的范式理解
什么是第一范式,什么是第三范式?
问这个问题的人,有技术人员和非技术人员两种。
对技术人员的回答是表中无表的,字段不包括字段的是第一范式,把第一范式中的一张表
按照依赖关系,即数据冗余的情况,拆分成多个表,使表没有外键的依赖和函数性的依赖就到了第三范式。
对于非技术性人员的回答是做数据分析,数据挖掘时使用第一范式,加快查询速度,程序开发速度。
在增删改比较多的事务处理的情况下,使用第三范式,方便数据修改。
对于范式理论的深入理解,则要首先了解一下数据库的历史与它的本质。
数据库的本质是一个文件系统,它为了解决文件系统的先天性不足,而发展起来。
因为数据库的应用场景很广泛而从文件系统中分离出来,自立门户了。
第一代数据库管理系统就是文件系统,第二代数据库管理系统是层状数据库。第三代数据库管理系统是关系型
数据库。第一代时,它是文件系统的一部分,同一个数据,只保存在一个文件中,查找时很困难。
要保存于多个文件时,存储浪费又十分严重。第二代时独立出来了。层状的数据可以保存到一个数据表中,
减少了数据冗余,查询仍不方便。 第三代数据库时,把现实中存在的各种结构的数据,先通过数据库的设计方法
转换成能存储在数据库中二维表,称为关系表。数据库把这些关系表,序列化,转换成了能在磁盘等硬件存储
设备存储的二进制的文件。再利用文件系统的功能,实现在硬件上的存储。
在数据库的各种应用中,对数据的冗余度的大小的要求差别很大。而第几范式就是关系数据库的数据库设计过程中
对数据的冗余性大小的度量。 第一范式的冗余性最大,查询性能最佳,编写查询语句最简单。
第三范式时冗余性变小了,分出了更多的数据表,查询时需要多表联接,查询性能会降,编写查询语句时
会变得复杂很多。