資料庫關係中含有多值依賴的時候,關係的碼怎麼求

2021-03-19 18:20:16 字數 2124 閱讀 9414

1樓:司馬刀劍

(1)如果有屬性不在函式依賴集中出現,那麼它必須包含在候選碼中;

(2)如果有屬性不在函式依賴集中任何函式依賴的右邊出現,那麼它必須包含在候選碼中;

(3)如果有屬性只在函式依賴集的左邊出現,則該屬性一定包含在候選碼中。

(4)如果有屬性或屬性組能唯一標識元組,則它就是候選碼;

2樓:雲南新華電腦學校

在關聯式資料庫中不能出現這種情況。

第二正規化定義:若r∈1nf,且每一個非主屬性完全函式依賴於碼,則r∈2nf。意思是非主屬性完全依賴於碼(候選碼,主碼),這裡需要注意一下,是非主屬性(候選碼之外的屬性),在前一篇文章已經說過。

在資料庫技術中,請用例項解釋一下「函式依賴關係」和「邏輯蘊含」,以及「碼」是怎麼回事?

3樓:愛上笨蛋的妖精

函式依賴

設r(u)是一個屬性集u上的關係模式,x和y是u的子集。

若對於r(u)的任意一個可能的關係r,r中不可能存在兩個元組在x上的屬性值相等, 而在y上的屬性值不等, 則稱 「x函式確定y」 或 「y函式依賴於x」,記作x→y。

x稱為這個函式依賴的決定屬性集(determinant)。

y=f(x)

說明:1. 函式依賴不是指關係模式r的某個或某些關係例項滿足的約束條件,而是指r的所有關係例項均要滿足的約束條件。

2. 函式依賴是語義範疇的概念。只能根據資料的語義來確定函式依賴。

例如「姓名→年齡」這個函式依賴只有在不允許有同名人的條件下成立

3. 資料庫設計者可以對現實世界作強制的規定。例如規定不允許同名人出現,函式依賴「姓名→年齡」成立。所插入的元組必須滿足規定的函式依賴,若發現有同名人存在, 則拒絕裝入該元組。

例: student(sno, sname, s***, sage, sdept)

假設不允許重名,則有:

sno → s***, sno → sage , sno → sdept,

sno ←→ sname, sname → s***, sname → sage

sname → sdept

但s*** -\→sage

若x→y,並且y→x, 則記為x←→y。

若y不函式依賴於x, 則記為x-\→y。

在關係模式r(u)中,對於u的子集x和y,

如果x→y,但y 不為 x的子集,則稱x→y是非平凡的函式依賴

若x→y,但y 為 x的子集, 則稱x→y是平凡的函式依賴

例:在關係sc(sno, **o, grade)中,

非平凡函式依賴: (sno, **o) → grade

平凡函式依賴: (sno, **o) → sno

(sno, **o) → **o

部分函式依賴: 若x->y 並且,存在x的真子集x1,使得x1->y,則 y部分依賴於 x。

完全函式依賴:若x->y並且,對於x的任何一個真子集x1,都不存在x1->y 則稱y完全依賴於x。

邏輯蘊含 舉個例子:

y=f(x)

省=f(城市)

只要給出一個具體的城市值,就會有唯一一個省值和它對應,如"武漢市"在"湖北省".這裡的"城市"是自變數x,"省"是因變數或函式值y.把x函式決定y,或y函式依賴於x表示為:x→y

設有關係模型r(a1,a2,...an),x和y均為的子集,r是r的任一具體關係,t1,t2是r中的任意兩個元祖.如果由t1[x]=t2[x]可以推匯出t1[y]=t2[y],則稱x函式決定y,或y函式依賴於x,記為x→y.

你所問的碼是說主碼與候選碼麼?

主碼 我們在建立資料庫的時候,需要為每張表指定一個主鍵,所謂主鍵就是能夠唯一標識表中某一行的屬性或屬性組,一個表只能有一個主鍵,但可以有多個候選索引。因為主鍵可以唯一標識某一行記錄,所以可以確保執行資料更新、刪除的時候不會出現張冠李戴的錯誤。當然,其它欄位可以輔助我們在執行這些操作時消除共享衝突,不過就不在這裡討論了。

主鍵除了上述作用外,常常與外來鍵構成參照完整性約束,防止出現資料不一致。所以資料庫在設計時,主鍵起到了很重要的作用。

常見的資料庫主鍵選取方式有:

自動增長欄位

手動增長欄位

uniqueidentifier

「***b」型別

候選碼:除了主碼,全碼裡面剩下的碼!

資料庫中關係的性質是什麼,簡述資料庫關係的性質?

1.資料庫的基本概念 資料庫,資料庫管理系統,資料庫系統。2.資料模型,實體聯絡模型及e r圖,從e r圖匯出關係資料模型。3.關係代數運算,包括集合運算及選擇 投影 連線運算,資料庫規範化理 論。4.資料庫設計方法和步驟 需求分析 概念設計 邏輯設計和物理設計的相關策略。你說指的關係性質是什麼?麻...

關聯式資料庫的表具有什麼性質,簡述資料庫關係的性質?

日常生活中,寫在紙上的 什麼樣子,資料庫裡的表也就是那個樣子 抽象 簡述資料庫關係的性質?1對11對0.1對1.常用的。當然,你排列組合,還有很多方式。關係中不允許出現相同的元組 關係中元組的順序 即行序 可任意 關係中屬性的順序可任意 同一屬性名下的各個屬性值必須來自同一個域,必須是同一型別的資料...

資料庫在建立表的時候如何設計表關係

1 一對一可以兩個實體設計在一個資料庫中l例如設計一個夫妻表,裡面放丈夫和妻子 2 一對多可以建兩張表,將一這一方的主鍵作為多那一方的外來鍵 3 多對多可以多加一張中間表,將另外兩個表的主鍵放到這個表中 請問資料庫在建立表的時候如何設計表關係,一對一,一對多,多對多 請高手舉例說明。謝謝!1 一對一...