任何一个复杂的事物(包括技术),都是由简单的源头一步步发展而来,必有一个最基本的原理。关系型数据库理论作为一个划时代的产物,诞生几十年以来,催生了多家伟大的公司。在今天这个互联网时代,各种新产品,及所谓的新的数据库相关理论层出不穷,包括NOSQL,分布式等等。但归根结底都没有跑出关系型数据库理论的这个如来佛祖的掌心,它们不过是基于关系型理论的某种变异。 如果对关系型数据库理论进行追根溯源,那就是到哲学和数学的层面,以笔者现有的知识水准,还没有办法将这个问题谈透。笔者只能从自己经历的项目中,谈谈自己对关系型数据库和数据建模的体会。
关系型数据库里面谈到数据建模第一个提到的就是范式建模理论。很多朋友肯定看过权威教材上对范式建模的一些解释。基本上要花很大的力气,估计最后也没明白是什么意思。其实这里可以表达一下笔者对中国教育的一些看法。我们总是先学一堆莫名其妙的理论,搞得大家头昏脑涨,对这些玩样儿都敬而远之,产生严重的厌学情绪。就像很多经济学家回忆大学教育,学了很久的微积分,工作以后很长一段时间,其实也不知道有什么用。笔者在大学学数据库理论这门课的时候,对这些范式啊,元组啊也是七荤八素的。考试的时候也是恐惧得不行。
其实人类正常的认知流程都是由表入里,先认识现象,后总结理论。我们国内刚好反过来了,就把一些极有意思的现象及认知过程全部省掉了。最后展现在我们眼前的只是几张枯燥难懂的理论公式。 大家都了解,范式从第一范式开始,一直跑到了第五范式。还有一个什么BCNF范式。记估计是很难记清楚了。那好,我们就回到事物的本质。数据库的本质是存储数据(持久化),及支持用户对数据进行操作(增/删/改/查)。那范式建模的根本出发点就是去维护数据库所存储数据的完整性,准确性。