數(shù)據(jù)庫設(shè)計(jì)ppt_第1頁
數(shù)據(jù)庫設(shè)計(jì)ppt_第2頁
數(shù)據(jù)庫設(shè)計(jì)ppt_第3頁
數(shù)據(jù)庫設(shè)計(jì)ppt_第4頁
數(shù)據(jù)庫設(shè)計(jì)ppt_第5頁
已閱讀5頁,還剩134頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、為什么需要設(shè)計(jì)為什么需要設(shè)計(jì)數(shù)據(jù)庫?數(shù)據(jù)庫?修建茅屋需要設(shè)計(jì)嗎?修建大廈需要設(shè)計(jì)嗎?結(jié)論:當(dāng)數(shù)據(jù)庫比較復(fù)雜時(shí)我們需要設(shè)計(jì)數(shù)據(jù)庫為什么需要設(shè)計(jì)數(shù)據(jù)庫?良好的數(shù)據(jù)庫設(shè)計(jì):q節(jié)省數(shù)據(jù)的存儲空間q能夠保證數(shù)據(jù)的完整性q方便進(jìn)行數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)糟糕的數(shù)據(jù)庫設(shè)計(jì):q數(shù)據(jù)冗余、存儲空間浪費(fèi)q內(nèi)存空間浪費(fèi)q數(shù)據(jù)更新和插入的異常什么是數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)是指對于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造(設(shè)計(jì))優(yōu)化的數(shù)據(jù)庫邏輯模式和物理結(jié)構(gòu),并據(jù)此建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲和管理數(shù)據(jù),滿足各種用戶的應(yīng)用需求,包括信息管理要求和數(shù)據(jù)操作要求。目標(biāo):為用戶和各種應(yīng)用系統(tǒng)提供一個(gè)信息基礎(chǔ)設(shè)施和高效率的運(yùn)行環(huán)境數(shù)據(jù)庫

2、設(shè)計(jì)專業(yè)人員應(yīng)具備哪些知識?數(shù)據(jù)庫的基本知識和數(shù)據(jù)庫設(shè)計(jì)技術(shù)計(jì)算機(jī)科學(xué)的基礎(chǔ)知識和程序設(shè)計(jì)的方法和技巧軟件工程的原理和方法應(yīng)用領(lǐng)域的知識數(shù)據(jù)庫設(shè)計(jì)方法手工試湊法設(shè)計(jì)質(zhì)量與設(shè)計(jì)人員的經(jīng)驗(yàn)和水平有直接關(guān)系缺乏科學(xué)理論和工程方法的支持,工程的質(zhì)量難以保證數(shù)據(jù)庫運(yùn)行一段時(shí)間后常常又不同程度地發(fā)現(xiàn)各種問題,增加了維護(hù)代價(jià)數(shù)據(jù)庫設(shè)計(jì)方法規(guī)范設(shè)計(jì)法手工設(shè)計(jì)方法基本思想:過程迭代和逐步求精典型方法新奧爾良(New Orleans)方法將數(shù)據(jù)庫設(shè)計(jì)分為四個(gè)階段 基于E-R模型的數(shù)據(jù)庫設(shè)計(jì)方法概念設(shè)計(jì)階段廣泛采用3NF(第三范式)的設(shè)計(jì)方法邏輯階段可采用的有效方法 ODL(Object Definition La

3、nguage)方法面向?qū)ο蟮臄?shù)據(jù)庫設(shè)計(jì)方法計(jì)算機(jī)輔助設(shè)計(jì)ORACLE Designer 2000SYBASE PowerDesigner良構(gòu)設(shè)計(jì)的目標(biāo)數(shù)據(jù)庫支持設(shè)定的和實(shí)時(shí)的信息提取。數(shù)據(jù)庫必須存儲必要的信息,支持在設(shè)計(jì)時(shí)確定的信息需求,并支持用戶可能提出的實(shí)時(shí)查詢。 表應(yīng)當(dāng)正確、有效地構(gòu)造。數(shù)據(jù)庫中的每個(gè)表都代表一個(gè)主題,由一些相關(guān)的字段組成,數(shù)據(jù)的冗余度盡可能小,并且在整個(gè)數(shù)據(jù)庫中通過一個(gè)具有唯一值的字段表示。 數(shù)據(jù)的完整性強(qiáng)加在字段、表和關(guān)系級。這些完整性幫助確保數(shù)據(jù)結(jié)構(gòu)和它們的值始終是有效的和正確的。數(shù)據(jù)庫支持與組織機(jī)構(gòu)有關(guān)的業(yè)務(wù)規(guī)則。數(shù)據(jù)必須提供合法和正確的信息,這些信息對于企業(yè)總是

4、有意義的。數(shù)據(jù)庫支持未來的增長。隨著企業(yè)的信息需求的變化和增長,數(shù)據(jù)庫的結(jié)構(gòu)應(yīng)當(dāng)易于修改和擴(kuò)充。 開發(fā)周期現(xiàn)實(shí)世界建模信息世界數(shù)據(jù)庫世界模型轉(zhuǎn)換 規(guī)范化p需求分析階段:分析客戶的業(yè)務(wù)和數(shù)據(jù)處理需求;p概要設(shè)計(jì)階段:設(shè)計(jì)數(shù)據(jù)庫的E-R模型圖,確認(rèn)需求信息的正確和完整;p詳細(xì)設(shè)計(jì)階段:將E-R圖轉(zhuǎn)換為多張表,進(jìn)行邏輯設(shè)計(jì),并應(yīng)用數(shù)據(jù)庫設(shè)計(jì)的三大范式進(jìn)行審核;p代碼編寫階段:選擇具體數(shù)據(jù)庫進(jìn)行物理實(shí)現(xiàn);p軟件測試階段:p安裝部署:數(shù)據(jù)庫設(shè)計(jì)的基本步驟數(shù)據(jù)庫設(shè)計(jì)分?jǐn)?shù)據(jù)庫設(shè)計(jì)分6個(gè)階段個(gè)階段需求分析需求分析概念結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)物理結(jié)構(gòu)設(shè)計(jì)物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫實(shí)施數(shù)據(jù)庫實(shí)施數(shù)據(jù)庫

5、運(yùn)行和維護(hù)數(shù)據(jù)庫運(yùn)行和維護(hù) 需求分析和概念設(shè)計(jì)獨(dú)立于任何數(shù)據(jù)庫管理系統(tǒng)需求分析和概念設(shè)計(jì)獨(dú)立于任何數(shù)據(jù)庫管理系統(tǒng) 邏輯設(shè)計(jì)和物理設(shè)計(jì)與選用的邏輯設(shè)計(jì)和物理設(shè)計(jì)與選用的DBMS密切相關(guān)密切相關(guān)數(shù)據(jù)庫設(shè)計(jì)準(zhǔn)備工作準(zhǔn)備工作: 選定參加設(shè)計(jì)的人1. 數(shù)據(jù)庫分析設(shè)計(jì)人員數(shù)據(jù)庫設(shè)計(jì)的核心人員自始至終參與數(shù)據(jù)庫設(shè)計(jì)其水平?jīng)Q定了數(shù)據(jù)庫系統(tǒng)的質(zhì)量 2.用戶在數(shù)據(jù)庫設(shè)計(jì)中也是舉足輕重的主要參加需求分析和數(shù)據(jù)庫的運(yùn)行維護(hù)用戶積極參與帶來的好處加速數(shù)據(jù)庫設(shè)計(jì)提高數(shù)據(jù)庫設(shè)計(jì)的質(zhì)量3. 程序員在系統(tǒng)實(shí)施階段參與進(jìn)來,負(fù)責(zé)編制程序4. 操作員在系統(tǒng)實(shí)施階段參與進(jìn)來,準(zhǔn)備軟硬件環(huán)境需求分析階段需求分析階段準(zhǔn)確了解與分析用戶需

