數(shù)據(jù)庫(kù)設(shè)計(jì)具有以下幾個(gè)特點(diǎn):
(1)數(shù)據(jù)庫(kù)設(shè)計(jì)是涉及多學(xué)科的綜合技術(shù)大型數(shù)據(jù)庫(kù)設(shè)計(jì)和開發(fā)是一項(xiàng)龐大工程,是涉及多學(xué)科的綜合性技術(shù),對(duì)于從事數(shù)據(jù)庫(kù)設(shè)計(jì)的人員來(lái)講,應(yīng)該具備多方面的技術(shù)和知識(shí),主要包括以下幾個(gè)方面?!裼?jì)算機(jī)科學(xué)的基礎(chǔ)知識(shí)和程序設(shè)計(jì)技術(shù)。
數(shù)據(jù)庫(kù)的基本知識(shí)和數(shù)據(jù)庫(kù)設(shè)計(jì)技術(shù)。
軟件工程的原理和方法。
應(yīng)用領(lǐng)域的知識(shí)(隨著應(yīng)用系統(tǒng)的不同而不同)。
(2)數(shù)據(jù)庫(kù)設(shè)計(jì)是技術(shù)和管理工作的有效結(jié)合數(shù)據(jù)庫(kù)設(shè)計(jì)要考慮應(yīng)用的信息需求和處理需求,既要考慮數(shù)據(jù)的存儲(chǔ)方式,還要考慮數(shù)據(jù)的使用方法和使用需求。
所以說(shuō),優(yōu)秀的數(shù)據(jù)庫(kù)設(shè)計(jì)不但要求設(shè)計(jì)人員對(duì)數(shù)據(jù)的組織方式十分熟悉,以充分利用其特點(diǎn)設(shè)計(jì)出訪問(wèn)性能盡可能高的數(shù)據(jù)庫(kù),而且也要求設(shè)計(jì)人員能夠有效地對(duì)整個(gè)設(shè)計(jì)過(guò)程進(jìn)行有效控制,對(duì)項(xiàng)目實(shí)施進(jìn)行有效管理,對(duì)用戶的需求進(jìn)行正確把握。所以數(shù)據(jù)庫(kù)設(shè)計(jì)不僅是技術(shù),也是技術(shù)和管理工作的有效結(jié)合。
(3)數(shù)據(jù)庫(kù)設(shè)計(jì)具有反復(fù)性、試探性,應(yīng)分步進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)不可能一氣呵成,往往需要經(jīng)過(guò)反復(fù)推敲和修改才能完成。為了保證設(shè)計(jì)的質(zhì)量和進(jìn)度,數(shù)據(jù)庫(kù)設(shè)計(jì)通常是分階段進(jìn)行,逐級(jí)審查。
盡管后階段會(huì)向前階段反饋其要求,但在規(guī)范設(shè)計(jì)的指導(dǎo)下,這種反饋引起的修改不應(yīng)該是大量的。并且對(duì)于同樣一個(gè)應(yīng)用需求,由于設(shè)計(jì)人員的不同,設(shè)計(jì)出來(lái)的數(shù)據(jù)庫(kù)也是有差別的,很難說(shuō)哪一個(gè)是最佳方案,設(shè)計(jì)過(guò)程中各式各樣相互矛盾的要求和制約因素決定了不同的設(shè)計(jì)方案必定各有長(zhǎng)短,具體需要什么樣的設(shè)計(jì),還得取決于數(shù)據(jù)庫(kù)設(shè)計(jì)人員和單位的決策。
因此數(shù)據(jù)庫(kù)設(shè)計(jì)具有反復(fù)性和試探性。(4)數(shù)據(jù)庫(kù)設(shè)計(jì)需要將結(jié)構(gòu)設(shè)計(jì)和行為設(shè)計(jì)密切結(jié)合數(shù)據(jù)庫(kù)設(shè)計(jì)應(yīng)該和應(yīng)用系統(tǒng)設(shè)計(jì)相結(jié)合。數(shù)據(jù)庫(kù)中的數(shù)據(jù)不是為存儲(chǔ)而存儲(chǔ),存儲(chǔ)是為了更好地利用,是為了分析處理,所以結(jié)構(gòu)(數(shù)據(jù))的設(shè)計(jì)必須充分考慮到行為(業(yè)務(wù)處理)的可用性和方便性。
數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟
數(shù)據(jù)庫(kù)設(shè)計(jì)開始之前,首先必須選定參加設(shè)計(jì)的人員,包括系統(tǒng)分析人員、數(shù)據(jù)庫(kù)設(shè)計(jì)人員和程序員、用戶和數(shù)據(jù)庫(kù)管理員。系統(tǒng)分析和數(shù)據(jù)庫(kù)設(shè)計(jì)人員是數(shù)據(jù)庫(kù)設(shè)計(jì)的核心人員,將自始至終參與數(shù)據(jù)庫(kù)設(shè)計(jì),他們的水平?jīng)Q定了數(shù)據(jù)庫(kù)系統(tǒng)的質(zhì)量。
用戶和數(shù)據(jù)庫(kù)管理員在數(shù)據(jù)庫(kù)設(shè)計(jì)中也是舉足輕重的,主要參加需求分析和數(shù)據(jù)庫(kù)的運(yùn)行維護(hù),他們的積極參與不但能加速數(shù)據(jù)庫(kù)設(shè)計(jì),而且也是決定數(shù)據(jù)庫(kù)設(shè)計(jì)的質(zhì)量的重要因素。程序員則在系統(tǒng)實(shí)施階段參與進(jìn)來(lái),分別負(fù)責(zé)編制程序和準(zhǔn)備軟硬件環(huán)境。
目前數(shù)據(jù)庫(kù)設(shè)計(jì)人員使用最為廣泛的仍然是以邏輯數(shù)據(jù)庫(kù)設(shè)計(jì)和物理數(shù)據(jù)庫(kù)設(shè)計(jì)為核心的規(guī)范設(shè)計(jì)方法。這種規(guī)范方法把數(shù)據(jù)庫(kù)的設(shè)計(jì)劃分為六個(gè)階段。如果所設(shè)計(jì)的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)比較復(fù)雜,應(yīng)該考慮使用計(jì)算機(jī)輔助軟件工程(CASE)工具,以簡(jiǎn)化各階段的設(shè)計(jì)工作。下面對(duì)這六個(gè)階段簡(jiǎn)單介紹。
(1)需求分析
需求分析就是分析用戶的要求,使設(shè)計(jì)的數(shù)據(jù)庫(kù)滿足用戶的實(shí)際應(yīng)用需求。需求分析是否準(zhǔn)確,直接影響后面數(shù)據(jù)庫(kù)設(shè)計(jì)各階段,低質(zhì)量的需求分析甚至導(dǎo)致整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)失敗,不得不重新返工。
因此,需求分析是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程的基礎(chǔ),必須花大力氣高質(zhì)量地完成需求分析。需求分析如此重要,不幸的是,需求分析恰恰是最困難、最耗費(fèi)時(shí)間的工作,整個(gè)過(guò)程必須有實(shí)際用戶參與,不斷交流和修改,才能最終完成需求分析。需求分析通常按如下步驟進(jìn)行。
調(diào)查用戶組織機(jī)構(gòu)情況,為分析數(shù)據(jù)流程做準(zhǔn)備;
調(diào)查各部門業(yè)務(wù)活動(dòng)情況,這是需求分析的重點(diǎn);
在熟悉業(yè)務(wù)活動(dòng)的基礎(chǔ)上,明確用戶對(duì)新系統(tǒng)的各種實(shí)際要求,包括信息要求、處理要求、完全性與完整性要求,這也是需求分析的重點(diǎn);
明確用戶的需求后,還要進(jìn)一步分析,計(jì)算機(jī)應(yīng)該并且能夠處理哪些功能需求,確定新系統(tǒng)應(yīng)當(dāng)具備的功能。
最后,將需求分析結(jié)果文檔化。文檔應(yīng)便于用戶理解和交流,同時(shí)又要方便數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)。
可見需求分析主要解決新系統(tǒng)“做什么”,而不是“怎么做”。需求分析的結(jié)果可以用數(shù)據(jù)字典和數(shù)據(jù)流圖表達(dá)。數(shù)據(jù)字典描述基礎(chǔ)數(shù)據(jù),而數(shù)據(jù)流圖表達(dá)這些數(shù)據(jù)的來(lái)源、加工處理及去向的數(shù)據(jù)流程。
(2)概念結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)就是對(duì)用戶需求進(jìn)行綜合、歸納與抽象,建立一個(gè)獨(dú)立于具體DBMS并且與所有物理因素均無(wú)關(guān)的企業(yè)信息模型的過(guò)程,是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵。概念模型是站在用戶立場(chǎng)上對(duì)用戶需求的抽象。因此,在概念結(jié)構(gòu)設(shè)計(jì)階段,設(shè)計(jì)人員仍然需要時(shí)常與用戶交流,反復(fù)推敲和修改,達(dá)成共識(shí)。
(3)邏輯結(jié)構(gòu)設(shè)計(jì)確定概念結(jié)構(gòu)后,接下來(lái)要按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)概念模型進(jìn)行描述,成為計(jì)算機(jī)世界邏輯數(shù)據(jù)模型。概念結(jié)構(gòu)與具體數(shù)據(jù)庫(kù)管理系統(tǒng)無(wú)關(guān),但它是各種數(shù)據(jù)模型的基礎(chǔ)。為了能用某一個(gè)具體的數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn)用戶的需求,必須將概念結(jié)構(gòu)進(jìn)一步轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)模型。這就是數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)。目前,最常用的數(shù)據(jù)模型是關(guān)系數(shù)據(jù)模型。
(4)物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),它依賴于給定的數(shù)據(jù)庫(kù)管理系統(tǒng)和計(jì)算機(jī)系統(tǒng)。在關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中,存儲(chǔ)結(jié)構(gòu)與存取方法主要由數(shù)據(jù)庫(kù)管理系統(tǒng)自動(dòng)完成。邏輯模型是與DBMS無(wú)關(guān)的,但它的建立參照了一個(gè)特定的數(shù)據(jù)模型,如關(guān)系模型、層次模型或網(wǎng)狀模型,而數(shù)據(jù)庫(kù)物理設(shè)計(jì)是面向特定的DBMS系統(tǒng),所以在進(jìn)行物理設(shè)計(jì)時(shí),必須首先確定使用的數(shù)據(jù)庫(kù)系統(tǒng)。
(5)數(shù)據(jù)庫(kù)實(shí)施在數(shù)據(jù)庫(kù)實(shí)施階段,數(shù)據(jù)庫(kù)設(shè)計(jì)人員根據(jù)前面各階段的設(shè)計(jì)文檔,利用DBMS提供的數(shù)據(jù)定義語(yǔ)言來(lái)描述數(shù)據(jù)庫(kù)的結(jié)構(gòu),生成數(shù)據(jù)庫(kù),完成數(shù)據(jù)的加載、編制與調(diào)試應(yīng)用程序,并將數(shù)據(jù)庫(kù)投入試運(yùn)行。
(6)數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)在數(shù)據(jù)庫(kù)經(jīng)過(guò)一定階段的試運(yùn)行并對(duì)其進(jìn)行一定的評(píng)審、修改后,數(shù)據(jù)庫(kù)就可以進(jìn)入正式的運(yùn)行階段。由于應(yīng)用環(huán)境在不斷變化,數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中物理存儲(chǔ)也會(huì)不斷變化,因此在數(shù)據(jù)庫(kù)的正式運(yùn)行階段,還必須不斷地對(duì)數(shù)據(jù)庫(kù)進(jìn)行評(píng)價(jià)、調(diào)整與修改等維護(hù)工作。數(shù)據(jù)庫(kù)設(shè)計(jì)是結(jié)構(gòu)設(shè)計(jì)和行為設(shè)計(jì)相結(jié)合的過(guò)程,數(shù)據(jù)庫(kù)設(shè)計(jì)步驟也是從數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)設(shè)計(jì)和開發(fā)的全過(guò)程來(lái)考察數(shù)據(jù)庫(kù)設(shè)計(jì)的問(wèn)題。
因此,它既是數(shù)據(jù)庫(kù)的設(shè)計(jì)過(guò)程,也是應(yīng)用系統(tǒng)的設(shè)計(jì)過(guò)程。因此,在設(shè)計(jì)過(guò)程中努力把數(shù)據(jù)庫(kù)設(shè)計(jì)和系統(tǒng)其他成分的設(shè)計(jì)緊密結(jié)合,把數(shù)據(jù)和處理的需求收集、分析、抽象、設(shè)計(jì)、實(shí)現(xiàn)在各個(gè)階段同時(shí)進(jìn)行,相互參照,相互補(bǔ)充,以完善兩方面的設(shè)計(jì)。
責(zé)任編輯人:CC
-
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3799瀏覽量
64395 -
數(shù)據(jù)庫(kù)設(shè)計(jì)
+關(guān)注
關(guān)注
0文章
4瀏覽量
5702
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論