《數(shù)據(jù)庫原理及應(yīng)用(第二版)》課件 第6章 數(shù)據(jù)庫設(shè)計和建模工具_第1頁
《數(shù)據(jù)庫原理及應(yīng)用(第二版)》課件 第6章 數(shù)據(jù)庫設(shè)計和建模工具_第2頁
《數(shù)據(jù)庫原理及應(yīng)用(第二版)》課件 第6章 數(shù)據(jù)庫設(shè)計和建模工具_第3頁
《數(shù)據(jù)庫原理及應(yīng)用(第二版)》課件 第6章 數(shù)據(jù)庫設(shè)計和建模工具_第4頁
《數(shù)據(jù)庫原理及應(yīng)用(第二版)》課件 第6章 數(shù)據(jù)庫設(shè)計和建模工具_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第6章

數(shù)據(jù)庫設(shè)計和建模工具本章要點掌握數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計過程掌握E-R圖向關(guān)系模式的轉(zhuǎn)換方法掌握數(shù)據(jù)庫建模工具的使用一、數(shù)據(jù)庫設(shè)計概述數(shù)據(jù)庫設(shè)計是建立數(shù)據(jù)庫應(yīng)用系統(tǒng)的核心和基礎(chǔ)。數(shù)據(jù)庫設(shè)計要求對指定的應(yīng)用環(huán)境構(gòu)造出較優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用,使系統(tǒng)能有效地存儲數(shù)據(jù),并滿足用戶的各種應(yīng)用需求。1、數(shù)據(jù)庫設(shè)計的任務(wù)和內(nèi)容2、數(shù)據(jù)庫設(shè)計的基本步驟可將數(shù)據(jù)庫設(shè)計分為6個階段:需求分析;概念結(jié)構(gòu)設(shè)計;邏輯結(jié)構(gòu)設(shè)計;物理結(jié)構(gòu)設(shè)計;數(shù)據(jù)庫實施;數(shù)據(jù)庫運行和維護。一、數(shù)據(jù)庫設(shè)計概述需求分析階段主要是準確把握用戶的需求,對用戶的需求進行分析和處理。需求分析是整個數(shù)據(jù)庫設(shè)計過程的基礎(chǔ),要收集數(shù)據(jù)庫所有用戶的數(shù)據(jù)需求和處理需求,并加以分析處理。這是最費時、最復(fù)雜的一步,也是最重要的一步,決定了以后各個步驟設(shè)計的速度與質(zhì)量。需求分析如果做得不好,可能會導(dǎo)致整個數(shù)據(jù)庫設(shè)計返工重做。在分析用戶需求時,要確保用戶目標的一致性。二、需求分析1、需求分析的任務(wù)需求分析階段包括以下任務(wù):調(diào)查分析用戶活動調(diào)查組織機構(gòu)情況,包括該組織的部門組成情況,各部門的職責(zé)和任務(wù)等;調(diào)查各部門的業(yè)務(wù)活動情況,包括各部門輸入和輸出的數(shù)據(jù)與格式,所需的表格,加工處理這些數(shù)據(jù)的步驟等。收集和分析需求數(shù)據(jù),確定系統(tǒng)邊界在熟悉業(yè)務(wù)活動的基礎(chǔ)上,協(xié)助用戶明確對新系統(tǒng)的各種需求,包括用戶的信息需求、處理需求、安全性和完整性的需求等。編寫需求分析說明書系統(tǒng)分析階段的最后是編寫系統(tǒng)分析報告,通常稱為需求規(guī)范說明書。需求規(guī)范說明書是對需求分析階段的一個總結(jié)。二、需求分析

1、需求分析的任務(wù)2、需求分析的方法用命名的箭頭表示數(shù)據(jù)流,用圓圈表示處理,用雙杠表示存儲。需求分析的方法主要有結(jié)構(gòu)化分析方法(SA方法)和面向?qū)ο蠓治龇椒ǎ∣OA方法)。使用SA方法,任何一個系統(tǒng)都可抽象為數(shù)據(jù)流圖。數(shù)據(jù)流圖表達了數(shù)據(jù)和處理過程的關(guān)系。以下是一個數(shù)據(jù)流圖示例。(1)數(shù)據(jù)流圖二、需求分析

