- 電子商務(wù)數(shù)據(jù)庫(kù)技術(shù)(第3版)
- 潘郁
- 1984字
- 2019-12-11 15:42:22
3.1.2 函數(shù)依賴和多值依賴
函數(shù)依賴反映了數(shù)據(jù)之間的內(nèi)部聯(lián)系,它是進(jìn)行關(guān)系分解時(shí)的指導(dǎo)和依據(jù),也是本章的討論中心。
為了方便起見,我們假設(shè)R(A1,A2,A3,……,An)是一個(gè)關(guān)系模型,U={A1,A2,A3,……,An{是R的所有屬性集合,X、Y和Z分別表示R中的屬性子集。
如果X→Y,且Y不是X的子集,則稱X→Y是非平凡的函數(shù)依賴。我們討論的都是非平凡的函數(shù)依賴。
例如,在學(xué)生(學(xué)號(hào),姓名,性別,系號(hào),系負(fù)責(zé)人,課程名,成績(jī))這一關(guān)系中,{學(xué)號(hào){→{姓名{,{系號(hào){→{系負(fù)責(zé)人{,{學(xué)號(hào),課程名{→{成績(jī){。
數(shù)依賴,記
設(shè)有一個(gè)“配件-供應(yīng)商-庫(kù)存”關(guān)系如下:
在該關(guān)系中,{配件編號(hào),供應(yīng)商名稱{是關(guān)系的主關(guān)鍵字。因?yàn)榕浼幪?hào)能唯一確定一種配件的名稱及其規(guī)格,所以屬性“配件名稱”“規(guī)格”部分函數(shù)依賴于主關(guān)鍵字{配件編號(hào),供應(yīng)商名稱{;由于一種配件可以由多家供應(yīng)商供貨,而不同的供應(yīng)商所提供的價(jià)格是不一樣的,所以只有知道了配件編號(hào)和供應(yīng)商名稱才能確定配件價(jià)格,因此,“價(jià)格”完全函數(shù)依賴于主關(guān)鍵字{配件編號(hào),供應(yīng)商名稱{。同樣,“庫(kù)存量”完全函數(shù)依賴于主關(guān)鍵字{配件編號(hào),供應(yīng)商名稱{。
另外,“庫(kù)存占用資金”等于“價(jià)格”與“庫(kù)存量”的乘積,所以“庫(kù)存占用資金”函數(shù)依賴于價(jià)格和庫(kù)存量,這樣“庫(kù)存占用資金”則傳遞函數(shù)依賴于{配件編號(hào),供應(yīng)商名稱{這個(gè)主關(guān)鍵字。
前面已經(jīng)介紹過“關(guān)鍵字”的概念,介紹了函數(shù)依賴的概念后,我們就可以給“關(guān)鍵字”進(jìn)行精確的定義。
(1)候選關(guān)鍵字(候選碼)。
包含在任意一個(gè)候選關(guān)鍵字中的屬性,稱為主屬性。不包含在任何候選關(guān)鍵字中的屬性,稱為非主屬性。
在極端情況下,若關(guān)系的全部屬性作為關(guān)鍵字,則稱為完全關(guān)鍵字。此時(shí)關(guān)系中沒有非主屬性。
候選關(guān)鍵字具有標(biāo)識(shí)的唯一性和無冗余性兩個(gè)性質(zhì)。
①標(biāo)識(shí)的唯一性:對(duì)于R中的每一元組,K的值確定后,該元組就確定了。
②無冗余性:當(dāng)K是屬性集合時(shí),K的任何一個(gè)部分都不能標(biāo)識(shí)該元組。
(2)外關(guān)鍵字(外碼)。
主關(guān)鍵字和外關(guān)鍵字提供了表示關(guān)系之間聯(lián)系的手段。
設(shè)有“職工”關(guān)系如下:
設(shè)有“部門”關(guān)系如下:
在“職工”關(guān)系中,“部門編號(hào)”不是它的關(guān)鍵字,但“部門編號(hào)”是“部門”關(guān)系的主關(guān)鍵字,所以,“部門編號(hào)”是“職工”關(guān)系的外關(guān)鍵字。
屬性之間的關(guān)系中除了函數(shù)依賴,還有多值依賴。與函數(shù)依賴相比,多值依賴不太直觀,較難理解。關(guān)系模式中如果存在多值依賴,則和函數(shù)依賴一樣也會(huì)造成數(shù)據(jù)冗余,導(dǎo)致數(shù)據(jù)操作異常。
例如,某單位的供應(yīng)部門直接將各工程所需要的物資從供應(yīng)商的倉(cāng)庫(kù)發(fā)往工程所在地,為了規(guī)劃運(yùn)輸方案,我們可以定義以下的關(guān)系來存儲(chǔ)所有零件的可能的運(yùn)輸源和目的地。
這個(gè)關(guān)系模式的關(guān)鍵字為{物資名,工程名稱,供應(yīng)商名{,其中除了有函數(shù)依賴關(guān)系{工程名稱{→{工程地址{,{供應(yīng)商名{→{供應(yīng)商地址{,還有多值依賴{物資名{→→{工程名稱,工程地址{,{物資名{→→{供應(yīng)商名,供應(yīng)商地址{。因?yàn)檫@一關(guān)系中,一種物資可以被多個(gè)工程使用,與該物資由誰提供無關(guān);同樣,一種物資可以由多個(gè)供應(yīng)商提供,與哪些工程使用該物資無關(guān)。可以看出,由于多值依賴的存在,這個(gè)關(guān)系有冗余。
另外,很明顯,關(guān)系模式中至少有3個(gè)屬性才有可能存在多值依賴。函數(shù)依賴可以看成是多值依賴的一種特殊情況,即函數(shù)依賴一定是多值依賴;而多值依賴是函數(shù)依賴的概括,即存在多值依賴的關(guān)系時(shí),不一定存在函數(shù)依賴關(guān)系。
- 互聯(lián)網(wǎng)+:中外電商發(fā)展路線圖
- 放牛哥教你做微商
- 你好,短視頻!從零開始做Vlog
- 網(wǎng)店美工實(shí)戰(zhàn)教程(全彩微課版)
- 互聯(lián)網(wǎng)思維2.0:傳統(tǒng)企業(yè)互聯(lián)網(wǎng)轉(zhuǎn)型
- 運(yùn)營(yíng)有數(shù):用數(shù)據(jù)突破電商流量
- 數(shù)字化轉(zhuǎn)型指南:新商業(yè)的思維、方法和工具
- Drupal 9 Module Development
- 移動(dòng)社交微電商營(yíng)銷從入門到精通
- 直播大未來
- Internet Marketing with WordPress
- 電子商務(wù)案例分析(第二版)
- 一本書讀懂互聯(lián)網(wǎng)+
- 監(jiān)管區(qū)塊鏈:代碼之治
- 跨境電商物流