<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 297,  comments - 1618,  trackbacks - 0

    蜜果私塾:異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)校驗(yàn)方案探討

    文:阿蜜果

    日期:2011-8-5

    版權(quán)所有,轉(zhuǎn)載請(qǐng)注明出處

    最近在琢磨異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)校驗(yàn)的事情,想來(lái)想去覺(jué)得都不是易事,我想出了一個(gè)方案,但最終因?yàn)楣ぷ髁俊r(shí)間等原因,項(xiàng)目決定不再進(jìn)行數(shù)據(jù)校驗(yàn),在這里分享一下,拋磚引玉,希望得到同仁們的一些更好的方案。

    1、為什么要進(jìn)行數(shù)據(jù)校驗(yàn)?

    首先要回答這個(gè)問(wèn)題:“為什么要進(jìn)行異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)校驗(yàn)?zāi)兀?#8221;本博的前兩篇文章探討了進(jìn)行異構(gòu)數(shù)據(jù)庫(kù)同步的方案,但是不論使用何種方式進(jìn)行同步,都可能因?yàn)楦鞣N原因?qū)е聝蛇厰?shù)據(jù)庫(kù)的不同步,例如一方的SQL語(yǔ)句執(zhí)行成功,而另一方轉(zhuǎn)換成新的SQL語(yǔ)句后執(zhí)行失敗,而沒(méi)有得到實(shí)時(shí)處理,或者同步程序存在bug等原因。

    進(jìn)行數(shù)據(jù)校驗(yàn)的原因是為了保證兩邊數(shù)據(jù)庫(kù)的數(shù)據(jù)一致性和完整性。

    數(shù)據(jù)不一致可能導(dǎo)致的結(jié)果:

    1)使得用戶(hù)進(jìn)行了某個(gè)設(shè)置,但未見(jiàn)生效;

    2)用戶(hù)已經(jīng)刪除了某設(shè)置,但仍然繼續(xù)生效;

    3)某個(gè)用戶(hù)在一方平臺(tái)已經(jīng)注銷(xiāo)或到期,而在另一平臺(tái)仍然可以使用等等。

    貼幾段關(guān)于數(shù)據(jù)一致性和數(shù)據(jù)完整性的代碼:

    數(shù)據(jù)一致性通常指關(guān)聯(lián)數(shù)據(jù)之間的邏輯關(guān)系是否正確和完整。而數(shù)據(jù)存儲(chǔ)的一致性模型則可以認(rèn)為是存儲(chǔ)系統(tǒng)和數(shù)據(jù)使用者之間的一種約定。如果使用者遵循這種約定,則可以得到系統(tǒng)所承諾的訪問(wèn)結(jié)果。

    數(shù)據(jù)庫(kù)完整性(Database Integrity)是指數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性和相容性。數(shù)據(jù)庫(kù)完整性由各種各樣的完整性約束來(lái)保證,因此可以說(shuō)數(shù)據(jù)庫(kù)完整性設(shè)計(jì)就是數(shù)據(jù)庫(kù)完整性約束的設(shè)計(jì)。數(shù)據(jù)完整性包括:實(shí)體完整性、域完整性、參照完整性和用戶(hù)定義完整性。可以使用主鍵、check約束外鍵等來(lái)實(shí)現(xiàn)。

    為了保證數(shù)據(jù)庫(kù)的一致性和完整性,設(shè)計(jì)人員往往會(huì)設(shè)計(jì)過(guò)多的表間關(guān)聯(lián),盡可能的降低數(shù)據(jù)的冗余。表間關(guān)聯(lián)是一種強(qiáng)制性措施,建立后,對(duì)父表和子表的插入、更新、刪除操作均要占用系統(tǒng)的開(kāi)銷(xiāo)。

    如果數(shù)據(jù)冗余低,數(shù)據(jù)的完整性容易得到保證,但增加了表間連接查詢(xún)的操作,為了提高系統(tǒng)的響應(yīng)時(shí)間,合理的數(shù)據(jù)冗余也是必要的。使用規(guī)則和約束來(lái)防止系統(tǒng)操作人員誤輸入造成數(shù)據(jù)的錯(cuò)誤是設(shè)計(jì)人員的另一種常用手段,但是,不必要的規(guī)則和約束也會(huì)占用系統(tǒng)的不必要開(kāi)銷(xiāo),需要注意的是,約束對(duì)數(shù)據(jù)的有效性驗(yàn)證要比規(guī)則快。所有這些,設(shè)計(jì)人員在設(shè)計(jì)階段應(yīng)根據(jù)系統(tǒng)操作的類(lèi)型、頻度加以均衡考慮。

    2、哪些是需要關(guān)心的表和字段?

    異構(gòu)數(shù)據(jù)庫(kù)的雙方需要確定哪些是需要進(jìn)行數(shù)據(jù)校驗(yàn)的表?需要關(guān)心的字段是哪些?哪一些字段不會(huì)影響到業(yè)務(wù)可以不去關(guān)心?畢竟進(jìn)行數(shù)據(jù)校驗(yàn)是一個(gè)耗時(shí)耗力的活。

    3、采用何種數(shù)據(jù)校驗(yàn)方案

    我感覺(jué)思維受限,暫時(shí)只想到這個(gè)個(gè)方案:

    1)關(guān)鍵表的總量比較。

    2)用戶(hù)信息的抽樣校驗(yàn):因?yàn)橹饕P(guān)心跟用戶(hù)有關(guān)的信息,因此對(duì)用戶(hù)信息進(jìn)行抽樣檢驗(yàn)。隨機(jī)抽取部分用戶(hù)(例如:10000個(gè)用戶(hù))對(duì)其各項(xiàng)信息進(jìn)行比對(duì),兩邊的數(shù)據(jù)按照一樣的XML Schema生成,可使用各種方式進(jìn)行比對(duì)(例如Shell進(jìn)行文件比對(duì))。

    數(shù)據(jù)校驗(yàn)包括的程序大致如下:

    1)隨機(jī)抽樣程序

    隨機(jī)抽取若干(例如10000)號(hào)碼的程序

    2)數(shù)據(jù)校驗(yàn)定時(shí)程序

    同步用戶(hù)下的“數(shù)據(jù)校驗(yàn)定時(shí)程序”定時(shí)讀取(例如每天的晚上12點(diǎn))需要進(jìn)行數(shù)據(jù)校驗(yàn)的用戶(hù)信息,對(duì)每一行的用戶(hù)啟動(dòng)一個(gè)“數(shù)據(jù)校驗(yàn)處理程序”的自動(dòng)機(jī)進(jìn)行處理。

    3)數(shù)據(jù)校驗(yàn)處理程序

    每個(gè)“數(shù)據(jù)校驗(yàn)處理程序”自動(dòng)機(jī)只處理一個(gè)用戶(hù)信息,它通過(guò)查詢(xún)?nèi)舾杀淼玫皆撚脩?hù)的詳細(xì)信息,并根據(jù)定義好的XML格式寫(xiě)入XML文件中。兩邊同步用戶(hù)采用一樣的XML Schema,按照一樣的排序生成XML文檔,XML Schema有待在校驗(yàn)數(shù)據(jù)確定后進(jìn)行定義。

    4)數(shù)據(jù)校驗(yàn)比對(duì)程序

    該程序?qū)Ρ葘?duì)(例如通過(guò)Linux命令進(jìn)行比對(duì))兩個(gè)同步用戶(hù)下生成的XML文件,將不一致的用戶(hù)信息寫(xiě)入錯(cuò)誤日志文件中。

    歡迎大家提出好的想法!開(kāi)拓下我的思路。

    posted on 2011-08-05 17:43 阿蜜果 閱讀(2235) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): database解決方案
    <2011年8月>
    31123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

          生活將我們磨圓,是為了讓我們滾得更遠(yuǎn)——“圓”來(lái)如此。
          我的作品:
          玩轉(zhuǎn)Axure RP  (2015年12月出版)
          

          Power Designer系統(tǒng)分析與建模實(shí)戰(zhàn)  (2015年7月出版)
          
         Struts2+Hibernate3+Spring2   (2010年5月出版)
         

    留言簿(263)

    隨筆分類(lèi)

    隨筆檔案

    文章分類(lèi)

    相冊(cè)

    關(guān)注blog

    積分與排名

    • 積分 - 2298171
    • 排名 - 3

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 24小时免费直播在线观看| 3344在线看片免费| 欧洲美熟女乱又伦免费视频| 亚洲国产美女精品久久| 在线观看H网址免费入口| 亚洲午夜电影在线观看高清 | 亚洲毛片免费视频| 2021国内精品久久久久精免费| 337p日本欧洲亚洲大胆色噜噜| 最近免费中文字幕大全高清大全1| 亚洲视频一区在线观看| 黄页网站免费在线观看| 24小时免费看片| 亚洲日产2021三区| 最新中文字幕电影免费观看| 亚洲GV天堂无码男同在线观看| 国产精品免费电影| 中文字幕免费在线观看动作大片 | 亚洲视频2020| av无码久久久久不卡免费网站| 中文无码亚洲精品字幕| 免费人成激情视频| 一个人免费视频观看在线www| 在线观看人成网站深夜免费| 美女视频黄a视频全免费网站一区 美女视频黄a视频全免费网站色 | 182tv免费视视频线路一二三| 亚洲中文字幕在线无码一区二区| 日本无吗免费一二区| 人成电影网在线观看免费| 亚洲∧v久久久无码精品| 黄瓜视频高清在线看免费下载| 极品美女一级毛片免费| 久久精品国产亚洲AV麻豆王友容| 无码人妻久久一区二区三区免费丨| 久久亚洲AV成人无码国产最大| 精品亚洲一区二区三区在线观看| 亚洲成a人无码亚洲成av无码| 亚洲?V乱码久久精品蜜桃| 亚洲精品无码久久久久APP| 久久99亚洲综合精品首页| 思思re热免费精品视频66|