步驟11:檢查、設置完整性約束
完整性約束是為了防止數據模型不一致而強加的限制,標識完完整性約束之后,就可以得到一個完整而準確的描述視圖的局部邏輯數據模型。在此主要考慮下面五種類型的完整性約束:
(1)必需的數據某些屬性必須包含某些值,即不允許為空。例如:每個機構都必須有機構名稱。
(2)值域約束每個屬性都有一個值域。已經在步驟4設置了屬性的值域。
(3)實體完整性實體完整性是指實體的主鍵不能為空。
(4)參照完整性參照完整性是指子實體的外鍵值必須與父實體的主鍵值相同或為空。
要實現參照完整性,需要定義一些約束,定義主鍵和外鍵在什么條件下可以插入、更新或刪除,以及這些操作的結果。
一般有以下三種關于參照完整性的約束(Oracle支持這三種約束):Restrict、Cascade、None(Oracle用NULL)。
(5)業務規則 最后,還要考慮業務規則的約束。數據庫要被現實世界的業務要求約束。例如:對機構的領導干部編制有限制,一級分行機構最多只能有100個干部編制。
通常業務規則有兩種實現方法:一是通過屬性的檢查約束( Check)實現,如上面的例子就可以通過檢查約束實現;二是通過觸發器來實現,這一步需要在物理設計時完成。
這五種約束已經在步驟3到步驟5中設置,此處加以檢查與修改。