資料庫 這可能是介紹函式依賴最全面的

2021-10-05 05:46:34 字數 2043 閱讀 4085

介紹函式依賴之前先非形式的說一下資料依賴。

資料依賴是乙個關係內部屬性與屬性之間的一種約束關係。這種約束關係是通過屬性間的相等與否體現出來的資料見相關聯絡。

函式依賴是資料依賴的乙個重要型別。

先來看一下函式依賴的定義:

函式依賴:設r(u)是屬性集u上的關係模式,x,y是u的子集。若對於x上的每個值都有y上的乙個唯一值與之對應,則稱x和y具有函式依賴關係,並稱x函式決定y,或稱y函式依賴於x,記作x→y,稱x為決定因素

比如:設乙個學生關係s=

解析:在關係s中,很明顯可以看出學號為主碼,在該關係中每個學生的學號(x),都對應姓名屬性(y)中唯一的乙個值,也可以說成乙個學生的姓名由其學號唯一決定,這也就對應了定義所描述的,即學號決定姓名,或者姓名依賴於學號,學號是決定因素。同理,當乙個學生的學號被確定下來之後,他的性別,年齡也就確定了。可以記為學號→,也可以分開來記學號→姓名,學號→性別····

在該學生關係中,除了學號,為什麼其他的屬性稱為決定因素形成函式依賴?因為對於它們的每個屬性值,都可能對應另一屬性的多個不同的取值,比如年齡屬性取乙個「23」,則會對應多個學號而不是乙個,與定義相違背。

例題1.1:學生,則其中有哪些函式依賴關係?

1.2:客戶

屬性a屬性b

屬性c123

4235

331.3:**存在的函式依賴有:a→b,b→c

注意:函式依賴是語義範疇的概念,只能根據語義來確定乙個函式依賴。比如姓名年齡這個函式依賴只有在班級中沒有同名人的條件下才能成立。若允許有同名人的情況下年齡就不函式依賴於姓名了。

z函式依賴的特性

解析:在學生關係中,學號總能決定它本身,記作「學號→學號」,對於任乙個給定的學號,都有它本身的學號值唯一對應,此為平凡函式依賴。學號函式決定其他每個屬性都是非平凡函式依賴,比如學號→性別,另外→性別,這樣也是非平凡函式依賴

定義:在r(u)中,若存在x→y,同時x的任何乙個真子集x』,都有y不函式依賴於x』,則稱y對x的函式依賴為完全函式依賴。

記作:x

若存在x→y,但y不完全函式依賴於x,則稱y部分函式依賴於x,或者x部分函式決定y。

記作:x

比如:s=

解析:1.學號能決定姓名,年齡,班號,班長,但是不能決定課號。

s ,對應完全函式依賴的定義:x的任何乙個真子集x』,都有y不函式依賴於x』,即單獨的學號不能決定s,單獨的課號不能決定s,所以s對的函式依賴為完全函式依賴

2.姓名,單獨的學號可以決定姓名,所以姓名部分函式依賴於

3.成績,單獨的學號決定不了乙個同學的成績,單獨的課號也決定不了,組合在一起能決定,即為完全函式依賴。

例題:2.1:y

s定義:關係r中,x、y、z是屬性集,x決定y的值(xy),y不決定x,y決定z的值(y→z),則有x決定z(x→z) 稱z傳遞函式依賴於x

比如:s=

純手打,如果文中有錯誤,歡迎各位同學指出,如果對你的學習有幫助,也給同學我乙個贊吧哈哈哈哈

這可能是史上最全 Redis 高可用解決方案總結

本文主要針對 redis 常見的幾種使用方式及其優缺點展開分析。一 常見使用方式 redis 的幾種常見使用方式包括 1.redis 單副本 2.redis 多副本 主從 3.redis sentinel 哨兵 4.redis cluster 5.redis 自研。二 各種使用方式的優缺點 1 re...

這可能是最容易懂的 資料結構複雜度分析啦

1 資料結構是 資料的儲存結構。2 演算法是對資料的操作。資料結構和演算法總是在一起的,兩者缺一不可。那麼我們為什麼要使用資料結構和演算法呢?總的來說就是 更快 更省。更快速的處理資料,更省空間的儲存資料!那麼怎麼知道資料是否 更快 更省 呢?這裡就要說到複雜度了。可能會有人說,我何必這麼麻煩啊呢?...

資料庫 筆記 函式依賴

函式依賴的推導規則 完全函式依賴與部分函式依賴 傳遞函式依賴 候選鍵在函式依賴中的定義 總結定義 函式依賴是關係模式中,屬性之間的邏輯依賴關係 定義如下 設關係r u,f u是屬性集,f是函式依賴集,令x y是u的兩個子集 對於任意r的乙個關係r,x的每乙個具體值,y都有唯一值與之對應 則,x決定函...