6、求(包括數(shù)據(jù)與處理)是整個(gè)設(shè)計(jì)過程的基礎(chǔ),是最困難、最耗費(fèi)時(shí)間的一步概念結(jié)構(gòu)設(shè)計(jì)階段概念結(jié)構(gòu)設(shè)計(jì)階段是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵通過對用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型邏輯結(jié)構(gòu)設(shè)計(jì)階段邏輯結(jié)構(gòu)設(shè)計(jì)階段將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)DBMS所支持的數(shù)據(jù)模型1.對其進(jìn)行優(yōu)化數(shù)據(jù)庫物理設(shè)計(jì)階段數(shù)據(jù)庫物理設(shè)計(jì)階段 為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方法)數(shù)據(jù)庫實(shí)施階段數(shù)據(jù)庫實(shí)施階段 運(yùn)用DBMS提供的數(shù)據(jù)語言、工具及宿主語言,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫編制與調(diào)試應(yīng)用程序組織數(shù)據(jù)入庫1.并進(jìn)行試運(yùn)行需求分析-任務(wù)需求分析就是分析用戶的需要與要求

7、需求分析是設(shè)計(jì)數(shù)據(jù)庫的起點(diǎn)需求分析的結(jié)果是否準(zhǔn)確地反映了用戶的實(shí)際要求,將直接影響到后面各個(gè)階段的設(shè)計(jì),并影響到設(shè)計(jì)結(jié)果是否合理和實(shí)用需求分析的任務(wù)通過詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對象(組織、部門、企業(yè)等),充分了解原系統(tǒng)(手工系統(tǒng)或計(jì)算機(jī)系統(tǒng))工作概況,明確用戶的各種需求,在此基礎(chǔ)上確定新系統(tǒng)的功能。新系統(tǒng)必須充分考慮今后可能的擴(kuò)充和改變,不能僅僅按當(dāng)前應(yīng)用需求來設(shè)計(jì)數(shù)據(jù)庫。需求分析-重點(diǎn)調(diào)查的重點(diǎn)是“數(shù)據(jù)”和“處理”,獲得用戶對數(shù)據(jù)庫要求信息要求處理要求安全性與完整性要求需求分析-難點(diǎn)確定用戶最終需求用戶缺少計(jì)算機(jī)知識設(shè)計(jì)人員缺少用戶的專業(yè)知識解決方法設(shè)計(jì)人員必須不斷深入地與用戶進(jìn)行交流需求分

8、析-方法 調(diào)查清楚用戶的實(shí)際需求并進(jìn)行初步分析 與用戶達(dá)成共識 進(jìn)一步分析與表達(dá)這些需求需求分析-調(diào)查步驟 調(diào)查組織機(jī)構(gòu)情況 調(diào)查各部門的業(yè)務(wù)活動(dòng)情況。(調(diào)查重點(diǎn)之一) 在熟悉業(yè)務(wù)活動(dòng)的基礎(chǔ)上,協(xié)助用戶明確對新系統(tǒng)的各種要求。(調(diào)查重點(diǎn)之二) 確定新系統(tǒng)的邊界需求分析-調(diào)查方法做需求調(diào)查時(shí),往往需要同時(shí)采用多種方法無論使用何種調(diào)查方法,都必須有用戶的積極參與和配合設(shè)計(jì)人員應(yīng)該和用戶取得共同的語言,幫助不熟悉計(jì)算機(jī)的用戶建立數(shù)據(jù)庫環(huán)境下的共同概念,并對設(shè)計(jì)工作的最后結(jié)果共同承擔(dān)責(zé)任常用調(diào)查方法跟班作業(yè)開調(diào)查會(huì)請專人介紹詢問設(shè)計(jì)調(diào)查表請用戶填寫查閱記錄需求分析-分析方法分析和表達(dá)用戶的需求的常用方

9、法自頂向下的結(jié)構(gòu)化分析方法(Structured Analysis,簡稱SA方法)SA方法從最上層的系統(tǒng)組織機(jī)構(gòu)入手,采用自頂向下、逐層分解的方式分析系統(tǒng),并用數(shù)據(jù)流圖和數(shù)據(jù)字典描述系統(tǒng)。需求分析-分析方法-DFD1. 首先把任何一個(gè)系統(tǒng)都抽象為:2分解處理功能和數(shù)據(jù)(1)分解處理功能將處理功能的具體內(nèi)容分解為若干子功能,再將每個(gè)子功能繼續(xù)分解,直到把系統(tǒng)的工作過程表達(dá)清楚為止。(2)分解數(shù)據(jù)在處理功能逐步分解的同時(shí),其所用的數(shù)據(jù)也逐級分解,形成若干層次的數(shù)據(jù)流圖(3)表達(dá)方法 處理邏輯:用判定表或判定樹來描述 數(shù)據(jù):用數(shù)據(jù)字典來描述 3將分析結(jié)果再次提交給用戶,征得用戶的認(rèn)可信息要求處理要求

10、需求分析-分析方法-DFD舉例需求分析-分析方法-數(shù)據(jù)字典 數(shù)據(jù)字典的用途是各類數(shù)據(jù)描述的集合進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果 數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)項(xiàng)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)流數(shù)據(jù)存儲處理過程需求分析-分析方法-數(shù)據(jù)字典各項(xiàng)的描述:數(shù)據(jù)項(xiàng)描述 = 數(shù)據(jù)項(xiàng)名,數(shù)據(jù)項(xiàng)含義說明,別名,數(shù)據(jù)類型,長度,取值范圍,取值含義,與其它數(shù)據(jù)項(xiàng)的邏輯關(guān)系,數(shù)據(jù)項(xiàng)之間的聯(lián)系數(shù)據(jù)結(jié)構(gòu)描述 = 數(shù)據(jù)結(jié)構(gòu)名,含義說明,組成:數(shù)據(jù)項(xiàng)或數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)流描述 = 數(shù)據(jù)流名,說明,數(shù)據(jù)流來源,數(shù)據(jù)流去向,組成:數(shù)據(jù)結(jié)構(gòu),平均流量,高峰期流量數(shù)據(jù)存儲描述 = 數(shù)據(jù)存儲名,說明,編號,輸入的數(shù)據(jù)流,輸出的數(shù)據(jù)流,組成:數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)量

11、,存取頻度,存取方式處理過程描述 = 處理過程名,說明,輸入:數(shù)據(jù)流,輸出:數(shù)據(jù)流,處理:簡要說明數(shù)據(jù)依賴數(shù)據(jù)依賴數(shù)據(jù)完整性約數(shù)據(jù)完整性約束束數(shù)據(jù)完整性約束數(shù)據(jù)完整性約束需求分析-分析方法-數(shù)據(jù)字典例:學(xué)生學(xué)籍管理子系統(tǒng)的數(shù)據(jù)字典。例:學(xué)生學(xué)籍管理子系統(tǒng)的數(shù)據(jù)字典。數(shù)據(jù)項(xiàng),以“學(xué)號”為例: 數(shù)據(jù)項(xiàng)名:學(xué)號 含義說明:唯一標(biāo)識每個(gè)學(xué)生 別名:學(xué)生編號 類型:字符型 長度:8 取值范圍:00000000至99999999 取值含義:前兩位標(biāo)別該學(xué)生所在年級, 后六位按順序編號 與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系:需求分析-分析方法-數(shù)據(jù)字典例:學(xué)生學(xué)籍管理子系統(tǒng)的數(shù)據(jù)字典。例:學(xué)生學(xué)籍管理子系統(tǒng)的數(shù)據(jù)字典。數(shù)

12、據(jù)結(jié)構(gòu),以“學(xué)生”為例“學(xué)生”是該系統(tǒng)中的一個(gè)核心數(shù)據(jù)結(jié)構(gòu): 數(shù)據(jù)結(jié)構(gòu):學(xué)生 含義說明:是學(xué)籍管理子系統(tǒng)的主體數(shù)據(jù)結(jié)構(gòu), 定義了一個(gè)學(xué)生的有關(guān)信息 組成:學(xué)號,姓名,性別,年齡,所在系,年級需求分析-分析方法-數(shù)據(jù)字典例:學(xué)生學(xué)籍管理子系統(tǒng)的數(shù)據(jù)字典。例:學(xué)生學(xué)籍管理子系統(tǒng)的數(shù)據(jù)字典。數(shù)據(jù)流,“體檢結(jié)果”可如下描述: 數(shù)據(jù)流:體檢結(jié)果 說明:學(xué)生參加體格檢查的最終結(jié)果 數(shù)據(jù)流來源:體檢 數(shù)據(jù)流去向:批準(zhǔn) 組成: 平均流量: 高峰期流量:需求分析-分析方法-數(shù)據(jù)字典例:學(xué)生學(xué)籍管理子系統(tǒng)的數(shù)據(jù)字典。例:學(xué)生學(xué)籍管理子系統(tǒng)的數(shù)據(jù)字典。數(shù)據(jù)存儲,“學(xué)生登記表”可如下描述: 數(shù)據(jù)存儲:學(xué)生登記表 說明

13、:記錄學(xué)生的基本情況 流入數(shù)據(jù)流: 流出數(shù)據(jù)流: 組成: 數(shù)據(jù)量:每年3000張 存取方式:隨機(jī)存取需求分析-分析方法-數(shù)據(jù)字典例:學(xué)生學(xué)籍管理子系統(tǒng)的數(shù)據(jù)字典。例:學(xué)生學(xué)籍管理子系統(tǒng)的數(shù)據(jù)字典。處理過程,“分配宿舍”可如下描述: 處理過程:分配宿舍說明:為所有新生分配學(xué)生宿舍輸入:學(xué)生,宿舍輸出:宿舍安排處理:在新生報(bào)到后,為所有新生分配學(xué)生宿舍。 要求同一間宿舍只能安排同一性別的學(xué)生, 同一個(gè)學(xué)生只能安排在一個(gè)宿舍中。 每個(gè)學(xué)生的居住面積不小于3平方米。 安排新生宿舍其處理時(shí)間應(yīng)不超過15分鐘需求分析-分析方法-數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)庫中數(shù)據(jù)的描述,是元數(shù)據(jù),而不是數(shù)據(jù)本身數(shù)據(jù)字典在需

14、求分析階段建立,在數(shù)據(jù)庫設(shè)計(jì)過程中不斷修改、充實(shí)、完善 需求分析-小結(jié)設(shè)計(jì)人員應(yīng)充分考慮到可能的擴(kuò)充和改變,使設(shè)計(jì)易于更改,系統(tǒng)易于擴(kuò)充 必須強(qiáng)調(diào)用戶的參與概念結(jié)構(gòu)設(shè)計(jì)需求分析階段描述的用戶應(yīng)用需求是現(xiàn)實(shí)世界的具體需求將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)即概念模型的過程就是概念結(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ù)庫設(shè)計(jì)的關(guān)鍵現(xiàn)實(shí)世界機(jī)器世界信息世界需求分析概念結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)的特點(diǎn) 能真實(shí)、充分地反映現(xiàn)實(shí)世界 易于理解 易于更改 易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換描述概念模型的工具 E-R模型概

15、念結(jié)構(gòu)設(shè)計(jì)-方法設(shè)計(jì)概念結(jié)構(gòu)的四類方法設(shè)計(jì)概念結(jié)構(gòu)的四類方法自頂向下自頂向下 首先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化概念結(jié)構(gòu)設(shè)計(jì)-方法自底向上自底向上 首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu)概念結(jié)構(gòu)設(shè)計(jì)-方法逐步擴(kuò)張逐步擴(kuò)張 首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu)概念結(jié)構(gòu)設(shè)計(jì)-方法混合策略混合策略 將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計(jì)一個(gè)全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計(jì)的各局部概念結(jié)構(gòu)。概念結(jié)構(gòu)設(shè)計(jì)-方法常用策略常用策略自頂向下地進(jìn)行需求分析自底向上地設(shè)計(jì)概念結(jié)構(gòu)概念結(jié)構(gòu)設(shè)計(jì)

16、-方法v自底向上設(shè)計(jì)概念結(jié)構(gòu)的步驟自底向上設(shè)計(jì)概念結(jié)構(gòu)的步驟 第1步:抽象數(shù)據(jù)并設(shè)計(jì)局部視圖第2步:集成局部視圖,得到全局概念結(jié)構(gòu)概念結(jié)構(gòu)設(shè)計(jì)-數(shù)據(jù)抽象與局部視圖數(shù)據(jù)抽象抽象是對實(shí)際的人、物、事和概念中抽取所關(guān)心的共同特性,忽略非本質(zhì)的細(xì)節(jié),并把這些特性用各種概念精確地加以描述。概念結(jié)構(gòu)是對現(xiàn)實(shí)世界的一種抽象。三類抽象分類聚集概括概念結(jié)構(gòu)設(shè)計(jì)-數(shù)據(jù)抽象與局部視圖分類將一類具有共同特性和行為的對象定義為一種某類型,在E-R模型中的實(shí)體型就是這種抽象,如學(xué)生,課程抽象了對象的值和型之間“is member of”語義學(xué)生“is member of”張英王平趙斌實(shí)體型課程“is member of”

17、C語言數(shù)據(jù)庫操作系統(tǒng)實(shí)體型概念結(jié)構(gòu)設(shè)計(jì)-數(shù)據(jù)抽象與局部視圖聚集定義某類型的組成成分,對應(yīng)E-R模型中實(shí)體的屬性抽象了對象類型和其成分之間的“is part of”語義學(xué)生學(xué)號姓名專業(yè)班級倉庫號面積主任倉庫姓名年齡性別工資“is part of”實(shí)體型屬性概念結(jié)構(gòu)設(shè)計(jì)-數(shù)據(jù)抽象與局部視圖概括定義類型之間的子集聯(lián)系,形成超(父)類、子類抽象了類型之間“is subset of”語義概括的重要性質(zhì):繼承,即子類集成超類的所有抽象是E-R模型的抽象機(jī)制的擴(kuò)充學(xué)生本科生研究生概括的E-R表示“is subset of”超類子類學(xué)號, 姓名,性別, 年齡專業(yè),綜合排名導(dǎo)師,研究方向概念結(jié)構(gòu)設(shè)計(jì)-第一步利用

18、抽象機(jī)制,對需求分析階段收集到的數(shù)據(jù)進(jìn)行分類、組織(聚集)形成實(shí)體,實(shí)體的屬性,標(biāo)識實(shí)體的碼,確定實(shí)體間的聯(lián)系類型設(shè)計(jì)局部E-R圖選擇局部應(yīng)用逐一設(shè)計(jì)分E-R圖概念結(jié)構(gòu)設(shè)計(jì)-設(shè)計(jì)局部E-R圖1 選擇局部應(yīng)用 在需求分析階段,通過對應(yīng)用環(huán)境和要求進(jìn)行詳盡的調(diào)查分析,用多層數(shù)據(jù)流圖和數(shù)據(jù)字典描述了整個(gè)系統(tǒng)。設(shè)計(jì)分E-R圖的第一步,就是要根據(jù)系統(tǒng)的具體情況,在多層的數(shù)據(jù)流圖中選擇一個(gè)適當(dāng)層次的(經(jīng)驗(yàn)很重要)數(shù)據(jù)流圖,讓這組圖中每一部分對應(yīng)一個(gè)局部應(yīng)用,我們就可以從這一層次的數(shù)據(jù)流圖為出發(fā)點(diǎn),設(shè)計(jì)分E-R圖。 一般而言,中層的數(shù)據(jù)流圖能較好地反映系統(tǒng)中各局部應(yīng)用的子系統(tǒng)組成,因此人們往往以中層數(shù)據(jù)流圖

19、作為設(shè)計(jì)分E-R圖的依據(jù)。 概念結(jié)構(gòu)設(shè)計(jì)-設(shè)計(jì)局部E-R圖2 逐一設(shè)計(jì)分E-R圖 每個(gè)局部應(yīng)用都對應(yīng)了一組數(shù)據(jù)流圖,局部應(yīng)用涉及的數(shù)據(jù)都已經(jīng)收集在數(shù)據(jù)字典中了?,F(xiàn)在就是要將這些數(shù)據(jù)從數(shù)據(jù)字典中抽取出來,參照數(shù)據(jù)流圖,標(biāo)定局部應(yīng)用中的實(shí)體、實(shí)體的屬性、標(biāo)識實(shí)體的碼,確定實(shí)體之間的聯(lián)系及其類型(1:1、1:n、m:n)。 現(xiàn)實(shí)世界中一組具有某些共同特性和行為的對象就可以抽象為一個(gè)實(shí)體。對象類型的組成成分可以抽象為實(shí)體的屬性。 概念結(jié)構(gòu)設(shè)計(jì)-設(shè)計(jì)局部E-R圖2 實(shí)際上實(shí)體與屬性是相對而言的,很難有截然劃分的界限。同一事物,在一種應(yīng)用環(huán)境中作為“屬性”,在另一種應(yīng)用環(huán)境中就必須作為“實(shí)體”。一般說來,

20、在給定的應(yīng)用環(huán)境中: 兩條準(zhǔn)則:(1)屬性不能再具有需要描述的性質(zhì)。即屬性必須是不可分的數(shù)據(jù)項(xiàng),不能再由另一些屬性組成(2)屬性不能與其他實(shí)體具有聯(lián)系。聯(lián)系只發(fā)生在實(shí)體之間概念結(jié)構(gòu)設(shè)計(jì)-設(shè)計(jì)局部E-R圖例 學(xué)生選課局部概念結(jié)構(gòu)設(shè)計(jì)-設(shè)計(jì)局部E-R圖例 教師任課局部概念結(jié)構(gòu)設(shè)計(jì)-E-R圖集成 集成方式多個(gè)局部E-R圖一次集成,或以累加方式逐步集成集成步驟合并局部E-R圖,生成初步E-R圖依靠協(xié)商或應(yīng)用語義消除各局部E-R圖之間的屬性沖突:如屬性的類型、取值范圍沖突,或?qū)傩匀≈祮挝粵_突命名沖突:如同名異義,或一義多名結(jié)構(gòu)沖突:如不同應(yīng)用中,同一對象有不同的抽象或同一實(shí)體包含的屬性不完全相同(三類結(jié)

21、構(gòu)沖突)修改和重構(gòu),生成基本E-R圖依據(jù)分析和規(guī)范化理論來消除冗余概念結(jié)構(gòu)設(shè)計(jì)-三類結(jié)構(gòu)沖突 三類結(jié)構(gòu)沖突三類結(jié)構(gòu)沖突同一對象在不同應(yīng)用中具有不同的抽象同一實(shí)體在不同分E-R圖中所包含的屬性個(gè)數(shù)和屬性排列次序不完全相同1.實(shí)體之間的聯(lián)系在不同局部視圖中呈現(xiàn)不同的類型消除不必要的冗余,設(shè)計(jì)基本E-R圖基本任務(wù)基本任務(wù)消除不必要的冗余,設(shè)計(jì)生成基本E-R圖合并初步E-R圖分E-R圖可能存在冗余的數(shù)據(jù)和冗余的實(shí)體間聯(lián)系基本E-R圖消除不必要的冗余消除不必要的冗余,設(shè)計(jì)基本E-R圖消除冗余的方法消除冗余的方法以數(shù)據(jù)字典和數(shù)據(jù)流圖為依據(jù)根據(jù)數(shù)據(jù)字典中關(guān)于數(shù)據(jù)項(xiàng)之間的邏輯關(guān)系概念結(jié)構(gòu)設(shè)計(jì)-E-R圖集成 例

22、學(xué)會(huì)選課系統(tǒng)實(shí)例-基本ER圖概念結(jié)構(gòu)設(shè)計(jì)-E-R圖集成 例實(shí)例 某工廠管理信息系統(tǒng)的視圖集成。該廠物資管理分E-R圖概念結(jié)構(gòu)設(shè)計(jì)-E-R圖集成 例該廠銷售管理分E-R圖概念結(jié)構(gòu)設(shè)計(jì)-E-R圖集成 例該廠勞動(dòng)人事管理分E-R圖概念結(jié)構(gòu)設(shè)計(jì)-E-R圖集成 例系統(tǒng)的基本E-R概念結(jié)構(gòu)設(shè)計(jì)-驗(yàn)證整體概念結(jié)構(gòu)視圖集成后形成一個(gè)整體的數(shù)據(jù)庫概念結(jié)構(gòu),對該整體概念結(jié)構(gòu)還必須進(jìn)行進(jìn)一步驗(yàn)證,確保它能夠滿足下列條件:整體概念結(jié)構(gòu)內(nèi)部必須具有一致性,不存在互相矛盾的表達(dá)整體概念結(jié)構(gòu)能準(zhǔn)確地反映原來的每個(gè)視圖結(jié)構(gòu),包括屬性、實(shí)體及實(shí)體間的聯(lián)系整體概念結(jié)構(gòu)能滿足需求分析階段所確定的所有要求整體概念結(jié)構(gòu)最終還應(yīng)該提交給

23、用戶,征求用戶和有關(guān)人員的意見,進(jìn)行評審、修改和優(yōu)化,然后把它確定下來,作為數(shù)據(jù)庫的概念結(jié)構(gòu),作為進(jìn)一步設(shè)計(jì)數(shù)據(jù)庫的依據(jù)。概念結(jié)構(gòu)設(shè)計(jì)-實(shí)例收集信息:與該系統(tǒng)有關(guān)人員進(jìn)行交流、坐談,充分理解數(shù)據(jù)庫需要完成的任務(wù)BBS論壇的基本功能:論壇的基本功能:l用戶注冊和登錄:后臺數(shù)據(jù)庫需要存放用戶的注冊信息和在線用戶注冊和登錄:后臺數(shù)據(jù)庫需要存放用戶的注冊信息和在線狀態(tài)信息;狀態(tài)信息;l用戶發(fā)貼:后臺數(shù)據(jù)庫需要存放貼子相關(guān)信息,如貼子內(nèi)容、用戶發(fā)貼:后臺數(shù)據(jù)庫需要存放貼子相關(guān)信息,如貼子內(nèi)容、標(biāo)題等;標(biāo)題等;l論壇版塊管理:后臺數(shù)據(jù)庫需要存放各個(gè)版塊信息,如版主、論壇版塊管理:后臺數(shù)據(jù)庫需要存放各個(gè)版塊

24、信息,如版主、版塊名稱、貼子數(shù)等;版塊名稱、貼子數(shù)等;概念結(jié)構(gòu)設(shè)計(jì)-實(shí)例標(biāo)識對象(實(shí)體Entity) 標(biāo)識數(shù)據(jù)庫要管理的關(guān)鍵對象或?qū)嶓w 實(shí)體一般是名詞:實(shí)體一般是名詞:l用戶:論壇普通用戶、各版塊的版主。用戶:論壇普通用戶、各版塊的版主。l用戶發(fā)的主貼用戶發(fā)的主貼l用戶發(fā)的跟貼(回貼)用戶發(fā)的跟貼(回貼)l版塊:論壇的各個(gè)版塊信息版塊:論壇的各個(gè)版塊信息概念結(jié)構(gòu)設(shè)計(jì)-實(shí)例q標(biāo)識每個(gè)實(shí)體的屬性 (Attribute)論壇用戶:l呢稱l密碼l電子郵件l生日l性別l用戶的等級l備注信息l注冊日期l狀態(tài)l積分主貼l發(fā)貼人l發(fā)貼表情l回復(fù)數(shù)量l標(biāo)題l正文l發(fā)貼時(shí)間l點(diǎn)擊數(shù)l狀態(tài):l最后回復(fù)時(shí)間回貼l貼子

25、編號l回貼人,l回貼表情l標(biāo)題l正文l回貼時(shí)間l點(diǎn)擊數(shù)版塊l版塊名稱l版主l本版格言l點(diǎn)擊率l發(fā)貼數(shù)概念結(jié)構(gòu)設(shè)計(jì)-實(shí)例標(biāo)識對象之間的關(guān)系(Relationship)l跟貼和主貼有主從關(guān)系:我們需要在跟貼對象中表明它是誰的跟貼;l版塊和用戶有關(guān)系:從用戶對象中可以根據(jù)版塊對象查出對應(yīng)的版主用戶的情況;l主貼和版塊有主從關(guān)系:需要表明發(fā)貼是屬于哪個(gè)版塊的;l跟貼和版塊有主從關(guān)系:需要表明跟貼是屬于哪個(gè)版塊的;概念結(jié)構(gòu)設(shè)計(jì)-實(shí)例E-R(EntityRelationship)實(shí)體關(guān)系圖 管理bbsUser(用戶,版主)出生日期昵稱版塊名稱版主bbsSection(版塊)概念結(jié)構(gòu)設(shè)計(jì)-繪制ER圖映射基數(shù)

26、1111M1MMM M用戶積分性別用戶等級備注信息注冊日期版塊名稱本版留言發(fā)貼數(shù)狀態(tài)密碼昵稱電子郵件 生日論壇用戶(BBSUser)管理發(fā)表發(fā)表跟隨屬于屬于點(diǎn)擊率版主標(biāo)題發(fā)貼人貼子編號正文點(diǎn)擊率版塊(BBSSection)發(fā)貼(BBSTopic)發(fā)貼人正文狀態(tài)貼子編號所在版塊最后回復(fù)時(shí)間發(fā)貼表情回復(fù)數(shù)量點(diǎn)擊率發(fā)貼時(shí)間標(biāo)題M跟貼(BBSReply)所在版塊發(fā)貼時(shí)間最后回復(fù)時(shí)間發(fā)貼表情1概念結(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é)構(gòu)設(shè)計(jì)的任務(wù)把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相

27、符合的邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)設(shè)計(jì)的步驟將概念結(jié)構(gòu)轉(zhuǎn)化為一般的關(guān)系、網(wǎng)狀、層次模型將轉(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換對數(shù)據(jù)模型進(jìn)行優(yōu)化邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)-向關(guān)系模型的轉(zhuǎn)換1實(shí)體的轉(zhuǎn)換規(guī)則將E-R圖中的每一個(gè)常規(guī)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系,實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。2實(shí)體間聯(lián)系的轉(zhuǎn)換規(guī)則(1)一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端所對應(yīng)的關(guān)系模式合并。 (2)一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端所對應(yīng)的關(guān)系模式合并。(3)一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。轉(zhuǎn)換的方法為:與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均

28、轉(zhuǎn)換為關(guān)系的屬性,新關(guān)系的碼為兩個(gè)相連實(shí)體碼的組合。(4)三個(gè)或三個(gè)以上實(shí)體間的多元聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。 邏輯結(jié)構(gòu)設(shè)計(jì)-向關(guān)系模型的轉(zhuǎn)換3關(guān)系合并規(guī)則為了減少系統(tǒng)中的關(guān)系個(gè)數(shù),如果兩個(gè)關(guān)系模式具有相同的主碼,可以考慮將它們合并為一個(gè)關(guān)系模式。合并的方法是將其中一個(gè)關(guān)系模式的全部屬性加入到另一個(gè)關(guān)系模式中,然后去掉其中的同義屬性,并適當(dāng)調(diào)整屬性的次序。邏輯結(jié)構(gòu)設(shè)計(jì)-一對一關(guān)系的轉(zhuǎn)換方法一方法一聯(lián)系轉(zhuǎn)換為獨(dú)立的關(guān)系模式模式的屬性由聯(lián)系本身的屬性及兩個(gè)實(shí)體的鍵構(gòu)成主鍵由兩個(gè)實(shí)體中的任意一個(gè)鍵構(gòu)成方法二方法二將聯(lián)系與一端的實(shí)體的關(guān)系模式合并,即將聯(lián)系的屬性加入到實(shí)體的關(guān)系模式內(nèi)主鍵不變邏輯結(jié)構(gòu)設(shè)計(jì)

29、-一對一關(guān)系的轉(zhuǎn)換實(shí)體對應(yīng)關(guān)系模式分別為:班級(班號,專業(yè),人數(shù))班長(學(xué)號,姓名,專長)聯(lián)系管理(班號,學(xué)號)班級班長班號學(xué)號姓名人數(shù)專業(yè)管理11專長關(guān)系模式“管理”的主鍵也可以選擇學(xué)號建立獨(dú)立的關(guān)系模式建立獨(dú)立的關(guān)系模式邏輯結(jié)構(gòu)設(shè)計(jì)-一對一關(guān)系的轉(zhuǎn)換班級班長班號學(xué)號姓名人數(shù)專業(yè)管理11專長原實(shí)體對應(yīng)關(guān)系模式分別為: 班級(班號,專業(yè),人數(shù)) 班長(學(xué)號,姓名,專長)將聯(lián)系“管理”合并到實(shí)體“班級”對應(yīng)的模式后為: 班級(班號,專業(yè),人數(shù),學(xué)號) 班長(學(xué)號,姓名,專長)聯(lián)系“管理”也可以合并到實(shí)體“班長”對應(yīng)的模式合并到實(shí)體的關(guān)系模式合并到實(shí)體的關(guān)系模式邏輯結(jié)構(gòu)設(shè)計(jì)-一對多關(guān)系的轉(zhuǎn)換方法一

30、方法一聯(lián)系轉(zhuǎn)換為獨(dú)立的關(guān)系模式模式的屬性由聯(lián)系本身的屬性及兩個(gè)實(shí)體的鍵構(gòu)成主鍵由n端實(shí)體的鍵組成方法二方法二將聯(lián)系與n端的實(shí)體的關(guān)系模式合并,即將聯(lián)系的屬性加入到實(shí)體的關(guān)系模式內(nèi)主鍵不變邏輯結(jié)構(gòu)設(shè)計(jì)-一對多關(guān)系的轉(zhuǎn)換系教師系號教師號姓名年齡系主任系名管理1n性別職稱專業(yè)電話實(shí)體對應(yīng)的關(guān)系模式 系(系號,系名,系主任,電話) 教師(教師號,姓名,專業(yè),職稱,性別,年齡)聯(lián)系對應(yīng)的關(guān)系模式 管理(教師號,系號)建立獨(dú)立的關(guān)系模式建立獨(dú)立的關(guān)系模式邏輯結(jié)構(gòu)設(shè)計(jì)-一對多關(guān)系的轉(zhuǎn)換系教師系號教師號姓名年齡系主任系名管理1n性別職稱專業(yè)電話實(shí)體對應(yīng)的關(guān)系模式 系(系號,系名,系主任,電話) 教師(教師號,

31、姓名,專業(yè),職稱,性別,年齡)合并到實(shí)體“教師”后 教師(教師號,姓名,專業(yè),職稱,性別,年齡,系號)只能合并到只能合并到“多多”的一端的一端合并到實(shí)體的關(guān)系模式合并到實(shí)體的關(guān)系模式邏輯結(jié)構(gòu)設(shè)計(jì)-多對多關(guān)系的轉(zhuǎn)換聯(lián)系只能轉(zhuǎn)換為獨(dú)立模式聯(lián)系只能轉(zhuǎn)換為獨(dú)立模式模式的屬性由聯(lián)系本身的屬性及兩個(gè)實(shí)體的鍵構(gòu)成主鍵由兩端實(shí)體的鍵組合而成邏輯結(jié)構(gòu)設(shè)計(jì)-多對多關(guān)系的轉(zhuǎn)換課程(課程號,課程名,學(xué)時(shí),類別)學(xué)生(學(xué)號,姓名,性別,專業(yè),出生日期,照片)選修(學(xué)號,課程號,分?jǐn)?shù))課程學(xué)生課程號學(xué)號姓名照片學(xué)時(shí)課程名選修mn性別出生日期專業(yè)類別分?jǐn)?shù)邏輯結(jié)構(gòu)設(shè)計(jì)-三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系 三個(gè)或三個(gè)以上實(shí)體間

32、的一個(gè)多元聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。:與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性:各實(shí)體碼的組合例,“講授”聯(lián)系是一個(gè)三元聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中課程號、職工號和書號為關(guān)系的組合碼:講授(課程號,職工號,書號)邏輯結(jié)構(gòu)設(shè)計(jì)-自聯(lián)系的轉(zhuǎn)換原則同一實(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í)主碼職工號將多次出現(xiàn),但作用不同,可用不同的屬性名加以區(qū)分:教師:職工號,姓名,性別,職稱,系主任例:公司部門管理系統(tǒng)的E-R圖及其轉(zhuǎn)換成的關(guān)系模式部門項(xiàng)目職工電話包括

33、承擔(dān)n1n1辦公室號,面積項(xiàng)目號,預(yù)算費(fèi)參與mn辦公室包含1n包括n1職務(wù)承擔(dān)11部門號,預(yù)算費(fèi),領(lǐng)導(dǎo)人職工號電話號碼,說明職工號,姓名,辦公電話擔(dān)任時(shí)期,工資分擔(dān)任務(wù) 部門(部門號,部門預(yù)算費(fèi),領(lǐng)導(dǎo)人職工號) 職工(職工號,姓名,辦公電話,部門號) 辦公室(辦公室號,面積,部門號) 項(xiàng)目(項(xiàng)目號,項(xiàng)目預(yù)算費(fèi),部門號) 電話(電話號碼,說明,辦公室號) 項(xiàng)目承擔(dān)情況(職工號,項(xiàng)目號,分擔(dān)任務(wù)) 工資歷史(職工號,職務(wù),擔(dān)任時(shí)期,工資)系課程學(xué)生教師管理選修講授注冊11mnnmmn教師號系名系號專業(yè)出生日期性別姓名學(xué)號姓名性別職稱年齡專業(yè)系主任電話照片評價(jià)分?jǐn)?shù)課程號類別課程名學(xué)時(shí)系(系號,系名,

34、系主任,電話)學(xué)生(學(xué)號,姓名,性別,出生日期,專業(yè),照片)課程(課程號,課程名,學(xué)時(shí),類別) 教師(教師號,姓名,專業(yè),職稱,性別,年齡)選修(學(xué)號,課程號,分?jǐn)?shù))課 程 評 價(jià)(教師號,課 程 號 ,評價(jià))管理(教師號,系號)注冊(學(xué)號,系號)邏輯結(jié)構(gòu)設(shè)計(jì)-優(yōu)化數(shù)據(jù)庫邏輯設(shè)計(jì)的結(jié)果不是唯一的。得到初步數(shù)據(jù)模型后,還應(yīng)該適當(dāng)?shù)匦薷?、調(diào)整數(shù)據(jù)模型的結(jié)構(gòu),以進(jìn)一步提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能,這就是數(shù)據(jù)模型的優(yōu)化關(guān)系數(shù)據(jù)模型的優(yōu)化通常以規(guī)范化理論為指導(dǎo)邏輯結(jié)構(gòu)設(shè)計(jì)-數(shù)據(jù)規(guī)范化僅有好的RDBMS并不足以避免數(shù)據(jù)冗余,必須在數(shù)據(jù)庫的設(shè)計(jì)中創(chuàng)建好的表結(jié)構(gòu)Dr E.F.codd 最初定義了規(guī)范化的三個(gè)級別,

35、范式是具有最小冗余的表結(jié)構(gòu)。這些范式是:第一范式(1st NF First Normal Fromate)第二范式(2nd NFSecond Normal Fromate)第三范式(3rd NF Third Normal Fromate)邏輯結(jié)構(gòu)設(shè)計(jì)-第一范式1NFBuyerIDCountryCity1142中國中國日本美國北京北京東京紐約BuyerIDAddress1234中國北京市 美國紐約市英國利物浦日本東京市 第一范式的目標(biāo)是確保每列的原子性如果每列都是不可再分的最小數(shù)據(jù)單元(也稱為最小的原子單元),則滿足第一范式(1NF)邏輯結(jié)構(gòu)設(shè)計(jì)-第二范式2NFOrders字段例子訂單編號產(chǎn)品編

36、號訂購日期價(jià) 格001A0012000-2-3$29.00 Orders字段例子訂單編號訂購日期0012000-2-3Products字段例子產(chǎn)品編號價(jià) 格A001$29.00如果一個(gè)關(guān)系滿足1NF,并且除了主鍵以外的其他列,都依賴與該主鍵,則滿足第二范式(2NF) 第二范式要求每個(gè)表只描述一件事情邏輯結(jié)構(gòu)設(shè)計(jì)-第三范式3NFOrders字段例子訂單編號訂購日期顧客編號0012000-2-3AB001顧客姓名Tony Orders字段例子訂單編號訂購日期顧客編號0012000-2-3AB001 如果一個(gè)關(guān)系滿足2NF,并且除了主鍵以外的其他列都不傳遞依賴于主鍵列,則滿足第三范式(3NF) 邏輯

37、結(jié)構(gòu)設(shè)計(jì)-規(guī)范化實(shí)例假設(shè)某建筑公司要設(shè)計(jì)一個(gè)數(shù)據(jù)庫。公司的業(yè)務(wù)規(guī)則概括說明如下:公司承擔(dān)多個(gè)工程項(xiàng)目,每一項(xiàng)工程有:工程號、工程名稱、施工人員等公司有多名職工,每一名職工有:職工號、姓名、性別、職務(wù)(工程師、技術(shù)員)等公司按照工時(shí)和小時(shí)工資率支付工資,小時(shí)工資率由職工的職務(wù)決定(例如,技術(shù)員的小時(shí)工資率與工程師不同)公司定期制定一個(gè)工資報(bào)表,如圖1所示邏輯結(jié)構(gòu)設(shè)計(jì)-規(guī)范化實(shí)例工程號工程號工程名稱工程名稱職工號職工號姓名姓名職務(wù)職務(wù)小時(shí)工資率小時(shí)工資率工時(shí)工時(shí)實(shí)發(fā)工資實(shí)發(fā)工資A1花園大廈1001齊光明工程師6513845.001002李思岐技術(shù)員6016960.001004葛宇宏律師601911

38、40.00小計(jì)2945.00A2立交橋1001齊光明工程師6515975.001003鞠明亮工人5517935.00小計(jì)1910.00A3臨江飯店1002李思岐技術(shù)員60181080.001004葛宇洪技術(shù)員6014840.00小計(jì)1920.00圖1 某公司的工資表邏輯結(jié)構(gòu)設(shè)計(jì)-規(guī)范化實(shí)例工程號工程號工程名稱工程名稱職工號職工號姓名姓名職務(wù)職務(wù)小時(shí)工資率小時(shí)工資率工時(shí)工時(shí)A1花園大廈1001齊光明工程師6513A1花園大廈1002李思岐技術(shù)員6016A1花園大廈1001齊光明工程師6513A1花園大廈1003鞠明亮工人5517A3臨江飯店1002李思岐技術(shù)員6018A3臨江飯店1004葛宇洪技

39、術(shù)員6014圖2 某公司的項(xiàng)目工時(shí)表邏輯結(jié)構(gòu)設(shè)計(jì)-規(guī)范化實(shí)例1.表中包含大量的冗余,可能會(huì)導(dǎo)致數(shù)據(jù)異常:更新異常 例如,修改職工號=1001的職務(wù),則必須修改所有職工號=1001的行添加異常 若要增加一個(gè)新的職工時(shí),首先必須給這名職工分配一個(gè)工程?;蛘邽榱颂砑右幻侣毠さ臄?shù)據(jù),先給這名職工分配一個(gè)虛擬的工程。(因?yàn)橹麝P(guān)鍵字不能為空)刪除異常 例如,1001號職工要辭職,則必須刪除所有職工號1001的數(shù)據(jù)行。這樣的刪除操作,很可能丟失了其它有用的數(shù)據(jù)邏輯結(jié)構(gòu)設(shè)計(jì)-規(guī)范化實(shí)例采用這種方法設(shè)計(jì)表的結(jié)構(gòu),雖然很容易產(chǎn)生工資報(bào)表,但是每當(dāng)一名職工分配一個(gè)工程時(shí),都要重復(fù)輸入大量的數(shù)據(jù)。這種重復(fù)的輸入操作

40、,很可能導(dǎo)致數(shù)據(jù)的不一致性。邏輯結(jié)構(gòu)設(shè)計(jì)-應(yīng)用1NF一張表描述了多件事情,如圖3所示。工程號工程名稱職工號姓名職務(wù)小時(shí)工資率工時(shí)圖3 函數(shù)依賴圖工程信息員工信息項(xiàng)目工時(shí)信息邏輯結(jié)構(gòu)設(shè)計(jì)-應(yīng)用2NF工程號工程名稱職工號姓名職務(wù)小時(shí)工資率工程號職工號工時(shí)圖4 應(yīng)用第二范式工程表員工表項(xiàng)目工時(shí)表滿足第三范式嗎? 邏輯結(jié)構(gòu)設(shè)計(jì)-應(yīng)用2NF工程號工程名稱職工號姓名職務(wù)職務(wù)小時(shí)工資率工程號職工號工時(shí)工程表員工表職務(wù)表工程表邏輯結(jié)構(gòu)設(shè)計(jì)-規(guī)范化和性能的關(guān)系 為滿足某種商業(yè)目標(biāo),數(shù)據(jù)庫性能比規(guī)范化數(shù)據(jù)庫更重要通過在給定的表中添加額外的字段,以大量減少需要從中搜索信息所需的時(shí)間通過在給定的表中插入計(jì)算列(如成績

41、總分),以方便查詢進(jìn)行規(guī)范化的同時(shí),還需要綜合考慮數(shù)據(jù)庫的性能。邏輯結(jié)構(gòu)設(shè)計(jì)-規(guī)范化和性能的關(guān)系 例:在關(guān)系模式 學(xué)生成績單(學(xué)號,英語,數(shù)學(xué),語文,平均成績) 中存在下列函數(shù)依賴: 學(xué)號英語 學(xué)號數(shù)學(xué) 學(xué)號語文 學(xué)號平均成績 (英語, 數(shù)學(xué), 語文)平均成績 顯然有: 學(xué)號(英語,數(shù)學(xué),語文)因此該關(guān)系模式中存在傳遞函數(shù)信賴,是2NF關(guān)系。 雖然平均成績可以由其他屬性推算出來,但如果應(yīng)用中需要經(jīng)常查詢學(xué)生的平均成績,為提高效率,我們?nèi)匀豢杀A粼撊哂鄶?shù)據(jù),對關(guān)系模式不再做進(jìn)一步分解。邏輯結(jié)構(gòu)設(shè)計(jì)-設(shè)計(jì)用戶子模式根據(jù)局部應(yīng)用需求設(shè)計(jì)用戶子模式設(shè)計(jì)用戶子模式的目的使用更符合用戶習(xí)慣的別名保證系統(tǒng)安

42、全性簡化用戶對系統(tǒng)的使用DBMS中一般采用視圖(View)機(jī)制邏輯結(jié)構(gòu)設(shè)計(jì)-論壇實(shí)例q將各實(shí)體轉(zhuǎn)換為對應(yīng)的表,將各屬性轉(zhuǎn)換為各表對應(yīng)的列q標(biāo)識每個(gè)表的主鍵列,需要注意的是:沒有主鍵的表添加ID編號列,它沒有實(shí)際含義,用于做主鍵或外鍵,例如用戶表中的“UID”列,版塊表中添加“SID”列,發(fā)貼表和跟貼表中的“TID”列 q在表之間建立主外鍵,體現(xiàn)實(shí)體之間的映射關(guān)系 邏輯結(jié)構(gòu)設(shè)計(jì)-論壇實(shí)例UID主鍵TID主鍵RID主鍵SID主鍵100如何將E-R圖轉(zhuǎn)換為表添加各表之間的關(guān)系數(shù)據(jù)庫物理設(shè)計(jì)數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫的物理結(jié)構(gòu),它依賴于選定的數(shù)據(jù)庫管理系統(tǒng)為一個(gè)給定的邏輯數(shù)據(jù)模型

43、選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過程,就是數(shù)據(jù)庫的物理設(shè)計(jì)數(shù)據(jù)庫物理設(shè)計(jì)-步驟確定數(shù)據(jù)庫的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫中主要指存取方法和存儲結(jié)構(gòu); 對物理結(jié)構(gòu)進(jìn)行評價(jià),評價(jià)的重點(diǎn)是時(shí)間和空間效率。 如果評價(jià)結(jié)果滿足原設(shè)計(jì)要求,則可進(jìn)入到物理實(shí)施階段,否則,就需要重新設(shè)計(jì)或修改物理結(jié)構(gòu),有時(shí)甚至要返回邏輯設(shè)計(jì)階段修改數(shù)據(jù)模型數(shù)據(jù)庫物理設(shè)計(jì)-步驟數(shù)據(jù)庫物理設(shè)計(jì)確定數(shù)據(jù)庫的物理結(jié)構(gòu)評價(jià)數(shù)據(jù)庫的物理結(jié)構(gòu)邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫實(shí)施物理模型邏輯模型數(shù)據(jù)庫物理設(shè)計(jì)-準(zhǔn)備工作對要運(yùn)行的事務(wù)進(jìn)行詳細(xì)分析,獲得選擇物理數(shù)據(jù)庫設(shè)計(jì)所需參數(shù)充分了解所用RDBMS的內(nèi)部特征,特別是系統(tǒng)提供的存取方法和存儲結(jié)構(gòu)數(shù)據(jù)庫物理設(shè)計(jì)-選

44、擇參數(shù) 數(shù)據(jù)庫查詢事務(wù)查詢的關(guān)系 查詢條件所涉及的屬性 連接條件所涉及的屬性 查詢的投影屬性數(shù)據(jù)更新事務(wù)被更新的關(guān)系每個(gè)關(guān)系上的更新操作條件所涉及的屬性 修改操作要改變的屬性值 每個(gè)事務(wù)在各關(guān)系上運(yùn)行的頻率和性能要求數(shù)據(jù)庫物理設(shè)計(jì)關(guān)系數(shù)據(jù)庫物理設(shè)計(jì)的內(nèi)容為關(guān)系模式選擇存取方法(建立存取路徑) 設(shè)計(jì)關(guān)系、索引等數(shù)據(jù)庫文件的物理存儲結(jié)構(gòu)數(shù)據(jù)庫物理設(shè)計(jì)-關(guān)系模式存取方法數(shù)據(jù)庫系統(tǒng)是多用戶共享的系統(tǒng),對同一個(gè)關(guān)系要建立多條存取路徑才能滿足多用戶的多種應(yīng)用要求。物理設(shè)計(jì)的第一個(gè)任務(wù)就是要確定選擇哪些存取方法,即建立哪些存取路徑。數(shù)據(jù)庫物理設(shè)計(jì)-關(guān)系模式存取方法DBMS常用存取方法索引方法,目前主要是B+

