資料完整性約束的目的是為了防止不符合規範的資料進入資料庫。在使用者對資料進行插入、修改、刪除等操作時,資料庫管理系統會根據資料完整性約束判斷資料是否能夠進入資料庫,確保資料庫中的記錄合乎規範。資料完整性約束包括域完整性、實體完整性、參照完整性和使用者定義完整性。
域完整性包括了資料型別、輸入格式、資料可能的取值範圍。資料型別就是規定輸入的資料是字元、整數、實數等等。輸入格式規定資料以怎樣的形式輸入,就以日期為例,可以以「年月日」、「日月年」或是「月日年」格式等等,同時還規定資料之間以何種方式分隔(空格、連字元、斜槓等)。資料可能的取值範圍很好理解,就是規定了哪些取值是有效的,還是以日期為例,「月」的取值只能是1~12。
實體完整性要求每行資料必須要有唯一的識別符號,簡單的講,就是通過這個識別符號搜尋資料庫,能夠準確定位到這一行。比方說,「身份證號」就能作為識別符號,因為每個人的身份證號都不相同,而「姓名」就不能作為識別符號,因為存在同名同姓的可能。這個識別符號就是我們經常聽到的「主鍵」,它可以是某一列,或是幾列一起共同作為識別符號。或許有人會說可以把「身份證號」和「姓名」一起作為主鍵,這樣當然是不行的,因為去掉「姓名」,主鍵仍舊滿足實體完整性的要求。簡言之,主鍵要求「短小精悍」。
參照完整性屬於表間規則,是相關聯的兩個表之間的約束。下面先引入外來鍵的概念:如果兩個資料表中有相同的關鍵字,而且這個關鍵字在其中乙個表中是主鍵,那麼這個關鍵字就稱為另乙個表的外來鍵。在這種關係中前乙個表叫做主表,後乙個叫從表。參照完整性就是要保證主從表中的資料具有一致性。舉個例子,乙個員工表,由「員工姓名」、「員工身份證號」、「年齡」構成一條記錄(就是表的一行);乙個部門表,由「部門名稱」、「員工姓名」、「員工身份證號」構成一條記錄。這兩個表通過「員工身份證號」相互聯絡。當有員工離職,員工表刪去一條記錄的同時,部門表必須刪除與該員工有關的記錄,保證資料的一致性。
使用者定義完整性指針對某一具體關聯式資料庫的約束條件,它反映某一具體應用所涉及的資料必須滿足的語義要求。簡單的說就是對資料庫的「定製」,根據使用者使用要求來確定資料要求。
ps:以上都是個人對資料完整性約束的理解,若有錯誤和不合理之處希望指正。
資料庫 完整性約束
問題描述 現有乙個商店的資料庫 shopping 記錄客戶及其購物情況,由以下四個關係組成 a 客戶表customer 儲存客戶資訊,包括客戶號customerid 客戶姓名cname 位址address 電子郵件email 性別gender 身份證號cardid 號碼telcode。b 商品表go...
資料庫 資料完整性約束
資料完整性 儲存在資料庫中的所有資料值均正確的狀態。完整性約束 防止不符合規範的資料進入資料庫,在使用者對資料進行插入 修改 刪除等操作時,dbms自動按照一定的約束條件對資料進行監測,使不符合規範的資料不能進入資料庫,以確保資料庫中儲存的資料正確 有效 相容。1.實體完整性 實體完整性是對主鍵的約...
資料庫的完整性約束
一 資料庫的完整性約束定義 資料庫的完整性約束是為了防止不符合規範的資料進入資料庫,在使用者對資料進行插入 修改 刪除等操作時,dbms自動按照一定的約束條件對資料進行監測,使不符合規範的資料不能進入資料庫,以確保資料庫中儲存的資料正確 有效 相容。資料庫的完整性約束包括 1 實體完整性 規定表的每...