更多:2011年軟考數(shù)據(jù)庫系統(tǒng)工程師知識(shí)點(diǎn)精講匯總
軟考數(shù)據(jù)庫系統(tǒng)工程師知識(shí)點(diǎn)講解:數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì)
八、數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì)
1.數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì)步驟
按規(guī)范設(shè)計(jì)的方法可將數(shù)據(jù)庫設(shè)計(jì)分為以下六個(gè)階段
(1)需求分析;
(2)概念結(jié)構(gòu)設(shè)計(jì);
(3)邏輯結(jié)構(gòu)設(shè)計(jì);
(4)數(shù)據(jù)庫物理設(shè)計(jì);
(5)數(shù)據(jù)庫實(shí)施;
(6)數(shù)據(jù)庫運(yùn)行和維護(hù)。
2.需求分析
需求收集和分析是數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計(jì)的第一階段。明確地把它作為數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計(jì)的第一步是十分重要的。這一階段收集到的基礎(chǔ)數(shù)據(jù)和一組數(shù)據(jù)流圖(Data Flow Diaˉgram———DFD)是下一步設(shè)計(jì)概念結(jié)構(gòu)的基礎(chǔ)。概念結(jié)構(gòu)對(duì)整個(gè)數(shù)據(jù)庫設(shè)計(jì)具有深刻影響。而要設(shè)計(jì)好概念結(jié)構(gòu),就必須在需求分析階段用系統(tǒng)的觀點(diǎn)來考慮問題、收集和分析數(shù)據(jù)及其處理。如何分析和表達(dá)用戶需求呢?在眾多的分析方法中,結(jié)構(gòu)化分析(Structured Analysis,簡(jiǎn)稱SA方法)是一個(gè)簡(jiǎn)單實(shí)用的方法。SA方法用自頂向下、逐層分解的方式分析系統(tǒng)。用數(shù)據(jù)流圖,數(shù)據(jù)字典描述系統(tǒng)。然后把一個(gè)處理功能的具體內(nèi)容分解為若干子功能,每個(gè)子功能繼續(xù)分解,直到把系統(tǒng)的工作過程表達(dá)清楚為止。在處理功能逐步分解的同時(shí),它們所用的數(shù)據(jù)也逐級(jí)分解。形成若干層次的數(shù)據(jù)流圖。數(shù)據(jù)流圖表達(dá)了數(shù)據(jù)和處理過程的關(guān)系。處理過程的處理邏輯常常用判定表或判定樹來描述。數(shù)據(jù)字典(Data Dictionary,簡(jiǎn)稱DD)則是對(duì)系統(tǒng)中數(shù)據(jù)的詳盡描述,是各類數(shù)據(jù)屬性的清單。對(duì)數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計(jì)來講,數(shù)據(jù)字典是進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果。數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括以下5個(gè)部分:
(1)數(shù)據(jù)項(xiàng),是數(shù)據(jù)最小單位。
(2)數(shù)據(jù)結(jié)構(gòu),是若干數(shù)據(jù)項(xiàng)有意義的集合。
(3)數(shù)據(jù)流,可以是數(shù)據(jù)項(xiàng),也可以是數(shù)據(jù)結(jié)構(gòu)。表示某一處理過程的輸入輸出。
(4)數(shù)據(jù)存儲(chǔ),處理過程中存取的數(shù)據(jù)。常常是手工憑證、手工文檔或計(jì)算機(jī)文件。
(5)處理過程。
3.概念結(jié)構(gòu)設(shè)計(jì)
如同軟件工程中重視需求分析與規(guī)范說明的思想一樣,數(shù)據(jù)庫設(shè)計(jì)中同樣十分重視數(shù)據(jù)分析、抽象與概念結(jié)構(gòu)的設(shè)計(jì)。概念結(jié)構(gòu)的設(shè)計(jì),是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵之一。概念結(jié)構(gòu)獨(dú)立于數(shù)據(jù)庫邏輯結(jié)構(gòu),獨(dú)立于支持?jǐn)?shù)據(jù)庫的DBMS,也獨(dú)立于具體計(jì)算機(jī)軟件和硬件系統(tǒng)。歸納總結(jié),其主要特點(diǎn)是:
(1)能充分地反映現(xiàn)實(shí)世界,包括實(shí)體和實(shí)體之間的聯(lián)系,能滿足用戶對(duì)數(shù)據(jù)處理的要求,是現(xiàn)實(shí)世界的一個(gè)真實(shí)的模型,或接近真實(shí)的模型。
(2)易于理解,從而可以和不熟悉計(jì)算機(jī)的用戶交換意見。用戶的積極參與是數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計(jì)成功與否的關(guān)鍵。
(3)易于更動(dòng)。當(dāng)現(xiàn)實(shí)世界改變時(shí)容易修改和擴(kuò)充,特別是軟件、硬件環(huán)境變化時(shí)更應(yīng)如此。
(4)易于向關(guān)系、網(wǎng)狀或?qū)哟蔚雀鞣N數(shù)據(jù)模型轉(zhuǎn)換。概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),它比任意一種數(shù)據(jù)模型更獨(dú)立于機(jī)器,更抽象,從而更加穩(wěn)定。描述概念結(jié)構(gòu)的有力工具是E-R模型。P.P.S.Chen把用E-R模型定義的概念結(jié)構(gòu)稱為組織模式。設(shè)計(jì)概念結(jié)構(gòu)的策略有3種:
(1)自頂向下 首先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化。
(2)自底向上 首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成,得到全局概念結(jié)構(gòu)。
(3)混合策略 自頂向下和自底向上相結(jié)合的方法。用自頂向下策略設(shè)計(jì)一個(gè)全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計(jì)的各局部概念結(jié)構(gòu),F(xiàn)介紹自底向上設(shè)計(jì)概念結(jié)構(gòu)的策略。按照這種策略,概念結(jié)構(gòu)的設(shè)計(jì)可按下面步驟進(jìn)行。
(1)數(shù)據(jù)抽象與局部視圖設(shè)計(jì)
E-R模型是對(duì)現(xiàn)實(shí)世界的一種抽象。一般地講,所謂抽象是對(duì)實(shí)際的人、物、事和概念的人為處理。它抽取人們關(guān)心的共同特性,忽略非本質(zhì)的細(xì)節(jié),并把這些特性用各種抽象的概念精確地加以描述。這些概念組成了現(xiàn)實(shí)世界的一種模型表示。有3種抽象方法形成了抽象機(jī)制,來對(duì)數(shù)據(jù)進(jìn)行組織:①分類(Classification) 定義某一概念作為現(xiàn)實(shí)世界中一組對(duì)象的類型。這些對(duì)象具有某些共同的特性和行為。它抽象了對(duì)象值和型之間的“is a member of”的語義。在E-R模型中,實(shí)體型就是這種抽象。②聚集(Aggregation) 定義某一類型的組成成分。它抽象了對(duì)象內(nèi)部屬性類型和整體與部分之間“is a part of”的語義。在E-R模型中若干屬性的聚集組成了實(shí)體型,就是這種抽象。③概括(Generalization) 定義類型之間的一種子集聯(lián)系。它抽象了類型之間的“is a subset of”的語義。概括具有一個(gè)很重要的性質(zhì):繼承性。子類繼承超類上定義的所有抽象性質(zhì)。當(dāng)然,子類可以增加自己的某些特殊屬性。概念結(jié)構(gòu)設(shè)計(jì)的第一步就是利用上面介紹的抽象機(jī)制對(duì)需求分析階段收集到的數(shù)據(jù)進(jìn)行組織,形成實(shí)體、實(shí)體的屬性,標(biāo)識(shí)實(shí)體的碼,確定實(shí)體之間的聯(lián)系類型(1∶1,1∶n,n∶m),設(shè)計(jì)成部分E-R圖。
(2)視圖的集成視圖集成就是把上一步得到的各個(gè)部分E-R圖綜合成一個(gè)總體的E-R圖。視圖集成可以有兩種方式:
、俣鄠(gè)部分E-R圖一次集成。
、谥鸩郊。用累加的方式一次集成兩個(gè)部分E-R圖。無論哪種方式,每次集成可分兩步走。第一步是合并,解決各部分E-R圖之間的沖突問題,生成初步E-R圖。第二步是修改和重構(gòu),消除不必要的冗余,生成基本E-R圖。
4.邏輯結(jié)構(gòu)設(shè)計(jì)
邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)就是把概念結(jié)構(gòu)轉(zhuǎn)換為選用的DBMS所支持的數(shù)據(jù)模型的過程。設(shè)計(jì)邏輯結(jié)構(gòu)按理應(yīng)選擇對(duì)某個(gè)概念結(jié)構(gòu)最好的數(shù)據(jù)模型,然后對(duì)支持這種數(shù)據(jù)模型的各種DBMS進(jìn)行比較,選出最合適的DBMS。但實(shí)際情況常常是已給定了某臺(tái)機(jī)器,設(shè)計(jì)人員沒有選擇DBMS的余地。現(xiàn)行的DBMS一般只支持關(guān)系、網(wǎng)狀或?qū)哟稳N模型中的某一種,對(duì)某一種數(shù)據(jù)模型,各個(gè)機(jī)器系統(tǒng)又有許多不同的限制,提供不同的環(huán)境與工具。因而我們把設(shè)計(jì)過程分三步進(jìn)行。首先把概念結(jié)構(gòu)向一般的關(guān)系模型轉(zhuǎn)換,然后向特定的DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換,最后進(jìn)行模型的優(yōu)化。
(1)E-R圖向關(guān)系數(shù)據(jù)模型的轉(zhuǎn)換下面給出把E-R圖轉(zhuǎn)換為關(guān)系模型的轉(zhuǎn)換規(guī)則。
、僖粋(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。
、谝粋(gè)聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式,與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系的屬性轉(zhuǎn)換為關(guān)系的屬性。該關(guān)系的碼則有三種情況:若聯(lián)系為1∶1,則每個(gè)實(shí)體的碼均是該關(guān)系的候選碼。若聯(lián)系為1∶n,關(guān)系的碼為n端實(shí)體的碼。若聯(lián)系為n∶m,則關(guān)系的碼為諸實(shí)體碼的組合。具有相同碼的關(guān)系模式可合并。形成了一般的數(shù)據(jù)模型后,下一步就向特定的DBMS規(guī)定的模型轉(zhuǎn)換。設(shè)計(jì)人員必須熟知所用DBMS的功能及限制。這一步轉(zhuǎn)換是依賴于機(jī)器的,不能給出一個(gè)普遍的規(guī)則。轉(zhuǎn)化后的模型必須進(jìn)行優(yōu)化。對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化是指調(diào)整數(shù)據(jù)模型的結(jié)構(gòu),以提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能。性能有動(dòng)態(tài)性能和靜態(tài)性能兩種。靜態(tài)性能分析容易實(shí)現(xiàn)。根據(jù)應(yīng)用要求,選出合適的模型是一項(xiàng)復(fù)雜的工作。
(2)規(guī)范化理論的應(yīng)用規(guī)范化理論是數(shù)據(jù)庫邏輯設(shè)計(jì)的指南和工具,具體地講可應(yīng)用在下面幾個(gè)具體的方面:第一,在數(shù)據(jù)分析階段用數(shù)據(jù)依賴的概念分析和表示各數(shù)據(jù)項(xiàng)之間的關(guān)系。第二,在設(shè)計(jì)概念結(jié)構(gòu)階段,用規(guī)范化理論為工具消除初步E-R圖中冗余的聯(lián)系。第三,由E-R圖向數(shù)據(jù)模型轉(zhuǎn)換過程中用模式分解的概念和算法指導(dǎo)設(shè)計(jì)。現(xiàn)在,不管選用的DBMS是支持哪種數(shù)據(jù)模型的,均先把概念結(jié)構(gòu)向關(guān)系模型轉(zhuǎn)換。然后,充分運(yùn)用規(guī)范化理論的成果優(yōu)化關(guān)系數(shù)據(jù)庫模式的設(shè)計(jì)。
相關(guān)推薦: 軟考數(shù)據(jù)庫系統(tǒng)師歷年真題匯總(2007年-2010年)北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |