付費下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、大型ERP等數(shù)據(jù)庫系統(tǒng)常見的幾種設(shè)計結(jié)構(gòu)1. 自增長 primary key采用自增長 primary key主要是性能。早期的數(shù)據(jù)庫系統(tǒng),經(jīng)常采用某種編號,比如身份證號碼,公司編號等等作為數(shù)據(jù)庫表的 primary key。然而,很快,大家就發(fā)現(xiàn)其中的不利之處。比如早期的醫(yī)院管理系統(tǒng),用身份證號碼作為病人表的 primary key。然而,第一,不是每個人都有身份證;第二,對于國外來的病人,不同國家的病人的證件號碼并不見得沒有重復(fù)。因此,用身份證號碼作為病人表的 primary key是一個非常糟糕的設(shè)計。考慮到?jīng)]有醫(yī)生或者護士會刻意去記這些號碼,使用自增長 primary key是更好的設(shè)
2、計。公司編號采用某種特定的編碼方法,這也是早期的數(shù)據(jù)庫系統(tǒng)常見的做法。它的缺點也顯而易見:很容易出現(xiàn)像千年蟲的軟件問題,因為當(dāng)初設(shè)計數(shù)據(jù)庫表的時候設(shè)計的位數(shù)太短,導(dǎo)致系統(tǒng)使用幾年后不能滿足要求,只有修改程序才能繼續(xù)使用。問題在于,任何人設(shè)計系統(tǒng)的時候,在預(yù)計某某編號多少位可以夠用的時候,都存在預(yù)計不準(zhǔn)的風(fēng)險。而采用自增長 primary key 則不存在這種問題。同樣的道理,沒有人可以去記這些號碼。使用自增長 primary key另外一個原因是性能問題。略有編程常識的人都知道,數(shù)字大小比較比字符串大小比較要快得多。使用自增長 primary key可以大大地提高數(shù)據(jù)查找速度。2. 避免用復(fù)合
3、主鍵 (compound primary key)這主要還是因為性能問題。數(shù)據(jù)檢索是要用到大量的 primary key 值比較,只比較一個字段比比較多個字段快很多。使用單個 primary key 從編程的角度也很有好處, sql 語句中 where 條件可以寫更少的代碼,這意味著出錯的機會大大減少。3. 雙主鍵雙主鍵是指數(shù)據(jù)庫表有兩個字段,這兩個字段獨立成為主鍵,但又同時存在。 數(shù)據(jù)庫系統(tǒng)的雙主鍵最早用在用戶管理模塊。最早的來源可能是參照操作系統(tǒng)的用戶管理模塊。操作系統(tǒng)的用戶管理有兩個獨立的主鍵:操作系統(tǒng)自己自動生成的隨機 ID (Linux, windows 的 SID), login
4、id。這兩個 ID 都必須是唯一的,不同的是,刪除用戶 test 然后增加一個用戶 test, SID 不同,login id 相同。采用雙主鍵主要目的是為了防止刪除后增加同樣的 login id 造成的混亂。比如銷售經(jīng)理 hellen 本機共享文件給總經(jīng)理 peter, 一年后總經(jīng)理離開公司,進來一個普通員工 peter ,兩個peter 用同樣的 login id, 如果只用 login id 作操作系統(tǒng)的用戶管理主鍵,則存在漏洞:普通員工 peter 可以訪問原來只有總經(jīng)理才能看的文件。操作系統(tǒng)自己自動生成的隨機 ID 一般情況下面用戶是看不到的。雙主鍵現(xiàn)在已經(jīng)廣泛用在各種數(shù)據(jù)庫系統(tǒng)中,
5、不限于用戶管理系統(tǒng)。4. 以固定的數(shù)據(jù)庫、表應(yīng)付變化的客戶需求這主要基于以下幾個因素的考慮:4.1 大型 EPR 系統(tǒng)的正常使用、維護需要軟件廠商及其眾多的合作伙伴共同給客戶提供技術(shù)服務(wù),包括大量的二次開發(fā)。如果用戶在軟件正常使用過程中需要增加新的表或者數(shù)據(jù)庫,將給軟件廠商及其眾多的合作伙伴帶來難題。4.2 軟件升級的需要。沒有一個軟件能夠讓客戶使用幾十上百年不用升級的。軟件升級往往涉及數(shù)據(jù)庫表結(jié)構(gòu)的改變。軟件廠商會做額外的程序?qū)⒃缙诎姹拒浖臄?shù)據(jù)庫數(shù)據(jù)升級到新的版本,但是對于用戶使用過程中生成的表進行處理就比較為難。4.3 軟件開發(fā)的需要。使用固定的數(shù)據(jù)庫庫表從開發(fā)、二次開發(fā)來說,更加容易。
6、對于用戶使用過程中生成的表,每次查找數(shù)據(jù)時都要先查表名,再找數(shù)據(jù),比較麻煩。舉例來說,早期的用友財務(wù)軟件用 Access 作數(shù)據(jù)庫,每年建立一個新的數(shù)據(jù)庫。很快,用戶和用友公司都發(fā)現(xiàn),跨年度數(shù)據(jù)分析很難做。因此這是一個不好的設(shè)計。在 ERP 中,很少有不同的年度數(shù)據(jù)單獨分開。一般來說,所有年份的數(shù)據(jù)都在同一個表中。對于跨國公司甚至整個集團公司都用同一個 ERP 系統(tǒng)的時候,所有公司的數(shù)據(jù)都在一起。這樣的好處是數(shù)據(jù)分析比較容易做。現(xiàn)在大多數(shù)數(shù)據(jù)庫系統(tǒng)都能做到在常數(shù)時間內(nèi)返回一定量的數(shù)據(jù)。比如,Oracle 數(shù)據(jù)庫中,根據(jù) primary key 在 100萬條數(shù)據(jù)中取 10 條數(shù)據(jù),與在1 億條
7、數(shù)據(jù)中取 10 條數(shù)據(jù),時間相差并不多。5. 避免一次取數(shù)據(jù)庫大量數(shù)據(jù),取大量數(shù)據(jù)一定要用分頁。這基本上是現(xiàn)在很多數(shù)據(jù)庫系統(tǒng)設(shè)計的基本守則。ERP 系統(tǒng)中超過 100萬條數(shù)據(jù)的表很多,對于很多表中的任何一個,一次取所有的會導(dǎo)致數(shù)據(jù)庫服務(wù)器長時間處于停滯狀態(tài),并且影響其它在線用戶的系統(tǒng)響應(yīng)速度。一般來說,日常操作,在分頁顯示的情況下面,每次取得數(shù)據(jù)在 1-100 之間,系統(tǒng)響應(yīng)速度足夠快,客戶端基本沒有特別長的停頓。這是比較理想的設(shè)計。這也是大型數(shù)據(jù)庫系統(tǒng)往往用 ODBC, ADO 等等通用的數(shù)據(jù)庫聯(lián)接組件而不用特定的速度較快的專用數(shù)據(jù)庫聯(lián)接組件的原因。因為系統(tǒng)瓶頸在于數(shù)據(jù)庫( Database
8、) 方面(數(shù)據(jù)量大),而不在于客戶端(客戶端每次只取少量數(shù)據(jù))。在 B/S 數(shù)據(jù)庫系統(tǒng)中,分頁非常普遍。早期的數(shù)據(jù)庫系統(tǒng)經(jīng)常有客戶端程序中一次性取大量數(shù)據(jù)做緩沖?,F(xiàn)在已經(jīng)不是特別需要了,主要原因有:5.1 數(shù)據(jù)庫本身的緩沖技術(shù)大大提高。大部分?jǐn)?shù)據(jù)庫都會自動將常用的數(shù)據(jù)自動放在內(nèi)存中緩沖,以提高性能。5.2 數(shù)據(jù)庫聯(lián)接組件的緩沖技術(shù)也在提高。包括 ADO 在內(nèi)的一些數(shù)據(jù)庫聯(lián)接組件都會自動對數(shù)據(jù)結(jié)果集(result set)進行緩沖,并且效果不錯。比較新穎的數(shù)據(jù)庫聯(lián)接組件,比如 Hibernate 也加入了一些數(shù)據(jù)結(jié)果集緩沖功能。當(dāng)然,也有一些數(shù)據(jù)庫聯(lián)接組件沒有對數(shù)據(jù)結(jié)果集進行緩沖,比如 JDBC Driver
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北省隨州市部分高中2025-2026學(xué)年高一上學(xué)期期末聯(lián)考物理答案
- 貴州省貴陽市2025-2026學(xué)年上學(xué)期期末九年級物理試卷(含答案)
- 過程裝備密封技術(shù)
- 會東事業(yè)單位招聘2022年考試全真模擬試題4套及答案解析(附后)
- 鋼結(jié)構(gòu)成型技術(shù)操作要點
- 事業(yè)編考試判斷推理題及答案
- 社區(qū)護士考試題及答案
- 社保業(yè)務(wù)知識試題及答案
- 禽病防治試題庫及答案
- 甘肅省定西市岷縣2025-2026學(xué)年三年級上學(xué)期學(xué)情監(jiān)測數(shù)學(xué)試卷(含答案)
- 2024年風(fēng)電、光伏項目前期及建設(shè)手續(xù)辦理流程匯編
- 不良資產(chǎn)合作戰(zhàn)略框架協(xié)議文本
- 2025年鹽城中考歷史試卷及答案
- 2026年孝昌縣供水有限公司公開招聘正式員工備考題庫完整參考答案詳解
- 2025年鄭州工業(yè)應(yīng)用技術(shù)學(xué)院馬克思主義基本原理概論期末考試模擬試卷
- 測繪資料檔案匯交制度
- 2026年孝昌縣供水有限公司公開招聘正式員工備考題庫及完整答案詳解
- 2025年六年級上冊道德與法治期末測試卷附答案(完整版)
- 先進班級介紹
- 附件二;吊斗安全計算書2.16
- 學(xué)校食堂改造工程施工組織設(shè)計方案
評論
0/150
提交評論