數(shù)據(jù)庫原理與開發(fā)技術(shù) 課件 第5章 數(shù)據(jù)庫設(shè)計(jì)_第1頁
數(shù)據(jù)庫原理與開發(fā)技術(shù) 課件 第5章 數(shù)據(jù)庫設(shè)計(jì)_第2頁
數(shù)據(jù)庫原理與開發(fā)技術(shù) 課件 第5章 數(shù)據(jù)庫設(shè)計(jì)_第3頁
數(shù)據(jù)庫原理與開發(fā)技術(shù) 課件 第5章 數(shù)據(jù)庫設(shè)計(jì)_第4頁
數(shù)據(jù)庫原理與開發(fā)技術(shù) 課件 第5章 數(shù)據(jù)庫設(shè)計(jì)_第5頁
已閱讀5頁,還剩69頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第5章數(shù)據(jù)庫設(shè)計(jì)本章主要內(nèi)容:(1)數(shù)據(jù)庫設(shè)計(jì)概述:概念、目標(biāo)、方法和原則,及設(shè)計(jì)的一般步驟(2)需求分析:組織機(jī)構(gòu)圖、業(yè)務(wù)流程圖、系統(tǒng)功能圖、數(shù)據(jù)流程圖(3)概念設(shè)計(jì):局部E-R模型、全局E-R模型、評審(4)邏輯設(shè)計(jì):將E-R模型轉(zhuǎn)為關(guān)系模型的規(guī)則、關(guān)系模型的優(yōu)化(5)物理設(shè)計(jì):確定數(shù)據(jù)庫的物理結(jié)構(gòu)、評價(jià)數(shù)據(jù)庫的物理結(jié)構(gòu)(6)數(shù)據(jù)庫實(shí)現(xiàn)、運(yùn)行和維護(hù)5.1數(shù)據(jù)庫設(shè)計(jì)概述在數(shù)據(jù)庫領(lǐng)域,一般把使用了數(shù)據(jù)庫的信息系統(tǒng)稱為數(shù)據(jù)庫應(yīng)用系統(tǒng)。例如銀行、保險(xiǎn)、電商、辦公自動(dòng)化等管理系統(tǒng)。開發(fā)一個(gè)好的數(shù)據(jù)庫應(yīng)用系統(tǒng),其核心是要設(shè)計(jì)一個(gè)好的數(shù)據(jù)庫,其性能主要表現(xiàn)在:(1)數(shù)據(jù)訪問效率高。

(2)能減少數(shù)據(jù)冗余,節(jié)省存儲(chǔ)空間,便于系統(tǒng)進(jìn)一步擴(kuò)展。

(3)可以使應(yīng)用程序的開發(fā)變得容易。5.1.1數(shù)據(jù)庫設(shè)計(jì)的概念、目標(biāo)、方法和原則1.什么是數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)是指對于一個(gè)給定的應(yīng)用環(huán)境,設(shè)計(jì)一個(gè)優(yōu)化的數(shù)據(jù)庫邏輯模式和數(shù)據(jù)物理結(jié)構(gòu),建立數(shù)據(jù)庫及應(yīng)用系統(tǒng),使之能夠有效地存儲(chǔ)和管理數(shù)據(jù),以滿足用戶對數(shù)據(jù)的各種查詢要求和處理要求。

2.數(shù)據(jù)庫設(shè)計(jì)的目標(biāo)數(shù)據(jù)庫設(shè)計(jì)有兩大目標(biāo),一是滿足用戶對系統(tǒng)的應(yīng)用功能需求,二是數(shù)據(jù)庫具有良好的性能。5.1.1數(shù)據(jù)庫設(shè)計(jì)的概念、目標(biāo)、方法和原則

滿足用戶的應(yīng)用功能需求,主要是指把用戶當(dāng)前的應(yīng)用需求,以及可預(yù)知的潛在的應(yīng)用需求所需要的數(shù)據(jù)及其聯(lián)系,全部準(zhǔn)確地存儲(chǔ)在數(shù)據(jù)庫中,并根據(jù)用戶的實(shí)際環(huán)境條件,滿足用戶對數(shù)據(jù)的插入、修改、刪除及查詢等操作。

良好的數(shù)據(jù)庫性能,是指設(shè)計(jì)的數(shù)據(jù)庫應(yīng)具有良好的存儲(chǔ)結(jié)構(gòu),保證數(shù)據(jù)的完整性、一致性和安全性等要求。5.1.1數(shù)據(jù)庫設(shè)計(jì)的概念、目標(biāo)、方法和原則3.數(shù)據(jù)庫設(shè)計(jì)的方法大型數(shù)據(jù)庫的設(shè)計(jì)是一個(gè)系統(tǒng)工程,它要求從業(yè)人員要具備多方面的學(xué)科知識(shí)和計(jì)算機(jī)技術(shù),豐富的行業(yè)經(jīng)驗(yàn)。具體說來,主要包括:

1)計(jì)算機(jī)的基礎(chǔ)知識(shí),包括:計(jì)算機(jī)應(yīng)用原理、操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)。2)軟件工程的開發(fā)原理和方法。3)程序設(shè)計(jì)的方法和經(jīng)驗(yàn)積累。4)數(shù)據(jù)庫的基礎(chǔ)知識(shí)。5)數(shù)據(jù)庫設(shè)計(jì)的技術(shù)和經(jīng)驗(yàn)。6)應(yīng)用領(lǐng)域的行業(yè)知識(shí)。5.1.1數(shù)據(jù)庫設(shè)計(jì)的概念、目標(biāo)、方法和原則隨著開發(fā)經(jīng)驗(yàn)的積累和行業(yè)的規(guī)范,人們開始運(yùn)用軟件工程的思想,并提出了各種準(zhǔn)則,來規(guī)范數(shù)據(jù)庫設(shè)計(jì)。目前常用的規(guī)范設(shè)計(jì)方法有:(1)新奧爾良法。1978年10月來自歐美國家的主要數(shù)據(jù)庫專家在美國的新奧爾良市討論數(shù)據(jù)庫設(shè)計(jì)問題,并提出了相應(yīng)的工作規(guī)范。該方法將數(shù)據(jù)設(shè)計(jì)分為:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)四個(gè)階段。

(2)基于E-R模型的設(shè)計(jì)方法。

(3)第三范式(3NF)設(shè)計(jì)方法。

(4)統(tǒng)一建模語言(UnifiedModelLanguage,UML)方法。數(shù)據(jù)庫工作者一直在努力研究和開發(fā)數(shù)據(jù)庫設(shè)計(jì)工具,以提高工作效率。目前常用的數(shù)據(jù)庫設(shè)計(jì)工具軟件有:MSVisio、PowerDesigner等。5.1.1數(shù)據(jù)庫設(shè)計(jì)的概念、目標(biāo)、方法和原則4.數(shù)據(jù)庫設(shè)計(jì)的一些原則

