第六章數(shù)據(jù)庫技術(shù)基礎(chǔ)_第1頁
第六章數(shù)據(jù)庫技術(shù)基礎(chǔ)_第2頁
第六章數(shù)據(jù)庫技術(shù)基礎(chǔ)_第3頁
第六章數(shù)據(jù)庫技術(shù)基礎(chǔ)_第4頁
第六章數(shù)據(jù)庫技術(shù)基礎(chǔ)_第5頁
已閱讀5頁,還剩121頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、.本章主要介紹如下知識(shí): 數(shù)據(jù)庫系統(tǒng)的基本知識(shí) 對(duì)數(shù)據(jù)模型進(jìn)行闡述,特別是其中的E-R模型和關(guān)系模型 著重介紹關(guān)系型數(shù)據(jù)庫及其設(shè)計(jì)理論 數(shù)據(jù)庫的設(shè)計(jì)過程 簡(jiǎn)單介紹面向?qū)ο髷?shù)據(jù)庫系統(tǒng).6.1 6.1 數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)知識(shí)數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)知識(shí) 6.1.1數(shù)據(jù)庫系統(tǒng)的產(chǎn)生與發(fā)展 6.1.2 數(shù)據(jù)庫的基本術(shù)語 6.1.3 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)體系.6.1.16.1.1數(shù)據(jù)庫系統(tǒng)的產(chǎn)生與發(fā)展數(shù)據(jù)庫系統(tǒng)的產(chǎn)生與發(fā)展 數(shù)據(jù)管理技術(shù)經(jīng)歷以下三個(gè)階段:人工管理階段(50年代中期以前);文件系統(tǒng)階段(50年代后期到60年代中期);數(shù)據(jù)庫系統(tǒng)階段(60年代后期以來)。 .1.人工管理階段當(dāng)時(shí)外存沒有磁盤等直接存取的存儲(chǔ)設(shè)

2、備;軟件沒有操作系統(tǒng),數(shù)據(jù)的處理是批處理。 人 工 管 理 數(shù) 據(jù) 具 有 如 下 特 點(diǎn) : 1)數(shù)據(jù)不保存。 2)數(shù)據(jù)需要由應(yīng)用程序自己管理,沒有相應(yīng)的軟件來處理數(shù)據(jù)。 3)數(shù)據(jù)不共享。 4)數(shù)據(jù)不具有獨(dú)立性。 .2.文件系統(tǒng)階段 50年代后期到60年代中期,在操作系統(tǒng)中有專門的數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng)。文件系統(tǒng)是數(shù)據(jù)庫系統(tǒng)發(fā)展的初級(jí)階段。 用 文 件 系 統(tǒng) 管 理 數(shù) 據(jù) 具 有 如 下 特 點(diǎn) : 1)數(shù)據(jù)可長(zhǎng)期保存。2)簡(jiǎn)單的數(shù)據(jù)管理功能 3)數(shù)據(jù)共享性差。 4)數(shù)據(jù)的獨(dú)立性差。.3.數(shù)據(jù)庫系統(tǒng)階段 60年代末期,人們對(duì)文件系統(tǒng)進(jìn)行了擴(kuò)充,研制了一種結(jié)構(gòu)化的數(shù)據(jù)組織和處理方式

3、,才出現(xiàn)了真正的數(shù)據(jù)庫系統(tǒng)。 數(shù) 據(jù) 庫 系 統(tǒng) 的 基 本 特 點(diǎn) 如 下 : 1)數(shù)據(jù)的集成性。2)數(shù)據(jù)的高度共享性與低冗余性。3)數(shù)據(jù)獨(dú)立性高。數(shù)據(jù)的獨(dú)立性包括:.物理獨(dú)立性:是指數(shù)據(jù)的物理結(jié)構(gòu)的改變,如存儲(chǔ)設(shè)備的更換、物理存儲(chǔ)的更換、存取方式改變等都不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的改變。邏輯獨(dú)立性:是指數(shù)據(jù)的總體邏輯結(jié)構(gòu)改變時(shí),如修改數(shù)據(jù)模式、改變數(shù)據(jù)間的聯(lián)系等,不需要修改相應(yīng)的應(yīng)用程序。(4)數(shù)據(jù)的管理和控制能力。 數(shù)據(jù)管理發(fā)展的三個(gè)階段的軟硬件背景及其特點(diǎn)的比較見下表 。.人工管理階段人工管理階段文件系統(tǒng)階段文件系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段背背景景應(yīng)用背景應(yīng)用

4、背景科學(xué)計(jì)算科學(xué)計(jì)算科學(xué)計(jì)算、管理科學(xué)計(jì)算、管理大規(guī)模管理大規(guī)模管理硬件背景硬件背景無直接存取存儲(chǔ)設(shè)無直接存取存儲(chǔ)設(shè)備備磁盤、磁鼓磁盤、磁鼓大容量磁備盤大容量磁備盤軟件背景軟件背景沒有操作系統(tǒng)沒有操作系統(tǒng)有文件系統(tǒng)有文件系統(tǒng)有數(shù)據(jù)庫管理系統(tǒng)有數(shù)據(jù)庫管理系統(tǒng)處理方式處理方式批處理批處理聯(lián)機(jī)實(shí)時(shí)處理、批處理聯(lián)機(jī)實(shí)時(shí)處理、批處理聯(lián)機(jī)實(shí)時(shí)處理、分布處理、聯(lián)機(jī)實(shí)時(shí)處理、分布處理、批處理批處理特特點(diǎn)點(diǎn)數(shù)據(jù)的管理者數(shù)據(jù)的管理者用戶用戶( (程序員程序員) )文件系統(tǒng)文件系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)面向的對(duì)象數(shù)據(jù)面向的對(duì)象某一應(yīng)用程序某一應(yīng)用程序某一應(yīng)用某一應(yīng)用現(xiàn)實(shí)世界現(xiàn)實(shí)世界數(shù)據(jù)共享程度數(shù)據(jù)共享程度

5、無共享,冗余度極無共享,冗余度極大大共享性差,冗余度大共享性差,冗余度大共享性高,冗余度小共享性高,冗余度小數(shù)據(jù)的獨(dú)立性數(shù)據(jù)的獨(dú)立性不獨(dú)立,完全依賴不獨(dú)立,完全依賴于程序于程序獨(dú)立性差獨(dú)立性差具有高度的物理獨(dú)立性和一具有高度的物理獨(dú)立性和一定的邏輯獨(dú)立性定的邏輯獨(dú)立性數(shù)據(jù)的結(jié)構(gòu)化數(shù)據(jù)的結(jié)構(gòu)化無結(jié)構(gòu)無結(jié)構(gòu)記錄內(nèi)有結(jié)構(gòu),整體無記錄內(nèi)有結(jié)構(gòu),整體無結(jié)構(gòu)結(jié)構(gòu)整體結(jié)構(gòu)化,用數(shù)據(jù)模型描整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述述數(shù)據(jù)控制能力數(shù)據(jù)控制能力應(yīng)用程序自己控制應(yīng)用程序自己控制應(yīng)用程序自己控制應(yīng)用程序自己控制由數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)由數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)安全性、完整性、并發(fā)控制安全性、完整性、并發(fā)控制和恢復(fù)能力和

6、恢復(fù)能力.6.1.2 6.1.2 數(shù)據(jù)庫的基本術(shù)語數(shù)據(jù)庫的基本術(shù)語1. 數(shù)據(jù)(Data)定義:數(shù)據(jù)是描述事物的符號(hào)記錄。 數(shù)據(jù)的表現(xiàn)形式不僅是數(shù)字,還包括字符(文字和符號(hào))、圖表(圖形、圖像和表格)及聲音、語言等 。 信息是從原始數(shù)據(jù)中經(jīng)過篩選、提煉等加工后,產(chǎn)生的對(duì)決策有影響的數(shù)據(jù)。 .2. 數(shù)據(jù)庫(Database)定義:數(shù)據(jù)庫(DB)是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)的集合。 數(shù)據(jù)庫有以下特點(diǎn):1)數(shù)據(jù)結(jié)構(gòu)化。 2)實(shí)現(xiàn)數(shù)據(jù)共享。 3)減少數(shù)據(jù)的冗余。 4)數(shù)據(jù)獨(dú)立。 .3.數(shù)據(jù)庫管理系統(tǒng)(Databbase Management System簡(jiǎn)稱DBMS)定義:數(shù)據(jù)庫管理系

7、統(tǒng)它是位于用戶和操作系統(tǒng)(OS)之間的一層數(shù)據(jù)管理軟件,負(fù)責(zé)數(shù)據(jù)庫中數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、數(shù)據(jù)控制及保護(hù)和數(shù)據(jù)接口等。 .4.數(shù)據(jù)庫管理員(Database Adminstrator簡(jiǎn)稱DBA)定義:由專職人員對(duì)數(shù)據(jù)庫進(jìn)行規(guī)劃、設(shè)計(jì)、維護(hù)、監(jiān)視等,稱這些專職人員為數(shù)據(jù)庫管理員。 數(shù) 據(jù) 庫 管 理 員 的 具 體 職 責(zé) 包 括 : 1)數(shù)據(jù)庫定義與設(shè)計(jì)。 2)數(shù)據(jù)庫運(yùn)行與維護(hù)。 3)數(shù)據(jù)庫的改進(jìn)和重組重構(gòu)。 .5.數(shù)據(jù)庫系統(tǒng)(Database System簡(jiǎn)稱DBS)定義:數(shù)據(jù)庫系統(tǒng)一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)軟件)、系統(tǒng)平臺(tái)、應(yīng)用系統(tǒng)和人員構(gòu)成。 數(shù)據(jù)庫系統(tǒng)在整個(gè)計(jì)算機(jī)系

8、統(tǒng)中的地位如下圖所示。 .DBOSDBMS應(yīng)用程序應(yīng)用程序.6.1.3 6.1.3 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)體系數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)體系 數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)可以有多種不同的層次。 從數(shù)據(jù)庫管理系統(tǒng)角度看,數(shù)據(jù)庫系統(tǒng)通常采用三級(jí)模式結(jié)構(gòu),這是數(shù)據(jù)庫系統(tǒng)的內(nèi)部系統(tǒng)結(jié)構(gòu)。 從數(shù)據(jù)庫最終用戶角度看,數(shù)據(jù)庫系統(tǒng)分為單用戶數(shù)據(jù)庫系統(tǒng)、主從式數(shù)據(jù)庫系統(tǒng)、分布式數(shù)據(jù)庫系統(tǒng)和客戶/服務(wù)器數(shù)據(jù)庫系統(tǒng)。.1. 數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu) 模式是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。 數(shù)據(jù)庫系統(tǒng)在其內(nèi)部具有三級(jí)模式和二級(jí)映像。三級(jí)模式分別為外模式、模式與內(nèi)模式;二級(jí)映像則是外模式/模式映像和模式/內(nèi)模式映像。 三級(jí)模式與二級(jí)映像構(gòu)成數(shù)據(jù)庫

9、系統(tǒng)的內(nèi)部的抽象結(jié)構(gòu)體系,如下圖所示。.應(yīng) 用 程應(yīng) 用 程序序A應(yīng) 用 程應(yīng) 用 程序序B應(yīng) 用 程應(yīng) 用 程序序n外模式外模式1外模式外模式n模式模式(概念數(shù)據(jù)庫概念數(shù)據(jù)庫)內(nèi)模式內(nèi)模式(物理數(shù)據(jù)庫物理數(shù)據(jù)庫)數(shù)據(jù)庫數(shù)據(jù)庫外模式外模式/模式模式映像映像模式模式/內(nèi)模式內(nèi)模式映像映像.(1)數(shù)據(jù)庫系統(tǒng)的三級(jí)模式。 外模式也稱子模式或用戶模式,還稱為用戶級(jí)模式。它是數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖。 模式也稱邏輯模式,還稱概念模式。是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。 內(nèi)模式也稱存儲(chǔ)模式,還稱物理模式。它是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述。.(

10、2)數(shù)據(jù)庫系統(tǒng)的二級(jí)映像。 外模式模式映像:它使數(shù)據(jù)具有較高的邏輯獨(dú)立性。它定義了該外模式與模式之間的對(duì)應(yīng)關(guān)系。這些映象定義通常包含在各自外模式的描述中。當(dāng)模式改變時(shí),DBA要對(duì)相關(guān)的外模式模式映像作相應(yīng)的改變,以使外模式保持不變。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,外模式不變,應(yīng)用程序就沒必要修改。所以外模式模式映像功能保證了數(shù)據(jù)與程序的邏輯獨(dú)立性。. 模式內(nèi)模式映像:它使數(shù)據(jù)具有較高的物理獨(dú)立性。它定義了數(shù)據(jù)庫全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系。該映像定義通常包含在模式描述中。當(dāng)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)了,DBA要對(duì)模式內(nèi)模式映像作相應(yīng)的改變,以使模式保持不變。模式不變,與模式?jīng)]有直接聯(lián)系的應(yīng)用程

11、序也不會(huì)改變,所以模式內(nèi)模式映像功能保證了數(shù)據(jù)與程序的物理獨(dú)立性。.2. 數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)(1)單用戶數(shù)據(jù)庫系統(tǒng)。 DBDB.(2)主從式數(shù)據(jù)庫系統(tǒng)。DB主機(jī)主機(jī).(3)分布式數(shù)據(jù)庫系統(tǒng)。主主機(jī)機(jī)DBDBDB主主機(jī)機(jī)主主機(jī)機(jī)網(wǎng)網(wǎng)絡(luò)絡(luò).(4)客戶/服務(wù)器數(shù)據(jù)庫系統(tǒng)??蛻魴C(jī)客戶機(jī)客戶機(jī)客戶機(jī)客戶機(jī)客戶機(jī)客戶機(jī)客戶機(jī)服務(wù)器服務(wù)器.6.2 6.2 數(shù)據(jù)模型數(shù)據(jù)模型 6.2.1 數(shù)據(jù)模型的基本概念 6.2.2 概念模型 6.2.3 數(shù)據(jù)模型.6.2.1 6.2.1 數(shù)據(jù)模型的基本概念數(shù)據(jù)模型的基本概念 數(shù)據(jù)模型根據(jù)不同的應(yīng)用層次劃分為三種類型:1、概念模型:也稱信息模型。它是按用戶觀點(diǎn)來對(duì)數(shù)據(jù)和信息

