數(shù)據(jù)庫(kù)清華版6章數(shù)據(jù)庫(kù)設(shè)計(jì).ppt_第1頁(yè)
數(shù)據(jù)庫(kù)清華版6章數(shù)據(jù)庫(kù)設(shè)計(jì).ppt_第2頁(yè)
數(shù)據(jù)庫(kù)清華版6章數(shù)據(jù)庫(kù)設(shè)計(jì).ppt_第3頁(yè)
數(shù)據(jù)庫(kù)清華版6章數(shù)據(jù)庫(kù)設(shè)計(jì).ppt_第4頁(yè)
數(shù)據(jù)庫(kù)清華版6章數(shù)據(jù)庫(kù)設(shè)計(jì).ppt_第5頁(yè)
已閱讀5頁(yè),還剩281頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第6章 數(shù)據(jù)庫(kù)設(shè)計(jì),6.1 數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟 6.2 需求分析 6.3 概念結(jié)構(gòu)設(shè)計(jì) 6.4 邏輯結(jié)構(gòu)設(shè)計(jì) 6.5 數(shù)據(jù)庫(kù)的物理設(shè)計(jì) 6.6 數(shù)據(jù)庫(kù)實(shí)施 6.7 數(shù)據(jù)庫(kù)運(yùn)行與維護(hù),第6章 數(shù)據(jù)庫(kù)設(shè)計(jì),6.1 數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟 6.2 需求分析 6.3 概念結(jié)構(gòu)設(shè)計(jì) 6.4 邏輯結(jié)構(gòu)設(shè)計(jì) 6.5 數(shù)據(jù)庫(kù)的物理設(shè)計(jì) 6.6 數(shù)據(jù)庫(kù)實(shí)施 6.7 數(shù)據(jù)庫(kù)運(yùn)行與維護(hù),6.1 數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟,數(shù)據(jù)庫(kù)設(shè)計(jì)的準(zhǔn)備工作 數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程,一、數(shù)據(jù)庫(kù)設(shè)計(jì)的準(zhǔn)備工作,選定參加設(shè)計(jì)的人員 數(shù)據(jù)庫(kù)分析設(shè)計(jì)人員 用戶 程序員 操作員,數(shù)據(jù)庫(kù)設(shè)計(jì)的準(zhǔn)備工作(續(xù)),1. 數(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ì)的準(zhǔn)備工作(續(xù)),2. 用戶 在數(shù)據(jù)庫(kù)設(shè)計(jì)中也是舉足輕重的 主要參加需求分析和數(shù)據(jù)庫(kù)的運(yùn)行維護(hù) 用戶積極參與帶來(lái)的好處 加速數(shù)據(jù)庫(kù)設(shè)計(jì) 提高數(shù)據(jù)庫(kù)設(shè)計(jì)的質(zhì)量,數(shù)據(jù)庫(kù)設(shè)計(jì)的準(zhǔn)備工作(續(xù)),3. 程序員 在系統(tǒng)實(shí)施階段參與進(jìn)來(lái),負(fù)責(zé)編制程序 4. 操作員 在系統(tǒng)實(shí)施階段參與進(jìn)來(lái),準(zhǔn)備軟硬件環(huán)境,二.數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程(六個(gè)階段),需求分析階段 概念結(jié)構(gòu)設(shè)計(jì)階段 邏輯結(jié)構(gòu)設(shè)計(jì)階段 數(shù)據(jù)庫(kù)物理設(shè)計(jì)階段 數(shù)據(jù)庫(kù)實(shí)施階段 數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)階段,數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程(續(xù)),需求分析階段 準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理) 是整個(gè)設(shè)計(jì)過(guò)程的基礎(chǔ),是最困難、最耗費(fèi)時(shí)間的一步,數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程(續(xù)),概念結(jié)構(gòu)設(shè)計(jì)階段 是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵 通過(guò)對(duì)用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型,數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程(續(xù)),邏輯結(jié)構(gòu)設(shè)計(jì)階段 將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)DBMS所支持的數(shù)據(jù)模型 對(duì)其進(jìn)行優(yōu)化,數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程(續(xù)),數(shù)據(jù)庫(kù)物理設(shè)計(jì)階段 為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)和存取方法),數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程(續(xù)),數(shù)據(jù)庫(kù)實(shí)施階段 運(yùn)用DBMS提供的數(shù)據(jù)語(yǔ)言、工具及宿主語(yǔ)言,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果 建立數(shù)據(jù)庫(kù) 編制與調(diào)試應(yīng)用程序 組織數(shù)據(jù)入庫(kù) 并進(jìn)行試運(yùn)行,數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程(續(xù)),數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)階段 數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)經(jīng)過(guò)試運(yùn)行后即可投入正式運(yùn)行。 在數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行過(guò)程中必須不斷地對(duì)其進(jìn)行評(píng)價(jià)、調(diào)整與修改。,數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程(續(xù)),設(shè)計(jì)一個(gè)完善的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)往往是上述六個(gè)階段的不斷反復(fù)。 P184圖6-1,第6章 數(shù)據(jù)庫(kù)設(shè)計(jì),6.1 數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟 6.2 需求分析 6.3 概念結(jié)構(gòu)設(shè)計(jì) 6.4 邏輯結(jié)構(gòu)設(shè)計(jì) 6.5 數(shù)據(jù)庫(kù)的物理設(shè)計(jì) 6.6 數(shù)據(jù)庫(kù)實(shí)施 6.7 數(shù)據(jù)庫(kù)運(yùn)行與維護(hù),6.2 需求分析,6.2.1 需求分析的任務(wù) 6.2.2 需求分析的方法 6.2.3 數(shù)據(jù)字典,需求分析(續(xù)),需求分析就是分析用戶的需要與要求 需求分析是設(shè)計(jì)數(shù)據(jù)庫(kù)的起點(diǎn) 需求分析的結(jié)果是否準(zhǔn)確地反映了用戶的實(shí)際要求,將直接影響到后面各個(gè)階段的設(shè)計(jì),并影響到設(shè)計(jì)結(jié)果是否合理和實(shí)用,6.2 需求分析,6.2.1 需求分析的任務(wù) 6.2.2 需求分析的方法 6.2.3 數(shù)據(jù)字典,6.2.1 需求分析的任務(wù),一、需求分析的任務(wù) 二、需求分析的重點(diǎn) 三、需求分析的難點(diǎn),一、需求分析的任務(wù),通過(guò)詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象(組織、部門(mén)、企業(yè)等),充分了解原系統(tǒng)(手工系統(tǒng)或計(jì)算機(jī)系統(tǒng))工作概況,明確用戶的各種需求 在此基礎(chǔ)上確定新系統(tǒng)的功能。新系統(tǒng)必須充分考慮今后可能的擴(kuò)充和改變,不能僅僅按當(dāng)前應(yīng)用需求來(lái)設(shè)計(jì)數(shù)據(jù)庫(kù),二、需求分析的重點(diǎn),需求分析的重點(diǎn)是調(diào)查、收集與分析用戶在數(shù)據(jù)管理中的信息要求、處理要求、安全性與完整性要求。 信息要求 用戶需要從數(shù)據(jù)庫(kù)中獲得信息的內(nèi)容與性質(zhì) 由用戶的信息要求可以導(dǎo)出數(shù)據(jù)要求,即在數(shù)據(jù)庫(kù)中需要存儲(chǔ)哪些數(shù)據(jù),需求分析的重點(diǎn)(續(xù)),處理要求 對(duì)處理功能的要求 對(duì)處理的響應(yīng)時(shí)間的要求 對(duì)處理方式的要求(批處理 / 聯(lián)機(jī)處理) 新系統(tǒng)的功能必須能夠滿足用戶的信息要求、處理要求、安全性與完整性要求。,三、需求分析的難點(diǎn),確定用戶最終需求的難點(diǎn) 用戶缺少計(jì)算機(jī)知識(shí),開(kāi)始時(shí)無(wú)法確定計(jì)算機(jī)究竟能為自己做什么,不能做什么,因此無(wú)法一下子準(zhǔn)確地表達(dá)自己的需求,他們所提出的需求往往不斷地變化。 設(shè)計(jì)人員缺少用戶的專(zhuān)業(yè)知識(shí),不易理解用戶的真正需求,甚至誤解用戶的需求。 新的硬件、軟件技術(shù)的出現(xiàn)也會(huì)使用戶需求發(fā)生變化。,需求分析的難點(diǎn)(續(xù)),解決方法 設(shè)計(jì)人員必須采用有效的方法,與用戶不斷深入地進(jìn)行交流,才能逐步得以確定用戶的實(shí)際需求,6.2 需求分析,6.2.1 需求分析的任務(wù) 6.2.2 需求分析的方法 6.2.3 數(shù)據(jù)字典,6.2.2 需求分析的方法,調(diào)查清楚用戶的實(shí)際需求并進(jìn)行初步分析 與用戶達(dá)成共識(shí) 進(jìn)一步分析與表達(dá)這些需求,一、 調(diào)查與初步分析用戶需求, 調(diào)查組織機(jī)構(gòu)情況 部門(mén)的組成情況 各部門(mén)的職責(zé)等,調(diào)查與初步分析用戶需求(續(xù)), 調(diào)查各部門(mén)的業(yè)務(wù)活動(dòng)情況。調(diào)查重點(diǎn)之一。 各個(gè)部門(mén)輸入和使用什么數(shù)據(jù) 如何加工處理這些數(shù)據(jù) 輸出什么信息 輸出到什么部門(mén) 輸出結(jié)果的格式是什么,調(diào)查與初步分析用戶需求(續(xù)), 在熟悉業(yè)務(wù)活動(dòng)的基礎(chǔ)上,協(xié)助用戶明確對(duì)新系統(tǒng)的各種要求。調(diào)查重點(diǎn)之二。 信息要求 處理要求 完全性與完整性要求,調(diào)查與初步分析用戶需求(續(xù)), 對(duì)前面調(diào)查的結(jié)果進(jìn)行初步分析 確定新系統(tǒng)的邊界 確定哪些功能由計(jì)算機(jī)完成或?qū)?lái)準(zhǔn)備讓計(jì)算機(jī)完成 確定哪些活動(dòng)由人工完成 由計(jì)算機(jī)完成的功能就是新系統(tǒng)應(yīng)該實(shí)現(xiàn)的功能。,二、常用調(diào)查方法,做需求調(diào)查時(shí),往往需要同時(shí)采用多種方法 無(wú)論使用何種調(diào)查方法,都必須有用戶的積極參與和配合 設(shè)計(jì)人員應(yīng)該和用戶取得共同的語(yǔ)言,幫助不熟悉計(jì)算機(jī)的用戶建立數(shù)據(jù)庫(kù)環(huán)境下的共同概念,并對(duì)設(shè)計(jì)工作的最后結(jié)果共同承擔(dān)責(zé)任,常用調(diào)查方法(續(xù)),常用調(diào)查方法 跟班作業(yè) 通過(guò)親身參加業(yè)務(wù)工作了解業(yè)務(wù)活動(dòng)的情況 能比較準(zhǔn)確地理解用戶的需求,但比較耗時(shí) 開(kāi)調(diào)查會(huì) 通過(guò)與用戶座談來(lái)了解業(yè)務(wù)活動(dòng)情況及用戶需求 請(qǐng)專(zhuān)人介紹,常用調(diào)查方法(續(xù)),詢問(wèn) 對(duì)某些調(diào)查中的問(wèn)題,可以找專(zhuān)人詢問(wèn) 設(shè)計(jì)調(diào)查表請(qǐng)用戶填寫(xiě) 如果調(diào)查表設(shè)計(jì)合理,則很有效,且易于為用戶接受 查閱記錄 查閱與原系統(tǒng)有關(guān)的數(shù)據(jù)記錄,三、進(jìn)一步分析和表達(dá)用戶需求,分析和表達(dá)用戶的需求的常用方法 自頂向下的結(jié)構(gòu)化分析方法(Structured Analysis,簡(jiǎn)稱(chēng)SA方法) SA方法從最上層的系統(tǒng)組織機(jī)構(gòu)入手,采用逐層分解的方式分析系統(tǒng),并用數(shù)據(jù)流圖和數(shù)據(jù)字典描述系統(tǒng)。,進(jìn)一步分析和表達(dá)用戶需求(續(xù)),1首先把任何一個(gè)系統(tǒng)都抽象為:,進(jìn)一步分析和表達(dá)用戶需求(續(xù)),2分解處理功能和數(shù)據(jù) (1)分解處理功能 將處理功能的具體內(nèi)容分解為若干子功能,再將每個(gè)子功能繼續(xù)分解,直到把系統(tǒng)的工作過(guò)程表達(dá)清楚為止。 (2)分解數(shù)據(jù) 在處理功能逐步分解的同時(shí),其所用的數(shù)據(jù)也逐級(jí)分解,形成若干層次的數(shù)據(jù)流圖 數(shù)據(jù)流圖表達(dá)了數(shù)據(jù)和處理過(guò)程的關(guān)系,進(jìn)一步分析和表達(dá)用戶需求(續(xù)),(3)表達(dá)方法 處理過(guò)程:用判定表或判定樹(shù)來(lái)描述 數(shù)據(jù):用數(shù)據(jù)字典來(lái)描述,進(jìn)一步分析和表達(dá)用戶需求(續(xù)),3將分析結(jié)果再次提交給用戶,征得用戶的認(rèn)可,四、需求分析小結(jié),P187圖6-4,需求分析小結(jié)(續(xù)),實(shí)例:假設(shè)我們要開(kāi)發(fā)一個(gè)學(xué)校管理系統(tǒng)。 1經(jīng)過(guò)可行性分析和初步需求調(diào)查,抽象出該系統(tǒng)最高層數(shù)據(jù)流圖,該系統(tǒng)由教師管理子系統(tǒng)、學(xué)生管理子系統(tǒng)、后勤管理子系統(tǒng)組成,每個(gè)子系統(tǒng)分別配備一個(gè)開(kāi)發(fā)小組。 2進(jìn)一步細(xì)化各個(gè)子系統(tǒng)。 其中學(xué)生管理子系統(tǒng)開(kāi)發(fā)小組通過(guò)進(jìn)行進(jìn)一步的需求調(diào)查,明確了該子系統(tǒng)的主要功能是進(jìn)行學(xué)籍管理和課程管理,包括學(xué)生報(bào)到、入學(xué)、畢業(yè)的管理,學(xué)生上課情況的管理。通過(guò)詳細(xì)的信息流程分析和數(shù)據(jù)收集后,他們生成了該子系統(tǒng)的數(shù)據(jù)流圖。,6.2 需求分析,6.2.1 需求分析的任務(wù) 6.2.2 需求分析的方法 6.2.3 數(shù)據(jù)字典,6.2.3 數(shù)據(jù)字典,一、數(shù)據(jù)字典的用途 二、數(shù)據(jù)字典的內(nèi)容,一、數(shù)據(jù)字典的用途,數(shù)據(jù)字典是各類(lèi)數(shù)據(jù)描述的集合 數(shù)據(jù)字典是進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果 數(shù)據(jù)字典在數(shù)據(jù)庫(kù)設(shè)計(jì)中占有很重要的地位,二、數(shù)據(jù)字典的內(nèi)容,數(shù)據(jù)字典的內(nèi)容 數(shù)據(jù)項(xiàng) 數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)流 數(shù)據(jù)存儲(chǔ) 處理過(guò)程 數(shù)據(jù)項(xiàng)是數(shù)據(jù)的最小組成單位 若干個(gè)數(shù)據(jù)項(xiàng)可以組成一個(gè)數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)字典通過(guò)對(duì)數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)的定義來(lái)描述數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)的邏輯內(nèi)容。, 數(shù)據(jù)項(xiàng),數(shù)據(jù)項(xiàng)是不可再分的數(shù)據(jù)單位 對(duì)數(shù)據(jù)項(xiàng)的描述 數(shù)據(jù)項(xiàng)描述數(shù)據(jù)項(xiàng)名,數(shù)據(jù)項(xiàng)含義說(shuō)明, 別名,數(shù)據(jù)類(lèi)型,長(zhǎng)度,取值范圍, 取值含義,與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系 取值范圍、與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系定義了數(shù)據(jù)的完整性約束條件, 數(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)混合組成。 對(duì)數(shù)據(jù)結(jié)構(gòu)的描述 數(shù)據(jù)結(jié)構(gòu)描述數(shù)據(jù)結(jié)構(gòu)名,含義說(shuō)明, 組成:數(shù)據(jù)項(xiàng)或數(shù)據(jù)結(jié)構(gòu), 數(shù)據(jù)流,數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)穆窂健?對(duì)數(shù)據(jù)流的描述 數(shù)據(jù)流描述數(shù)據(jù)流名,說(shuō)明,數(shù)據(jù)流來(lái)源, 數(shù)據(jù)流去向,組成:數(shù)據(jù)結(jié)構(gòu), 平均流量,高峰期流量 數(shù)據(jù)流來(lái)源是說(shuō)明該數(shù)據(jù)流來(lái)自哪個(gè)過(guò)程 數(shù)據(jù)流去向是說(shuō)明該數(shù)據(jù)流將到哪個(gè)過(guò)程去 平均流量是指在單位時(shí)間(每天、每周、每月等)里的傳輸次數(shù) 高峰期流量則是指在高峰時(shí)期的數(shù)據(jù)流量, 數(shù)據(jù)存儲(chǔ),數(shù)據(jù)存儲(chǔ)是數(shù)據(jù)結(jié)構(gòu)停留或保存的地方,也是數(shù)據(jù)流的來(lái)源和去向之一。 對(duì)數(shù)據(jù)存儲(chǔ)的描述 數(shù)據(jù)存儲(chǔ)描述數(shù)據(jù)存儲(chǔ)名,說(shuō)明,編號(hào), 流入的數(shù)據(jù)流 ,流出的數(shù)據(jù)流 , 組成:數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)量,存取方式 流入的數(shù)據(jù)流:指出數(shù)據(jù)來(lái)源 流出的數(shù)據(jù)流:指出數(shù)據(jù)去向 數(shù)據(jù)量:每次存取多少數(shù)據(jù),每天(或每小時(shí)、每周等)存取幾次等信息 存取方法:批處理 / 聯(lián)機(jī)處理;檢索 / 更新;順序檢索 / 隨機(jī)檢索, 處理過(guò)程,處理過(guò)程的具體處理邏輯一般用判定表或判定樹(shù)來(lái)描述。數(shù)據(jù)字典中只需要描述處理過(guò)程的說(shuō)明性信息 處理過(guò)程說(shuō)明性信息的描述 處理過(guò)程描述處理過(guò)程名,說(shuō)明, 輸入:數(shù)據(jù)流,輸出:數(shù)據(jù)流, 處理:簡(jiǎn)要說(shuō)明,處理過(guò)程(續(xù)),簡(jiǎn)要說(shuō)明:主要說(shuō)明該處理過(guò)程的功能及處理要求 功能:該處理過(guò)程用來(lái)做什么 處理要求:處理頻度要求(如單位時(shí)間里處理多少事務(wù),多少數(shù)據(jù)量);響應(yīng)時(shí)間要求等 處理要求是后面物理設(shè)計(jì)的輸入及性能評(píng)價(jià)的標(biāo)準(zhǔn),處理過(guò)程(續(xù)),例:學(xué)生學(xué)籍管理子系統(tǒng)的數(shù)據(jù)字典。 數(shù)據(jù)項(xiàng),以“學(xué)號(hào)”為例: 數(shù)據(jù)項(xiàng): 學(xué)號(hào) 含義說(shuō)明:唯一標(biāo)識(shí)每個(gè)學(xué)生 別名: 學(xué)生編號(hào) 類(lèi)型: 字符型 長(zhǎng)度: 8 取值范圍:00000000至99999999 取值含義:前兩位標(biāo)別該學(xué)生所在年級(jí), 后六位按順序編號(hào) 與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系:,處理過(guò)程(續(xù)),數(shù)據(jù)結(jié)構(gòu) 以“學(xué)生”為例 “學(xué)生”是該系統(tǒng)中的一個(gè)核心數(shù)據(jù)結(jié)構(gòu): 數(shù)據(jù)結(jié)構(gòu): 學(xué)生 含義說(shuō)明: 是學(xué)籍管理子系統(tǒng)的主體數(shù)據(jù)結(jié) 構(gòu),定義了一個(gè)學(xué)生的有關(guān)信息 組成: 學(xué)號(hào),姓名,性別,年齡, 所在系,年級(jí),處理過(guò)程(續(xù)),數(shù)據(jù)流“體檢結(jié)果”可如下描述: 數(shù)據(jù)流: 體檢結(jié)果 說(shuō)明: 學(xué)生參加體格檢查的最終結(jié)果 數(shù)據(jù)流來(lái)源:體檢 數(shù)據(jù)流去向:批準(zhǔn) 組成: 平均流量: 高峰期流量:,處理過(guò)程(續(xù)),數(shù)據(jù)存儲(chǔ)“學(xué)生登記表”可如下描述: 數(shù)據(jù)存儲(chǔ): 學(xué)生登記表 說(shuō)明: 記錄學(xué)生的基本情況 流入數(shù)據(jù)流: 流出數(shù)據(jù)流: 組成: 數(shù)據(jù)量: 每年3000張 存取方式: 隨機(jī)存取,處理過(guò)程(續(xù)),處理過(guò)程“分配宿舍”可如下描述: 處理過(guò)程:分配宿舍 說(shuō)明: 為所有新生分配學(xué)生宿舍 輸入: 學(xué)生,宿舍, 輸出: 宿舍安排 處理: 在新生報(bào)到后,為所有新生分配學(xué) 生宿舍。要求同一間宿舍只能安排 同一性別的學(xué)生,同一個(gè)學(xué)生只能 安排在一個(gè)宿舍中。每個(gè)學(xué)生的居 住面積不小于3平方米。安排新生 宿舍其處理時(shí)間應(yīng)不超過(guò)15分鐘。,第6章 數(shù)據(jù)庫(kù)設(shè)計(jì),6.1 數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟 6.2 需求分析 6.3 概念結(jié)構(gòu)設(shè)計(jì) 6.4 邏輯結(jié)構(gòu)設(shè)計(jì) 6.5 數(shù)據(jù)庫(kù)的物理設(shè)計(jì) 6.6 數(shù)據(jù)庫(kù)實(shí)施 6.7 數(shù)據(jù)庫(kù)運(yùn)行與維護(hù),6.3 概念結(jié)構(gòu)設(shè)計(jì),什么是概念結(jié)構(gòu)設(shè)計(jì) 需求分析階段描述的用戶應(yīng)用需求是現(xiàn)實(shí)世界的具體需求 將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)即概念模型的過(guò)程就是概念結(jié)構(gòu)設(shè)計(jì) 概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),它比數(shù)據(jù)模型更獨(dú)立于機(jī)器、更抽象,從而更加穩(wěn)定。 概念結(jié)構(gòu)設(shè)計(jì)是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵,概念結(jié)構(gòu)設(shè)計(jì)(續(xù)),概念結(jié)構(gòu)設(shè)計(jì)(續(xù)),概念結(jié)構(gòu)設(shè)計(jì)的特點(diǎn) (1)能真實(shí)、充分地反映現(xiàn)實(shí)世界,包括事物和事物之間的聯(lián)系,能滿足用戶對(duì)數(shù)據(jù)的處理要求。是對(duì)現(xiàn)實(shí)世界的一個(gè)真實(shí)模型。 (2)易于理解,從而可以用它和不熟悉計(jì)算機(jī)的用戶交換意見(jiàn),用戶的積極參與是數(shù)據(jù)庫(kù)的設(shè)計(jì)成功的關(guān)鍵。,概念結(jié)構(gòu)設(shè)計(jì)(續(xù)),概念結(jié)構(gòu)設(shè)計(jì)的特點(diǎn)(續(xù)) (3)易于更改,當(dāng)應(yīng)用環(huán)境和應(yīng)用要求改變時(shí),容易對(duì)概念模型修改和擴(kuò)充。 (4)易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。,概念結(jié)構(gòu)設(shè)計(jì)(續(xù)),描述概念模型的工具 E-R模型,6.3 概念結(jié)構(gòu)設(shè)計(jì),6.3.1 概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟 6.3.2 數(shù)據(jù)抽象與局部視圖設(shè)計(jì) 6.3.3 視圖的集成,6.3 概念結(jié)構(gòu)設(shè)計(jì),6.3.1 概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟 6.3.2 數(shù)據(jù)抽象與局部視圖設(shè)計(jì) 6.3.3 視圖的集成,6.3.1 概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟,設(shè)計(jì)概念結(jié)構(gòu)的四類(lèi)方法 自頂向下 首先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化,概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟(續(xù)),自頂向下策略,概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟(續(xù)),設(shè)計(jì)概念結(jié)構(gòu)的四類(lèi)方法(續(xù)) 自底向上 首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來(lái),得到全局概念結(jié)構(gòu),概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟(續(xù)),自底向上策略,概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟(續(xù)),逐步擴(kuò)張 首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu) 混合策略 將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計(jì)一個(gè)全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計(jì)的各局部概念結(jié)構(gòu)。,概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟(續(xù)),逐步擴(kuò)張,概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟(續(xù)),常用策略 自頂向下地進(jìn)行需求分析 自底向上地設(shè)計(jì)概念結(jié)構(gòu),概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟(續(xù)),自底向上設(shè)計(jì)概念結(jié)構(gòu)的步驟 第1步:抽象數(shù)據(jù)并設(shè)計(jì)局部視圖 第2步:集成局部視圖,得到全局概念結(jié)構(gòu),6.3 概念結(jié)構(gòu)設(shè)計(jì),6.3.1 概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟 6.3.2 數(shù)據(jù)抽象與局部視圖設(shè)計(jì) 6.3.3 視圖的集成,6.3.2 數(shù)據(jù)抽象與局部視圖設(shè)計(jì),數(shù)據(jù)抽象 局部視圖設(shè)計(jì),一、數(shù)據(jù)抽象,概念結(jié)構(gòu)是對(duì)現(xiàn)實(shí)世界的一種抽象 從實(shí)際的人、物、事和概念中抽取所關(guān)心的共同特性,忽略非本質(zhì)的細(xì)節(jié) 把這些特性用各種概念精確地加以描述 這些概念組成了某種模型,數(shù)據(jù)抽象(續(xù)),三種常用抽象 1. 分類(lèi)(Classification) 定義某一類(lèi)概念作為現(xiàn)實(shí)世界中一組對(duì)象的類(lèi)型 這些對(duì)象具有某些共同的特性和行為 它抽象了對(duì)象值和型之間的“is member of”的語(yǔ)義 在E-R模型中,實(shí)體型就是這種抽象,例:,數(shù)據(jù)抽象(續(xù)),2. 聚集(Aggregation) 定義某一類(lèi)型的組成成分 它抽象了對(duì)象內(nèi)部類(lèi)型和成分之間“is part of”的語(yǔ)義 在E-R模型中若干屬性的聚集組成了實(shí)體型,就是這種抽象,例:,數(shù)據(jù)抽象(續(xù)),3. 概括(Generalization) 定義類(lèi)型之間的一種子集聯(lián)系 它抽象了類(lèi)型之間的“is subset of”的語(yǔ)義 概括有一個(gè)很重要的性質(zhì):繼承性。子類(lèi)繼承超類(lèi)上定義的所有抽象。,例:,數(shù)據(jù)抽象(續(xù)),注:原E-R模型不具有概括,本書(shū)對(duì)E-R模型作了擴(kuò)充,允許定義超類(lèi)實(shí)體型和子類(lèi)實(shí)體型。 用雙豎邊的矩形框表示子類(lèi), 用直線加小圓圈表示超類(lèi)-子類(lèi)的聯(lián)系,數(shù)據(jù)抽象(續(xù)),數(shù)據(jù)抽象的用途 對(duì)需求分析階段收集到的數(shù)據(jù)進(jìn)行分類(lèi)、組織(聚集),形成 實(shí)體 實(shí)體的屬性,標(biāo)識(shí)實(shí)體的碼 確定實(shí)體之間的聯(lián)系類(lèi)型(1:1,1:n,m:n),二、局部視圖設(shè)計(jì),設(shè)計(jì)分E-R圖的步驟: 選擇局部應(yīng)用 逐一設(shè)計(jì)分E-R圖, 選擇局部應(yīng)用,需求分析階段,已用多層數(shù)據(jù)流圖和數(shù)據(jù)字典描述了整個(gè)系統(tǒng)。 設(shè)計(jì)分E-R圖首先需要根據(jù)系統(tǒng)的具體情況,在多層的數(shù)據(jù)流圖中選擇一個(gè)適當(dāng)層次的數(shù)據(jù)流圖,讓這組圖中每一部分對(duì)應(yīng)一個(gè)局部應(yīng)用,然后以這一層次的數(shù)據(jù)流圖為出發(fā)點(diǎn),設(shè)計(jì)分E-R圖。,選擇局部應(yīng)用(續(xù)),通常以中層數(shù)據(jù)流圖作為設(shè)計(jì)分E-R圖的依據(jù)。原因: 高層數(shù)據(jù)流圖只能反映系統(tǒng)的概貌 中層數(shù)據(jù)流圖能較好地反映系統(tǒng)中各局部應(yīng)用的子系統(tǒng)組成 低層數(shù)據(jù)流圖過(guò)細(xì),選擇局部應(yīng)用(續(xù)),例:由于學(xué)籍管理、課程管理等都不太復(fù)雜,因此可以它們?nèi)胧衷O(shè)計(jì)學(xué)生管理子系統(tǒng)的分E-R圖。如果局部應(yīng)用比較復(fù)雜,則可以從更下層的數(shù)據(jù)流圖入手。, 逐一設(shè)計(jì)分E-R圖,任務(wù) 標(biāo)定局部應(yīng)用中的實(shí)體、屬性、碼,實(shí)體間的聯(lián)系 將各局部應(yīng)用涉及的數(shù)據(jù)分別從數(shù)據(jù)字典中抽取出來(lái),參照數(shù)據(jù)流圖,標(biāo)定各局部應(yīng)用中的實(shí)體、實(shí)體的屬性、標(biāo)識(shí)實(shí)體的碼,確定實(shí)體之間的聯(lián)系及其類(lèi)型(1:1,1:n,m:n),逐一設(shè)計(jì)分E-R圖(續(xù)),如何抽象實(shí)體和屬性 實(shí)體:現(xiàn)實(shí)世界中一組具有某些共同特性和行為的對(duì)象就可以抽象為一個(gè)實(shí)體。對(duì)象和實(shí)體之間是“is member of“的關(guān)系。 例:在學(xué)校環(huán)境中,可把張三、李四等對(duì)象抽象為學(xué)生實(shí)體。,逐一設(shè)計(jì)分E-R圖(續(xù)),屬性:對(duì)象類(lèi)型的組成成分可以抽象為實(shí)體的屬性。組成成分與對(duì)象類(lèi)型之間是“is part of“的關(guān)系。 例:學(xué)號(hào)、姓名、專(zhuān)業(yè)、年級(jí)等可以抽象為學(xué)生實(shí)體的屬性。其中學(xué)號(hào)為標(biāo)識(shí)學(xué)生實(shí)體的碼。,逐一設(shè)計(jì)分E-R圖(續(xù)),如何區(qū)分實(shí)體和屬性 實(shí)體與屬性是相對(duì)而言的。同一事物,在一種應(yīng)用環(huán)境中作為“屬性”,在另一種應(yīng)用環(huán)境中就必須作為“實(shí)體”。 例:學(xué)校中的系,在某種應(yīng)用環(huán)境中,它只是作為“學(xué)生”實(shí)體的一個(gè)屬性,表明一個(gè)學(xué)生屬于哪個(gè)系;而在另一種環(huán)境中,由于需要考慮一個(gè)系的系主任、教師人數(shù)、學(xué)生人數(shù)、辦公地點(diǎn)等,這時(shí)它就需要作為實(shí)體了。,逐一設(shè)計(jì)分E-R圖(續(xù)),一般原則 屬性不能再具有需要描述的性質(zhì)。即屬性必須是不可分的數(shù)據(jù)項(xiàng),不能再由另一些屬性組成。 屬性不能與其他實(shí)體具有聯(lián)系。聯(lián)系只發(fā)生在實(shí)體之間。 符合上述兩條特性的事物一般作為屬性對(duì)待。 為了簡(jiǎn)化E-R圖的處置,現(xiàn)實(shí)世界中的事物凡能夠作為屬性對(duì)待的,應(yīng)盡量作為屬性。,逐一設(shè)計(jì)分E-R圖(續(xù)),舉例 例1:“學(xué)生”由學(xué)號(hào)、姓名等屬性進(jìn)一步描述,根據(jù)準(zhǔn)則,“學(xué)生”只能作為實(shí)體,不能作為屬性。 例2:職稱(chēng)通常作為教師實(shí)體的屬性,但在涉及住房分配時(shí),由于分房與職稱(chēng)有關(guān),也就是說(shuō)職稱(chēng)與住房實(shí)體之間有聯(lián)系,根據(jù)準(zhǔn)則,這時(shí)把職稱(chēng)作為實(shí)體來(lái)處理會(huì)更合適些。,逐一設(shè)計(jì)分E-R圖(續(xù)),設(shè)計(jì)分E-R圖的步驟 (1)以數(shù)據(jù)字典為出發(fā)點(diǎn)定義E-R圖。 數(shù)據(jù)字典中的“數(shù)據(jù)結(jié)構(gòu)”、“數(shù)據(jù)流”和“數(shù)據(jù)存儲(chǔ)”等已是若干屬性的有意義的聚合 (2)按上面給出的準(zhǔn)則進(jìn)行必要的調(diào)整。,逐一設(shè)計(jì)分E-R圖(續(xù)),例:學(xué)籍管理局部應(yīng)用中主要涉及的實(shí)體包括學(xué)生、宿舍、檔案材料、班級(jí)、班主任。 實(shí)體之間的聯(lián)系: 由于一個(gè)宿舍可以住多個(gè)學(xué)生,而一個(gè)學(xué)生只能住在某一個(gè)宿舍中,因此宿舍與學(xué)生之間是1:n的聯(lián)系。 由于一個(gè)班級(jí)往往有若干名學(xué)生,而一個(gè)學(xué)生只能屬于一個(gè)班級(jí),因此班級(jí)與學(xué)生之間也是1:n的聯(lián)系。,逐一設(shè)計(jì)分E-R圖(續(xù)),由于班主任同時(shí)還要教課,因此班主任與學(xué)生之間存在指導(dǎo)聯(lián)系,一個(gè)班主任要教多名學(xué)生,而一個(gè)學(xué)生只對(duì)應(yīng)一個(gè)班主任,因此班主任與學(xué)生之間也是1:n的聯(lián)系。 而學(xué)生和他自己的檔案材料之間,班級(jí)與班主任之間都是1:1的聯(lián)系。 學(xué)籍管理局部應(yīng)用的分E-R圖草圖:,逐一設(shè)計(jì)分E-R圖(續(xù)),接下來(lái)需要進(jìn)一步斟酌該E-R圖,做適當(dāng)調(diào)整。 (1) 在一般情況下,性別通常作為學(xué)生實(shí)體的屬性,但在本局部應(yīng)用中,由于宿舍分配與學(xué)生性別有關(guān),根據(jù)準(zhǔn)則,應(yīng)該把性別作為實(shí)體對(duì)待。 (2) 數(shù)據(jù)存儲(chǔ)“學(xué)生登記表”,由于是手工填寫(xiě),供存檔使用,其中有用的部分已轉(zhuǎn)入學(xué)生檔案材料中,因此這里就不必作為實(shí)體了。 最后得到學(xué)籍管理局部應(yīng)用的分E-R圖:,逐一設(shè)計(jì)分E-R圖(續(xù)),學(xué)籍管理E-R圖中省略了各個(gè)實(shí)體的屬性描述: 學(xué)生:學(xué)號(hào),姓名,出生日期 性別:性別 檔案材料:檔案號(hào), 班級(jí):班級(jí)號(hào),學(xué)生人數(shù) 班主任:職工號(hào),姓名,性別, 是否為優(yōu)秀班主任 宿舍:宿舍編號(hào),地址,人數(shù) 其中有下劃線的屬性為實(shí)體的碼。,逐一設(shè)計(jì)分E-R圖(續(xù)),同樣方法可以得到課程管理局部應(yīng)用的分E-R圖 各實(shí)體的屬性分別為: 學(xué)生:姓名,學(xué)號(hào),性別,年齡,所在系, 年級(jí),平均成績(jī) 課程:課程號(hào),課程名,學(xué)分 教師:職工號(hào),姓名,性別,職稱(chēng) 教科書(shū):書(shū)號(hào),書(shū)名,價(jià)錢(qián) 教室:教室編號(hào),地址,容量,6.3 概念結(jié)構(gòu)設(shè)計(jì),6.3.1 概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟 6.3.2 數(shù)據(jù)抽象與局部視圖設(shè)計(jì) 6.3.3 視圖的集成,6.3.4 視圖的集成,各個(gè)局部視圖即分E-R圖建立好后,還需要對(duì)它們進(jìn)行合并,集成為一個(gè)整體的數(shù)據(jù)概念結(jié)構(gòu)即總E-R圖。,視圖的集成(續(xù)),視圖集成的兩種方式 一次集成(圖6.25(a)) 一次集成多個(gè)分E-R圖 通常用于局部視圖比較簡(jiǎn)單時(shí) 逐步累積式(圖6.25(b)) 首先集成兩個(gè)局部視圖(通常是比較關(guān)鍵的兩個(gè)局部視圖) 以后每次將一個(gè)新的局部視圖集成進(jìn)來(lái),視圖的集成(續(xù)),集成局部E-R圖的步驟 1. 合并 2. 修改與重構(gòu),視圖的集成(續(xù)),一、合并分E-R圖,生成初步E-R圖,各分圖存在沖突 各個(gè)局部應(yīng)用所面向的問(wèn)題不同 由不同的設(shè)計(jì)人員進(jìn)行設(shè)計(jì) 各個(gè)分E-R圖之間必定會(huì)存在許多不一致的地方 合并分E-R圖的主要工作與關(guān)鍵所在:合理消除各分E-R圖的沖突,合并分E-R圖,生成初步E-R圖(續(xù)),沖突的種類(lèi) 屬性沖突 命名沖突 結(jié)構(gòu)沖突, 屬性沖突,兩類(lèi)屬性沖突 屬性域沖突:屬性值的類(lèi)型、取值范圍或取值集合不同。 例1, 由于學(xué)號(hào)是數(shù)字,因此某些部門(mén)(即局部應(yīng)用)將學(xué)號(hào)定義為整數(shù)形式,而由于學(xué)號(hào)不用參與運(yùn)算,因此另一些部門(mén)(即局部應(yīng)用)將學(xué)號(hào)定義為字符型形式。 例2, 某些部門(mén)(即局部應(yīng)用)以出生日期形式表示學(xué)生的年齡,而另一些部門(mén)(即局部應(yīng)用)用整數(shù)形式表示學(xué)生的年齡。,屬性沖突(續(xù)),屬性取值單位沖突。 例:學(xué)生的身高,有的以米為單位,有的以厘米為單位,有的以尺為單位。,屬性沖突(續(xù)),屬性沖突的解決方法 通常用討論、協(xié)商等行政手段加以解決, 命名沖突,兩類(lèi)命名沖突 同名異義:不同意義的對(duì)象在不同的局部應(yīng)用中具有相同的名字 例,局部應(yīng)用A中將教室稱(chēng)為房間 局部應(yīng)用B中將學(xué)生宿舍稱(chēng)為房間 異名同義(一義多名):同一意義的對(duì)象在不同的局部應(yīng)用中具有不同的名字 例,有的部門(mén)把教科書(shū)稱(chēng)為課本 有的部門(mén)則把教科書(shū)稱(chēng)為教材,命名沖突(續(xù)),命名沖突可能發(fā)生在屬性級(jí)、實(shí)體級(jí)、聯(lián)系級(jí)上。其中屬性的命名沖突更為常見(jiàn)。 命名沖突的解決方法 通過(guò)討論、協(xié)商等行政手段加以解決, 結(jié)構(gòu)沖突,三類(lèi)結(jié)構(gòu)沖突 同一對(duì)象在不同應(yīng)用中具有不同的抽象 例,“課程”在某一局部應(yīng)用中被當(dāng)作實(shí)體 在另一局部應(yīng)用中則被當(dāng)作屬性 解決方法:通常是把屬性變換為實(shí)體或把實(shí)體變換為屬性,使同一對(duì)象具有相同的抽象。變換時(shí)要遵循兩個(gè)準(zhǔn)則。,結(jié)構(gòu)沖突(續(xù)),同一實(shí)體在不同局部視圖中所包含的屬性不完全相同,或者屬性的排列次序不完全相同。 產(chǎn)生原因:不同的局部應(yīng)用關(guān)心的是該實(shí)體的不同側(cè)面。 解決方法:使該實(shí)體的屬性取各分E-R圖中屬性的并集,再適當(dāng)設(shè)計(jì)屬性的次序。,結(jié)構(gòu)沖突(續(xù)),學(xué)生,學(xué)號(hào),姓名,性別,平均成績(jī),(a)在局部應(yīng)用A中,結(jié)構(gòu)沖突(續(xù)),學(xué)生,學(xué)號(hào),姓名,出生日期,年級(jí),(b)在局部應(yīng)用B中,所在系,結(jié)構(gòu)沖突(續(xù)),學(xué)生,學(xué)號(hào),姓名,政治面貌,(c)在局部應(yīng)用C中,結(jié)構(gòu)沖突(續(xù)),學(xué)生,政治 面貌,學(xué)號(hào),出生 日期,年級(jí),(d)合并后,所在系,平均 成績(jī),姓名,性別,結(jié)構(gòu)沖突(續(xù)),實(shí)體之間的聯(lián)系在不同局部視圖中呈現(xiàn)不同的類(lèi)型 例1, 實(shí)體E1與E2在局部應(yīng)用A中是多對(duì)多聯(lián)系,而在局部應(yīng)用B中是一對(duì)多聯(lián)系 例2, 在局部應(yīng)用X中E1與E2發(fā)生聯(lián)系,而在局部應(yīng)用Y中E1、E2、E3三者之間有聯(lián)系。 解決方法:根據(jù)應(yīng)用語(yǔ)義對(duì)實(shí)體聯(lián)系的類(lèi)型進(jìn)行綜合或調(diào)整。,合并分E-R圖,生成初步E-R圖實(shí)例,例:生成學(xué)校管理系統(tǒng)的初步E-R圖 以合并學(xué)籍管理局部視圖, 課程管理局部視圖為例 這兩個(gè)分E-R圖存在著多方面的沖突:,合并分E-R圖,生成初步E-R圖實(shí)例,(1) 班主任實(shí)際上也屬于教師,也就是說(shuō)學(xué)籍管理中的班主任實(shí)體與課程管理中的教師實(shí)體在一定程度上屬于異名同義,可以應(yīng)將學(xué)籍管理中的班主任實(shí)體與課程管理中的教師實(shí)體統(tǒng)一稱(chēng)為教師,統(tǒng)一后教師實(shí)體的屬性構(gòu)成為: 教師:職工號(hào),姓名,性別,職稱(chēng), 是否為優(yōu)秀班主任,合并分E-R圖,生成初步E-R圖實(shí)例(續(xù)),(2) 將班主任改為教師后,教師與學(xué)生之間的聯(lián)系在兩個(gè)局部視圖中呈現(xiàn)兩種不同的類(lèi)型,一種是學(xué)籍管理中教師與學(xué)生之間的指導(dǎo)聯(lián)系,一種是課程管理中教師與學(xué)生之間的教學(xué)聯(lián)系,由于指導(dǎo)聯(lián)系實(shí)際上可以包含在教學(xué)聯(lián)系之中,因此可以將這兩種聯(lián)系綜合為教學(xué)聯(lián)系。,合并分E-R圖,生成初步E-R圖實(shí)例(續(xù)),(3) 性別在兩個(gè)局部應(yīng)用中具有不同的抽象,它在學(xué)籍管理中為實(shí)體,在課程管理中為屬性,按照前面提到的兩個(gè)原則,在合并后的E-R圖中性別只能作為實(shí)體,否則它無(wú)法與宿舍實(shí)體發(fā)生聯(lián)系。,合并分E-R圖,生成初步E-R圖實(shí)例(續(xù)),(4) 在兩個(gè)局部E-R圖中,學(xué)生實(shí)體屬性組成及次序都存在差異,應(yīng)將所有屬性綜合,并重新調(diào)整次序。假設(shè)調(diào)整結(jié)果為: 學(xué)生:學(xué)號(hào),姓名,出生日期,年齡,所在系,年級(jí),平均成績(jī) 解決上述沖突后,學(xué)籍管理分E-R圖與課程管理分E-R圖合并為學(xué)生管理子系統(tǒng)的初步E-R圖,二、修改與重構(gòu),基本任務(wù) 消除不必要的冗余,設(shè)計(jì)生成基本E-R圖,修改與重構(gòu)(續(xù)),1冗余 2消除冗余的方法,1冗余,冗余的數(shù)據(jù)是指可由基本數(shù)據(jù)導(dǎo)出的數(shù)據(jù), 冗余的聯(lián)系是指可由其他聯(lián)系導(dǎo)出的聯(lián)系。 冗余數(shù)據(jù)和冗余聯(lián)系容易破壞數(shù)據(jù)庫(kù)的完整性,給數(shù)據(jù)庫(kù)維護(hù)增加困難 并不是所有的冗余數(shù)據(jù)與冗余聯(lián)系都必須加以消除,有時(shí)為了提高某些應(yīng)用的效率,不得不以冗余信息作為代價(jià)。,冗余(續(xù)),設(shè)計(jì)數(shù)據(jù)庫(kù)概念結(jié)構(gòu)時(shí),哪些冗余信息必須消除,哪些冗余信息允許存在,需要根據(jù)用戶的整體需求來(lái)確定。 消除不必要的冗余后的初步E-R圖稱(chēng)為基本E-R圖。,2消除冗余的方法,分析方法 以數(shù)據(jù)字典和數(shù)據(jù)流圖為依據(jù),根據(jù)數(shù)據(jù)字典中關(guān)于數(shù)據(jù)項(xiàng)之間邏輯關(guān)系的說(shuō)明來(lái)消除冗余。,消除冗余的方法(續(xù)),例,教師工資單中包括該教師的基本工資、各種補(bǔ)貼、應(yīng)扣除的房租水電費(fèi)以及實(shí)發(fā)工資。 由于實(shí)發(fā)工資可以由前面各項(xiàng)推算出來(lái),因此可以去掉,在需要查詢實(shí)發(fā)工資時(shí)根據(jù)基本工資、各種補(bǔ)貼、應(yīng)扣除的房租水電費(fèi)數(shù)據(jù)臨時(shí)生成。,消除冗余的方法(續(xù)),如果是為了提高效率,人為地保留了一些冗余數(shù)據(jù),則應(yīng)把數(shù)據(jù)字典中數(shù)據(jù)關(guān)聯(lián)的說(shuō)明作為完整性約束條件。 一種更好的方法是把冗余數(shù)據(jù)定義在視圖中,消除冗余的方法(續(xù)),規(guī)范化理論 函數(shù)依賴的概念提供了消除冗余聯(lián)系的形式化工具,消除冗余的方法(續(xù)),方法 1. 確定分E-R圖實(shí)體之間的數(shù)據(jù)依賴FL 。實(shí)體之間一對(duì)一、一對(duì)多、多對(duì)多的聯(lián)系可以用實(shí)體碼之間的函數(shù)依賴來(lái)表示。 例: 班級(jí)和學(xué)生之間一對(duì)多的聯(lián)系: 學(xué)號(hào)班級(jí)號(hào) 學(xué)生和課程之間多對(duì)多的聯(lián)系: (學(xué)號(hào),課程號(hào)) 成績(jī),消除冗余的方法(續(xù)),2. 求FL的最小覆蓋GL ,差集為 D = FL-GL。 逐一考察D中的函數(shù)依賴,確定是否是冗余的聯(lián)系,若是,就把它去掉。,消除冗余的方法(續(xù)),由于規(guī)范化理論受到泛關(guān)系假設(shè)的限制,應(yīng)注意下面兩個(gè)問(wèn)題: 1.冗余的聯(lián)系一定在D中,而D中的聯(lián)系不一定是冗余的; 2.當(dāng)實(shí)體之間存在多種聯(lián)系時(shí)要將實(shí)體之間的聯(lián)系在形式上加以區(qū)分。 例P229圖6.30中 部門(mén)和職工之間兩種聯(lián)系表示為: 負(fù)責(zé)人.職工號(hào)部門(mén)號(hào) 部門(mén)號(hào)負(fù)責(zé)人.職工號(hào),泛關(guān)系假設(shè),假設(shè)存在著一個(gè)單一的關(guān)系模式 “假設(shè)已知一個(gè)模式S,它僅由單個(gè)關(guān)系模式組成,問(wèn)題是要設(shè)計(jì)一個(gè)模式SD,它與S等價(jià),但在某些方面更好一些” 從一個(gè)關(guān)系模式出發(fā),而不是從一組關(guān)系模式出發(fā)實(shí)行分解 “等價(jià)”的定義也是一組關(guān)系模式與一個(gè)關(guān)系模式的“等價(jià)”,泛關(guān)系假設(shè)(續(xù)),泛關(guān)系假設(shè)是運(yùn)用規(guī)范化理論時(shí)的障礙 承認(rèn)了泛關(guān)系假設(shè),就等于承認(rèn)了現(xiàn)實(shí)世界各實(shí)體間只能有一種聯(lián)系,消除冗余,設(shè)計(jì)生成基本E-R圖實(shí)例,教程198圖6-16的初步E-R圖中存在著冗余數(shù)據(jù)和冗余聯(lián)系: (1) 學(xué)生實(shí)體中的年齡屬性可以由出生日期推算出來(lái),屬于冗余數(shù)據(jù),應(yīng)該去掉。這樣不僅可以節(jié)省存儲(chǔ)空間,而且當(dāng)某個(gè)學(xué)生的出生日期有誤,進(jìn)行修改后,無(wú)須相應(yīng)修改年齡,減少了產(chǎn)生數(shù)據(jù)不一致的機(jī)會(huì)。 學(xué)生:學(xué)號(hào),姓名,出生日期,所在系, 年級(jí),平均成績(jī),消除冗余,設(shè)計(jì)生成基本E-R圖實(shí)例(續(xù)),(2) 教室實(shí)體與班級(jí)實(shí)體的上課聯(lián)系可以由教室與課程之間的開(kāi)設(shè)聯(lián)系、課程與學(xué)生之間的選修聯(lián)系、學(xué)生與班級(jí)之間的組成聯(lián)系三者推導(dǎo)出來(lái),因此屬于冗余聯(lián)系,可以消去。,消除冗余,設(shè)計(jì)生成基本E-R圖實(shí)例(續(xù)),(3) 學(xué)生實(shí)體中的平均成績(jī)可以從選修聯(lián)系中的成績(jī)屬性中推算出來(lái) 由于應(yīng)用中需要經(jīng)常查詢某個(gè)學(xué)生的平均成績(jī),每次都進(jìn)行這種計(jì)算效率就會(huì)太低,因此為提高效率,保留該冗余數(shù)據(jù) 但定義一個(gè)觸發(fā)器來(lái)保證學(xué)生的平均成績(jī)等于該學(xué)生各科成績(jī)的平均值。 任何一科成績(jī)修改后,或該學(xué)生學(xué)了新的科目并有成績(jī)后,就觸發(fā)該觸發(fā)器去修改該學(xué)生的平均成績(jī)屬性值。,學(xué)生管理子系統(tǒng)初步E-R圖:,修改重構(gòu)后的基本E-R圖:,消除冗余,設(shè)計(jì)生成基本E-R圖實(shí)例(續(xù)),學(xué)生管理子系統(tǒng)的基本E-R圖與教師管理子系統(tǒng)以及后勤管理子系統(tǒng)的基本E-R圖合并后,生成整個(gè)學(xué)校管理系統(tǒng)的基本E-R圖,三、驗(yàn)證整體概念結(jié)構(gòu),視圖集成后形成一個(gè)整體的數(shù)據(jù)庫(kù)概念結(jié)構(gòu),對(duì)該整體概念結(jié)構(gòu)還必須進(jìn)行進(jìn)一步驗(yàn)證,確保它能夠滿足下列條件: 整體概念結(jié)構(gòu)內(nèi)部必須具有一致性,不存在互相矛盾的表達(dá)。 整體概念結(jié)構(gòu)能準(zhǔn)確地反映原來(lái)的每個(gè)視圖結(jié)構(gòu),包括屬性、實(shí)體及實(shí)體間的聯(lián)系。 整體概念結(jié)構(gòu)能滿足需要分析階段所確定的所有要求。,驗(yàn)證整體概念結(jié)構(gòu)(續(xù)),整體概念結(jié)構(gòu)最終還應(yīng)該提交給用戶,征求用戶和有關(guān)人員的意見(jiàn),進(jìn)行評(píng)審、修改和優(yōu)化,然后把它確定下來(lái),作為數(shù)據(jù)庫(kù)的概念結(jié)構(gòu),作為進(jìn)一步設(shè)計(jì)數(shù)據(jù)庫(kù)的依據(jù)。,數(shù)據(jù)庫(kù)設(shè)計(jì),數(shù)據(jù)庫(kù)的設(shè)計(jì)過(guò)程 需求分析 概念結(jié)構(gòu)設(shè)計(jì) 邏輯結(jié)構(gòu)設(shè)計(jì) 物理數(shù)據(jù)庫(kù)設(shè)計(jì) 實(shí)施 運(yùn)行維護(hù) 設(shè)計(jì)過(guò)程中往往還會(huì)有許多反復(fù)。,概念結(jié)構(gòu)設(shè)計(jì)小結(jié),什么是概念結(jié)構(gòu)設(shè)計(jì),概念結(jié)構(gòu)設(shè)計(jì)小結(jié),概念結(jié)構(gòu)設(shè)計(jì)的步驟 抽象數(shù)據(jù)并設(shè)計(jì)局部視圖 集成局部視圖,得到全局概念結(jié)構(gòu) 驗(yàn)證整體概念結(jié)構(gòu),概念結(jié)構(gòu)設(shè)計(jì)小結(jié),數(shù)據(jù)抽象 分類(lèi) 聚集 概括,概念結(jié)構(gòu)設(shè)計(jì)小結(jié),設(shè)計(jì)局部視圖 選擇局部應(yīng)用 逐一設(shè)計(jì)分E-R圖 標(biāo)定局部應(yīng)用中的實(shí)體、屬性、碼,實(shí)體間的聯(lián)系 用E-R圖描述出來(lái),概念結(jié)構(gòu)設(shè)計(jì)小結(jié),集成局部視圖 1.合并分E-R圖,生成初步E-R圖 消除沖突 屬性沖突 命名沖突 結(jié)構(gòu)沖突 2. 修改與重構(gòu) 消除不必要的冗余,設(shè)計(jì)生成基本E-R圖 分析方法 規(guī)范化理論,第6章 數(shù)據(jù)庫(kù)設(shè)計(jì),6.1 數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟 6.2 需求分析 6.3 概念結(jié)構(gòu)設(shè)計(jì) 6.4 邏輯結(jié)構(gòu)設(shè)計(jì) 6.5 數(shù)據(jù)庫(kù)的物理設(shè)計(jì) 6.6 數(shù)據(jù)庫(kù)實(shí)施 6.7 數(shù)據(jù)庫(kù)運(yùn)行與維護(hù),6.4 邏輯結(jié)構(gòu)設(shè)計(jì),邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù) 概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ) 為了能夠用某一DBMS實(shí)現(xiàn)用戶需求,還必須將概念結(jié)構(gòu)進(jìn)一步轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)模型,這正是數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)所要完成的任務(wù)。,6.4 邏輯結(jié)構(gòu)設(shè)計(jì),邏輯結(jié)構(gòu)設(shè)計(jì)的步驟 將概念結(jié)構(gòu)轉(zhuǎn)化為一般的關(guān)系、網(wǎng)狀、層次模型 將轉(zhuǎn)化來(lái)的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換 對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化,6.4 邏輯結(jié)構(gòu)設(shè)計(jì),6.4.1 E-R圖向數(shù)據(jù)模型的轉(zhuǎn)換 6.4.2 數(shù)據(jù)模型的優(yōu)化 6.4.3 設(shè)計(jì)用戶子模式,6.4 邏輯結(jié)構(gòu)設(shè)計(jì),6.4.1 E-R圖向數(shù)據(jù)模型的轉(zhuǎn)換 6.4.2 數(shù)據(jù)模型的優(yōu)化 6.4.3 設(shè)計(jì)用戶子模式,6.4.1 E-R圖向數(shù)據(jù)模型的轉(zhuǎn)換,只介紹向關(guān)系數(shù)據(jù)模型的轉(zhuǎn)換 轉(zhuǎn)換內(nèi)容 轉(zhuǎn)換原則,E-R圖向數(shù)據(jù)模型的轉(zhuǎn)換(續(xù)),轉(zhuǎn)換內(nèi)容 E-R圖由實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系三個(gè)要素組成 關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合 將E-R圖轉(zhuǎn)換為關(guān)系模型:將實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式。,E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)),轉(zhuǎn)換原則 一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。 關(guān)系的屬性:實(shí)體型的屬性 關(guān)系的碼:實(shí)體型的碼 例,學(xué)生實(shí)體可以轉(zhuǎn)換為如下關(guān)系模式: 學(xué)生(學(xué)號(hào),姓名,出生日期,所在系, 年級(jí),平均成績(jī)) 性別、宿舍、班級(jí)、檔案材料、教師、課程、教室、教科書(shū)都分別轉(zhuǎn)換為一個(gè)關(guān)系模式。,E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)), 一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。 關(guān)系的屬性:與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性 關(guān)系的碼:各實(shí)體碼的組合 例,“選修”聯(lián)系是一個(gè)m:n聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中學(xué)號(hào)與課程號(hào)為關(guān)系的組合碼: 選修(學(xué)號(hào),課程號(hào),成績(jī)),E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)), 一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。 1) 轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式 關(guān)系的屬性:與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性 關(guān)系的碼:n端實(shí)體的碼,E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)), 一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。 2) 與n端對(duì)應(yīng)的關(guān)系模式合并 合并后關(guān)系的屬性:在n端關(guān)系中加入1端關(guān)系的碼和聯(lián)系本身的屬性 合并后關(guān)系的碼:不變 可以減少系統(tǒng)中的關(guān)系個(gè)數(shù),一般情況下更傾向于采用這種方法,E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)),例,“組成”聯(lián)系為1:n聯(lián)系。 將其轉(zhuǎn)換為關(guān)系模式的兩種方法: 1)使其成為一個(gè)獨(dú)立的關(guān)系模式: 組成(學(xué)號(hào),班級(jí)號(hào)) 2)將其學(xué)生關(guān)系模式合并: 學(xué)生(學(xué)號(hào),姓名,出生日期,所在系, 年級(jí),班級(jí)號(hào),平均成績(jī)),E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)), 一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。 1) 轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式 關(guān)系的屬性:與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性 關(guān)系的候選碼:每個(gè)實(shí)體的碼均是該關(guān)系的候選碼,E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)), 一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。 2) 與某一端對(duì)應(yīng)的關(guān)系模式合并 合并后關(guān)系的屬性:加入對(duì)應(yīng)關(guān)系的碼和聯(lián)系本身的屬性 合并后關(guān)系的碼:不變,E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)),例,“管理”聯(lián)系為1:1聯(lián)系,可以有三種轉(zhuǎn)換方法: (1)轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式: 管理(職工號(hào),班級(jí)號(hào)) 或 管理(職工號(hào),班級(jí)號(hào)) (2)“管理”聯(lián)系與班級(jí)關(guān)系模式合并,則只需在班級(jí)關(guān)系中加入教師關(guān)系的碼,即職工號(hào): 班級(jí):(班級(jí)號(hào),學(xué)生人數(shù),職工號(hào)) (3)“管理”聯(lián)系與教師關(guān)系模式合并,則只需在教師關(guān)系中加入班級(jí)關(guān)系的碼,即班級(jí)號(hào): 教師:(職工號(hào),姓名,性別,職稱(chēng),班級(jí)號(hào), 是否為優(yōu)秀班主任),E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)),注意: 從理論上講,1:1聯(lián)系可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。 但在一些情況下,與不同的關(guān)系模式合并效率會(huì)大不一樣。因此究竟應(yīng)該與哪端的關(guān)系模式合并需要依應(yīng)用的具體情況而定。 由于連接操作是最費(fèi)時(shí)的操作,所以一般應(yīng)以盡量減少連接操作為目標(biāo)。 例如,如果經(jīng)常要查詢某個(gè)班級(jí)的班主任姓名,則將管理聯(lián)系與教師關(guān)系合并更好些。,new,E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)), 三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。 關(guān)系的屬性:與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性 關(guān)系的碼:各實(shí)體碼的組合 例,“講授”聯(lián)系是一個(gè)三元聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中課程號(hào)、職工號(hào)和書(shū)號(hào)為關(guān)系的組合碼: 講授(課程號(hào),職工號(hào),書(shū)號(hào)),E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)), 同一實(shí)體集的實(shí)體間的聯(lián)系,即自聯(lián)系,也可按上述1:1、1:n和m:n三種情況分別處理。 例,如果教師實(shí)體集內(nèi)部存在領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)的1:n自聯(lián)系,我們可以將該聯(lián)系與教師實(shí)體合并,這時(shí)主碼職工號(hào)將多次出現(xiàn),但作用不同,可用不同的屬性名加以區(qū)分: 教師:職工號(hào),姓名,性別,職稱(chēng),系主任,new,E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)), 具有相同碼的關(guān)系模式可合并。 目的:減少系統(tǒng)中的關(guān)系個(gè)數(shù)。 合并方法:將其中一個(gè)關(guān)系模式的全部屬性加入到另一個(gè)關(guān)系模式中,然后去掉其中的同義屬性(可能同名也可能不同名),并適當(dāng)調(diào)整屬性的次序。,E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)),例,“擁有”關(guān)系模式: 擁有(學(xué)號(hào),性別) 與學(xué)生關(guān)系模式: 學(xué)生(學(xué)號(hào),姓名,出生日期,所在系,年級(jí), 班級(jí)號(hào),平均成績(jī)) 都以學(xué)號(hào)為碼,可以將它們合并為一個(gè)關(guān)系模式: 學(xué)生(學(xué)號(hào),姓名,性別,出生日期,所在系, 年級(jí),班級(jí)號(hào),平均成績(jī)),E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)),實(shí)例 按照上述七條原則,學(xué)生管理子系統(tǒng)中的18個(gè)實(shí)體和聯(lián)系可以轉(zhuǎn)換為下列關(guān)系模型: 學(xué)生(學(xué)號(hào),姓名,性別,出生日期,所在系, 年級(jí),班級(jí)號(hào),平均成績(jī),檔案號(hào)) 性別(性別,宿舍樓) 宿舍(宿舍編號(hào),地址,性別,人數(shù)) 班級(jí)(班級(jí)號(hào),學(xué)生人數(shù)) 教師(職工號(hào),姓名,性別,職稱(chēng),班級(jí)號(hào), 是否為優(yōu)秀班主任),E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)),教學(xué)(職工號(hào),學(xué)號(hào)) 課程(課程號(hào),課程名,學(xué)分,教室號(hào)) 選修(學(xué)號(hào),課程號(hào),成績(jī)) 教科書(shū)(書(shū)號(hào),書(shū)名,價(jià)錢(qián)) 教室(教室編號(hào),地址,容量) 講授(課程號(hào),教師號(hào),書(shū)號(hào)) 檔案材料(檔案號(hào),),E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)),該關(guān)系模型由12個(gè)關(guān)系模式組成。 其中: 學(xué)生關(guān)系模式包含了“擁有”聯(lián)系、“組成”聯(lián)系、“歸檔”聯(lián)系所對(duì)應(yīng)的關(guān)系模式 教師關(guān)系模式包含了“管理”聯(lián)系所對(duì)應(yīng)的關(guān)系模式; 宿舍關(guān)系模式包含了“住宿”聯(lián)系所對(duì)應(yīng)的關(guān)系模式; 課程關(guān)系模式包含了“開(kāi)設(shè)”聯(lián)系所對(duì)應(yīng)的關(guān)系模式。,6.4 邏輯結(jié)構(gòu)設(shè)計(jì),6.4.1 E-R圖向數(shù)據(jù)模型的轉(zhuǎn)換 6.4.2 數(shù)據(jù)模型的優(yōu)化 6.4.3 設(shè)計(jì)用戶子模式,6.4.2 數(shù)據(jù)模型的優(yōu)化,數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的結(jié)果不是唯一的。 得到初步數(shù)據(jù)模型后,還應(yīng)該適當(dāng)?shù)匦薷摹⒄{(diào)整數(shù)據(jù)模型的結(jié)構(gòu),以進(jìn)一步提高數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能,這就是數(shù)據(jù)模型的優(yōu)化。 關(guān)系數(shù)據(jù)模型的優(yōu)化通常以規(guī)范化理論為指導(dǎo)。,數(shù)據(jù)模型的優(yōu)化(續(xù)),優(yōu)化數(shù)據(jù)模型的方法 確定數(shù)據(jù)依賴 按需求分析階段所得到的語(yǔ)義,分別寫(xiě)出每個(gè)關(guān)系模式內(nèi)部各屬性之間的數(shù)據(jù)依賴以及不同關(guān)系模式屬性之間數(shù)據(jù)依賴。,數(shù)據(jù)模型的優(yōu)化(續(xù)),例,課程關(guān)系模式內(nèi)部存在下列數(shù)據(jù)依賴: 課程號(hào)課程名 課程號(hào)學(xué)分 課程號(hào)教室號(hào) 選修關(guān)系模式中存在下列數(shù)據(jù)依賴: (學(xué)號(hào),課程號(hào))成績(jī),數(shù)據(jù)模型的優(yōu)化(續(xù)),學(xué)生關(guān)系模式中存在下列數(shù)據(jù)依賴: 學(xué)號(hào)姓名 學(xué)號(hào)性別 學(xué)號(hào)出生日期 學(xué)號(hào)所在系 學(xué)號(hào)年級(jí) 學(xué)號(hào)班級(jí)號(hào) 學(xué)號(hào)平均成績(jī) 學(xué)號(hào)檔案號(hào),數(shù)據(jù)模型的優(yōu)化(續(xù)),學(xué)生關(guān)系模式的學(xué)號(hào)與選修關(guān)系模式的學(xué)號(hào)之間存在數(shù)據(jù)依賴: 學(xué)生.學(xué)號(hào)選修.學(xué)號(hào),數(shù)據(jù)模型的優(yōu)化(續(xù)), 對(duì)于各個(gè)關(guān)系模式之間的數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余的聯(lián)系。,數(shù)據(jù)模型的優(yōu)化(續(xù)), 按照數(shù)據(jù)依賴的理論對(duì)關(guān)系模式逐一進(jìn)行分析,考查是否存在部分函數(shù)依賴、傳遞函數(shù)依賴、多值依賴等,確定各關(guān)系模式分別屬于第幾范式。 例如經(jīng)過(guò)分析可知,課程關(guān)系模式屬于BC范式。,數(shù)據(jù)模型的優(yōu)化(續(xù)), 按照需求分析階段得到的各種應(yīng)用對(duì)數(shù)據(jù)處理的要求,分析對(duì)于這樣的應(yīng)用環(huán)境這些模式是否合適,確定是否要對(duì)它們進(jìn)行合并或分解。,數(shù)據(jù)模型的優(yōu)化(續(xù)),并不是規(guī)范化程度越高的關(guān)系就越優(yōu)。 當(dāng)一個(gè)應(yīng)用的查詢中經(jīng)常涉及到兩個(gè)或多個(gè)關(guān)系模式的屬性時(shí),系統(tǒng)必須經(jīng)常地進(jìn)行聯(lián)接運(yùn)算,而聯(lián)系運(yùn)算的代價(jià)是相當(dāng)高的,可以說(shuō)關(guān)系模型低效的主要原因就是做聯(lián)接運(yùn)算引起的,因此在這種情況下,第二范式甚至第一范式也許是最好的。,數(shù)據(jù)模型的優(yōu)化(續(xù)),非BCNF的關(guān)系模式雖然從理論上分析會(huì)存在不同程度的更新異常,但如果在實(shí)際應(yīng)用中對(duì)此關(guān)系模式只是查詢,并不執(zhí)行更新操作,則就不會(huì)產(chǎn)生實(shí)際影響。 對(duì)于一個(gè)具體應(yīng)用來(lái)說(shuō),到底規(guī)范化進(jìn)行到什么程度,需要權(quán)衡響應(yīng)時(shí)間和潛在問(wèn)題兩者的利弊才能決定。一般說(shuō)來(lái),第三范式就足夠了。,數(shù)據(jù)模型的優(yōu)化(續(xù)),例:在關(guān)系模式 學(xué)生成績(jī)單(學(xué)號(hào),英語(yǔ),數(shù)學(xué),語(yǔ)文,平均成績(jī)) 中存在下列函數(shù)依賴: 學(xué)號(hào)英語(yǔ) 學(xué)號(hào)數(shù)學(xué) 學(xué)號(hào)語(yǔ)文 學(xué)號(hào)平均成績(jī) (英語(yǔ), 數(shù)學(xué), 語(yǔ)文)平均成績(jī),數(shù)據(jù)模型的優(yōu)化(續(xù)),顯然有: 學(xué)號(hào)(英語(yǔ),數(shù)學(xué),語(yǔ)文) 因此該關(guān)系模式中存在傳遞函數(shù)信賴,是2NF關(guān)系。 雖然平均成績(jī)可以由其他屬性推算出來(lái),但如果應(yīng)用中需要經(jīng)常查詢學(xué)生的平均成績(jī),為提高效率,我們?nèi)匀豢杀A粼撊哂鄶?shù)據(jù),對(duì)關(guān)系模式不再做進(jìn)一步分解。,數(shù)據(jù)模型的優(yōu)化(續(xù)), 按照需求分析階段得到的各種應(yīng)用對(duì)數(shù)據(jù)處理的要求,對(duì)關(guān)系模式進(jìn)行必要的分解或合并,以提高數(shù)據(jù)操作的效率和存儲(chǔ)空間的利用率 常用分解方法 水平分解 垂直分解,數(shù)據(jù)模型的優(yōu)化(續(xù)),水平分解 什么是水平分解 把(基本)關(guān)系的元組分為若干子集合,定義每個(gè)子集合為一個(gè)子關(guān)系,以提高系統(tǒng)的效率。 水平分解的適用范圍 滿足“80/20原則”的應(yīng)用 并發(fā)事務(wù)經(jīng)常存取不相交的數(shù)據(jù),數(shù)據(jù)模型的優(yōu)化(續(xù)),滿足“80/20原則”的應(yīng)用 80/20原則:一個(gè)大關(guān)系中,經(jīng)常被使用的數(shù)據(jù)只是關(guān)系的一部分,約20% 把經(jīng)常使用的數(shù)據(jù)分解出來(lái),形成一個(gè)子關(guān)系,可以減少查詢的數(shù)據(jù)量。 并發(fā)事務(wù)經(jīng)常存取不相交的數(shù)據(jù) 如果關(guān)系R上具有n個(gè)事務(wù),而且多數(shù)事務(wù)存取的數(shù)據(jù)不相交,則R可分解為少于或等于n個(gè)子關(guān)系,使每個(gè)事務(wù)存取的數(shù)據(jù)對(duì)應(yīng)一個(gè)關(guān)系。,數(shù)據(jù)模型的優(yōu)化(續(xù)),垂直分解 什么是垂直分解 把關(guān)系模式R的屬性分解為若干子集合,形成若干子關(guān)系模式。 垂直分解的原則 經(jīng)常在一起使用的屬性從R中分解出來(lái)形成一個(gè)子關(guān)系模式。,數(shù)據(jù)模型的優(yōu)化(續(xù)),垂直分解的優(yōu)點(diǎn) 可以提高某些事務(wù)的效率 垂直分解的缺點(diǎn) 可能使另一些事務(wù)不得不執(zhí)行連接操作,從而降低了效率。,數(shù)據(jù)模型的優(yōu)化(續(xù)),垂直分解的適用范圍 取決于分解后R上的所有事務(wù)的總效率是否得到了提高。 進(jìn)行垂直分解的方法 簡(jiǎn)單情況:直觀分解 復(fù)雜情況:用第五章中的模式分解算法 垂直分解必須不損失關(guān)系模式的語(yǔ)義(保持無(wú)損連接性和保持函數(shù)依賴)。,6.4 邏輯結(jié)構(gòu)設(shè)計(jì),6.4.1 E-R圖向數(shù)據(jù)模型的轉(zhuǎn)換 6.4.2 數(shù)據(jù)模型的優(yōu)化 6.4.3 設(shè)計(jì)用戶子模式,6.4.3 設(shè)計(jì)用戶子模式,定義數(shù)據(jù)庫(kù)模式主要是從系統(tǒng)的時(shí)間效率、空間效率、易維護(hù)等角度出發(fā)。 定義用戶外模式時(shí)應(yīng)該更注重考慮用戶的習(xí)慣與方便。包括三個(gè)方面:,設(shè)計(jì)用戶子模式(續(xù)),(1) 使用更符合用戶習(xí)慣的別名 合并各分E-R圖曾做了消除命名沖突的工作,以使數(shù)據(jù)庫(kù)系統(tǒng)中同一關(guān)系和屬性具有唯一的名字。這在設(shè)計(jì)數(shù)據(jù)庫(kù)整體結(jié)構(gòu)時(shí)是非常必要的。

溫馨提示

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

評(píng)論

0/150

提交評(píng)論