(1)索引(Index)的使用原則在表上創(chuàng)建索引一般有兩個(gè)目的,一是維護(hù)索引列上取值的唯一性,二是加快表中數(shù)據(jù)的訪問速度。操縱基本表中的數(shù)據(jù),對應(yīng)于索引列上的數(shù)據(jù)在物理上會(huì)進(jìn)行同步維護(hù),即索引會(huì)降低數(shù)據(jù)的插入、修改、刪除的速度。因此索引會(huì)增加表維護(hù)的負(fù)擔(dān),設(shè)計(jì)時(shí)需要考慮兩者之間的平衡。大型數(shù)據(jù)庫有兩種索引:簇索引和非簇索引。一個(gè)沒有簇索引的表是按堆結(jié)構(gòu)存儲(chǔ)數(shù)據(jù)的,所有的數(shù)據(jù)均添加在表的尾部。而有簇索引的表,其數(shù)據(jù)在物理上會(huì)按照簇索引鍵的順序存儲(chǔ)。一個(gè)表只允許有一個(gè)簇索引,根據(jù)B樹的結(jié)構(gòu),添加任何一種索引均可提高按索引列查詢的速度,但會(huì)降低數(shù)據(jù)插入、修改、刪除的性能。5.1.1數(shù)據(jù)庫設(shè)計(jì)的概念、目標(biāo)、方法和原則(2)數(shù)據(jù)的一致性和完整性為了保證數(shù)據(jù)庫的一致性和完整性,減少數(shù)據(jù)冗余,設(shè)計(jì)時(shí)往往會(huì)通過主外鍵增加表間關(guān)聯(lián)(Relation)。表間關(guān)聯(lián)是一種強(qiáng)制性措施,它對父表和子表的插入、修改、刪除操作均要占用系統(tǒng)的開銷。同時(shí),表間關(guān)聯(lián)也會(huì)額外增加表間數(shù)據(jù)連接的查詢操作負(fù)擔(dān)。另外,最好不要用Identity屬性字段作為主鍵與子表進(jìn)行關(guān)聯(lián)。實(shí)踐中,為了提高系統(tǒng)的響應(yīng)時(shí)間,合理的數(shù)據(jù)冗余是必要的。使用規(guī)則(Rule)和約束(Check)來防止用戶對系統(tǒng)的誤輸入,是設(shè)計(jì)時(shí)常用的另一種手段。在驗(yàn)證數(shù)據(jù)的有效性方面,約束比規(guī)則要快。所有這些,在設(shè)計(jì)時(shí),都應(yīng)根據(jù)操作系統(tǒng)的類型、數(shù)據(jù)的訪問頻率和數(shù)據(jù)量的大小,加以均衡考慮。5.1.1數(shù)據(jù)庫設(shè)計(jì)的概念、目標(biāo)、方法和原則(3)正確理解范式,并合理遵循范式第一范式(1NF)是對屬性的原子性約束,要求屬性具有原子性,不可再分解;第二范式(2NF)是對元組的唯一性約束,要求元組有唯一性;第三范式(3NF)是對屬性冗余的約束,即任何屬性不能由其他屬性派生出來。沒有冗余的數(shù)據(jù)庫設(shè)計(jì)時(shí)是可以做到的。但是,沒有冗余的數(shù)據(jù)庫不一定是最好的數(shù)據(jù)庫。有時(shí)為了提高運(yùn)行效率,可以降低范式標(biāo)準(zhǔn),適當(dāng)保留數(shù)據(jù)冗余。例如,在概念模型設(shè)計(jì)時(shí)嚴(yán)格遵守第三范式,其他范式的要求可以在物理模型設(shè)計(jì)時(shí)再考慮。5.1.1數(shù)據(jù)庫設(shè)計(jì)的概念、目標(biāo)、方法和原則(4)數(shù)據(jù)類型的選擇

合理的數(shù)據(jù)類型選擇對數(shù)據(jù)庫的性能和操作具有很大的影響,尤其是數(shù)據(jù)量大、頻繁訪問的屬性列。例如,定長字符和可變長字符,前者可提高數(shù)據(jù)訪問速度,但會(huì)浪費(fèi)存儲(chǔ)空間,后者正好相反。

Text和Image字段屬于指針型數(shù)據(jù),主要用來存放二進(jìn)制大型對象(Blob)。這類數(shù)據(jù)的操作比其他類型數(shù)據(jù)要慢,設(shè)計(jì)時(shí)要避開使用。但在存儲(chǔ)二進(jìn)制海量數(shù)據(jù)時(shí),又有很大的優(yōu)勢。5.1.1數(shù)據(jù)庫設(shè)計(jì)的概念、目標(biāo)、方法和原則(5)信息隱藏原則為了提高數(shù)據(jù)庫的安全性,可以利用DBMS的觸發(fā)器、存儲(chǔ)過程、函數(shù)等,把數(shù)據(jù)庫中無法簡化的復(fù)雜表關(guān)系封裝到黑盒子中去,隱藏起來。

結(jié)構(gòu)設(shè)計(jì)是指數(shù)據(jù)庫的模式結(jié)構(gòu)設(shè)計(jì),包括概念結(jié)構(gòu)、邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。行為設(shè)計(jì)是指應(yīng)用程序設(shè)計(jì),包括功能組織、流程控制等方面的設(shè)計(jì)。(6)結(jié)構(gòu)設(shè)計(jì)與行為設(shè)計(jì)相分離

在傳統(tǒng)的軟件工程中,比較注重處理過程的設(shè)計(jì),不太注重?cái)?shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)。數(shù)據(jù)庫設(shè)計(jì)剛好相反,它的主要精力放在數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)上,例如基本表的結(jié)構(gòu)、視圖、索引等。5.1.2數(shù)據(jù)庫系統(tǒng)的生存期仿照軟件的生存期,把數(shù)據(jù)庫系統(tǒng)從開始規(guī)劃、設(shè)計(jì)、實(shí)現(xiàn)、維護(hù)到最后被新的系統(tǒng)取代而停止使用的整個(gè)期間,稱為數(shù)據(jù)庫系統(tǒng)的生命周期或生存期。這個(gè)生存期一般劃分為下面7個(gè)階段:

1.系統(tǒng)規(guī)劃對于大型數(shù)據(jù)庫系統(tǒng)或大型信息系統(tǒng)的數(shù)據(jù)庫群,規(guī)劃階段是非常必要的。規(guī)劃的好壞直接影響到系統(tǒng)的成敗。這個(gè)階段具體可分為3個(gè)步驟:5.1.2數(shù)據(jù)庫系統(tǒng)的生存期

1)系統(tǒng)調(diào)查。對需求方進(jìn)行全面調(diào)查,發(fā)現(xiàn)其存在的主要問題。2)可行性分析。根據(jù)發(fā)現(xiàn)的問題,從技術(shù)、經(jīng)濟(jì)、效益等方面進(jìn)行可行性分析,寫出可行性分析研究報(bào)告,并組織專家進(jìn)行討論。3)確定數(shù)據(jù)庫系統(tǒng)的總目標(biāo),對需求單位的工作流程進(jìn)行優(yōu)化,制定項(xiàng)目開發(fā)計(jì)劃,最后形成“項(xiàng)目可行性研究報(bào)告”。

2.需求分析

數(shù)據(jù)庫設(shè)計(jì)人員與需求方用戶進(jìn)行全方位溝通,收集數(shù)據(jù)庫所有用戶的信息內(nèi)容和處理要求。在分析用戶要求時(shí),要確保用戶目標(biāo)的一致性。5.1.2數(shù)據(jù)庫系統(tǒng)的生存期

3.概念設(shè)計(jì)

4.邏輯設(shè)計(jì)這個(gè)階段將概念結(jié)構(gòu)轉(zhuǎn)為某個(gè)DBMS所能支持的數(shù)據(jù)模型,并對其進(jìn)行優(yōu)化,例如數(shù)據(jù)庫模式的規(guī)范化。把需求分析階段獲得的用戶信息要求,通過用戶能夠明白的語言,統(tǒng)一規(guī)劃到一個(gè)整體的邏輯結(jié)構(gòu)中,形成一個(gè)整體的概念模型,它獨(dú)立于具體的DBMS和硬件。5.1.2數(shù)據(jù)庫系統(tǒng)的生存期

5.物理設(shè)計(jì)6.系統(tǒng)實(shí)現(xiàn)根據(jù)物理設(shè)計(jì)的結(jié)果產(chǎn)生一個(gè)具體的數(shù)據(jù)庫和應(yīng)用程序,并把初始數(shù)據(jù)裝入數(shù)據(jù)庫中。這個(gè)階段主要是為邏輯數(shù)據(jù)結(jié)構(gòu)模型選取一個(gè)最適合應(yīng)用環(huán)境的數(shù)據(jù)物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)和存取方法)。7.系統(tǒng)運(yùn)行和維護(hù)收集、記錄系統(tǒng)運(yùn)行的情況,并根據(jù)用戶的需求變化,對數(shù)據(jù)庫結(jié)構(gòu)進(jìn)行修改或擴(kuò)展。5.1.2數(shù)據(jù)庫系統(tǒng)的生存期數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)是一項(xiàng)高風(fēng)險(xiǎn)、高回報(bào)的系統(tǒng)工程。它需要調(diào)動(dòng)雙方(開發(fā)商、需求方)各方面的資源、相互配合才能推動(dòng)項(xiàng)目的進(jìn)程。一旦系統(tǒng)開發(fā)商和需求方(即用戶)簽訂了開發(fā)協(xié)議,開發(fā)商應(yīng)立即成立一個(gè)專業(yè)的以系統(tǒng)分析員為組長的項(xiàng)目開發(fā)小組,并要求需求方配備精通自身行業(yè)領(lǐng)域知識(shí)的人員,全程協(xié)助項(xiàng)目的開發(fā)。對于一般的數(shù)據(jù)庫應(yīng)用系統(tǒng)而言,數(shù)據(jù)庫設(shè)計(jì)可以不包括系統(tǒng)規(guī)劃階段。具體的數(shù)據(jù)庫設(shè)計(jì)步驟,主要按照后面6個(gè)階段展開。在項(xiàng)目的整個(gè)開發(fā)期內(nèi),有兩個(gè)非常重要的磨合期(也稱危險(xiǎn)期),如果雙方處理得不好,會(huì)嚴(yán)重影響項(xiàng)目的進(jìn)度,甚至成敗。一個(gè)是需求分析階段,另一個(gè)是系統(tǒng)試運(yùn)行階段。5.2需求分析本章主要內(nèi)容:(1)數(shù)據(jù)庫設(shè)計(jì)概述:概念、目標(biāo)、方法和原則,及設(shè)計(jì)的一般步驟(2)需求分析:組織機(jī)構(gòu)圖、業(yè)務(wù)流程圖、系統(tǒng)功能圖、數(shù)據(jù)流程圖(3)概念設(shè)計(jì):局部E-R模型、全局E-R模型、評審(4)邏輯設(shè)計(jì):將E-R模型轉(zhuǎn)為關(guān)系模型的規(guī)則、關(guān)系模型的優(yōu)化(5)物理設(shè)計(jì):確定數(shù)據(jù)庫的物理結(jié)構(gòu)、評價(jià)數(shù)據(jù)庫的物理結(jié)構(gòu)(6)數(shù)據(jù)庫實(shí)現(xiàn)、運(yùn)行和維護(hù)5.2需求分析這一階段是計(jì)算機(jī)開發(fā)人員和用戶雙方共同收集數(shù)據(jù)庫所需要的信息內(nèi)容和用戶對處理的需求,并以需求說明書的形式確定下來,作為下一階段系統(tǒng)開發(fā)的指南和項(xiàng)目驗(yàn)收的依據(jù)。

這是最費(fèi)時(shí)、最復(fù)雜的一步,也是最重要的一步。一方面,數(shù)據(jù)庫設(shè)計(jì)人員不熟悉用戶行業(yè)的領(lǐng)域知識(shí)。另一方面,用戶又不清楚計(jì)算機(jī)領(lǐng)域?qū)I(yè)知識(shí),不知如何向計(jì)算機(jī)人員清晰表達(dá)自己的信息需求。這個(gè)痛苦的磨合期,需要開發(fā)人員具備豐富的開發(fā)經(jīng)驗(yàn),駕馭分析方向,引導(dǎo)用戶準(zhǔn)確說出自己的業(yè)務(wù)需求。5.2需求分析開發(fā)人員必須高度重視系統(tǒng)的需求分析工作。因?yàn)樾枨蠓治龅膬?nèi)容是否準(zhǔn)確反映了用戶的實(shí)際需求,將直接影響到后面各個(gè)階段的設(shè)計(jì)工作。一點(diǎn)點(diǎn)偏差,都會(huì)導(dǎo)致整個(gè)數(shù)據(jù)庫設(shè)計(jì)返工。5.2.1需求分析的工作步驟具體說來,需求分析的工作主要由下面4步組成:1.分析用戶活動(dòng),產(chǎn)生業(yè)務(wù)流程圖了解用戶的組織機(jī)構(gòu)圖、各部門職能、業(yè)務(wù)活動(dòng)流程,分析之后畫出用戶的業(yè)務(wù)流程圖。5.2.1需求分析的工作步驟分析人員剛開始向用戶了解需求分析時(shí),先了解大概的框架,不要向用戶詢問每個(gè)業(yè)務(wù)具體細(xì)節(jié)。例如,以我國企業(yè)為例,一般企業(yè)(或公司)的組織結(jié)構(gòu),如圖所示。我國企業(yè)組織機(jī)構(gòu)圖及關(guān)鍵崗位:銷售管理業(yè)務(wù)流程圖:5.2.1需求分析的工作步驟

2.確定系統(tǒng)范圍,產(chǎn)生系統(tǒng)功能圖這一步是確定系統(tǒng)的范圍。在和用戶經(jīng)過充分討論的基礎(chǔ)上,明確用戶業(yè)務(wù)活動(dòng)中,哪些工作由計(jì)算機(jī)系統(tǒng)來做,哪些由人工來做,對用戶的數(shù)據(jù)需求,以一個(gè)個(gè)具體的功能確定下來,畫出系統(tǒng)功能圖。這個(gè)功能就是人機(jī)界面,一個(gè)界面完成一個(gè)功能。5.2.1需求分析的工作步驟

2.確定系統(tǒng)范圍,產(chǎn)生系統(tǒng)功能圖這一步是確定系統(tǒng)的范圍。在和用戶經(jīng)過充分討論的基礎(chǔ)上,明確用戶業(yè)務(wù)活動(dòng)中,哪些工作由計(jì)算機(jī)系統(tǒng)來做,哪些由人工來做,對用戶的數(shù)據(jù)需求,以一個(gè)個(gè)具體的功能確定下來,畫出系統(tǒng)功能圖。這個(gè)功能就是人機(jī)界面,一個(gè)界面完成一個(gè)功能。例如,以我國企業(yè)為例,一般的企業(yè)進(jìn)銷存管理系統(tǒng),其功能圖如圖所示。企業(yè)進(jìn)銷存管理系統(tǒng)功能圖:一級(jí)菜單5.2.1需求分析的工作步驟

3.分析用戶業(yè)務(wù)活動(dòng)涉及的數(shù)據(jù),產(chǎn)生數(shù)據(jù)流程圖深入分析每一個(gè)功能需求,以數(shù)據(jù)流程圖的形式表示出數(shù)據(jù)的流向和對數(shù)據(jù)所進(jìn)行的加工。重點(diǎn)是分析各功能之間,數(shù)據(jù)流向的關(guān)聯(lián)性。數(shù)據(jù)流程圖(DataFlowDiagram,DFD)是從“數(shù)據(jù)”和“數(shù)據(jù)的加工”兩個(gè)方面表達(dá)數(shù)據(jù)處理系統(tǒng)工作過程的一種圖形表示,它非常直觀,且能被用戶和計(jì)算機(jī)專業(yè)人員都能理解。

例如,我國企業(yè)進(jìn)銷存、應(yīng)收應(yīng)付業(yè)務(wù)數(shù)據(jù)流程圖,如圖所示。企業(yè)進(jìn)銷存、應(yīng)收應(yīng)付業(yè)務(wù)數(shù)據(jù)流程圖:5.2.1需求分析的工作步驟

4.分析系統(tǒng)數(shù)據(jù),產(chǎn)生數(shù)據(jù)字典數(shù)據(jù)字典是用戶業(yè)務(wù)功能中各種數(shù)據(jù)描述的集合,是對數(shù)據(jù)流程圖的詳細(xì)描述,它以特定的格式記錄系統(tǒng)中各種數(shù)據(jù)的名稱、結(jié)構(gòu)、意義及約束條件等。在需求分析階段,數(shù)據(jù)字典是進(jìn)行數(shù)據(jù)收集和需求分析后所獲得的重要成果,是概念設(shè)計(jì)最詳細(xì)的資料來源,也是系統(tǒng)驗(yàn)收的重要依據(jù)。5.2.2數(shù)據(jù)字典的內(nèi)容及格式數(shù)據(jù)字典一般包括數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)流和處理過程等5個(gè)部分。數(shù)據(jù)項(xiàng)是數(shù)據(jù)的最小單位,若干個(gè)數(shù)據(jù)項(xiàng)可以組成一個(gè)數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)字典是通過數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)的定義來描述數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)內(nèi)容的。

1.數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)的描述格式通常如下:

數(shù)據(jù)項(xiàng)描述={數(shù)據(jù)項(xiàng)名,語義說明,數(shù)據(jù)類型,長度,取值范圍,其他約束或關(guān)聯(lián)}。5.2.2數(shù)據(jù)字典的內(nèi)容及格式

2.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是反映數(shù)據(jù)之間的組合關(guān)系。一個(gè)數(shù)據(jù)結(jié)構(gòu)可以由若干個(gè)數(shù)據(jù)項(xiàng)組成,也可以由若各個(gè)數(shù)據(jù)結(jié)構(gòu)組成,或者由若干個(gè)數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)組成。描述數(shù)據(jù)結(jié)構(gòu)的格式通常為:

數(shù)據(jù)結(jié)構(gòu)={數(shù)據(jù)結(jié)構(gòu)名稱,含義說明,組成說明}。

2.數(shù)據(jù)流數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)穆窂?。描述?shù)據(jù)流的格式通常為:

數(shù)據(jù)流={數(shù)據(jù)流名稱,語義說明,數(shù)據(jù)流來源,數(shù)據(jù)流去向,組成說明,平均流量,高峰期流量}5.2.2數(shù)據(jù)字典的內(nèi)容及格式4.數(shù)據(jù)存儲(chǔ)(文件)數(shù)據(jù)存儲(chǔ)是數(shù)據(jù)流程圖中,數(shù)據(jù)結(jié)構(gòu)停留或保存的地方,它是業(yè)務(wù)流程產(chǎn)生的文檔或單據(jù)。每個(gè)用戶一般都有自己的文檔格式,調(diào)研時(shí),要注意向用戶收集。

描述數(shù)據(jù)存儲(chǔ)的格式通常為:

數(shù)據(jù)存儲(chǔ)={數(shù)據(jù)存儲(chǔ)名,說明,編號(hào),流入數(shù)據(jù)流,流出數(shù)據(jù)流,組成:{數(shù)據(jù)結(jié)構(gòu)},數(shù)據(jù)量,存取方式}5.2.2數(shù)據(jù)字典的內(nèi)容及格式5.處理過程數(shù)據(jù)處理是數(shù)據(jù)流程圖中功能模塊的說明。數(shù)據(jù)字典中一般只需要描述數(shù)據(jù)處理過程的說明性信息即可。下面以銷售管理中,銷售訂單為例,說明數(shù)據(jù)字典的具體格式內(nèi)容。

