12.4.2 數(shù)據(jù)庫的完整性設(shè)計
數(shù)據(jù)庫的完整性是指數(shù)據(jù)庫中數(shù)據(jù)的正確性和相容性。
由各種各樣的完整性約束來保證,因此可以說數(shù)據(jù)庫完整性設(shè)計就是數(shù)據(jù)庫完整性約束的設(shè)計。
通過DBMS或應(yīng)用程序來實現(xiàn)。
1、數(shù)據(jù)庫完整性設(shè)計原則
1. 根據(jù)數(shù)據(jù)庫完整性約束的類型 確定其實現(xiàn)的系統(tǒng)層次和方式,并提前考慮對系統(tǒng)性能的影響。
一般情況下,靜態(tài)約束應(yīng) 盡量包含在數(shù)據(jù)庫模式中,動態(tài)約束由應(yīng)用程序?qū)崿F(xiàn)。
2. 實體完整性約束、參照完整性約束 是關(guān)系數(shù)據(jù)庫最重要的完整性約束,盡量應(yīng)用。
3. 要慎用 觸發(fā)器,一方面性能開銷較大;另一方面,多級觸發(fā)不好控制,容易發(fā)生錯誤,最好使用 Before 型語句級觸發(fā)器。
4. 在需求分析階段就必須制定完整性約束的命名規(guī)范。
5. 要根據(jù)業(yè)務(wù)規(guī)則 對數(shù)據(jù)庫完整性進行細致的測試。
6. 要專職的數(shù)據(jù)庫設(shè)計小組。
7. 應(yīng)采用合適的 CASE工具 來降低數(shù)據(jù)庫設(shè)計各階段的工作量。
2、數(shù)據(jù)庫完整性的作用
1. 能夠防止合法用戶使用數(shù)據(jù)庫時 向數(shù)據(jù)庫中添加不合語義的數(shù)據(jù)。
2. 實現(xiàn)業(yè)務(wù)規(guī)則,易于定義,易于理解,而且可以降低應(yīng)用程序的復(fù)雜性,提高應(yīng)用程序的運行效率。集中管理。
3. 能夠同時兼顧 數(shù)據(jù)庫的完整性和系統(tǒng)效能。
4. 有助于盡早發(fā)現(xiàn)應(yīng)用軟件的錯誤。
5. 數(shù)據(jù)庫完整性約束 6類:列級靜態(tài)約束、元組級靜態(tài)約束、關(guān)系級靜態(tài)約束、列級動態(tài)約束、元組級動態(tài)約束、關(guān)系級動態(tài)約束。
動態(tài)約束通常由應(yīng)用軟件來實現(xiàn)。
3、數(shù)據(jù)庫完整性設(shè)計示例
首先 需要在需求分析階段確定要通過數(shù)據(jù)庫完整性約束實現(xiàn)的業(yè)務(wù)規(guī)則。
然后 依據(jù)整個系統(tǒng)的體系結(jié)構(gòu)和性能要求,遵照數(shù)據(jù)庫設(shè)計方法和應(yīng)用軟件設(shè)計方法,合理選擇每個業(yè)務(wù)規(guī)則的實現(xiàn)方式。
最后 認真測試,排除隱含的約束沖突和性能問題。
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |