資料庫系統中如何運用函式依賴FD推斷出關係集合的鍵

2021-09-13 19:28:05 字數 1302 閱讀 2898

1、鍵中的屬性函式決定了關係集合中所有其他屬性;

2、鍵的真子集不能函式決定關係集合中所有其他的屬性(就是說,鍵必須是最小的,不是唯一的)。

以上是我在關係型別資料庫系統學習中的總結。關於鍵的學術一點的定義可以看下面這篇部落格

3、包含「鍵」的集合就是「超鍵」了,可見超鍵沒有必要是最小的,也不是唯一的。 

1、屬性集合閉包的作用:用來推導出隱藏的函式依賴關係,也就是從給出的fd推斷出其他的fd;

2、屬性集合閉包的計算:

• 假設a=是乙個屬性集合,fd是 乙個函式依賴的集合,則基於fd的a的閉包b 也是乙個屬性集合,使得所有滿足fd中函式依 賴的元組都滿足以下函式依賴(由fd推導出): a1 a2 … an-> b,

• a的閉包記為a+,或者+。

• 研究基於函式依賴fd的a的閉包,可以分析a 的全部函式依賴,確定某個關係模式的超鍵, 並作為進一步研究函式依賴fd的閉包的基礎。 

基於fd的屬性集合閉包計算方法

• 基於fd集合的 +計算方法如下:

(1) 設x是結果的屬性集合,x初始化為。

(2) 在fd集合中查詢b1 b2 … bm-> c表示式, 使得b1, b2, …,bm在x中,c不在x中。若找到, 則c加入x。

(3) 重複步驟(2),直到x不再擴充套件。則可得: x= +

• 閉包的應用:當計算出基於某個fd集合的某個屬性 集合的閉包,就可以判斷該fd集合在該屬性集合中 所有隱含的函式依賴關係。 

下面給出例題

假設關係r(a, b, c, d, e, f)存在fd: ab->c, bc->ad, d ->e和cf-> b,求+ ?

解答:設x = ,  由ab->c可得 x = ;

由bc -> ad可得 x = ;

由d -> e可得x =  

+ =   

在由【美】jeffrey d.ullman、jennifer widom編寫的《關係資料庫系統基礎教程》一書中對閉包和鍵有著這樣的關係定義:

當且僅當a1 a2 ......an是關係的超鍵時,+才是這個關係所有屬性的集合。只有這樣,a1 a2 ......an才能函式決定其他的所有屬性。

如果要驗證是否為乙個關係的鍵,可以?

①檢查+是否包含了關係集合的所有屬性;

②再檢查從+移除乙個屬性後的集合x,使得x+包含關係的所有屬性。

我對書上這個定義的理解就是將超鍵不斷縮小到鍵的過程。

資料庫系統mysql MySQL資料庫系統

1 mysql的特點 1 多執行緒 多使用者 2 基於c s 客戶端 伺服器 架構 3 簡單易用 查詢速度快 4 安全可靠 2 mysql編譯安裝 代表鍵盤上tab鍵 1 準備工作 解除安裝使用rpm方式安裝的mysql rpm e mysql nodeps 安裝cmake包 cd media ta...

資料庫系統 資料庫 資料庫管理系統 資料庫系統

繼續寫資料庫系統的文章,第二篇 資料庫 資料庫管理系統 資料庫系統。本文主要談談這三者之間的關係。下方,摘自老師的ppt,非原創。資料庫管理系統 從系統角度看資料庫管理系統 資料庫系統 資料庫指的是長期儲存在計算機內有組織的,大量的,相關聯的,可共享的資料集合。資料應當是有組織的,不應該是雜亂無章的...

資料庫 資料庫系統 1 資料庫系統概述

本節先對資料庫系統有個全貌的了解。資料庫 database,是長期儲存在計算機內 有組織的 可共享的大量資料的集合 資料庫管理系統 dbms,位於使用者與os之間的一層資料管理軟體,負責科學地組織和儲存資料 高效地獲取和維護資料,功能包括 資料庫系統 dbs,是資料庫 資料庫管理系統 應用程式 資料...