999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

大型應用項目中數據庫設計模式的探研

2008-12-31 00:00:00楊曉光陳偉衛崔艷清
商場現代化 2008年11期

[摘 要] 現在大型應用系統越來越多,這不但體現在系統的功能數量上,還體現在系統底層的數據存儲數量上。本文基于作者在政府、企業項目的設計經歷,提出了在大型系統中數據庫設計的一些設計經驗,并從這些設計經驗中總結出兩種數據庫設計模式,從而解決了大型應用系統中統計、查詢等應用性能和應用完整性的問題。

[關鍵詞] 應用系統 數據庫 數據庫設計 設計模式

一、引言

現如今絕大部分的應用系統都是基于數據庫的,也就是說沒有數據存儲的應用系統是非常少的。那么在應用系統的設計階段,必然會涉及數據模型的概要設計和物理設計,良好的數據庫設計是關系到系統能否成功運行、維護的關鍵之一。在當今系統越來越龐大,應用數據越來越多的今天,數據庫設計的合理性和靈活性顯得越來越重要,因為在任何應用中,數據是最重要的、最核心的、最有價值的,技術上可以根據需要選擇不同的架構和技術,但數據不會因此改變而發生任何變化,甚至可以說數據是企業在信息世界的靈魂,例如現在的電信、金融、公安、勞動、民航等系統都是這種應用的典型代表。

在各種大型應用系統中,系統操作的信息主體無外乎單位和個人兩類,拿個人來說,個人基本信息按照信息生命周期的可變性分為不變屬性和可變屬性兩種,不變屬性包括:公民身份號碼(目前隨著二代身份證系統的實施,18位的公民身份號碼理論上可以保持惟一)、姓名、性別、出生日期、民族等,可變屬性包括:年齡、文化程度、政治面貌、戶籍所在地、居住所在地等,大部份的數據庫設計都會將個人不變屬性和可變屬性放在一個個人基本信息表中存儲,在業務表中通過公民身份號碼做主外鍵關聯。

但是,這樣的設計在實際應用系統中有時會存在非常大的問題。例如有如下業務場景:某人在某個時間點上做過一次業務,當時他(她)的文化程度是“大專”,在此之后又做過一次相同的業務,此時他(她)的文化程度是“本科”,當然這個業務場景存在的前提是業務邏輯是符合業務規則的。如果現在有一個按照時間范圍和文化程度的統計,時間跨度覆蓋此人的上述兩次辦理業務,那么,按照上面的描述應該把此人分別統計為“大專”分類1次/人,“本科”分類1次/人的統計數據,而不是2次/人的“本科”分類統計數據。這種情況如何解決呢?

二、數據庫設計模式

1.規范模式設計。這種模式是在個人基本信息表的基礎上設計一個變更表(見圖1),記錄此人歷次基本信息項變更時的信息(通過“變更類型”屬性區別本次變更的是個人基本信息表中的哪個屬性),在個人基本信息表中保存最新的個人基本信息,業務表記錄此人業務發生時的信息。這種設計完全符合數據庫關系模式的規范化要求,做到了最小的數據冗余(除主外鍵的關聯外),從而消除了數據的傳遞依賴,這是此模式的優點。但如果當需要針對業務表進行統計、查詢時,就需要關聯3個信息表,且當3個表的數據量處在較高的數量級別時(例如分別在上百萬數量級),那么關聯所占的臨時存儲空間和消耗的時間都是非常巨大的,甚至是不可忍受的。有些業務系統經常出現部分統計、查詢需要幾十分鐘,甚至幾個小時才能出現結果的情況,一般都是因為這個原因,當然部分情況可以通過建立索引或者優化索引的方式解決,但不能從根本上解決性能下降的問題。

2.冗余模式設計。這種模式是在業務表中增加必要的個人基本信息屬性的冗余,即冗余列反范式技術。這種方法的設計思想就是在當業務發生時,將當時個人的業務信息和相關的個人基本信息中的狀態信息記錄到業務表中,形成當時時間點上個人信息的一個“快照”。例如,如果業務需要對業務信息按文化程度屬性進行統計,那么就冗余文化程度屬性;如果需要按年齡段(20周歲至25周歲,25周歲至30周歲等)進行統計,那么就冗余年齡屬性,這樣在業務信息表中除了公民身份號碼作為外鍵關聯外,還將冗余文化程度和年齡屬性。而這些屬性實際在個人基本信息表中已經存在,在業務表中又保留了它的一個“拷貝”。此模式也可以增加一個變更表記錄歷次變更的信息,但它的作用只限于變更情況的記錄,不參與系統的統計、查詢操作。

當然冗余的設計需要在需求分析過程中,對業務需求進行詳細、充分的需求調研,要從業務的角度尋求對冗余的設計的業務需求支持,這決定了到底要冗余那些信息項;在系統設計過程中細致、縝密,并且具有豐富的業務和設計經驗,也就是說冗余要做到有效冗余,不能為了冗余而過度冗余那些沒有必要的屬性。這種方法的好處是減少了數據表之間的關聯,增加了業務統計、查詢的效率,缺點是需要額外的冗余數據存儲空間。

三、結束語

系統的建設應當是綜合設計的結果,不但要考慮系統的功能要求和非功能要求,還要從統計、查詢的效率,統計、分析的完整性,數據量估算、數據量增長等角度設計系統,當從這些維度考慮系統設計問題時,很多時候會對數據庫設計產生重大的影響。例如當考慮:為了保證業務的完整性,需要增加變更表記錄歷史變更信息;為了系統統計、分析的正確性,需要在業務表中冗余必要的屬性:為了統計、查詢的效率,需要關聯正確的數據表或者在業務表中冗余必要的屬性;考慮較快的數據增長速度,而又不能通過分區解決的,可以適當考慮數據冗余。

這些因素時,必須在數據庫規范化設計和數據冗余兩個方面做出綜合平衡,或者通過犧牲存儲空間獲得較高的系統性能,或者降低系統性能的要求而滿足數據存儲的要求。

參考文獻:

薩師煊 王 珊:數據庫系統概論[M].北京:高等教育出版社,1991

“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”

主站蜘蛛池模板: 毛片手机在线看| 亚洲AⅤ永久无码精品毛片| 无码日韩视频| 久久人与动人物A级毛片| 国产性生大片免费观看性欧美| 久久无码高潮喷水| 国产精品亚欧美一区二区三区| 男女男精品视频| 国产成人综合亚洲网址| 91欧美亚洲国产五月天| 毛片在线播放网址| 亚洲无码精彩视频在线观看| 久久精品无码一区二区国产区| 免费日韩在线视频| 99热这里只有精品在线播放| 亚洲成A人V欧美综合天堂| 成人福利在线观看| 色香蕉影院| 久久香蕉国产线看观看亚洲片| 超碰aⅴ人人做人人爽欧美| 国产免费a级片| 丁香六月激情婷婷| 伊人蕉久影院| 亚洲 日韩 激情 无码 中出| 国产乱人伦精品一区二区| 亚洲永久色| 中国黄色一级视频| 日本中文字幕久久网站| 国产区成人精品视频| 国产三级国产精品国产普男人| 亚洲男人的天堂久久香蕉| 国产亚洲一区二区三区在线| 2021天堂在线亚洲精品专区| 国产精品短篇二区| 国产青榴视频| 国产经典免费播放视频| 国产精品久久国产精麻豆99网站| 9999在线视频| 久久亚洲国产视频| 成人自拍视频在线观看| 午夜在线不卡| 四虎成人精品| 欧美日韩中文国产va另类| 亚洲欧美成人影院| 国产精品太粉嫩高中在线观看| 亚洲第一福利视频导航| 日韩一区精品视频一区二区| 亚洲制服丝袜第一页| 老司国产精品视频| 亚洲三级成人| 国产欧美日韩在线在线不卡视频| 午夜福利视频一区| 国产精品无码制服丝袜| 欧美日韩午夜| 五月婷婷精品| 国产性爱网站| 曰AV在线无码| 国产无人区一区二区三区| 国产久草视频| 久久毛片免费基地| 激情无码视频在线看| 夜夜操国产| 午夜视频免费试看| 亚洲综合色婷婷中文字幕| 亚洲啪啪网| 亚洲天堂色色人体| 亚洲日韩精品欧美中文字幕| 91久久偷偷做嫩草影院| 日韩精品免费一线在线观看| 亚洲国产一区在线观看| 99偷拍视频精品一区二区| 亚洲香蕉久久| 色综合婷婷| 欧美一区二区三区欧美日韩亚洲| 亚洲香蕉久久| 精品国产免费观看一区| 国产精品三区四区| 亚洲swag精品自拍一区| 国产精品美人久久久久久AV| 国产精品三区四区| 日韩精品无码免费一区二区三区| 欧美日韩精品在线播放|