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