2、需求分析的方法系統(tǒng)模塊圖用于描述軟件應(yīng)該具有哪些功能模塊,每個功能模塊具有什么功能應(yīng)進行說明。(2)系統(tǒng)功能模塊圖二、需求分析

2、需求分析的方法用例圖是用戶與開發(fā)人員交流的一種重要的方式,是對用戶需求的一種描述。開發(fā)人員從用戶的角度整體上理解系統(tǒng)的功能。(3)用例圖二、需求分析

<<include>>是包含關(guān)系,<<extend>>是擴展關(guān)系。顧客進行注冊時,需要輸入手機號、密碼、確認密碼,因此是一種包含關(guān)系;顧客進行登錄時,可能忘記密碼了,這時才需要執(zhí)行“找回密碼”操作,“找回密碼”是在特定的情況下才執(zhí)行,因此“登錄”用例和“找回密碼”用例是擴展關(guān)系。顧客登錄后搜索圖書,查看圖書詳情,將圖書加入購物車,加入購物車時需要輸入數(shù)量,因此,這幾個用例有先后依賴關(guān)系。2、需求分析的方法業(yè)務(wù)流程圖是描述管理系統(tǒng)內(nèi)各單位和人員之間的業(yè)務(wù)關(guān)系、作業(yè)順序和管理信息流向的圖表。(4)業(yè)務(wù)流程圖二、需求分析

概念結(jié)構(gòu)設(shè)計就是將需求分析得到的用戶需求抽象為信息結(jié)構(gòu),即概念模型。E-R方法是美籍華裔計算機科學(xué)家陳品山于1976年提出的entity-relationshipapproach(實體聯(lián)系方法)的簡稱,是描述現(xiàn)實世界概念結(jié)構(gòu)模型的有效方法。用E-R方法建立的概念結(jié)構(gòu)模型稱為E-R模型,或稱為E-R圖。E-R圖由實體、屬性和聯(lián)系構(gòu)成。實體與屬性都是客觀存在并可互相區(qū)分的事物。屬性是用于描述實體的某一特征的,而且其本身有一定意義,不再需要描述。實體必須用一組表示其特征的屬性來描述。聯(lián)系是指實體之間存在的對應(yīng)關(guān)系,一般可分為一對一的聯(lián)系(1∶1)、一對多的聯(lián)系(1∶n)、多對多的聯(lián)系(m∶n)三種。三、概念結(jié)構(gòu)設(shè)計

E-R圖設(shè)計最重要的任務(wù)是找出系統(tǒng)中的實體和實體之間的關(guān)系,最后確定實體的屬性。對于一個復(fù)雜的系統(tǒng),實體可能比較多,實體的屬性也比較多,E-R圖的首要任務(wù)是找出哪些是實體,哪些是屬性。實體和屬性是相對而言的,往往需要根據(jù)實際情況進行必要的調(diào)整。在調(diào)整中要遵循兩條原則:1.實體具有描述信息,而屬性沒有。即屬性必須是不可分的數(shù)據(jù)項,不能再由另一些屬性組成。2.屬性不能與其他實體具有關(guān)系,關(guān)系只能發(fā)生在實體與實體之間。三、概念結(jié)構(gòu)設(shè)計

(a)班級和學(xué)院作為屬性(b)學(xué)院作為實體(c)班級、學(xué)院作為實體例:三、概念結(jié)構(gòu)設(shè)計

【例6-1】

根據(jù)以下需求設(shè)計一個教務(wù)管理系統(tǒng)的數(shù)據(jù)庫E-R圖。業(yè)務(wù)描述:系統(tǒng)需要登記班級、學(xué)生、課程、教師信息。班級有班號、班名、年級;學(xué)生有學(xué)號、學(xué)生姓名、性別;課程有課號、課程名、學(xué)期;教師有教師編號、教師姓名。一名教師可以上多門課,一門課只能由一名教師上。學(xué)生需要在網(wǎng)上選課,但能選哪些課也是有一定范圍的,不能在全校的所有課程中選,可由教務(wù)管理人員指定哪些課程可以由哪些班級的學(xué)生選課。一個學(xué)生可以選多門課,一門課可以被多個學(xué)生選。三、概念結(jié)構(gòu)設(shè)計

【例6-1】

課程教師班級學(xué)生包含分配授課1nnmn1說明班名年級教師編號教師姓名學(xué)號性別課程名學(xué)期課號學(xué)生姓名選課nm成績?nèi)?、概念結(jié)構(gòu)設(shè)計

教師與課程的關(guān)系是一對多,表示一個教師教多門課程,但一門課程只有一個教師教,如果同一門課有多個教師教,需要在課程實體中添加多個實體實例,即課程實體的實體實例是某個教師教的某門課程。如果教師與課程的關(guān)系設(shè)計為多對多,則不能明確學(xué)生選修的課程的授課教師。學(xué)生與教師沒有直接關(guān)系,因為學(xué)生與課程有關(guān),教師也與課程相關(guān),學(xué)生與教師是通過課程產(chǎn)生了關(guān)系,是一種間接關(guān)系?!纠?-2】根據(jù)以下一個車輛管理系統(tǒng)的業(yè)務(wù)描述,設(shè)計一個E-R圖。業(yè)務(wù)描述:一個車輛管理系統(tǒng)中需要維護車隊、司機和車輛信息,其中,車隊的信息有車隊編號、車隊名稱、電話;車輛的信息有車牌號、生產(chǎn)商、出廠日期;司機的信息有司機編號、姓名、電話。每個車隊可聘用若干司機,但每個司機只能應(yīng)聘于一個車隊,車隊聘用司機有個聘期;每個車隊可擁有若干車輛,但每輛車只能屬于一個車隊;司機使用車輛需要填報使用日期和公里數(shù),每個司機可使用多輛汽車,每輛汽車可被多個司機使用。三、概念結(jié)構(gòu)設(shè)計

三、概念結(jié)構(gòu)設(shè)計

【例6-2】車輛和司機的關(guān)系是多對多的關(guān)系,車隊和車輛是一對多的關(guān)系,車隊與司機是一對多的關(guān)系。注意圖中聘用關(guān)系不能省去,雖然車隊與車輛、車輛與司機都建立了關(guān)系,但車輛與司機的關(guān)系是使用關(guān)系,如果司機沒有使用車輛,就不知道這個司機屬于哪個車隊,因此,需要建立司機與車隊的聘用關(guān)系,以確定司機屬于哪個車隊?!纠?-3】根據(jù)以下一個消防報警系統(tǒng)的業(yè)務(wù)描述,設(shè)計一個E-R圖。業(yè)務(wù)描述:一個單位有若干建筑物,每個建筑物有若干樓層,每個樓層使用一個平面圖,每個樓層安裝了許多消防報警器,要求記錄報警器的安裝位置(如102房間、過道東側(cè)等)并記錄其在平面圖中的X、Y坐標。建筑物的信息有建筑物編號、建筑物名稱、用途;消防報警器的信息有報警器編號、設(shè)備碼、類型。當(dāng)某個消防報警器報警時,系統(tǒng)應(yīng)能記錄報警信息,報警信息指明哪一個消防報警器在什么時間報警,并能知道報警發(fā)生的建筑物、樓層、安裝位置、平面圖中的坐標位置。三、概念結(jié)構(gòu)設(shè)計

【例6-3】將樓層作為實體,將平面圖作為樓層的屬性,平面圖在數(shù)據(jù)庫中只記錄其存放路徑,而不記錄圖片本身,圖片本身可以存放在本地目錄下或遠程服務(wù)器中。報警信息與消防報警器進行關(guān)聯(lián),當(dāng)發(fā)生報警時,可以獲知報警的消防報警器,找到安裝位置及坐標;通過消防報警器與樓層的關(guān)系,可以獲知樓層,找到平面圖;通過建筑物與樓層的關(guān)系,可以獲知建筑物。三、概念結(jié)構(gòu)設(shè)計

數(shù)據(jù)庫邏輯設(shè)計的任務(wù)就是將概念結(jié)構(gòu)轉(zhuǎn)換成特定DBMS所支持的數(shù)據(jù)模型。(ER圖轉(zhuǎn)換為邏輯數(shù)據(jù)模型)表6-2三個世界術(shù)語對比現(xiàn)實世界信息世界計算機世界事物總體實體表事務(wù)個體實體實例記錄特征屬性字段事物之間的聯(lián)系實體模型數(shù)據(jù)模型四、邏輯結(jié)構(gòu)設(shè)計

E-R圖轉(zhuǎn)換為關(guān)系模型規(guī)則:一個實體轉(zhuǎn)換為一個表,實體的屬性就是表的屬性,實體的標識符就是表的關(guān)鍵字,實體之間的關(guān)系轉(zhuǎn)換分三種不同的情況:一個1:1關(guān)系可以轉(zhuǎn)換為一個獨立的關(guān)系表,也可以與任意一端所對應(yīng)的關(guān)表合并。一個1:n關(guān)系可以轉(zhuǎn)換為一個獨立的表,也可以與n端所對應(yīng)的表合并。一個m:n關(guān)系轉(zhuǎn)換為一個表。3個或3個以上實體間的一個多元關(guān)系可以轉(zhuǎn)換為一個表。四、邏輯結(jié)構(gòu)設(shè)計

【例6-4】將1:1關(guān)系的E-R圖轉(zhuǎn)換為關(guān)系模型1管理1部門經(jīng)理經(jīng)理號姓名部門號部門名方法一:將關(guān)系合并到部門端部門表(部門號,部門名,經(jīng)理號)。經(jīng)理表(經(jīng)理號,經(jīng)理名,電話)。方法二:將關(guān)系合并到經(jīng)理端部門表(部門號,部門名)。經(jīng)理表(經(jīng)理號,部門號(FK),經(jīng)理名,電話)。方法三:將關(guān)系轉(zhuǎn)換為獨立的表

部門表(部門號,部門名)。經(jīng)理表(經(jīng)理號,經(jīng)理名,電話)。部門-經(jīng)理表(經(jīng)理號

,部門號)。

四、邏輯結(jié)構(gòu)設(shè)計

【例6-5】將1:n關(guān)系的E-R圖轉(zhuǎn)換為關(guān)系模型n1玩具有商標玩具ID玩具名單價商標ID商標名方法一:將關(guān)系合并在n端商標表(商標ID,商標名)。玩具表(玩具ID,玩具名,商標ID)。方法二:將關(guān)系轉(zhuǎn)換為獨立的表商標表(商標ID,商標名)。玩具表(玩具ID,玩具名,單價,產(chǎn)地)。商標-玩具表(商標ID,玩具ID)四、邏輯結(jié)構(gòu)設(shè)計

商標表玩具表商標ID商標名玩具ID玩具名商標ID1樂高000001創(chuàng)意顆粒12匯樂000002移動起重機13貝恩施000003滾輪挖掘機2000004犀牛發(fā)射器2000005真龍水槍2000006遙控賽車3表中的數(shù)據(jù)體現(xiàn)了:一個商標多種玩具,一種玩具一個商標,商標與玩具的關(guān)系是一對多關(guān)系。四、邏輯結(jié)構(gòu)設(shè)計

【例6-5】【例6-6】

將m:n關(guān)系的E-R圖轉(zhuǎn)換為關(guān)系模型

nm玩具購買購物者購物者名玩具ID玩具名單價購物者ID數(shù)量只有一種轉(zhuǎn)換方法:將關(guān)系轉(zhuǎn)換為一個獨立的表購物者表(購物者ID,購物者名,性別,地址)。玩具表(玩具ID,玩具名,單價,產(chǎn)地)。購物者-玩具表(購物者ID,玩具ID,數(shù)量)四、邏輯結(jié)構(gòu)設(shè)計

【例6-6】

將m:n關(guān)系的E-R圖轉(zhuǎn)換為關(guān)系模型(續(xù))

購物者-玩具表購物者ID玩具ID數(shù)量100000110100000220200000130200000320200000450300000440一個購物者ID對應(yīng)多個玩具ID,一個玩具ID對應(yīng)著多個購物者ID,這正體現(xiàn)了購物者和玩具是多對多的關(guān)系。四、邏輯結(jié)構(gòu)設(shè)計

【例6-7】將圖6-13所示的E-R圖轉(zhuǎn)換為關(guān)系模型玩具商標訂單購物者下單包含具有n1nmn1數(shù)量訂單號下單時間商標編號商標名稱帳號密碼姓名玩具編號名稱價格購物者編號玩具(玩具編號,名稱,價格,商標編號)訂單(訂單號,下單時間,購物者編號)商標(商標編號,商標名稱)購物者(購物者編號,帳號,密碼姓名)訂單細節(jié)(訂單號,玩具編號,數(shù)量)四、邏輯結(jié)構(gòu)設(shè)計

物理結(jié)構(gòu)設(shè)計的任務(wù)是為了有效地實現(xiàn)邏輯模式,確定所采取的存儲策略。此階段是以邏輯設(shè)計的結(jié)果作為輸入,結(jié)合具體DBMS的特點與存儲設(shè)備的特性進行設(shè)計,選定數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)和存取方法。主要內(nèi)容包括以下幾個方面:(1)選擇數(shù)據(jù)庫產(chǎn)品,使用SQLServer、Oracle、MySQL或其它?(2)確定字段的數(shù)據(jù)類型與長度(3)確定存儲引擎,InnoDB還是MyISAM?(4)確定存儲文件存放位置,數(shù)據(jù)文件放哪里?日志文件放哪里?(5)確定主鍵、外鍵和索引。(6)根據(jù)選擇的DBMS的特性,設(shè)計相關(guān)參數(shù),如緩沖池大小等。四、物理結(jié)構(gòu)設(shè)計

