當前位置:股票大全官網 - 股票投資 - 請給我解釋壹下數據庫設計的基本原理!

請給我解釋壹下數據庫設計的基本原理!

數據庫設計的三大範式所謂範式就是關系數據庫關系模式的標準化標準,從寬松到嚴格分為不同的範式。常用的有第壹範式、第二範式、第三範式和BC範式。範式是基於函數依賴的。

函數相關

定義:有壹個關系模式R(U),其中X和Y是屬性集U的子集,函數依賴是壹個形狀為X → Y的命題,對於任意R中的二元組T和S,有t[X]=s[X]蘊涵t[Y]=s[Y],則FD X→Y在關系模式R(U)中成立。X→Y讀作‘X函數決定Y’,或者‘Y函數依賴X’。壹般來說,如果表中壹個字段Y的值是由另壹個字段或壹組字段X的值決定的,就說Y函數依賴於X..函數依賴要通過理解數據項和企業規則來確定,從表的內容推導出來的函數依賴可能是不正確的。

第壹範式(1NF)

定義:如果關系模式R的每個關系R的屬性是不可分的數據項,那麽R稱為第壹範式的模式。

簡單來說,每個屬性都是壹個原子術語,不可分割。1NF是關系模型的最低要求。如果數據庫設計不能滿足第壹範式的要求,就不叫關系數據庫。關系數據庫設計研究的規範化是基於1NF。

第二範式(2NF)

定義:如果關系模式R是1NF,每個非主性質完備函數依賴於候選鍵,那麽R稱為第二範式。

簡單來說,第二範式必須滿足以下條件:首先,必須滿足第壹範式;其次,每個非主鍵屬性必須完全依賴於候選鍵或主鍵。換句話說,每個非主鍵屬性是由整個主鍵函數決定的,而不是由主鍵的壹部分決定的。例如:

每日股票市場表的主鍵由股票代碼和交易日期組成。非主屬性,比如收盤價、成交量,都是由主鍵決定的,也就是股票代碼和交易日的作用。無論是股票代碼還是交易日本身都不能決定這些非主要屬性。如果本表中有非主業股票簡稱,可以通過股票代碼來確定股票簡稱,這樣股票簡稱的非主業屬性就不完全依賴於候選關鍵字,這種設計不符合第二範式。

第三範式(3NF)

定義:如果關系模式R是2NF,並且關系模式R(U,f)中的所有非主屬性對任何候選鍵都沒有傳遞依賴,那麽關系模式R屬於第三範式。

簡單來說,第三範式必須滿足以下條件:壹是必須滿足第二範式,二是非主屬性之間沒有函數依賴。因為滿足第二範式,這意味著每個非主屬性在功能上都依賴於主鍵。如果非主屬性之間有函數依賴,就會有傳遞依賴,不滿足第三範式。

例如,在股票基本信息表中,主鍵是股票代碼,非主要屬性所屬的行業有主要行業和次要行業。根據業務規則,第二產業可以功能決定第壹產業,也就是說存在這樣的關系:股票代碼功能決定第二產業,第二產業功能決定第壹產業,形成轉移依賴,所以設計不符合第三範式。但在實踐中,為了方便查詢和使用,有時會違背第三範式。比如妳沒有第壹產業的屬性,就需要查詢第壹產業的相關股票。需要查詢時,需要使用函數從第二產業生成第壹產業,這會影響性能。所以通常會加上壹級行業的屬性。

BC範式(BCNF)

BC範式是第三範式的增強版,但有人說是直接從1NF發展而來,即每壹個屬性,包括主屬性或非主屬性,都完全依賴於候選鍵,沒有傳遞依賴。