版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1第1章
概論1.1數(shù)據(jù)庫系統(tǒng)概述1.2數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)1.3數(shù)據(jù)模型Oracle數(shù)據(jù)庫教程(第2版)Oracle數(shù)據(jù)庫教程(第2版)21.1數(shù)據(jù)庫系統(tǒng)概述本節(jié)介紹數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)等內(nèi)容,并強(qiáng)調(diào)數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心組成部分。1.1.1數(shù)據(jù)庫1.數(shù)據(jù)數(shù)據(jù)(Data)是事物的符號表示,數(shù)據(jù)的種類有數(shù)字、文字、圖像、聲音等,可以用數(shù)字化后的二進(jìn)制形式存入計(jì)算機(jī)來進(jìn)行處理。在日常生活中人們直接用自然語言描述事務(wù),在計(jì)算機(jī)中,就要抽出事物的特征組成一個(gè)記錄來描述,例如,一個(gè)學(xué)生記錄數(shù)據(jù)如下所示:數(shù)據(jù)的含義稱為信息,數(shù)據(jù)是信息的載體,信息是數(shù)據(jù)的內(nèi)涵,是對數(shù)據(jù)的語義解釋。181001宋德成男1997-11-05計(jì)算機(jī)20180552Oracle數(shù)據(jù)庫教程(第2版)32.數(shù)據(jù)庫數(shù)據(jù)庫(Database,DB)是長期存放在計(jì)算機(jī)內(nèi)的有組織的可共享的數(shù)據(jù)集合,數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存,具有盡可能小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)張性。數(shù)據(jù)庫具有以下特性:●
共享性,數(shù)據(jù)庫中的數(shù)據(jù)能被多個(gè)應(yīng)用程序的用戶所使用?!?/p>
獨(dú)立性,提高了數(shù)據(jù)和程序的獨(dú)立性,有專門的語言支持?!?/p>
完整性,指數(shù)據(jù)庫中數(shù)據(jù)的正確性、一致性和有效性。●
減少數(shù)據(jù)冗余。數(shù)據(jù)庫包含了以下含義:●
建立數(shù)據(jù)庫的目的是為應(yīng)用服務(wù)。●
數(shù)據(jù)存儲(chǔ)在計(jì)算機(jī)的存儲(chǔ)介質(zhì)中。●
數(shù)據(jù)結(jié)構(gòu)比較復(fù)雜,有專門理論支持。1.1數(shù)據(jù)庫系統(tǒng)概述Oracle數(shù)據(jù)庫教程(第2版)41.1.2數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)是數(shù)據(jù)庫系統(tǒng)的核心組成部分,它是在操作系統(tǒng)支持下的系統(tǒng)軟件,是對數(shù)據(jù)進(jìn)行管理的大型系統(tǒng)軟件,用戶在數(shù)據(jù)庫系統(tǒng)中的一些操作都是由數(shù)據(jù)庫管理系統(tǒng)來實(shí)現(xiàn)的?!?/p>
數(shù)據(jù)定義功能:提供數(shù)據(jù)定義語言定義數(shù)據(jù)庫和數(shù)據(jù)庫對象?!?/p>
數(shù)據(jù)操縱功能:提供數(shù)據(jù)操縱語言對數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行查詢、插入、修改、刪除等操作?!?/p>
數(shù)據(jù)控制功能:提供數(shù)據(jù)控制語言進(jìn)行數(shù)據(jù)控制,即提供數(shù)據(jù)的安全性、完整性、并發(fā)控制等項(xiàng)功能●
數(shù)據(jù)庫建立維護(hù)功能:包括數(shù)據(jù)庫初始數(shù)據(jù)的裝入、轉(zhuǎn)儲(chǔ)、恢復(fù)和系統(tǒng)性能監(jiān)視、分析等項(xiàng)功能。1.1數(shù)據(jù)庫系統(tǒng)概述Oracle數(shù)據(jù)庫教程(第2版)51.1.3數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,DBS)是在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成,數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用程序、用戶、數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)組成,如圖1.1所示,數(shù)據(jù)庫系統(tǒng)在整個(gè)計(jì)算機(jī)系統(tǒng)中的地位如圖1.2所示。圖1.1數(shù)據(jù)庫系統(tǒng)1.1數(shù)據(jù)庫系統(tǒng)概述Oracle數(shù)據(jù)庫教程(第2版)6圖1.2數(shù)據(jù)庫在計(jì)算機(jī)系統(tǒng)中的地位數(shù)據(jù)庫應(yīng)用系統(tǒng)分為客戶-服務(wù)器模式(C/S)和三層客戶-服務(wù)器(B/S)模式。1.1數(shù)據(jù)庫系統(tǒng)概述Oracle數(shù)據(jù)庫教程(第2版)71.C/S模式應(yīng)用程序直接與用戶打交道,數(shù)據(jù)庫管理系統(tǒng)不直接與用戶打交道,因此,應(yīng)用程序稱為前臺(tái),數(shù)據(jù)庫管理系統(tǒng)稱為后臺(tái)。因?yàn)閼?yīng)用程序向數(shù)據(jù)庫管理系統(tǒng)提出服務(wù)請求,所以稱為客戶程序(Client),而數(shù)據(jù)庫管理系統(tǒng)向應(yīng)用程序提供服務(wù),所以稱為服務(wù)器程序(Server),上述操作數(shù)據(jù)庫的模式稱為客戶-服務(wù)器模式(C/S),如圖1.3所示。圖1.3C/S模式1.1數(shù)據(jù)庫系統(tǒng)概述Oracle數(shù)據(jù)庫教程(第2版)82.B/S模式基于Web的數(shù)據(jù)庫應(yīng)用采用三層客戶-服務(wù)器模式(B/S),第一層為瀏覽器,第二層為Web服務(wù)器,第三層為數(shù)據(jù)庫服務(wù)器,如圖1.4所示。
1.1.4數(shù)據(jù)管理技術(shù)的發(fā)展數(shù)據(jù)管理是指對數(shù)據(jù)進(jìn)行分類、組織、編碼、存儲(chǔ)、檢索和維護(hù)等項(xiàng)工作,數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫系統(tǒng)階段,現(xiàn)在正在向更高一級的數(shù)據(jù)庫系統(tǒng)發(fā)展。圖1.4B/S模式1.1數(shù)據(jù)庫系統(tǒng)概述Oracle數(shù)據(jù)庫教程(第2版)91.人工管理階段20世紀(jì)50年代中期以前,人工管理階段的數(shù)據(jù)是面向應(yīng)用程序的,一個(gè)數(shù)據(jù)集只能對應(yīng)一個(gè)程序,應(yīng)用程序與數(shù)據(jù)之間的關(guān)系如圖1.5所示。圖1.5人工管理階段應(yīng)用程序與數(shù)據(jù)之間的關(guān)系1.1數(shù)據(jù)庫系統(tǒng)概述Oracle數(shù)據(jù)庫教程(第2版)10人工管理階段的特點(diǎn)如下:(1)數(shù)據(jù)不保存。只是在計(jì)算某一課題時(shí)將數(shù)據(jù)輸入,用完即撤走。(2)數(shù)據(jù)不共享。數(shù)據(jù)面向應(yīng)用程序,一個(gè)數(shù)據(jù)集只能對應(yīng)一個(gè)程序,即使多個(gè)不同程序用到相同數(shù)據(jù),也得各自定義。(3)數(shù)據(jù)和程序不具有獨(dú)立性。數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)發(fā)生改變,必須修改相應(yīng)的應(yīng)用程序,即要修改數(shù)據(jù)必須修改程序。(4)沒有軟件系統(tǒng)對數(shù)據(jù)進(jìn)行統(tǒng)一管理。1.1數(shù)據(jù)庫系統(tǒng)概述Oracle數(shù)據(jù)庫教程(第2版)112.文件系統(tǒng)階段20世紀(jì)50年代后期到60年代中期,計(jì)算機(jī)不僅用于科學(xué)計(jì)算,也開始用于數(shù)據(jù)管理。數(shù)據(jù)處理的方式不僅有批處理,還有聯(lián)機(jī)實(shí)時(shí)處理。應(yīng)用程序和數(shù)據(jù)之間的關(guān)系如圖1.6所示。圖1.6文件系統(tǒng)階段應(yīng)用程序與數(shù)據(jù)之間的關(guān)系1.1數(shù)據(jù)庫系統(tǒng)概述Oracle數(shù)據(jù)庫教程(第2版)12文件系統(tǒng)階段數(shù)據(jù)管理的特點(diǎn):(1)數(shù)據(jù)可長期保存數(shù)據(jù)以文件的形式長期保存。(2)數(shù)據(jù)共享性差,冗余度大在文件系統(tǒng)中,一個(gè)文件基本對應(yīng)一個(gè)應(yīng)用程序,當(dāng)不同應(yīng)用程序具有相同數(shù)據(jù)時(shí),也必須各自建立文件,而不能共享數(shù)據(jù)相同數(shù)據(jù),數(shù)據(jù)冗余度大。(3)數(shù)據(jù)獨(dú)立性差當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),必須修改相應(yīng)的應(yīng)用程序,數(shù)據(jù)依賴于應(yīng)用程序,獨(dú)立性差。(4)由文件系統(tǒng)對數(shù)據(jù)進(jìn)行管理由專門的軟件----文件系統(tǒng)進(jìn)行數(shù)據(jù)管理,文件系統(tǒng)把數(shù)據(jù)組織成相互獨(dú)立的數(shù)據(jù)文件,可按文件名訪問,按記錄存取,程序與數(shù)據(jù)之間有一定的獨(dú)立性1.1數(shù)據(jù)庫系統(tǒng)概述Oracle數(shù)據(jù)庫教程(第2版)133.數(shù)據(jù)庫系統(tǒng)階段20世紀(jì)60年代后期開始,數(shù)據(jù)管理對象的規(guī)模越來越大,應(yīng)用越來越廣泛,數(shù)據(jù)量快速增加。為了實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)一管理,解決多用戶、多應(yīng)用共享數(shù)據(jù)的需求,數(shù)據(jù)庫技術(shù)應(yīng)運(yùn)而生,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件----數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫系統(tǒng)階段應(yīng)用程序和數(shù)據(jù)之間的關(guān)系如圖1.7所示。圖1.7數(shù)據(jù)庫系統(tǒng)階段應(yīng)用程序與數(shù)據(jù)之間的關(guān)系1.1數(shù)據(jù)庫系統(tǒng)概述Oracle數(shù)據(jù)庫教程(第2版)14數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)相比較,具有以下的主要特點(diǎn):(1)數(shù)據(jù)結(jié)構(gòu)化(2)數(shù)據(jù)的共享度高,冗余度?。?)有較高的數(shù)據(jù)獨(dú)立性(4)由數(shù)據(jù)庫管理系統(tǒng)對數(shù)據(jù)進(jìn)行管理在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)庫管理系統(tǒng)作為用戶與數(shù)據(jù)庫的接口,提供了數(shù)據(jù)庫定義、數(shù)據(jù)庫運(yùn)行、數(shù)據(jù)庫維護(hù)和數(shù)據(jù)安全性、完整性等控制功能。1.1數(shù)據(jù)庫系統(tǒng)概述Oracle數(shù)據(jù)庫教程(第2版)151.2數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)從數(shù)據(jù)庫管理系統(tǒng)內(nèi)部系統(tǒng)結(jié)構(gòu)看,數(shù)據(jù)庫系統(tǒng)通常采用三級模式結(jié)構(gòu)。1.2.1數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)模式(Schema)指對數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)、數(shù)據(jù)特征,數(shù)據(jù)約束的定義和描述,它是對數(shù)據(jù)的一種抽象,模式反映數(shù)據(jù)的本質(zhì)、核心或型的方面。數(shù)據(jù)庫系統(tǒng)的標(biāo)準(zhǔn)結(jié)構(gòu)是三級模式結(jié)構(gòu),它包括外模式、模式和內(nèi)模式,如圖1.8所示。圖1.8數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)Oracle數(shù)據(jù)庫教程(第2版)161.外模式外模式(ExternalSchema)又稱子模式或用戶模式,位于三級模式的最外層,對應(yīng)于用戶級,它是某個(gè)或某幾個(gè)用戶所看到的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式通常是模式的子集,一個(gè)數(shù)據(jù)庫可以有多個(gè)外模式,同一外模式也可以為某一用戶的多個(gè)應(yīng)用系統(tǒng)所用,但一個(gè)應(yīng)用程序只能使用一個(gè)外模式,它是由外模式描述語言(外模式DDL)來描述和定義的。2.模式模式(Schema)又稱概念模式,也稱邏輯模式,位于三級模式的中間層,對應(yīng)于概念級,它是由數(shù)據(jù)庫設(shè)計(jì)者綜合所有用戶的數(shù)據(jù),按照統(tǒng)一觀點(diǎn)構(gòu)造的全局邏輯結(jié)構(gòu),是所有用戶的公共數(shù)據(jù)視圖(全局視圖)。一個(gè)數(shù)據(jù)庫只有一個(gè)模式,它是由模式描述語言(模式DDL)來描述和定義的。1.2
數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)Oracle數(shù)據(jù)庫教程(第2版)173,內(nèi)模式內(nèi)模式(InternalSchema)又稱為存儲(chǔ)模式,位于三級模式的底層,對應(yīng)于物理級,它是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式。一個(gè)數(shù)據(jù)庫只有一個(gè)內(nèi)模式,它是由內(nèi)模式描述語言(內(nèi)模式DDL)來描述和定義的。1.2.2數(shù)據(jù)庫的二級映像功能和數(shù)據(jù)獨(dú)立性為了能夠在內(nèi)部實(shí)現(xiàn)這三個(gè)抽象層次的聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫管理系統(tǒng)在這三級模式之間提供了兩級映象:外模式/模式映象,模式/內(nèi)模式映象。1.外模式/模式映象模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu),外模式描述的是數(shù)據(jù)的局部邏輯結(jié)構(gòu)。數(shù)據(jù)庫系統(tǒng)都有一個(gè)外模式/模式映象,它定義了該外模式與模式之間的對應(yīng)關(guān)系。1.2
數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)Oracle數(shù)據(jù)庫教程(第2版)18當(dāng)模式改變時(shí),由數(shù)據(jù)庫管理員對各個(gè)外模式/模式映象作相應(yīng)改變,可以使外模式保持不變。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,保證了數(shù)據(jù)與程序的邏輯獨(dú)立性,簡稱為數(shù)據(jù)邏輯獨(dú)立性。2.模式/內(nèi)模式映象數(shù)據(jù)庫中只有一個(gè)模式,也只有一個(gè)內(nèi)模式,所以模式/內(nèi)模式映象是唯一的,它定義了數(shù)據(jù)庫全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對應(yīng)關(guān)系。當(dāng)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)改變了,由數(shù)據(jù)庫管理員對模式/內(nèi)模式映象作相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程序也不必改變。保證了數(shù)據(jù)與程序的物理獨(dú)立性,簡稱為數(shù)據(jù)物理獨(dú)立性。在數(shù)據(jù)庫的三級模式結(jié)構(gòu)中,數(shù)據(jù)庫模式即全局邏輯結(jié)構(gòu)是數(shù)據(jù)庫的中心與關(guān)鍵,它獨(dú)立于數(shù)據(jù)庫的其他層次。1.2
數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)Oracle數(shù)據(jù)庫教程(第2版)19數(shù)據(jù)庫的內(nèi)模式依賴于它的全局邏輯結(jié)構(gòu),但獨(dú)立于數(shù)據(jù)庫的用戶視圖即外模式,也獨(dú)立于具體的存儲(chǔ)設(shè)備。數(shù)據(jù)庫的外模式面向具體的應(yīng)用程序,它定義在邏輯模式之上,但獨(dú)立于內(nèi)模式和存儲(chǔ)設(shè)備。數(shù)據(jù)庫的二級映象保證了數(shù)據(jù)庫外模式的穩(wěn)定性,從而根本上保證了應(yīng)用程序的穩(wěn)定性,使得數(shù)據(jù)庫系統(tǒng)具有較高的數(shù)據(jù)與程序的獨(dú)立性。數(shù)據(jù)庫的三級模式與二級映象使得數(shù)據(jù)的定義和描述可以從應(yīng)用程序中分離出去。1.2數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)Oracle數(shù)據(jù)庫教程(第2版)201.2.3數(shù)據(jù)庫管理系統(tǒng)的工作過程數(shù)據(jù)庫管理系統(tǒng)控制的數(shù)據(jù)操作過程基于數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)與二級映象功能,下面通過讀取一個(gè)用戶記錄的過程反映數(shù)據(jù)庫管理系統(tǒng)的工作過程,如圖1.9所示。圖1.9應(yīng)用程序從數(shù)據(jù)庫中讀取一條記錄的過程1.2
數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)Oracle數(shù)據(jù)庫教程(第2版)21(1)應(yīng)用程序A向DBMS發(fā)出從數(shù)據(jù)庫中讀用戶數(shù)據(jù)記錄的命令;(2)DBMS對該命令進(jìn)行語法檢查、語義檢查,并調(diào)用應(yīng)用程序A對應(yīng)的子模式,檢查A的存取權(quán)限,決定是否執(zhí)行該命令。如果拒絕執(zhí)行,則轉(zhuǎn)(10)向用戶返回錯(cuò)誤信息(3)在決定執(zhí)行該命令后,DBMS調(diào)用模式,依據(jù)子模式/模式映象的定義,確定應(yīng)讀入模式中的哪些記錄;(4)DBMS調(diào)用內(nèi)模式,依據(jù)模式/內(nèi)模式映象的定義,決定應(yīng)從哪個(gè)文件、用什么存取方式、讀入哪個(gè)或哪些物理記錄;(5)DBMS向操作系統(tǒng)發(fā)出執(zhí)行讀取所需物理記錄的命令;(6)操作系統(tǒng)執(zhí)行從物理文件中讀數(shù)據(jù)的有關(guān)操作;(7)操作系統(tǒng)將數(shù)據(jù)從數(shù)據(jù)庫的存儲(chǔ)區(qū)送至系統(tǒng)緩沖區(qū);1.2
數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)Oracle數(shù)據(jù)庫教程(第2版)22(8)DBMS依據(jù)內(nèi)模式/模式、模式/子模式映象的定義(僅為模式/內(nèi)模式、子模式/模式映象的反方向,并不是另一種新映象),導(dǎo)出應(yīng)用程序A所要讀取的記錄格式;(9)DBMS將數(shù)據(jù)記錄從系統(tǒng)緩沖區(qū)傳送到應(yīng)用程序A的用戶工作區(qū);(10)DBMS向應(yīng)用程序A返回命令執(zhí)行情況的狀態(tài)信息。以上為DBMS一次讀用戶數(shù)據(jù)記錄的過程,DBMS向數(shù)據(jù)庫寫一個(gè)用戶數(shù)據(jù)記錄的過程與此類似,只是過程基本相反而已。由DBMS控制的用戶數(shù)據(jù)的存取操作,就是由很多讀或?qū)懙幕具^程組合完成的。1.2
數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)Oracle數(shù)據(jù)庫教程(第2版)231.3數(shù)據(jù)模型模型是對現(xiàn)實(shí)世界中某個(gè)對象特征的模擬和抽象,數(shù)據(jù)模型(DataModel)是對現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象,它是用來描述數(shù)據(jù)、組織數(shù)據(jù)和對數(shù)據(jù)進(jìn)行操作的。數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ)。1.3.1兩類數(shù)據(jù)模型數(shù)據(jù)模型需要滿足三方面的要求:能比較真實(shí)地模擬現(xiàn)實(shí)世界,容易為人所理解,便于在計(jì)算機(jī)上實(shí)現(xiàn)。在開發(fā)設(shè)計(jì)數(shù)據(jù)庫應(yīng)用系統(tǒng)時(shí)需要使用不同的數(shù)據(jù)模型,它們是概念模型、邏輯模型、物理模型,根據(jù)模型應(yīng)用的不同目的,按不同的層次可將它們分為兩類,第一類是概念模型,第二類是邏輯模型、物理模型。第一類中的概念模型,按用戶的觀點(diǎn)對數(shù)據(jù)和信息建模,是對現(xiàn)實(shí)世界的第一層抽象,又稱信息模型,它通過各種概念來描述現(xiàn)實(shí)世界的事物以及事物之間的聯(lián)系,主要用于數(shù)據(jù)庫設(shè)計(jì)。Oracle數(shù)據(jù)庫教程(第2版)24第二類中的邏輯模型,按計(jì)算機(jī)的觀點(diǎn)對數(shù)據(jù)建模,是概念模型的數(shù)據(jù)化,是事物以及事物之間聯(lián)系的數(shù)據(jù)描述,提供了表示和組織數(shù)據(jù)的方法,主要的邏輯模型有層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο髷?shù)據(jù)模型、對象關(guān)系數(shù)據(jù)模型和半結(jié)構(gòu)化數(shù)據(jù)模型等。第二類中的物理模型,是對數(shù)據(jù)最底層的抽象,它描述數(shù)據(jù)在系統(tǒng)內(nèi)部的表示方式和存取方法,如數(shù)據(jù)在磁盤上的存儲(chǔ)方式和存取方法,是面向計(jì)算機(jī)系統(tǒng)的,由數(shù)據(jù)庫管理系統(tǒng)具體實(shí)現(xiàn)。為了把現(xiàn)實(shí)世界的具體的事物抽象、組織為某一數(shù)據(jù)庫管理系統(tǒng)支持的數(shù)據(jù)模型,需要經(jīng)歷了一個(gè)逐級抽象的過程,將現(xiàn)實(shí)世界抽象為信息世界,然后將信息世界轉(zhuǎn)換為機(jī)器世界,即首先將現(xiàn)實(shí)世界的客觀對象抽象為某一種信息結(jié)構(gòu),這種信息結(jié)構(gòu)不依賴于具體計(jì)算機(jī)系統(tǒng),不是某一個(gè)數(shù)據(jù)庫管理系統(tǒng)支持的數(shù)據(jù)模型,而是概念級的模型,然后,將概念模型轉(zhuǎn)換為計(jì)算機(jī)上某一個(gè)數(shù)據(jù)庫管理系統(tǒng)支持的數(shù)據(jù)模型,如圖1.10所示。1.3數(shù)據(jù)模型Oracle數(shù)據(jù)庫教程(第2版)25圖1.10現(xiàn)實(shí)世界客觀事物的抽象過程從概念模型到邏輯模型的轉(zhuǎn)換由數(shù)據(jù)庫設(shè)計(jì)人員完成,從邏輯模型到物理模型的轉(zhuǎn)換主要由數(shù)據(jù)庫管理系統(tǒng)完成1.3數(shù)據(jù)模型Oracle數(shù)據(jù)庫教程(第2版)261.3.2數(shù)據(jù)模型組成要素?cái)?shù)據(jù)模型(DataModel)是現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象,一般由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)完整性約束三部分組成。1.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)用于描述系統(tǒng)的靜態(tài)特性,是所研究的對象類型的集合,數(shù)據(jù)模型按其數(shù)據(jù)結(jié)構(gòu)分為層次模型、網(wǎng)狀模型和關(guān)系模型等。數(shù)據(jù)結(jié)構(gòu)所研究的對象是數(shù)據(jù)庫的組成部分,包括兩類:一類是與數(shù)據(jù)類型、內(nèi)容、性質(zhì)有關(guān)的對象,例如關(guān)系模型中的域、屬性等,另一類是與數(shù)據(jù)之間聯(lián)系有關(guān)的對象,例如關(guān)系模型中反映聯(lián)系的關(guān)系等。2.數(shù)據(jù)操作數(shù)據(jù)操作用于描述系統(tǒng)的動(dòng)態(tài)特性,是指對數(shù)據(jù)庫中各種對象及對象的實(shí)例允許執(zhí)行的操作的集合,包括對象的創(chuàng)建、修改和刪除,對對象實(shí)例的檢索、插入、刪除、修改及其它有關(guān)操作等。1.3數(shù)據(jù)模型Oracle數(shù)據(jù)庫教程(第2版)273.數(shù)據(jù)完整性約束數(shù)據(jù)完整性約束是一組完整性約束規(guī)則的集合,完整性約束規(guī)則是給定數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存的規(guī)則。數(shù)據(jù)模型三要素在數(shù)據(jù)庫中都是嚴(yán)格定義的一組概念的集合,在關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)結(jié)構(gòu)是表結(jié)構(gòu)定義及其它數(shù)據(jù)庫對象定義的命令集,數(shù)據(jù)操作是數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)操作(操作命令、語法規(guī)定、參數(shù)說明等)命令集,數(shù)據(jù)完整性約束是各關(guān)系表約束的定義及操作約束規(guī)則等的集合。1.3.3層次模型、網(wǎng)狀模型和關(guān)系模型數(shù)據(jù)模型是現(xiàn)實(shí)世界的模擬,它是按計(jì)算機(jī)的觀點(diǎn)對數(shù)據(jù)建立模型,包含數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)完整性三要素,數(shù)據(jù)模型有層次模型、網(wǎng)狀模型、關(guān)系模型。1.3數(shù)據(jù)模型Oracle數(shù)據(jù)庫教程(第2版)281.層次模型用樹狀層次結(jié)構(gòu)組織數(shù)據(jù),樹狀結(jié)構(gòu)每一個(gè)結(jié)點(diǎn)表示一個(gè)記錄類型,記錄類型之間的聯(lián)系是一對多的聯(lián)系。層次模型有且僅有一個(gè)根結(jié)點(diǎn),位于樹狀結(jié)構(gòu)頂部,其它結(jié)點(diǎn)有且僅有一個(gè)父結(jié)點(diǎn)。某大學(xué)按層次模型組織數(shù)據(jù)的示例如圖1.11所示。層次模型簡單易用,但現(xiàn)實(shí)世界很多聯(lián)系是非層次性的,如多對多聯(lián)系等,表達(dá)起來比較笨拙且不直觀。圖1.11層次模型示例1.3數(shù)據(jù)模型Oracle數(shù)據(jù)庫教程(第2版)292.網(wǎng)狀模型采用網(wǎng)狀結(jié)構(gòu)組織數(shù)據(jù),網(wǎng)狀結(jié)構(gòu)每一個(gè)結(jié)點(diǎn)表示一個(gè)記錄類型,記錄類型之間可以有多種聯(lián)系,按網(wǎng)狀模型組織數(shù)據(jù)的示例如圖1.12所示。網(wǎng)狀模型可以更直接地描述現(xiàn)實(shí)世界,層次模型是網(wǎng)狀模型特例,但網(wǎng)狀模型結(jié)構(gòu)復(fù)雜,用戶不易掌握。圖1.12網(wǎng)狀模型示例1.3數(shù)據(jù)模型Oracle數(shù)據(jù)庫教程(第2版)303.關(guān)系模型采用關(guān)系的形式組織數(shù)據(jù),一個(gè)關(guān)系就是一張二維表,二維表由行和列組成,按關(guān)系模型組織數(shù)據(jù)的示例如圖1.13所示。學(xué)生關(guān)系框架
成績關(guān)系框架學(xué)號姓名性別出生日期專業(yè)班號總學(xué)分學(xué)號課程號成績學(xué)號姓名性別出生日期專業(yè)班號總學(xué)分181001宋德成男1997-11-05計(jì)算機(jī)20180552181002何靜女1998-04-27計(jì)算機(jī)20180550學(xué)號課程號成績181001100494181002100486181001120193關(guān)系模型建立在嚴(yán)格的數(shù)學(xué)概念基礎(chǔ)上,數(shù)據(jù)結(jié)構(gòu)簡單清晰,用戶易懂易用,關(guān)系數(shù)據(jù)庫是目前應(yīng)用最為廣泛、最為重要的一種數(shù)學(xué)模型。學(xué)生關(guān)系
成績關(guān)系圖1.13關(guān)系模型示例1.3數(shù)據(jù)模型Oracle數(shù)據(jù)庫教程(第2版)311.4關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫采用關(guān)系模型組織數(shù)據(jù),關(guān)系數(shù)據(jù)庫是目前最流行的數(shù)據(jù)庫,關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RelationalDatabaseManagementSystem,RDBMS)是支持關(guān)系模型的數(shù)據(jù)庫管理系統(tǒng)。1.4.1關(guān)系數(shù)據(jù)庫基本概念
●關(guān)系:關(guān)系就是表(Table),在關(guān)系數(shù)據(jù)庫中,一個(gè)關(guān)系存儲(chǔ)為一個(gè)數(shù)據(jù)表。
●元組:表中一行(Row)為一個(gè)元組(Tuple),一個(gè)元組對應(yīng)數(shù)據(jù)表中的一條記錄(Record),元組的各個(gè)分量對應(yīng)于關(guān)系的各個(gè)屬性?!駥傩裕罕碇械牧?Column)稱為屬性(Property),對應(yīng)數(shù)據(jù)表中的字段(Field)。
●域:屬性的取值范圍。
●關(guān)系模式:對關(guān)系的描述稱為關(guān)系模式,格式如下:關(guān)系名(屬性名1,屬性名2,…屬性名n)
Oracle數(shù)據(jù)庫教程(第2版)321.4關(guān)系數(shù)據(jù)庫●候選碼:屬性或?qū)傩越M,其值可唯一標(biāo)識其對應(yīng)元組?!裰麝P(guān)鍵字(主鍵):在候選碼中選擇一個(gè)作為主鍵(PrimaryKey)。●外關(guān)鍵字(外鍵):在一個(gè)關(guān)系中的屬性或?qū)傩越M不是該關(guān)系的主鍵,但它是另一個(gè)關(guān)系的主鍵,稱為外鍵(ForeignKey)。在圖1.3中,學(xué)生的關(guān)系模式為學(xué)生(學(xué)號,姓名,性別,出生日期,專業(yè),總學(xué)分)主鍵為學(xué)號。成績的關(guān)系模式為成績(學(xué)號,課程號,成績)
Oracle數(shù)據(jù)庫教程(第2版)331.4關(guān)系數(shù)據(jù)庫1.4.2關(guān)系運(yùn)算關(guān)系數(shù)據(jù)操作稱為關(guān)系運(yùn)算,投影、選擇、連接是最重要的關(guān)系運(yùn)算,關(guān)系數(shù)據(jù)庫管理系統(tǒng)支持關(guān)系數(shù)據(jù)庫和投影、選擇、連接運(yùn)算。(1)選擇選擇(Selection)指選出滿足給定條件的記錄,它是從行的角度進(jìn)行的單目運(yùn)算,運(yùn)算對象是一個(gè)表,運(yùn)算結(jié)果形成一個(gè)新表。【例1.1】從學(xué)生表中選擇專業(yè)為計(jì)算機(jī)且總學(xué)分為52分的行進(jìn)行選擇運(yùn)算,選擇所得的新表如表1.1所示。
Oracle數(shù)據(jù)庫教程(第2版)341.4關(guān)系數(shù)據(jù)庫(2)投影投影(Projection)是選擇表中滿足條件的列,它是從列的角度進(jìn)行的單目運(yùn)算。【例1.2】從學(xué)生表中選取姓名、專業(yè)、班號進(jìn)行投影運(yùn)算,投影所得的新表如表1.2所示。
Oracle數(shù)據(jù)庫教程(第2版)351.4關(guān)系數(shù)據(jù)庫連接(Join)是將兩個(gè)表中的行按照一定的條件橫向結(jié)合生成的新表。選擇和投影都是單目運(yùn)算,其操作對象只是一個(gè)表,而連接是雙目運(yùn)算,其操作對象是兩個(gè)表?!纠?.3】學(xué)生表與成績表通過學(xué)號相等的連接條件進(jìn)行連接運(yùn)算,連接所得的新表如表1.3所示。
Oracle數(shù)據(jù)庫教程(第2版)361.5
數(shù)據(jù)庫設(shè)計(jì)1.5.1數(shù)據(jù)庫設(shè)計(jì)概述1.數(shù)據(jù)庫設(shè)計(jì)的特點(diǎn)和方法1)數(shù)據(jù)庫設(shè)計(jì)的特點(diǎn)(1)綜合性數(shù)據(jù)庫設(shè)計(jì)涉及面廣,較為復(fù)雜,它包含計(jì)算機(jī)專業(yè)知識及業(yè)務(wù)系統(tǒng)專業(yè)知識,要解決技術(shù)及非技術(shù)兩方面的問題;(2)結(jié)構(gòu)設(shè)計(jì)與行為設(shè)計(jì)相結(jié)合數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計(jì)在模式和外模式中定義,應(yīng)用系統(tǒng)的行為設(shè)計(jì)在存取數(shù)據(jù)庫的應(yīng)用程序中設(shè)計(jì)和實(shí)現(xiàn)。靜態(tài)結(jié)構(gòu)設(shè)計(jì)是指數(shù)據(jù)庫的模式框架設(shè)計(jì)(包括語義結(jié)構(gòu)(概念)、數(shù)據(jù)結(jié)構(gòu)(邏輯)、存儲(chǔ)結(jié)構(gòu)(物理)),動(dòng)態(tài)行為設(shè)計(jì)是指應(yīng)用程序設(shè)計(jì)(動(dòng)作操縱:功能組織、流程控制)。由于結(jié)構(gòu)設(shè)計(jì)和行為設(shè)計(jì)是分離進(jìn)行的,程序和數(shù)據(jù)不易結(jié)合,我們必須強(qiáng)調(diào)數(shù)據(jù)庫設(shè)計(jì)和應(yīng)用系統(tǒng)設(shè)計(jì)的密切結(jié)合。Oracle數(shù)據(jù)庫教程(第2版)372)數(shù)據(jù)庫設(shè)計(jì)的方法(1)新奧爾良(NewOrleans)設(shè)計(jì)方法新奧爾良方法是規(guī)范設(shè)計(jì)方法中比較著名的數(shù)據(jù)庫設(shè)計(jì)方法,該方法將數(shù)據(jù)庫設(shè)計(jì)分成4個(gè)階段:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。經(jīng)過很多人的改進(jìn),將數(shù)據(jù)庫設(shè)計(jì)分為6個(gè)階段:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫實(shí)施和數(shù)據(jù)庫運(yùn)行維護(hù)。(2)基于E-R模型的數(shù)據(jù)庫設(shè)計(jì)方法在需求分析的基礎(chǔ)上,基于E-R模型的數(shù)據(jù)庫設(shè)計(jì)方法設(shè)計(jì)數(shù)據(jù)庫的概念模型,是數(shù)據(jù)庫概念設(shè)計(jì)階段廣泛采用的方法。(3)3NF設(shè)計(jì)方法3NF的設(shè)計(jì)方法以關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論為指導(dǎo)來設(shè)計(jì)數(shù)據(jù)庫的邏輯模型,是設(shè)計(jì)關(guān)系數(shù)據(jù)庫時(shí)在邏輯設(shè)計(jì)階段采用的一種有效方法。1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)38(4)對象定義語言(ObjectDefinitionLanguage,ODL)方法ODL方法是面向?qū)ο蟮臄?shù)據(jù)庫設(shè)計(jì)方法,該方法使用面向?qū)ο蟮母拍詈托g(shù)語來描述和完成數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計(jì),通過統(tǒng)一建模語言(UML,UnifiedModelingLanguage)的類圖表示數(shù)據(jù)對象的匯集及它們之間的聯(lián)系,其所得到的對象模型,既可用于設(shè)計(jì)關(guān)系數(shù)據(jù)庫,也可用于設(shè)計(jì)面向?qū)ο髷?shù)據(jù)庫等。數(shù)據(jù)庫設(shè)計(jì)工具已經(jīng)實(shí)用化和商品化,例如SYSBASE公司的PowerDesigner、Oracle公司的Designer2000、Rational公司的RationalRose等。2.數(shù)據(jù)庫設(shè)計(jì)的基本步驟按照規(guī)范設(shè)計(jì)的方法,考慮數(shù)據(jù)庫及其應(yīng)用系統(tǒng)開發(fā)全過程,將數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)階段:需求分析階段,概念結(jié)構(gòu)設(shè)計(jì)階段,邏輯結(jié)構(gòu)設(shè)計(jì)階段,物理結(jié)構(gòu)設(shè)計(jì)階段,數(shù)據(jù)庫實(shí)施階段,數(shù)據(jù)庫運(yùn)行和維護(hù)階段,如圖1.14所示。1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)39(1)需求分析階段需求分析是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的基礎(chǔ),在數(shù)據(jù)庫設(shè)計(jì)中,首先需要準(zhǔn)確了解與分析用戶的需求,明確系統(tǒng)的目標(biāo)和實(shí)現(xiàn)的功能。(2)概念結(jié)構(gòu)設(shè)計(jì)階段概念結(jié)構(gòu)設(shè)計(jì)是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵,其任務(wù)是根據(jù)需求分析,形成一個(gè)獨(dú)立于具體數(shù)據(jù)庫管理系統(tǒng)的概念模型,即設(shè)計(jì)E-R模型。圖1.14數(shù)據(jù)庫設(shè)計(jì)步驟1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)40(3)邏輯結(jié)構(gòu)設(shè)計(jì)階段邏輯結(jié)構(gòu)設(shè)計(jì)是將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)具體的數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型。(4)物理結(jié)構(gòu)設(shè)計(jì)階段物理結(jié)構(gòu)設(shè)計(jì)是為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu),包括存儲(chǔ)結(jié)構(gòu)和存取方法等。(5)數(shù)據(jù)庫施現(xiàn)階段設(shè)計(jì)人員運(yùn)用數(shù)據(jù)庫管理系統(tǒng)所提供的數(shù)據(jù)庫語言和宿主語言,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫,編寫和調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫和試運(yùn)行。(6)數(shù)據(jù)庫運(yùn)行與維護(hù)階段通過試運(yùn)行后即可投入正式運(yùn)行,在數(shù)據(jù)庫運(yùn)行過程中,不斷地對其進(jìn)行評估、調(diào)整和修改。1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)41數(shù)據(jù)庫設(shè)計(jì)的不同階段形成的數(shù)據(jù)庫各級模式,如圖1.15所示。圖1.15數(shù)據(jù)庫各級模式1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)421.5.2需求分析在需求分析階段,設(shè)計(jì)的中心工作是綜合各個(gè)用戶的需求。在概念結(jié)構(gòu)設(shè)計(jì)階段,形成與計(jì)算機(jī)硬件無關(guān)的、獨(dú)立于各個(gè)數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品的概念模式,即E-R圖。在邏輯結(jié)構(gòu)設(shè)計(jì)階段,將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品支持的數(shù)據(jù)模型,形成數(shù)據(jù)庫邏輯模式,然后,在基本表的基礎(chǔ)上再建立必要的視圖,形成數(shù)據(jù)的外模式。在物理結(jié)構(gòu)設(shè)計(jì)階段,根據(jù)數(shù)據(jù)庫管理系統(tǒng)的特點(diǎn)和處理的需要,進(jìn)行物理存儲(chǔ)安排,建立索引,形成數(shù)據(jù)庫物理模式。1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)431.5
數(shù)據(jù)庫設(shè)計(jì)1.需求分析的任務(wù)需求分析階段的主要任務(wù)是對現(xiàn)實(shí)世界要處理的對象(公司,部門,企業(yè))進(jìn)行詳細(xì)調(diào)查,在了解現(xiàn)行系統(tǒng)的概況、確定新系統(tǒng)功能的過程中,收集支持系統(tǒng)目標(biāo)的基礎(chǔ)數(shù)據(jù)及其處理方法。需求分析是在用戶調(diào)查的基礎(chǔ)上,通過分析,逐步明確用戶對系統(tǒng)的需求,包括數(shù)據(jù)需求和圍繞這些數(shù)據(jù)的業(yè)務(wù)處理需求。用戶調(diào)查的重點(diǎn)是“數(shù)據(jù)”和“處理”。(1)信息需求定義未來數(shù)據(jù)庫系統(tǒng)用到的所有信息,明確用戶將向數(shù)據(jù)庫中輸入什么樣的數(shù)據(jù),從數(shù)據(jù)庫中要求獲得哪些內(nèi)容,將要輸出哪些信息,以及描述數(shù)據(jù)間的聯(lián)系等。Oracle數(shù)據(jù)庫教程(第2版)44(2)處理需求定義了系統(tǒng)數(shù)據(jù)處理的操作功能,描述操作的優(yōu)先次序,包括操作的執(zhí)行頻率和場合,操作與數(shù)據(jù)間的聯(lián)系。處理需求還要明確用戶要完成哪些處理功能,每種處理的執(zhí)行頻度,用戶需求的響應(yīng)時(shí)間以及處理的方式,比如是聯(lián)機(jī)處理還是批處理等。(3)安全性與完整性要求描述了系統(tǒng)中不同用戶對數(shù)據(jù)庫的使用和操作情況,完整性要求描述了數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系以及數(shù)據(jù)的取值范圍要求。2.需求分析的方法1)數(shù)據(jù)流圖數(shù)據(jù)流圖用來描述系統(tǒng)的功能,表達(dá)了數(shù)據(jù)和處理的關(guān)系。數(shù)據(jù)流圖采用4個(gè)基本符號:外部實(shí)體、數(shù)據(jù)流、數(shù)據(jù)處理、數(shù)據(jù)存儲(chǔ)。1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)45(1)外部實(shí)體數(shù)據(jù)來源和數(shù)據(jù)輸出又稱為外部實(shí)體,表示系統(tǒng)數(shù)據(jù)的外部來源和去處,也可是另外一個(gè)系統(tǒng)。(2)數(shù)據(jù)流由數(shù)據(jù)組成,表示數(shù)據(jù)的流向,數(shù)據(jù)流都需要命名,數(shù)據(jù)流的名稱反映了數(shù)據(jù)流的含義。(3)數(shù)據(jù)處理指對數(shù)據(jù)的邏輯處理,也就是數(shù)據(jù)的變換。(4)數(shù)據(jù)存儲(chǔ)表示數(shù)據(jù)保存的地方,即數(shù)據(jù)存儲(chǔ)的邏輯描述。數(shù)據(jù)流圖如圖1.16所示。圖1.16數(shù)據(jù)流圖1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)462)數(shù)據(jù)字典數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,對數(shù)據(jù)流圖中的數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)等進(jìn)行詳細(xì)的描述,它包括數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、存儲(chǔ)、處理過程等。(1)數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)是數(shù)據(jù)最小的組成單位,即不可再分的基本數(shù)據(jù)單位,記錄了數(shù)據(jù)對象的基本信息,描述了數(shù)據(jù)的靜態(tài)特性.數(shù)據(jù)項(xiàng)描述={數(shù)據(jù)項(xiàng)名,數(shù)據(jù)項(xiàng)含義說明,別名,數(shù)據(jù)類型,長度,取值范圍,取值含義,與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系}(2)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是若干數(shù)據(jù)項(xiàng)有意義的集合,由若干數(shù)據(jù)項(xiàng)組成,或由若干數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)組成。數(shù)據(jù)結(jié)構(gòu)描述={數(shù)據(jù)結(jié)構(gòu)名,含義說明,組成:{數(shù)據(jù)項(xiàng)或數(shù)據(jù)結(jié)構(gòu)}}1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)47(3)數(shù)據(jù)流數(shù)據(jù)流表示某一處理過程的輸入和輸出,表示了數(shù)據(jù)處理過程中的傳輸流向,是對數(shù)據(jù)動(dòng)態(tài)特性的描述,。數(shù)據(jù)流描述={數(shù)據(jù)流名,說明,數(shù)據(jù)流來源,數(shù)據(jù)流去向,組成:{數(shù)據(jù)結(jié)構(gòu)},平均流量,高峰期流量}(4)數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)是處理過程中存儲(chǔ)的數(shù)據(jù),它是在事務(wù)和處理過程中數(shù)據(jù)所停留和保存過的地方.數(shù)據(jù)存儲(chǔ)描述={數(shù)據(jù)存儲(chǔ)名,說明,編號,流入的數(shù)據(jù)流,流出的數(shù)據(jù)流,組成:{數(shù)據(jù)結(jié)構(gòu)},數(shù)據(jù)量,存取頻度,存取方式}(5)處理過程在數(shù)據(jù)字典中,只需描述簡要描述處理過程的信息。處理過程描述={處理過程名,說明,輸入:{數(shù)據(jù)流},輸出:{數(shù)據(jù)流},處理:{簡要說明}}1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)481.5
數(shù)據(jù)庫設(shè)計(jì)1.5.3概念結(jié)構(gòu)設(shè)計(jì)1.概念結(jié)構(gòu)的特點(diǎn)和設(shè)計(jì)步驟1)概念結(jié)構(gòu)的特點(diǎn)(1)能真實(shí)、充分地反映現(xiàn)實(shí)世界概念模型是現(xiàn)實(shí)世界的一個(gè)真實(shí)模型,能滿足用戶對數(shù)據(jù)的處理要求。(2)易于理解便于數(shù)據(jù)庫設(shè)計(jì)人員和用戶交流,用戶的積極參與是數(shù)據(jù)庫設(shè)計(jì)成功的關(guān)鍵。(3)易于更改當(dāng)應(yīng)用環(huán)境和應(yīng)用要求發(fā)生改變時(shí),易于修改和擴(kuò)充概念模型(4)易于轉(zhuǎn)換為關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型。描述概念模型的有力工具是E-R模型,在第1章已經(jīng)介紹,本章在介紹概念結(jié)構(gòu)設(shè)計(jì)中也采用E-R模型。Oracle數(shù)據(jù)庫教程(第2版)492)概念結(jié)構(gòu)設(shè)計(jì)的方法概念結(jié)構(gòu)設(shè)計(jì)的方法有4種。(1)自底向上首先定義局部應(yīng)用的概念結(jié)構(gòu),然后按一定的規(guī)則把它們集成起來,得到全局概念模型。(2)自頂向下首先定義全局概念模型,然后再逐步細(xì)化。(3)由里向外首先定義最重要的核心概念結(jié)構(gòu),然后再逐步向外擴(kuò)展。(4)混合策略將自頂向下和自底向上結(jié)合起來使用。1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)503.)概念結(jié)構(gòu)設(shè)計(jì)的步驟(1)根據(jù)需求分析劃分的局部應(yīng)用,設(shè)計(jì)局部E-R圖。(2)將局部E-R圖合并,冗余和可能的矛盾,得到系統(tǒng)的全局E-R圖,審核和驗(yàn)證全局E-R圖,完成概念模型的設(shè)計(jì)。概念結(jié)構(gòu)設(shè)計(jì)步驟如圖1.17所示。圖1.17概念結(jié)構(gòu)設(shè)計(jì)步驟1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)512.
E-R模型描述概念模型的有力工具是E-R模型,E-R模型即實(shí)體-聯(lián)系模型,在E-R模型中:●實(shí)體:客觀存在并可相互區(qū)別的事物稱為實(shí)體,實(shí)體用矩形框表示,框內(nèi)為實(shí)體名。實(shí)體可以是具體的人、事、物或抽象的概念,例如,在學(xué)生成績管理系統(tǒng)中,“學(xué)生”就是一個(gè)實(shí)體?!駥傩裕簩?shí)體所具有的某一特性稱為屬性,屬性采用橢圓框表示,框內(nèi)為屬性名,并用無向邊與其相應(yīng)實(shí)體連接。例如,在學(xué)生成績管理系統(tǒng)中,學(xué)生的特性有學(xué)號、姓名、性別、出生日期、專業(yè)、班號、總學(xué)分,它們就是學(xué)生實(shí)體的7個(gè)屬性?!?/p>
實(shí)體型:用實(shí)體名及其屬性名集合來抽象和刻畫同類實(shí)體,稱為實(shí)體型。例如,學(xué)生(學(xué)號,姓名,性別,出生日期,專業(yè),班號,總學(xué)分)就是一個(gè)實(shí)體型。1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)52●實(shí)體集:同型實(shí)體的集合稱為實(shí)體集,例如全體學(xué)生記錄就是一個(gè)實(shí)體集?!衤?lián)系:實(shí)體之間的聯(lián)系,可分為一對一的聯(lián)系、一對多的聯(lián)系、多對多的聯(lián)系。實(shí)體間的聯(lián)系采用菱形框表示,聯(lián)系以適當(dāng)?shù)暮x命名,名字寫在菱形框中,用無向邊將參加聯(lián)系的實(shí)體矩形框分別與菱形框相連,并在連線上標(biāo)明聯(lián)系的類型,即1—1、1—n或m—n。如果聯(lián)系也具有屬性,則將屬性與菱形也用無向邊連上。(1)一對一的聯(lián)系(1:1)例如,一個(gè)班只有一個(gè)正班長,而一個(gè)正班長只屬于一個(gè)班,班級與正班長兩個(gè)實(shí)體間具有一對一的聯(lián)系。(2)一對多的聯(lián)系(1:n)例如,一個(gè)班可有若干學(xué)生,一個(gè)學(xué)生只能屬于一個(gè)班,班級與學(xué)生兩個(gè)實(shí)體間具有一對多的聯(lián)系。1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)53(3)多對多的聯(lián)系(m:n)例如,一個(gè)學(xué)生可選多門課程,一門課程可被多個(gè)學(xué)生選修,學(xué)生與課程兩個(gè)實(shí)體間具有多對多的聯(lián)系。實(shí)體之間的三種聯(lián)系如圖1.18所示。圖1.18實(shí)體之間的聯(lián)系1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)541.5
數(shù)據(jù)庫設(shè)計(jì)3.局部E-R模型設(shè)計(jì)使用系統(tǒng)需求分析階段得到的數(shù)據(jù)流程圖、數(shù)據(jù)字典和需求規(guī)格說明,建立對應(yīng)于每一部門或應(yīng)用的局部E-R模型,關(guān)鍵問題是如何確定實(shí)體(集)和實(shí)體屬性,即首先要確定系統(tǒng)中的每一個(gè)子系統(tǒng)包含哪些實(shí)體和屬性。設(shè)計(jì)局部E-R模型時(shí),最大的困難在于實(shí)體和屬性的正確劃分,其基本劃分原則如下:(1)屬性應(yīng)是系統(tǒng)中最小的信息單位。(2)若屬性具有多個(gè)值時(shí),應(yīng)該升級為實(shí)體?!纠?.4】設(shè)有學(xué)生、課程、教師、學(xué)院實(shí)體如下:學(xué)生:學(xué)號、姓名、性別、出生日期、專業(yè)、總學(xué)分、選修課程號課程:課程號、課程名、學(xué)分、開課學(xué)院、任課教師號Oracle數(shù)據(jù)庫教程(第2版)55教師:教師號、姓名、性別、出生日期、職稱、學(xué)院名、講授課程號學(xué)院:學(xué)院號、學(xué)院名、電話、教師號、教師名上述實(shí)體中存在如下聯(lián)系:(1)一個(gè)學(xué)生可選修多門課程,一門課程可為多個(gè)學(xué)生選修。(2)一個(gè)教師可講授多門課程,一門課程可為多個(gè)教師講授。(3)一個(gè)學(xué)院可有多個(gè)教師,一個(gè)教師只能屬于一個(gè)學(xué)院。(4)一個(gè)學(xué)院可擁有多個(gè)學(xué)生,一個(gè)學(xué)生只屬于一個(gè)學(xué)院。(5)假設(shè)學(xué)生只能選修本學(xué)院的課程,教師只能為本學(xué)院的學(xué)生講課。要求分別設(shè)計(jì)學(xué)生選課和教師任課兩個(gè)局部信息的結(jié)構(gòu)E-R圖。1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)56圖1.19學(xué)生選課局部E-R圖解:從各實(shí)體屬性看到,學(xué)生實(shí)體與學(xué)院實(shí)體和課程實(shí)體關(guān)聯(lián),不直接與教師實(shí)體關(guān)聯(lián),一個(gè)學(xué)院可以開設(shè)多門課程,學(xué)院實(shí)體與課程實(shí)體之間是1:m關(guān)系,學(xué)生選課局部E-R圖如圖1.19所示。1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)57教師實(shí)體與學(xué)院實(shí)體和課程實(shí)體關(guān)聯(lián),不直接與學(xué)生實(shí)體關(guān)聯(lián),教師任課局部E-R圖如圖1.20所示。圖1.20教師講課局部E-R圖1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)584.全局E-R模型設(shè)計(jì)綜合各部門或應(yīng)用的局部E-R模型,就可以得到系統(tǒng)的全局E-R模型。綜合局部E-R模型的方法有兩種:(1)多個(gè)局部E-R圖逐步綜合,一次綜合兩個(gè)E-R圖。(2)多個(gè)局部E-R圖一次綜合。第一種方法,由于一次只綜合兩個(gè)E-R圖,難度降低,較易使用。在上述兩種方法中,每次綜合可分為以下兩個(gè)步驟:(1)進(jìn)行合并,解決各局部E-R圖之間的沖突問題,生成初步E-R圖。(2)修改和重組,消除冗余,生成基本E-R圖。1)合并局部E-R圖,消除沖突由于各個(gè)局部應(yīng)用不同,通常由不同的設(shè)計(jì)人員去設(shè)計(jì)局部E-R圖,因此,各局部E-R圖之間往往會(huì)有很多不一致,被稱為沖突,沖突的類型有:1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)59(1)屬性沖突屬性域沖突:屬性取值的類型、取值范圍或取值集合不同。例如年齡可用出生年月和整數(shù)表示?!駥傩匀≈祮挝粵_突:例如重量,可用公斤、克、斤為單位。(2)結(jié)構(gòu)沖突●同一事物,不同的抽象:例如職工,在一個(gè)應(yīng)用中為實(shí)體,而在另一個(gè)應(yīng)用中為屬性?!裢粚?shí)體在不同應(yīng)用中的屬性組成不同?!裢宦?lián)系在不同應(yīng)用中類型不同。(3)命名沖突命名沖突包括實(shí)體名、屬性名、聯(lián)系名之間的沖突●同名異議:不同意義的事物具有相同的名稱?!癞惷x:不同意義的事物具有相同的名稱。1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)60屬性沖突和命名沖突可通過協(xié)商來解決,結(jié)構(gòu)沖突在認(rèn)真分析后通過技術(shù)手段解決。【例1.5】將例1.4設(shè)計(jì)完成的兩個(gè)局部E-R圖合并成一個(gè)初步的全局E-R圖。解:將圖4.5中的’’教師號’’屬性轉(zhuǎn)換為’’教師”實(shí)體,將兩個(gè)局部E-R圖中的”選修課程號”和”講授課程號”統(tǒng)一為”課程號”,并將”課程”實(shí)體的屬性統(tǒng)一為”課程號”和”課程名”,初步的全局E-R圖如圖1.21所示。圖1.21初步的全局E-R圖1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)612)消除冗余在初步的E-R圖中,可能存在冗余的數(shù)據(jù)或冗余的聯(lián)系。冗余的數(shù)據(jù)是指可由基本的數(shù)據(jù)導(dǎo)出的數(shù)據(jù),冗余的聯(lián)系也可由由其他的聯(lián)系導(dǎo)出。冗余的存在容易破壞數(shù)據(jù)庫的完整性,給數(shù)據(jù)庫的維護(hù)增加困難,應(yīng)該消除。【例1.6】消除冗余,對例1.5的初步的全局E-R圖進(jìn)行改進(jìn)。解:在圖4.8中,”屬于”和”開課”是冗余聯(lián)系,它們可以通過其他聯(lián)系導(dǎo)出,消除冗余聯(lián)系后得到改進(jìn)的全局E-R圖,如圖1.22所示。1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)62圖1.22改進(jìn)的全局E-R圖1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)631.5數(shù)據(jù)庫設(shè)計(jì)1.5.4邏輯結(jié)構(gòu)設(shè)計(jì)1.邏輯結(jié)構(gòu)設(shè)計(jì)的步驟以關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)為例,邏輯結(jié)構(gòu)設(shè)計(jì)步驟如圖1.23所示。圖1.23邏輯結(jié)構(gòu)設(shè)計(jì)步驟(1)將用E-R圖表示的概念結(jié)構(gòu)轉(zhuǎn)換為關(guān)系模型。(2)優(yōu)化模型。(3)設(shè)計(jì)適合DBMS的關(guān)系模式。Oracle數(shù)據(jù)庫教程(第2版)642.E-R模型向關(guān)系模型的轉(zhuǎn)換由E-R圖向關(guān)系模型轉(zhuǎn)換有以下兩個(gè)規(guī)則:1)一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系模式實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。2)實(shí)體間的聯(lián)系轉(zhuǎn)換為關(guān)系模式有以下不同的情況(1)一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端所對應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性都轉(zhuǎn)換為關(guān)系的屬性,每個(gè)實(shí)體的碼都是該關(guān)系的候選碼。如果與某一端實(shí)體對應(yīng)的關(guān)系模式合并,則需在該關(guān)系模式的屬性中加入另一個(gè)關(guān)系模式的碼和聯(lián)系本身的屬性。(2)一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端所對應(yīng)的關(guān)系模式合并。1.5數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)65如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性都轉(zhuǎn)換為關(guān)系的屬性,且關(guān)系的碼為n端實(shí)體的碼。如果與n端實(shí)體對應(yīng)的關(guān)系模式合并,則需在該關(guān)系模式的屬性中加入1端實(shí)體的碼和聯(lián)系本身的屬性。(3)一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式。與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性都轉(zhuǎn)換為關(guān)系的屬性,各實(shí)體的碼組成該關(guān)系的碼或關(guān)系碼的一部分。(4)三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式。與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性都轉(zhuǎn)換為關(guān)系的屬性,各實(shí)體的碼組成該關(guān)系的碼或關(guān)系碼的一部分。(5)具有相同碼的關(guān)系模式可以合并。1.5數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)66【例1.7】
1:1聯(lián)系的E-R圖如圖1.24所示,將E-R圖轉(zhuǎn)換為關(guān)系模型。圖1.241:1聯(lián)系的E-R圖示例方案1:聯(lián)系轉(zhuǎn)換為獨(dú)立的關(guān)系模式,則轉(zhuǎn)換后的關(guān)系模式為:學(xué)校(學(xué)校編號,名稱,地址)校長(校長編號,姓名,職稱)任職(學(xué)校編號,校長編號)方案2:聯(lián)系合并到”學(xué)?!标P(guān)系模式中,則轉(zhuǎn)換后的關(guān)系模式為:學(xué)校(學(xué)校編號,名稱,地址,校長編號)校長(校長編號,姓名,職稱)1.5數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)67方案3:聯(lián)系合并到”校長”關(guān)系模式中,則轉(zhuǎn)換后的關(guān)系模式為:學(xué)校(學(xué)校編號,名稱,地址)校長(校長編號,姓名,職稱,學(xué)校編號)在1:1聯(lián)系中,一般不將聯(lián)系轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,這是由于關(guān)系模式個(gè)數(shù)多,相應(yīng)的表也越多,查詢時(shí)會(huì)降低查詢效率?!纠?.8】1:n聯(lián)系的E-R圖如圖1.25所示,將E-R圖轉(zhuǎn)換為關(guān)系模型。圖1.251:n聯(lián)系的E-R圖示例1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)68方案1:聯(lián)系轉(zhuǎn)換為獨(dú)立的關(guān)系模式,則轉(zhuǎn)換后的關(guān)系模式為:班級(班級編號,教室號,人數(shù))學(xué)生(學(xué)號,姓名,性別,出生日期,專業(yè),總學(xué)分)屬于(學(xué)號,班級編號)方案2:聯(lián)系合并到n端實(shí)體對應(yīng)的關(guān)系模式中,則轉(zhuǎn)換后的關(guān)系模式為:班級(班級編號,教室號,人數(shù))學(xué)生(學(xué)號,姓名,性別,出生日期,班級編號)同樣原因,在1:n聯(lián)系中,一般也不將聯(lián)系轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式。
1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)69【例1.9】
m:n聯(lián)系的E-R圖如圖1.26所示,將E-R圖轉(zhuǎn)換為關(guān)系模型。圖1.26m:n聯(lián)系的E-R圖示例對于m:n聯(lián)系,必須轉(zhuǎn)換為獨(dú)立的關(guān)系模式,轉(zhuǎn)換后的關(guān)系模式為:學(xué)生(學(xué)號,姓名,性別,出生日期,專業(yè),總學(xué)分)課程(課程號,課程名,學(xué)分,教師號)選課(學(xué)號,課程號,成績)1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)70【例1.10】三個(gè)實(shí)體聯(lián)系的E-R圖如圖1.27所示,將E-R圖轉(zhuǎn)換為關(guān)系模型。三個(gè)實(shí)體聯(lián)系聯(lián)系,一般也轉(zhuǎn)換為獨(dú)立的關(guān)系模式,轉(zhuǎn)換后的關(guān)系模式為:供應(yīng)商(供應(yīng)商號,供應(yīng)商名,地址)項(xiàng)目(零件號,零件名,重量)零件(項(xiàng)目編號,項(xiàng)目名稱,開工日期)供應(yīng)(供應(yīng)商號,零件號,項(xiàng)目編號,零件數(shù))圖1.27三個(gè)實(shí)體聯(lián)系的E-R圖示例1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)71【例1.11】將圖1.22所示的改進(jìn)的全局E-R圖轉(zhuǎn)換為關(guān)系模式。將”學(xué)生”實(shí)體、”課程”實(shí)體、”教師”實(shí)體、”學(xué)院”實(shí)體分別設(shè)計(jì)成一個(gè)關(guān)系模式,將”擁有”聯(lián)系(1:n聯(lián)系)合并到”學(xué)生”實(shí)體(n端實(shí)體)對應(yīng)的關(guān)系模式中,將”選課”聯(lián)系和”講課”(m:n聯(lián)系)轉(zhuǎn)換為獨(dú)立的關(guān)系模式。學(xué)生(學(xué)號,姓名,性別,年齡,專業(yè),總學(xué)分,學(xué)院號)課程(課程號,課程名,學(xué)分)教師(教師號,姓名,性別,出生日期、職稱、學(xué)院名)學(xué)院(學(xué)院號,學(xué)院名,電話)選課(學(xué)號,課程號,成績)講課(教師號,課程號,上課地點(diǎn))1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)723.數(shù)據(jù)模型的優(yōu)化和設(shè)計(jì)外模式1)關(guān)系模型的優(yōu)化數(shù)據(jù)庫邏輯設(shè)計(jì)的結(jié)果不是唯一的,為了進(jìn)一步提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能,有必要根據(jù)應(yīng)用需求適當(dāng)修改、調(diào)整數(shù)據(jù)模型的結(jié)構(gòu),這就是數(shù)據(jù)模型的優(yōu)化,規(guī)范化理論是關(guān)系數(shù)據(jù)模型的優(yōu)化的指南和工具,具體方法如下:(1)確定數(shù)據(jù)依賴,考查各關(guān)系模式的函數(shù)依賴關(guān)系,以及不同關(guān)系模式屬性之間的數(shù)據(jù)依賴。(2)對各關(guān)系模式之間的數(shù)據(jù)依賴進(jìn)行最小化處理,消除冗余的聯(lián)系。(3)確定各關(guān)系模式屬于第幾范式,并根據(jù)需求分析階段的處理要求,確定是否要對這些關(guān)系模式進(jìn)行合并或分解。1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)73(4)對關(guān)系模式進(jìn)行必要的分解,以提高數(shù)據(jù)操作的效率和存儲(chǔ)空間的利用率,常用的分解方法有垂直分解和水平分解?!翊怪狈纸猓喊殃P(guān)系模式R的屬性分解成若干屬性子集合,定義每個(gè)屬性子集合為一個(gè)子關(guān)系。●
水平分解:把基本關(guān)系的元組分為若干元組子集合,定義每個(gè)子集合為一個(gè)子關(guān)系,以提高系統(tǒng)的效率。2)設(shè)計(jì)外模式將概念模型轉(zhuǎn)換為全局邏輯模型后,還應(yīng)該根據(jù)局部應(yīng)用需求,結(jié)合具體數(shù)據(jù)庫管理系統(tǒng)的特點(diǎn),設(shè)計(jì)用戶外模式。外模式設(shè)計(jì)的目標(biāo)是抽取或?qū)С瞿J降淖蛹?,以?gòu)造各不同用戶使用的局部數(shù)據(jù)邏輯結(jié)構(gòu)。外模式概念對應(yīng)關(guān)系數(shù)據(jù)庫的視圖概念,設(shè)計(jì)外模式是為了更好地滿足局部用戶的需求。1.5
數(shù)據(jù)庫設(shè)計(jì)Oracle數(shù)據(jù)庫教程(第2版)74定義數(shù)據(jù)庫的模式主要是從系統(tǒng)的時(shí)間效率、空間效率、易維護(hù)等角度出發(fā),而用戶外模式和模式是相對獨(dú)立的,所以在設(shè)計(jì)外模式時(shí),可以更多地考慮用戶的習(xí)慣和方便。(1)使用更符合用戶習(xí)慣的別名。(2)對不同級別的用戶定義不同的視圖,以保證系統(tǒng)的安全性。(3)簡化用戶對系統(tǒng)的使用,如將復(fù)雜的查詢定義為視圖等。1
溫馨提示
- 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院消毒隔離制度
- 醫(yī)院醫(yī)院信息網(wǎng)絡(luò)安全與保密制度制度
- 醫(yī)院醫(yī)療廢物處置設(shè)施效果評價(jià)制度
- 醫(yī)院醫(yī)學(xué)倫理審查制度
- 知情同意動(dòng)態(tài)監(jiān)督的信息化平臺(tái)構(gòu)建
- 眼科手術(shù)新技術(shù)視覺質(zhì)量改善的倫理審查要點(diǎn)
- 眼科手術(shù)并發(fā)癥的專家共識與法律指引
- 眼科手術(shù)中超聲能量損傷的預(yù)防措施
- 真實(shí)世界研究注冊與披露差異化策略
- 真實(shí)世界研究中Log-logistic模型選擇策略
- 部隊(duì)裝備換季保養(yǎng)課件
- DB 5303∕T 23-2024 《露地甜櫻桃種植技術(shù)規(guī)程》
- 《微壓富氧康養(yǎng)整體空間設(shè)備》
- 衛(wèi)星互聯(lián)網(wǎng)基礎(chǔ)知識培訓(xùn)課件
- 2025年敖漢旗就業(yè)服務(wù)中心招聘第一批公益性崗位人員的112人模擬試卷含答案詳解
- 婚姻家庭繼承實(shí)務(wù)講座
- 新內(nèi)瘺穿刺護(hù)理
- 鉗工個(gè)人實(shí)習(xí)總結(jié)
- 大健康養(yǎng)肝護(hù)肝針專題課件
- 道路高程測量成果記錄表-自動(dòng)計(jì)算
- 關(guān)于醫(yī)院“十五五”發(fā)展規(guī)劃(2026-2030)
評論
0/150
提交評論