第4章 關(guān)系數(shù)據(jù)庫設(shè)計_第1頁
第4章 關(guān)系數(shù)據(jù)庫設(shè)計_第2頁
第4章 關(guān)系數(shù)據(jù)庫設(shè)計_第3頁
第4章 關(guān)系數(shù)據(jù)庫設(shè)計_第4頁
第4章 關(guān)系數(shù)據(jù)庫設(shè)計_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2022-3-7第第4 4章章 關(guān)系數(shù)據(jù)庫設(shè)計關(guān)系數(shù)據(jù)庫設(shè)計 2022-3-7內(nèi)內(nèi) 容容4.1 數(shù)據(jù)庫設(shè)計概述數(shù)據(jù)庫設(shè)計概述4.2 需求分析需求分析4.3 概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計4.4 邏輯結(jié)構(gòu)設(shè)計邏輯結(jié)構(gòu)設(shè)計4.5 物理結(jié)構(gòu)設(shè)計物理結(jié)構(gòu)設(shè)計4.6 數(shù)據(jù)庫實施數(shù)據(jù)庫實施4.7 數(shù)據(jù)庫運行和維護數(shù)據(jù)庫運行和維護小結(jié)小結(jié)2022-3-74.1數(shù)據(jù)庫設(shè)計概述數(shù)據(jù)庫設(shè)計概述 什么是數(shù)據(jù)庫設(shè)計呢?廣義地講,是數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的設(shè)計,即設(shè)計整個的數(shù)據(jù)庫應(yīng)用系統(tǒng)。狹義地講,是設(shè)計數(shù)據(jù)庫本身,即設(shè)計數(shù)據(jù)庫的各級模式并建立數(shù)據(jù)庫,這是數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計的一部分。 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)

2、境,構(gòu)造(設(shè)計)優(yōu)化的數(shù)據(jù)庫邏輯模式和物理結(jié)構(gòu),并據(jù)此建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲和管理數(shù)據(jù),滿足各種用戶的應(yīng)用需求2022-3-74.1.1數(shù)據(jù)庫的設(shè)計特點數(shù)據(jù)庫的設(shè)計特點1、“三分技術(shù),七分管理,十二分基礎(chǔ)數(shù)據(jù)” 。(基本規(guī)律)2、數(shù)據(jù)庫設(shè)計應(yīng)該和應(yīng)用系統(tǒng)設(shè)計相結(jié)合。即結(jié)構(gòu)(數(shù)據(jù)) 設(shè)計和行為(處理)設(shè)計相結(jié)合。4.1.2 數(shù)據(jù)庫設(shè)計方法數(shù)據(jù)庫設(shè)計方法 1 1新奧爾良新奧爾良(New Orleans)(New Orleans)方法方法 2 2基于基于E-RE-R模型的數(shù)據(jù)庫設(shè)計方法模型的數(shù)據(jù)庫設(shè)計方法 3 33NF(3NF(第三范式第三范式) )的設(shè)計方法的設(shè)計方法 4 4對

3、象定義語言對象定義語言 (Object Definition Language(Object Definition Language,ODL)ODL)方法方法2022-3-74.1.3 數(shù)據(jù)庫設(shè)計基本步驟數(shù)據(jù)庫設(shè)計基本步驟1需求分析階段需求分析階段 進行數(shù)據(jù)庫設(shè)計首先必須準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理需求分析)。 2概念設(shè)計階段概念設(shè)計階段 它通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型。3邏輯設(shè)計階段邏輯設(shè)計階段 將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型,并對其進行優(yōu)化。4物理設(shè)計階段物理設(shè)計階段 為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存

4、儲結(jié)構(gòu)和存取方法)。 5數(shù)據(jù)庫實施階段數(shù)據(jù)庫實施階段 設(shè)計人員運用DBMS提供的數(shù)據(jù)庫語言(如SQL)及其宿主語言,根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進行試運行。6數(shù)據(jù)庫運行和維護階段數(shù)據(jù)庫運行和維護階段 對數(shù)據(jù)庫系統(tǒng)進行評價、調(diào)整與修改。2022-3-74.1.4 數(shù)據(jù)庫設(shè)計過程中的各級模式數(shù)據(jù)庫設(shè)計過程中的各級模式應(yīng)用要求1應(yīng)用要求2應(yīng)用要求n.概念模式邏輯模式外模式1外模式2.外模式n內(nèi)模式.綜合轉(zhuǎn)換2022-3-74.2 需求分析需求分析 主要任務(wù):主要任務(wù):通過詳細(xì)調(diào)查現(xiàn)實世界要處理的對象(部門、企業(yè)等),充分了解原系統(tǒng)工作概況,明確用戶的各

5、種需求明確用戶的各種需求,然后在此基礎(chǔ)上確定確定新系統(tǒng)的功能新系統(tǒng)的功能。通過調(diào)查獲得用戶如下要求:信息要求、處理要求和安全性與完整性要求 主要工作:主要工作: 收集資料:是數(shù)據(jù)庫設(shè)計人員和用戶共同完成。確定企業(yè)組織的目 標(biāo),從這些目標(biāo)導(dǎo)出數(shù)據(jù)庫的總體要求。 分析整理:對所收集到的數(shù)據(jù)進行抽象的過程。 數(shù)據(jù)流圖:采用數(shù)據(jù)流圖描述系統(tǒng)的功能。 數(shù)據(jù)字典:是系統(tǒng)中各類數(shù)據(jù)描述的集合,包括數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、 數(shù)據(jù)流、數(shù)據(jù)存儲和處理過程。 用戶確認(rèn):需求分析得到的數(shù)據(jù)流圖和數(shù)據(jù)字典要返回給用戶,通過 反復(fù)完善,最終取得用戶的認(rèn)可。2022-3-74.3 概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計4.3.1 設(shè)計策略及步

