《數(shù)據(jù)庫原理(微課版)》第六章數(shù)據(jù)庫設(shè)計(jì)_第1頁
《數(shù)據(jù)庫原理(微課版)》第六章數(shù)據(jù)庫設(shè)計(jì)_第2頁
《數(shù)據(jù)庫原理(微課版)》第六章數(shù)據(jù)庫設(shè)計(jì)_第3頁
《數(shù)據(jù)庫原理(微課版)》第六章數(shù)據(jù)庫設(shè)計(jì)_第4頁
《數(shù)據(jù)庫原理(微課版)》第六章數(shù)據(jù)庫設(shè)計(jì)_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《數(shù)據(jù)庫原理》第六章

數(shù)據(jù)庫設(shè)計(jì)本章簡介本章內(nèi)容:數(shù)據(jù)庫設(shè)計(jì)概述介紹數(shù)據(jù)庫設(shè)計(jì)的方法、分類、步驟等內(nèi)容數(shù)據(jù)庫需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)、數(shù)據(jù)庫的實(shí)施與維護(hù)等步驟的工作內(nèi)容及所使用的具體設(shè)計(jì)方法。學(xué)習(xí)目標(biāo):了解數(shù)據(jù)庫設(shè)計(jì)的基本概念,包括數(shù)據(jù)庫設(shè)計(jì)方法、分類、步驟等。熟練掌握數(shù)據(jù)庫設(shè)計(jì)的基本步驟,以及各設(shè)計(jì)步驟的工作內(nèi)容。熟練掌握使用E-R模型進(jìn)行數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟。熟練掌握E-R圖轉(zhuǎn)換為關(guān)系模型、關(guān)系模型的優(yōu)化方法。了解數(shù)據(jù)庫設(shè)計(jì)物理設(shè)計(jì)、實(shí)施與維護(hù)的工作內(nèi)容與方法本章目錄6.1數(shù)據(jù)庫設(shè)計(jì)概述6.2需求分析6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.4數(shù)據(jù)庫邏輯設(shè)計(jì)6.5數(shù)據(jù)庫物理設(shè)計(jì)6.6數(shù)據(jù)庫實(shí)施與維護(hù)6.1數(shù)據(jù)庫設(shè)計(jì)概述6.1.1數(shù)據(jù)庫設(shè)計(jì)方法6.1.2數(shù)據(jù)庫設(shè)計(jì)分類6.1.3數(shù)據(jù)庫設(shè)計(jì)步驟6.1數(shù)據(jù)庫設(shè)計(jì)概述6.1.1數(shù)據(jù)庫設(shè)計(jì)方法1.直觀設(shè)計(jì)法依靠設(shè)計(jì)者的經(jīng)驗(yàn)和水平來設(shè)計(jì)數(shù)據(jù)庫的開發(fā)模式。2.規(guī)范設(shè)計(jì)法數(shù)據(jù)庫設(shè)計(jì)規(guī)范:不斷迭代,逐步求精。這種方法將數(shù)據(jù)庫設(shè)計(jì)分為幾個(gè)階段,規(guī)定了各階段的任務(wù),依據(jù)數(shù)據(jù)庫理論最終完成對整個(gè)數(shù)據(jù)庫的設(shè)計(jì)。典型方法有新奧爾良方法、基于E-R模型的數(shù)據(jù)庫設(shè)計(jì)方法、3NF(第三范式)的設(shè)計(jì)方法、統(tǒng)一建模語言(UML)方法等。6.1數(shù)據(jù)庫設(shè)計(jì)概述6.1.1數(shù)據(jù)庫設(shè)計(jì)方法3.計(jì)算機(jī)輔助設(shè)計(jì)法注,近年出現(xiàn)較多國產(chǎn)的數(shù)據(jù)庫設(shè)計(jì)軟件,例如chiner、DatablauDataModeler、FreedgoDesign、EdrawMax等,這說明我國更多優(yōu)秀的軟件開發(fā)人才正在進(jìn)入數(shù)據(jù)庫管理系統(tǒng)及相關(guān)軟件研發(fā)領(lǐng)域,這方面的技術(shù)發(fā)展,值得期待。這些工具支持概念模型、數(shù)據(jù)庫邏輯模型設(shè)計(jì),包括PowerDesigner、ERWin、ERStudio等。數(shù)據(jù)庫需求分析與設(shè)計(jì)工具這類工具軟件一般是繪圖軟件功能的延伸,提供E-R圖繪制組件,可畫圖完成E-R圖、數(shù)據(jù)庫邏輯模型圖的設(shè)計(jì),包括MicrosoftVisio、smartDraw等。數(shù)據(jù)庫繪圖工具這類工具一般是由數(shù)據(jù)庫管理系統(tǒng)開發(fā)商提供的,例如SQLServer、Oracle等系統(tǒng)的管理工具都具有類似功能。DBMS逆向工具6.1數(shù)據(jù)庫設(shè)計(jì)概述6.1.1數(shù)據(jù)庫設(shè)計(jì)方法4.自動化設(shè)計(jì)法自動化設(shè)計(jì)法是指利用數(shù)據(jù)庫自動化工具來完成設(shè)計(jì)數(shù)據(jù)庫。自動化設(shè)計(jì)優(yōu)勢:提升設(shè)計(jì)效率顯著提升數(shù)據(jù)庫設(shè)計(jì)的效率,減少設(shè)計(jì)時(shí)間和工作量。提高設(shè)計(jì)質(zhì)量幫助設(shè)計(jì)者生成結(jié)構(gòu)良好、符合規(guī)范化理論的數(shù)據(jù)庫,提高設(shè)計(jì)質(zhì)量。降低出錯(cuò)概率減少設(shè)計(jì)錯(cuò)誤,提高設(shè)計(jì)的準(zhǔn)確性和可靠性。6.1數(shù)據(jù)庫設(shè)計(jì)概述6.1.1數(shù)據(jù)庫設(shè)計(jì)方法4.自動化設(shè)計(jì)法舉例:程序員可借助編程框架實(shí)現(xiàn)從單個(gè)軟件生成其所使用數(shù)據(jù)庫結(jié)構(gòu),從數(shù)據(jù)庫生成簡單訪問代碼的功能。例如,Java程序員可使用諸如Hibernate、MyBaits(及其變種)等對象關(guān)系映射框架(Object-RelationalMapping,ORM)來實(shí)現(xiàn)由程序中的對象生成關(guān)系數(shù)據(jù)庫、由關(guān)系數(shù)據(jù)庫生成程序中對象及其創(chuàng)建、刪除、修改等操作代碼的功能。現(xiàn)狀:需要設(shè)計(jì)者提供正確的輸入和參數(shù),否則可能導(dǎo)致設(shè)計(jì)結(jié)果錯(cuò)誤或不符合需求;只能處理基本、常規(guī)的數(shù)據(jù)庫設(shè)計(jì)任務(wù),對于特殊需求可能無法滿足,無法自動生成滿足關(guān)系數(shù)據(jù)庫規(guī)范化理論的、結(jié)構(gòu)良好的關(guān)系數(shù)據(jù)庫。另外,數(shù)據(jù)庫設(shè)計(jì)是一項(xiàng)復(fù)雜的工程,目前還沒有自動化工具可生成可供多個(gè)軟件共同使用的結(jié)構(gòu)復(fù)雜的數(shù)據(jù)庫。6.1數(shù)據(jù)庫設(shè)計(jì)概述6.1.2數(shù)據(jù)庫設(shè)計(jì)分類1.單個(gè)軟件使用的數(shù)據(jù)庫面向單個(gè)軟件的數(shù)據(jù)管理需求,數(shù)據(jù)需求相對統(tǒng)一?!鞍痹谑褂盟能浖?,其運(yùn)行維護(hù)與軟件的運(yùn)行維護(hù)同步。若在運(yùn)行維護(hù)過程中,軟件的需求發(fā)生變化,數(shù)據(jù)庫有可能需要改變模式以適應(yīng)變化的數(shù)據(jù)管理需求。若軟件退役,數(shù)據(jù)庫也就終止運(yùn)行了。數(shù)據(jù)庫設(shè)計(jì)時(shí),一般需要從軟件的需求分析中抽取數(shù)據(jù)需求,依據(jù)數(shù)據(jù)需求進(jìn)行數(shù)據(jù)庫設(shè)計(jì)。也有少數(shù)情況下,由于軟件改版等原因,可以在已有數(shù)據(jù)庫基礎(chǔ)上,依據(jù)新的需求進(jìn)行調(diào)整改造。此類數(shù)據(jù)庫設(shè)計(jì)側(cè)重于滿足軟件數(shù)據(jù)管理需求及數(shù)據(jù)庫的規(guī)范性。6.1數(shù)據(jù)庫設(shè)計(jì)概述6.1.2數(shù)據(jù)庫設(shè)計(jì)分類2.多個(gè)應(yīng)用程序共享的數(shù)據(jù)庫一般是面向企事業(yè)單位的多方面的數(shù)據(jù)管理需求,數(shù)據(jù)需求在各部門之間往往存在分歧甚至矛盾。它一般長期運(yùn)行,數(shù)據(jù)庫模式幾乎不變,不會因?yàn)閭€(gè)別軟件的需求改變而修改。數(shù)據(jù)庫運(yùn)行過程中不斷會有舊的軟件退役、有新的軟件投入使用,因此,它需要一些設(shè)計(jì)余量,以滿足未來一段時(shí)間內(nèi)應(yīng)用可能會產(chǎn)生的數(shù)據(jù)需求??赡苌婕岸囝愋蛿?shù)據(jù)的管理,可能有些會超出關(guān)系數(shù)據(jù)庫范圍,例如視頻、圖像、音頻、地圖、CAD文件、表格等多種類型數(shù)據(jù)。因此,需要以大數(shù)據(jù)、數(shù)據(jù)中心建設(shè)的思想開展工作。數(shù)據(jù)庫設(shè)計(jì)復(fù)雜,首先需要明確當(dāng)前需要使用數(shù)據(jù)庫的每個(gè)軟件的數(shù)據(jù)管理需求。但在此基礎(chǔ)上,還需要花較多精力協(xié)調(diào)多個(gè)應(yīng)用的數(shù)據(jù)定義中屬性、實(shí)體、聯(lián)系等多種沖突。供多個(gè)應(yīng)用程序共享的數(shù)據(jù)庫的設(shè)計(jì)一般是在已有多個(gè)數(shù)據(jù)庫的基礎(chǔ)上進(jìn)行,也有少量開始于有多個(gè)軟件的明確的數(shù)據(jù)需求時(shí)。6.1數(shù)據(jù)庫設(shè)計(jì)概述6.1.3數(shù)據(jù)庫設(shè)計(jì)步驟需求分析:數(shù)據(jù)庫設(shè)計(jì)的起點(diǎn)。需要分析用戶的數(shù)據(jù)需求,明確需要數(shù)據(jù)庫實(shí)現(xiàn)的功能。該步驟需要數(shù)據(jù)庫設(shè)計(jì)人員與用戶合作來實(shí)現(xiàn)。2.概念結(jié)構(gòu)設(shè)計(jì)將需求分析轉(zhuǎn)化為數(shù)據(jù)庫概念模型的過程。3.邏輯結(jié)構(gòu)設(shè)計(jì)將設(shè)計(jì)好的概念模型轉(zhuǎn)化為與某個(gè)特定數(shù)據(jù)庫管理系統(tǒng)支持的數(shù)據(jù)模型所對應(yīng)的結(jié)構(gòu),并對其進(jìn)行優(yōu)化。4.物理結(jié)構(gòu)設(shè)計(jì)為已經(jīng)確定的邏輯數(shù)據(jù)結(jié)構(gòu)選取一個(gè)適合應(yīng)用環(huán)境的物理結(jié)構(gòu)5.數(shù)據(jù)庫實(shí)施與維護(hù)建立數(shù)據(jù)庫、編制與調(diào)試應(yīng)用程序、組織數(shù)據(jù)入庫進(jìn)行試運(yùn)行。維護(hù)階段的任務(wù)是對數(shù)據(jù)庫的轉(zhuǎn)存和恢復(fù),維護(hù)數(shù)據(jù)庫的安全性與完整性。本章目錄6.1數(shù)據(jù)庫設(shè)計(jì)概述6.2需求分析6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.4數(shù)據(jù)庫邏輯設(shè)計(jì)6.5數(shù)據(jù)庫物理設(shè)計(jì)6.6數(shù)據(jù)庫實(shí)施與維護(hù)6.2需求分析6.2.1需求分析任務(wù)和方法6.2.2需求分析的實(shí)例6.2需求分析6.2.1需求分析任務(wù)和方法需求分析是設(shè)計(jì)數(shù)據(jù)庫的第一步,也是設(shè)計(jì)數(shù)據(jù)庫的基礎(chǔ),會影響到后面數(shù)據(jù)庫設(shè)計(jì)的質(zhì)量。任務(wù)方法明確用戶對系統(tǒng)的數(shù)據(jù)需求,收集支持系統(tǒng)目標(biāo)的基礎(chǔ)數(shù)據(jù)及其數(shù)據(jù)處理方法。是軟件需求分析的一部分,需要詳細(xì)分析業(yè)務(wù)對象的組織結(jié)構(gòu)、用戶的業(yè)務(wù)過程、每個(gè)業(yè)務(wù)環(huán)節(jié)上需要軟件提供的功能及可能的擴(kuò)充和改變。6.2需求分析6.2.1需求分析任務(wù)和方法需求分析調(diào)查的內(nèi)容(1)數(shù)據(jù)存儲需求。明確數(shù)據(jù)庫中所有數(shù)據(jù),例如輸入、輸出、存儲數(shù)據(jù)、數(shù)據(jù)間的聯(lián)系及約束。(2)數(shù)據(jù)處理需求。明確用戶需要完成的數(shù)據(jù)處理功能,包括數(shù)據(jù)處理的方式、數(shù)據(jù)處理的優(yōu)先級、數(shù)據(jù)處理發(fā)生的頻度、操作的執(zhí)行頻率和場合、數(shù)據(jù)量大小、數(shù)據(jù)處理響應(yīng)速度等。(3)數(shù)據(jù)信息安全性和完整性要求。包括數(shù)據(jù)處理的安全保密要求、數(shù)據(jù)和數(shù)據(jù)視圖的訪問權(quán)限、數(shù)據(jù)庫的安全認(rèn)證機(jī)制、數(shù)據(jù)的完整性約束條件等,以確保數(shù)據(jù)安全,避免出現(xiàn)數(shù)據(jù)泄露、篡改和濫用狀況。另外明確數(shù)據(jù)的完整性要求,可利用各種技術(shù)手段保障數(shù)據(jù)的正確性、一致性。6.2需求分析6.2.1需求分析任務(wù)和方法需求分析調(diào)查的步驟:(1)調(diào)查組織機(jī)構(gòu)。為了分析數(shù)據(jù)的流向,需要了解用戶所屬企業(yè)的規(guī)模、組織架構(gòu)等。比如用戶所屬的組織機(jī)構(gòu)各部門的規(guī)模和職責(zé)、各部門之間的聯(lián)系、需要使用待開發(fā)系統(tǒng)的用戶類型及各類用戶的業(yè)務(wù)和操作權(quán)限等信息。(2)熟悉業(yè)務(wù)活動。對各個(gè)部門的業(yè)務(wù)情況進(jìn)行了解,主要了解各部門的數(shù)據(jù)使用的情況,例如,各部門輸入輸出數(shù)據(jù)的內(nèi)容與格式,各部門的數(shù)據(jù)操作處理等。(3)明確數(shù)據(jù)要求。在熟悉用戶所屬企業(yè)的情況和業(yè)務(wù)內(nèi)容后,需要明確用戶對數(shù)據(jù)庫設(shè)計(jì)所必須滿足的要求。包括數(shù)據(jù)內(nèi)容要求、功能處理要求、數(shù)據(jù)信息安全性與完整性要求等。(4)確定數(shù)據(jù)庫功能。在以上調(diào)查結(jié)果的基礎(chǔ)上分析,確定數(shù)據(jù)庫的管理邊界,即具體數(shù)據(jù)的管理功能、數(shù)據(jù)來源及接口等。6.2需求分析6.2.1需求分析任務(wù)和方法需求分析調(diào)查的步驟:數(shù)據(jù)需求分析報(bào)告數(shù)據(jù)需求分析報(bào)告內(nèi)容包括:系統(tǒng)概括、數(shù)據(jù)需求分析技術(shù)、數(shù)據(jù)字典、數(shù)據(jù)流圖等。在數(shù)據(jù)需求分析報(bào)告撰寫之后,需要組織設(shè)計(jì)方和用戶方進(jìn)行需求確認(rèn)和評審,重點(diǎn)檢查數(shù)據(jù)需求分析報(bào)告是否完全、準(zhǔn)確、無歧義地描述了用戶的每一項(xiàng)數(shù)據(jù)需求。若需求確認(rèn)和評審有問題,重復(fù)上述步驟修正數(shù)據(jù)需求成果,直至雙方一致認(rèn)可,得到正式數(shù)據(jù)需求分析報(bào)告,可才進(jìn)入下一階段工作。數(shù)據(jù)需求分析報(bào)告可以是獨(dú)立的報(bào)告,也可以是軟件需求規(guī)格說明書的重要組成部分。6.2需求分析6.2.1需求分析任務(wù)和方法需求分析調(diào)查的步驟:6.2需求分析6.2.1需求分析任務(wù)和方法調(diào)查用戶需求的方法:(1)專家訪談與集體會議??梢酝ㄟ^對業(yè)務(wù)熟練的專家用戶進(jìn)行一對一的訪談,請他們對業(yè)務(wù)情況進(jìn)行詳細(xì)說明,以便數(shù)據(jù)庫設(shè)計(jì)人員對業(yè)務(wù)需求有進(jìn)一步的了解;也可以組織一場需求調(diào)查會議,讓各個(gè)部門業(yè)務(wù)人員聚集在一起,談本部門的工作業(yè)務(wù),從而提煉出涉及到的數(shù)據(jù)及處理需求。在會議和訪談之前,設(shè)計(jì)人員也可以提前準(zhǔn)備對需求的問題,使設(shè)計(jì)人員對需求細(xì)節(jié)有更深的理解和認(rèn)識。(2)觀察工作流程??梢赃x擇典型業(yè)務(wù)對用戶工作流程跟班作業(yè),目的是對相關(guān)工作部門的業(yè)務(wù)活動、組成情況、工作職能、使用或處理的數(shù)據(jù)情況進(jìn)行熟悉了解。(3)使用調(diào)查問卷來確定需求。根據(jù)用戶業(yè)務(wù)活動需求的差異,設(shè)計(jì)數(shù)據(jù)需求問題,例如,數(shù)據(jù)處理方式、是否有涉密數(shù)據(jù)等。將這份調(diào)查表發(fā)給相關(guān)業(yè)務(wù)活動的用戶,以便了解各部門用戶的需求情況。(4)查閱業(yè)務(wù)資料。查閱與業(yè)務(wù)流程相關(guān)的單據(jù)、報(bào)告、工作記錄等資料。6.2需求分析6.2.1需求分析任務(wù)和方法需求分析的方法:結(jié)構(gòu)化分析方法(StructureAnalysis,SA)數(shù)據(jù)流圖(DataFlowDiagram,DFD)數(shù)據(jù)字典(DataDictionary,DD)方法面向?qū)ο蠓治龇椒ǎ∣bject-orientAnalysis,OA)......6.2需求分析6.2.2需求分析實(shí)例1.軟件需求描述軟件需求規(guī)格說明書是一份嚴(yán)謹(jǐn)復(fù)雜的文檔且具有一定的法律效力。例如對大學(xué)教學(xué)活動來講,用戶角色至少包括教務(wù)員、教師、學(xué)生三類。教務(wù)員的工作:下達(dá)教學(xué)任務(wù)、排課、查看全學(xué)院教學(xué)任務(wù)、查看選課學(xué)生列表、查看開課教師列表等。教師的工作:查看教學(xué)任務(wù)、查看課表、打印點(diǎn)名冊、錄入學(xué)生成績、打印成績單等。其中打印成績單包括打印教學(xué)班成績單、打印班級成績單、打印試卷分析等三種不同的打印任務(wù)。對班級成績單和教學(xué)班成績單,可打印歷史成績單,也可打歷史課表。學(xué)生的工作:選課、查看課表、查看選修成績、查看總成績單(入學(xué)以來所有選修課程及成績)等。6.2.2需求分析實(shí)例圖6-3教務(wù)管理系統(tǒng)的USECASE總圖6.2.2需求分析實(shí)例圖6-4課表樣例6.2需求分析6.2.2需求分析實(shí)例2.數(shù)據(jù)字典數(shù)據(jù)字典是軟件需求規(guī)格說明書或數(shù)據(jù)需求說明書的重要組成部分,用于定義、描述整個(gè)軟件所使用數(shù)據(jù)元素。對每個(gè)數(shù)據(jù),描述其名稱、結(jié)構(gòu)組成、存儲、處理邏輯等內(nèi)容。其最小描述單位是數(shù)據(jù)項(xiàng),數(shù)據(jù)由數(shù)據(jù)項(xiàng)組成。本實(shí)例數(shù)據(jù)字典內(nèi)容:學(xué)院、教師、學(xué)生、課程、教學(xué)任務(wù)、選課(學(xué)生選課)、選修成績列表、總成績單、點(diǎn)名冊、成績單(包括教學(xué)班成績單、班級成績單、試卷分析3類)、全學(xué)院教學(xué)任務(wù)、選課學(xué)生列表、開課教師列表等數(shù)據(jù)。數(shù)據(jù)較多時(shí),一般會對數(shù)據(jù)、數(shù)據(jù)項(xiàng)進(jìn)行編號,方便描述。6.2需求分析6.2.2需求分析實(shí)例2.數(shù)據(jù)字典圖6-4-課表是一項(xiàng)數(shù)據(jù):課表=學(xué)年+學(xué)期+姓名+角色+上課時(shí)間(包括周幾、第幾節(jié)課)+課程名稱+上課周范圍+上課地點(diǎn)學(xué)年:年號,整數(shù),范圍1950-3000學(xué)期:兩個(gè)取值:春、秋姓名:由漢字、字母、數(shù)字組成的字符串,長度50角色:兩個(gè)取值:教師、學(xué)生上課時(shí)間:取值包括周幾、第幾節(jié)課,周取值包括星期一到星期日共7個(gè),第幾節(jié)課取值包括:第1-2節(jié)至第11-13節(jié)共6個(gè)。具體上課下課時(shí)間可參看學(xué)校校歷。課程名稱:由漢字、字母、數(shù)字組成的字符串,長度50上課周范圍:示例中“1-12周”指第1-12周,“5-12周”指第5-12周。具體第幾周是哪一天可查看學(xué)校校歷。上課地點(diǎn):由教學(xué)樓、教室號組成。例如“教3-304”中教3是教學(xué)樓,304是房間號。本章目錄6.1數(shù)據(jù)庫設(shè)計(jì)概述6.2需求分析6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.4數(shù)據(jù)庫邏輯設(shè)計(jì)6.5數(shù)據(jù)庫物理設(shè)計(jì)6.6數(shù)據(jù)庫實(shí)施與維護(hù)6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.1概念模型及其結(jié)構(gòu)6.3.2數(shù)據(jù)抽象6.3.3E-R模型6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.1概念模型及其結(jié)構(gòu)概念結(jié)構(gòu)設(shè)計(jì)是將用戶需求抽象為信息世界概念模型的過程。概念模型是從數(shù)據(jù)的應(yīng)用語義的角度來抽取模型,并按用戶的觀點(diǎn)對數(shù)據(jù)和信息進(jìn)行建模,是現(xiàn)實(shí)世界到信息世界的中間層次,是數(shù)據(jù)庫設(shè)計(jì)階段的關(guān)鍵所在。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.1概念模型及其結(jié)構(gòu)1.概念結(jié)構(gòu)主要特點(diǎn)數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵,是各種數(shù)據(jù)模型的基礎(chǔ)。概念結(jié)構(gòu)通過對用戶需求進(jìn)行綜合,歸納與抽象,設(shè)計(jì)合適的概念模型(例如,E-R圖)。該模型具有以下特點(diǎn):(1)概念模型不僅要滿足用戶對數(shù)據(jù)的具體處理要求,還要保證能夠真實(shí)、全面、充分的反映現(xiàn)實(shí)世界中事物與事物之間的聯(lián)系。概念模型是反映現(xiàn)實(shí)世界的模型。(2)概念模型是易于用戶理解的,確保能夠讓每一個(gè)用戶都能夠參與數(shù)據(jù)庫的設(shè)計(jì)。(3)概念模型要求易于修改擴(kuò)充。(4)概念模型要易于轉(zhuǎn)換邏輯結(jié)構(gòu)中的數(shù)據(jù)模型。概念模型最終要向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。在設(shè)計(jì)概念模型時(shí)需要注意,能夠方便快捷進(jìn)行特定的數(shù)據(jù)模型轉(zhuǎn)換。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.1概念模型及其結(jié)構(gòu)2.概念結(jié)構(gòu)的設(shè)計(jì)方法與步驟設(shè)計(jì)概念結(jié)構(gòu)通常包括四種方法:自頂向下的設(shè)計(jì)方法、自底向上的設(shè)計(jì)方法、逐步擴(kuò)張的設(shè)計(jì)方法、混合策略設(shè)計(jì)的方法等。(1)自頂向下的設(shè)計(jì)方法。要求根據(jù)具體需求定義全局概念結(jié)構(gòu)的框架,逐步細(xì)化為不同的子概念,最后形成完整的全局概念結(jié)構(gòu),該方法是最常用的設(shè)計(jì)方法,如圖6-5所示。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.1概念模型及其結(jié)構(gòu)2.概念結(jié)構(gòu)的設(shè)計(jì)方法與步驟(2)自底向上的設(shè)計(jì)方法。要求根據(jù)不同的子需求定義各局部應(yīng)用的概念結(jié)構(gòu),集成后形成完整的全局概念結(jié)構(gòu),如圖6-6所示。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.1概念模型及其結(jié)構(gòu)2.概念結(jié)構(gòu)的設(shè)計(jì)方法與步驟(3)逐步擴(kuò)張的設(shè)計(jì)方法。要求先定義最重要的核心概念結(jié)構(gòu),向外擴(kuò)充,生成其他概念結(jié)構(gòu),直至完成總體概念結(jié)構(gòu)。(4)混合策略設(shè)計(jì)的方法。采用自頂向下與自底向上相結(jié)合的設(shè)計(jì)方法。首先用自頂向下策略設(shè)計(jì)一個(gè)全局概念結(jié)構(gòu)的框架,再引入自底向上策略設(shè)計(jì)的各局部概念結(jié)構(gòu)。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.2數(shù)據(jù)抽象概念模型是對現(xiàn)實(shí)世界中事物及其相互關(guān)系的一種抽象。抽象就是對實(shí)際的人、物、事和概念進(jìn)行人為的處理,抽取現(xiàn)實(shí)世界存在的共同特性,精確描述這些概念,并且不忽略其本質(zhì)的細(xì)節(jié),最后形成某種模型。通常,數(shù)據(jù)抽象包括分類、聚集和概括3種基本方法。(1)

分類(Classification)。分類是面向?qū)ο蟮脑O(shè)計(jì)方法中常用的一種抽象,指定義某一類概念作為現(xiàn)實(shí)世界中一組對象的類型,這些對象具有某些共同的特性和行為。分類抽象了對象值和型之間的“成員”的語義。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.2數(shù)據(jù)抽象數(shù)據(jù)抽象包括分類、聚集和概括3種基本方法。(2)聚集(Aggregation)。聚集可簡單理解為定義某一類型的組成部分。它抽象了對象內(nèi)部類型和對象內(nèi)部“組成部分”的語義。在E-R模型中,若干屬性的聚集組成了實(shí)體型。例如,學(xué)號(id)、名字(name)、所在學(xué)院(college_name)、專業(yè)(major)、性別(gender)、出生日期(birthday)都可抽象為學(xué)生實(shí)體的屬性。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.2數(shù)據(jù)抽象,數(shù)據(jù)抽象包括分類、聚集和概括3種基本方法。(3)概括(Generalization)。概括定義了類型之間的一種子集聯(lián)系。它抽象了類型之間“所屬”的語義。例如,學(xué)生是個(gè)實(shí)體集,班長、學(xué)習(xí)委員也是實(shí)體集,班長、學(xué)習(xí)委員均是學(xué)生的子集??砂褜W(xué)生稱為超類(Superclass),班長、學(xué)習(xí)委員稱為職工的子類(Subclass)。繼承性指子類繼承超類中定義的所有抽象。子類可以添加某些特殊屬性6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型E-R模型(Entity-Relationshipmodel)是由美籍華裔計(jì)算機(jī)科學(xué)家陳品山1976年提出來的,也被稱作實(shí)體-聯(lián)系模型。E-R模型是概念數(shù)據(jù)模型最常用的數(shù)據(jù)模型或模式圖,是數(shù)據(jù)庫設(shè)計(jì)的理論基礎(chǔ)。E-R模型可以使用圖形化的方法表示,稱為E-R圖。E-R圖提供實(shí)體型、屬性和聯(lián)系的圖形化的方法,可以形象直觀地表示一個(gè)E-R模型。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型1.E-R模型的基本元素E-R模型的基本元素成分是實(shí)體、屬性和聯(lián)系。(1)實(shí)體(Entity)實(shí)體是客觀存在并且可以相互區(qū)別的事物。實(shí)體可以是具體的人、事和物,也可以是抽象的概念或聯(lián)系。例如,一個(gè)學(xué)生、一場比賽、一個(gè)班級、一所學(xué)校等。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型1.E-R模型的基本元素E-R模型的基本元素成分是實(shí)體、屬性和聯(lián)系。(1)實(shí)體(Entity)由于具有相同屬性的實(shí)體擁共同特征和性質(zhì),因此使用實(shí)體名及其屬性集合來抽象和刻畫同類實(shí)體,稱之為“實(shí)體型”。同一類型的實(shí)體構(gòu)成的集合稱為“實(shí)體集”。一般將實(shí)體、實(shí)體型和實(shí)體集等三個(gè)概念統(tǒng)稱為“實(shí)體”。在E-R模型當(dāng)中所提到的實(shí)體通常是指實(shí)體集。實(shí)體實(shí)例是實(shí)體的具體值。一個(gè)實(shí)體集應(yīng)該擁有一個(gè)以上的實(shí)例。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型1.E-R模型的基本元素E-R模型的基本元素成分是實(shí)體、屬性和聯(lián)系。(1)實(shí)體(Entity)。在E-R圖中,用矩形來表示實(shí)體,內(nèi)部寫明實(shí)體的名稱(用名詞表示)。為了方便工作人員與用戶之間的交流,需求分析階段通常使用中文表示實(shí)體名,在設(shè)計(jì)階段再根據(jù)需要轉(zhuǎn)換成相應(yīng)的英文。英文實(shí)體名通常使用首字母大寫,且具有實(shí)際意義的英文表示。屬性和聯(lián)系的名稱也采用類似的方法。E-R圖中,用矩形來表示實(shí)體女孩男孩學(xué)生人類6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型1.E-R模型的基本元素(2)屬性(Attribute)屬性是指實(shí)體或聯(lián)系所具有的性質(zhì)或特征。一般來說,一個(gè)實(shí)體都是通過許多個(gè)屬性來共同描述?!按a”是可以唯一標(biāo)識實(shí)體的屬性或?qū)傩越M。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型1.E-R模型的基本元素(2)屬性(Attribute)屬性的取值范圍稱為該屬性的域,也稱為屬性的值域。例如,在學(xué)生實(shí)體中的“性別”屬性取值只能為“男”或者“女”。同一個(gè)實(shí)體集中,不同實(shí)體的同一個(gè)屬性的屬性域是相同的,但可能取不同的值。為了確認(rèn)某個(gè)特別指定的實(shí)體,可以通過該實(shí)體屬性的一組的特定值來進(jìn)行確定。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)E-R圖中的屬性可以分為簡單屬性、復(fù)合屬性;單值屬性、多值屬性、派生屬性等。簡單屬性:實(shí)體與聯(lián)系的最基本屬性,是不能再進(jìn)行分割的最小單位;復(fù)合屬性:由多個(gè)簡單屬性組成,是能夠再分割為更小部分的屬性;單值屬性:一個(gè)屬性只有一個(gè)值;多值屬性:一個(gè)屬性可能對應(yīng)一組值,用雙線橢圓形表示;派生屬性:由其他屬性計(jì)算得出的屬性,使用虛線橢圓形表示。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型1.E-R模型的基本元素(2)屬性(Attribute)一般來說,實(shí)體和屬性之間的差異并沒有直截的界限劃分。但是,在現(xiàn)實(shí)世界中具體的應(yīng)用環(huán)境對實(shí)體和屬性做了自然劃分。實(shí)體還是屬性?設(shè)計(jì)原則:原則1:現(xiàn)實(shí)世界的事物能作為屬性對待的盡量作為屬性對待。原則2:“屬性”不能再具有需要描述的性質(zhì),“屬性”必須是不可分割的數(shù)據(jù)項(xiàng),不能包含其他屬性原則3:“屬性”不能與其他實(shí)體具有聯(lián)系6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型1.E-R模型的基本元素(3)聯(lián)系(Relationship)不同實(shí)體之間的相互關(guān)系。在現(xiàn)實(shí)世界中,不同類型的事物之間以及相同類型的事物之間都是有聯(lián)系的。這些現(xiàn)實(shí)世界中的聯(lián)系反映在信息世界當(dāng)中就是不同實(shí)體集之間以及同一實(shí)體集內(nèi)部不同實(shí)體之間的聯(lián)系。實(shí)體之間聯(lián)系類型的不同會直接導(dǎo)致數(shù)據(jù)庫不同的邏輯結(jié)構(gòu)設(shè)計(jì),并影響到用戶功能的實(shí)現(xiàn)。所以區(qū)分聯(lián)系類型是一項(xiàng)非常重要的工作。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型1.E-R模型的基本元素(3)聯(lián)系(Relationship)聯(lián)系的元數(shù)是指和聯(lián)系所關(guān)聯(lián)的實(shí)體集的個(gè)數(shù),它由現(xiàn)實(shí)中參與聯(lián)系的實(shí)體集個(gè)數(shù)決定。例如,聯(lián)系通常會有一元聯(lián)系、二元聯(lián)系、和三元聯(lián)系,少數(shù)情況下會存在四元或更多元的聯(lián)系。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型1.E-R模型的基本元素(3)聯(lián)系(Relationship)一元聯(lián)系是一個(gè)實(shí)體集內(nèi)部一些實(shí)體與另一個(gè)實(shí)體之間的聯(lián)系,例如學(xué)生中有些學(xué)生是班長,他管理他們班的其它學(xué)生,所以學(xué)生實(shí)體集中有一個(gè)聯(lián)系,聯(lián)系的一方是班長、另一方是班級成員。同樣,課程中有些課程是另外一些課程的先行課程,課程實(shí)體集上也有一個(gè)一元聯(lián)系,聯(lián)系的一方是課程、另一方是它的選行課程。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型1.E-R模型的基本元素(3)聯(lián)系(Relationship)二元聯(lián)系是兩個(gè)實(shí)體集之間的聯(lián)系,例如學(xué)院和學(xué)生之間有從屬聯(lián)系,一個(gè)學(xué)院有多個(gè)學(xué)生,而每個(gè)學(xué)生僅屬于一個(gè)學(xué)院。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型1.E-R模型的基本元素(3)聯(lián)系(Relationship)三元聯(lián)系是有三個(gè)實(shí)體集參與的聯(lián)系,例如學(xué)生、教師和課程之間有一個(gè)選修聯(lián)系,學(xué)生選修一門課程,就意味著他選修由某教師教授這一門課程,教師講授一門課,其受眾一定是學(xué)生,而課程開出一定是某位教師講授、一些學(xué)生來學(xué)習(xí)才能成立的。因此,教師、學(xué)生、課程之間存在一個(gè)叫作選修的三元的聯(lián)系。圖6-10學(xué)院、學(xué)生、課程、教師之間的聯(lián)系6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型1.E-R模型的基本元素二元聯(lián)系的類型:①一對一聯(lián)系(1:1):如果對于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中至多有1個(gè)實(shí)體與之聯(lián)系,反之亦然,則稱A與B具有一對一聯(lián)系,記為1∶1例如,學(xué)院和院長之間是一對一的聯(lián)系。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型1.E-R模型的基本元素二元聯(lián)系的類型:②一對多聯(lián)系(1:n):如果對于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體(n≥0)與之聯(lián)系,反之,對于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中至多只有一個(gè)實(shí)體與之聯(lián)系,則稱實(shí)體集A與實(shí)體集B有一對多聯(lián)系,記為1:n。例如,一個(gè)學(xué)院有多名學(xué)生、而一個(gè)學(xué)生在一個(gè)時(shí)刻只能屬于一個(gè)學(xué)院,因此,學(xué)院和學(xué)生之間是一對多的聯(lián)系,其中學(xué)院是1方,學(xué)生是多方。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型1.E-R模型的基本元素二元聯(lián)系的類型:③多對多聯(lián)系(m:n):如果對于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體(n≥0)與之聯(lián)系,反之,對于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中也有m個(gè)實(shí)體(m≥0)與之聯(lián)系,則稱實(shí)體集A與實(shí)體集B具有多對多聯(lián)系,記為m:n。例如,若只考慮學(xué)生和課程之間的聯(lián)系,則它是一個(gè)二元多對多的聯(lián)系,因?yàn)橐幻麑W(xué)生可以選修多門課程,一門課程也可以被多個(gè)學(xué)生所選修。圖6-11二元聯(lián)系的類型6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型1.E-R模型的基本元素(3)聯(lián)系(Relationship)聯(lián)系也可以用屬性描述。例如學(xué)生屬于學(xué)院,可添加起始時(shí)間、終止時(shí)間,選修可以添加選修學(xué)年、選修學(xué)期、上課教室等屬性來更加詳細(xì)地描述。與實(shí)體的碼類似,一般也有可以唯一標(biāo)識一個(gè)聯(lián)系的屬性或?qū)傩越M,稱為聯(lián)系的碼。聯(lián)系的碼是參與聯(lián)系的各實(shí)體碼的集合的子集。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型2.E-R圖的設(shè)計(jì)步驟:(1)分E-R圖設(shè)計(jì)(2)E-R圖的集成(3)修改和重構(gòu)6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型2.E-R圖的設(shè)計(jì)(1)分E-R圖設(shè)計(jì)根據(jù)某個(gè)系統(tǒng)的具體情況,將系統(tǒng)分解為若干個(gè)局部應(yīng)用。對每個(gè)局部應(yīng)用,在多層數(shù)據(jù)流圖中選擇一個(gè)中層數(shù)據(jù)流圖,作為設(shè)計(jì)分E-R圖的出發(fā)點(diǎn)。根據(jù)局部應(yīng)用的數(shù)據(jù)流程圖中標(biāo)定的實(shí)體集、屬性和主碼,并結(jié)合數(shù)據(jù)字典中的相關(guān)描述內(nèi)容,確定E-R圖中的實(shí)體、實(shí)體之間的聯(lián)系。6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型2.E-R圖的設(shè)計(jì)(1)E-R圖的集成分一次集成和逐步集成兩種方式。主要是消除沖突的操作,來解決各分E-R圖之間的沖突問題。主要的沖突分屬性沖突、命名沖突和結(jié)構(gòu)沖突三類屬性沖突:

身高:180cm1.8m,年齡與生日等

命名沖突:同名異意:課程所屬學(xué)院---學(xué)生所屬學(xué)院

;異名同意:生日---出生日期

結(jié)構(gòu)沖突:

某個(gè)分ER中的實(shí)體是另一個(gè)分ER中的屬性,

某個(gè)分ER中的實(shí)體是另一個(gè)分ER中的聯(lián)系。姓名---姓、中間名、名6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.3.3E-R模型2.E-R圖的設(shè)計(jì)(3)修改和重構(gòu)消除冗余數(shù)據(jù)和冗余實(shí)體間聯(lián)系。方法:(1)分析法消除冗余數(shù)據(jù),以數(shù)據(jù)字典和數(shù)據(jù)流圖為依據(jù),按照數(shù)據(jù)字典中關(guān)于數(shù)據(jù)項(xiàng)之間邏輯關(guān)系的說明來消除冗余。(2)關(guān)系規(guī)范化理論來消除冗余聯(lián)系。對每個(gè)局部應(yīng)用,在多層數(shù)據(jù)流圖中選擇一個(gè)中層數(shù)據(jù)流圖,作為設(shè)計(jì)分E-R圖的出發(fā)點(diǎn)?!纠?-1】某高校教學(xué)管理系統(tǒng)的E-R圖例【6-2】畫出某高校學(xué)生管理的E-R圖。圖6-14

學(xué)生學(xué)籍管理子系統(tǒng)局部E-R圖圖6-15

教學(xué)管理子系統(tǒng)局部E-R圖圖6-16初步E-R圖圖6-17

全局E-R圖對開課的不同理解本章目錄6.1數(shù)據(jù)庫設(shè)計(jì)概述6.2需求分析6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.4數(shù)據(jù)庫邏輯設(shè)計(jì)6.5數(shù)據(jù)庫物理設(shè)計(jì)6.6數(shù)據(jù)庫實(shí)施與維護(hù)6.4數(shù)據(jù)庫邏輯設(shè)計(jì)6.4.1E-R模型向關(guān)系模型的轉(zhuǎn)換6.4.2關(guān)系模型的優(yōu)化6.4.3數(shù)據(jù)庫的外模式設(shè)計(jì)6.4數(shù)據(jù)庫邏輯設(shè)計(jì)6.4.1E-R模型向關(guān)系模型的轉(zhuǎn)換轉(zhuǎn)換原則:(1)

一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體屬性就是關(guān)系屬性,標(biāo)識符即為關(guān)系模式的碼。(2)

兩個(gè)實(shí)體間1:1聯(lián)系,則可以在兩個(gè)實(shí)體轉(zhuǎn)換成的兩個(gè)關(guān)系模式中任意一個(gè)關(guān)系模式屬性中加入另一個(gè)關(guān)系模式的碼和聯(lián)系類型屬性。圖6-19班級與班長的概念模式關(guān)系模式:班級(班級號,人數(shù),班長學(xué)號)班長(學(xué)號,姓名,聯(lián)系電話)或班級(班級號,人數(shù))班長(學(xué)號,姓名,聯(lián)系電話,班級號)6.4數(shù)據(jù)庫邏輯設(shè)計(jì)6.4.1E-R模型向關(guān)系模型的轉(zhuǎn)換轉(zhuǎn)換原則:(3)兩個(gè)實(shí)體間1:n聯(lián)系,則在n端實(shí)體轉(zhuǎn)換成關(guān)系模式中加入1端實(shí)體的碼和聯(lián)系類型屬性。關(guān)系模式:學(xué)院(學(xué)院編號,學(xué)院名稱,聯(lián)系電話,地址)學(xué)生(學(xué)號,姓名,生日,性別,專業(yè),學(xué)院編號)6.4數(shù)據(jù)庫邏輯設(shè)計(jì)6.4.1E-R模型向關(guān)系模型的轉(zhuǎn)換轉(zhuǎn)換原則:(4)一個(gè)實(shí)體間m:n聯(lián)系,則將聯(lián)系類型也轉(zhuǎn)換成關(guān)系模式,其屬性為兩端實(shí)體的碼加上聯(lián)系類型屬性,而鍵為兩端實(shí)體的碼的組合。關(guān)系模式:教師(工號,姓名,專業(yè),性別,生日,職稱)學(xué)生(學(xué)號,姓名,生日,性別,專業(yè))授課(工號,學(xué)號,學(xué)年,學(xué)期,課程編號、課程名稱)6.4數(shù)據(jù)庫邏輯設(shè)計(jì)6.4.2關(guān)系模型的優(yōu)化基于規(guī)范化理論的關(guān)系模型優(yōu)化方法:(1)確定數(shù)據(jù)依賴。按需求分析階段所得到的語義,分別寫出每個(gè)關(guān)系模式內(nèi)部各屬性之間的數(shù)據(jù)依賴以及不同關(guān)系模式屬性之間的數(shù)據(jù)依賴。(2)對于各個(gè)關(guān)系模式之間數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余聯(lián)系。(3)按照數(shù)據(jù)依賴?yán)碚搶﹃P(guān)系模式逐一進(jìn)行分析,考察是否存在部分函數(shù)依賴、傳遞函數(shù)依賴、多值依賴等,確定各關(guān)系模式分別屬于第幾范式。(4)按照需求分析階段得到的處理要求,分析這些模式對于應(yīng)用環(huán)境是否合適,確定是否需要對某些模式進(jìn)行分解。對關(guān)系模式進(jìn)行必要分解,提高數(shù)據(jù)操作效率和存儲空間利用率6.4數(shù)據(jù)庫邏輯設(shè)計(jì)6.4.2關(guān)系模型的優(yōu)化例6-3College(college_name,college_telephone,college_address,college_desc)Course(course_id,title,college_name,credits,hours)Instructor(ID,name,college_name,gender,birthday,title)Student(ID,name,college_name,major,gender,birthday)Section(course_id,sec_id,semester,year,building,room_number,time_slot_id)Classroom(building,room_number,capacity,classroom_type)Timeslot(time_slot_id,start_week,end_week,day,start_hr,start_min,end_hr,end_min)takes(

ID,course_id,sec_id,semester,year,grade)teaches(

ID,course_id,sec_id,semester,year)prereq(

course_id,prereq_id)6.4數(shù)據(jù)庫邏輯設(shè)計(jì)6.4.2關(guān)系模型的優(yōu)化【例6-4】請給出例6-2中E-R模型的邏輯結(jié)構(gòu)設(shè)計(jì)College(college_id,college_name,college_telephone,college_address)Class(class_id,class_name,instructor_id)Student(student_id,name,class_id,major,gender,birthday)Course(course_id,course_name,college_id,credits)Instructor(instructor_id,name,major,gender,birthday,title,phone,college_id)teaches(instructor_id,course_id,semester,year)takes(student_id,course_id,grade)prereq(

course_id,prereq_id)6.4數(shù)據(jù)庫邏輯設(shè)計(jì)6.4.2關(guān)系模型的優(yōu)化【例6-4】請給出例6-2中E-R模型的邏輯結(jié)構(gòu)設(shè)計(jì)College(college_id,college_name,college_telephone,college_address)Class(class_id,class_name,instructor_id)Student(student_id,name,class_id,major,gender,birthday)Course(course_id,course_name,college_id,credits)Instructor(instructor_id,name,major,gender,birthday,title,phone,college_id)teaches(instructor_id,course_id,semester,year)takes(student_id,course_id,grade)prereq(

course_id,prereq_id)6.4數(shù)據(jù)庫邏輯設(shè)計(jì)6.4.3數(shù)據(jù)庫的外模式設(shè)計(jì)數(shù)據(jù)庫的外模式,即用戶子模式。關(guān)系數(shù)據(jù)庫管理系統(tǒng)中提供的視圖是根據(jù)用戶子模式設(shè)計(jì)的。這一階段任務(wù)是根據(jù)系統(tǒng)需求,設(shè)計(jì)相應(yīng)用戶視圖。設(shè)計(jì)用戶視圖時(shí),只考慮用戶對數(shù)據(jù)的使用要求、習(xí)慣及安全性要求,不用考慮系統(tǒng)的時(shí)間效率、空間效率和維護(hù)等問題。設(shè)計(jì)中盡量使用符合用戶習(xí)慣的別名,對不同權(quán)限用戶設(shè)計(jì)不同視圖,以保證系統(tǒng)安全。除此之外,將應(yīng)用系統(tǒng)中經(jīng)常使用的一些復(fù)雜查詢設(shè)計(jì)成視圖,方便用戶使用。6.4數(shù)據(jù)庫邏輯設(shè)計(jì)6.4.3數(shù)據(jù)庫的外模式設(shè)計(jì)【例6-5】創(chuàng)建視圖顯示當(dāng)前學(xué)期所有學(xué)生選修的課程及成績。CREATEVIEWcurrent_transcriptAS

