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