您想要做什麼?
了解參考完整性規則
參考完整性規則能夠避免資料庫使用者不小心破壞相關資料欄之間的對應。
假設您的資料庫名為「書籍」,其中包含兩個名為「書名」和「作者」的資料表。基於此範例的需要,每一個書名只會有一位作者,但是每一位作者可以擁有多個書名,這樣即可建立所謂的一對多關聯。在關聯中,「一」這端的資料表稱為「父系資料表」。「多」這端的資料表則稱為「子系資料表」。
為了蒐集有關每一本書及其作者的資訊,查詢會使用索引鍵比對「書名」資料表中的每本書,與「作者」資料表中這本書的作者。父系資料表 (「作者」) 必須擁有給與每一個資料列唯一識別碼的「主索引鍵」。「書名」資料表必須擁有保存每本書之「作者識別碼」的資料欄。這個資料欄稱為「外部索引鍵」。主索引鍵會識別每一位作者,而外部索引鍵則識別哪一位作者寫了哪些書。
如果使用者變更了父系資料表中作者的「作者識別碼」,但是並未更新「書名」資料表中的「作者識別碼」,那麼「書名」資料表中這些書的作者便不再有效。
您可以設定參考完整性規則來執行您要的動作,而不需要變更這兩個資料表中的「作者識別碼」。您可以選擇在父系資料表中的索引鍵變更或刪除時,讓資料表模型執行特定動作。
附註: 字詞的父系和子用於意義相當不同類別,會建立類別父系類別中,與子類別在圖案中的項目。如需詳細資訊類別,請參閱定義資料庫模型圖中的類別。
設定參考完整性的動作
-
按兩下要設定其參考動作的關聯。
-
按一下 [資料庫屬性] 視窗中 [類別] 下的 [參考動作]。
-
按一下您要資料庫對子系資料表中對應之值採取的動作。您可以從下列選項中選取:
-
不執行動作 ︰當父系資料表中主索引鍵的值變更或刪除時,子系資料表之外部索引鍵中對應的值並不會變更。
-
重疊顯示 ︰當父系資料表中主索引鍵的值變更或刪除時,子系資料表之外部索引鍵中對應的值會隨著變更或刪除,以符合主索引鍵。
-
設定 NULL ︰當父系資料表中主索引鍵的值變更或刪除時,子系資料表之外部索引鍵中對應的值會設為 NULL。
-
設定預設值 ︰當父系資料表中主索引鍵的值變更或刪除時,子系資料表之外部索引鍵中對應的值會設為您選擇的預設值。
-
不強制 ︰這個動作會關閉此關聯的參考完整性規則。
-
附註: 如果 [設定 NULL] 和 [設定預設值] 選項都停用,則可能是該關聯在 [資料庫屬性] 視窗的 [其他] 索引標籤上設為 [選用]。
設定資料欄的預設值
若要採用 [設定預設值] 動作,您必須提供資料欄的預設值。
-
按兩下圖表中的資料表,開啟 [資料庫屬性] 視窗。
-
按一下 [類別] 下的 [資料欄],按一下要建立其預設值的資料欄,然後按一下 [編輯]。
-
在 [資料欄屬性] 對話方塊的 [定義] 索引標籤上輸入預設值。
使用表示法顯示參考完整性
您可以將 [文件選項] 設定為,在模型中的關聯旁隱藏或顯示參考完整性表示法。
參考完整性標記中的字母有何意義?
參考完整性表示法會以分號分隔的兩個字母顯示關聯,格式為 [父系資料表中採取的動作]:[子系資料表中的結果]。例如,d:C 表示父系資料表中的某些內容刪除時,變更會重疊顯示於子系資料表。
父系資料表中的動作會以小寫字母表示︰
-
u ︰父系資料表中的資料已更新。
-
d 會刪除父資料表中的資料。
子系資料表中的結果會以大寫字母表示︰
-
R 不執行動作 ︰不變更子系資料表。
-
C 重疊顯示 ︰在子系資料表中重複變更。
-
D 設定預設值 ︰在子系資料表中插入您之前為該資料欄設定的預設值。
-
N 設定 Null ︰將子系資料表設為 NULL。
-
(空白) ︰不在此關聯上強制執行參考完整性。
附註: 這些設定會影響實際資料庫中的內容,而非模型中的內容。在您從現有資料庫執行反向工程所建立的模型中,可以看見資料庫之參考完整性的設計方式。在您從頭建立的模型中,可以使用這些設定記載正在製作其模型之資料庫的表示方式。
顯示參考完整性
-
指向 [資料庫] 功能表上的 [選項],然後按一下 [文件]。
-
在 [關聯] 索引標籤的 [顯示] 下,選取 [參考完整性] 核取方塊。