<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

    蜜果私塾:異構數據庫數據校驗方案探討

    文:阿蜜果

    日期:2011-8-5

    版權所有,轉載請注明出處

    最近在琢磨異構數據庫數據校驗的事情,想來想去覺得都不是易事,我想出了一個方案,但最終因為工作量、時間等原因,項目決定不再進行數據校驗,在這里分享一下,拋磚引玉,希望得到同仁們的一些更好的方案。

    1、為什么要進行數據校驗?

    首先要回答這個問題:“為什么要進行異構數據庫的數據校驗呢?”本博的前兩篇文章探討了進行異構數據庫同步的方案,但是不論使用何種方式進行同步,都可能因為各種原因導致兩邊數據庫的不同步,例如一方的SQL語句執行成功,而另一方轉換成新的SQL語句后執行失敗,而沒有得到實時處理,或者同步程序存在bug等原因。

    進行數據校驗的原因是為了保證兩邊數據庫的數據一致性和完整性。

    數據不一致可能導致的結果:

    1)使得用戶進行了某個設置,但未見生效;

    2)用戶已經刪除了某設置,但仍然繼續生效;

    3)某個用戶在一方平臺已經注銷或到期,而在另一平臺仍然可以使用等等。

    貼幾段關于數據一致性和數據完整性的代碼:

    數據一致性通常指關聯數據之間的邏輯關系是否正確和完整。而數據存儲的一致性模型則可以認為是存儲系統和數據使用者之間的一種約定。如果使用者遵循這種約定,則可以得到系統所承諾的訪問結果。

    數據庫完整性(Database Integrity)是指數據庫中數據的正確性和相容性。數據庫完整性由各種各樣的完整性約束來保證,因此可以說數據庫完整性設計就是數據庫完整性約束的設計。數據完整性包括:實體完整性、域完整性、參照完整性和用戶定義完整性。可以使用主鍵、check約束外鍵等來實現。

    為了保證數據庫的一致性和完整性,設計人員往往會設計過多的表間關聯,盡可能的降低數據的冗余。表間關聯是一種強制性措施,建立后,對父表和子表的插入、更新、刪除操作均要占用系統的開銷。

    如果數據冗余低,數據的完整性容易得到保證,但增加了表間連接查詢的操作,為了提高系統的響應時間,合理的數據冗余也是必要的。使用規則和約束來防止系統操作人員誤輸入造成數據的錯誤是設計人員的另一種常用手段,但是,不必要的規則和約束也會占用系統的不必要開銷,需要注意的是,約束對數據的有效性驗證要比規則快。所有這些,設計人員在設計階段應根據系統操作的類型、頻度加以均衡考慮。

    2、哪些是需要關心的表和字段?

    異構數據庫的雙方需要確定哪些是需要進行數據校驗的表?需要關心的字段是哪些?哪一些字段不會影響到業務可以不去關心?畢竟進行數據校驗是一個耗時耗力的活。

    3、采用何種數據校驗方案

    我感覺思維受限,暫時只想到這個個方案:

    1)關鍵表的總量比較。

    2)用戶信息的抽樣校驗:因為主要關心跟用戶有關的信息,因此對用戶信息進行抽樣檢驗。隨機抽取部分用戶(例如:10000個用戶)對其各項信息進行比對,兩邊的數據按照一樣的XML Schema生成,可使用各種方式進行比對(例如Shell進行文件比對)。

    數據校驗包括的程序大致如下:

    1)隨機抽樣程序

    隨機抽取若干(例如10000)號碼的程序

    2)數據校驗定時程序

    同步用戶下的“數據校驗定時程序”定時讀取(例如每天的晚上12點)需要進行數據校驗的用戶信息,對每一行的用戶啟動一個“數據校驗處理程序”的自動機進行處理。

    3)數據校驗處理程序

    每個“數據校驗處理程序”自動機只處理一個用戶信息,它通過查詢若干表得到該用戶的詳細信息,并根據定義好的XML格式寫入XML文件中。兩邊同步用戶采用一樣的XML Schema,按照一樣的排序生成XML文檔,XML Schema有待在校驗數據確定后進行定義。

    4)數據校驗比對程序

    該程序對比對(例如通過Linux命令進行比對)兩個同步用戶下生成的XML文件,將不一致的用戶信息寫入錯誤日志文件中。

    歡迎大家提出好的想法!開拓下我的思路。

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

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

          Power Designer系統分析與建模實戰  (2015年7月出版)
          
         Struts2+Hibernate3+Spring2   (2010年5月出版)
         

    留言簿(263)

    隨筆分類

    隨筆檔案

    文章分類

    相冊

    關注blog

    積分與排名

    • 積分 - 2294312
    • 排名 - 3

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 啦啦啦完整版免费视频在线观看| 久青草国产免费观看| 91人人区免费区人人| 亚洲国产高清视频| 99久久国产免费-99久久国产免费| 久久亚洲国产成人亚| 99热在线免费观看| 亚洲精品日韩专区silk| 免费人成网站在线观看10分钟| 亚洲欧洲春色校园另类小说| 午夜国产精品免费观看| 亚洲综合激情五月色一区| 成年女人永久免费观看片| 黄色免费网址在线观看| 中文字幕亚洲一区| 日本一区午夜艳熟免费| 91亚洲自偷手机在线观看| 在线a级毛片免费视频| 国产亚洲男人的天堂在线观看| 亚洲黄片毛片在线观看| 国产精品区免费视频| 亚洲国产成人精品电影| 日本视频免费在线| 国产精品免费久久久久影院| 亚洲AV人人澡人人爽人人夜夜| 2022久久国产精品免费热麻豆| 亚洲人成网男女大片在线播放| 四虎国产精品免费久久影院| 免费无码H肉动漫在线观看麻豆| 亚洲日韩国产精品无码av| 国产在线98福利播放视频免费| 国产黄色片免费看| 亚洲国产高清美女在线观看| 又爽又高潮的BB视频免费看| 国产一区二区免费| 亚洲老熟女五十路老熟女bbw| 亚洲无线码一区二区三区| 免费不卡视频一卡二卡| 精品久久久久久国产免费了| 亚洲国产精品乱码在线观看97 | 国产亚洲精品美女久久久久|