【数据库复习】函数依赖

是否敝想为相干数据库设计究竟哪个人表风尚,同时很有可能会裁汰。,为了制止这种情况,敝必要稍许地任命,这些任命称为依赖项。。

函数依赖总之,那是对的。属性集A引出出属性集B,比方

考虑到这些任命,是否某个相干可以使满足或足够预先布置的函数依赖,则称相干R使满足或足够函数依赖F;

下面敝将引见侦察队两两散开的特例和腐烂算法。;

函数依赖的腐烂兼并任命

它们是均等的。,第究竟哪个人相等接管了另外的个高尚的兼并任命的客套话。,二。掉换第究竟哪个人高尚的腐烂任命的相等。;

平庸的函数依赖:是否A–>B,A是B的究竟哪个人超集,则称此函数依赖为平庸的的。

平庸的依赖任命:是否A–>B,你可以把它瀑布究竟哪个人–>(B B),这距离了冗余;

键的函数依赖清晰度:

(1)是否有属性集,可以象征占有属性;

(2)究竟哪个分离此属性不克不及象征占有属性。;

它高尚的属性集作为键。;

函数依赖锻炼

平庸的依赖任命

传令嘉奖:name,age —>name,course, 范围平庸的依赖任命,可以稀释为 name,age 行动方向。

非常

是否相干风尚设计得有害的,将会有究竟哪个人非正则。非常的典型是:

(1)冗余:属性的值屡次涌现。,比方:

(2)重复强调非常:上图中有究竟哪个人重复强调非常。,由于是否你必要重复强调数据库,这门课执意数据库。 concept,您必要将左手的占有数据库重复强调到数据库。 concept;

(3)自成一格非常:上图中有究竟哪个人自成一格非常。,由于AVI、Hank、Sudarshan小姐自成一格,将会有数据库,刚过去的类消逝,但其实,数据库行动方向永恒将不会消逝。,这合理的男教师的退职。。


属性闭包算法

 

传令嘉奖:

 

完整关闭申请

1.预先布置函数依赖集F1,倘若可以推断出函数依赖f:A–>B?

您只必要包含{倘若象征B,包罗是否,这标明f1可以推断f。,别的方式不克不及;

传令嘉奖:

2。决定属性集倘若为键。

是否你想使发誓属性集是超键,只必要计算此属性集的闭包。,检查闭包倘若象征占有属性。;

已经,是否必要使发誓属性集是候选键,第一步是使发誓它是平方的首要的。,另外的步是使发誓属性射中靶子究竟哪个属性都被移除。,此属性集做错平方的保留字。; 

三.给稍许地术语

预先布置究竟哪个人函数依赖集A;

根本集:和A均等的函数依赖集;

的最小根本集:使满足或足够(1)函数依赖的左独自的单程票属性(2)自成一格任性究竟哪个人函数依赖都不将是根本集(3)从函数依赖的左自成一格任性究竟哪个人属性,它将不会是最根本的集合。;

4.隐蔽处函数依赖

预先布置究竟哪个人相干和使满足或足够的函数依赖F,做切片属性隐蔽处后,孰函数依赖使满足或足够。

比方:在前的的属性是,B,c当中的相干,映射到,B后,寂静孰函数依赖不漏水?

总之,那是对的。:

(1)先计算单属性闭包,诸如,{ }的闭包是,C},是否敝的隐蔽处是{,B},您必要象征,而不象征A–>C;(是否有究竟哪个人属性集,它可以象征占有属性,这么敝不用询问完整关闭刚过去的属性集。

(2)这么计算双属性,三属性,四属性…..;

(3)计算射中靶子根本浓度对作最低估计

           —是否隐蔽处后的某个函数依赖可以经过隐蔽处后的宁静函数依赖接来,则自成一格;

                      比方:{A–>C,A–>B,B–>C},自成一格A–>C,由于此函数依赖可以经过宁静函数依赖引出;

           —是否某个函数依赖A–>B,自成一格A中某个属性后依然在隐蔽处的函数依赖中不漏水,则自成一格;

                      比方:隐蔽处后的函数依赖为{AC–>B,A–>B},这么自成一格{>},由于是否自成一格C,即 可以从隐蔽处的函数依赖中接来;

传令嘉奖:

5。判别无损腐烂

是否R1 R2 R1或R2超码,R(R1)上的腐烂,R2)是无损腐烂。。


Armstrong假定


接下来敝将要议论和3NF BCNF腐烂,腐烂也究竟哪个人规范。:

