9.1.1 實體完整性(entity integrity)
實體完整性規定表的每一行在表中是惟一的實體。表中定義的unique primarykey 和identity 約束就是實體完整性的體現。
9.1.2 域完整性(domain integrity)
域完整性是指數據庫表中的列必須滿足某種特定的數據類型或約束。其中約束又包括取值范圍、精度等規定。表中的check、foreign key 約束和default、 not null定義都屬于域完整性的范疇。
9.1.3 參照完整性(referential integrity)
參照完整性是指兩個表的主關鍵字和外關鍵字的數據應對應一致。它確保了有主關鍵字的表中對應其它表的外關鍵字的行存在,即保證了表之間的數據的一致性,防止了數據丟失或無意義的數據在數據庫中擴散。參照完整性是建立在外關鍵字和主關鍵字之間或外關鍵字和惟一性關鍵字之間的關系上的。在sql server 中,參照完整性作用表現在如下幾個方面:
禁止在從表中插入包含主表中不存在的關鍵字的數據行;
禁止會導致從表中的相應值孤立的主表中的外關鍵字值改變;
禁止刪除在從表中的有對應記錄的主表記錄。
9.1.4 用戶定義的完整性(user-defined integrity)
不同的關系數據庫系統根據其應用環境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對某個特定關系數據庫的約束條件,它反映某一具體應用所涉及的數據必須滿足的語義要求。sql server 提供了定義和檢驗這類完整性的機制,以便用統一的系統方法來處理它們,而不是用應用程序來承擔這一功能。其它的完整性類型都支持用戶定義的完整性。
sql server 提供了一些工具來幫助用戶實現數據完整性,其中最主要的是:規則(rule)、缺省值(default)、約束(constraint) 和觸發器(trigger)。其中約束在前面的章節中已經介紹,觸發器將在后面的章節中介紹。本章將介紹規則和缺省值。
新聞熱點
疑難解答