您的位置:首页 > 数据库

脱口秀数据库三个范式

2015-12-08 13:45 435 查看
三个数据库的模式肯定是不陌生。官方的解释是很抽象,谁刚开始学习比较难理解。对于这一块的知识,我会读的。这将是忘记,忘了再看。每当别人问我的时候,必须先看看教材,回想一段时间才干理清。

为什么当别人提问时不能立刻把三范式的经典思想说出来呢?通过听米老师的“怎样高效学习”这堂课,我发现原因是我自己没有融入到三范式中。三范式没有和自己发生关系。

以下,我用三个有趣的小故事帮助大家高速、深刻的理解三范式的含义。

第一范式。官方解释:关系模式R的每一个关系r的属性值都是不可分的原子值。这个官方解释还不算太难,比方我们想把“电话号码”作为数据库字段,在“电话号码”以下又分“手机号码”和“座机号码”,这就违反了第一范式。用我的话说就是“把事说清了”。你仅仅说“电话号码”,我知道你说的是“手机号码”还是“座机号码”?

第二范式,官方解释:非主属性必须全然函数依赖于R的主关系键。

怎么样,有点晕了吧!比方:在SCD表中,有字段SNO。SN,Age,Dept,MN,CNo。Score。知道SNo能够确定SN、Age、Dept、MN,知道SNo、CNo能够确定Score。这个事好比土匪们选大哥。小弟SN、Age、Dept、MN选举SNo当土匪头子,Score选举SNo、CNo两个人共同当土匪头子。

结果意见达不成一致,土匪们闹分裂。一句话“仅仅要有一个人不允许。这事就不能通过”。大哥SNo带着小弟SN、Age、Dept、MN成立土匪旗号SD。大哥SNo又和CNo带着小弟Score合伙成立土匪旗号SC。到此,故事告一段落。

第三范式。官方解释:每一个非主属性都不传递函数依赖于R的主关系键。这个怎么样,彻底晕了吧!

比方:在SD表中,知道SNo能够确定Dept,知道Dept能够确定MN(系主任名)。这事咱接着上面第二范式的土匪故事接着讲,大哥SNo有小弟SN、Age、Dept、MN,但Dept特别有才。又把MN招为自己的小弟。天天忽悠MN,给MN灌输反动思想,最终有一天Dept带着MN独立了。成立了土匪旗号D。

大哥SNo感觉SD已经不完整了,把土匪旗号改为S。SNo经过这次教训。决定下道命令:“一个人仅仅能扮演一个角色”,否则,不符合三个范式,因为关系模式分解。

这个故事讲完,据推测,通过这个小故事。我相信这三个范式的精髓深深地刻在大脑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: