關(guān)于數(shù)據(jù)庫(kù)技術(shù)分析.ppt
《關(guān)于數(shù)據(jù)庫(kù)技術(shù)分析.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《關(guān)于數(shù)據(jù)庫(kù)技術(shù)分析.ppt(125頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第六章 數(shù)據(jù)庫(kù)技術(shù)基礎(chǔ),本章主要介紹如下知識(shí): 數(shù)據(jù)庫(kù)系統(tǒng)的基本知識(shí) 對(duì)數(shù)據(jù)模型進(jìn)行闡述,特別是其中的E-R模型和關(guān)系模型 著重介紹關(guān)系型數(shù)據(jù)庫(kù)及其設(shè)計(jì)理論 數(shù)據(jù)庫(kù)的設(shè)計(jì)過(guò)程 簡(jiǎn)單介紹面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng),6.1 數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)知識(shí),6.1.1數(shù)據(jù)庫(kù)系統(tǒng)的產(chǎn)生與發(fā)展 6.1.2 數(shù)據(jù)庫(kù)的基本術(shù)語(yǔ) 6.1.3 數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)體系,6.1.1數(shù)據(jù)庫(kù)系統(tǒng)的產(chǎn)生與發(fā)展,數(shù)據(jù)管理技術(shù)經(jīng)歷以下三個(gè)階段:人工管理階段(50年代中期以前);文件系統(tǒng)階段(50年代后期到60年代中期);數(shù)據(jù)庫(kù)系統(tǒng)階段(60年代后期以來(lái))。,1.人工管理階段 當(dāng)時(shí)外存沒(méi)有磁盤等直接存取的存儲(chǔ)設(shè)備;軟件沒(méi)有操作系統(tǒng),數(shù)據(jù)的處理是批處理。 人工管理數(shù)據(jù)具有如下特點(diǎn): 1)數(shù)據(jù)不保存。 2)數(shù)據(jù)需要由應(yīng)用程序自己管理,沒(méi)有相應(yīng)的軟件來(lái)處理數(shù)據(jù)。 3)數(shù)據(jù)不共享。 4)數(shù)據(jù)不具有獨(dú)立性。,2. 文件系統(tǒng)階段 50年代后期到60年代中期,在操作系統(tǒng)中有專門的數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng)。文件系統(tǒng)是數(shù)據(jù)庫(kù)系統(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ù)庫(kù)系統(tǒng)階段 60年代末期,人們對(duì)文件系統(tǒng)進(jìn)行了擴(kuò)充,研制了一種結(jié)構(gòu)化的數(shù)據(jù)組織和處理方式,才出現(xiàn)了真正的數(shù)據(jù)庫(kù)系統(tǒng)。 數(shù)據(jù)庫(kù)系統(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ù)庫(kù)的邏輯結(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)的比較見(jiàn)下表 。,6.1.2 數(shù)據(jù)庫(kù)的基本術(shù)語(yǔ),1. 數(shù)據(jù)(Data) 定義:數(shù)據(jù)是描述事物的符號(hào)記錄。 數(shù)據(jù)的表現(xiàn)形式不僅是數(shù)字,還包括字符(文字和符號(hào))、圖表(圖形、圖像和表格)及聲音、語(yǔ)言等 。 信息是從原始數(shù)據(jù)中經(jīng)過(guò)篩選、提煉等加工后,產(chǎn)生的對(duì)決策有影響的數(shù)據(jù)。,2. 數(shù)據(jù)庫(kù)(Database) 定義:數(shù)據(jù)庫(kù)(DB)是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)的集合。 數(shù)據(jù)庫(kù)有以下特點(diǎn):1)數(shù)據(jù)結(jié)構(gòu)化。 2)實(shí)現(xiàn)數(shù)據(jù)共享。 3)減少數(shù)據(jù)的冗余。 4)數(shù)據(jù)獨(dú)立。,3.數(shù)據(jù)庫(kù)管理系統(tǒng)(Databbase Management System簡(jiǎn)稱DBMS) 定義:數(shù)據(jù)庫(kù)管理系統(tǒng)它是位于用戶和操作系統(tǒng)(OS)之間的一層數(shù)據(jù)管理軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、數(shù)據(jù)控制及保護(hù)和數(shù)據(jù)接口等。,4.數(shù)據(jù)庫(kù)管理員(Database Adminstrator簡(jiǎn)稱DBA) 定義:由專職人員對(duì)數(shù)據(jù)庫(kù)進(jìn)行規(guī)劃、設(shè)計(jì)、維護(hù)、監(jiān)視等,稱這些專職人員為數(shù)據(jù)庫(kù)管理員。 數(shù)據(jù)庫(kù)管理員的具體職責(zé)包括: 1)數(shù)據(jù)庫(kù)定義與設(shè)計(jì)。 2)數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)。 3)數(shù)據(jù)庫(kù)的改進(jìn)和重組重構(gòu)。,5.數(shù)據(jù)庫(kù)系統(tǒng)(Database System簡(jiǎn)稱DBS) 定義:數(shù)據(jù)庫(kù)系統(tǒng)一般由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)(及其開(kāi)發(fā)軟件)、系統(tǒng)平臺(tái)、應(yīng)用系統(tǒng)和人員構(gòu)成。 數(shù)據(jù)庫(kù)系統(tǒng)在整個(gè)計(jì)算機(jī)系統(tǒng)中的地位如下圖所示。,6.1.3 數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)體系,數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)可以有多種不同的層次。 從數(shù)據(jù)庫(kù)管理系統(tǒng)角度看,數(shù)據(jù)庫(kù)系統(tǒng)通常采用三級(jí)模式結(jié)構(gòu),這是數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)部系統(tǒng)結(jié)構(gòu)。 從數(shù)據(jù)庫(kù)最終用戶角度看,數(shù)據(jù)庫(kù)系統(tǒng)分為單用戶數(shù)據(jù)庫(kù)系統(tǒng)、主從式數(shù)據(jù)庫(kù)系統(tǒng)、分布式數(shù)據(jù)庫(kù)系統(tǒng)和客戶/服務(wù)器數(shù)據(jù)庫(kù)系統(tǒng)。,1. 數(shù)據(jù)庫(kù)系統(tǒng)的模式結(jié)構(gòu) 模式是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。 數(shù)據(jù)庫(kù)系統(tǒng)在其內(nèi)部具有三級(jí)模式和二級(jí)映像。三級(jí)模式分別為外模式、模式與內(nèi)模式;二級(jí)映像則是外模式/模式映像和模式/內(nèi)模式映像。 三級(jí)模式與二級(jí)映像構(gòu)成數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)部的抽象結(jié)構(gòu)體系,如下圖所示。,,(1)數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式。 外模式也稱子模式或用戶模式,還稱為用戶級(jí)模式。它是數(shù)據(jù)庫(kù)用戶能夠看見(jiàn)和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)視圖。 模式也稱邏輯模式,還稱概念模式。是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。 內(nèi)模式也稱存儲(chǔ)模式,還稱物理模式。它是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述。,(2)數(shù)據(jù)庫(kù)系統(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)用程序就沒(méi)必要修改。所以外模式/模式映像功能保證了數(shù)據(jù)與程序的邏輯獨(dú)立性。,模式/內(nèi)模式映像:它使數(shù)據(jù)具有較高的物理獨(dú)立性。它定義了數(shù)據(jù)庫(kù)全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系。該映像定義通常包含在模式描述中。當(dāng)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)了,DBA要對(duì)模式/內(nèi)模式映像作相應(yīng)的改變,以使模式保持不變。模式不變,與模式?jīng)]有直接聯(lián)系的應(yīng)用程序也不會(huì)改變,所以模式/內(nèi)模式映像功能保證了數(shù)據(jù)與程序的物理獨(dú)立性。,2. 數(shù)據(jù)庫(kù)系統(tǒng)的體系結(jié)構(gòu) (1)單用戶數(shù)據(jù)庫(kù)系統(tǒng)。,(2)主從式數(shù)據(jù)庫(kù)系統(tǒng)。,(3)分布式數(shù)據(jù)庫(kù)系統(tǒng)。,(4)客戶/服務(wù)器數(shù)據(jù)庫(kù)系統(tǒng)。,,6.2 數(shù)據(jù)模型,6.2.1 數(shù)據(jù)模型的基本概念 6.2.2 概念模型 6.2.3 數(shù)據(jù)模型,6.2.1 數(shù)據(jù)模型的基本概念,數(shù)據(jù)模型根據(jù)不同的應(yīng)用層次劃分為三種類型: 1、概念模型:也稱信息模型。它是按用戶觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模,主要用于數(shù)據(jù)庫(kù)設(shè)計(jì)。它與具體數(shù)據(jù)庫(kù)管理系統(tǒng)無(wú)關(guān),與具體的計(jì)算機(jī)平臺(tái)無(wú)關(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偷取?3、物理模型:它是一中面向計(jì)算機(jī)物理表示的模型,此模型給出了數(shù)據(jù)模型在計(jì)算機(jī)上的物理結(jié)構(gòu)的表示。,數(shù)據(jù)模型的三要素: 1、數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)用來(lái)描述系統(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)上的操作類型與操作方式。數(shù)據(jù)庫(kù)主要有檢索和更新(包括插入、刪除和修改)兩類操作。,3、數(shù)據(jù)約束條件。 數(shù)據(jù)約束條件是一組完整型規(guī)則的集合,它描述了數(shù)據(jù)及其聯(lián)系應(yīng)具有的制約和依賴規(guī)則。,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í)體。可以是具體的人、事、物,比如小趙、信息學(xué)院、教材等;也可以是抽象的概念或聯(lián)系,比如領(lǐng)導(dǎo)與職工的領(lǐng)導(dǎo)關(guān)系。實(shí)體是概念世界中的基本單位。,(2)屬性:實(shí)體所具有的某一特性稱為屬性。一個(gè)實(shí)體可以由若干個(gè)屬性來(lái)刻畫。如學(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 (n≥1)個(gè)實(shí)體與之聯(lián)系,反之,對(duì)于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中有且只能有一個(gè)實(shí)體與之聯(lián)系。如一個(gè)學(xué)院由多個(gè)班級(jí)。,多對(duì)多聯(lián)系(m :n): 這是一種復(fù)雜的聯(lián)系,對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n (n≥1)個(gè)實(shí)體與之聯(lián)系,反之,對(duì)于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中有n (n≥1)實(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é)生實(shí)體的完整描述。,聯(lián)系也可以附有屬性,聯(lián)系和它的所有的屬性構(gòu)成了聯(lián)系的一個(gè)完整描述,因此,聯(lián)系與屬性間也有聯(lián)接關(guān)系。 (2)實(shí)體集與聯(lián)系。 實(shí)體集間可通過(guò)聯(lián)系建立聯(lián)接關(guān)系。 概念模型中的基本關(guān)系的結(jié)構(gòu)如下圖所示。,3. 概念模型的表示方法 (1)實(shí)體集的表示方法:在E-R圖中用矩形表示實(shí)體集,在矩形內(nèi)寫上該實(shí)體集的名字。 (2)屬性的表示方法:在E-R圖中用橢圓表示屬性,在橢圓內(nèi)寫上該屬性的名稱。并用無(wú)向邊將其與相應(yīng)的實(shí)體連接起來(lái)。,(3)聯(lián)系的表示方法:在E-R圖中用菱形表示聯(lián)系,菱形框內(nèi)寫明聯(lián)系名,并用無(wú)向邊分別與有關(guān)的實(shí)體連接起來(lái),同時(shí)在無(wú)向邊旁標(biāo)上聯(lián)系的類型,如1 :1,1 :n,n :m等。如下圖所示。,(a)兩個(gè)實(shí)體集間的1:1聯(lián)系,(b)兩個(gè)實(shí)體集間的1:n聯(lián)系,聯(lián)系本身也是一種實(shí)體型,也有屬性,如果一個(gè)聯(lián)系具有屬性,則將這些屬性用無(wú)向邊與該聯(lián)系連接起來(lái)。,(c)兩個(gè)實(shí)體集間的n: m聯(lián)系,例6.1 有三個(gè)實(shí)體集及它們的屬性,它們分別是: 學(xué)生(Student):學(xué)號(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圖來(lái)表示,如圖所示。,,6.2.3 數(shù)據(jù)模型,在數(shù)據(jù)庫(kù)領(lǐng)域中最常用的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型、關(guān)系模型三種模型。 1. 層次模型 層次模型是最早發(fā)展起來(lái)的數(shù)據(jù)庫(kù)模型。它的基本結(jié)構(gòu)是樹(shù)形結(jié)構(gòu),這種結(jié)構(gòu)方式在現(xiàn)實(shí)世界中很普遍,如家族結(jié)構(gòu)、行政組織結(jié)構(gòu)等。,在圖論中,我們學(xué)過(guò)樹(shù)的定義,任一樹(shù)結(jié)構(gòu)均有以下特性:1)棵樹(shù)有且僅有一個(gè)無(wú)雙親結(jié)點(diǎn),稱為根結(jié)點(diǎn)。2)除根結(jié)點(diǎn)以外其他的結(jié)點(diǎn)有且僅有一個(gè)雙親,無(wú)子女的結(jié)點(diǎn)稱為葉結(jié)點(diǎn)。 層次模型的示例如下圖所示。,,2.網(wǎng)狀模型 網(wǎng)狀模型是一種更具有普遍性的結(jié)構(gòu),從圖論的角度講,網(wǎng)狀模型是一個(gè)不加任何條件限制的無(wú)向圖。網(wǎng)狀模型是以記錄為結(jié)點(diǎn)的網(wǎng)狀結(jié)構(gòu),它滿足以下條件: (1)可以有任意個(gè)結(jié)點(diǎn)無(wú)雙親。 (2)允許結(jié)點(diǎn)有一個(gè)以上的雙親。 (3)允許兩個(gè)結(jié)點(diǎn)之間有一種或兩種以上的聯(lián)系。,網(wǎng)狀模型的示例如下圖所示。,3. 關(guān)系模型 目前,關(guān)系模型是數(shù)據(jù)庫(kù)領(lǐng)域中目前最重要的一種數(shù)據(jù)模型。關(guān)系模型的本質(zhì)是一張二維表,關(guān)系模型中,一張二維表就稱為一個(gè)關(guān)系。 (1)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)。關(guān)系模型采用二維表來(lái)表示,簡(jiǎn)稱表。如下表是一張學(xué)生登記表,它由行(元組)和列(屬性)組成。,關(guān)系二維表一般具有下面幾個(gè)性質(zhì): 1) 元組個(gè)數(shù)有限性。2) 元組的唯一性。 3)元組次序的無(wú)關(guān)性。4)元組分量的原子性5)屬性名的唯一性。6)屬性的次序無(wú)關(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ù)查詢是數(shù)據(jù)庫(kù)的核心操作。它包括單表查詢和多表查詢。 單表查詢:是指僅在一個(gè)數(shù)據(jù)庫(kù)表進(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í)體完整性約束條件。實(shí)體完整性約束要求關(guān)系中主碼的任何屬性都不能為空。這是數(shù)據(jù)庫(kù)完整性的最基本的要求,因?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)系通過(guò)部門編號(hào)關(guān)聯(lián), 參照完整性要求職工關(guān)系中的部門編號(hào)的值在部門關(guān)系中必有相應(yīng)元組。,3) 用戶定義的完整性約束條件。用戶定義的完整性約束條件是某一具體數(shù)據(jù)庫(kù)的約束條件,是用戶自己定義的某一具體數(shù)據(jù)必須滿足的語(yǔ)義要求。 其中前兩者約束條件由關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)自動(dòng)支持。對(duì)后者,則由關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)提供完整性約束語(yǔ)言,用戶利用該語(yǔ)言定義出約束條件。,6.3 關(guān)系數(shù)據(jù)庫(kù),6.3.1 關(guān)系模型的特點(diǎn) 6.3.2 關(guān)系代數(shù) 6.3.3 結(jié)構(gòu)化查詢語(yǔ)言SQL,6.3.1 關(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)系來(lái)表示,從用戶角度來(lái)看,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。 2. 關(guān)系操作 關(guān)系操作采用集合操作方式。即操作對(duì)象和結(jié)果都是集合。其中查詢是最基本的操作。,3. 關(guān)系的三類完整性規(guī)則 關(guān)系模型的完整性規(guī)則是對(duì)數(shù)據(jù)的約束。關(guān)系模型提供了三類完整性規(guī)則:實(shí)體完整性規(guī)則、參照完整性規(guī)則和用戶自定義完整性規(guī)則。,6.3.2 關(guān)系代數(shù),關(guān)系模型中的關(guān)系操作通常用關(guān)系代數(shù)和關(guān)系演算來(lái)表示的。關(guān)系代數(shù)是一種抽象的查詢語(yǔ)言,它是用對(duì)關(guān)系的運(yùn)算來(lái)表達(dá)查詢的。關(guān)系演算是用謂詞來(lái)表達(dá)查詢要求的方式。二者是等價(jià)的。在這里我們著重介紹關(guān)系代數(shù)。,1. 關(guān)系代數(shù)的相關(guān)概念 (1)笛卡爾積:令A(yù)和B是任意兩個(gè)集合,若有序?qū)Φ牡谝粋€(gè)成員是A的元素,第二個(gè)成員是B的元素,所有這樣的有序?qū)Φ募希Q為集合A和B的笛卡爾積或直積。記作AB。 AB={|(x∈A)∧(y∈B)} 笛卡爾積可表示為一個(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)單的說(shuō):關(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中屬性所來(lái)自的域,DOM為屬性向域的映像集合,F(xiàn)為屬性間數(shù)據(jù)依賴關(guān)系。,2. 傳統(tǒng)的集合運(yùn)算 (1)并:設(shè)關(guān)系R和S具有相同的關(guān)系模式,R和S的并是由屬于R或?qū)儆赟的元組構(gòu)成的集合,記為R∪S。形式定義如下: R∪S = { t | t∈R ∨ t∈S }, t是元組變量,R和S都有n個(gè)屬性。 并運(yùn)算可以實(shí)現(xiàn)插入若干元組的操作。如對(duì)關(guān)系R插入R′,則可用并運(yùn)算表示為:R∪R′。,(2)差:設(shè)關(guān)系R和S具有相同的關(guān)系模式,R和S的差是由屬于R但不屬于S的元組構(gòu)成的集合,記為R-S。形式定義如下: R-S = { t | t∈R ∧ t∈S }, R和S都有n個(gè)屬性。 差運(yùn)算可實(shí)現(xiàn)刪除操作。如對(duì)關(guān)系R刪除R′,則可用差運(yùn)算表示為:R-R′。 對(duì)關(guān)系的修改可分兩步進(jìn)行,先做刪除操作,再做插入操作,即先做差運(yùn)算再做并運(yùn)算。,,(3)交:設(shè)關(guān)系R和S具有相同的關(guān)系模式,關(guān)系R和S的交是由既屬于R又屬于S的元組構(gòu)成的集合,記為R∩S,這里要求R和S定義在相同的關(guān)系模式上。形式定義如下: R∩S = {t︱t∈R ∧ t∈S}, R和S都有n個(gè)屬性。,(4)廣義笛卡爾積:設(shè)關(guān)系R和S的元數(shù)分別為r和s,則R和S的笛卡爾積是一個(gè)(r+s)元的元組集合,每個(gè)元組的前r個(gè)分量來(lái)自R的一個(gè)元組,后s個(gè)分量來(lái)自S的一個(gè)元組,記為:RS。形式定義如下: RS = { t | t= ∧ tr ∈R ∧ ts ∈S } 下面舉例說(shuō)明上述的四種傳統(tǒng)集合運(yùn)算。,例,R 關(guān)系,S關(guān)系,R∪S (R和S 的并),R∩S (R和S 的交),R-S (R和S 的差),RS(R和S的廣義笛卡爾積),3. 專門的關(guān)系運(yùn)算 專門的關(guān)系運(yùn)算包括選擇、投影、連接、除。 (1)選擇:選擇運(yùn)算是根據(jù)某些條件對(duì)關(guān)系做水平分割,即選取符合條件的元組。形式定義如下: σF(R)={ t | t∈R ∧ F(t)= true }其中σ為選擇運(yùn)算符,σF(R)表示從R中挑選滿足公式F為真的元組所構(gòu)成的關(guān)系。這是從行的角度進(jìn)行的運(yùn)算。 例如,σ 2>′3′ (R)表示從R中挑選第2個(gè)分量值大于3的元組所構(gòu)成的關(guān)系。,(2)投影:投影運(yùn)算是從關(guān)系內(nèi)選擇出若干屬性列組成新的關(guān)系。形式定義如下: πA(R)={ t [A]| t∈R }其中A為R的屬性列。投影操作是從列的角度進(jìn)行的運(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= { t︱t = ∧ tr∈R ∧ ts∈S ∧ AθB tr[A] θ ts[B] },連接運(yùn)算中有兩種最為常用的連接: 1) 等值連接:將連接中的θ換成“=”,功能是從關(guān)系R和S的笛卡爾積中選取A,B屬性值相等的那些元組。它的形式定義為: R ? S={ t︱t = ∧tr∈R ∧ ts∈S A=B ∧ tr[A]= ts[B] },2) 自然連接:是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且要在結(jié)果中將重復(fù)的屬性去掉。它的形式定義為: R ? S={ t︱t = ∧tr∈R ∧ ts∈S ∧ tr[B]=ts[B] } 連接運(yùn)算一般是從行的角度進(jìn)行的操作,但自然連接是同時(shí)從行和列的角度進(jìn)行的操作。,我們舉例說(shuō)明連接運(yùn)算:,R關(guān)系,S關(guān)系,選擇連接,R ? S DE,自然連接R? S,等值連接,R ? S R.B=S.B,(4)除:設(shè)R(x)和S(y)是兩個(gè)關(guān)系,并且y是x的子集——即x中的每一個(gè)屬性都在y中,關(guān)系RS是模式x-y上的關(guān)系,也就是說(shuō),RS包含所有在x中而不在y中的屬性。它形式定義為: RS = {tr[X]| tr∈R ∧ yx ? πy(S)} 其中yx為x在R中的像集。,我們舉例說(shuō)明除運(yùn)算:,R關(guān)系,S關(guān)系,RS,根據(jù)上述的關(guān)系運(yùn)算完成下面例題 學(xué)生選課數(shù)據(jù)庫(kù)的關(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(σSage19(Student)) (2)檢索沒(méi)有選修課程號(hào)為001課程的學(xué)生學(xué)號(hào)。 πSno(Student)-πSno(σ Cno=’001’ (SC)) (3)檢索既選修001課程,又選修003課程的學(xué)生學(xué)號(hào) πSno (σ Cno=’001’ (SC))∩πSno (σ Cno=’002’ (SC)),(4)檢索課程號(hào)為012且成績(jī)大于85的所有學(xué)生的學(xué)號(hào)和姓名。 πSno,Sname(σ Cno=’012’∧Grade85 (Student ?SC)) (5)求選修了全部課程的學(xué)生學(xué)號(hào)。 πSno,Cno(SC) πCno(Course),6.3.3 結(jié)構(gòu)化查詢語(yǔ)言SQL,SQL:是Structured Query Language的縮寫,是一種結(jié)構(gòu)化查詢語(yǔ)言。是1974年由Boyce和Chamberlin提出來(lái)的。 由于SQL使用方便、功能豐富、語(yǔ)言簡(jiǎn)單易學(xué),現(xiàn)已成為關(guān)系數(shù)據(jù)庫(kù)領(lǐng)域中的一個(gè)主流語(yǔ)言。,1. SQL數(shù)據(jù)庫(kù)結(jié)構(gòu) SQL數(shù)據(jù)庫(kù)的結(jié)構(gòu)如圖所示。,它基本上是三級(jí)結(jié)構(gòu),它支持關(guān)系數(shù)據(jù)庫(kù)三級(jí)模式結(jié)構(gòu),但在SQL數(shù)據(jù)庫(kù)中,模式被稱為基本表,內(nèi)模式稱為存儲(chǔ)文件,外模式稱為視圖或部分基本表,元組稱為行,屬性稱為列。,2. 結(jié)構(gòu)化查詢語(yǔ)言SQL的組成 SQL語(yǔ)言包括數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)控制4個(gè)方面。 數(shù)據(jù)定義包括定義基本表、定義視圖、定義索引3部分。 數(shù)據(jù)查詢是建立數(shù)據(jù)庫(kù)的主要目的,SQL語(yǔ)言提供了SELECT語(yǔ)句進(jìn)行查詢。 數(shù)據(jù)操縱包括數(shù)據(jù)檢索和更新兩部分功能。 數(shù)據(jù)控制是指控制用戶對(duì)數(shù)據(jù)的存儲(chǔ)權(quán)力。,3. SQL數(shù)據(jù)庫(kù)的查詢 數(shù)據(jù)庫(kù)的查詢的基本格式為: SELECT[ALL/DISTINCT][]… FROM []… [WHERE] [GROUP BY] [ORDER BY [ASC/DESC]]; 在語(yǔ)句中,凡是在中的項(xiàng)是不可缺的,[ ] 中的項(xiàng)可根據(jù)需要省略。,整個(gè)查詢語(yǔ)句的含義是: 根據(jù)WHERE子句中的條件,從FROM子句指定的表中找出滿足條件的元組,再按SELECT子句中的目標(biāo)列或目標(biāo)列表達(dá)式選出元組中的屬性值形成結(jié)果表。如果有GROUP子句,則按列名1的值進(jìn)行分組。如果有ORDER子句,則在結(jié)果表中按照列名2的值進(jìn)行升序(ASC)和降序(DESC)排序。,我們舉例說(shuō)明如何用SQL語(yǔ)言進(jìn)行查詢。 例:學(xué)生選課數(shù)據(jù)庫(kù)的關(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 Student;,(2)查詢所有選修過(guò)課的學(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; 謂詞BETWEEN…AND… 和NOT BETWEEN … AND…可以查找屬性值在(或不在)指定范圍內(nèi)的元組。,(4)查詢出成績(jī)?yōu)?0、85、87的記錄。 SELECT * FROM SC WHERE Grade IN(80,85,87); 謂詞IN用來(lái)查找屬性值屬于指定集合的元組。 (5)查詢第二個(gè)字為“艷”的學(xué)生的姓名和系別。 SELECT Sname, Sdept FROM Student WHERE Sname LIKE ‘- -_艷%’; 謂詞LIKE可以用來(lái)進(jìn)行字符串的匹配。其中%代表任意長(zhǎng)的的字符串,- 代表任意單個(gè)字符。一個(gè)漢字占兩個(gè)字符。,(6)查詢選修“數(shù)據(jù)庫(kù)系統(tǒng)原理”課程的學(xué)生姓名。 SELECT Sname FROM Student WHERE Sno IN ( SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM Course WHERE Cname=‘?dāng)?shù)據(jù)庫(kù)系統(tǒng)原理’)); 此查詢?yōu)榍短撞樵儭?6.4 數(shù)據(jù)庫(kù)的設(shè)計(jì),6.4.1 數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟 6.4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)的需求分析 6.4.3 數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì) 6.4.4 邏輯結(jié)構(gòu)設(shè)計(jì) 6.4.5 物理結(jié)構(gòu)設(shè)計(jì),數(shù)據(jù)庫(kù)設(shè)計(jì)是數(shù)據(jù)庫(kù)應(yīng)用的核心。數(shù)據(jù)庫(kù)設(shè)計(jì)是指利用現(xiàn)有的數(shù)據(jù)庫(kù)管理系統(tǒng),針對(duì)具體的應(yīng)用對(duì)象,構(gòu)造合適的數(shù)據(jù)庫(kù)模式,建立基于數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)或信息系統(tǒng)。,6.4.1 數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟,在數(shù)據(jù)庫(kù)設(shè)計(jì)中有兩種方法: 一種是以信息需求為主,兼顧處理需求,稱為面向數(shù)據(jù)的方法。 另一種方法是以處理需求為主,兼顧信息需求,稱為面向過(guò)程的方法。 這兩種方法現(xiàn)在都有使用,但面向數(shù)據(jù)方法已成為主流方法。,數(shù)據(jù)庫(kù)設(shè)計(jì)一般分為以下六個(gè)階段: 1. 需求分析階段 進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)首先必須準(zhǔn)確分析用戶的需求,按需求合理的設(shè)計(jì)系統(tǒng)。 2. 概念設(shè)計(jì)階段 概念結(jié)構(gòu)設(shè)計(jì)是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵,它通過(guò)對(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ù)庫(kù)的邏輯模型。 4. 物理設(shè)計(jì)階段 數(shù)據(jù)庫(kù)物理設(shè)計(jì)是為邏輯數(shù)據(jù)模型選取一個(gè)最合適應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)和存取方法)。,5. 實(shí)現(xiàn)階段 在數(shù)據(jù)庫(kù)實(shí)施階段,設(shè)計(jì)人員運(yùn)用DBMS提供的數(shù)據(jù)語(yǔ)言及其宿主語(yǔ)言,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫(kù),編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫(kù),并進(jìn)行試運(yùn)行。 6. 運(yùn)行和維護(hù)階段 數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)經(jīng)過(guò)試運(yùn)行后即可投入正式運(yùn)行。在其運(yùn)行過(guò)程中必須不斷對(duì)其進(jìn)行評(píng)價(jià)、調(diào)整與修改。,數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟如圖所示,6.4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)的需求分析,分析和表達(dá)用戶的需求,通常采用結(jié)構(gòu)化分析方法,這種方法用自頂向下,逐層分解的方式分析系統(tǒng)。并用數(shù)據(jù)流圖和數(shù)據(jù)字典描述系統(tǒng)。,6.4.3 數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì),1. 概念結(jié)構(gòu)設(shè)計(jì)的目的 概念結(jié)構(gòu)設(shè)計(jì)階段的目標(biāo)是通過(guò)對(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)的全局模式。,2. 概念結(jié)構(gòu)設(shè)計(jì)的過(guò)程 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)是使用E-R模型和視圖集成設(shè)計(jì)法進(jìn)行設(shè)計(jì)的。它的設(shè)計(jì)過(guò)程是:首先設(shè)計(jì)局部應(yīng)用,再進(jìn)行局部視圖(局部E-R圖)設(shè)計(jì),然后進(jìn)行視圖集成得到概念模型(全局E-R圖)。,視圖設(shè)計(jì)一般有三種方法: (1)自頂向下。這種方法是從總體概念結(jié)構(gòu)開(kāi)始逐層細(xì)化。如教師這個(gè)視圖可以從一般教師開(kāi)始,分解成高級(jí)教師、普通教師等。進(jìn)一步再由高級(jí)教師細(xì)化為青年高級(jí)教師與中年高級(jí)教師等。 (2)自底向上。這種方法是從具體的對(duì)象逐層抽象,最后形成總體概念結(jié)構(gòu)。 (3)由內(nèi)向外。這種方法是從核心的對(duì)象著手,然后向四周逐步擴(kuò)充,直到最終形成總體概念結(jié)構(gòu)。,在視圖集成過(guò)程中最重要的任務(wù)是解決各個(gè)E-R圖設(shè)計(jì)中的沖突。常見(jiàn)的沖突有以下幾類: (1)命名沖突。命名沖突有同名異義和同義異名兩種。如教師屬性何時(shí)參加工作與參加工作時(shí)間屬于同義異名。 (2)概念沖突。同一概念在一處為實(shí)體而在另一處為屬性或聯(lián)系。 (3)域沖突。相同屬性在不同視圖中有不同的域。 (4)約束沖突。不同的視圖可能有不同的約束。,我們舉例說(shuō)明數(shù)據(jù)庫(kù)的概念設(shè)計(jì)過(guò)程: 設(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)員帶若干個(gè)學(xué)生,一個(gè)學(xué)生只屬于一個(gè)輔導(dǎo)員。一個(gè)輔導(dǎo)員帶多個(gè)班級(jí);一個(gè)班級(jí)在多個(gè)教室上課,一個(gè)教室有多個(gè)班級(jí)來(lái)上課。,(2)課程管理子系統(tǒng)包括學(xué)生、課程、教師、教室、教科書(shū)。這些實(shí)體之間的聯(lián)系有: 一個(gè)學(xué)生選修多門課程,一門課程有若干學(xué)生選修;一個(gè)學(xué)生有多個(gè)教師授課,一個(gè)教師教授若干學(xué)生;一門課程由若干個(gè)教師講授,一個(gè)教室只講一門課程;一個(gè)教室開(kāi)設(shè)多門課,一門課只能在一個(gè)教室上。,針對(duì)兩個(gè)子系統(tǒng)分別設(shè)計(jì)出它們的E-R圖。在E-R圖中省去屬性。學(xué)籍管理子系統(tǒng)的E-R圖如圖所示。,,對(duì)應(yīng)各個(gè)實(shí)體的屬性分別為: 學(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圖如圖所示。,,對(duì)應(yīng)各個(gè)實(shí)體的屬性分別為: 學(xué)生{學(xué)號(hào),姓名,性別,年齡,入學(xué)時(shí)間 } 課程{課程號(hào),課程名,學(xué)分} 教科書(shū){書(shū)號(hào),書(shū)名,作者,出版日期,關(guān)鍵字} 教室{教室編號(hào),地址,容量} 教師{職工號(hào),姓名,性別,職稱} 其中有下劃線的屬性為實(shí)體的碼。,下面將學(xué)籍管理子系統(tǒng)E-R圖和課程管理子系統(tǒng)E-R圖集成學(xué)生管理系統(tǒng)E-R圖。集成過(guò)程如下: (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ì)算出來(lái),屬于數(shù)據(jù)冗余。調(diào)整為:學(xué)生{學(xué)號(hào),姓名,出生日期,系別,平均成績(jī)} 教室實(shí)體與班級(jí)實(shí)體之間的上課聯(lián)系可以由教室與課程之間的開(kāi)設(shè)聯(lián)系、課程與學(xué)生之間的選修聯(lián)系、學(xué)生與班級(jí)之間的組成聯(lián)系三者推導(dǎo)出來(lái),因此屬于數(shù)據(jù)冗余,可以消去。 學(xué)生的平均成績(jī)可以從選修聯(lián)系中的成績(jī)屬性推算出來(lái)。但如果學(xué)生的平均成績(jī)經(jīng)常查詢,可以保留該數(shù)據(jù)冗余來(lái)提高效率。,集成后學(xué)生管理系統(tǒng)的 E-R 圖,6.4.4 邏輯結(jié)構(gòu)設(shè)計(jì),邏輯結(jié)構(gòu)設(shè)計(jì)階段的任務(wù)是將概念結(jié)構(gòu)設(shè)計(jì)階段所得到的概念模型轉(zhuǎn)換為具體DBMS所能支持的數(shù)據(jù)模型(即邏輯結(jié)構(gòu)),并對(duì)其進(jìn)行優(yōu)化。邏輯結(jié)構(gòu)設(shè)計(jì)一般分為三步進(jìn)行:,1. 從E-R圖向關(guān)系模式轉(zhuǎn)化 數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)主要是將E-R圖中的實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式。在轉(zhuǎn)化過(guò)程中會(huì)遇到如下問(wèn)題: (1)命名問(wèn)題。命名問(wèn)題可以采用原名,也可以另行命名,避免重名。 (2)非原子屬性問(wèn)題。非原子屬性問(wèn)題可將其進(jìn)行縱向和橫行展開(kāi)。 (3)聯(lián)系轉(zhuǎn)換問(wèn)題。聯(lián)系可用關(guān)系表示。,2. 數(shù)據(jù)模型的優(yōu)化 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的結(jié)果不是唯一的。為了進(jìn)一步提高數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能,還應(yīng)該適當(dāng)修改數(shù)據(jù)模型的結(jié)構(gòu),提高查詢的速度。 3. 關(guān)系視圖設(shè)計(jì) 關(guān)系視圖的設(shè)計(jì)又稱用戶模式設(shè)計(jì),是用戶可直接訪問(wèn)的數(shù)據(jù)模式。關(guān)系視圖來(lái)自邏輯模式,但在結(jié)構(gòu)和形式上可能不同于邏輯模式,所以它不是邏輯模式的簡(jiǎn)單子集。,6.4.5 物理結(jié)構(gòu)設(shè)計(jì),數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)是為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)。數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)主要包括存儲(chǔ)記錄結(jié)構(gòu)設(shè)計(jì)、存儲(chǔ)記錄布局、存取方法設(shè)計(jì)三個(gè)方面。,6.5 面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)簡(jiǎn)介,6.5.1 面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)概述 6.5.2 面向?qū)ο髷?shù)據(jù)模型 6.5.3 面向?qū)ο蟪绦蛟O(shè)計(jì)方法 6.5.4 面向?qū)ο髷?shù)據(jù)庫(kù)語(yǔ)言,6.5.1 面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)概述,面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)(Object Oriented Database System,簡(jiǎn)稱OODBS)是數(shù)據(jù)庫(kù)技術(shù)與面向?qū)ο蟪绦蛟O(shè)計(jì)方法相結(jié)合的產(chǎn)物。 目前,面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)還沒(méi)有一個(gè)統(tǒng)一可行的標(biāo)準(zhǔn)。缺乏堅(jiān)實(shí)的理論基礎(chǔ),與其它產(chǎn)品的兼容比較差;雖然有一些OODBS已經(jīng)商品化,但因其不能很好地與關(guān)系數(shù)據(jù)庫(kù)兼容而制約了它的引用領(lǐng)域。,6.5.2 面向?qū)ο髷?shù)據(jù)模型,面向?qū)ο蟮臄?shù)據(jù)模型的核心概念有: 1. 對(duì)象標(biāo)識(shí) 現(xiàn)實(shí)世界中的任何實(shí)體都被統(tǒng)一地用對(duì)象表示,每一個(gè)對(duì)象都有唯一的標(biāo)識(shí),稱為對(duì)象標(biāo)識(shí)(Object Identifier 簡(jiǎn)稱OID)。,2. 封裝 每一對(duì)象是其狀態(tài)和行為的封裝。面向?qū)ο蠹夹g(shù)是把數(shù)據(jù)和行為封裝在一起,使得數(shù)據(jù)應(yīng)用更靈活。 3. 類 所有具有相同屬性和方法集的對(duì)象抽象出類。類中的每一個(gè)對(duì)象稱為類的實(shí)例。,4. 繼承 一個(gè)類可以繼承類層次中其直接或間接祖先的所有屬性和方法。繼承性可以用超類和子類的層次聯(lián)系實(shí)現(xiàn)。 5. 消息 由于對(duì)象是封裝的,對(duì)象與外部的通信一般只能通過(guò)顯示的消息傳遞,即消息從外部傳送給對(duì)象,存取和調(diào)用對(duì)象中的屬性和方法,在內(nèi)部執(zhí)行所要求的操作,操作的結(jié)果仍以消息的形式返回。,6.5.3 面向?qū)ο蟪绦蛟O(shè)計(jì)方法,面向?qū)ο蟪绦蛟O(shè)計(jì)方法來(lái)源于面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,是一種支持模塊化設(shè)計(jì)和軟件重用的實(shí)際可行的編程方法。它把程序設(shè)計(jì)的主要活動(dòng)集中在建立對(duì)象和對(duì)象之間的聯(lián)系上,從而完成所需要的計(jì)算。,6.5.4 面向?qū)ο髷?shù)據(jù)庫(kù)語(yǔ)言,面向?qū)ο髷?shù)據(jù)庫(kù)語(yǔ)言(OODB語(yǔ)言)用語(yǔ)描述面向?qū)ο髷?shù)據(jù)庫(kù)模式,說(shuō)明并操縱類定義與對(duì)象實(shí)例。 面向?qū)ο髷?shù)據(jù)庫(kù)語(yǔ)言的功能: 1. 類的定義與操縱 2. 操作/方法的定義 3. 對(duì)象的操縱,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 關(guān)于 數(shù)據(jù)庫(kù)技術(shù) 分析
鏈接地址:http://www.3dchina-expo.com/p-2815203.html