12、建模,主要用于數(shù)據(jù)庫設(shè)計(jì)。它與具體數(shù)據(jù)庫管理系統(tǒng)無關(guān),與具體的計(jì)算機(jī)平臺(tái)無關(guān)。目前,較為流行的概念模型有E-R模型、擴(kuò)充的E-R模型、面向?qū)ο竽P偷取?2、邏輯模型:又稱數(shù)據(jù)模型。它是按計(jì)算機(jī)系統(tǒng)觀點(diǎn)對(duì)數(shù)據(jù)建模,主要用于DBMS的實(shí)現(xiàn)。目前數(shù)據(jù)模式有很多種,包括層次模型、網(wǎng)狀模型和關(guān)系模型、面向?qū)ο竽P偷取?、物理模型:它是一中面向計(jì)算機(jī)物理表示的模型,此模型給出了數(shù)據(jù)模型在計(jì)算機(jī)上的物理結(jié)構(gòu)的表示。. 數(shù)據(jù)模型的三要素:1、數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)用來描述系統(tǒng)的靜態(tài)特征。它主要描述數(shù)據(jù)的類型、內(nèi)容性質(zhì)以及數(shù)據(jù)間的聯(lián)系等。 2、數(shù)據(jù)操作。數(shù)據(jù)操作用于描述系統(tǒng)的動(dòng)態(tài)特征。它主要描述在相應(yīng)數(shù)據(jù)結(jié)構(gòu)上的操

13、作類型與操作方式。數(shù)據(jù)庫主要有檢索和更新(包括插入、刪除和修改)兩類操作。.3、數(shù)據(jù)約束條件。 數(shù)據(jù)約束條件是一組完整型規(guī)則的集合,它描述了數(shù)據(jù)及其聯(lián)系應(yīng)具有的制約和依賴規(guī)則。.6.2.2 6.2.2 概念模型概念模型 概念模型是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次。 概念模型的表示方法很多,其中最常用的是實(shí)體聯(lián)系模型,簡(jiǎn)稱為E-R模型。該模型將現(xiàn)實(shí)世界中需要的信息,以及它們之間的基本聯(lián)接關(guān)系轉(zhuǎn)化成圖,比較直觀的反映了現(xiàn)實(shí)世界。.1. 概念模型涉及的基本概念(1)實(shí)體:客觀存在的并可相互區(qū)別的事物稱為實(shí)體??梢允蔷唧w的人、事、物,比如小趙、信息學(xué)院、教材等;也可以是抽象的概念或聯(lián)系,比如領(lǐng)導(dǎo)與職工

14、的領(lǐng)導(dǎo)關(guān)系。實(shí)體是概念世界中的基本單位。.(2)屬性:實(shí)體所具有的某一特性稱為屬性。一個(gè)實(shí)體可以由若干個(gè)屬性來刻畫。如學(xué)生實(shí)體可以由學(xué)號(hào)、姓名、性別等屬性組成。(3)聯(lián)系:現(xiàn)實(shí)世界中的事物間的關(guān)聯(lián)稱為聯(lián)系。如教師與學(xué)生的授課關(guān)系等。這些聯(lián)系反映為實(shí)體內(nèi)部的聯(lián)系和實(shí)體之間的聯(lián)系。.兩個(gè)實(shí)體集間的聯(lián)系可以分為以下幾種:一對(duì)一聯(lián)系(1 :1):對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有且只能有一個(gè)實(shí)體與之聯(lián)系,反之亦然。如學(xué)校與校長(zhǎng)之間的聯(lián)系 。一對(duì)多聯(lián)系(1 :n)或多對(duì)一聯(lián)系(n :1):對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n (n1)個(gè)實(shí)體與之聯(lián)系,反之,對(duì)于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A

15、中有且只能有一個(gè)實(shí)體與之聯(lián)系。如一個(gè)學(xué)院由多個(gè)班級(jí)。 . 多對(duì)多聯(lián)系(m :n): 這是一種復(fù)雜的聯(lián)系,對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n (n1)個(gè)實(shí)體與之聯(lián)系,反之,對(duì)于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中有n (n1)實(shí)體與之聯(lián)系。如一門課同時(shí)有若干個(gè)學(xué)生選修,而一個(gè)學(xué)生可以同時(shí)選修多門課。.2. 概念模型基本概念之間的關(guān)系(1)實(shí)體集(聯(lián)系)與屬性間的關(guān)系。 一個(gè)實(shí)體可以有若干個(gè)屬性,實(shí)體以及它的所有屬性構(gòu)成了實(shí)體的一個(gè)完整描述,因此實(shí)體與屬性間有一定的聯(lián)系。如在學(xué)生基本情況信息表中每一個(gè)人(實(shí)體)可以有:編號(hào)、姓名、性別、系別、年齡、籍貫、政治面貌等屬性,它們組成了一個(gè)有關(guān)學(xué)生

16、實(shí)體的完整描述。. 聯(lián)系也可以附有屬性,聯(lián)系和它的所有的屬性構(gòu)成了聯(lián)系的一個(gè)完整描述,因此,聯(lián)系與屬性間也有聯(lián)接關(guān)系。(2)實(shí)體集與聯(lián)系。 實(shí)體集間可通過聯(lián)系建立聯(lián)接關(guān)系。 概念模型中的基本關(guān)系的結(jié)構(gòu)如下圖所示。 .學(xué)學(xué)生生信信息息表表關(guān)關(guān)系系關(guān)系名關(guān)系名主碼主碼(男,女男,女)信息信息,材料材料北京北京,上海上海團(tuán)員團(tuán)員,黨員黨員域域?qū)傩詫傩?列列)元元組組行行屬性名屬性名.3. 概念模型的表示方法(1)實(shí)體集的表示方法:在E-R圖中用矩形表示實(shí)體集,在矩形內(nèi)寫上該實(shí)體集的名字。(2)屬性的表示方法:在E-R圖中用橢圓表示屬性,在橢圓內(nèi)寫上該屬性的名稱。并用無向邊將其與相應(yīng)的實(shí)體連接起來。.

17、(3)聯(lián)系的表示方法:在E-R圖中用菱形表示聯(lián)系,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)的實(shí)體連接起來,同時(shí)在無向邊旁標(biāo)上聯(lián)系的類型,如1 :1,1 :n,n :m等。如下圖所示。.班級(jí)班級(jí)領(lǐng)導(dǎo)領(lǐng)導(dǎo)班長(zhǎng)班長(zhǎng)11(a)兩個(gè)實(shí)體集間的兩個(gè)實(shí)體集間的1:1聯(lián)系聯(lián)系班級(jí)班級(jí)組成組成學(xué)生學(xué)生1n(b)兩個(gè)實(shí)體集間的兩個(gè)實(shí)體集間的1:n聯(lián)系聯(lián)系. 聯(lián)系本身也是一種實(shí)體型,也有屬性,如果一個(gè)聯(lián)系具有屬性,則將這些屬性用無向邊與該聯(lián)系連接起來。課程課程選修選修學(xué)生學(xué)生nm(c)兩個(gè)實(shí)體集間的兩個(gè)實(shí)體集間的n: m聯(lián)系聯(lián)系. 例例6.1 6.1 有三個(gè)實(shí)體集及它們的屬性,它們分別是:學(xué)生(Student):學(xué)

18、號(hào)(Xh)、姓名(Xm)、性別(Xb)、年齡(Nl)班級(jí)(Class):班號(hào)(Bh)、專業(yè)(Zy)課程(Course):課程號(hào)(Kh)、課程名(Km)、學(xué)分(Xf) 由這三個(gè)實(shí)體集構(gòu)成的概念模型,可用E-R圖來表示,如圖所示。.ClassStudentCourseXh組成組成選修選修KmXfXhXmXbNlBh成績(jī)成績(jī)學(xué)生學(xué)生1nnmZy.6.2.3 6.2.3 數(shù)據(jù)模型數(shù)據(jù)模型在數(shù)據(jù)庫領(lǐng)域中最常用的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型、關(guān)系模型三種模型。1. 層次模型層次模型是最早發(fā)展起來的數(shù)據(jù)庫模型。它的基本結(jié)構(gòu)是樹形結(jié)構(gòu),這種結(jié)構(gòu)方式在現(xiàn)實(shí)世界中很普遍,如家族結(jié)構(gòu)、行政組織結(jié)構(gòu)等。. 在圖論中,

19、我們學(xué)過樹的定義,任一樹結(jié)構(gòu)均有以下特性:1)棵樹有且僅有一個(gè)無雙親結(jié)點(diǎn),稱為根結(jié)點(diǎn)。2)除根結(jié)點(diǎn)以外其他的結(jié)點(diǎn)有且僅有一個(gè)雙親,無子女的結(jié)點(diǎn)稱為葉結(jié)點(diǎn)。 層次模型的示例如下圖所示。 .院院 系系學(xué)學(xué) 校校研究所研究所機(jī)機(jī) 關(guān)關(guān)教研室教研室班班 級(jí)級(jí)科研室科研室科室科室教師教師學(xué)生學(xué)生科研人員科研人員工作人員工作人員領(lǐng)導(dǎo)領(lǐng)導(dǎo)領(lǐng)導(dǎo)領(lǐng)導(dǎo)領(lǐng)導(dǎo)領(lǐng)導(dǎo)領(lǐng)導(dǎo)領(lǐng)導(dǎo)領(lǐng)導(dǎo)領(lǐng)導(dǎo)領(lǐng)導(dǎo)領(lǐng)導(dǎo)領(lǐng)導(dǎo)領(lǐng)導(dǎo)組成組成組成組成組成組成組成組成.2.網(wǎng)狀模型 網(wǎng)狀模型是一種更具有普遍性的結(jié)構(gòu),從圖論的角度講,網(wǎng)狀模型是一個(gè)不加任何條件限制的無向圖。網(wǎng)狀模型是以記錄為結(jié)點(diǎn)的網(wǎng)狀結(jié)構(gòu),它滿足以下條件:(1)可以有任意個(gè)結(jié)點(diǎn)無雙親。(2)允

20、許結(jié)點(diǎn)有一個(gè)以上的雙親。(3)允許兩個(gè)結(jié)點(diǎn)之間有一種或兩種以上的聯(lián)系。. 網(wǎng)狀模型的示例如下圖所示。工廠工廠市場(chǎng)部市場(chǎng)部生產(chǎn)部生產(chǎn)部產(chǎn)品產(chǎn)品管理管理管理管理推銷推銷生產(chǎn)生產(chǎn).3.關(guān)系模型 目前,關(guān)系模型是數(shù)據(jù)庫領(lǐng)域中目前最重要的一種數(shù)據(jù)模型。關(guān)系模型的本質(zhì)是一張二維表,關(guān)系模型中,一張二維表就稱為一個(gè)關(guān)系。(1)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)。關(guān)系模型采用二維表來表示,簡(jiǎn)稱表。如下表是一張學(xué)生登記表,它由行(元組)和列(屬性)組成。.學(xué)號(hào)學(xué)號(hào)姓名姓名性別性別年齡年齡系號(hào)系號(hào)年級(jí)年級(jí)950104950104王小明王小明女女191901019595950206950206黃大鵬黃大鵬男男20200202959

21、5950508950508張文斌張文斌女女181805059595. 關(guān)系二維表一般具有下面幾個(gè)性質(zhì): 1) 元組個(gè)數(shù)有限性。2) 元組的唯一性。 3)元組次序的無關(guān)性。4)元組分量的原子性5)屬性名的唯一性。6)屬性的次序無關(guān)性。7) 分量值域的同一性。. 需要注意的是:關(guān)系必須滿足一定的規(guī)范條件,其中最基本的一條是:關(guān)系的每一個(gè)分量必須是一個(gè)不可分的數(shù)據(jù)項(xiàng),即不允許表中還有表。 外鍵:二維表中某個(gè)屬性或?qū)傩越M合雖不是該表的關(guān)鍵字或只是關(guān)鍵字的一部分,但卻是另外一個(gè)表的關(guān)鍵字時(shí),稱該屬性或?qū)傩越M合為這個(gè)表的外部關(guān)鍵字或外鍵。.(2)關(guān)系模型的操作。一般有以下四種操作:1)數(shù)據(jù)查詢。數(shù)據(jù)查詢是

22、數(shù)據(jù)庫的核心操作。它包括單表查詢和多表查詢。 單表查詢:是指僅在一個(gè)數(shù)據(jù)庫表進(jìn)行的查詢。 多表查詢:是指同時(shí)涉及兩個(gè)以上的表的查詢。首先將相關(guān)的關(guān)系合并成一個(gè)關(guān)系,再對(duì)合并后的關(guān)系作橫向或縱向的定位。確定要查詢的數(shù)據(jù),之后進(jìn)行操作。.2)數(shù)據(jù)插入。數(shù)據(jù)插入僅對(duì)一個(gè)關(guān)系而言,在指定的關(guān)系中插入一個(gè)或多個(gè)元組。3)數(shù)據(jù)刪除。數(shù)據(jù)刪除的基本單位是一個(gè)表中元組,它將滿足條件元組從表中刪除。4)數(shù)據(jù)修改。數(shù)據(jù)修改又稱更新操作。它可以分解為刪除和插入兩個(gè)基本操作。 以上四種操作的對(duì)象都是關(guān)系(表),而操作的結(jié)果也是關(guān)系(表)。.(3)關(guān)系模型的約束條件。關(guān)系模型定義三種數(shù)據(jù)約束條件:1)實(shí)體完整性約束條件

23、。實(shí)體完整性約束要求關(guān)系中主碼的任何屬性都不能為空。這是數(shù)據(jù)庫完整性的最基本的要求,因?yàn)橹鞔a唯一標(biāo)識(shí)元組,如為空則不能為主碼。.2)參照完整性約束條件。參照完整性約束是對(duì)關(guān)系間引用數(shù)據(jù)的一種限制。即在關(guān)系中的外鍵要么是所關(guān)聯(lián)關(guān)系中的實(shí)際存在的元組,要么就為空值。比如在下面關(guān)系中:職工關(guān)系(職工編號(hào),姓名,性別,部門編號(hào))部門關(guān)系(部門編號(hào),部門名稱,部門經(jīng)理) 職工編號(hào)是職工關(guān)系的主碼,而外碼為部門編號(hào),職工關(guān)系與部門關(guān)系通過部門編號(hào)關(guān)聯(lián),參照完整性要求職工關(guān)系中的部門編號(hào)的值在部門關(guān)系中必有相應(yīng)元組。.3)用戶定義的完整性約束條件。用戶定義的完整性約束條件是某一具體數(shù)據(jù)庫的約束條件,是用戶自

24、己定義的某一具體數(shù)據(jù)必須滿足的語義要求。 其中前兩者約束條件由關(guān)系數(shù)據(jù)庫系統(tǒng)自動(dòng)支持。對(duì)后者,則由關(guān)系數(shù)據(jù)庫系統(tǒng)提供完整性約束語言,用戶利用該語言定義出約束條件。.6.3 6.3 關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫 6.3.1 關(guān)系模型的特點(diǎn) 6.3.2 關(guān)系代數(shù) 6.3.3 結(jié)構(gòu)化查詢語言SQL.6.3.1 6.3.1 關(guān)系模型的特點(diǎn)關(guān)系模型的特點(diǎn)1.單一的數(shù)據(jù)結(jié)構(gòu)關(guān)系 關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)是單一的?,F(xiàn)實(shí)世界的實(shí)體以及實(shí)體之間的各種聯(lián)系均用關(guān)系來表示,從用戶角度來看,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。2.關(guān)系操作 關(guān)系操作采用集合操作方式。即操作對(duì)象和結(jié)果都是集合。其中查詢是最基本的操作。.3.關(guān)系的三

25、類完整性規(guī)則 關(guān)系模型的完整性規(guī)則是對(duì)數(shù)據(jù)的約束。關(guān)系模型提供了三類完整性規(guī)則:實(shí)體完整性規(guī)則、參照完整性規(guī)則和用戶自定義完整性規(guī)則。.6.3.2 6.3.2 關(guān)系代數(shù)關(guān)系代數(shù) 關(guān)系模型中的關(guān)系操作通常用關(guān)系代數(shù)和關(guān)系演算來表示的。關(guān)系代數(shù)是一種抽象的查詢語言,它是用對(duì)關(guān)系的運(yùn)算來表達(dá)查詢的。關(guān)系演算是用謂詞來表達(dá)查詢要求的方式。二者是等價(jià)的。在這里我們著重介紹關(guān)系代數(shù)。.1. 關(guān)系代數(shù)的相關(guān)概念(1)笛卡爾積:令A(yù)和B是任意兩個(gè)集合,若有序?qū)Φ牡谝粋€(gè)成員是A的元素,第二個(gè)成員是B的元素,所有這樣的有序?qū)Φ募?,稱為集合A和B的笛卡爾積或直積。記作AB。 AB=|(xA)(yB) 笛卡爾積可表

26、示為一個(gè)二維表,表中的每一行對(duì)應(yīng)一個(gè)元組,表中的每一列對(duì)應(yīng)一個(gè)域(同一屬性的集合)。. 我們看一個(gè)例子:例如:A=a,b, B=0,1,2則: AB=a,0,a,1, a,2, b,0, b,1, b,2 BA=0,a,0,b, 1,a, 1,b, 2,a, 2,b.(2)關(guān)系:令A(yù)和B是任意兩個(gè)集合,笛卡爾積AB的子集R稱作A到B的關(guān)系。簡(jiǎn)單的說:關(guān)系是笛卡爾積的子集。(3)關(guān)系模型:關(guān)系的描述稱為關(guān)系模型。它可以形象化地表示為一個(gè)五元組: R(U,D,DOM,F(xiàn))。其中R為關(guān)系名,U為組成該關(guān)系的屬性名的集合,D為屬性組U中屬性所來自的域,DOM為屬性向域的映像集合,F(xiàn)為屬性間數(shù)據(jù)依賴關(guān)系

27、。.2.傳統(tǒng)的集合運(yùn)算(1)并:設(shè)關(guān)系R和S具有相同的關(guān)系模式,R和S的并是由屬于R或?qū)儆赟的元組構(gòu)成的集合,記為RS。形式定義如下: RS = t | tR tS , t是元組變量,R和S都有n個(gè)屬性。 并運(yùn)算可以實(shí)現(xiàn)插入若干元組的操作。如對(duì)關(guān)系R插入R,則可用并運(yùn)算表示為:RR。.(2)差:設(shè)關(guān)系R和S具有相同的關(guān)系模式,R和S的差是由屬于R但不屬于S的元組構(gòu)成的集合,記為RS。形式定義如下: RS = t | tR tS , R和S都有n個(gè)屬性。 差運(yùn)算可實(shí)現(xiàn)刪除操作。如對(duì)關(guān)系R刪除R,則可用差運(yùn)算表示為:RR。 對(duì)關(guān)系的修改可分兩步進(jìn)行,先做刪除操作,再做插入操作,即先做差運(yùn)算再做并運(yùn)

28、算。.(3)交:設(shè)關(guān)系R和S具有相同的關(guān)系模式,關(guān)系R和S的交是由既屬于R又屬于S的元組構(gòu)成的集合,記為RS,這里要求R和S定義在相同的關(guān)系模式上。形式定義如下: RS = ttR tS, R和S都有n個(gè)屬性。.(4)廣義笛卡爾積:設(shè)關(guān)系R和S的元數(shù)分別為r和s,則R和S的笛卡爾積是一個(gè)(r+s)元的元組集合,每個(gè)元組的前r個(gè)分量來自R的一個(gè)元組,后s個(gè)分量來自S的一個(gè)元組,記為:RS。形式定義如下: RS = t | t= tr R ts S 下面舉例說明上述的四種傳統(tǒng)集合運(yùn)算。. 例R R 關(guān)系關(guān)系R R1 1R R2 2R R3 31 12 23 32 25 57 7S S關(guān)系關(guān)系R R

29、1 1R R2 2R R3 34 42 23 31 12 23 3R RS (RS (R和和S S 的并的并) )R R1 1R R2 2R R3 31 12 23 32 25 57 74 42 23 3RS (RRS (R和和S S 的交的交) )R R1 1R R2 2R R3 31 12 23 3R RS (RS (R和和S S 的差的差) )R R1 1R R2 2R R3 32 25 57 7R RS(RS(R和和S S的廣義笛卡爾積的廣義笛卡爾積) )R R1 1R R2 2R R3 3R R1 1R R2 2R R3 31 12 23 34 42 23 31 12 23 31 1

30、2 23 32 25 57 74 42 23 32 25 57 71 12 23 3.3.專門的關(guān)系運(yùn)算專門的關(guān)系運(yùn)算包括選擇、投影、連接、除。(1)選擇:選擇運(yùn)算是根據(jù)某些條件對(duì)關(guān)系做水平分割,即選取符合條件的元組。形式定義如下:F(R) t | tR F(t)= true 其中為選擇運(yùn)算符,F(xiàn)(R)表示從R中挑選滿足公式F為真的元組所構(gòu)成的關(guān)系。這是從行的角度進(jìn)行的運(yùn)算。 例如, 23 (R)表示從R中挑選第2個(gè)分量值大于3的元組所構(gòu)成的關(guān)系。.(2)投影:投影運(yùn)算是從關(guān)系內(nèi)選擇出若干屬性列組成新的關(guān)系。形式定義如下:A(R) t A| tR 其中A為R的屬性列。投影操作是從列的角度進(jìn)行的

31、運(yùn)算。 投影之后不僅取消了原關(guān)系中的某些列,而且取消完全相同的元組。 例如, 3,1 (R)表示關(guān)系R中取第1、3列,組成新的關(guān)系,新關(guān)系中第1列為R的第3列,新關(guān)系的第2列為R的第1列。.(3)連接:連接也稱為聯(lián)接。它是從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組組成新的關(guān)系。關(guān)系R和S的連接運(yùn)算形式定義如下:R S tt = trR tsS AB trA tsB . 連接運(yùn)算中有兩種最為常用的連接:1) 等值連接:將連接中的換成“=”,功能是從關(guān)系R和S的笛卡爾積中選取A,B屬性值相等的那些元組。它的形式定義為: R S tt = trR tsS A=B trA tsB .2)自然連

32、接:是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且要在結(jié)果中將重復(fù)的屬性去掉。它的形式定義為:R S tt = trR tsS trBtsB 連接運(yùn)算一般是從行的角度進(jìn)行的操作,但自然連接是同時(shí)從行和列的角度進(jìn)行的操作。.我們舉例說明連接運(yùn)算:R R關(guān)系關(guān)系A(chǔ) AB BC CD Da1a1b1b1c1c14 4a2a2b2b2c2c27 7a2a2b3b3c1c15 5a1a1b4b4c2c21 1S S關(guān)系關(guān)系B BE Eb1b12 2b2b26 6b2b28 8b3b31111選擇連接選擇連接A AR.BR.BC CD DS.BS.BE Ea1a1b1b1c1

33、c14 4b1b12 2a2a2b2b2c2c27 7b1b12 2a2a2b2b2c2c27 7b2b26 6a1a1b3b3c1c15 5b2b22 2R S DE .自然連接自然連接R R S SA AB BC CD DE Ea1a1b1b1c1c14 42 2a2a2b2b2c2c27 76 6a2a2b2b2c2c27 78 8a2a2b3b3c1c15 51111A AR.BR.BC CD DS.BS.BE Ea1a1b1b1c1c14 4b1b12 2a2a2b2b2c2c27 7b2b26 6a2a2b2b2c2c27 7b2b28 8a2a2b3b3c1c15 5b3b311

34、11等值連接等值連接 R SR.B=S.B .(4)除:設(shè)R(x)和S(y)是兩個(gè)關(guān)系,并且y是x的子集即x中的每一個(gè)屬性都在y中,關(guān)系RS是模式xy上的關(guān)系,也就是說,RS包含所有在x中而不在y中的屬性。它形式定義為: RS = trX| trR yx y(S) 其中yx為x在R中的像集。. 我們舉例說明除運(yùn)算:R R關(guān)系關(guān)系A(chǔ) AB BC CD D2 24 43 34 44 45 56 67 74 45 53 34 42 24 46 67 72 24 43 38 8S S關(guān)系關(guān)系C CD D3 34 46 67 73 38 8R RS SA AB B2 24 4. 根據(jù)上述的關(guān)系運(yùn)算完成下

35、面例題學(xué)生選課數(shù)據(jù)庫的關(guān)系模式為:Student(Sno,Sname,Sdept,Sage);Course(Cno,Cname,Pno);SC(Sno,Cno,Grade)。其中Sno,Sname,Sdept,Sage表示學(xué)號(hào)、學(xué)生姓名、學(xué)生系別、學(xué)生年齡;Cno,Cname,Pno表示課程號(hào)、課程名、預(yù)修課程號(hào);Grade表示成績(jī)。.寫出對(duì)關(guān)系模型Student、Course、SC中的下述查詢表達(dá)式:(1)檢索學(xué)生年齡小于19的學(xué)生的姓名。 Sname(Sage85 (Student SC) (5)求選修了全部課程的學(xué)生學(xué)號(hào)。 Sno,Cno(SC) Cno(Course) .6.3.3 6

36、.3.3 結(jié)構(gòu)化查詢語言結(jié)構(gòu)化查詢語言SQLSQL SQL:是Structured Query Language的縮寫,是一種結(jié)構(gòu)化查詢語言。是1974年由Boyce和Chamberlin提出來的。 由于SQL使用方便、功能豐富、語言簡(jiǎn)單易學(xué),現(xiàn)已成為關(guān)系數(shù)據(jù)庫領(lǐng)域中的一個(gè)主流語言。.1.SQL數(shù)據(jù)庫結(jié)構(gòu) SQL數(shù)據(jù)庫的結(jié)構(gòu)如圖所示。SQL用戶用戶SQL用戶用戶視圖視圖1視圖視圖2基本表基本表1基本表基本表2基本表基本表3基本表基本表4存儲(chǔ)文件存儲(chǔ)文件1存儲(chǔ)文件存儲(chǔ)文件1存儲(chǔ)文件存儲(chǔ)文件1. 它基本上是三級(jí)結(jié)構(gòu),它支持關(guān)系數(shù)據(jù)庫三級(jí)模式結(jié)構(gòu),但在SQL數(shù)據(jù)庫中,模式被稱為基本表,內(nèi)模式稱為存儲(chǔ)

37、文件,外模式稱為視圖或部分基本表,元組稱為行,屬性稱為列。.2.結(jié)構(gòu)化查詢語言SQL的組成 SQL語言包括數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)控制4個(gè)方面。 數(shù)據(jù)定義包括定義基本表、定義視圖、定義索引3部分。 數(shù)據(jù)查詢是建立數(shù)據(jù)庫的主要目的,SQL語言提供了SELECT語句進(jìn)行查詢。 數(shù)據(jù)操縱包括數(shù)據(jù)檢索和更新兩部分功能。 數(shù)據(jù)控制是指控制用戶對(duì)數(shù)據(jù)的存儲(chǔ)權(quán)力。.3. SQL數(shù)據(jù)庫的查詢 數(shù)據(jù)庫的查詢的基本格式為:SELECTALL/DISTINCTFROM WHEREGROUP BYORDER BY ASC/DESC;在語句中,凡是在中的項(xiàng)是不可缺的, 中的項(xiàng)可根據(jù)需要省略。. 整個(gè)查詢語句的

38、含義是: 根據(jù)WHERE子句中的條件,從FROM子句指定的表中找出滿足條件的元組,再按SELECT子句中的目標(biāo)列或目標(biāo)列表達(dá)式選出元組中的屬性值形成結(jié)果表。如果有GROUP子句,則按列名1的值進(jìn)行分組。如果有ORDER子句,則在結(jié)果表中按照列名2的值進(jìn)行升序(ASC)和降序(DESC)排序。.我們舉例說明如何用SQL語言進(jìn)行查詢。例:學(xué)生選課數(shù)據(jù)庫的關(guān)系模式為: Student(Sno,Sname,Sdept,Sage); Course(Cno,Cname,Pno); SC(Sno,Cno,Grade)。(1)查詢?nèi)w學(xué)生的姓名、學(xué)號(hào)。 SELECT Sno, Sname FROM Stude

39、nt;.(2)查詢所有選修過課的學(xué)生的學(xué)號(hào)。 SELECT DISTINCT Sno FROM SC;(3)查詢年齡在19到22之間的學(xué)生姓名、系別和年齡。 SELECT Sname, Sdept, Sage FROM Student WHERE Sage BETWEEN 19 AND 23; 謂詞BETWEENAND 和NOT BETWEEN AND可以查找屬性值在(或不在)指定范圍內(nèi)的元組。.(4)查詢出成績(jī)?yōu)?0、85、87的記錄。 SELECT * FROM SC WHERE Grade IN(80,85,87);謂詞IN用來查找屬性值屬于指定集合的元組。(5)查詢第二個(gè)字為“艷”的學(xué)

40、生的姓名和系別。 SELECT Sname, Sdept FROM Student WHERE Sname LIKE - -_艷%; 謂詞LIKE可以用來進(jìn)行字符串的匹配。其中%代表任意長(zhǎng)的的字符串,- 代表任意單個(gè)字符。一個(gè)漢字占兩個(gè)字符。.(6)查詢選修“數(shù)據(jù)庫系統(tǒng)原理”課程的學(xué)生姓名。 SELECT Sname FROM Student WHERE Sno IN ( SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM Course WHERE Cname=數(shù)據(jù)庫系統(tǒng)原理); 此查詢?yōu)榍短撞樵儭?.6.4 6.4 數(shù)據(jù)庫的設(shè)計(jì)數(shù)據(jù)庫的設(shè)計(jì) 6.

41、4.1 6.4.1 數(shù)據(jù)庫設(shè)計(jì)的步驟數(shù)據(jù)庫設(shè)計(jì)的步驟 6.4.2 6.4.2 數(shù)據(jù)庫設(shè)計(jì)的需求分析數(shù)據(jù)庫設(shè)計(jì)的需求分析 6.4.3 6.4.3 數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì) 6.4.4 6.4.4 邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì) 6.4.56.4.5 物理結(jié)構(gòu)設(shè)計(jì)物理結(jié)構(gòu)設(shè)計(jì). 數(shù)據(jù)庫設(shè)計(jì)是數(shù)據(jù)庫應(yīng)用的核心。數(shù)據(jù)庫設(shè)計(jì)是指利用現(xiàn)有的數(shù)據(jù)庫管理系統(tǒng),針對(duì)具體的應(yīng)用對(duì)象,構(gòu)造合適的數(shù)據(jù)庫模式,建立基于數(shù)據(jù)庫的應(yīng)用系統(tǒng)或信息系統(tǒng)。.6.4.1 6.4.1 數(shù)據(jù)庫設(shè)計(jì)的步驟數(shù)據(jù)庫設(shè)計(jì)的步驟 在數(shù)據(jù)庫設(shè)計(jì)中有兩種方法: 一種是以信息需求為主,兼顧處理需求,稱為面向數(shù)據(jù)的方法。 另一種方法是以處理需

42、求為主,兼顧信息需求,稱為面向過程的方法。 這兩種方法現(xiàn)在都有使用,但面向數(shù)據(jù)方法已成為主流方法。. 數(shù)據(jù)庫設(shè)計(jì)一般分為以下六個(gè)階段:1.需求分析階段 進(jìn)行數(shù)據(jù)庫設(shè)計(jì)首先必須準(zhǔn)確分析用戶的需求,按需求合理的設(shè)計(jì)系統(tǒng)。2.概念設(shè)計(jì)階段 概念結(jié)構(gòu)設(shè)計(jì)是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵,它通過對(duì)用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型。.3.邏輯設(shè)計(jì)階段 該階段是將概念結(jié)構(gòu)轉(zhuǎn)化為某個(gè)DBMS所支持的數(shù)據(jù)模型,并對(duì)其進(jìn)行優(yōu)化,得到數(shù)據(jù)庫的邏輯模型。4.物理設(shè)計(jì)階段 數(shù)據(jù)庫物理設(shè)計(jì)是為邏輯數(shù)據(jù)模型選取一個(gè)最合適應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)和存取方法)。.5.實(shí)現(xiàn)階段 在數(shù)據(jù)庫實(shí)施階段,

43、設(shè)計(jì)人員運(yùn)用DBMS提供的數(shù)據(jù)語言及其宿主語言,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進(jìn)行試運(yùn)行。6.運(yùn)行和維護(hù)階段 數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)過試運(yùn)行后即可投入正式運(yùn)行。在其運(yùn)行過程中必須不斷對(duì)其進(jìn)行評(píng)價(jià)、調(diào)整與修改。. 數(shù)據(jù)庫設(shè)計(jì)的步驟如圖所示需求分析需求分析概念設(shè)計(jì)概念設(shè)計(jì)邏輯設(shè)計(jì)邏輯設(shè)計(jì)物理設(shè)計(jì)物理設(shè)計(jì)系統(tǒng)實(shí)施系統(tǒng)實(shí)施運(yùn)行與維護(hù)運(yùn)行與維護(hù)需求說明需求說明信息結(jié)構(gòu)信息結(jié)構(gòu)邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)物理數(shù)據(jù)庫結(jié)構(gòu)物理數(shù)據(jù)庫結(jié)構(gòu)數(shù)據(jù)庫實(shí)施數(shù)據(jù)庫實(shí)施總體信息需求總體信息需求處理需求處理需求.6.4.2 6.4.2 數(shù)據(jù)庫設(shè)計(jì)的需求分析數(shù)據(jù)庫設(shè)計(jì)的需求分析 分析和表達(dá)用戶的需求

44、,通常采用結(jié)構(gòu)化分析方法,這種方法用自頂向下,逐層分解的方式分析系統(tǒng)。并用數(shù)據(jù)流圖和數(shù)據(jù)字典描述系統(tǒng)。.6.4.3 6.4.3 數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)1.概念結(jié)構(gòu)設(shè)計(jì)的目的 概念結(jié)構(gòu)設(shè)計(jì)階段的目標(biāo)是通過對(duì)用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型。 概念結(jié)構(gòu)的設(shè)計(jì)方法有兩種:.(1)集中式模式設(shè)計(jì)法:根據(jù)需求由一個(gè)統(tǒng)一機(jī)構(gòu)或人員設(shè)計(jì)一個(gè)綜合的全局模式。該方法簡(jiǎn)單方便,適用于小型或不復(fù)雜的系統(tǒng)設(shè)計(jì)。(2)視圖集成設(shè)計(jì)法:這種方法是將一個(gè)系統(tǒng)分解成若干個(gè)子系統(tǒng),首先對(duì)每一個(gè)子系統(tǒng)進(jìn)行模式設(shè)計(jì),建立各個(gè)局部視圖,然后將這些局部視圖進(jìn)行集成,最終形成整個(gè)系統(tǒng)的

