步驟10:用規(guī)范化方法檢查數(shù)據(jù)模型
用規(guī)范化方法檢查每個(gè)實(shí)體,從實(shí)體中去除不需要的屬性或集合,以避免不必要的數(shù)據(jù)冗余和數(shù)據(jù)操控語(yǔ)言( DML)異常。
范式理論建立在函數(shù)依賴和多值依賴基礎(chǔ)上,要具有良好的數(shù)學(xué)基礎(chǔ)。對(duì)于每一實(shí)體(或關(guān)系——用主鍵代表實(shí)體得到關(guān)系間的函數(shù)依賴),可以先依據(jù)屬性間的語(yǔ)義關(guān)系獲得一個(gè)初始函數(shù)依賴集,然后利用規(guī)范化函數(shù)依賴?yán)碚撝小昂瘮?shù)依賴集最小覆蓋算法”對(duì)函數(shù)依賴集進(jìn)行極小化處理,去除冗余數(shù)據(jù)。
利用此方法可以使邏輯模型獲得較好的結(jié)構(gòu),但是這是非常煩瑣且費(fèi)時(shí)的工作,因?yàn)閷?duì)每一實(shí)體都需要重復(fù)這樣的過(guò)程,并且該方法依賴于初始函數(shù)依賴集,而該依賴集是由設(shè)計(jì)者根據(jù)業(yè)務(wù)、屬性語(yǔ)義確定的,沒(méi)有方法確定這樣的一個(gè)依賴集是否完全、合理。
基于這些原因,上述方法在實(shí)際操作中往往不被設(shè)計(jì)者采用。在此建議使用人工分析的方法,不再利用“函數(shù)依賴集最小覆蓋算法”來(lái)去除冗余。具體方法介紹如下:
對(duì)每一實(shí)體,考察其屬性之間的語(yǔ)義關(guān)系,建立該實(shí)體的函數(shù)依賴集,然后根據(jù)各范式定義,通過(guò)人工觀察與分析,依次去除冗余,使之滿足各種范式要求。一般模型要求達(dá)到第三范式。
對(duì)于關(guān)系,用主鍵代表實(shí)體,建立關(guān)系的函數(shù)依賴集,然后根據(jù)范式定義,通過(guò)人工觀察與分析,依次去除冗余關(guān)系。