【DB】范式,db范式
在我的上一篇博客《【DB】函数依赖》中,主要讲解了什么是函数依赖以及局部和传递依赖(FD)。在没有FD时,关系中是不可能有数据冗余,但当FD存在时,关系中就有可能存在数据冗余。如何消除呢?答案是模式分解。那么分解成什么样子,如何来衡量关系模式的好与坏?答案是范式(NF)!
NF的种类与FD有着直接的联系,基于FD的范式有1NF、2NF、3NF、BCNF、4NF等多种。下面就分别介绍一下!
1NF
关系模式R的每个关系r,其属性为单值属性
2NF
消除局部依赖
3NF
消除传递依赖
BCNF
在3NF中,并没有排除主属性对候选键的传递依赖,如图所示:
只有每个属性都不传递依赖于模式R的候选键,那么才称R是BCNF模式。
4NF
4NF是BCNF的直接推广。
3NF VS BCNF
非主属性与所有属性
BCNF VS 4NF
4NF针对的是多值依赖,关系r中的属性中有多值属性。
小结
1、2NF、3NF、BCNF都是以1NF为基础的,它们的前提是关系r的属性为单值属性。
2、2NF已成为历史,现在最常用的是3NF和BCNF。
3、我终于把范式弄明白了,很是高兴,看来只要你想弄明白,就没有解决不了的!
范式字巨卿,少游于太学,与汝南张劭为友。劭字元伯。二人并搞(请假)归乡里。式谓元伯曰:“后二年当还,将过尊亲。”乃共克期日。后期方至,元伯俱以白母,请设馔(酒食)以候之。母曰:“二年之别,千里结言,尔何信之诚也?”对曰:“巨卿信士,必不违约。”母曰:“若然,当为尔酿酒。”至其日,巨卿果至,升堂(登上大厅)拜饮,尽欢而别。
译文:范式字巨卿,山阳金张(今山东金山县)人。年轻时在太学求学,与汝南张劭是同窗好友,张劭字元伯.两人同时离开太学返乡,范式对张劭说,二年后我将到你家拜见你的父母,看看你的孩子。于是约好了日期。当约好的日期快到的时候,张劭把这件事告诉他母亲,请他母亲准备酒菜招待范式。母亲问:你们分别已经两年了,相隔千里,你就那么认真地相信他吗?张劭回答:范式是一个讲信用的人,他一定不会违约的。母亲说,如果真的是这样,那我就为你酿酒。到了约好的那日,范式果然来到。大家一起饮酒,尽欢而别。范式和张劭
范式字巨卿,少游于太学,与汝南张劭为友。劭字元伯。二人并搞(请假)归乡里。式谓元伯曰:“后二年当还,将过尊亲。”乃共克期日。后期方至,元伯俱以白母,请设馔(酒食)以候之。母曰:“二年之别,千里结言,尔何信之诚也?”对曰:“巨卿信士,必不违约。”母曰:“若然,当为尔酿酒。”至其日,巨卿果至,升堂(登上大厅)拜饮,尽欢而别。
译文:范式字巨卿,山阳金张(今山东金山县)人。年轻时在太学求学,与汝南张劭是同窗好友,张劭字元伯.两人同时离开太学返乡,范式对张劭说,二年后我将到你家拜见你的父母,看看你的孩子。于是约好了日期。当约好的日期快到的时候,张劭把这件事告诉他母亲,请他母亲准备酒菜招待范式。母亲问:你们分别已经两年了,相隔千里,你就那么认真地相信他吗?张劭回答:范式是一个讲信用的人,他一定不会违约的。母亲说,如果真的是这样,那我就为你酿酒。到了约好的那日,范式果然来到。大家一起饮酒,尽欢而别。【原文】范氏字巨卿④,少游太学⑤,为诸生⑥,与汝南张劭为友⑦,劭字元伯。二人并告归乡里。式谓元伯曰:“后二年当还,将过拜尊亲⑧,见孺子焉⑨。”乃共克期日。后期方至,元伯具以白母,请设馔以候之。母曰:“二年之别,千里结言,尔何相信之审邪?” 对曰:“巨卿信士,必不乖违。”母曰:“若然,当为尔酝酒。”至其日,巨卿果到,升堂拜饮,尽欢而别。
【注释】 ①文侯:魏文侯,战国时魏国国君。虞人:管山泽的官员。②吴起:战国时卫国左氏(今山东省曹县北)人,著名军事家。③三军:对军队的统称。④范式:东汉金乡人,历任荆州刺史、庐江太守等职,有才华和威名。⑤太名:汉朝设在京城的最高学府。⑥诸生:许多求学的人。⑦汝南:在今河南省。⑧尊亲:指张劭的父母。 ⑨孺子:小孩子,指张劭的子女。
【译文】范式表字巨卿,年轻时在太学求学,成为太学里的学生,和汝南张劭结交为朋友。张劭表字元伯。两人同时要回家乡去。范式对元伯说:“两年后该返回,(我)将要探望拜谒您的父母亲,看望您的子女呢。”于是(彼此)一道约定了相会的日期,后来所约定的日期就要到了,元伯央求母亲届时准备酒菜好好款待。张劭母亲说:你们的约定时隔两年之久,难道你相信这位朋友届时果真会来吗?张劭坚定地说:范式是很讲诚信的人,决然不会失约的。两年后,范式果然如期来看望张劭,聚餐畅叙之后,两人高兴地话别。范式字巨卿,山阳金张(今山东金山县)人。年轻时在太学求学,与汝南张劭是同窗好友,张劭字元伯.两人同时离开太学返乡,范式对张劭说,二年后我将到你家拜见你的父母,看看你的孩子。于是约好了日期。当约好的日期快到的时候,张劭把这件事告诉他母亲,请他母亲准......余下全文>>
变形:
Q∧(P∨┐P)∨(┐Q∧P)
Q∧1∨(┐Q∧P)
Q∨(┐Q∧P)
(Q∨┐Q)∧(Q∨P)
1∧(Q∨P)
Q∨P
Q∨P就是一个合取范式。
其实我想你应该也能化到这一步,你不明白的应该是“这不明明是析取范式吗?你怎么说他是合取范式呢?”
不错,他的确是析取范式,但同时,他也是合取范式,并且,他还是主合取范式。
只是该主合取范式中,只含有1个极大项:Q∨P而已。
合取范式的定义式:仅由有限个简单析取式构成的合取式称为析取范式。
Q∨P完全满足定义,这里的简单析取式为1个。
另外你标题中的这个问题“析取范式与合取范式如何转化”,其实析取范式与合取范式之间,是没有像主析取范式与主合取范式之间那样存在一条可以直接转化的定律的。只能是自己去手工变形。事实上,任一命题公式都有无数多个析取范式与合取范式。因此,是不可能存在主析取范式与主合取范式那样的转化方法的。
参考资料:离散数学