單據(jù)描述:銷售訂單是公司與客戶建立起銷售關(guān)系的書面文檔,訂單上記載了客戶、貨品等詳細(xì)資料,也為公司發(fā)貨和收取應(yīng)收款提供依據(jù)。5.2.2數(shù)據(jù)字典的內(nèi)容及格式

數(shù)據(jù)項(xiàng):銷售訂單主表

=訂單編號(hào)+客戶編號(hào)+訂單日期+發(fā)貨日期+賬單地址+發(fā)貨地址+銷售部門+銷售員+付款條件+支付方式+發(fā)貨方式+備注+小計(jì)+稅率+稅額+折扣+運(yùn)費(fèi)+合計(jì)+制單人+是否審核+審核人+審核日期+訂單狀態(tài)+發(fā)貨狀態(tài)+是否有效

銷售訂單明細(xì)表

=訂單編號(hào)+貨品編號(hào)+貨品單位+貨品單價(jià)+稅額+貨品數(shù)量+金額編碼規(guī)定:系統(tǒng)自動(dòng)編號(hào)或手工輸入。銷售訂單主表:數(shù)據(jù)項(xiàng)名數(shù)據(jù)類型長度格式是否為空缺省值說明訂單編號(hào)字符型10否客戶編號(hào)字符型10否客戶字典訂單日期日期型8否發(fā)貨日期日期型8賬單地址字符型200發(fā)貨地址字符型200銷售部門字符型10部門字典銷售員編號(hào)字符型16員工字典付款條件字符型10付款條件字典支付方式字符型10支付方式字典發(fā)貨方式字符型10發(fā)貨方式字典備注備注型255小計(jì)浮點(diǎn)型15否等于明細(xì)表金額之和銷售訂單主表:數(shù)據(jù)項(xiàng)名數(shù)據(jù)類型長度格式是否為空缺省值說明稅率浮點(diǎn)型6稅額浮點(diǎn)型12折扣浮點(diǎn)型12運(yùn)費(fèi)浮點(diǎn)型12合計(jì)浮點(diǎn)型15否合計(jì)=小計(jì)+稅額+運(yùn)費(fèi)-折扣制單人字符型16否員工字典是否審核邏輯型1否未審核審核人字符型16員工字典審核日期日期型8訂單狀態(tài)邏輯型1否未關(guān)閉發(fā)貨狀態(tài)邏輯型1否未發(fā)貨是否有效邏輯型1否有效銷售訂單明細(xì)表:數(shù)據(jù)項(xiàng)名數(shù)據(jù)類型長度格式是否為空缺省值說明訂單編號(hào)字符型10否銷售訂單主表貨品編號(hào)字符型15否貨品字典貨品單位字符型10否貨品單位字典貨品單價(jià)浮點(diǎn)型12否貨品數(shù)量浮點(diǎn)型12否金額浮點(diǎn)型15否等于貨品單價(jià)*數(shù)量需求分析結(jié)束后,把組織機(jī)構(gòu)圖、業(yè)務(wù)流程圖、系統(tǒng)功能圖、數(shù)據(jù)流程圖、數(shù)據(jù)字典等信息,按照軟件工程的規(guī)范,整合在“軟件需求說明書”中,雙方簽字,作為系統(tǒng)最終驗(yàn)收的標(biāo)準(zhǔn)。5.3概要結(jié)構(gòu)設(shè)計(jì)本章主要內(nèi)容:(1)數(shù)據(jù)庫設(shè)計(jì)概述:概念、目標(biāo)、方法和原則,及設(shè)計(jì)的一般步驟(2)需求分析:組織機(jī)構(gòu)圖、業(yè)務(wù)流程圖、系統(tǒng)功能圖、數(shù)據(jù)流程圖(3)概念設(shè)計(jì):局部E-R模型、全局E-R模型、評審(4)邏輯設(shè)計(jì):將E-R模型轉(zhuǎn)為關(guān)系模型的規(guī)則、關(guān)系模型的優(yōu)化(5)物理設(shè)計(jì):確定數(shù)據(jù)庫的物理結(jié)構(gòu)、評價(jià)數(shù)據(jù)庫的物理結(jié)構(gòu)(6)數(shù)據(jù)庫實(shí)現(xiàn)、運(yùn)行和維護(hù)5.3概要結(jié)構(gòu)設(shè)計(jì)在需求調(diào)研階段,數(shù)據(jù)庫設(shè)計(jì)人員經(jīng)過充分的調(diào)查、分析,然后記錄了用戶的各種應(yīng)用需求。這些需求只是現(xiàn)實(shí)世界的具體要求,下一步應(yīng)該把這些需求抽象為信息世界的數(shù)據(jù)結(jié)構(gòu),才能夠通過計(jì)算機(jī)實(shí)現(xiàn)用戶的具體需求。

將需求分析階段獲得的用戶詳細(xì)需求,轉(zhuǎn)換為信息結(jié)構(gòu)(即概念模型)的過程,就是數(shù)據(jù)庫的概要結(jié)構(gòu)設(shè)計(jì)。它的目的是分析數(shù)據(jù)之間的內(nèi)在聯(lián)系,在此基礎(chǔ)上建立一個(gè)抽象的數(shù)據(jù)模型。這種模型與具體的DBMS無關(guān)。5.3概要結(jié)構(gòu)設(shè)計(jì)概念模型最主要的特點(diǎn)是:從用戶需求的角度出發(fā),描述數(shù)據(jù)庫全局的、局部的數(shù)據(jù)邏輯結(jié)構(gòu),它根據(jù)“軟件需求說明書”中的信息,在考慮全局?jǐn)?shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上,按功能抽象出多個(gè)局部的邏輯模塊。例如,在企業(yè)的進(jìn)銷存管理系統(tǒng)中,按相關(guān)功能和數(shù)據(jù)流程,抽象出如下7個(gè)模塊:銷售管理模塊、應(yīng)收款模塊、采購管理模塊、應(yīng)付款模塊、庫存管理模塊、查詢統(tǒng)計(jì)模塊、系統(tǒng)維護(hù)模塊。描述概念模型最常用的工具是E-R模型。

5.3.1概念結(jié)構(gòu)設(shè)計(jì)的主要步驟需求分析一般采用的策略是自頂向下,而概念設(shè)計(jì)的策略則自底向上。它主要分三步:按功能模塊化,先從單個(gè)用戶的需求出發(fā),為功能相關(guān)聯(lián)的用戶建立一個(gè)相應(yīng)的局部概念模型。在這個(gè)過程中,要對需求分析的結(jié)果進(jìn)行細(xì)化、補(bǔ)充和修改。(1)進(jìn)行數(shù)據(jù)抽象,設(shè)計(jì)局部概念模型

5.3.1概念結(jié)構(gòu)設(shè)計(jì)的主要步驟將各功能模塊的局部概念模型綜合起來,就可以得到反映所有用戶需求的全局概念模型。在綜合的過程中,要注意各局部概念模型對數(shù)據(jù)對象定義的不一致問題,包括:同名不同義、異名同義和同一事物在不同的模式中被抽象為不同類型的對象等。

另外,還要注意,在合并過程中,還要檢查是否產(chǎn)生數(shù)據(jù)冗余問題。(2)將局部概念模型綜合成全局概念模型

5.3.1概念結(jié)構(gòu)設(shè)計(jì)的主要步驟評審分用戶評審與數(shù)據(jù)庫管理員及開發(fā)人員專業(yè)評審。前者的重點(diǎn)在于設(shè)計(jì)的概念模型是否準(zhǔn)確反映了用戶的實(shí)際需求。后者則側(cè)重于考察全局概念模型是否完整、各功能模塊的劃分是否合理、是否存在數(shù)據(jù)不一致問題、各種文檔是否齊全等。(3)評審

5.3.2

E-R模型的設(shè)計(jì)步驟當(dāng)數(shù)據(jù)庫設(shè)計(jì)人員從用戶的需求中抽象出實(shí)體類型、屬性及實(shí)體間聯(lián)系后,用E-R模型建立局部的概念模型步驟如下:最終獲得的全局E-R模型是項(xiàng)目的概念模型,它代表了用戶的全部數(shù)據(jù)要求,是溝通“需求”和“設(shè)計(jì)”的橋梁。它是下一步數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)的直接依據(jù),是建立數(shù)據(jù)庫成功的關(guān)鍵。(1)按功能模塊,確定實(shí)體集及其屬性。

(2)確定實(shí)體集之間的聯(lián)系及聯(lián)系的類別。

(3)將局部的E-R模型,合并為全局的E-R模型。

5.3.2

E-R模型的設(shè)計(jì)步驟例如,在銷售管理模塊中,主要的實(shí)體集有:客戶、業(yè)務(wù)員、銷售訂單,銷售管理會(huì)關(guān)聯(lián)到商品信息和收款信息,但是商品實(shí)體屬于庫存管理模塊,收款屬于應(yīng)收款模塊。

客戶的屬性主要有:客戶編號(hào)、客戶名稱、客戶地址、客戶聯(lián)系人、客戶聯(lián)系電話等。業(yè)務(wù)員的屬性主要有:員工編號(hào)、員工姓名、聯(lián)系電話、入職時(shí)間等。

5.3.2

E-R模型的設(shè)計(jì)步驟

銷售訂單主表的屬性有:訂單編號(hào)、客戶編號(hào)、業(yè)務(wù)員編號(hào)、簽訂日期、收貨地址、訂單金額、是否審核、審核人、審核日期、已收金額、是否發(fā)貨、發(fā)貨日期等。規(guī)定:每張訂單只有一個(gè)客戶編號(hào)、一個(gè)業(yè)務(wù)員,可以有多種商品,客戶可以分多次付款等。

銷售訂單明細(xì)表的屬性有:訂單編號(hào)、商品編號(hào)、數(shù)量、單價(jià)、金額等,其中金額等于數(shù)量*單價(jià),從范式原理看,這個(gè)金額屬于冗余字段,但這種冗余是可以接受的。這是因?yàn)橹鞅淼挠唵谓痤~等于明細(xì)表中,各金額之和,主表的這個(gè)訂單金額也是冗余字段。

5.3.2

E-R模型的設(shè)計(jì)步驟在進(jìn)銷存管理系統(tǒng)中,金額會(huì)涉及到后續(xù)的很多處理需要,例如財(cái)務(wù)上的收款沖賬、應(yīng)收款的查詢匯總、業(yè)務(wù)員的業(yè)績匯總等,如果不增加明細(xì)表上的金額、訂單主表的訂單金額,那些后續(xù)業(yè)務(wù)需求會(huì)很不方便。銷售訂單業(yè)務(wù)的E-R圖,如圖所示。銷售訂單業(yè)務(wù)的E-R圖:

5.3.2

E-R模型的設(shè)計(jì)步驟數(shù)據(jù)庫設(shè)計(jì)人員應(yīng)高度重視這個(gè)階段,并在設(shè)計(jì)過程中反復(fù)和用戶進(jìn)行討論。在確定沒有問題后,才能進(jìn)入下一階段的設(shè)計(jì)工作。

在軟件工程中,概念設(shè)計(jì)的階段性成果,歸結(jié)在“概念設(shè)計(jì)書”這份文檔里。5.4邏輯結(jié)構(gòu)設(shè)計(jì)本章主要內(nèi)容:(1)數(shù)據(jù)庫設(shè)計(jì)概述:概念、目標(biāo)、方法和原則,及設(shè)計(jì)的一般步驟(2)需求分析:組織機(jī)構(gòu)圖、業(yè)務(wù)流程圖、系統(tǒng)功能圖、數(shù)據(jù)流程圖(3)概念設(shè)計(jì):局部E-R模型、全局E-R模型、評審(4)邏輯設(shè)計(jì):將E-R模型轉(zhuǎn)為關(guān)系模型的規(guī)則、關(guān)系模型的優(yōu)化(5)物理設(shè)計(jì):確定數(shù)據(jù)庫的物理結(jié)構(gòu)、評價(jià)數(shù)據(jù)庫的物理結(jié)構(gòu)(6)數(shù)據(jù)庫實(shí)現(xiàn)、運(yùn)行和維護(hù)5.4邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù),是把概念結(jié)構(gòu)設(shè)計(jì)階段獲得的、優(yōu)化后的整體E-R模型轉(zhuǎn)變?yōu)榫唧w的DBMS所支持的數(shù)據(jù)模型。目前的數(shù)據(jù)庫應(yīng)用系統(tǒng)基本上都是基于關(guān)系數(shù)據(jù)庫的,因此,下面只介紹E-R模型向關(guān)系數(shù)據(jù)庫模型轉(zhuǎn)換的原則和方法。

5.4.1將E-R模型轉(zhuǎn)為關(guān)系模型概念結(jié)構(gòu)設(shè)計(jì)得到的E-R圖是由實(shí)體、屬性及實(shí)體間的聯(lián)系組成的,而關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合。因此,將E-R模型轉(zhuǎn)為關(guān)系模型實(shí)際上就是將實(shí)體、屬性和實(shí)體間的聯(lián)系轉(zhuǎn)為關(guān)系模式。具體轉(zhuǎn)換規(guī)則如下:

1.對于E-R圖中的每一個(gè)實(shí)體對于E-R圖中的每一個(gè)實(shí)體類型都對應(yīng)轉(zhuǎn)換為關(guān)系模型中的一個(gè)關(guān)系模式,實(shí)體的屬性即為關(guān)系模式的屬性,實(shí)體標(biāo)識(shí)符即為關(guān)系模式的關(guān)鍵碼。

5.4.1將E-R模型轉(zhuǎn)為關(guān)系模型

2.對于E-R圖中的聯(lián)系

E-R圖中的聯(lián)系主要分三種:一元聯(lián)系、二元聯(lián)系、多元聯(lián)系,二元聯(lián)系又包括3種(1:1、1:n、m:n)。不同種類的聯(lián)系轉(zhuǎn)換為關(guān)系模式的規(guī)則各不相同,下面分開來說明。(1)二元聯(lián)系中的一對多聯(lián)系(1:n)這是兩個(gè)實(shí)體間最常見的一種聯(lián)系,其轉(zhuǎn)換規(guī)則是:將1端的關(guān)鍵碼加入到n端對應(yīng)的關(guān)系模式中作為“外鍵”,同時(shí)將聯(lián)系的屬性一并加入到該關(guān)系模式中。

5.4.1將E-R模型轉(zhuǎn)為關(guān)系模型例如,圖5-5銷售訂單業(yè)務(wù)中,客戶的收款信息,對每個(gè)客戶可以有多次收款記錄,每次收款只能對應(yīng)一個(gè)客戶,轉(zhuǎn)為關(guān)系模式為:

客戶模式(客戶編號(hào),客戶名稱,地址,聯(lián)系人,聯(lián)系電話)

收款信息模式(收款單號(hào),收款日期,收款金額,客戶編號(hào))收款沖賬明細(xì)表

5.4.1將E-R模型轉(zhuǎn)為關(guān)系模型

(2)二元聯(lián)系中的多對多聯(lián)系(m:n)對于兩個(gè)實(shí)體間的m:n聯(lián)系,其轉(zhuǎn)換規(guī)則是:將聯(lián)系類型轉(zhuǎn)換為一個(gè)關(guān)系模式,其屬性為兩邊的實(shí)體關(guān)鍵碼,加上聯(lián)系類型的屬性,而鍵為兩端實(shí)體類型關(guān)鍵碼的組合。例如,圖5-5銷售訂單業(yè)務(wù)中,客戶的銷售訂單信息,每張銷售訂單可以含多種商品,每種商品可以被多個(gè)訂單銷售,轉(zhuǎn)為關(guān)系模式為:業(yè)務(wù)員模式(員工編號(hào),員工姓名,入職日期)

商品模式(商品編號(hào),商品名稱,規(guī)格,單位,售價(jià),成本價(jià))

銷售訂單(訂單單號(hào),訂單日期,收貨地址,訂單金額,客戶編號(hào),員工編號(hào))

銷售訂單明細(xì)模式(訂單單號(hào),商品編號(hào),單價(jià),數(shù)量,金額)

5.4.1將E-R模型轉(zhuǎn)為關(guān)系模型(3)二元聯(lián)系中的一對一聯(lián)系(1:1)對于兩個(gè)實(shí)體間的1:1聯(lián)系,只需在一個(gè)關(guān)系模式中增加另一個(gè)關(guān)系模式的鍵即可。例如,校長與學(xué)校的“管理”聯(lián)系,屬于1:1聯(lián)系。一個(gè)學(xué)校只能有一個(gè)校長,一個(gè)校長只能管理一個(gè)學(xué)校。這時(shí),有兩種方法轉(zhuǎn)換為關(guān)系模式??梢园研iL作為主表,則:

校長模式(校長編號(hào),姓名,性別,年齡,學(xué)歷,職稱)

學(xué)校模式(學(xué)校編號(hào),學(xué)校名稱,地址,校長編號(hào))也可以把學(xué)校作為主表,則:學(xué)校模式(學(xué)校編號(hào),學(xué)校名稱,地址)

校長模式(校長編號(hào),姓名,性別,年齡,學(xué)歷,職稱,學(xué)校編號(hào))

5.4.1將E-R模型轉(zhuǎn)為關(guān)系模型(4)三元及三元以上的聯(lián)系這種聯(lián)系的轉(zhuǎn)換,與其聯(lián)系的類別有關(guān),基本上可以參照二元聯(lián)系的轉(zhuǎn)換規(guī)則進(jìn)行。例如,在三元聯(lián)系中,常見的有如下幾種:1:1:n、1:m:n、m:n:p。對于多對多聯(lián)系的,要將聯(lián)系類型轉(zhuǎn)換為一個(gè)關(guān)系模式;對于一對多的聯(lián)系,只需在多端這邊,轉(zhuǎn)為關(guān)系模式時(shí),加入一個(gè)外鍵,即可。

5.4.2數(shù)據(jù)模型的優(yōu)化將所有的E-R圖轉(zhuǎn)換為關(guān)系模式后,為了提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能,還應(yīng)以關(guān)系規(guī)范化理論為指導(dǎo),對已經(jīng)產(chǎn)生的關(guān)系模型進(jìn)行優(yōu)化。具體的優(yōu)化步驟為:(1)確定每個(gè)關(guān)系模式內(nèi),屬性之間的函數(shù)依賴。

(2)確定每個(gè)關(guān)系模式內(nèi),除必要的冗余屬性外,是否達(dá)到了3NF或BCNF標(biāo)準(zhǔn)。

(3)對照需求分析的結(jié)果,檢查每個(gè)關(guān)系模式設(shè)計(jì)得是否合適。如果不合適,是否需要將某些關(guān)系模式進(jìn)行合并或分解。