6、驟設(shè)計策略及步驟 設(shè)計策略:設(shè)計策略:自頂向下自頂向下。首先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化。 自底向上。自底向上。首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu)。逐步擴張。逐步擴張。首先定義最重要的核心概念結(jié)構(gòu),然后向外擴充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu)?;旌喜呗?。混合策略。即將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計一個全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計的各局部概念結(jié)構(gòu)。2022-3-7主要步驟主要步驟 進行數(shù)據(jù)抽象,設(shè)計局部概念模式 將局部概念模式綜合成全局概念模式 評審用戶評審用戶評審:重點放在確認(rèn)全局概念模式是否

7、準(zhǔn)確、完整地反映了用戶的信息需求和現(xiàn)實世界事物的屬性間的固有聯(lián)系;DBA和應(yīng)用開發(fā)人員評審和應(yīng)用開發(fā)人員評審:側(cè)重于確認(rèn)全局結(jié)構(gòu)是否完整,各種成分劃分是否合理,是否存在不一致性,以及各種文檔是否齊全等。2022-3-7人腦的認(rèn)識抽象轉(zhuǎn)換現(xiàn)實世界信息世界數(shù)據(jù)世界現(xiàn)實世界問題事物及其聯(lián)系概念模型實體及其聯(lián)系數(shù)據(jù)模型數(shù)據(jù)及其聯(lián)系4.3.2 概念模型概念模型1數(shù)據(jù)處理的三個世界數(shù)據(jù)處理的三個世界(1)現(xiàn)實世界:客觀存在的世界中事物及其聯(lián)系。(2)信息世界:是指現(xiàn)實世界在人的頭腦中的反映。是對客觀事物及其聯(lián)系的 一種抽象描述,一般 采用實體-聯(lián)系方法表示。(3)數(shù)據(jù)世界:指信息世界中的信息在計算機中的數(shù)

8、據(jù)存 儲。信息世界中的實體及其聯(lián)系將被轉(zhuǎn)換成數(shù)據(jù)世界中的數(shù)據(jù)及聯(lián)系,這種聯(lián)系是 用數(shù)據(jù)模型表示的。2022-3-72. 概念模型的基本概念概念模型的基本概念 實體:實體:(Entity)是指客觀存在且可區(qū)別于其他對象的事物。實體可以是具體的對象,如一個產(chǎn)品、一個倉庫、一艘船、一個房子、一個學(xué)生、一門課程等;實體也可以是抽象的事件,如一次訂貨、一次購房、一次選課等。 實體集:實體集:實體集(Entity set)是具有相同類型和相同性質(zhì)的實體的集合。 實體型和實體值:實體型和實體值:用于描述和抽象同一實體集共同特征的實體名及其屬性名的集合稱為實體型(Entity type)。 屬性:屬性:實體集

9、中的每個成員所具有的某一特性。屬性的取值范圍稱為屬性的域。2022-3-7簡單屬性和復(fù)合屬性。簡單屬性和復(fù)合屬性。不能再劃分的屬性稱為簡單屬性,可進一步劃分成更小部分的屬性稱為復(fù)合屬性。單值屬性和多值屬性。單值屬性和多值屬性。如果實體集中的每一個實體在某個屬性上的值是單一的,則該屬性就是單值屬性。反之,如果對于實體集中的某個具體實體而言,某個屬性的值可能對應(yīng)一組值,則該屬性就是多值屬性。 Null屬性。屬性。當(dāng)暫時不知道某個屬性的值,或?qū)傩灾瞪形创_定時,可將屬性值設(shè)為空(Null)。派生屬性。派生屬性。如果實體的某個屬性的值可以從其他相關(guān)實體或?qū)傩灾信缮鰜恚敲丛搶傩跃褪桥缮鷮傩浴?實體的屬

10、性分類實體的屬性分類2022-3-7鍵鍵 能唯一標(biāo)識實體集中每個實體的屬性或?qū)傩越M稱為實體集的鍵(Key)。 聯(lián)系聯(lián)系 聯(lián)系(Relationship)是實體集之間的一個關(guān)聯(lián)。每個聯(lián)系都有一個名字,每個聯(lián)系都可以具有描述性屬性。2022-3-7 一對一(記為“1:1”):如果對于實體集E1中的每個實體,在實體集E2中至多只有一個實體與之相對應(yīng),反之亦然。 一對多(記為“1:n”):如果對于實體集E1中的每個實體,在實體集E2中有任意個(零個或多個)實體與之相對應(yīng),而對于E2中的每個實體卻至多和E1中的一個實體相對應(yīng)。 多對多(記為“n:m”):如果對于實體集E1中的每個實體,在實體集E2中有任

11、意個(零個或多個)實體與之相對應(yīng),反之亦然,聯(lián)系的類型聯(lián)系的類型實體E1聯(lián)系名實體E211實體E1聯(lián)系名實體E2n1實體E1聯(lián)系名實體E2nm2022-3-7聯(lián)系的實例、參與者和度聯(lián)系的實例、參與者和度 一個給定聯(lián)系的具體值就是該聯(lián)系的一個實例。 一個給定聯(lián)系中的實體稱為聯(lián)系的參與者。 聯(lián)系可存在于兩個實體之間,也可存在于多個實體之間;不同實體集的實體間有聯(lián)系,同一實體集的實體間也可以有聯(lián)系。 一個給定聯(lián)系中參與者的數(shù)量稱為聯(lián)系的度(Degree)。度為2的聯(lián)系稱為2元聯(lián)系,度為n(n2)的聯(lián)系稱為n元聯(lián)系。2022-3-73 三個世界的聯(lián)系三個世界的聯(lián)系現(xiàn)實世界 信息世界 數(shù)據(jù)世界事物個體事

12、物總體事物特征事物間聯(lián)系實體實體集屬性實體模型記錄文件字段數(shù)據(jù)模型2022-3-74概念模型的設(shè)計方法概念模型的設(shè)計方法 概念模型的設(shè)計方法很多,其中較早出現(xiàn)的,最著名最常用的是P.P.S.Chen于1976年提出的實體-聯(lián)系方法(Entity-Relationship Approach,E-R方法); 除此之外是統(tǒng)一建模語言(Unified Modeling Language,UML)類圖方法,該方法雖然在E-R方法之后出現(xiàn),但卻很快獲得了廣泛的應(yīng)用。2022-3-74.3.3 實體實體-聯(lián)系方法聯(lián)系方法1. E-R模型的表示方法模型的表示方法2. E-R模型的設(shè)計問題模型的設(shè)計問題3. E

13、-R模型的擴充模型的擴充4. 局部局部E-R模型的設(shè)計模型的設(shè)計5. 全局全局E-R模型的設(shè)計模型的設(shè)計2022-3-71E-R模型的表示方法模型的表示方法實體型。實體型。實體型用帶有實體名的矩形框表示。屬性。屬性。一般屬性用帶有屬性名的橢圓形框表示,多值屬性用雙橢圓形框表示,派生屬性用虛橢圓形框表示。屬性與其對應(yīng)的實體型之間用直線連接。實體集之間的聯(lián)系。實體集之間的聯(lián)系。實體集之間的聯(lián)系用帶有聯(lián)系名的菱形框表示,并用直線將聯(lián)系與相應(yīng)的實體相連接,且在直線靠近實體的那端標(biāo)上1或n等,以表明聯(lián)系的類型(1:1、1:n或m:n)。2022-3-72E-R模型的設(shè)計問題模型的設(shè)計問題 確定實體集和屬

14、性確定實體集和屬性一般來講,可以作為屬性的事物應(yīng)符合如下兩條原則: 除了復(fù)合屬性,其他屬性都不能再具有需要描述的特性。 屬性不能與其它實體發(fā)生聯(lián)系,即E-R圖中所表示的聯(lián)系是實體間的聯(lián)系。職工職工號職稱年齡姓名聘任職稱職工號附加福利工資2022-3-7病人住院號姓名病房號住在病房醫(yī)療醫(yī)生2022-3-7 確定實體集間的聯(lián)系確定實體集間的聯(lián)系 從如圖4.14所示的E-R模型中可以得到如下的信息:課程信息、教師信息以及某門課程是由哪幾個教師教授的,某位教師教授了哪幾門課。但無法了解教師在教授某門課程時,是在什么時間、哪一間教室教授的?有哪些學(xué)生修讀該課程?如果這些都是用戶所關(guān)心的問題,就必須在E-

15、R模型中體現(xiàn)出來。2022-3-73E-R模型的擴充模型的擴充 (1) 弱實體在現(xiàn)實世界中,有些實體的存在必須依賴于其它實體,這樣的實體稱為弱實體,其他實體則被稱為常規(guī)實體。 (2) 超類和子類 概括定義了類型之間的一種子集聯(lián)系。例如:學(xué)生、本科生、研究生。建筑物單元住宅組成1n學(xué)生本科生研究生2022-3-7數(shù)據(jù)抽象:對實際的人、事、物和概念進行人為處理,抽取關(guān)心的共同特性,忽略非本質(zhì)的細(xì)節(jié),并把這些特性用各種概念精確地加以描述,這些概念組成了某種模型。 分類:定義某一類概念作為現(xiàn)實世界中一組對象的類型。這些對象具有某些共同的特性和行為。抽象了對象值與型之間的“is menber of ”的

16、語義 聚集:定義某一類型的組成成分。抽象了對象內(nèi)部類型和成分之間的“is part of ”的語義 概括:定義類型之間的一種子集聯(lián)系。抽象類型之間的“is subset of ”的語義4局部局部E-R模型的設(shè)計模型的設(shè)計學(xué)生張英王平趙斌學(xué)生學(xué)號姓名專業(yè)分類聚集學(xué)生本科生研究生概括2022-3-7 選擇局部應(yīng)用:選擇適當(dāng)層次的子系統(tǒng),設(shè)計各個局部E-R圖工廠管理信息系統(tǒng)物資管理銷售管理人事管理逐一設(shè)計每一局部結(jié)構(gòu)的E-R圖2022-3-75全局全局E-R模型的設(shè)計模型的設(shè)計請按鍵請按鍵 合并局部合并局部E-R模型,生成初步模型,生成初步E-R圖圖 方式:一次集成 逐步集成 依次取出所有的局部E-

17、R模型,進行合并,直至所有的局部E-R模型都合并完為止。在合并過程中要檢查并消除局部E-R模型間的一些沖突即合并分兩步走 合并:解決各分E-R圖之間的沖突,形成初步E-R圖。 修改和重構(gòu):消除不必要的冗余,生成基本E-R圖。 2022-3-7屬性沖突屬性沖突 包括屬性域沖突和屬性取值單位的沖突。 屬性域的沖突:屬性域的沖突: 指同一屬性在不同局部E-R模型中有不同數(shù)據(jù)類型、取值范圍或取值集合。 命名沖突命名沖突 同名異義:同名異義: 是指具有不同意義的對象在不同的局部E-R 模型中卻使用了相同的名字。 異名同義:異名同義: 是指具有同一意義的對象在不同的局部E-R 模型中卻使用了不同的名字。a

18、. 合并合并2022-3-7結(jié)構(gòu)沖突結(jié)構(gòu)沖突同一對象在不同的局部E-R模型中具有不同的抽象,例如:職工同一實體在不同的局部E-R模型中包含不同的屬性個數(shù)和排列次序?qū)嶓w間的聯(lián)系在不同的局部E-R模型中具有不同的類型。供應(yīng)商供應(yīng)m數(shù)量零件n產(chǎn)品p構(gòu)成m零件n產(chǎn)品數(shù)量供應(yīng)商供應(yīng)m數(shù)量1零件n產(chǎn)品p構(gòu)成mn數(shù)量2綜合2022-3-7 消除冗余數(shù)據(jù)和冗余聯(lián)系,設(shè)計基本消除冗余數(shù)據(jù)和冗余聯(lián)系,設(shè)計基本E-R圖圖m零件產(chǎn)品構(gòu)成mn零件數(shù)Q1消耗n材料1存放倉庫mn使用n數(shù)量Q3消耗量Q2存放量Q4存放量Q52022-3-7例例1:某汽車維修公司需建立一個汽車維修數(shù)據(jù)庫,該數(shù)據(jù):某汽車維修公司需建立一個汽車維

19、修數(shù)據(jù)庫,該數(shù)據(jù)庫中需要存儲和關(guān)聯(lián)下列信息:庫中需要存儲和關(guān)聯(lián)下列信息: 車輛信息:車牌號、車型、發(fā)動機號、行駛里程、車輛所有人、聯(lián)系電話 維修項目:項目號、項目名稱、維修費 汽車備件:備件號、備件名稱、備件單價、庫存數(shù)量以上數(shù)據(jù)之間存在下列約束: 可以對一個車輛進行多個維修項目,每個維修項目可用于多個車輛,維修項目完成后要在數(shù)據(jù)庫中記錄維修時間 一種備件可用于多個維修項目,每個維修項目最多只使用一種備件,但每種備件的數(shù)量可以是多個 根據(jù)以上需求構(gòu)建該數(shù)據(jù)庫的概念模型2022-3-7例例2:現(xiàn)有某圖書銷售數(shù)據(jù)庫,其關(guān)系表結(jié)構(gòu)如下:現(xiàn)有某圖書銷售數(shù)據(jù)庫,其關(guān)系表結(jié)構(gòu)如下:圖書表(圖書編號、圖書名

20、稱、出版社編號、出版社名稱、出版時間、出版數(shù)量、版次)圖書銷售表(圖書編號、銷售日期、銷售數(shù)量、書店編號、讀者編號、讀者姓名、讀著電話)書店表(書店編號、聯(lián)系電話、所在城市編號、城市名稱)該系統(tǒng)所涉及的數(shù)據(jù)存在如下約束:一個出版社可以出版多本圖書,一本圖書只能在一個出版社出版,在該系統(tǒng)記錄的圖書出版社信息包括出版時間 、版次及出版數(shù)量信息一個書店可以出售多本圖書給多個讀者,每位讀者可以從多個書店購買多本圖書,一本圖書可以通過多個書店售給讀者,書店把圖書出售給讀者之后會在系統(tǒng)中記錄售書日期和售書數(shù)量信息。一個書店只能位于一個城市,一個城市可以有多個書店請根據(jù)以上信息畫出合理的圖書銷售數(shù)據(jù)庫的概念

21、模型(E-R圖表示)以圖書銷售表為例說明原數(shù)據(jù)庫設(shè)計的不合理之處I.給出該數(shù)據(jù)庫符合3NF要求的全部關(guān)系模式,并給出關(guān)系模式中的全部主碼和外碼2022-3-74.4 邏輯結(jié)構(gòu)設(shè)計邏輯結(jié)構(gòu)設(shè)計 概念結(jié)構(gòu)是獨立于任何一種數(shù)據(jù)模型的信息結(jié)構(gòu)。邏輯結(jié)構(gòu)設(shè)計的任務(wù)就是把概念結(jié)構(gòu)設(shè)計階段設(shè)計好的基本E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。 設(shè)計邏輯結(jié)構(gòu)的步驟:設(shè)計邏輯結(jié)構(gòu)的步驟: 將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型; 將轉(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換; 對數(shù)據(jù)模型進行優(yōu)化。2022-3-74.4.1 E-R模型向關(guān)系模型的轉(zhuǎn)換模型向關(guān)系模型

22、的轉(zhuǎn)換E-R模型轉(zhuǎn)換為關(guān)系模型轉(zhuǎn)換規(guī)則:轉(zhuǎn)換規(guī)則:(1)每一個實體類型轉(zhuǎn)換為一個模式,實體的屬性就是關(guān)系的屬性,實 體的碼就是關(guān)系的碼。(2)聯(lián)系的轉(zhuǎn)換一般1:1,1:m聯(lián)系不產(chǎn)生新的關(guān)系模式,而是將一方實體的碼加入到多方實體對應(yīng)的關(guān)系模式中,聯(lián)系的屬性也一并加入。M:n聯(lián)系要產(chǎn)生一個新的關(guān)系模式,該關(guān)系模式由聯(lián)系涉及實體的碼加上聯(lián)系的屬性(若有)組成。2022-3-7具體做法:具體做法:(1)兩實體間的1:1聯(lián)系例如:如下圖的E-R圖可轉(zhuǎn)換為如下關(guān)系模式:廠長工廠管理姓名性別年齡廠號廠名地點11任期工廠(廠號,廠名,地點,姓名,任期)廠長(姓名,性別,年齡)廠長(姓名,性別,年齡,廠號,任期

23、)工廠(廠號,廠名,地點)廠長(姓名,性別,年齡,)工廠(廠號,廠名,地點)管理(姓名,廠號,任期)2022-3-7(2)兩實體間的1:m聯(lián)系可將“1”方實體的主碼納入“m”方實體對應(yīng)的關(guān)系中作為外碼,同時把聯(lián)系的屬性也一并納入“m”方實體對應(yīng)的關(guān)系中。廠庫商品存儲廠庫號地點面積貨號品名價格1m數(shù)量廠庫(廠庫號,地點,面積)商品(貨號,品名,價格,廠庫號,數(shù)量)2022-3-7(3)同一實體間的1:m聯(lián)系可在這個實體所對應(yīng)的關(guān)系中多設(shè)一個屬性,作為與該實體相聯(lián)系的另一個實體的主碼。職工領(lǐng)導(dǎo)工號姓名年齡1民意測驗m職工(工號,姓名,年齡,領(lǐng)導(dǎo)者工號,民意測驗)2022-3-7(4)兩實體間的弱實

24、體聯(lián)系可將被依賴實體的主碼納入弱實體中,作為弱實體的主碼或主碼中的一部分。例如:職工親屬有姓名性別年齡親屬名親屬關(guān)系1m工號職工(工號,姓名,年齡,性別)親屬(工號,親屬姓名,親屬關(guān)系)2022-3-7(5)超類和子類的轉(zhuǎn)換 超類,子類實體都可以轉(zhuǎn)換為一個關(guān)系,并將超類實體的主碼加到子類實體中。 例如:職員飛行員機械師管理員職員(職工號,姓名,年齡,性別,參加工作時間)管理員(職工號,職務(wù),職稱)飛行員(職工號,飛行小時,健康檢查,飛機型號)機械師(職工號,學(xué)歷,級別,專業(yè)職稱)2022-3-7(6)兩實體間的m:n聯(lián)系 必須對“聯(lián)系”單獨建立一個關(guān)系,該關(guān)系中至少包含被它所聯(lián)系的雙方實體的“

25、主碼”,如果聯(lián)系有屬性,也要納入這個關(guān)系中。例:學(xué)生課程選修學(xué)號姓名性別課程號課程名學(xué)時mn成績學(xué)生(學(xué)號,姓名,年齡,性別)課程(課程號,課程名,學(xué)時)選修(學(xué)號,課程號,成績)2022-3-7(7)同一實體間的m:n聯(lián)系 必須為這個“聯(lián)系”單獨建立一個關(guān)系,該關(guān)系中至少應(yīng)包含被他所聯(lián)系的雙方實體的“主碼”,如果聯(lián)系有屬性,也要納入這個關(guān)系中。由于這個“聯(lián)系”只涉及一個實體,所以加入的實體的主碼不能同名。零部件組成代號名稱價格n數(shù)量m零部件(代號,名稱,價格)組成(代號,組成件代號,數(shù)量)2022-3-7(8)兩個以上實體間的m:n聯(lián)系 必須為這個“聯(lián)系”單獨建立一個關(guān)系,該關(guān)系中至少應(yīng)包含

26、被他所聯(lián)系的雙方實體的“主碼”,如果聯(lián)系有屬性,也要納入這個關(guān)系中。供應(yīng)商項目供應(yīng)供應(yīng)商號供應(yīng)商名地址項目名稱開工日期mp零件數(shù)項目編號零件零件號零件名數(shù)量n供應(yīng)商(供應(yīng)商號,供應(yīng)商名,地址)項目(項目編號,項目名稱,開工日期)零件(零件號,零件名,數(shù)量)供應(yīng)(供應(yīng)商號,項目編號,零件號,零件數(shù))2022-3-7練習(xí)1:設(shè)有如下實體:學(xué)生:學(xué)號,單位名稱,姓名,性別,年齡,選修課程名課程:編號,課程名,開課單位,任課教師號教師:教師號,姓名,性別,職稱,講授課程編號單位:單位名稱,電話,教師號,教師姓名上述實體中存在如下聯(lián)系: 一個學(xué)生可選修多門課程,一門課程可被多個學(xué)生選修 一個教師課講授多

27、門課程,一門課程可由多個教師講授 一個單位可有多個教師,一個教師只能屬于一個單位 完成如下工作: 分別設(shè)計學(xué)生選課和教師任課兩個局部E-R圖 將上述設(shè)計完成的E-R圖合并成一個全局E-R圖 將該全局E-R圖轉(zhuǎn)換成等價的關(guān)系模式表示的數(shù)據(jù)庫邏輯結(jié)構(gòu)2022-3-7 練習(xí)2:設(shè)一個海軍基地要建立一個艦隊管理信息系統(tǒng),它包括如下兩個方面的信息:1 艦隊方面艦隊:艦隊名稱、基地地點、艦隊數(shù)量艦艇:編號、艦艇名稱、艦隊數(shù)量2 艦艇方面艦艇:艦艇編號、艦艇名、武器名稱武器:武器名稱、武器生產(chǎn)時間、艦艇編號官兵:官兵證號、姓名、艦艇編號其中,一個艦隊可擁有多艘艦艇,一艘艦艇屬于一個艦隊;一艘艦艇可以安裝多種

28、武器,一種武器課安裝于多艘艦艇上,一艘艦艇有多個官兵,一個官兵只屬于一艘艦艇。試完成如下設(shè)計:分別設(shè)計艦隊和艦艇兩個局部E-R圖將上述兩個局部E-R圖合并為一個全局E-R圖將該全局E-R圖轉(zhuǎn)換成關(guān)系模式合并時是否存在命名沖突?如何處理?2022-3-74.4.2 關(guān)系模式的優(yōu)化關(guān)系模式的優(yōu)化 應(yīng)用關(guān)系規(guī)范化理論對上述產(chǎn)生的關(guān)系模式進行優(yōu)化。具體步驟:(1)確定每個關(guān)系模式內(nèi)部各個屬性之間的數(shù)據(jù)依賴以及不同關(guān)系模式屬性之間的數(shù)據(jù)依賴;(2)對各個關(guān)系模式之間的數(shù)據(jù)依賴進行最小化處理,消除冗余的聯(lián)系(3)確定各關(guān)系模式的范式等級(4)按照需求分析階段得到的處理要求,確定要對哪些模式進行合并或分解(

29、5)為了提高數(shù)據(jù)操作的效率和存儲空間的利用率,對上述產(chǎn)生的關(guān)系模式進行適當(dāng)?shù)男薷?、調(diào)整和重構(gòu)(對關(guān)系模式進行必要的分解)2022-3-7常用的兩種分解方法是水平分解和垂直分解。常用的兩種分解方法是水平分解和垂直分解。 水平分解是把(基本)關(guān)系的元組分為若干子集合,定義每個子集合為一個子關(guān)系,以提高系統(tǒng)的效率。根據(jù)“80/20原則”,一個大關(guān)系中,經(jīng)常被使用的數(shù)據(jù)只是關(guān)系的一部分,約20%,可以把經(jīng)常使用的數(shù)據(jù)分解出來,形成一個子關(guān)系。垂直分解是垂直分解是把關(guān)系模式R的屬性分解為若干子集合,形成若干子關(guān)系模式。垂直分解的原則是垂直分解的原則是,經(jīng)常在一起使用的屬性從R中分解出來形成一個子關(guān)系模式

30、。垂直分解可以提高某些事務(wù)的效率,但也可能使另一些事務(wù)不得不執(zhí)行連接操作,從而降低了效率。因此是否進行垂直分解取決于分解后R上的所有事務(wù)的總效率是否得到了提高。垂直分解需要確保無損連接性和保持函數(shù)依賴,即保證分解后的關(guān)系具有無損連接性和保持函數(shù)依賴性。可以用模式分解算法對需要分解的關(guān)系模式進行分解和檢查。2022-3-74.4.3設(shè)計用戶子模式設(shè)計用戶子模式全部關(guān)系模型設(shè)計完成后,還要根據(jù)局部應(yīng)用的需求,結(jié)合具體DBMS的特點,設(shè)計用戶的子模式。設(shè)計子模式時應(yīng)注意用戶的習(xí)慣和方便性,主要包括:1. 使用更符合用戶習(xí)慣的別名使用更符合用戶習(xí)慣的別名在合并各分E-R圖時,曾做了消除命名沖突的工作,

31、以使數(shù)據(jù)庫系統(tǒng)中同一關(guān)系和屬性具有唯一的名字。這在設(shè)計數(shù)據(jù)庫整體結(jié)構(gòu)時是非常必要的。用視圖機制可以在設(shè)計用戶視圖時重新定義某些屬性名,使其與用戶習(xí)慣一致,以方便使用。 2022-3-72.為不同級別用戶定義不同視圖,以保證系統(tǒng)的安全性為不同級別用戶定義不同視圖,以保證系統(tǒng)的安全性假設(shè)有關(guān)系模式產(chǎn)品(產(chǎn)品號,產(chǎn)品名,規(guī)格,單價,生產(chǎn)車間,生產(chǎn)負(fù)責(zé)人,產(chǎn)品成本,產(chǎn)品合格率,質(zhì)量等級),可以在產(chǎn)品關(guān)系上建立兩個視圖:為一般顧客建立視圖:產(chǎn)品1(產(chǎn)品號,產(chǎn)品名,規(guī)格,單價)為產(chǎn)品銷售部門建立視圖:產(chǎn)品2(產(chǎn)品號,產(chǎn)品名,規(guī)格,單價,車間,生產(chǎn)負(fù)責(zé)人)顧客視圖中只包含允許顧客查詢的屬性;銷售部門視圖中只

32、包含允許銷售部門查詢的屬性;生產(chǎn)領(lǐng)導(dǎo)部門則可以查詢?nèi)慨a(chǎn)品數(shù)據(jù)。這樣就可以防止用戶非法訪問本來不允許他們查詢的數(shù)據(jù),保證了系統(tǒng)的安全性。2022-3-73. 可以將經(jīng)常使用的復(fù)雜的查詢定義為視圖,簡化用戶對系統(tǒng)的使用可以將經(jīng)常使用的復(fù)雜的查詢定義為視圖,簡化用戶對系統(tǒng)的使用如果某些局部應(yīng)用中經(jīng)常要使用某些很復(fù)雜的查詢,為了方便用戶,可以將這些復(fù)雜查詢定義為視圖,用戶每次只對定義好的視圖進行查詢,大大簡化了用戶的使用。2022-3-74.5 物理設(shè)計物理設(shè)計 數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫的物理結(jié)構(gòu)。它依賴于選定的DBMS。為一個給定的邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用要求的物理結(jié)

33、構(gòu)的過程,就是數(shù)據(jù)庫的物理設(shè)計。 2022-3-7從數(shù)據(jù)庫物理結(jié)構(gòu)角度需要解決如下幾個問題:(1)文件的組織 數(shù)據(jù)庫與文件的對應(yīng)關(guān)系、文件的組織結(jié)構(gòu)、查找碼、文件的記錄格式(2)文件的結(jié)構(gòu)與存取 如何將DB文件的邏輯記錄映射到物理文件的磁盤塊;對某種結(jié)構(gòu)的文件,如何去查找、插入、刪除和修改其中的記錄。堆文件:記錄隨機存儲在文件物理空間中順序文件:按照文件記錄在查找碼上取值大小順序排列各個記錄聚集文件:將不同關(guān)系表中有關(guān)聯(lián)關(guān)系的記錄存儲在同一磁盤塊內(nèi)索引文件:利用索引技術(shù)支持快速文件訪問的文件組織和存取方法散列文件:利用散列函數(shù)支持快速文件訪問的文件組織和存取方法4.5.1數(shù)據(jù)庫物理設(shè)計的內(nèi)容和

34、方法數(shù)據(jù)庫物理設(shè)計的內(nèi)容和方法2022-3-7(3)索引技術(shù) 當(dāng)數(shù)據(jù)庫中關(guān)系表的數(shù)目及關(guān)系表中元組的數(shù)目非常多時,如何提高DB文件的存取速度。s1li19Fs2yang20Ms3mu19Ms1C190s1C285S2C178S2C389s3C390S1li19Fs1C190s1C285S2yang20MS2C178S2C389S3mu19Ms3C390關(guān)系S關(guān)系SC聚集文件聚集索引和非聚集索引稠密索引和稀疏索引主索引和輔索引單層索引和多層索引2022-3-7關(guān)系數(shù)據(jù)庫物理設(shè)計的內(nèi)容關(guān)系數(shù)據(jù)庫物理設(shè)計的內(nèi)容通常關(guān)系數(shù)據(jù)庫物理設(shè)計的內(nèi)容主要包括:確定數(shù)據(jù)的存取方法;確定數(shù)據(jù)的存儲結(jié)構(gòu)。2022-3

35、-74.5.2 關(guān)系模式存取方法選擇關(guān)系模式存取方法選擇1. 索引存取方法的選擇索引存取方法的選擇 表的主碼(2)如果一個(或一組)屬性經(jīng)常在WHERE查詢子句中出現(xiàn),則考慮在這個(或這組)屬性上建立索引(或組合索引);(3) 如果一個屬性經(jīng)常作為最大值和最小值等聚集函數(shù)的參數(shù),則考慮在這個屬性上建立索引;(4) 如果一個(或一組)屬性經(jīng)常在連接操作的連接條件中出現(xiàn),則考慮 在這個(或這組)屬性上建立索引。(5)在ORDER BY、GROUP BY子句中出現(xiàn)的屬性2022-3-72. 聚簇存取方法的選擇聚簇存取方法的選擇 為了提高某個屬性(或?qū)傩越M)的查詢速度,把這個或這些屬性(稱為聚簇碼)上

36、具有相同值的元組集中存放在連續(xù)的物理塊稱為聚簇聚簇。聚簇功能可以大大提高按聚簇碼進行查詢的效率。 聚簇功能不但適用于單個關(guān)系,也適用于經(jīng)常進行連接操作的多個關(guān)系。即把多個連接關(guān)系的元組按連接屬性值聚集存放,聚簇中的連接屬性稱為聚簇碼。這就相當(dāng)于把多個關(guān)系按“預(yù)連接”的形式存放,從而大大提高連接操作的效率。一個數(shù)據(jù)庫可以建立多個聚簇,一個關(guān)系只能加入一個聚簇。 2022-3-7選擇聚簇存取方法步驟選擇聚簇存取方法步驟設(shè)計候選聚簇設(shè)計候選聚簇對經(jīng)常在一起進行連接操作的關(guān)系可以建立聚簇;如果一個關(guān)系的一組屬性經(jīng)常出現(xiàn)在相等比較條件中,則該單個關(guān)系可建立聚簇;如果一個關(guān)系的一個(或一組)屬性上的值重復(fù)

37、率很高,則此單個關(guān)系可建立聚簇。即對應(yīng)每個聚簇碼值的平均元組數(shù)不太少。太少了,聚簇的效果不明顯。檢查候選聚簇中的關(guān)系檢查候選聚簇中的關(guān)系,取消其中不必要的關(guān)系取消其中不必要的關(guān)系從聚簇中刪除經(jīng)常進行全表掃描的關(guān)系;從聚簇中刪除更新操作遠(yuǎn)多于連接操作的關(guān)系;不同的聚簇中可能包含相同的關(guān)系,一個關(guān)系可以在某一個聚簇中,但不能同時加入多個聚簇。要從這多個聚簇方案(包括不建立聚簇)中選擇一個較優(yōu)的,即在這個聚簇上運行各種事務(wù)的總代價最小。2022-3-73. HASH存取方法的選擇選擇HASH存取方法的規(guī)則:如果一個關(guān)系的屬性主要出現(xiàn)在等值連接條件中或主要出現(xiàn)在相等比較選擇條件中,而且滿足下列兩個條件

38、之一,則此關(guān)系可以選擇HASH存取方法。如果一個關(guān)系的大小可預(yù)知,而且不變;如果關(guān)系的大小動態(tài)改變,而且數(shù)據(jù)庫管理系統(tǒng)提供了動態(tài)HASH存取方法。2022-3-74.5.3 確定數(shù)據(jù)庫的存儲結(jié)構(gòu)確定數(shù)據(jù)庫的存儲結(jié)構(gòu)1. 確定數(shù)據(jù)的存放位置確定數(shù)據(jù)的存放位置1)不同類型數(shù)據(jù)的物理分布:數(shù)據(jù)庫備份數(shù)據(jù)、索引、數(shù)據(jù)、日志2)應(yīng)用數(shù)據(jù)的劃分與分布:使用特征3)派生屬性數(shù)據(jù)分布4)關(guān)系模式的去規(guī)范化2022-3-72. 確定系統(tǒng)配置確定系統(tǒng)配置 DBMS產(chǎn)品一般都提供了一些系統(tǒng)配置變量、存儲分配參數(shù),供設(shè)計人員和DBA對數(shù)據(jù)庫進行物理優(yōu)化。初始情況下,系統(tǒng)都為這些變量賦予了合理的默認(rèn)值。但是這些值不一定

39、適合每一種應(yīng)用環(huán)境,在進行物理設(shè)計時,需要重新對這些變量賦值,以改善系統(tǒng)的性能。 系統(tǒng)配置變量很多,這些參數(shù)值影響存取時間和存儲空間的分配,在物理設(shè)計時就要根據(jù)應(yīng)用環(huán)境確定這些參數(shù)值,以使系統(tǒng)性能最佳。 在物理設(shè)計時對系統(tǒng)配置變量的調(diào)整只是初步的,在系統(tǒng)運行時還要根據(jù)系統(tǒng)實際運行情況做進一步的調(diào)整,以期切實改進系統(tǒng)性能。2022-3-74.5.4 評價物理結(jié)構(gòu)評價物理結(jié)構(gòu) 數(shù)據(jù)庫物理設(shè)計過程中需要對時間效率、空間效率、維護代價和各種用戶要求進行權(quán)衡,其結(jié)果可以產(chǎn)生多種方案。數(shù)據(jù)庫設(shè)計人員必須對這些方案進行細(xì)致的評價,從中選擇一個較優(yōu)的方案作為數(shù)據(jù)庫的物理結(jié)構(gòu)。 評價物理數(shù)據(jù)庫的方法完全依賴于所

40、選用的DBMS,主要是從定量估算各種方案的存儲空間、存取時間和維護代價入手,對估算結(jié)果進行權(quán)衡、比較,選擇出一個較優(yōu)的合理的物理結(jié)構(gòu)。如果該結(jié)構(gòu)不符合用戶需求,則需要修改設(shè)計。 2022-3-74.6 數(shù)據(jù)庫實施數(shù)據(jù)庫實施 根據(jù)數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計和物理結(jié)構(gòu)設(shè)計結(jié)果,在計算機系統(tǒng)上建立實際的數(shù)據(jù)庫結(jié)構(gòu)、導(dǎo)入數(shù)據(jù)并進行程序的調(diào)試1 定義數(shù)據(jù)庫的結(jié)構(gòu)定義數(shù)據(jù)庫的結(jié)構(gòu)利用給定的DBMS所提供的命令,建立數(shù)據(jù)庫的模式、外模式和內(nèi)模式。對關(guān)系數(shù)據(jù)庫來說,就是創(chuàng)建數(shù)據(jù)庫、建立數(shù)據(jù)庫中所包含的各個基本表、視圖、索引等等。這部分的工作可以用SQL語句中的CREATE DATABASE、CREATE TABLE

41、、CREATE VIEW和CREATE INDEX命令來完成。 2022-3-72. 數(shù)據(jù)裝載數(shù)據(jù)裝載 篩選數(shù)據(jù) 轉(zhuǎn)換數(shù)據(jù)格式 輸入數(shù)據(jù) 校驗數(shù)據(jù)3. 應(yīng)用程序的編制調(diào)試應(yīng)用程序的編制調(diào)試 與數(shù)據(jù)載入同時進行的工作是應(yīng)用程序的編制和調(diào)試。 在所編寫的應(yīng)用程序中一定會用到嵌入式SQL語句來進行數(shù)據(jù)庫數(shù)據(jù)查詢和更新; 其中查詢可以用SELECT語句,而與更新有關(guān)的語句則包括INSERT、DELETE和UPDATE語句,當(dāng)然一般還會使用游標(biāo)游標(biāo)進行數(shù)據(jù)操作。2022-3-74 數(shù)據(jù)庫的試運行數(shù)據(jù)庫的試運行 在所有的程序模塊都通過了調(diào)試以后,就需要將它們聯(lián)合起來進行調(diào)試。這一過程稱為數(shù)據(jù)庫的試運行數(shù)據(jù)庫的試運行。 在數(shù)據(jù)庫的試運行過程中,不僅要測試程序的各功

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論