<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

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲日本一区二区三区| 国产亚洲中文日本不卡二区| 青青草无码免费一二三区| 亚洲一级毛片免观看| 四虎免费影院4hu永久免费| 国产麻豆一精品一AV一免费| 亚洲欧洲国产精品久久| 免费一级成人毛片| 91久久精品国产免费一区| 亚洲国产综合AV在线观看| 亚洲夜夜欢A∨一区二区三区 | 人人爽人人爽人人片av免费| 亚洲v高清理论电影| 免费无码AV片在线观看软件| 2022国内精品免费福利视频| 亚洲伊人久久大香线蕉啊| 亚洲视频在线精品| 日本一区二区三区免费高清| 中文字幕在线免费看| 亚洲欧美日韩一区二区三区 | 国产成人免费一区二区三区| A国产一区二区免费入口| 亚洲xxxx18| 国产国拍亚洲精品mv在线观看| 在线免费观看一区二区三区| 日本亚洲欧洲免费天堂午夜看片女人员| 亚洲AV永久无码天堂影院| 亚洲黄色片免费看| 亚洲欧洲自拍拍偷午夜色无码| 色吊丝最新永久免费观看网站| 日本免费高清视频| ssswww日本免费网站片| 亚洲另类自拍丝袜第五页| 日韩精品一区二区亚洲AV观看| 精品亚洲一区二区三区在线观看| 成人免费视频国产| 女人与禽交视频免费看| 亚洲高清免费在线观看| 中文字幕免费不卡二区| 精品国产污污免费网站入口在线 | 亚洲国产精品无码第一区二区三区|