首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載 | ||
![]() |
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試 MPA考試 | 中科院 |
|
![]() |
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語 |
|
![]() |
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 華為認證 | Java認證 |
|
![]() |
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格 報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師 人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平 駕駛員 | 網絡編輯 |
|
![]() |
衛生資格 | 執業醫師 | 執業藥師 | 執業護士 | |
![]() |
會計從業資格考試(會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師 注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師 |
|
![]() |
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師 質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師 設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師 城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師 |
|
![]() |
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲 |
七、數據庫應用系統的設計
1.數據庫應用系統的設計步驟
按規范設計的方法可將數據庫設計分為以下六個階段
。1)需求分析;
。2)概念結構設計;
。3)邏輯結構設計;
(4)數據庫物理設計;
。5)數據庫實施;
(6)數據庫運行和維護。
2.需求分析
需求收集和分析是數據庫應用系統設計的第一階段。明確地把它作為數據庫應用系統設計的第一步是十分重要的。這一階段收集到的基礎數據和一組數據流圖(Data Flow Diagram———DFD)是下一步設計概念結構的基礎。
概念結構是整個組中所有用戶關心的信息結構,對整個數據庫設計具有深刻影響。而要設計好概念結構,就必須在需求分析階段用系統的觀點來考慮問題、收集和分析數據及其處理。如何分析和表達用戶需求呢?在眾多的分析方法中,結構化分析(Structured Analysis,簡稱SA方法)是一個簡單實用的方法。SA方法用自頂向下、逐層分解的方式分析系統。用數據流圖、數據字典描述系統。
然后把一個處理功能的具體內容分解為若干子功能,每個子功能繼續分解,直到把系統的工作過程表達清楚為止。在處理功能逐步分解的同時,它們所用的數據也逐級分解,形成若干層次的數據流圖。數據流圖表達了數據和處理過程的關系。處理過程的處理邏輯常常用判定表或判定樹來描述。數據字典(Data Dictionary,簡稱DD)則是對系統中數據的詳盡描述,是各類數據屬性的清單。對數據庫應用系統設計來講,數據字典是進行詳細的數據收集和數據分析所獲得的主要結果。
數據字典是各類數據描述的集合,它通常包括以下5個部分:
。1)數據項,是數據最小單位。
(2)數據結構,是若干數據項有意義的集合。
。3)數據流,可以是數據項,也可以是數據結構。表示某一處理過程的輸入輸出。
。4)數據存儲,處理過程中存取的數據。常常是手工憑證、手工文檔或計算機文件。
(5)處理過程。
3.概念結構設計
如同軟件工程中重視需求分析與規范說明的思想一樣,數據庫設計中同樣十分重視數據分析、抽象與概念結構的設計。概念結構的設計,是整個數據庫設計的關鍵之一。
概念結構獨立于數據庫邏輯結構,獨立于支持數據庫的DBMS,也獨立于具體計算機軟件和硬件系統。歸納總結,其主要特點是:
。1)能充分地反映現實世界,包括實體和實體之間的聯系,能滿足用戶對數據處理的要求,是現實世界的一個真實的模型,或接近真實的模型。
(2)易于理解,從而可以和不熟悉計算機的用戶交換意見。用戶的積極參與是數據庫應用系統設計成功與否的關鍵。
。3)易于更動。當現實世界改變時容易修改和擴充,特別是軟件、硬件環境變化時更應如此。
(4)易于向關系、網狀或層次等各種數據模型轉換。
概念結構是各種數據模型的共同基礎,它比任意一種數據模型更獨立于機器,更抽象,從而更加穩定。
描述概念結構的有力工具是E-R模型。P.P.S.Chen把用E-R模型定義的概念結構稱為組織模式。
設計概念結構的策略有3種:
。1)自頂向下 首先定義全局概念結構的框架,然后逐步細化。
(2)自底向上 首先定義各局部應用的概念結構,然后將它們集成,得到全局概念結構。
(3)混合策略 自頂向下和自底向上相結合的方法。用自頂向下策略設計一個全局概念結構的框架,以它為骨架集成由自底向上策略中設計的各局部概念結構。
現介紹自底向上設計概念結構的策略。按照這種策略,概念結構的設計可按下面步驟進行。
。1)數據抽象與局部視圖設計
E-R模型是對現實世界的一種抽象。一般地講,所謂抽象是對實際的人、物、事和概念的人為處理。它抽取人們關心的共同特性,忽略非本質的細節,并把這些特性用各種抽象的概念精確地加以描述。這些概念組成了現實世界的一種模型表示。有3種抽象方法形成了抽象機制,來對數據進行組織:
、俜诸悾–lassification) 定義某一概念作為現實世界中一組對象的類型。這些對象具有某些共同的特性和行為。它抽象了對象值和型之間的“is a member of”的語義。在E-R模型中,實體型就是這種抽象。
②聚集(Aggregation) 定義某一類型的組成成分。它抽象了對象內部屬性類型和整體與部分之間“is a part of”的語義。在E-R模型中若干屬性的聚集組成了實體型,就是這種抽象。③概括(Generalization) 定義類型之間的一種子集聯系。它抽象了類型之間的“is a subset of”的語義。
概括具有一個很重要的性質:繼承性。子類繼承超類上定義的所有抽象性質。當然,子類可以增加自己的某些特殊屬性。
概念結構設計的第一步就是利用上面介紹的抽象機制對需求分析階段收集到的數據進行組織,形成實體、實體的屬性,標識實體的碼,確定實體之間的聯系類型(1∶1、1∶n、n∶m),設計成部分E-R圖。
。2)視圖的集成
視圖集成就是把上一步得到的各個部分E-R圖綜合成一個總體的E-R圖。視圖集成可以有兩種方式:
、俣鄠部分E-R圖一次集成。
、谥鸩郊伞S美奂拥姆绞揭淮渭蓛蓚部分E-R圖。
無論哪種方式,每次集成可分兩步走。第一步是合并,解決各部分E-R圖之間的沖突問題,生成初步E-R圖。
第二步是修改和重構,消除不必要的冗余,生成基本E-R圖。
4.邏輯結構設計
邏輯結構設計的任務就是把概念結構轉換為選用的DBMS所支持的數據模型的過程。設計邏輯結構按理應選擇對某個概念結構最好的數據模型,然后對支持這種數據模型的各種DBMS進行比較,選出最合適的DBMS。但實際情況常常是已給定了某臺機器,設計人員沒有選擇DBMS的余地。現行的DBMS一般只支持關系、網狀或層次三種模型中的某一種,對某一種數據模型,各個機器系統又有許多不同的限制,提供不同的環境與工具。因而我們把設計過程分三步進行。首先把概念結構向一般的關系模型轉換,然后向特定的DBMS支持下的數據模型轉換,最后進行模型的優化。
。1)E-R圖向關系數據模型的轉換
下面給出把E-R圖轉換為關系模型的轉換規則。
、僖粋實體轉換為一個關系模式。實體的屬性就是關系的屬性,實體的碼就是關系的碼。②一個聯系轉換為一個關系模式,與該聯系相連的各實體的碼以及聯系的屬性轉換為關系的屬性。該關系的碼則有三種情況:
若聯系為1∶1,則每個實體的碼均是該關系的候選碼。若聯系為1∶n,關系的碼為n端實體的碼。
若聯系為n∶m,則關系的碼為諸實體碼的組合。具有相同碼的關系模式可合并。
形成了一般的數據模型后,下一步就向特定的DBMS規定的模型轉換。設計人員必須熟知所用DBMS的功能及限制。這一步轉換是依賴于機器的,不能給出一個普遍的規則。
轉化后的模型必須進行優化。對數據模型進行優化是指調整數據模型的結構,以提高數據庫應用系統的性能。性能有動態性能和靜態性能兩種。靜態性能分析容易實現。根據應用要求,選出合適的模型是一項復雜的工作。
。2)規范化理論的應用
規范化理論是數據庫邏輯設計的指南和工具,具體地講可應用在下面幾個具體的方面:第一,在數據分析階段用數據依賴的概念分析和表示各數據項之間的關系。
第二,在設計概念結構階段,用規范化理論為工具消除初步E-R圖中冗余的聯系。第三,由E-R圖向數據模型轉換過程中用模式分解的概念和算法指導設計。
現在,不管選用的DBMS是支持哪種數據模型的,均先把概念結構向關系模型轉換。然后,充分運用規范化理論的成果優化關系數據庫模式的設計。設計辦法是:
、俅_定數據依賴 把E-R圖中每個實體內的各個屬性按數據分析階段所得到的語義寫出其數據依賴。實體之間的聯系用實體主碼之間的聯系來表示。
②用關系來表示E-R圖中的每一個實體 每個實體對應一個關系模式Ri<Ui,∑i>,其中Ui 就是該實體所包含的諸屬性,∑i 就是∑在Ui上的投影。
③對于實體之間的那些數據依賴進行極小化處理 設函數依賴集為F,求F和最小覆蓋G的差集。
D=F-G
逐一考察D中的函數依賴,確定是否應該去掉,由于規范化理論受泛關系假設的限制,應注意下面兩個問題:
冗余的聯系一定在D中,而D中的聯系不一定是冗余的。
當實體之間存在多種聯系時應該利用子類的概念將實體之間的聯系形式上單一化,然后才能進行極小化處理。
④用關系表示實體之間的聯系 每個聯系對應一個關系模式Rj<Uj,∑j>Ujo 由相互聯系的諸實體(二個或多個實體)的主碼屬性以及描述該聯系的性質的屬性組成!苆 就是∑在Ui 上的投影。對于不同實體非主碼屬性之間的聯系同樣也要形成一個關系模式。這樣就得到了一組關系模式。
按照數據依賴的理論,逐一分析這組模式?疾槭欠翊嬖诓糠趾瘮狄蕾、傳遞依賴、多值依賴等,確定它們分別屬于第幾范式。
然后按照數據分析階段得到的各種應用對數據處理的要求,分析對于這樣的應用環境這模式是否合適,確定是否要對它們進行合并或分解。
、蓐P系模式的分解,對于需要進行分解的關系模式進行分解,對產生的各種模式進行評價,選出較合適的模式。
規范化理論給出了判斷關系模式優劣的理論標準,幫助預測模式可能出現的問題,提供了自動產生各種模式的算法工具,因此是設計人員的有力工具,也使數據庫應用系統設計工作有了嚴格的理論基礎。
5.數據庫的物理設計
物理設計的內容主要包括:
。1)確定數據的存儲結構 從DBMS所提供的存儲結構中選取一種合適的加以實現。
確定存儲結構的主要因素是存取時間、存儲空間利用率和維護代價三個方面。設計者常常要對這些因素進行權衡。一般的DBMS也總是具有一定靈活性供你選擇。例如,若引入某些冗余數據,則可能減少物理I/O次數提高檢索效率。相反節約存儲空間檢索代價就會增加。當然應該盡量尋找優化方法,使這三方面的性能都較好。折衷有時是必須的。
。2)存取路徑的選擇和調整 數據庫必須支持多個用戶的多種應用,因而必須提供對數據庫的多個存取入口,也就是對同一數據存儲要提供多條存取路徑。物理設計的任務應確定建立哪些存取路徑。設計者應該進行定量的分析,根據計算結果確定存取路徑。
(3)確定數據存放位置 首先按數據的應用情況劃分為不同的組,然后確定存放位置。一般的應把數據的易變部分和穩定部分分開,把經常存取和不常存取的數據分開。經常存取或存取時間要求高的記錄應存放在高速存儲器上,如硬盤。存取頻率小或存取時間要求低的放在低速存儲器上,如軟盤、磁帶。對于同一數據文件也可根據情況進行水平劃分或垂直劃分。
。4)確定存儲分配 許多DBMS提供了存儲分配的參數供設計者物理優化處理用。例如溢出空間的大小和分布參數、塊的長度、塊因子的大小、裝填因子、緩沖區的大小和個數等等,它們都要在物理設計中確定。這些參數的大小影響存取時間和存儲空間的分配。
物理設計過程需要對時間、空間效率、維護代價和各種用戶要求進行權衡,其結果可以產生多種方案。在實施數據庫前對這些方案進行方案進行細致的評價,以選擇一個較優的方案是十分必要的。
6.數據庫應用系統的實施和維護
對數據庫的物理設計初步評價完成后就可建立數據庫了。數據庫應用系統實施對應于軟件工程的編碼、調試階段。設計人員運用DBMS提供的數據定義語言將邏輯設計和物理設計的結果嚴格地描述出來,成為DBMS可接受的源代碼,經過調試產生目標模式。然后組織數據入庫。組織數據入庫是數據庫應用系統實施階段最主要的工作。
(1)數據庫數據的載入和應用程序的開發
由于數據庫數據量一般都非常大,并且這些數據來源于一個組織的各個部門,分散在各種數據文件或原始憑證中。這些數據的結構和格式一般也不符合數據庫的要求,還要進行轉換。因此組織數據入庫是一件耗費大量人力物力的工作。
數據的轉換和組織對于小系統可以用人工方法完成。但是,人工轉換效率低、質量差。一般來說,應設計一個數據輸入子系統讓計算機完成這個工作。輸入子系統的主要功能是:原始數據的輸入、抽取、校驗、分類、轉換和綜合,最終把數據組織成符合數據庫結構的形式。然后把數據存入數據庫中。數據的轉換、分類和綜合常常要經過多次才能完成,因而輸入子系統的設計和實施亦是比較復雜的,要編寫許多應用程序。輸入子系統的設計不能等物理設計完成后才動手,應該和數據庫設計工作并行開展。
為了保證數據庫數據正確無誤,必須高度重視數據的檢驗工作。在輸入子系統進行數據轉換的過程中應該進行多次檢驗,每次檢驗的方法亦不要相同。對于重要數據的校驗更應該反復多次,確認正確后方可入庫。
數據庫應用系統中應用程序的設計應該和數據庫模式設計并行。數據庫應用系統的實施階段的另一項工作便這是這些應用程序的編碼、調試工作。有了裝載實際數據的數據庫和應用程序,就建立了數據庫應用系統,可以試運行了。
。2)數據庫應用系統的試運行
在完成上述工作之后,便可進入數據庫的試運行階段,或者稱聯合調試階段。這階段的主要工作是:
①實際運行應用程序,執行對數據庫的各種操作,測試應用程序的功能。②測量系統的性能指標,分析是否符合設計目標。
雖然已在物理設計過程中進行了性能預測,但是僅僅估價了時間和空間指標,而且在性能估價的過程中作了許多簡化和假設,忽略了許多次要因素,因而估價是粗糙的并可能失真。必須在試運行階段進行實際測量和評價。有些參數的最佳值往往是經過運行調試后才找到的。如果實際結果不符合設計目標,則需返回物理設計階段,調整物理結構,修改參數。有時,也許還需要返回邏輯設計階段,調整邏輯結構。
最后還須指出兩點。第一,上面已看到組織數據入庫是十分費事的,如果運行調試后又要修改數據庫設計則又要重新組織數據入庫。因此應分批分期輸入數據,逐步完成運行評價。第二,數據庫的實施和調試不是一朝一夕能完成的,在此期間軟硬件的錯誤隨時可能發生。加上數據庫剛剛建立,工作人員對系統還不熟悉,對其規律更缺乏深入了解,容易發生操作錯誤。因此必須做好數據庫的轉儲和恢復工作,這就要求設計人員了解DBMS的這個功能,并根據調試方式和特點首先實施,盡量減少對數據庫的破壞并簡化故障恢復。
(3)數據庫應用系統的運行和維護
數據庫應用系統投入運行標志著開發任務的基本完成和維護工作的開始,但并不意味著設計過程結束。任何數據庫應用系統只要它存在一天,它的設計就得不不斷地進行評價、調整、修改,甚至完全改革。因此數據庫應用系統的維護不僅是維護其正;顒佣沂窃O計工作的繼續和提高。維護階段的主要工作是:
、贁祿䦷斓陌踩、完整性控制及系統的轉儲和恢復;②性能的監督、分析和改進;③數據庫的重組織和重構造。
下面簡單介紹數據庫的重組織和重構造。
數據庫運行一段時間后,由于記錄的不斷增、刪、改,會使數據庫的物理存儲變壞。例如,邏輯上屬于同一記錄型或同一關系的數據被分散到了不同的文件或文件的多個碎片上。從而降低了數據庫存儲空間的利用率和數據的存取效率,數據庫的性能下降。這時,DBA就要進行數據庫的重組織,DBMS一般都提供重組織用的實用程序。在重組過程中,按原設計要求重新安排記錄的存儲位置,調整數據區和溢出區,回收“垃圾”,減少指針鏈等。
數據庫的重組織不改變原設計的數據邏輯結構和物理結構。而數據庫的重構造則不同。部分修改原數據庫的模式或內模式稱為數據庫的重構造。
由于數據庫應用環境的變化,數據庫重構的程度是有限的。只能作部分的修改和調整。若應用變化太大,重構也無濟于事了,則表明數據庫應用系統生命周期的結束,應該重新設計數據庫應用系統。新的數據庫應用系統新的生命周期開始了。
希望與更多計算機等級考試的網友交流,請進入計算機等級考試論壇
更多信息請訪問:考試吧計算機等級考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |