<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > 詳細(xì)講解大型數(shù)據(jù)庫的設(shè)計原則與開發(fā)技巧

          詳細(xì)講解大型數(shù)據(jù)庫的設(shè)計原則與開發(fā)技巧

          作者: 時間:2017-06-13 來源:網(wǎng)絡(luò) 收藏
          目前,計算機(jī)技術(shù)已經(jīng)廣泛地應(yīng)用于國民經(jīng)濟(jì)的各個領(lǐng)域當(dāng)中,在計算機(jī)硬件不斷微型化的同時,應(yīng)用系統(tǒng)也逐漸向著復(fù)雜化、大型化的方向發(fā)展。是整個系統(tǒng)的核心,它的直接關(guān)系系統(tǒng)執(zhí)行的效率和系統(tǒng)的穩(wěn)定性。因此在軟件系統(tǒng)中,應(yīng)遵循必要的范式理論,以減少冗余、保證數(shù)據(jù)的完整性與正確性。只有在合適的數(shù)據(jù)庫產(chǎn)品上出合理的數(shù)據(jù)庫模型,才能降低整個系統(tǒng)的編程和維護(hù)難度,提高系統(tǒng)的實際運行效率。雖然對于小項目或中等規(guī)模的項目,人員可以很容易地利用范式理論設(shè)計出一套符合要求的數(shù)據(jù)庫,但對于一個包含大型數(shù)據(jù)庫的軟件項目,就必須有一套完整的設(shè)計原則與技巧。

          一、成立數(shù)據(jù)小組

          大型數(shù)據(jù)庫數(shù)據(jù)元素多,在設(shè)計上有必要成立專門的數(shù)據(jù)小組。由于數(shù)據(jù)庫設(shè)計者不一定是使用者,對系統(tǒng)設(shè)計中的數(shù)據(jù)元素不可能考慮周全,數(shù)據(jù)庫設(shè)計出來后,往往難以找到所需的庫表,因此數(shù)據(jù)小組最好由熟悉業(yè)務(wù)的項目骨干組成。

          數(shù)據(jù)小組的職能并非是設(shè)計數(shù)據(jù)庫,而是通過需求分析,在參考其他相似系統(tǒng)的基礎(chǔ)上,提取系統(tǒng)的基本數(shù)據(jù)元素,擔(dān)負(fù)對數(shù)據(jù)庫的審核。審核內(nèi)容包括審核新的數(shù)據(jù)庫元素是否完全、能否實現(xiàn)全部業(yè)務(wù)需求;對舊數(shù)據(jù)庫(如果存在舊系統(tǒng))的分析及數(shù)據(jù)轉(zhuǎn)換;數(shù)據(jù)庫設(shè)計的審核、控制及必要調(diào)整。

          二、設(shè)計原則

          1、規(guī)范命名
          所有的庫名、表名、域名必須遵循統(tǒng)一的命名規(guī)則,并進(jìn)行必要說明,以方便設(shè)計、維護(hù)、查詢。

          2、控制字段的引用
          在設(shè)計時,可以選擇適當(dāng)?shù)臄?shù)據(jù)庫設(shè)計管理工具,以方便人員的分布式設(shè)計和數(shù)據(jù)小組的集中審核管理。采用統(tǒng)一的命名規(guī)則,如果設(shè)計的字段已經(jīng)存在,可直接引用;否則,應(yīng)重新設(shè)計。

          3、庫表重復(fù)控制
          在設(shè)計過程中,如果發(fā)現(xiàn)大部分字段都已存在,開發(fā)人員應(yīng)懷疑所設(shè)計的庫表是否已存在。通過對字段所在庫表及相應(yīng)設(shè)計人員的查詢,可以確認(rèn)庫表是否確實重復(fù)。

          4、并發(fā)控制
          設(shè)計中應(yīng)進(jìn)行并發(fā)控制,即對于同一個庫表,在同一時間只有一個人有控制權(quán),其他人只能進(jìn)行查詢。

          5、必要的討論
          數(shù)據(jù)庫設(shè)計完成后,數(shù)據(jù)小組應(yīng)與相關(guān)人員進(jìn)行討論,通過討論來熟悉數(shù)據(jù)庫,從而對設(shè)計中存在的問題進(jìn)行控制或從中獲取數(shù)據(jù)庫設(shè)計的必要信息。

          6、數(shù)據(jù)小組的審核
          庫表的定版、修改最終都要通過數(shù)據(jù)小組的審核,以保證符合必要的要求。

          7、頭文件處理
          每次數(shù)據(jù)修改后,數(shù)據(jù)小組要對相應(yīng)的頭文件進(jìn)行修改(可由管理軟件自動完成),并通知相關(guān)的開發(fā)人員,以便進(jìn)行相應(yīng)的程序修改。

          三、設(shè)計技巧

          1、分類拆分?jǐn)?shù)據(jù)量大的表
          對于經(jīng)常使用的表(如某些參數(shù)表或代碼對照表),由于其使用頻率很高,要盡量減少表中的記錄數(shù)量。例如,銀行的戶主賬表原來設(shè)計成一張表,雖然可以方便程序的設(shè)計與維護(hù),但經(jīng)過分析發(fā)現(xiàn),由于數(shù)據(jù)量太大,會影響數(shù)據(jù)的迅速定位。如果將戶主賬表分別設(shè)計為活期戶主賬、定期戶主賬及對公戶主賬等,則可以大大提高查詢效率。

          2、索引設(shè)計
          應(yīng)挑選重復(fù)值較少的字段;在對建有復(fù)合索引的字段進(jìn)行檢索時,應(yīng)注意按照復(fù)合索引字段建立的順序進(jìn)行。例如,如果對一個5萬多條記錄的流水表以日期和流水號為序建立復(fù)合索引,由于在該表中日期的重復(fù)值接近整個表的記錄數(shù),用流水號進(jìn)行查詢所用的時間接近3秒;而如果以流水號為索引字段建立索引進(jìn)行相同的查詢,所用時間不到1秒。因此在大型數(shù)據(jù)庫設(shè)計中,只有進(jìn)行合理的索引字段選擇,才能有效提高整個數(shù)據(jù)庫的操作效率。

          3、數(shù)據(jù)操作的優(yōu)化
          在大型數(shù)據(jù)庫中,如何提高數(shù)據(jù)操作效率值得關(guān)注。例如,每在數(shù)據(jù)庫流水表中增加一筆業(yè)務(wù),就必須從流水控制表中取出流水號,并將其流水號的數(shù)值加一。正常情況下,單筆操作的反應(yīng)速度尚屬正常,但當(dāng)用它進(jìn)行批量業(yè)務(wù)處理時,速度會明顯減慢。經(jīng)過分析發(fā)現(xiàn),每次對流水控制表中的流水號數(shù)值加一時都要鎖定該表,而該表卻是整個系統(tǒng)操作的核心,有可能在操作時被其他進(jìn)程鎖定,因而使整個事務(wù)操作速度變慢。對這一問題的解決的辦法是,根據(jù)批量業(yè)務(wù)的總筆數(shù)批量申請流水號,并對流水控制表進(jìn)行一次更新,即可提高批量業(yè)務(wù)處理的速度。另一個例子是對插表的優(yōu)化。對于大批量的業(yè)務(wù)處理,如果在插入數(shù)據(jù)庫表時用普通的Insert語句,速度會很慢。其原因在于,每次插表都要進(jìn)行一次I/O操作,花費較長的時間。改進(jìn)后,可以用Put語句等緩沖區(qū)形式等滿頁后再進(jìn)行I/O操作,從而提高效率。對大的數(shù)據(jù)庫表進(jìn)行刪除時,一般會直接用Delete語句,這個語句雖然可以進(jìn)行小表操作,但對大表卻會因帶來大事務(wù)而導(dǎo)致刪除速度很慢甚至失敗。解決的方法是去掉事務(wù),但更有效的辦法是先進(jìn)行Drop操作再進(jìn)行重建。

          4、數(shù)據(jù)庫參數(shù)的調(diào)整
          數(shù)據(jù)庫參數(shù)的調(diào)整是一個經(jīng)驗不斷積累的過程,應(yīng)由有經(jīng)驗的系統(tǒng)管理員完成。以Informix數(shù)據(jù)庫為例,記錄鎖的數(shù)目太少會造成鎖表的失?。贿壿嬋罩镜奈募?shù)目太少會造成插入大表失敗等,這些問題都應(yīng)根據(jù)實際情況進(jìn)行必要的調(diào)整。

          5、必要的工具
          在整個數(shù)據(jù)庫的開發(fā)與設(shè)計過程中,可以先開發(fā)一些小的應(yīng)用工具,如自動生成庫表的頭文件、插入數(shù)據(jù)的初始化、數(shù)據(jù)插入的函數(shù)封裝、錯誤跟蹤或自動顯示等,以此提高數(shù)據(jù)庫的設(shè)計與開發(fā)效率。

          6、避免長事務(wù)
          對單個大表的刪除或插入操作會帶來大事務(wù),解決的辦法是對參數(shù)進(jìn)行調(diào)整,也可以在插入時對文件進(jìn)行分割。對于一個由一系列小事務(wù)順序操作共同構(gòu)成的長事務(wù)(如銀行交易系統(tǒng)的日終交易),可以由一系列操作完成整個事務(wù),但其缺點是有可能因整個事務(wù)太大而使不能完成,或者,由于偶然的意外而使事務(wù)重做所需的時間太長。較好的解決方法是,把整個事務(wù)分解成幾個較小的事務(wù),再由應(yīng)用程序控制整個系統(tǒng)的流程。這樣,如果其中某個事務(wù)不成功,則只需重做該事務(wù),因而既可節(jié)約時間,又可避免長事務(wù)。

          7、適當(dāng)超前
          計算機(jī)技術(shù)發(fā)展日新月異,數(shù)據(jù)庫的設(shè)計必須具有一定前瞻性,不但要滿足當(dāng)前的應(yīng)用要求,還要考慮未來的業(yè)務(wù)發(fā)展,同時必須有利于擴(kuò)展或增加應(yīng)用系統(tǒng)的處理功能。

          與小型數(shù)據(jù)庫相比,大型數(shù)據(jù)庫的設(shè)計與開發(fā)要復(fù)雜得多,因此在設(shè)計、開發(fā)過程中,除了要遵循數(shù)據(jù)庫范式理論、增加系統(tǒng)的一致性和完整性外,還要在總體上根據(jù)具體情況進(jìn)行分布式設(shè)計,緊緊把握集中控制、統(tǒng)一審核的基本原則,保證數(shù)據(jù)庫設(shè)計結(jié)構(gòu)緊湊、分布平衡、定位迅速。在數(shù)據(jù)庫操作上,要采用一定的技巧提高整個應(yīng)用系統(tǒng)的執(zhí)行效率,并注意適當(dāng)超前,以適應(yīng)不斷變化的應(yīng)用及系統(tǒng)發(fā)展的要求。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();