(4)檢查每個(gè)關(guān)系模式的關(guān)鍵碼或外鍵,設(shè)置得是否合理。在關(guān)系模型的規(guī)范化實(shí)踐中,最小冗余度和規(guī)范化級(jí)別并不是絕對的。關(guān)系模式一般能夠達(dá)到3NF或BCNF級(jí)別,已經(jīng)很完美了。對于數(shù)據(jù)更新頻度不高、但查詢頻度極高的關(guān)系模式,適當(dāng)保留部分冗余屬性,更能提高數(shù)據(jù)庫的應(yīng)用性能。5.5物理結(jié)構(gòu)設(shè)計(jì)本章主要內(nèi)容:(1)數(shù)據(jù)庫設(shè)計(jì)概述:概念、目標(biāo)、方法和原則,及設(shè)計(jì)的一般步驟(2)需求分析:組織機(jī)構(gòu)圖、業(yè)務(wù)流程圖、系統(tǒng)功能圖、數(shù)據(jù)流程圖(3)概念設(shè)計(jì):局部E-R模型、全局E-R模型、評審(4)邏輯設(shè)計(jì):將E-R模型轉(zhuǎn)為關(guān)系模型的規(guī)則、關(guān)系模型的優(yōu)化(5)物理設(shè)計(jì):確定數(shù)據(jù)庫的物理結(jié)構(gòu)、評價(jià)數(shù)據(jù)庫的物理結(jié)構(gòu)(6)數(shù)據(jù)庫實(shí)現(xiàn)、運(yùn)行和維護(hù)5.5物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計(jì)相對來說比較簡單,發(fā)揮的空間不大。它主要是利用DBMS提供的方法、技術(shù),以較好的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)和存儲(chǔ)方式,將數(shù)據(jù)庫的邏輯結(jié)構(gòu)轉(zhuǎn)換為數(shù)據(jù)庫的物理結(jié)構(gòu)。其目標(biāo)是:節(jié)省存儲(chǔ)空間、提高數(shù)據(jù)查詢速度、降低數(shù)據(jù)庫的維護(hù)代價(jià)。數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計(jì),通常分為下列兩步:(1)確定數(shù)據(jù)庫的物理結(jié)構(gòu)。在關(guān)系數(shù)據(jù)庫中,主要指存儲(chǔ)結(jié)構(gòu)和存取方法。

(2)對數(shù)據(jù)庫的物理結(jié)構(gòu)進(jìn)行評價(jià)。主要是評價(jià)“時(shí)間和空間效率”。5.2需求分析開發(fā)人員必須高度重視系統(tǒng)的需求分析工作。因?yàn)樾枨蠓治龅膬?nèi)容是否準(zhǔn)確反映了用戶的實(shí)際需求,將直接影響到后面各個(gè)階段的設(shè)計(jì)工作。一點(diǎn)點(diǎn)偏差,都會(huì)導(dǎo)致整個(gè)數(shù)據(jù)庫設(shè)計(jì)返工。5.2.1需求分析的工作步驟開發(fā)人員必須高度重視系統(tǒng)的需求分析工作。因?yàn)樾枨蠓治龅膬?nèi)容是否準(zhǔn)確反映了用戶的實(shí)際需求,將直接影響到后面各個(gè)階段的設(shè)計(jì)工作。一點(diǎn)點(diǎn)偏差,都會(huì)導(dǎo)致整個(gè)數(shù)據(jù)庫設(shè)計(jì)返工。

5.5.1確定數(shù)據(jù)庫的物理結(jié)構(gòu)主要是確定數(shù)據(jù)的存放位置和存儲(chǔ)結(jié)構(gòu),具體內(nèi)容包括:

1.通過創(chuàng)建數(shù)據(jù)庫,確定數(shù)據(jù)的存放路勁和存儲(chǔ)結(jié)構(gòu)例如,在MySQL中,下列語句創(chuàng)建了一個(gè)名為MyTest的數(shù)據(jù)庫: CreateDataBase

MyTest;

創(chuàng)建成功后,MySQL會(huì)在數(shù)據(jù)庫默認(rèn)安裝的數(shù)據(jù)路徑下,自動(dòng)新建一個(gè)文件夾“\MyTest”,然后所有該數(shù)據(jù)庫下的資源,都會(huì)置于該路徑下。

5.5.1確定數(shù)據(jù)庫的物理結(jié)構(gòu)再例如,在MSSQLServer中,創(chuàng)建一個(gè)名為student的數(shù)據(jù)庫:12345678910111213141516

CreateDatabasestudenton/*----------------------創(chuàng)建數(shù)據(jù)庫--------------------*/( name=student_data,/*數(shù)據(jù)文件邏輯名*/

FileName='d:\data\student_data.mdf',/*數(shù)據(jù)文件物理名*/ Size=10MB,

/*數(shù)據(jù)庫物理文件初始大小*/

Maxsize=200MB,

/*數(shù)據(jù)庫物理文件大小的上限*/

FileGrowth=5

/*剩余空間不足后,物理文件按5%增長*/)Logon( name=student_log,

/*日志文件邏輯名*/

FileName='d:\data\student_log.ldf',/*日志文件物理名*/ Size=5MB,

/*數(shù)據(jù)庫日志文件初始大小*/

Maxsize=25MB,

FileGrowth=5MB);

5.5.1確定數(shù)據(jù)庫的物理結(jié)構(gòu)創(chuàng)建成功后,會(huì)在指定的路徑下,生成2個(gè)物理文件,一個(gè)是數(shù)據(jù)文件,后綴名為*.mdf,一個(gè)是日志文件,后綴為*.ldf,所有數(shù)據(jù)庫資源都置于這2個(gè)文件中。同時(shí)還指定了2個(gè)文件的初始大小、上限,以及文件的增長幅度。

5.5.1確定數(shù)據(jù)庫的物理結(jié)構(gòu)

2.創(chuàng)建基本表,包括表的屬性、主鍵、或外鍵,表的各種約束這是最重要的部分,具體參見例題3.2。

3.創(chuàng)建索引對于查詢比較頻繁的屬性列,可以創(chuàng)建簇索引,或非簇索引。對于取值唯一性的非主屬性列,可以創(chuàng)建唯一性(Unique)索引。

4.創(chuàng)建視圖為了隱蔽數(shù)據(jù)的復(fù)雜性,簡化用戶對數(shù)據(jù)的操作,或?qū)δ承C(jī)密數(shù)據(jù)進(jìn)行保護(hù),可以創(chuàng)建視圖,具體參見3.5節(jié)。

5.5.1確定數(shù)據(jù)庫的物理結(jié)構(gòu)

5.創(chuàng)建觸發(fā)器為了滿足用戶對某些數(shù)據(jù)處理的特殊要求,可以創(chuàng)建觸發(fā)器,具體參見8.3節(jié)。

6.完整性和安全性考慮設(shè)計(jì)人員應(yīng)在完整性、安全性、有效性和效率方面進(jìn)行分析,并作出權(quán)衡。

5.5.2評價(jià)數(shù)據(jù)庫的物理結(jié)構(gòu)在數(shù)據(jù)庫物理設(shè)計(jì)過程中,根據(jù)表的數(shù)據(jù)流量和屬性列的訪問頻率,需要對時(shí)間效率、空間效率、維護(hù)代價(jià)和用戶的各種要求進(jìn)行權(quán)衡,其結(jié)果可能產(chǎn)生多種

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論