(1)距离非常;

(2)无损衔接:腐烂后的衔接倘若与在前的划一?;

            应用蔡斯考验任命;

(3)保留依赖性:FD的隐蔽处是创办在腐烂相干上的。,已经衔接不使满足或足够在前的的FD。;

BCNF的使满足或足够(1)和(2),3nf使满足或足够(1)(2)(3)


追逐考验任命

决定天然地衔接倘若为原始相干。;

思惟:天然地衔接后的每个元组都属于原始相干。;

是否相干被映射到Si,这么天然地的衔接就被创造出现了。,你开腰槽究竟哪个人象征占有未被键入的子组件部件的元组。,此元组缺席的r中。,衔接是无损的。;

传令嘉奖:


保留依赖

思惟:FD隐蔽处是在腐烂相干中创办的。,但天然地衔接不使满足或足够原始FD。

传令嘉奖:


BCNF

当相干使满足或足够是否R中非共和国平庸的的函数依赖的左都是超键,这种相干R属于BCNF;

品种:究竟哪个两个元素使满足或足够BCNF的相干

使发誓:是否函数依赖集合在A–>B,这么敝在某种意义上说,因而必需品是平方的钥匙;

BCNF腐烂

注:BCNF腐烂是无损腐烂

while(找到违背BCNF的函数依赖){

    找出违背BCNF的函数依赖A–>B,先计算闭包,用A(A)的闭包掉换B。,把它腐烂成{A+}和{AU(R-(A+)};   诸如a ,而{A}+={A,B,C},这么用A掉换

    开腰槽了使满足或足够腐烂相干的隐蔽处FD集。;

    再看腐烂后的相干的FD集合倘若使满足或足够BCNF,是否不愉快,持续腐烂。

}

传令嘉奖:


3NF

注:3nf可以无损衔接和依赖;

安逸BCNF的询问,不只是究竟哪个人影响是:是否A–>B,B-A是候选键的一做切片是否在差异的候选键中),它使满足或足够3NF;

在这里敝解说了前一句射中靶子白色正文做切片。,看究竟哪个人诉讼手续:

比方:在函数依赖A–>BC,{有别于为候选键。,而BC-A={BC},b属于候选键{ ab },c属于候选键{ AC },但仍适合3nf –> BC;

主属性:属性属于候选键。;

比方:{作为候选键,A是统治的属性。,C也首要属性。;

3NF算法

传令嘉奖:


1NF

每个属性保留原子性;

2NF

使满足或足够1NF,且每究竟哪个人非主属性都完整函数依赖于R的主码;


多值依赖

引入多值依赖的缘由

从下面的图片你可以主教权限,此相干的候选键是(定义),street,city,title,年),照着不在究竟哪个非平庸的的函数依赖,因而适合BCNF,但敝可以从容的地主教权限,(街、city)和(title、年)是孤独的;性伙伴在相干中是富余的。;

照着多值依赖的发生执意使生根此;敝可以门路下面的跟踪。因为4nf腐烂算法腐烂相干;

多值依赖(MVD)的清晰度

A1A2….An–>–>B1B2….Bm,这么解说

(1)考虑到A1A2的价格…究竟哪个人,B1B2…BM属性孤独属性(u-a-b);

(2)供应r射中靶子两个元组a、b,它们的属性是相似的的。,必需品有第三个元组,C,使c = A = A [ B ],c[B]=a[B],c[U-A-B]=b[U-A-B];

 

多值依赖的品种

(0)多值依赖实际的是FD的晋级。,也执意说,是否A – B不漏水,a > < > B也适当的的;

(1)平庸的MVD:是否b是a的分离,已经A – > – B不漏水了。;

(2)加性平庸的MVD:是否相干r(a),B),已经A – > – B不漏水了。;

(3)经过MVD:是否A–>–>B,B–>–>C,但A – C – C不漏水了。;

(4)MVD不克不及使满足或足够腐烂任命。:

(5)是否a > > b,这么–> –>(r-a-b)的创办;


应用于MVD,做错普通的FD;影响差一点两者都,BCNF;

清晰度:是否有非平庸的的a – > – b,必需品是平方的钥匙,则为4NF;

4nf腐烂算法

1。一下子看到MVD对4nf;

2。范围究竟哪个人- > 腐烂成ab } {R-A-B};

三.计算隐蔽处FD;

4。持续寻觅微血管密度的妨碍,腐烂…..;

总结:

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注