黃雅瓊
(江西旅游商貿(mào)職業(yè)學院 江西 南昌 330000)
數(shù)據(jù)庫設計的主要內(nèi)容一般包括數(shù)據(jù)庫邏輯設計、數(shù)據(jù)庫概念設計以及數(shù)據(jù)庫物理設計。數(shù)據(jù)庫設計中的每一項內(nèi)容都是至關重要的,關系到數(shù)據(jù)庫的正常應用,而數(shù)據(jù)庫系統(tǒng)則在信息化技術應用系統(tǒng)中占據(jù)著重要的地位。在眾多應用系統(tǒng)之中,由于數(shù)據(jù)庫設計方面存在著不規(guī)范、不合理等狀況,直接導致了數(shù)據(jù)庫系統(tǒng)出現(xiàn)異常狀態(tài),嚴重的情況下,還會出現(xiàn)系統(tǒng)崩潰的現(xiàn)象。因此,在對數(shù)據(jù)庫系統(tǒng)進行設計的過程中,保持其設計的規(guī)范化是非常必要的。在對項目數(shù)據(jù)庫進行設計的過程中,應以項目的具體需求作為出發(fā)點,并從各階段數(shù)據(jù)庫出發(fā),使數(shù)據(jù)庫系統(tǒng)的設計更加合理化、規(guī)范化。本文主要從數(shù)據(jù)庫邏輯設計著手,并從范式、約束、命名等方面來實現(xiàn)規(guī)范化檢查和設計。
為了使數(shù)據(jù)庫邏輯設計在結(jié)構(gòu)方面更加清晰化、合理化,并保證數(shù)據(jù)庫中的冗余數(shù)據(jù)能夠減少,從而在對數(shù)據(jù)進行插入、修改以及刪除的過程中,使其出現(xiàn)的異常能夠得以避免,在進行數(shù)據(jù)庫邏輯設計的過程中應該對相應的規(guī)則進行遵循,當數(shù)據(jù)庫的類型為關系型時,此規(guī)則及被稱作范式。從當前關系數(shù)據(jù)庫的范式來看,主要有6種,分別為第一范式(簡稱為1NF)、第二范式(簡稱為2NF)、第三范式(簡稱3NF)、第四范式(簡稱4NF)、第五范式(簡稱5NF)以及Boyce-Codd范式(簡稱BCNF)。以上6種范式的具體規(guī)則和要求存在的差異,其中,第一范式的要求是最低的,同時其要求也是最基本的。因應用系統(tǒng)在具體需求方面存在著差異,因此,在進行數(shù)據(jù)庫邏輯設計過程中,應該使各種范式的具體要求得到滿足。但著并不意味著在滿足范式方面最好能夠做到更多范式的滿足,而是需要以應用系統(tǒng)對數(shù)據(jù)進行訪問的情況以及數(shù)據(jù)庫存儲過程中的數(shù)據(jù)記錄的具體情況為根據(jù),一般來講,若要能夠使第三范式(3NF)得到滿足即可。
其目的是為了使實體中形成的完整性得以實現(xiàn),包括分布在唯一標識表內(nèi)部的各實體。通常而言,各數(shù)據(jù)表都應該對主鍵進行設置,并且一個數(shù)據(jù)表只能夠設置單個主鍵,所設置的這一主鍵可以選擇某一字段,也能夠選擇多字段相互組合而形成的復合字段,也稱之為復合主鍵。對表中的字段進行選擇,使其成為主鍵的關鍵點在于這一字段是否能夠?qū)Ρ碇懈鲗嶓w進行唯一標識。
對數(shù)據(jù)表本身的參照完整性進行實現(xiàn),能夠?qū)Ω鲾?shù)據(jù)表之間形成的聯(lián)系進行體現(xiàn),這是使各數(shù)據(jù)表之間出現(xiàn)的數(shù)據(jù)能夠保持一致性的主要方法。例如,對b表中出現(xiàn)的主鍵字段進行引用,并將其當做a表中的某一字段,這種情況下,上表中的這一字段就是它的外鍵,這就使a表和b表之間外鍵約束的這種關系得以形成和實現(xiàn),在a表之中這一字段的值應該對b表中的與這一字段相互對應的NULL值或是有效值,若對應的是NULL值,則其前提條件是a表之中的這一字段必須允許NULL值的出現(xiàn)和存在。
主要用于特定數(shù)據(jù)表之中的某一字段或者是多個字段能夠接受的格式或者數(shù)據(jù)值。例如,在某一特定數(shù)據(jù)表之中,對“性別”這一字段進行檢查約束的設置時,使這一字段的值僅僅能夠接受“男”或者是“女”,當其他值進行輸入時,則顯示無效。當對字段“郵政編碼”進行檢查約束的設置時,所接受的數(shù)字位數(shù)只能是六位數(shù)。
對于出現(xiàn)在數(shù)據(jù)表之后總的某一非主鍵類型的字段,若要保證其輸入的值不重復,這是對這一字段的設置便需要進行唯一約束。例如,若要保證數(shù)據(jù)表中的“用戶名”這一字段不出現(xiàn)重復值,在這一字段中對唯一約束進行設置便可。
主要是在數(shù)據(jù)表之中,對某一個字段的值進行單個定義,當相應的輸入值不存在時,則將此單個定義的字段值使用系統(tǒng)中默認自動提供的字段值進行代替。
在對數(shù)據(jù)庫邏輯結(jié)構(gòu)進行設計的過程中,無論是為數(shù)據(jù)表之中的某一字段進行命名,還是為數(shù)據(jù)庫之中的某一對象進行命名,都應該對相應的命名規(guī)則進行遵循,從而保證其規(guī)范化。在項目之中,對數(shù)據(jù)庫字段或是對象的命名規(guī)范化過程中,需要對以下原則進行遵循:
4.1 對數(shù)據(jù)庫對象命名所采用的規(guī)則應該是此類行業(yè)中被廣泛認可的共性規(guī)則,并不建議應用與這一規(guī)則相悖逆的規(guī)則而自成的相關體系,不應該特立獨行。若命名的過程中需要以字母進行命名時,應該使用較為容易看懂的常用英文單詞或者是有英文單詞組合而成的短語,而不應該對一些不常使用的、難以理解的英文單詞或是短語進行應用,同時,也不應該使用漢語拼音來對其命名。
4.2 在進行命名的過程中,應該保證對共性規(guī)則進行遵循,這是最基本的前提條件,當然,在進行命名的過程中,可以通過以及的命名風格來進行命名,但是若要采取這種命名方法,應該使同一個項目之中所采取的命名風格保持相應的一致性,而不應該出現(xiàn)需要命名的對象采取的命名風格存在差異,若在命名風格方面出現(xiàn)差異,則在整體上會給人一種雜亂感,顯得沒有規(guī)律感,從而使命名的規(guī)范化程度得以降低,從而不利于滿足命名的規(guī)范化。
4.3 在使用單詞或是縮寫單詞時,應該保證這些單詞以及縮寫單詞能夠被使用者顧名思義,使單詞或者縮寫單詞的顯性含義得以明顯化,也就是說,再低單詞以及縮寫單詞進行應用時,應該保證單詞及縮寫單詞的含義清晰、明確,讓人一看便懂,在進行縮寫的過程中,應該使其含義的被理解程度偏重于大眾化,并且縮寫的形式不會出現(xiàn)任何歧義,所采取的縮寫方式最好是經(jīng)常見到的縮寫方式。例如,在對數(shù)量英文單詞“Quantity”進行縮寫時,應該使用“Qty”進行代表縮寫,而不要使用“Qua”、“Qat”等重復可能性較多的縮寫詞進行代表縮寫。除此之外,對于英文縮寫而言,還應該有相應的注釋對縮寫進行說明。
4.4 命名的過程中,不要對一些特殊性的符號或是全數(shù)字進行使用,并且更不應該對數(shù)字和符號混合使用來進行命名。例如,命名時不應使用特殊符號“?”、“¥”、“%”等;命名時不應使用全數(shù)字“12”、“5”“789”等;命名時更不應對數(shù)字和符號混合使用,如“71#”、“9&”等。命名的過程中,必須保證名稱的首字符為英文字母。
4.5 在命名的過程中,不應該對數(shù)據(jù)庫系統(tǒng)之中出現(xiàn)的關鍵字來進行使用命名。例如,英文單詞“join”、“table”以及“create”等,這些詞匯在數(shù)據(jù)庫系統(tǒng)中較為容易出現(xiàn),并且在數(shù)據(jù)庫系統(tǒng)之中還具有某些特殊的含義。
4.6 在命名的過程中,應該避免使用空格來進行命名,在使用短語進行命名時,單詞之間也不應該存有空格。
綜上所述,數(shù)據(jù)庫邏輯設計要求一般較為嚴格,尤其特定的規(guī)范,若在設計之中出現(xiàn)不符合相應規(guī)范的情況,那么將會導致數(shù)據(jù)庫邏輯設計出現(xiàn)錯亂,失去其應用的效果,因此,在對數(shù)據(jù)庫邏輯設計過程中應注重設計的規(guī)范性,從而使數(shù)據(jù)庫能夠更好的被應用。
[1]劉中勝.數(shù)據(jù)庫邏輯設計中的規(guī)范化[J].數(shù)字技術與應用,2017(1):188-188.
[2]邢泉.數(shù)據(jù)庫邏輯設計中消除規(guī)范化處理問題[J].計算機系統(tǒng)應用,2013,22(6):179-181.