前三正規化概述

2021-06-19 00:30:49 字數 853 閱讀 2838

1,mysql優化包含的內容,由上到下重要性降低。

l  資料庫(表)設計合理,表的設計要符合3nf,有時我們需要適當的逆正規化。

l  sql語句優化。

l  資料的配置。

l  適當硬體配置和作業系統。

2,第一正規化1nf。

1nf是對屬性原子性的約束,要求屬性具有原子性,不可以再分解(只要是關係型資料庫都滿足1nf)

3,第二正規化2nf。

在滿足1nf的基礎上,2nf要求記錄具有唯一性,也就是說,一行記錄不能出現完全相同的兩次。

通常的設計手法是設計乙個主鍵。可以使復合主鍵,可以是單主鍵。

4,第三正規化3nf。

在滿足2nf的基礎上,對欄位冗餘型的約束,即任何字段不能由其他字段派生出來。

例如,如果在學生表中有班級名稱的字段,而又有一張班級表,班級表中也有班級名稱,那麼我們不可以在學生表中直接填寫班級名稱,要通過關聯班級表來派生出班級名稱,即如果乙個表的乙個字段可以從另乙個表中獲取,那麼就要通過外來鍵的形式從別的表中獲取過來,這樣才滿足3nf。

5,但是,沒有冗餘的資料庫未必是最好的資料庫,有時為了提高執行效率,就必須降低正規化標準,適當保留冗餘資料。

逆正規化:根據具體需要,將滿足正規化的表結構適當的降低正規化的規則,使之效能更高。

6,冗餘規則:一對多時,應該盡可能將逆正規化的內容放在1的那邊。

比如,單位資訊和學生活動是一對多的關係,單位資訊有單位名稱字段,學生活動也有單位資訊字段,按照正規化來講,學生活動的單位資訊欄位的值應該引用單位資訊中單位名稱的值,但是這樣做一旦修改單位資訊表中的單位名稱,要一起將學生活動表中的單位名稱改掉,所以這裡的單位資訊應該在兩邊都存,就產生了冗餘,這是為了效率更高的冗餘,所以正規化不是必須遵循的,適當的時候要逆正規化。

程式設計正規化概述

程式設計正規化這個名詞聽起來好像比較高深,但是其實本質上是它是對於程式設計風格,或者設計思路的抽象。它並不是跟程式語言是一一繫結的關係,有些程式語言python 天生可以支援多種程式設計正規化。從程式設計根本思維上的差異上區分,目前主要分成兩種 命令式 指令式 程式設計 和宣告式程式設計 命令式程式...

一正規化 二正規化 三正規化

1 第一正規化 如果乙個關係模式r的所有屬性都是不可分的基本資料項,則r 1nf。簡單的說,第一正規化就是每乙個屬性都不可再分。不符合第一正規化則不能稱為關聯式資料庫。第一正規化 1nf 要求資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值。若某一列有多個值,可以將該列單獨拆分成乙個實...

概述TCP IP(前篇)

協議分為5層 1.物理層 2.資料鏈路層 3.網路層 4.傳輸層 5.應用層 物理層 1.基本概念 2.資料通訊基礎知識 3.奈氏準則和夏農定理 4.編碼與調製 5.傳輸介質與裝置 資料鏈路層 1.基本概念 2.封裝成幀 3.差錯檢測 4.可靠傳輸 5.點對點協議ppp 6.接入控制 7.隨機接入 ...