<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

    積分與排名

    • 積分 - 2294805
    • 排名 - 3

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 又爽又黄无遮挡高清免费视频| 国产在线国偷精品产拍免费| 亚洲婷婷国产精品电影人久久| 国产精品亚洲一区二区三区| 日韩免费无码一区二区视频| 亚洲欧洲免费无码| 日韩精品免费一区二区三区| 99亚洲男女激情在线观看| 亚洲?V乱码久久精品蜜桃 | 亚洲电影一区二区| 日本xxxx色视频在线观看免费| 亚洲专区先锋影音| 国色精品卡一卡2卡3卡4卡免费 | 久久精品国产亚洲AV电影网| 国产乱子伦精品免费女| 午夜成人无码福利免费视频| 在线亚洲人成电影网站色www| 在线观看片免费人成视频播放| 亚洲Av永久无码精品三区在线| 中文字幕免费高清视频| 亚洲综合久久精品无码色欲| 国产18禁黄网站免费观看| 国产免费久久久久久无码| 亚洲国产国产综合一区首页| 国产一卡2卡3卡4卡2021免费观看| 中文有码亚洲制服av片| 亚洲av日韩av欧v在线天堂| 三级毛片在线免费观看| 亚洲国产精品久久丫| 国产伦一区二区三区免费 | 久久99久久成人免费播放| 亚洲视频在线观看一区| 最近中文字幕无吗免费高清 | 99国产精品视频免费观看| 亚洲精品一二三区| 中文亚洲成a人片在线观看| 7m凹凸精品分类大全免费| 亚洲第一成年网站视频 | 久久国产亚洲精品麻豆| 无码免费午夜福利片在线| 一区二区三区免费电影|