5.數(shù)據(jù)庫的物理設(shè)計(jì)
物理設(shè)計(jì)的內(nèi)容主要包括:
(1)確定數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu) 從DBMS所提供的存儲(chǔ)結(jié)構(gòu)中選取一種合適的加以實(shí)現(xiàn)。確定存儲(chǔ)結(jié)構(gòu)的主要因素是存取時(shí)間、存儲(chǔ)空間利用率和維護(hù)代價(jià)三個(gè)方面。設(shè)計(jì)者常常要對(duì)這些因素進(jìn)行權(quán)衡。一般的DBMS也總是具有一定靈活性供你選擇。例如,若引入某些冗余數(shù)據(jù),則可能減少物理I/O次數(shù)提高檢索效率。相反節(jié)約存儲(chǔ)空間檢索代價(jià)就會(huì)增加。當(dāng)然應(yīng)該盡量尋找優(yōu)化方法,使這三方面的性能都較好。折衷有時(shí)是必須的。
(2)存取路徑的選擇和調(diào)整 數(shù)據(jù)庫必須支持多個(gè)用戶的多種應(yīng)用,因而必須提供對(duì)數(shù)據(jù)庫的多個(gè)存取入口,也就是對(duì)同一數(shù)據(jù)存儲(chǔ)要提供多條存取路徑。物理設(shè)計(jì)的任務(wù)應(yīng)確定建立哪些存取路徑。設(shè)計(jì)者應(yīng)該進(jìn)行定量的分析,根據(jù)計(jì)算結(jié)果確定存取路徑。
(3)確定數(shù)據(jù)存放位置 首先按數(shù)據(jù)的應(yīng)用情況劃分為不同的組,然后確定存放位置。一般的應(yīng)把數(shù)據(jù)的易變部分和穩(wěn)定部分分開,把經(jīng)常存取和不常存取的數(shù)據(jù)分開。經(jīng)常存取或存取時(shí)間要求高的記錄應(yīng)存放在高速存儲(chǔ)器上,如硬盤。存取頻率小或存取時(shí)間要求低的放在低速存儲(chǔ)器上,如軟盤磁帶。對(duì)于同一數(shù)據(jù)文件也可根據(jù)情況進(jìn)行水平劃分或垂直劃分。
(4)確定存儲(chǔ)分配 許多DBMS提供了存儲(chǔ)分配的參數(shù)供設(shè)計(jì)者物理優(yōu)化處理用。例如溢出空間的大小和分布參數(shù),塊的長度,塊因子的大小,裝填因子,緩沖區(qū)的大小和個(gè)數(shù)等等,它們都要在物理設(shè)計(jì)中確定。這些參數(shù)的大小影響存取時(shí)間和存儲(chǔ)空間的分配。物理設(shè)計(jì)過程需要對(duì)時(shí)間、空間效率、維護(hù)代價(jià)和各種用戶要求進(jìn)行權(quán)衡,其結(jié)果可以產(chǎn)生多種方案。在實(shí)施數(shù)據(jù)庫前對(duì)這些方案進(jìn)行方案進(jìn)行細(xì)致的評(píng)價(jià),以選擇一個(gè)較優(yōu)的方案是十分必要的。
6.數(shù)據(jù)庫應(yīng)用系統(tǒng)的實(shí)施和維護(hù)
對(duì)數(shù)據(jù)庫的物理設(shè)計(jì)初步評(píng)價(jià)完成后就可建立數(shù)據(jù)庫了。數(shù)據(jù)庫應(yīng)用系統(tǒng)實(shí)施對(duì)應(yīng)于軟件工程的編碼、調(diào)試階段。設(shè)計(jì)人員運(yùn)用DBMS提供的數(shù)據(jù)定義語言將邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果嚴(yán)格地描述出來,成為DBMS可接受的源代碼。經(jīng)過調(diào)試產(chǎn)生目標(biāo)模式。然后組織數(shù)據(jù)入庫。組織數(shù)據(jù)入庫是數(shù)據(jù)庫應(yīng)用系統(tǒng)實(shí)施階段最主要的工作。
(1)數(shù)據(jù)庫數(shù)據(jù)的載入和應(yīng)用程序的開發(fā)由于數(shù)據(jù)庫數(shù)據(jù)量一般都非常大,并且這些數(shù)據(jù)來源于一個(gè)組織的各個(gè)部門,分散在各種數(shù)據(jù)文件或原始憑證中。這些數(shù)據(jù)的結(jié)構(gòu)和格式一般也不符合數(shù)據(jù)庫的要求,還要進(jìn)行轉(zhuǎn)換。因此組織數(shù)據(jù)入庫是一件耗費(fèi)大量人力物力的工作。數(shù)據(jù)的轉(zhuǎn)換和組織對(duì)于小系統(tǒng)可以用人工方法完成。但是,人工轉(zhuǎn)換效率低、質(zhì)量差。一般來說,應(yīng)設(shè)計(jì)一個(gè)數(shù)據(jù)輸入子系統(tǒng)讓計(jì)算機(jī)完成這個(gè)工作。輸入子系統(tǒng)的主要功能是:原始數(shù)據(jù)的輸入、抽取、校驗(yàn)、分類、轉(zhuǎn)換和綜合,最終把數(shù)據(jù)組織成符合數(shù)據(jù)庫結(jié)構(gòu)的形式。然后把數(shù)據(jù)存入數(shù)據(jù)庫中。數(shù)據(jù)的轉(zhuǎn)換、分類和綜合常常要經(jīng)過多次才能完成,因而輸入子系統(tǒng)的設(shè)計(jì)和實(shí)施亦是比較復(fù)雜的,要編寫許多應(yīng)用程序。輸入子系統(tǒng)的設(shè)計(jì)不能等物理設(shè)計(jì)完成后才動(dòng)手,應(yīng)該和數(shù)據(jù)庫設(shè)計(jì)工作并行開展。為了保證數(shù)據(jù)庫數(shù)據(jù)正確無誤,必須高度重視數(shù)據(jù)的檢驗(yàn)工作。在輸入子系統(tǒng)進(jìn)行數(shù)據(jù)轉(zhuǎn)換的過程中應(yīng)該進(jìn)行多次檢驗(yàn),每次檢驗(yàn)的方法亦不要相同。對(duì)于重要數(shù)據(jù)的校驗(yàn)更應(yīng)該反復(fù)多次,確認(rèn)正確后方可入庫。數(shù)據(jù)庫應(yīng)用系統(tǒng)中應(yīng)用程序的設(shè)計(jì)應(yīng)該和數(shù)據(jù)庫模式設(shè)計(jì)并行。數(shù)據(jù)庫應(yīng)用系統(tǒng)的實(shí)施階段的另一項(xiàng)工作便這是這些應(yīng)用程序的編碼、調(diào)試工作。有了裝載實(shí)際數(shù)據(jù)的數(shù)據(jù)庫和應(yīng)用程序,就建立了數(shù)據(jù)庫應(yīng)用系統(tǒng),可以試運(yùn)行了。
(2)數(shù)據(jù)庫應(yīng)用系統(tǒng)的試運(yùn)行在完成上述工作之后,便可進(jìn)入數(shù)據(jù)庫的試運(yùn)行階段,或者稱聯(lián)合調(diào)試階段。這階段的主要工作是:
、賹(shí)際運(yùn)行應(yīng)用程序,執(zhí)行對(duì)數(shù)據(jù)庫的各種操作,測試應(yīng)用程序的功能。
、跍y量系統(tǒng)的性能指標(biāo),分析是否符合設(shè)計(jì)目標(biāo)。雖然已在物理設(shè)計(jì)過程中進(jìn)行了性能預(yù)測,但是僅僅估價(jià)了時(shí)間和空間指標(biāo),而且在性能估價(jià)的過程中作了許多簡化和假設(shè),忽略了許多次要因素,因而估價(jià)是粗糙的并可能失真。必須在試運(yùn)行階段進(jìn)行實(shí)際測量和評(píng)價(jià)。有些參數(shù)的最佳值往往是經(jīng)過運(yùn)行調(diào)試后才找到的。如果實(shí)際結(jié)果不符合設(shè)計(jì)目標(biāo),則需返回物理設(shè)計(jì)階段,調(diào)整物理結(jié)構(gòu),修改參數(shù)。有時(shí),也許還需要返回邏輯設(shè)計(jì)階段,調(diào)整邏輯結(jié)構(gòu)。最后還須指出兩點(diǎn)。
第一,上面已看到組織數(shù)據(jù)入庫是十分費(fèi)事的,如果運(yùn)行調(diào)試后又要修改數(shù)據(jù)庫設(shè)計(jì)則又要重新組織數(shù)據(jù)入庫。因此應(yīng)分批分期輸入數(shù)據(jù),逐步完成運(yùn)行評(píng)價(jià)。
第二,數(shù)據(jù)庫的實(shí)施和調(diào)試不是一朝一夕能完成的,在此期間軟硬件的錯(cuò)誤隨時(shí)可能發(fā)生。加上數(shù)據(jù)庫剛剛建立,工作人員對(duì)系統(tǒng)還不熟悉,對(duì)其規(guī)律更缺乏深入了解,容易發(fā)生操作錯(cuò)誤。因此必須做好數(shù)據(jù)庫的轉(zhuǎn)儲(chǔ)和恢復(fù)工作,這就要求設(shè)計(jì)人員了解DBMS的這個(gè)功能,并根據(jù)調(diào)試方式和特點(diǎn)首先實(shí)施,盡量減少對(duì)數(shù)據(jù)庫的破壞并簡化故障恢復(fù)。
(3)數(shù)據(jù)庫應(yīng)用系統(tǒng)的運(yùn)行和維護(hù)數(shù)據(jù)庫應(yīng)用系統(tǒng)投入運(yùn)行標(biāo)志著開發(fā)任務(wù)的基本完成和維護(hù)工作的開始,但并不意味著設(shè)計(jì)過程結(jié)束。任何數(shù)據(jù)庫應(yīng)用系統(tǒng)只要它存在一天,它的設(shè)計(jì)就得不斷地進(jìn)行評(píng)價(jià)、調(diào)整、修改,甚至完全改革。因此數(shù)據(jù)庫應(yīng)用系統(tǒng)的維護(hù)不僅是維護(hù)其正;顒(dòng)而且是設(shè)計(jì)工作的繼續(xù)和提高。維護(hù)階段的主要工作是:
、贁(shù)據(jù)庫的安全性、完整性控制及系統(tǒng)的轉(zhuǎn)儲(chǔ)和恢復(fù);
、谛阅艿谋O(jiān)督、分析和改進(jìn);
、蹟(shù)據(jù)庫的重組織和重構(gòu)造。下面簡單介紹數(shù)據(jù)庫的重組織和重構(gòu)造。數(shù)據(jù)庫運(yùn)行一段時(shí)間后,由于記錄的不斷增、刪、改,會(huì)使數(shù)據(jù)庫的物理存儲(chǔ)變壞。例如,邏輯上屬于同一記錄型或同一關(guān)系的數(shù)據(jù)被分散到了不同的文件或文件的多個(gè)碎片上。從而降低了數(shù)據(jù)庫存儲(chǔ)空間的利用率和數(shù)據(jù)的存取效率,數(shù)據(jù)庫的性能下降。這時(shí),DBA就要進(jìn)行數(shù)據(jù)庫的重組織,DBMS一般都提供重組織用的實(shí)用程序。在重組過程中,按原設(shè)計(jì)要求重新安排記錄的存儲(chǔ)位置,調(diào)整數(shù)據(jù)區(qū)和溢出區(qū),回收“垃圾”,減少指針鏈等。數(shù)據(jù)庫的重組織不改變?cè)O(shè)計(jì)的數(shù)據(jù)邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。而數(shù)據(jù)庫的重構(gòu)造則不同。部分修改原數(shù)據(jù)庫的模式或內(nèi)模式稱為數(shù)據(jù)庫的重構(gòu)造。由于數(shù)據(jù)庫應(yīng)用環(huán)境的變化,數(shù)據(jù)庫重構(gòu)的程度是有限的。只能作部分的修改和調(diào)整。若應(yīng)用變化太大,重構(gòu)也無濟(jì)于事了,則表明數(shù)據(jù)庫應(yīng)用系統(tǒng)生命周期的結(jié)束,應(yīng)該重新設(shè)計(jì)數(shù)據(jù)庫應(yīng)用系統(tǒng)。新的數(shù)據(jù)庫應(yīng)用系統(tǒng)新的生命周期開始了。
相關(guān)推薦: 軟考數(shù)據(jù)庫系統(tǒng)師歷年真題匯總(2007年-2010年)北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |