第4 部分 保證資料的完整性

2021-03-31 08:56:57 字數 2127 閱讀 9199

第4 部分— 保證資料的完整性

1. 用約束而非商務規則強制資料完整性

如果你按照商務規則來處理需求,那麼你應當檢查商務層次/使用者介面:如果商務規則以後發生變

化,那麼只需要進行更新即可。

假如需求源於維護資料完整性的需要,那麼在資料庫層面上需要施加限制條件。

如果你在資料層確實採用了約束,你要保證有辦法把更新不能通過約束檢查的原因採用使用者理解

的語言通知使用者介面。除非你 的字段命名很冗長,否則欄位名本身還不夠。 — lamont adams

只要有可能,請採用資料庫系統實現資料的完整性。這不但包括通過標準化實現的完整性而且還

包括資料的功能性。在寫資料的時候還可以增加觸發器來保證資料的正確性。不要依賴於商務層

保證資料完整性;它不能保證表之間(外來鍵)的完整性所以不能強加於其他完整性規則之上。

— peter ritchie

2. 分布式資料系統

對分布式系統而言,在你決定是否在各個站點複製所有資料還是把資料儲存在乙個地方之前應該

估計一下未來5 年或者10 年的資料量。當你把資料傳送到其他站點的時候,最好在資料庫字段

中設定一些標記。在目的站點收到你的資料之後更新你的標記。為了進行這種資料傳輸,請寫下

你自己的批處理或者排程程式以特定時間間隔執行而不要讓使用者在每天的工作後傳輸資料。本地

拷貝你的維護資料,比如計算常數和利息率等,設定版本號保證資料在每個站點都完全一致。

— suhair techrepublic

3. 強制指示完整性

沒有好辦法能在有害資料進入資料庫之後消除它,所以你應該在它進入資料庫之前將其剔除。激

活資料庫系統的指示完整性特性。這樣可以保持資料的清潔而能迫使開發人員投入更多的時間處

理錯誤條件。

— kol

4. 關係

如果兩個實體之間存在多對一關係,而且還有可能轉化為多對多關係,那麼你最好一開始就設定

成多對多關係。從現有的多對一關係轉變為多對多關係比一開始就是多對多關係要難得多。

— cs data architect

5. 採用檢視

為了在你的資料庫和你的應用程式**之間提供另一層抽象,你可以為你的應用程式建立專門的

檢視而不必非要應用程式直接訪問資料表。這樣做還等於在處理資料庫變更時給你提供了更多的

自由。— gay howe

6. 給資料保有和恢復制定計畫

考慮資料保有策略幷包含在設計過程中,預先設計你的資料恢復過程。採用可以發布給使用者/開發

以後萬一資料丟失可以重新處理更新。

— kol

7. 用儲存過程讓系統做重活

解決了許多麻煩來產生乙個具有高度完整性的資料庫解決方案之後,我所在的團隊決定封裝一些

關聯表的功能組,提供一整套常規的儲存過程來訪問各組以便加快速度和簡化客戶程式**的開

發。在此期間,我們發現3gl 編碼器設定了所有可能的錯誤條件,比如以下所示:

select **t = count (*)

from

where =

if **t = 0

begin

insert into

( [< primary key column>] )

values ( )

endelse

begin

end而乙個非3gl 編碼器是這樣做的:

insert into

( [< primary key column>] )

values

( )if @@error = 2627 -- literal error code for primary key constraint

begin

end第2 個程式簡單多了,而且事實上,利用了我們給資料庫的功能。雖然我個人不喜歡使用嵌入文

字(2627)。但是那樣可以很方便地用一點預先處理來代替。資料庫不只是乙個存放資料的地

方,它也是簡化編碼之地。

— a-**ith

8. 使用查詢

控制資料完整性的最佳方式就是限制使用者的選擇。只要有可能都應該提供給使用者乙個清晰的價值

列表供其選擇。這樣將減少鍵入**的錯誤和誤解同時提供資料的一致性。某些公共資料特別適

合查詢:國家**、狀態**等。

— cs data architect

資料庫設計指南 第四部分(保證資料的完整性)

1.用約束而非商務規則強制資料完整性 如果你按照商務規則來處理需求,那麼你應當檢查商務層次 使用者介面 如果商務規則以後發生變 化,那麼只需要進行更新即可。假如需求源於維護資料完整性的需要,那麼在資料庫層面上需要施加限制條件。如果你在資料層確實採用了約束,你要保證有辦法把更新不能通過約束檢查的原因採...

保證資料完整性

1.資料的完整性 資料的完整性分為四類 實體完整性,域完整性,引用完整性,自定義完整性。2.資料完整性的實現 建立非空約束的語法 create table friend name varchar 50 not null 設定主鍵約束 主鍵約束是應用於表的列的乙個約束。設定唯一約束 指給定列的所有的值...

保證資料完整性

保證資料完整想性 資料完整性 可靠性 準確性 資料完整性分類 1.實體完整性 保證一行資料是有效的 2.域完整性 保證一列資料是有效的 3.引用完整性 保證引用1編號是有效的 4.使用者自定義完整性 保證自定義規則 資料完整性的實現 建立非空約束 not null 設定主鍵約束 primary ke...