【正規化與函式依賴】3NF與BCNF的區別
*本文中碼指代候選碼,主屬性為構成碼的屬性。
先簡要引入幾個概念
圖1
圖2
單拿出來我認為不是很好理解的3NF和BCNF詳細的說說。
書上寫了,BCNF是完善後的3NF。從圖2中顯然得出,1-3NF都是規範非主屬性與碼之間的關係。而主屬性之間的關係沒有規範。有人說了 ,要是構成碼的主屬性之間存在部分函式依賴或傳遞函式依賴,那麼這就不是碼,是超碼了。too young!誰告訴你碼必須是一個了?比方說AB->C,BC->A,此時AB、BC都是碼即ABC都是主屬性。所以ABC之間有什麼函式依賴不在1-3NF的約束之內。所以需要有BCNF來約束主屬性之間的函式依賴了。
舉個例子,R={AB->C,BC->A,C->A},R的碼為AB、BC,故主屬性為ABC,R為3NF。但是函式依賴C->A,決定因素C不包含碼BC故R不是BCNF。
相關推薦
【正規化與函式依賴】3NF與BCNF的區別
*本文中碼指代候選碼,主屬性為構成碼的屬性。 先簡要引入幾個概念 圖1 圖2 單拿出來我認為不是很好理解的3NF和BCNF詳細的說說。 書上寫了,BCNF是完善後的3NF。從圖2中顯然得出,1-3NF都是規範非主屬性與碼之間的關係。而主屬性之間的關係沒
step4_演算法_ACM遞推與組合 HDU1210 Eddy's 洗牌問題【遞推函式+模擬】
第一遍編譯出錯。原來是next不能用,好惡心!!! 思路:記錄某個點下一步要走向的點的位置放在mnext[]中。 然後讓1按照規則走下去,直到1回到1點。走的步數就是步數。 #include&
【並發編程】CAS與synchronized
ews 算法 正式 ima PE 理解 cnblogs inf sch 線程安全 眾所周知,Java是多線程的。但是,Java對多線程的支持其實是一把雙刃劍。一旦涉及到多個線程操作共享資源的情況時,處理不好就可能產生線程安全問題。線程安全性可能是非常復雜的,在沒有充足的同步
【蒟蒻周報】思維與結論的碰撞 9.17-9.23
fields 互不侵犯king tips sco 基本 logs lin 計算 html 周出題解 「NOIP2018模擬9.17」線段樹 - 思路題 「BZOJ2190」[SDOI2008] 儀仗隊 - 歐拉函數 「NOIP2018模擬9.18」最近公共祖先 - 結論題
【死磕springboot2.0】@restcontroller與 @controller的 區別;
@restcontroller *原始碼如下:其包含@Controller 、@ResponseBody * @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Controller
【模式識別與機器學習】——PCA與Kernel PCA介紹與對比
PCA與Kernel PCA介紹與對比 1. 理論介紹 PCA:是常用的提取資料的手段,其功能為提取主成分(主要資訊),摒棄冗餘資訊(次要資訊),從而得到壓縮後的資料,實現維度的下降。其設想通過投影矩陣將高維資訊轉換到另一個座標系下,並通過平移將資料均值變為零。PCA認為,在變換過後的
【無人機 學習筆記 4】GPS與RTK技術
什麼是RTK技術 常規的GPS測量方法,如靜態、快速靜態、動態測量都需要事後進行解算才能獲得釐米級的精度,而RTK是能夠在野外實時得到釐米級定位精度的測量方法,它採用了載波相位動態實時差分(Real - time kinematic)方法,是GPS應用的重大里程碑,它的出現為工程放樣、
【Python3 爬蟲學習筆記】變數與資料型別 2
資料型別的轉換 變數的資料型別非常重要,通常情況下只有相同型別的變數才能進行運算。Python提供了簡單的資料型別自動轉換功能:如果是整數與符號運算,系統會先將整數轉換為浮點數再運算,運算結果為浮點型,例如: num1 = 5 + 7.8 # 結果為12.8,浮
【IT人士健康系列】長期與電腦打交道,如何預防肩周炎?
在釋出【IT人士健康系列】第一篇文章介紹IT人士如何預防滑鼠手後,在微信公眾號(運維派微信公眾號:yunweipai)中收到不了不少朋友的點贊,所以今天繼續該系列文章,希望大家除了有紮實的專業技能,也要有個健康的身體:) 對於從事IT領域的朋友們,每天面對電腦的時間遠遠超出一般上班族、白領人士,因此
【AutoMapper官方文件】DTO與Domin Model相互轉換(上)
寫在前面 AutoMapper目錄: 本篇目錄: 上一篇《【道德經】漫談實體、物件、DTO及AutoMapper的使用 》,因為內容寫的有點跑偏,關於AutoMapper的使用最後只是簡單寫了下,很明顯這種簡單的使用方式不能滿足專案中複雜的需要,網上找了下AutoMapper相關文件
【AutoMapper官方文件】DTO與Domin Model相互轉換(中)
寫在前面 AutoMapper目錄: 本篇目錄: 隨著AutoMapper的學習深入,發現AutoMapper在物件轉換方面(Object-Object Mapping)還蠻強大的,當時使用AutoMapper的場景是DTO與Domin Model相互轉換,所以文章的標題就是這個(標
【AutoMapper官方文件】DTO與Domin Model相互轉換(下)
寫在前面 AutoMapper目錄: 本篇目錄: 關於AutoMapper寫到這基本的東西都差不多了,上一篇定義為靈活配置篇,本篇可以定義為擴充套件應用篇,加一些補充,關於AutoMapper的專案應用,網上找了幾篇英文文章,雖然看不懂,但是程式碼是相通的,感覺很不錯,主要是Enti
【平行計算-CUDA開發】OpenACC與OpenHMPP
在西雅圖超級計算大會(SC11)上釋出了新的基於指令的加速器並行程式設計標準,既OpenACC。這個開發標準的目的是讓更多的程式設計人員可以用到GPU計算,同時計算結果可以跨加速器使用,甚至能用在多核CPU上。出於顯而易見的原因,NVIDIA在大力推廣和支援OpenACC。
【django介面自動化4】session與cookie
一、views #登陸動作 def login_action(request): if request.method == "POST": username = request
【微信小程式】NavigateTo與redirectTo的區別
navigateTo() 導航到另一個頁面,會將當前的頁面隱藏起來,使頁面進入hide狀態,並不會關閉可以通過返回按鈕回到當前的頁面 redirectTo() redirectTo()會使當前介面進入unload狀態,即關閉該頁面,將無法回到當前頁面。
【Java多執行緒】synchronized與執行緒安全
介紹 修飾方法:一個執行緒去呼叫一個加synchronized的方法的時候,會獲得該物件的 物件鎖。 修飾靜態方法:一個執行緒去呼叫一個既加static,又加synchronized的方法的時候,會獲得該物件的 類鎖。 修飾程式碼塊: ①加物件鎖:
【Objective-C高階程式設計】iOS與OS X多執行緒和記憶體管理
1. __weak修飾符的優點,除了解決迴圈引用的問題,在持有某物件的弱引用時,若該物件被廢棄,則此弱引用將自動失效並且處於nil被賦值的狀態(空弱引用)。 如: id __wark obj1 = nil; { id _strong obj0 = [[NSObject
【Linux多執行緒】同步與互斥的區別
同步與互斥這兩個概念經常被混淆,所以在這裡說一下它們的區別。 一、同步與互斥的區別 1. 同步 同步,又稱直接制約關係,是指多個執行緒(或程序)為了合作完成任務,必須嚴格按照規定的 某種先後次序來執行。 例如,執行緒 T2 中的語句 y 要使用執行緒
【Java程式設計的邏輯】堆與優先順序佇列&PriorityQueue
完全二叉樹 & 滿二叉樹 & 堆 基本概念 滿二叉樹是指除了最後一層外,每個節點都有兩個孩子,而最後一層都是葉子節點,都沒有孩子。 滿二叉樹一定是完全二叉樹,但完全二叉樹不要求最後一層是滿的,但如果不滿,則要求所有節點必須集中在最
關係模式的分解與函式依賴模式的判斷
一:候選鍵的判斷 屬性集的閉包: 令α為一屬性集。我們稱在函式依賴集F下由α函式確定的所有屬性的集合為F下α的閉包,記為α+ 。 下面給出一個計算α+的演算法,該演算法的輸入是函式依賴集F和屬性集α,輸出儲存在變數result中。 演算法: result=α;