設計數(shù)據(jù)庫的步驟:
1.收集信息
2.標識實體
3.標識每個實體需要存儲的詳細信息
4.標識實體之間的關系
數(shù)據(jù)庫的設計就是將數(shù)據(jù)庫中的數(shù)據(jù)實體及這些數(shù)據(jù)實體之間的關系,進行結(jié)構(gòu)化的過程。
為了避免數(shù)據(jù)冗余等問題導致對性能的影響
數(shù)據(jù)庫表中的所有字段都具有單一屬性(即字段不能再分割了)
單一屬性的列是由基本數(shù)據(jù)類型所構(gòu)成的
設計出來的表都是簡單的二維表
第二范式在第一范式的基礎之上更進一層。第二范式需要確保數(shù)據(jù)庫表中的每一列都和主鍵相關,而不能只與主鍵的某一部分相關(主要針對聯(lián)合主鍵而言)。也就是說在一個數(shù)據(jù)庫表中,一個表中只能保存一種數(shù)據(jù),不可以把多種數(shù)據(jù)保存在同一張數(shù)據(jù)庫表中。
首先要滿足第二范式,其次非主屬性之間不存在函數(shù)依賴。由于滿足了第二范式,表示每個非主屬性都函數(shù)依賴于主鍵。如果非主屬性之間存在了函數(shù)依賴,就會存在傳遞依賴,這樣就不滿足第三范式。
優(yōu)點:
可以盡量的減少數(shù)據(jù)冗余
范式化的更新操作比反范式化更快
范式化的表通常比反范式化更小
缺點:
對于查詢需要關聯(lián)多個表
更難進行索引優(yōu)化
第一范式就是原子性,字段不可再分;
第二范式就是完全依賴,沒有部分依賴;
第三范式就是沒有傳遞依賴;
MySQL優(yōu)勢
免費
1.小、中型企業(yè)難以負擔SQLserver和Oracle的高昂費用s
2.部分公司為了未來上市時不出現(xiàn)版權(quán)意外
開源
大公司愿意支付Oracle的高昂費用,但是不放心服務器在別人手上
跨平臺
MySQL同時支持Windows、Unix、Linux和Mac OS等操作系統(tǒng)
功能強大且使用方便
1.運行速度快
2.可維護性強
3.易用性強