數據類型
數據的定義在各種場合均不一樣,數據的載體也不一樣,數據的表現方式和傳遞方式也不一樣,數據的處理方式也不一樣,數據庫不可能處理所有形式的數據,因此必須規范數據,按照類型划分和處理。
連續和離散(Continuous versus Discrete)
在現實生活中,有些事物是離散地,可以准確地標識他們,如果兩個蘋果,三個梨,但某些事務是連續地,無法准確地指明,如1/3,如某人跑完1000M所花費時間,隨着使用儀器的精度提高,我們可以將精度從分鍾到秒,從秒到毫秒,在到納秒,但終無法准確描述其花費時間,對應浮點數和時間數據,因此有了數據精度。
定量和定性(Quantitative versus Qualitative)
定量用來解答事物的多少問題,如高多少與重多少;
定性用來解答事物的為什么的問題,如果為什么不合格,為什么比其他好;
准確度和精確度
准確度和精確度是衡量事物的兩個不同的單位,准確度高不代表精確度高,反之,精確度高不代表准確度高。
數據和信息(Data versus Information)
信息和智慧(Information versus Wisdom)
范圍/顆粒度/准確度/精確度
Range, Granularity, Accuracy and Precision
在數據庫設計過程中,選用什么類型來存放數據,往往需要考慮數據庫類型的這四個方面是否滿足需求,而合適的類型不僅需要保證數據被正確存儲,還需要考慮數據被合理存儲以及后續訪問處理的方便性。
如可以使用BIGINT來代替SMALLINT,但存儲空間被不合理地浪費掉了
如可以使用NVARCHAR來代替DATIETIME,但數據處理時需要轉換,從而資源浪費
如可以將時間拆分成DATE和TIME來存儲,但改設計可能只滿足某一個需求點,而導致很多問題