數(shù)據(jù)庫實施是指邏輯設(shè)計完成后,根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果,在計算機上建立實際的數(shù)據(jù)庫結(jié)構(gòu)、裝入數(shù)據(jù)、進行測試和試運行的過程。數(shù)據(jù)庫的實施主要包括:建立實際數(shù)據(jù)庫結(jié)構(gòu)裝入數(shù)據(jù)編制與調(diào)試應(yīng)用程序數(shù)據(jù)庫試運行整理文檔五、數(shù)據(jù)庫的實施與維護ER-Studio最早是由美國EmbarcaderoTechnologies公司開發(fā)的一種有助于設(shè)計數(shù)據(jù)庫中各種數(shù)據(jù)結(jié)構(gòu)和邏輯關(guān)系的可視化工具,后來EmbarcaderoTechnologies公司被IDERA公司收購。ER/Studio可用于特定平臺的物理數(shù)據(jù)庫的設(shè)計和構(gòu)造,特別是其強大和多層次的數(shù)據(jù)庫設(shè)計功能不僅大大簡化了數(shù)據(jù)庫設(shè)計的繁瑣工作,提高了工作效率和縮短了項目開發(fā)時間,還能讓初學(xué)者能夠更好地了解數(shù)據(jù)庫理論知識和數(shù)據(jù)庫的設(shè)計。通過ER/Studio,不僅可以設(shè)計數(shù)據(jù)庫E-R圖,還可以將E-R圖轉(zhuǎn)換為關(guān)系模型,最后可以自動生成創(chuàng)建數(shù)據(jù)表的SQL命令,通過執(zhí)行自動生成的SQL命令,可以創(chuàng)建設(shè)計的數(shù)據(jù)表,大大簡化了工作量。ER/Studio老版本為ER-Studio8.0,最新版本分為ER/StudioDataArchitect19.1。六、數(shù)據(jù)庫建模工具ER-Studio1、建立數(shù)據(jù)庫邏輯模型六、數(shù)據(jù)庫建模工具ER-Studio第一步:打開ER-Studio程序,單擊“File”菜單的“New…”子菜單,彈出如圖6-14所示的對話框,默認第一項創(chuàng)建一個數(shù)據(jù)庫模型。第二步:在模型工作區(qū)點擊右鍵菜單選擇“InsertEntity”子菜單,也可以通過菜單“insert”->“entity”創(chuàng)建實體。1、建立數(shù)據(jù)庫邏輯模型六、數(shù)據(jù)庫建模工具ER-Studio第三步:創(chuàng)建相應(yīng)的實體后,就會在模型工作區(qū)顯示實體,雙擊實體進入圖6-17所示的實體編輯對話框。在“EntityName”里輸入實體名,在“TableName”里輸入表名,在下方的“AttributName”里輸入屬性字段名,在“DefaultColumnName”里輸入列名,在“Datatype”中選取屬性字段的數(shù)據(jù)類型;六、數(shù)據(jù)庫建模工具ER-Studio1、建立數(shù)據(jù)庫邏輯模型六、數(shù)據(jù)庫建模工具ER-Studio第四步:在實體創(chuàng)建完成后,接下來要創(chuàng)建各個實體之間的邏輯關(guān)系,在ER-Studio中,可以在工具欄中選擇關(guān)系。(1)Identifying

Relationship”表示一對多標識關(guān)系,父實體中的主鍵在子實體中作外鍵,并且在子實體作為主鍵中的一個屬性。1、建立數(shù)據(jù)庫邏輯模型六、數(shù)據(jù)庫建模工具ER-Studio(2)“Non-IdentifyingRelationship,MandatoryRelationship”表示一對多非標識強制關(guān)系,父實體中的主鍵在子實體中作外鍵,不作為子實體的主鍵的屬性,但要求外鍵值不能取空值。1、建立數(shù)據(jù)庫邏輯模型六、數(shù)據(jù)庫建模工具ER-Studio(3)“Non-IdentifyingRelationship,OptionalRelationship”表示一對多非標識可選關(guān)系,父實體中的主鍵在子實體中作外鍵,不作為子實體的主鍵的屬性,外鍵值可以取空值。1、建立數(shù)據(jù)庫邏輯模型六、數(shù)據(jù)庫建模工具ER-Studio(4)“Non-SpecificRelationship”表示多對多關(guān)系。根據(jù)E-R圖向關(guān)系模型的轉(zhuǎn)換規(guī)則,一個多對多的關(guān)系將單獨轉(zhuǎn)換為一個表,當(dāng)將其轉(zhuǎn)換為關(guān)系模型后,將自動產(chǎn)生一個新表。1、建立數(shù)據(jù)庫邏輯模型六、數(shù)據(jù)庫建模工具ER-Studio由于在ER-Studio中無法編輯多對多關(guān)系的屬性,所以通常不使用這個關(guān)系,可以額外添加一個實體,通過兩個一對多標識關(guān)系來實現(xiàn)多對多的關(guān)系。1、建立數(shù)據(jù)庫邏輯模型【例6-8】根據(jù)下面的E-R圖,在ER-Studio中創(chuàng)建數(shù)據(jù)庫邏輯模型。1、建立數(shù)據(jù)庫邏輯模型六、數(shù)據(jù)庫建模工具ER-Studio【例6-9】有一個網(wǎng)上玩具銷售系統(tǒng),設(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論