官术网_书友最值得收藏!

3.1.2 函數依賴和多值依賴

1.函數依賴

函數依賴反映了數據之間的內部聯系,它是進行關系分解時的指導和依據,也是本章的討論中心。

為了方便起見,我們假設R(A1,A2,A3,……,An)是一個關系模型,U={A1,A2,A3,……,An{是R的所有屬性集合,X、Y和Z分別表示R中的屬性子集。

【定義1】若對于R中的X的任何一個具體值,Y僅有唯一的具體值與之對應,則稱R的屬性Y函數依賴于屬性X,記作X→Y, X稱為決定因素。

如果X→Y,且Y不是X的子集,則稱X→Y是非平凡的函數依賴。我們討論的都是非平凡的函數依賴。

例如,在學生(學號,姓名,性別,系號,系負責人,課程名,成績)這一關系中,{學號{→{姓名{,{系號{→{系負責人{,{學號,課程名{→{成績{。

【定義2】在R中,如果屬性集Y函數依賴于屬性集X,且不與X的任何真子集函數依賴,則稱Y完全函數依賴于X,記】否則Y部分函數依賴于X,記上例所述的學生關系中,屬性“成績”完全函數依賴于屬性集{學號,課程名{,而屬性“姓名”則部分函數依賴于屬性集{學號,課程名{。

【定義3】在R中,對于屬性子集X、Y、Z,若

則稱Z對X傳遞函

數依賴,記設有一個“配件-供應商-庫存”關系如下:

配件-供應商-庫存(配件編號,配件名稱,規格,供應商名稱,供應商地址,價格,庫存量,庫存占用資金)

在該關系中,{配件編號,供應商名稱{是關系的主關鍵字。因為配件編號能唯一確定一種配件的名稱及其規格,所以屬性“配件名稱”“規格”部分函數依賴于主關鍵字{配件編號,供應商名稱{;由于一種配件可以由多家供應商供貨,而不同的供應商所提供的價格是不一樣的,所以只有知道了配件編號和供應商名稱才能確定配件價格,因此,“價格”完全函數依賴于主關鍵字{配件編號,供應商名稱{。同樣,“庫存量”完全函數依賴于主關鍵字{配件編號,供應商名稱{。

另外,“庫存占用資金”等于“價格”與“庫存量”的乘積,所以“庫存占用資金”函數依賴于價格和庫存量,這樣“庫存占用資金”則傳遞函數依賴于{配件編號,供應商名稱{這個主關鍵字。

2.關鍵字

前面已經介紹過“關鍵字”的概念,介紹了函數依賴的概念后,我們就可以給“關鍵字”進行精確的定義。

(1)候選關鍵字(候選碼)。

【定義4】在R中,設K是U的屬性或屬性集合。如則稱K是關系R的一個候選關鍵字。若R中有一個以上的關鍵字,則選定其中一個作為主關鍵字(主碼),如果K是屬性集合,則稱為組合關鍵字或合成關鍵字。主關鍵字可用下劃線標出。

包含在任意一個候選關鍵字中的屬性,稱為主屬性。不包含在任何候選關鍵字中的屬性,稱為非主屬性。

在極端情況下,若關系的全部屬性作為關鍵字,則稱為完全關鍵字。此時關系中沒有非主屬性。

候選關鍵字具有標識的唯一性和無冗余性兩個性質。

①標識的唯一性:對于R中的每一元組,K的值確定后,該元組就確定了。

②無冗余性:當K是屬性集合時,K的任何一個部分都不能標識該元組。

(2)外關鍵字(外碼)。

【定義5】在關系R中,若屬性或屬性集合X不是R的關鍵字,但X是其他關系中的關鍵字,則稱X是關系R的外關鍵字或外碼。

主關鍵字和外關鍵字提供了表示關系之間聯系的手段。

設有“職工”關系如下:

職工(職工號,職工姓名,年齡,部門編號)

設有“部門”關系如下:

部門(部門編號,部門名稱,部門負責人)

在“職工”關系中,“部門編號”不是它的關鍵字,但“部門編號”是“部門”關系的主關鍵字,所以,“部門編號”是“職工”關系的外關鍵字。

3.多值依賴

屬性之間的關系中除了函數依賴,還有多值依賴。與函數依賴相比,多值依賴不太直觀,較難理解。關系模式中如果存在多值依賴,則和函數依賴一樣也會造成數據冗余,導致數據操作異常。

【定義6】在關系R中,X、Y、Z是屬性子集,且Z=U-X-Y,則多值依賴X→→Y成立當且僅當對R中給定的一對(X, Z)值有一組Y的值與之對應,這組值僅僅決定于X值而與Z值無關。

例如,某單位的供應部門直接將各工程所需要的物資從供應商的倉庫發往工程所在地,為了規劃運輸方案,我們可以定義以下的關系來存儲所有零件的可能的運輸源和目的地。

運輸(工程名稱,工程地址,物資名,供應商名,供應商地址)

這個關系模式的關鍵字為{物資名,工程名稱,供應商名{,其中除了有函數依賴關系{工程名稱{→{工程地址{,{供應商名{→{供應商地址{,還有多值依賴{物資名{→→{工程名稱,工程地址{,{物資名{→→{供應商名,供應商地址{。因為這一關系中,一種物資可以被多個工程使用,與該物資由誰提供無關;同樣,一種物資可以由多個供應商提供,與哪些工程使用該物資無關。可以看出,由于多值依賴的存在,這個關系有冗余。

另外,很明顯,關系模式中至少有3個屬性才有可能存在多值依賴。函數依賴可以看成是多值依賴的一種特殊情況,即函數依賴一定是多值依賴;而多值依賴是函數依賴的概括,即存在多值依賴的關系時,不一定存在函數依賴關系。

主站蜘蛛池模板: 内江市| 冀州市| 视频| 阿荣旗| 鄂伦春自治旗| 达州市| 平果县| 兴宁市| 东方市| 乐亭县| 奎屯市| 陆川县| 神池县| 西乌珠穆沁旗| 酉阳| 黔西| 南乐县| 岢岚县| 顺平县| 吉木萨尔县| 犍为县| 沁源县| 电白县| 称多县| 通化市| 潜山县| 堆龙德庆县| 康定县| 林甸县| 临颍县| 同德县| 南靖县| 玛多县| 苍山县| 和田市| 葫芦岛市| 金堂县| 观塘区| 泰兴市| 黄梅县| 庆云县|