SQL Server 數據庫 可以基本保證數據的完整性。而本文所講的是如何利用SQL Server提供的Enterprise Manager 客戶端軟件設置數據約束條件以加強數據完整" name="description" />
我們都知道Microsoft javascript:;" onClick="javascript:tagshow(event, 'SQL');" target="_self">SQL Server數據庫可以基本保證數據的完整性。而本文所講的是如何利用SQL Server提供的Enterprise Manager 客戶端軟件設置數據約束條件以加強數據完整性。
確保數據庫中的數據完全正確(數據完整性)是一項很難的工作,有時候甚至是不可能做到的,正因如此它也是各種系統所追求的一個基本目標。此外,一旦數據出現不一致,應當如何處理也是一個問題。在開發數據庫應用程序時,我們都會在程序中加入一段代碼來檢驗數據是否正確,而SQL Server也可以利用約束條件將數據庫服務器變成檢驗數據完整性的第一道哨卡。此外為了方便用戶,SQL Server提供了Enterprise Manager客戶端來簡化約束條件處理過程。
什么才合法?
在開發數據庫應用程序時,開發者必須首先清楚每個表格中應該存放什么類型的數據或數據的大小范圍。這點一旦確定下來,整個程序都要按照這個規范強制執行。這個強制規范可以是約束條件、默認值以及允許空值。
下面給出了約束條件的類型以及默認值和空值類型:
如果在你的數據庫應用程序中良好的運用了上面的各種約束類型,就可以確保數據完整性。至于如何運用,則可以通過使用Transact-SQL或者Enterprise Manager 客戶端軟件來實現。 Enterprise Manager
Enterprise Manager客戶端是一款圖形界面的應用程序,它可以幫助用戶查看現有數據庫或者建立一個新的數據庫。下面我會利用一個標準的pub數據庫(包含在各種版本的SQL Server中)來演示其具體應用。在查看數據表的時候右鍵點擊某一列,我們就可以進入約束條件定義窗口。在圖A中,我選擇了pub數據庫中discounts 表的discount列,點擊右鍵后,就出現了圖A所示的畫面。
下面是相關選項的說明:
在圖B中我們能看到三個復選框。它們的意思分別是:是否強制現有數據符合新約束條件、復制數據時是否實施約束條件、插入及更新操作是否實施約束條件。最大的問題一般出現在第一個選項上,當用戶在現有數據表中加入新約束條件時,舊數據有可能會出現與約束條件不符的情況,此時選這一項就會破壞舊有數據。因此我們最好先將舊有數據規范化,再添加新的約束條件,這樣這三個復選框就都可以選中了。
圖C顯示了所選表格的關系定義。從數字上看,stores表和我們選擇的discounts表通過外鍵相關聯。真實的外鍵在discounts表中,并且指向stores表的主鍵。這種關聯可以被編輯或者刪除,另外,我們也可以添加新的關聯。剩下的幾個選項和約束條件選項卡中出現的類似,可以指定是否在inserts、updates和replication操作時實施約束條件。以及是否進行級聯更新或者刪除。
在圖A下方可看到,對于選定的列,默認值選項是可用的。另外,Allow Nulls列可以讓你確定該列是否可以使用空值。
總結
設計一個數據庫系統并不是簡單的工作。當表結構確定下來后,就一定要保證數據的整性。你可以通過約束條件來實現其數據完整性,為此SQL Server提供了圖形界面的Enterprise Manager客戶端來幫助用戶簡化約束條件實現過程。
原文轉自:http://www.anti-gravitydesign.com