四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

數(shù)據(jù)庫(kù)設(shè)計(jì)技巧系列(四)——保證數(shù)據(jù)的完整性

保證數(shù)據(jù)的完整性

1. 用約束而非商務(wù)規(guī)則強(qiáng)制數(shù)據(jù)完整性

如果你按照商務(wù)規(guī)則來(lái)處理需求,那么你應(yīng)當(dāng)檢查商務(wù)層次/用戶界面:如果商務(wù)規(guī)則以后發(fā)生變化,那么只需要進(jìn)行更新即可。

假如需求源于維護(hù)數(shù)據(jù)完整性的需要,那么在數(shù)據(jù)庫(kù)層面上需要施加限制條件。

如果你在數(shù)據(jù)層確實(shí)采用了約束,你要保證有辦法把更新不能通過(guò)約束檢查的原因采用用戶理解的語(yǔ)言通知用戶界面。除非你的字段命名很冗長(zhǎng),否則字段名本身還不夠。

— Lamont Adams

只要有可能,請(qǐng)采用數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)的完整性。這不但包括通過(guò)標(biāo)準(zhǔn)化實(shí)現(xiàn)的完整性而且還包括數(shù)據(jù)的功能性。在寫(xiě)數(shù)據(jù)的時(shí)候還可以增加觸發(fā)器來(lái)保證數(shù)據(jù)的正確性。不要依賴于商務(wù)層保證數(shù)據(jù)完整性;它不能保證表之間(外鍵)的完整性所以不能強(qiáng)加于其他完整性規(guī)則之上。

— Peter Ritchie

2. 分布式數(shù)據(jù)系統(tǒng)

對(duì)分布式系統(tǒng)而言,在你決定是否在各個(gè)站點(diǎn)復(fù)制所有數(shù)據(jù)還是把數(shù)據(jù)保存在一個(gè)地方之前應(yīng)該估計(jì)一下未來(lái)5年或者10年的數(shù)據(jù)量。當(dāng)你把數(shù)據(jù)傳送到其他站點(diǎn)的時(shí)候,最好在數(shù)據(jù)庫(kù)字段中設(shè)置一些標(biāo)記。在目的站點(diǎn)收到你的數(shù)據(jù)之后更新你的標(biāo)記。為了進(jìn)行這種數(shù)據(jù)傳輸,請(qǐng)寫(xiě)下你自己的批處理或者調(diào)度程序以特定時(shí)間間隔運(yùn)行而不要讓用戶在每天的工作后傳輸數(shù)據(jù)。本地拷貝你的維護(hù)數(shù)據(jù),比如計(jì)算常數(shù)和利息率等,設(shè)置版本號(hào)保證數(shù)據(jù)在每個(gè)站點(diǎn)都完全一致。

— Suhair TechRepublic

3. 強(qiáng)制指示完整性

沒(méi)有好辦法能在有害數(shù)據(jù)進(jìn)入數(shù)據(jù)庫(kù)之后消除它,所以你應(yīng)該在它進(jìn)入數(shù)據(jù)庫(kù)之前將其剔除。激活數(shù)據(jù)庫(kù)系統(tǒng)的指示完整性特性。這樣可以保持?jǐn)?shù)據(jù)的清潔而能迫使開(kāi)發(fā)人員投入更多的時(shí)間處理錯(cuò)誤條件。

— kol

4. 關(guān)系

如果兩個(gè)實(shí)體之間存在多對(duì)一關(guān)系,而且還有可能轉(zhuǎn)化為多對(duì)多關(guān)系,那么你最好一開(kāi)始就設(shè)置成多對(duì)多關(guān)系。從現(xiàn)有的多對(duì)一關(guān)系轉(zhuǎn)變?yōu)槎鄬?duì)多關(guān)系比一開(kāi)始就是多對(duì)多關(guān)系要難得多。

— CS Data Architect

5. 采用視圖

為了在你的數(shù)據(jù)庫(kù)和你的應(yīng)用程序代碼之間提供另一層抽象,你可以為你的應(yīng)用程序建立專門(mén)的視圖而不必非要應(yīng)用程序直接訪問(wèn)數(shù)據(jù)表。這樣做還等于在處理數(shù)據(jù)庫(kù)變更時(shí)給你提供了更多的自由。

— Gay Howe

6. 給數(shù)據(jù)保有和恢復(fù)制定計(jì)劃

考慮數(shù)據(jù)保有策略并包含在設(shè)計(jì)過(guò)程中,預(yù)先設(shè)計(jì)你的數(shù)據(jù)恢復(fù)過(guò)程。采用可以發(fā)布給用戶/開(kāi)發(fā)人員的數(shù)據(jù)字典實(shí)現(xiàn)方便的數(shù)據(jù)識(shí)別同時(shí)保證對(duì)數(shù)據(jù)源文檔化。編寫(xiě)在線更新來(lái)“更新查詢”供以后萬(wàn)一數(shù)據(jù)丟失可以重新處理更新。

— kol

7. 用存儲(chǔ)過(guò)程讓系統(tǒng)做重活

解決了許多麻煩來(lái)產(chǎn)生一個(gè)具有高度完整性的數(shù)據(jù)庫(kù)解決方案之后,我所在的團(tuán)隊(duì)決定封裝一些關(guān)聯(lián)表的功能組,提供一整套常規(guī)的存儲(chǔ)過(guò)程來(lái)訪問(wèn)各組以便加快速度和簡(jiǎn)化客戶程序代碼的開(kāi)發(fā)。在此期間,我們發(fā)現(xiàn)3GL 編碼器設(shè)置了所有可能的錯(cuò)誤條件,比如以下所示:

SELECT Cnt = COUNT (*) FROM [<Table>] WHERE [<primary key column>] = <new value>

IF Cnt = 0 BEGIN

INSERT INTO [<Table>] ( [< primary key column>] ) VALUES ( <New value> )

END

ELSE

BEGIN

<indicate duplication error>

END

而一個(gè)非3GL 編碼器是這樣做的:

INSERT INTO [<Table>] ( [< primary key column>] ) VALUES ( <New value> )

IF @@ERROR = 2627 -- Literal error code for Primary Key Constraint

BEGIN

<indicate duplication error>

END

第2個(gè)程序簡(jiǎn)單多了,而且事實(shí)上,利用了我們給數(shù)據(jù)庫(kù)的功能。雖然我個(gè)人不喜歡使用嵌入文字(2627)。但是那樣可以很方便地用一點(diǎn)預(yù)先處理來(lái)代替。數(shù)據(jù)庫(kù)不只是一個(gè)存放數(shù)據(jù)的地方,它也是簡(jiǎn)化編碼之地。

— a-smith

8. 使用查找

控制數(shù)據(jù)完整性的最佳方式就是限制用戶的選擇。只要有可能都應(yīng)該提供給用戶一個(gè)清晰的價(jià)值列表供其選擇。這樣將減少鍵入代碼的錯(cuò)誤和誤解同時(shí)提供數(shù)據(jù)的一致性。某些公共數(shù)據(jù)特別適合查找:國(guó)家代碼、狀態(tài)代碼等。

— CS Data Architect

it知識(shí)庫(kù)數(shù)據(jù)庫(kù)設(shè)計(jì)技巧系列(四)——保證數(shù)據(jù)的完整性,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 甘婷婷照片| 五年级下册语文第七单元口语交际 | 拔萝卜视频免费播放| 范艳华| 吴雪雯| 蓝色男孩| 珍爱如血泰剧全集在线观看| angelababy婚礼大作战| yoshizawa akiho| 山东卫视节目表| 金珠玛米赞二胡曲简谱| 大兵相声小品蠢得死| 恶行之外电影完整播放| 庞勇| 仁爱版九年级英语上册教案| 女脱衣| 小敏家| 常宝霆| 国产电影网站| 雪山飞狐之塞北宝藏演员表| 爱的重生| 真爱的谎言| 清理垃圾360清理垃圾大师| 爆龙战队暴连者| 桜木郁| 女生网站| 儿媳妇电视剧免费| 德鲁| 毕业论文3000字范文| 意外的春天 电影| 欧美一级毛片免费看| 抗日电影免费| 波多野结衣电影大全| 章家瑞| 加入民盟的好处和坏处| 月亮电影| 日本女人性生活视频| 小姐诱心国语未删减版| 生死瞬间演员表| 哥哥啊啊啊| 鏖战鲁西南|