45、樹索引方法,經(jīng)典存取方法,使用最普遍 聚簇(Cluster)方法HASH方法數(shù)據(jù)庫物理設(shè)計(jì)-索引索引存取方法的選擇根據(jù)應(yīng)用要求確定根據(jù)應(yīng)用要求確定 對哪些屬性列建立索引 對哪些屬性列建立組合索引 對哪些索引要設(shè)計(jì)為唯一索引數(shù)據(jù)庫物理設(shè)計(jì)-索引索引存取方法的選擇選擇索引存取方法的一般規(guī)則選擇索引存取方法的一般規(guī)則如果一個(gè)(或一組)屬性經(jīng)常在查詢條件中出現(xiàn),則考慮在這個(gè)(或這組)屬性上建立索引(或組合索引)如果一個(gè)屬性經(jīng)常作為最大值和最小值等聚集函數(shù)的參數(shù),則考慮在這個(gè)屬性上建立索引如果一個(gè)(或一組)屬性經(jīng)常在連接操作的連接條件中出現(xiàn),則考慮在這個(gè)(或這組)屬性上建立索引數(shù)據(jù)庫物理設(shè)計(jì)-索引索引存

46、取方法的選擇關(guān)系上定義的索引數(shù)過多會(huì)帶來較多的額外開銷關(guān)系上定義的索引數(shù)過多會(huì)帶來較多的額外開銷 維護(hù)索引的開銷 查找索引的開銷數(shù)據(jù)庫物理設(shè)計(jì)-聚簇聚簇存取方法的選擇為了提高某個(gè)屬性(或?qū)傩越M)的查詢速度,把這個(gè)或這些屬性(稱為聚簇碼)上具有相同值的元組集中存放在連續(xù)的物理塊稱為聚簇。數(shù)據(jù)庫物理設(shè)計(jì)-聚簇聚簇的用途1. 大大提高按聚簇屬性進(jìn)行查詢的效率例:假設(shè)學(xué)生關(guān)系按所在系建有索引,現(xiàn)在要查詢信息系的所有學(xué)生名單。信息系的500名學(xué)生分布在500個(gè)不同的物理塊上時(shí),至少要執(zhí)行500次I/O操作。如果將同一系的學(xué)生元組集中存放,則每讀一個(gè)物理塊可得到多個(gè)滿足查詢條件的元組,從而顯著地減少了訪問

47、磁盤的次數(shù)。數(shù)據(jù)庫物理設(shè)計(jì)-聚簇聚簇的用途2. 節(jié)省存儲空間聚簇以后,聚簇碼相同的元組集中在一起了,因而聚簇碼值不必在每個(gè)元組中重復(fù)存儲,只要在一組中存一次就行了數(shù)據(jù)庫物理設(shè)計(jì)-聚簇聚簇的局限性1. 聚簇只能提高某些特定應(yīng)用的性能2. 建立與維護(hù)聚簇的開銷相當(dāng)大對已有關(guān)系建立聚簇,將導(dǎo)致關(guān)系中元組移動(dòng)其物理存儲位置,并使此關(guān)系上原有的索引無效,必須重建當(dāng)一個(gè)元組的聚簇碼改變時(shí),該元組的存儲位置也要做相應(yīng)移動(dòng)數(shù)據(jù)庫物理設(shè)計(jì)-聚簇聚簇的適用范圍1. 既適用于單個(gè)關(guān)系獨(dú)立聚簇,也適用于多個(gè)關(guān)系組合聚簇例:假設(shè)用戶經(jīng)常要按系別查詢學(xué)生成績單,這一查詢涉及學(xué)生關(guān)系和選修關(guān)系的連接操作,即需要按學(xué)號連接這

48、兩個(gè)關(guān)系,為提高連接操作的效率,可以把具有相同學(xué)號值的學(xué)生元組和選修元組在物理上聚簇在一起。這就相當(dāng)于把多個(gè)關(guān)系按“預(yù)連接”的形式存放,從而大大提高連接操作的效率。數(shù)據(jù)庫物理設(shè)計(jì)-聚簇聚簇的適用范圍2. 當(dāng)通過聚簇碼進(jìn)行訪問或連接是該關(guān)系的主要應(yīng)用,與聚簇碼無關(guān)的其他訪問很少或者是次要的時(shí),可以使用聚簇。尤其當(dāng)SQL語句中包含有與聚簇碼有關(guān)的ORDER BY,GROUP BY,UNION,DISTINCT等子句或短語時(shí),使用聚簇特別有利,可以省去對結(jié)果集的排序操作數(shù)據(jù)庫物理設(shè)計(jì)-聚簇選擇聚簇存取的方法1.設(shè)計(jì)候選聚簇對經(jīng)常在一起進(jìn)行連接操作的關(guān)系可以建立組合聚簇;如果一個(gè)關(guān)系的一組屬性經(jīng)常出現(xiàn)

49、在相等比較條件中,則該單個(gè)關(guān)系可建立聚簇;如果一個(gè)關(guān)系的一個(gè)(或一組)屬性上的值重復(fù)率很高,則此單個(gè)關(guān)系可建立聚簇。即對應(yīng)每個(gè)聚簇碼值的平均元組數(shù)不太少。太少了,聚簇的效果不明顯。數(shù)據(jù)庫物理設(shè)計(jì)-聚簇選擇聚簇存取的方法2.優(yōu)化聚簇設(shè)計(jì)從聚簇中刪除經(jīng)常進(jìn)行全表掃描的關(guān)系;從聚簇中刪除更新操作遠(yuǎn)多于連接操作的關(guān)系;從聚簇中刪除重復(fù)出現(xiàn)的關(guān)系當(dāng)一個(gè)關(guān)系同時(shí)加入多個(gè)聚簇時(shí),必須從這多個(gè)聚簇方案(包括不建立聚簇)中選擇一個(gè)較優(yōu)的,即在這個(gè)聚簇上運(yùn)行各種事務(wù)的總代價(jià)最小。數(shù)據(jù)庫物理設(shè)計(jì)-HASH存取選擇HASH存取方法的規(guī)則當(dāng)一個(gè)關(guān)系滿足下列兩個(gè)條件時(shí),可以選擇HASH存取方法該關(guān)系的屬性主要出現(xiàn)在等值連

50、接條件中或主要出現(xiàn)在相等比較選擇條件中該關(guān)系的大小可預(yù)知,而且不變; 或 該關(guān)系的大小動(dòng)態(tài)改變,但所選用的DBMS提供了動(dòng)態(tài)HASH存取方法數(shù)據(jù)庫物理設(shè)計(jì)-確定物理結(jié)構(gòu)1. 確定數(shù)據(jù)的存放位置和存儲結(jié)構(gòu) 關(guān)系 索引 聚簇 日志 備份2. 確定系統(tǒng)配置數(shù)據(jù)庫物理設(shè)計(jì)-物理存儲位置影響數(shù)據(jù)存放位置和存儲結(jié)構(gòu)的因素硬件環(huán)境應(yīng)用需求存取時(shí)間存儲空間利用率維護(hù)代價(jià) 這三個(gè)方面常常是相互矛盾的 例:消除一切冗余數(shù)據(jù)雖能夠節(jié)約存儲空間和減少維護(hù)代價(jià),但往往會(huì)導(dǎo)致檢索代價(jià)的增加 必須進(jìn)行權(quán)衡,選擇一個(gè)折中方案。數(shù)據(jù)庫物理設(shè)計(jì)-物理存儲位置基本原則根據(jù)應(yīng)用情況將易變部分與穩(wěn)定部分存取頻率較高部分與存取頻率較低部分分開存放,以提高系統(tǒng)性能數(shù)據(jù)庫物理設(shè)計(jì)-物理存儲位置例如:數(shù)據(jù)庫數(shù)據(jù)備份、日志文件備份等由于只在故障恢復(fù)時(shí)才

溫馨提示

  • 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)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論