<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

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久精品国产精品亚洲| 国产yw855.c免费视频| 亚洲第一精品在线视频| 天堂在线免费观看| 亚洲精品国产字幕久久不卡| 你是我的城池营垒免费看 | 亚洲一卡二卡三卡| 亚洲视频免费在线播放| 亚洲国产精品综合福利专区| 国产大片线上免费观看| 亚洲国产成人久久精品大牛影视| 免费观看男人免费桶女人视频| 国产成人 亚洲欧洲| 国产成人精品亚洲精品| 花蝴蝶免费视频在线观看高清版| 九月丁香婷婷亚洲综合色| 99久久免费观看| 亚洲一区二区三区写真| 午夜国产大片免费观看| 99在线免费观看| 亚洲美女视频网址| 国产精品成人四虎免费视频| 免费无毒a网站在线观看| 无码亚洲成a人在线观看| 免费永久看黄在线观看app| 精品97国产免费人成视频| 亚洲A∨无码无在线观看| 久久笫一福利免费导航| 在线播放亚洲精品| 无码欧精品亚洲日韩一区| 欧美a级在线现免费观看| 免费无码专区毛片高潮喷水| 亚洲精品福利视频| 永久黄网站色视频免费| 91视频精品全国免费观看| 亚洲春色另类小说| 亚洲日韩涩涩成人午夜私人影院| 最近2019年免费中文字幕高清 | 猫咪www免费人成网站| 亚洲女久久久噜噜噜熟女| 国产精品久久久久免费a∨|