確保數據的完整性
數據庫域最簡單的就是數據庫中列使用的數據類型。 此數據類型可以是內置類型(例如整數或字符串)或定義數據約束的自定義類型。
數據輸入和域
當您將數據輸入任何形式的在線表格時 - 無論是您的姓名和電子郵件,還是完整的工作申請表 - 數據庫都會將您的輸入存儲在幕後。 該數據庫根據一組標準評估您的條目。 例如,如果輸入一個郵政編碼,數據庫希望找到五個數字或一個完整的美國郵政編碼:五個數字後跟一個連字符,然後四個數字。 如果您將姓名輸入郵政編碼字段,數據庫可能會投訴。
這是因為數據庫正在針對為郵政編碼字段定義的域測試您的條目。 一個域基本上是一個可以包含可選限制的數據類型。
了解數據庫域
要理解數據庫域,我們來考慮數據庫的其他幾個方面:
- 數據庫模式定義了一組屬性 ,也稱為列或字段。 例如,如果您有一個表“員工聯繫信息”,它可能包括FirstName,LastName,JobTitle,StreetAddress,City,State,ZipCode,PhoneNumber和Email的屬性。
- 每個屬性都有一個定義允許值的域。 這可能包括其數據類型,長度,值和其他細節。
例如,屬性ZipCode的域可能會指定數字數據類型,例如整數,通常稱為INT或INTEGER,具體取決於數據庫。 或者數據庫設計人員可能會選擇將其定義為字符,通常稱為CHAR。 該屬性可以進一步定義為需要特定的長度,或者是否允許空值或未知值。
當您將所有定義域的元素集中在一起時,最終會得到一種自定義數據類型,也稱為“用戶定義數據類型”或UDT。
關於域的完整性
允許的屬性值創建域完整性 ,這可確保字段中的所有數據均包含有效值。
域完整性由以下定義:
- 數據類型,例如整數,字符或小數
- 數據的允許長度
- 範圍,定義上限和下限
- 任何約束或對可允許值的限制。 例如,美國的郵政編碼字段可能會強制執行完整的ZIP + 4代碼或完整的九位代碼。
- NULL支持的類型,或者屬性是否可以具有未知或NULL值
- 默認值,如果有的話
- 日期格式(如果適用)(例如,dd / mm / yy或mm / dd / yyyy)
創建一個域
對於使用SQL (結構化查詢語言)或SQL風格的數據庫,請使用CREATE DOMAIN SQL命令。
例如,此處的執行語句創建一個包含五個字符的數據類型為CHAR的ZipCode屬性。 NULL或未知值是不允許的。 數據范圍必須介於“00000”和“99999之間”。創建數據類型為CHAR的ZipCode屬性包含五個字符。 NULL或未知值是不允許的。 數據范圍必須介於“00000”和“99999”之間。
CREATE DOMAIN ZipCode CHAR(5)NOT NULL CHECK(VALUE>'00000'AND VALUE
每種類型的數據庫都提供了一種方法來定義管理可允許數據的一組限制和規則,即使它沒有將其稱為域。 有關詳細信息,請參閱數據庫文檔。