幾個正規化簡記

2021-10-22 21:15:46 字數 1428 閱讀 9635

幾個基礎概念

實體:現實世界中客觀存在並可以被區別的事物。

屬性:實體所具有的某一特性。

元組:表中的一行就是乙個元組。所有欄位的集合。

分量:元組的某個屬性值。

:表中可以唯一確定乙個元組的某個屬性(或者屬性組),如果這樣的碼有不止乙個,那麼都叫 候選碼。

主碼,候選碼中的乙個。

全碼:如果乙個碼包含了所有的屬性,這個碼就是全碼。

主屬性:乙個屬性只要在任何乙個候選碼**現過,這個屬性就是主屬性

外碼:乙個屬性(或屬性組),它不是碼,但是它別的表的碼,它就是外碼。

候選碼: 若關係中的某一屬性或屬性組的值能唯一的標識乙個元組,而其任何真子集都不能再標識,則稱該屬性組為(超級碼)候選碼。

另外幾個概念

函式依賴

r(u)是屬性集u的關係模型,x,y是u的乙個子集,對於r(u)中的任乙個關係r,不可能存在兩個元組在x上屬性值相同,而在y上屬性值不同。則稱x函式確定y,或y函式依賴x。

個人理解,就是即在乙個 f 中,不能存在 f(x)->y,f(z)->y。

部分函式依賴

如果y函式依賴x,但不依賴x的任何乙個真子集,也就是x是極小的,那就稱y完全函式依賴x,否則稱y部分函式依賴x。

個人理解,在乙個 f 中,不能 f(x,y)->z,f(x)->z 或 f(y)->z

傳遞函式依賴

如果x決定y,y決定z,且y不決定x,那麼稱z對x傳遞函式依賴。

個人理解,在乙個 f 中,存在 f(x)->y,f(y)-/>x,f(y)->z

正規化簡要理解

1nf,一張表中不能存在多個相同的列,每個列都是不可再分,精確的。解決方法,拆字段。

2nf,不存在非主屬性部分函式依賴主鍵。只有在復合主鍵需要注意,解決方法,拆表。

3nf,非主屬性不函式依賴於其他非主屬性。檢查非主鍵的屬性之間是否存在依賴關係,解決方法,拆表。

bcnf,不存在主屬性間的函式依賴或傳遞函式依賴,有復合主鍵時需要注意,檢查主鍵中的屬性之間是否存在依賴關係,解決方法,拆表。

4nf,不存在多值依賴,需要從資料上的觀察,一般是多列的資料可能出現重複。解決方法,加個區分字段。

5nf,…。

最近事情簡記

最近看文章,做實驗,都有一種自己要慢慢主導自己,說服自己的感覺了。這個感覺有時挺要命的,尤其是我這個沒有太多主心骨的人。自己要給自己確認,給自己信心。收發郵件都是要注意措辭的,今天被maxin姐姐指導了一下,也順帶點撥了一下。主要還是精力沒有放在那上邊,導致做事情不夠好。做乙個事情不好,做其它事情也...

訊息佇列簡記

訊息佇列簡記 在了解了訊號量和共享記憶體之後,訊息佇列自然就比較容易理解了。之前提到共享記憶體的操作不是原子的,那麼便可以結合訊號量來進行控制。訊息佇列是另外一種程序間通訊的手段,使用以下幾個函式呼叫。include include include 一般上述兩個標頭檔案都被此檔案包含 int msg...

簡記游標用法

第一步 宣告游標 關鍵字 declare 游標名 關鍵字 cursor 關鍵字 for 記錄集例如 declare cur name cursor for select from tt 第二步開啟游標 open cur name 第四步提取資料 fetch next from cur name in...