SELECTstudent.id,name,takes.course_id,title,takes.semester,takes.year,gradeFROM(studentnaturaljointakes)JOINcourseONtakes.course_id=course.course_idWHEREyear=YEAR(CURRENT_DATE)andsemester=IF(MONTH(CURRENT_DATE)>2ANDMONTH(CURRENT_DATE)<9,'Spring','Fall')ORDERBYstudent.id,takes.course_id;CREATEVIEWview_testASSELECTID,name,majorFROMstudent;本章目錄6.1數(shù)據(jù)庫設(shè)計(jì)概述6.2需求分析6.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)6.4數(shù)據(jù)庫邏輯設(shè)計(jì)6.5數(shù)據(jù)庫物理設(shè)計(jì)6.6數(shù)據(jù)庫實(shí)施與維護(hù)6.5數(shù)據(jù)庫物理設(shè)計(jì)6.5.1物理結(jié)構(gòu)設(shè)計(jì)內(nèi)容6.5.2評價(jià)物理結(jié)構(gòu)6.5數(shù)據(jù)庫物理設(shè)計(jì)6.5.1物理結(jié)構(gòu)設(shè)計(jì)內(nèi)容1.關(guān)系模式存取方法的選擇確定關(guān)系模式的存取方法即建立存取路徑。數(shù)據(jù)庫是多用戶共享的系統(tǒng),對同一關(guān)系要建立多條存取路徑才能滿足多用戶的多種應(yīng)用要求。數(shù)據(jù)庫管理系統(tǒng)常用存取方法有B+樹索引存取方法、Hash索引存取方法和聚簇存取方法。(1)

B+樹索引存取方法(2)

Hash索引存取方法的選擇(3)

聚簇存取方法的選擇6.5數(shù)據(jù)庫物理設(shè)計(jì)6.5.1物理結(jié)構(gòu)設(shè)計(jì)內(nèi)容2.設(shè)計(jì)數(shù)據(jù)庫的存儲結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫的存儲結(jié)構(gòu)需要考慮存取時(shí)間、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論