45、全局模式。.2.概念結(jié)構(gòu)設(shè)計(jì)的過程 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)是使用E-R模型和視圖集成設(shè)計(jì)法進(jìn)行設(shè)計(jì)的。它的設(shè)計(jì)過程是:首先設(shè)計(jì)局部應(yīng)用,再進(jìn)行局部視圖(局部E-R圖)設(shè)計(jì),然后進(jìn)行視圖集成得到概念模型(全局E-R圖)。. 視圖設(shè)計(jì)一般有三種方法:(1)自頂向下。這種方法是從總體概念結(jié)構(gòu)開始逐層細(xì)化。如教師這個(gè)視圖可以從一般教師開始,分解成高級(jí)教師、普通教師等。進(jìn)一步再由高級(jí)教師細(xì)化為青年高級(jí)教師與中年高級(jí)教師等。(2)自底向上。這種方法是從具體的對(duì)象逐層抽象,最后形成總體概念結(jié)構(gòu)。(3)由內(nèi)向外。這種方法是從核心的對(duì)象著手,然后向四周逐步擴(kuò)充,直到最終形成總體概念結(jié)構(gòu)。. 在視圖集成過程中最重要的

46、任務(wù)是解決各個(gè)E-R圖設(shè)計(jì)中的沖突。常見的沖突有以下幾類:(1)命名沖突。命名沖突有同名異義和同義異名兩種。如教師屬性何時(shí)參加工作與參加工作時(shí)間屬于同義異名。(2)概念沖突。同一概念在一處為實(shí)體而在另一處為屬性或聯(lián)系。(3)域沖突。相同屬性在不同視圖中有不同的域。(4)約束沖突。不同的視圖可能有不同的約束。. 我們舉例說明數(shù)據(jù)庫的概念設(shè)計(jì)過程:設(shè)計(jì)學(xué)生管理系統(tǒng)。包括學(xué)生的學(xué)籍管理子系統(tǒng)和課程管理子系統(tǒng)兩個(gè)系統(tǒng)。(1)學(xué)籍管理子系統(tǒng)包括學(xué)生、宿舍、班級(jí)、教室、輔導(dǎo)員。這些實(shí)體之間的聯(lián)系有: 一個(gè)班級(jí)有若干學(xué)生,一個(gè)學(xué)生只能屬于一個(gè)班;一個(gè)宿舍可以住多個(gè)學(xué)生,一個(gè)學(xué)生只能住在一個(gè)宿舍中;一個(gè)輔導(dǎo)員

47、帶若干個(gè)學(xué)生,一個(gè)學(xué)生只屬于一個(gè)輔導(dǎo)員。一個(gè)輔導(dǎo)員帶多個(gè)班級(jí);一個(gè)班級(jí)在多個(gè)教室上課,一個(gè)教室有多個(gè)班級(jí)來上課。.(2)課程管理子系統(tǒng)包括學(xué)生、課程、教師、教室、教科書。這些實(shí)體之間的聯(lián)系有: 一個(gè)學(xué)生選修多門課程,一門課程有若干學(xué)生選修;一個(gè)學(xué)生有多個(gè)教師授課,一個(gè)教師教授若干學(xué)生;一門課程由若干個(gè)教師講授,一個(gè)教室只講一門課程;一個(gè)教室開設(shè)多門課,一門課只能在一個(gè)教室上。. 針對(duì)兩個(gè)子系統(tǒng)分別設(shè)計(jì)出它們的E-R圖。在E-R圖中省去屬性。學(xué)籍管理子系統(tǒng)的E-R圖如圖所示。 輔導(dǎo)員輔導(dǎo)員班級(jí)班級(jí)教室教室學(xué)生學(xué)生宿舍宿舍組成組成指導(dǎo)指導(dǎo)管理管理上課上課住宿住宿1n11nn1nmn.對(duì)應(yīng)各個(gè)實(shí)體的

48、屬性分別為: 學(xué)生學(xué)號(hào),姓名,性別,出生日期,系別,何時(shí)入校,平均成績(jī) 班級(jí)班級(jí)號(hào),學(xué)生人數(shù) 輔導(dǎo)員職工號(hào),姓名,性別,工作時(shí)間 宿舍宿舍編號(hào),地址,人數(shù) 教室教室編號(hào),地址,容量 其中有下劃線的屬性為實(shí)體的碼。. 課程管理子系統(tǒng)的E-R圖如圖所示。學(xué)生學(xué)生教師教師課程課程教科書教科書教室教室教教學(xué)學(xué)講講授授選選修修開開設(shè)設(shè)m111mnnnn.對(duì)應(yīng)各個(gè)實(shí)體的屬性分別為: 學(xué)生學(xué)號(hào),姓名,性別,年齡,入學(xué)時(shí)間 課程課程號(hào),課程名,學(xué)分 教科書書號(hào),書名,作者,出版日期,關(guān)鍵字 教室教室編號(hào),地址,容量 教師職工號(hào),姓名,性別,職稱 其中有下劃線的屬性為實(shí)體的碼。.下面將學(xué)籍管理子系統(tǒng)E-R圖和課

49、程管理子系統(tǒng)E-R圖集成學(xué)生管理系統(tǒng)E-R圖。集成過程如下:(1)消除沖突。這兩個(gè)子E-R圖存在著多方面的沖突: 輔導(dǎo)員屬于教師,學(xué)籍管理中的輔導(dǎo)員與課程管理中的教師可以統(tǒng)一為教師。 將輔導(dǎo)員改為教師后,教師與學(xué)生之間有兩種不同的聯(lián)系:指導(dǎo)聯(lián)系和教學(xué)聯(lián)系,將兩種聯(lián)系綜合為教學(xué)聯(lián)系。 調(diào)整學(xué)生屬性組成,調(diào)解結(jié)果為:學(xué)生學(xué)號(hào),姓名,出生日期,年齡,系別,平均成績(jī).(2)消除冗余。 學(xué)生實(shí)體的屬性中的年齡可由初涉概念日期計(jì)算出來,屬于數(shù)據(jù)冗余。調(diào)整為:學(xué)生學(xué)號(hào),姓名,出生日期,系別,平均成績(jī) 教室實(shí)體與班級(jí)實(shí)體之間的上課聯(lián)系可以由教室與課程之間的開設(shè)聯(lián)系、課程與學(xué)生之間的選修聯(lián)系、學(xué)生與班級(jí)之間的組成聯(lián)系三者推導(dǎo)出來,因此屬于數(shù)據(jù)冗余,可以消去。 學(xué)

溫馨提示

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