版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)庫系統(tǒng)概論 本章目的在于使讀者對(duì)數(shù)據(jù)庫系統(tǒng)的基本知識(shí)能有一個(gè)較為全面的了解,為今后的學(xué)習(xí)和工作打下基礎(chǔ)。本章重點(diǎn)介紹了有關(guān)數(shù)據(jù)庫結(jié)構(gòu)和數(shù)據(jù)庫系統(tǒng)組織的基本知識(shí)和基本概念,以及常見的三種類型的數(shù)據(jù)庫系統(tǒng)的特點(diǎn)。重點(diǎn)介紹關(guān)系數(shù)據(jù)庫的有關(guān)知識(shí)。1.1 數(shù)據(jù)管理技術(shù)發(fā)展史 隨著生產(chǎn)力的不斷發(fā)展,社會(huì)的不斷進(jìn)步,人類對(duì)信息的依賴程度也在不斷地增加。數(shù)據(jù)作為表達(dá)信息的一種量化符號(hào),正在成為人們處理信息時(shí)重要的操作對(duì)象。所謂數(shù)據(jù)處理就是對(duì)數(shù)據(jù)的收集、整理、存儲(chǔ)、分類、排序、檢索、維護(hù)、加工、統(tǒng)計(jì)和傳輸?shù)纫幌盗泄ぷ魅窟^程的概述。數(shù)據(jù)處理的目的就是使我們能夠從浩瀚的信息數(shù)據(jù)海洋中,提取出有用的數(shù)據(jù)信息,作
2、為我們工作、生活等各方面的決策依據(jù)。數(shù)據(jù)管理則是指對(duì)數(shù)據(jù)的組織、編碼、分類、存儲(chǔ)、檢索和維護(hù),它是數(shù)據(jù)處理的一個(gè)重要內(nèi)容中心。數(shù)據(jù)處理工作由來以久,早在1880年美國進(jìn)行人口普查統(tǒng)計(jì)時(shí),就已采用穿孔卡片來存儲(chǔ)人口普查數(shù)據(jù),并采用機(jī)械設(shè)備來完成對(duì)這些普查數(shù)據(jù)所進(jìn)行的處理工作。電子計(jì)算機(jī)的出現(xiàn)以及其后其硬件、軟件的迅速發(fā)展,加之?dāng)?shù)據(jù)庫理論和技術(shù)的發(fā)展,為數(shù)據(jù)管理進(jìn)入一個(gè)革命性階段提供有力的支持。根據(jù)數(shù)據(jù)和應(yīng)用程序相互依賴關(guān)系、數(shù)據(jù)共享以及數(shù)據(jù)的操作方式,數(shù)據(jù)管理的發(fā)展可以分為三個(gè)具有代表性的階段,即人工管理階段、文件管理階段和數(shù)據(jù)庫管理階段?!?】人工管理階段 這一階段發(fā)生于六十年代以前,由于當(dāng)時(shí)
3、計(jì)算機(jī)硬件和軟件發(fā)展才剛剛起步,數(shù)據(jù)管理中全部工作,都必須要由應(yīng)用程序員自己設(shè)計(jì)程序完成去完成。由于需要與計(jì)算機(jī)硬件以及各外部存儲(chǔ)設(shè)備和輸入輸出設(shè)備直接打交道,程序員們常常需要編制大量重復(fù)的數(shù)據(jù)管理基本程序。數(shù)據(jù)的邏輯組織與它的物理組織基本上是相同的,因此當(dāng)數(shù)據(jù)的邏輯組織、物理組織或存儲(chǔ)設(shè)備發(fā)生變化時(shí),進(jìn)行數(shù)據(jù)管理工作的許多應(yīng)用程序就必須要進(jìn)行重新編制。這樣就給數(shù)據(jù)管理的維護(hù)工作帶來許多困難。并且由于一組數(shù)據(jù)常常只對(duì)應(yīng)于一種應(yīng)用程序,因此很難實(shí)現(xiàn)多個(gè)不同應(yīng)用程序間的數(shù)據(jù)資源共享。存在著大量重復(fù)數(shù)據(jù),信息資源浪費(fèi)嚴(yán)重?!?】文件管理階段 這一階段發(fā)生于六十年代,由于當(dāng)時(shí)計(jì)算機(jī)硬件的發(fā)展,以及系統(tǒng)
4、軟件尤其是文件系統(tǒng)的出現(xiàn)和發(fā)展,人們開始利用文件系統(tǒng)來幫助完成數(shù)據(jù)管理工作,具體講就是:數(shù)據(jù)以多種組織結(jié)構(gòu)(如順序文件組織、索引文件文件組織和直接存取文件組織等)的文件形式保存在外部存儲(chǔ)設(shè)備上,用戶通過文件系統(tǒng)而無需直接與外部設(shè)備打交道,以此來完成數(shù)據(jù)的修改、插入、刪除、檢索等管理操作;使用這種管理方式,不僅減輕進(jìn)行數(shù)據(jù)管理的應(yīng)用程序工作量,更重要地是,當(dāng)數(shù)據(jù)的物理組織或存儲(chǔ)設(shè)備發(fā)生變化時(shí),數(shù)據(jù)的邏輯組織可以不受任何影響,從而保證了基于數(shù)據(jù)邏輯組織所編制的應(yīng)用程序也可以不受硬件設(shè)備變化的影響。這樣就使得程序和數(shù)據(jù)之間具有了一定的相互獨(dú)立性。 但由于數(shù)據(jù)文件的邏輯結(jié)構(gòu)完全是根據(jù)應(yīng)用程序的具體要求
5、而設(shè)計(jì),它的管理與維護(hù)完全是由應(yīng)用程序本身來完成,因此數(shù)據(jù)文件的邏輯結(jié)構(gòu)與應(yīng)用程序密切相關(guān),當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)需要修改時(shí),應(yīng)用程序也就不可避免地需要進(jìn)行修改;同樣當(dāng)應(yīng)用程序需要進(jìn)行變動(dòng)時(shí),常常又會(huì)要求數(shù)據(jù)的邏輯結(jié)構(gòu)進(jìn)行相應(yīng)的變動(dòng)。在這種情況下,數(shù)據(jù)管理中的維護(hù)工作量也是較大的。更主要的是由于采用文件的形式來進(jìn)行數(shù)據(jù)管理工作,常常需要將一個(gè)完整的、相互關(guān)聯(lián)的數(shù)據(jù)集合,人為地分割成若干相互獨(dú)立的文件,以便通過基于文件系統(tǒng)的編程來實(shí)現(xiàn)來對(duì)它們的管理操作。這樣做同樣會(huì)導(dǎo)致數(shù)據(jù)的過多冗余和增加數(shù)據(jù)維護(hù)工作的復(fù)雜性。例如人事部門、教務(wù)部門和醫(yī)務(wù)部門對(duì)學(xué)生數(shù)據(jù)信息的管理,這三個(gè)部門中有許多數(shù)據(jù)是相同的,如姓名
6、、年齡、性別等,由于是各部門均是根據(jù)自己的要求,建立各自的數(shù)據(jù)文件和應(yīng)用程序,這樣不僅造成了大量的相同數(shù)據(jù)重復(fù)存儲(chǔ),而且在修改時(shí),常常需要同時(shí)修改三個(gè)文件中的數(shù)據(jù)項(xiàng),如修改學(xué)生年齡,此外若需要增加一個(gè)描述學(xué)生的數(shù)據(jù)項(xiàng),如通訊地址,那么所有的應(yīng)用程序就必須都要進(jìn)行相應(yīng)的修改。除此之外,采用文件系統(tǒng)來幫助進(jìn)行數(shù)據(jù)管理工作,在數(shù)據(jù)的安全和保密等方面,也難以采取有效的措施加以控制?!?】數(shù)據(jù)庫管理階段 1在不斷改進(jìn)和完善文件系統(tǒng)的過程中,從六十年代后期開始,人們逐步研究和發(fā)展了以數(shù)據(jù)的統(tǒng)一管理和數(shù)據(jù)共享為主要特征的數(shù)據(jù)庫系統(tǒng)。即在數(shù)據(jù)在統(tǒng)一控制之下,為盡可能多的應(yīng)用和用戶服務(wù),數(shù)據(jù)庫中的數(shù)據(jù)組織結(jié)構(gòu)與
7、數(shù)據(jù)庫的應(yīng)用程序相互間有較大的相對(duì)獨(dú)立性等。與以往前數(shù)據(jù)管理方法和技術(shù)相比,利用數(shù)據(jù)庫系統(tǒng)來進(jìn)行數(shù)據(jù)管理工作具有以下三個(gè)顯著特點(diǎn):(1)從整體角度組織數(shù)據(jù) 數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的最大差別就在于前者在描述數(shù)據(jù)時(shí),不僅僅是對(duì)數(shù)據(jù)本身進(jìn)行描述,而且對(duì)數(shù)據(jù)之間的相互聯(lián)系也進(jìn)行了描述。因此在組織數(shù)據(jù)時(shí)是從一個(gè)相對(duì)較高的整體角度進(jìn)行的,而不是僅僅局限于個(gè)別的數(shù)據(jù)管理應(yīng)用場合。如前面提到的人事部門、教務(wù)部門和醫(yī)務(wù)部門對(duì)學(xué)生數(shù)據(jù)的管理工作,在利用數(shù)據(jù)庫系統(tǒng)來進(jìn)行管理時(shí),若從整體考慮,其數(shù)據(jù)的組織結(jié)構(gòu)如圖1.1所示。 圖1.1 學(xué)生信息數(shù)據(jù)組織結(jié)構(gòu) 采用這種數(shù)據(jù)組織不僅可以有效地解決了文件系統(tǒng)的數(shù)據(jù)組織中所存在
8、的數(shù)據(jù)冗余以及數(shù)據(jù)一致性維護(hù)的問題。更主要的是它可以使人們從更高的全局角度出發(fā),合理地組織數(shù)據(jù),從而有利于更大范圍內(nèi)的數(shù)據(jù)資源的共享,提高信息的使用效率。(2)數(shù)據(jù)可為多個(gè)應(yīng)用服務(wù) 正因?yàn)閿?shù)據(jù)庫中的數(shù)據(jù)是從整體角度進(jìn)行組織的,因此,數(shù)據(jù)庫中所存儲(chǔ)的數(shù)據(jù)往往就不僅局限于只為一二個(gè)應(yīng)用提供服務(wù),而是在更大范圍內(nèi)為僅可能多的應(yīng)用提供服務(wù),如圖1.1所示的一個(gè)數(shù)據(jù)庫中所存儲(chǔ)的數(shù)據(jù),就至少可以為三個(gè)部門的應(yīng)用提供服務(wù)。而實(shí)際上如圖1.1所示的數(shù)據(jù)組織結(jié)構(gòu)僅僅只是一個(gè)學(xué)校數(shù)據(jù)管理數(shù)據(jù)庫中的一小部分。與此同時(shí)由于數(shù)據(jù)庫系統(tǒng)是以多級(jí)(層)組織模式對(duì)數(shù)據(jù)進(jìn)行組織的,各級(jí)(層)模式之間的映射是由數(shù)據(jù)庫系統(tǒng)自己完成
9、的,這就使得數(shù)據(jù)與程序之間可以具有較高的物理和邏輯相對(duì)獨(dú)立性。正是這一點(diǎn),給數(shù)據(jù)庫中的數(shù)據(jù)為多個(gè)應(yīng)用提供服務(wù)奠定了基礎(chǔ)。事實(shí)上數(shù)據(jù)庫的規(guī)模越大,所能夠提供的應(yīng)用服務(wù)就可以越多,也就越能體現(xiàn)出數(shù)據(jù)庫在數(shù)據(jù)管理中的優(yōu)勢。當(dāng)然這只是相對(duì)而言,隨著數(shù)據(jù)庫中數(shù)據(jù)規(guī)模的擴(kuò)大,數(shù)據(jù)庫應(yīng)用系統(tǒng)的制作和維護(hù)的工作也在迅速增加。(3)有一個(gè)數(shù)據(jù)庫系統(tǒng)的管理軟件 任何數(shù)據(jù)庫系統(tǒng)都包含一個(gè)管理軟件,即數(shù)據(jù)庫系統(tǒng)的管理軟件,通常又稱為數(shù)據(jù)庫管理系統(tǒng),它負(fù)責(zé)統(tǒng)一管理數(shù)據(jù)庫系統(tǒng)中所有數(shù)據(jù)資源,是數(shù)據(jù)庫系統(tǒng)與用戶應(yīng)用之間的接口,通過它,用戶可以不必要了解過多的計(jì)算機(jī)硬件、軟件和數(shù)據(jù)庫本身許多專業(yè)知識(shí),更不用去了解數(shù)據(jù)庫系統(tǒng)是
10、如何完成數(shù)據(jù)管理工作的具體細(xì)節(jié),如文件如何打開、關(guān)閉、讀、寫等等,就可以通過編寫一些較為簡單數(shù)據(jù)庫應(yīng)用程序,很方便地完成在較高級(jí)別邏輯組織基礎(chǔ)上的數(shù)據(jù)管理工作。除此之外,數(shù)據(jù)庫管理系統(tǒng)還負(fù)責(zé)完成在對(duì)數(shù)據(jù)庫進(jìn)行并發(fā)訪問時(shí),保證數(shù)據(jù)一致性的并發(fā)控制工作;保證數(shù)據(jù)安全性的訪問控制工作;以及在數(shù)據(jù)庫系統(tǒng)出現(xiàn)故障時(shí),提供保證數(shù)據(jù)一致性和完整性的恢復(fù)機(jī)制等諸多數(shù)據(jù)庫系統(tǒng)本身的各種管理控制工作。因此這里也可以看出,數(shù)據(jù)庫管理系統(tǒng)功能的強(qiáng)弱及其各項(xiàng)性能指標(biāo)的好壞,是衡量數(shù)據(jù)庫系統(tǒng)質(zhì)量的一個(gè)極其重要的因素。 利用數(shù)據(jù)庫系統(tǒng)進(jìn)行數(shù)據(jù)管理工作,不僅可以保證數(shù)據(jù)的物理組織結(jié)構(gòu)和存儲(chǔ)設(shè)備與數(shù)據(jù)庫應(yīng)用程序之間保持相互獨(dú)立
11、性;同時(shí)也可以保證數(shù)據(jù)的邏輯組織結(jié)構(gòu)與數(shù)據(jù)庫應(yīng)用程序之間保持最大可能的相互獨(dú)立性,即當(dāng)數(shù)據(jù)的邏輯組織結(jié)構(gòu)發(fā)生變化時(shí),數(shù)據(jù)庫應(yīng)用程序的變動(dòng)被限制在最小的范圍內(nèi)。由此可大大地減少數(shù)據(jù)庫應(yīng)用程序的開發(fā)與維護(hù)的工作量。 在數(shù)據(jù)庫管理階段,根據(jù)數(shù)據(jù)庫系統(tǒng)本身所支持的數(shù)據(jù)模型的特點(diǎn)及所采用的相應(yīng)數(shù)據(jù)庫系統(tǒng)技術(shù),可以認(rèn)為數(shù)據(jù)庫管理到目前為止已發(fā)展經(jīng)歷了三代,即層次網(wǎng)狀模型代、關(guān)系模型代和面向?qū)ο竽P痛?(1)層次網(wǎng)狀模型代:流行于六十至七十年代,在這一代中的數(shù)據(jù)庫系統(tǒng)所支持的數(shù)據(jù)模型均是層次模型或網(wǎng)狀模型。世界上第一個(gè)數(shù)據(jù)庫系統(tǒng)是于1964年由美國通用電氣公司開發(fā)成功的ids(integrated dat
12、a store),它就是基于網(wǎng)狀模型的數(shù)據(jù)庫系統(tǒng)。ibm公司于六十年代末推出了第一個(gè)商品化的層次數(shù)據(jù)庫系統(tǒng)ims(information management sytem),它們的出現(xiàn)與應(yīng)用為數(shù)據(jù)庫技術(shù)的發(fā)展奠定了基礎(chǔ)。 (2)關(guān)系模型代:流行于七十至八十年代,在這一代中的數(shù)據(jù)庫系統(tǒng)所支持的數(shù)據(jù)的數(shù)據(jù)模型均是關(guān)系模型。以關(guān)系(表)形式組織數(shù)據(jù)。1970年codd提出了關(guān)系數(shù)據(jù)模型,由于其具有嚴(yán)格的數(shù)學(xué)基礎(chǔ),抽象級(jí)別較高,且簡單清晰,便于理解應(yīng)用。到了七十年代末,出現(xiàn)了不少關(guān)系數(shù)據(jù)庫系統(tǒng),其中具有代表性應(yīng)首推ibm公司推出的sql/ds和db2兩個(gè)商品化關(guān)系數(shù)據(jù)庫系統(tǒng)。進(jìn)行八十年代以后,關(guān)系數(shù)據(jù)
13、庫系統(tǒng)已成為數(shù)據(jù)庫系統(tǒng)發(fā)展的主流,幾乎所有新推出的數(shù)據(jù)庫系統(tǒng)產(chǎn)品都是關(guān)系型的,它們中不僅有用于大型機(jī)和小型機(jī)數(shù)據(jù)庫產(chǎn)品,而且有可用于微機(jī)的數(shù)據(jù)庫產(chǎn)品。市場上開始出現(xiàn)關(guān)系數(shù)據(jù)庫的系列產(chǎn)品,這其中發(fā)行量較大且在我國用得較多的有oracle、sybase、sysbase、informix、foxpro等。隨著微機(jī)和計(jì)算機(jī)網(wǎng)絡(luò)的廣泛普及和應(yīng)用,分布式數(shù)據(jù)庫系統(tǒng)在八十年代后期,開始得到很大發(fā)展。其理論和技術(shù)日趨成熟。目前幾乎所有分布式數(shù)據(jù)庫系統(tǒng)均是關(guān)系型的,而且?guī)缀跛兄饕P(guān)系數(shù)據(jù)庫系統(tǒng)均已被擴(kuò)充為分布式數(shù)據(jù)庫系統(tǒng)。 (3)面向?qū)ο蟠?開始九十年代,在這一代中的數(shù)據(jù)庫系統(tǒng)支持面向?qū)ο蟮臄?shù)據(jù)模型。它是數(shù)據(jù)
14、庫技術(shù)與面向?qū)ο蟪绦蛟O(shè)計(jì)方法相結(jié)合的產(chǎn)物。作為新一代數(shù)據(jù)庫系統(tǒng),現(xiàn)在已有了一些商品化系統(tǒng)。但其具體應(yīng)用尚不多。1.2 數(shù)據(jù)庫系統(tǒng) 本節(jié)主要介紹有關(guān)數(shù)據(jù)庫結(jié)構(gòu)和數(shù)據(jù)庫系統(tǒng)組織的一些基本知識(shí)和概念,使讀者對(duì)數(shù)據(jù)庫系統(tǒng)的內(nèi)涵有一個(gè)較為清楚的認(rèn)識(shí)。1.2.1 數(shù)據(jù)庫系統(tǒng)概念 由于數(shù)據(jù)庫系統(tǒng)是一個(gè)由許多基本概念、技術(shù)方法和其應(yīng)用對(duì)象所組成的復(fù)雜的有機(jī)整體。很難用一兩句話將其描述清楚。但為了使讀者對(duì)它有一個(gè)總體的了解,首先這里我們試著給出一個(gè)關(guān)于數(shù)據(jù)庫系統(tǒng)的定義,即數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)庫是一個(gè)已被規(guī)格化和結(jié)構(gòu)化且相互關(guān)聯(lián)的數(shù)據(jù)集合,這些數(shù)據(jù)中不存在有害的或無意義的冗余;數(shù)據(jù)的組織與存儲(chǔ)結(jié)構(gòu)與使用這些數(shù)據(jù)的程
15、序相互獨(dú)立;數(shù)據(jù)庫中的數(shù)據(jù)可同時(shí)為多個(gè)應(yīng)用服務(wù);數(shù)據(jù)庫中的數(shù)據(jù)定義、輸入、修改和檢索等所有操作均是按一種公用的且可控的方式進(jìn)行。根據(jù)這一數(shù)據(jù)庫定義以及實(shí)際應(yīng)用的具體數(shù)據(jù)庫系統(tǒng)的情況,我們可以認(rèn)為一個(gè)數(shù)據(jù)庫系統(tǒng)實(shí)際上是由三部分內(nèi)容組成,它們是數(shù)據(jù)庫、多種應(yīng)用和數(shù)據(jù)庫管理系統(tǒng)。這三部分之間的相互關(guān)系如圖1.2所示。(1)數(shù)據(jù)庫:相互關(guān)聯(lián)的且具有最小冗余的數(shù)據(jù)在其中按照一定物理組織結(jié)構(gòu)存放,并且從用戶和數(shù)據(jù)庫管理系統(tǒng)角度來看,這些數(shù)據(jù)又是按一定邏輯結(jié)構(gòu)組織的。這種物理組織結(jié)構(gòu)和邏輯組織結(jié)構(gòu)在最大程度上與用戶所編制的應(yīng)用程序相互獨(dú)立。(2)多種應(yīng)用:數(shù)據(jù)庫中的數(shù)據(jù),在數(shù)據(jù)庫管理系統(tǒng)的控制與管理之下,可
16、以同時(shí)為多種不同內(nèi)容的應(yīng)用提供服務(wù),即可以為多個(gè)不同目的用戶服務(wù),各用戶所操作使用的數(shù)據(jù)可以是相互交叉的。用戶的操作方式既可以按以數(shù)據(jù)輸入/輸出和數(shù)據(jù)維護(hù)為主的數(shù)據(jù)流量較大的批處理方式進(jìn)行;也可以按以查詢?yōu)橹鞯臄?shù)據(jù)流量較小的聯(lián)機(jī)處理方式進(jìn)行,必要時(shí)還可以通過編程來完成對(duì)數(shù)據(jù)庫中數(shù)據(jù)的各種操作。(3)數(shù)據(jù)庫管理系統(tǒng):它一方面負(fù)責(zé)對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行管理和維護(hù);一方面為用戶操作數(shù)據(jù)庫中的數(shù)據(jù)提供一種公用的操作方法,接收用戶的操作命令,幫助完成有關(guān)的對(duì)數(shù)據(jù)庫的操作并保障數(shù)據(jù)庫的安全。 根據(jù)對(duì)數(shù)據(jù)庫的定義以及數(shù)據(jù)庫系統(tǒng)基本組成及作用的描述,我們認(rèn)為一個(gè)的數(shù)據(jù)庫系統(tǒng)應(yīng)該具有的以下五個(gè)基本特點(diǎn):【1】由于
17、數(shù)據(jù)庫系統(tǒng)是從整體角度考慮數(shù)據(jù)的組織,因此它必須有能力描述能夠反映客觀事物及其相互聯(lián)系的復(fù)雜數(shù)據(jù)模型,使用它能夠?qū)?shù)據(jù)本身及相互間的各種關(guān)系進(jìn)行充分描述,這也是人們?yōu)槭裁匆捎脭?shù)據(jù)庫系統(tǒng)來進(jìn)行數(shù)據(jù)管理的主要原因之一。目前數(shù)據(jù)庫系統(tǒng)共提供了四種數(shù)據(jù)模型,它們是層次數(shù)據(jù)模型、網(wǎng)狀數(shù)據(jù)模型、關(guān)系數(shù)據(jù)模型和對(duì)象數(shù)據(jù)模型,一種類型數(shù)據(jù)庫系統(tǒng)通常只提供上述其中一種數(shù)據(jù)模型描述方法,即只支持其中一種數(shù)據(jù)模型的數(shù)據(jù)邏輯組織結(jié)構(gòu)。圖1.2 數(shù)據(jù)庫系統(tǒng)組成【2】數(shù)據(jù)庫中數(shù)據(jù)的獨(dú)立性。為了說明這一點(diǎn),首先我們介紹兩個(gè)概念,(1)數(shù)據(jù)在物理存儲(chǔ)設(shè)備上的組織結(jié)構(gòu)被稱為數(shù)據(jù)的物理組織;(2)數(shù)據(jù)在用戶或應(yīng)用程序面前所表現(xiàn)
18、出的組織結(jié)構(gòu)被稱為數(shù)據(jù)的邏輯組織;一種數(shù)據(jù)的邏輯組織,可以采用不同的物理組織來實(shí)現(xiàn),物理組織的好壞影響著系統(tǒng)的性能和效率。在運(yùn)行階段中,由于性能的要求或存儲(chǔ)設(shè)備的改變,從而引起數(shù)據(jù)物理組織的改變,這種改變稱為數(shù)據(jù)的再組織。用戶在編制應(yīng)用程序時(shí),則是根據(jù)數(shù)據(jù)的邏輯組織對(duì)數(shù)據(jù)進(jìn)行操作的。因此數(shù)據(jù)物理組織的變化,不會(huì)影響數(shù)據(jù)的邏輯組織,因而也就不會(huì)影響已有的應(yīng)用程序,這種情況就被稱為數(shù)據(jù)的物理獨(dú)立性;而數(shù)據(jù)的邏輯獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯組織發(fā)生變化時(shí),如數(shù)據(jù)模型中增加了新的記錄類型,某一記錄類型中增加了新的數(shù)據(jù)項(xiàng)等,原有應(yīng)用程序的執(zhí)行不受影響或影響最小。數(shù)據(jù)的獨(dú)立性,包括物理和邏輯的獨(dú)立性,都是由數(shù)據(jù)
19、庫管理系統(tǒng)進(jìn)行維護(hù)的?!?】數(shù)據(jù)共享,由于數(shù)據(jù)庫是從整體的角度對(duì)數(shù)據(jù)進(jìn)行組織的,并在保證數(shù)據(jù)一致性的情形之下,使數(shù)據(jù)庫中的數(shù)據(jù)為盡可能多的用戶提供應(yīng)用服務(wù)。這些用戶所使用的數(shù)據(jù)可以是交叉的,即數(shù)據(jù)可以共享。如果數(shù)據(jù)不能共享,數(shù)據(jù)庫中則必然會(huì)出現(xiàn)大量的冗余數(shù)據(jù),這樣不僅造成存儲(chǔ)空間的浪費(fèi),更主要的是由此可能帶來數(shù)據(jù)不一致的隱患。【4】數(shù)據(jù)庫系統(tǒng)的安全可靠與完整,一個(gè)數(shù)據(jù)庫系統(tǒng)的可靠性體現(xiàn)在它的軟件系統(tǒng)運(yùn)行故障率很小以及在數(shù)據(jù)庫系統(tǒng)由于各種意外而出現(xiàn)故障時(shí),數(shù)據(jù)庫中的數(shù)據(jù)的損失最??;安全性是指數(shù)據(jù)庫系統(tǒng)對(duì)其所存儲(chǔ)的數(shù)據(jù)的保護(hù)能力,能夠有效地防止數(shù)據(jù)有意無意地泄露或篡改,控制數(shù)據(jù)的授權(quán)訪問等。而數(shù)據(jù)
20、庫系統(tǒng)的完整性則是指在多用戶操作數(shù)據(jù)情況下,數(shù)據(jù)能夠保持一致性。這些特性可以從以下幾個(gè)方面進(jìn)行說明:1安全性控制 安全性控制主要指的是數(shù)據(jù)庫的保密性。并不是每個(gè)用戶都能夠存取數(shù)據(jù)庫中所有數(shù)據(jù)的,負(fù)責(zé)人和全體工作人員允許掌握的數(shù)據(jù)范圍顯然是有區(qū)別的,數(shù)據(jù)庫系統(tǒng)把各用戶存取數(shù)據(jù)的權(quán)利分成若干等級(jí),如教學(xué)人員作為一個(gè)用戶可以登錄學(xué)生的成績,而學(xué)生作為一個(gè)用戶則僅可以查閱成績而無法對(duì)它進(jìn)行修改或刪除。通過對(duì)各個(gè)用戶授于不同的使用權(quán)限,以確保數(shù)據(jù)庫免遭損害和被非法使用,通常是通過采用口令密碼以及數(shù)據(jù)庫中數(shù)據(jù)訪問授權(quán)等方法對(duì)使用者操作數(shù)據(jù)的合法權(quán)進(jìn)行檢驗(yàn),以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫中數(shù)據(jù)安全性的保護(hù)控制。2完整性控制
21、 所謂完整性包括數(shù)據(jù)的正確性、有效性和相容性。正確的數(shù)據(jù)不一定是有效的。如若用兩位阿拉伯?dāng)?shù)字來表示月份,在輸入14來代表月份時(shí)顯然是無效的。數(shù)據(jù)庫系統(tǒng)應(yīng)提供盡可能多的檢驗(yàn)措施,以確保數(shù)據(jù)庫中的數(shù)據(jù)滿足用戶所要求的各種約束要求。3并發(fā)控制 在多用戶操作使用數(shù)據(jù)庫系統(tǒng)的情況下,不同用戶并行地操作數(shù)據(jù)庫就可能引起對(duì)數(shù)據(jù)庫的干擾,從而使得數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生不一致的問題。如當(dāng)甲用戶從數(shù)據(jù)庫中預(yù)定了僅剩的一張機(jī)票之后,若在數(shù)據(jù)庫尚來不及將剩余的機(jī)票數(shù)改為零時(shí),乙用戶又請(qǐng)求訂票時(shí)怎么辦?顯然對(duì)這種并發(fā)的操作要采取某種控制措施,最常用的方法是封鎖技術(shù),以排除和避免這種錯(cuò)誤的發(fā)生,保證數(shù)據(jù)庫中數(shù)據(jù)的操作能夠正確
22、完成執(zhí)行。4故障的發(fā)現(xiàn)與恢復(fù) 由于數(shù)據(jù)庫系統(tǒng)在運(yùn)行過程中很難保證不產(chǎn)生故障、出現(xiàn)意義或受到破壞,而且往往這些情況的發(fā)生的時(shí)間都是隨機(jī)的,如斷電、用戶誤操作等,而重建一個(gè)數(shù)據(jù)庫往往要花費(fèi)很大的精力和代價(jià),有時(shí)甚至是不可能的,因此數(shù)據(jù)庫系統(tǒng)應(yīng)提供應(yīng)急保護(hù)設(shè)施,一旦系統(tǒng)的軟硬件發(fā)生故障或用戶誤操作導(dǎo)致系統(tǒng)異常時(shí),系統(tǒng)應(yīng)能夠以盡量小的代價(jià),盡快地恢復(fù)數(shù)據(jù)庫的內(nèi)容和系統(tǒng)的正常運(yùn)行?!?】良好的人機(jī)接口與性能,任何數(shù)據(jù)庫系統(tǒng)最終都是要和用戶打交道,系統(tǒng)所具有的各種功能最終都需要由用戶來進(jìn)行操作使用。簡單易學(xué)、操作簡便和用戶界面友好是任何一個(gè)數(shù)據(jù)庫系統(tǒng)所必須的。此外系統(tǒng)的響應(yīng)速度,單位時(shí)間內(nèi)數(shù)據(jù)的吞吐量也是
23、衡量數(shù)據(jù)庫性能重要指標(biāo)。1.2.2 數(shù)據(jù)庫結(jié)構(gòu) 在上一小節(jié),我們介紹了數(shù)據(jù)庫系統(tǒng)所涉及的三個(gè)基本成分以及數(shù)據(jù)庫系統(tǒng)所應(yīng)具有的五個(gè)特點(diǎn),在這一小節(jié)中,我們將略為詳盡地介紹數(shù)據(jù)庫系統(tǒng)的主要組成之一,數(shù)據(jù)庫的有關(guān)知識(shí)。在數(shù)據(jù)庫技術(shù)中,為了提高數(shù)據(jù)庫中數(shù)據(jù)的邏輯獨(dú)立性和物理獨(dú)立性,采用了分級(jí)(層)方法,將數(shù)據(jù)庫中數(shù)據(jù)的組織結(jié)構(gòu)劃分成多個(gè)級(jí)(層)。根據(jù)美國國家標(biāo)準(zhǔn)協(xié)會(huì)(ansi)所提出的報(bào)告,數(shù)據(jù)庫的數(shù)據(jù)組織結(jié)構(gòu)可以分為三個(gè)相互關(guān)聯(lián)的層次,它們分別是概念層數(shù)據(jù)模式、用戶層數(shù)據(jù)模式和物理層數(shù)據(jù)模式。【1】概念層數(shù)據(jù)模式,又稱為模式,它是對(duì)數(shù)據(jù)庫中數(shù)據(jù)整體邏輯結(jié)構(gòu)的描述,它是對(duì)數(shù)據(jù)庫中所有數(shù)據(jù)項(xiàng)、記錄類型以
24、及各記錄類型之間的相互關(guān)系的描述。這里需要說明的是,這種描述僅僅是一種邏輯組織結(jié)構(gòu)的描述,是面向用戶需要而提出的。而非是真正的數(shù)據(jù)存儲(chǔ)組織結(jié)構(gòu)。提供這一層次的數(shù)據(jù)模式描述,主要是為了數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì)者,在對(duì)與應(yīng)用有關(guān)的所有用戶的需求進(jìn)行統(tǒng)一綜合考慮之后提出的,它能夠從總體上,將這些需求所涉及到的數(shù)據(jù)及其它們間的相互聯(lián)系,有機(jī)地結(jié)合成為一個(gè)邏輯整體。概念層數(shù)據(jù)模式的設(shè)計(jì)是數(shù)據(jù)庫設(shè)計(jì)的最基本也是最重要的任務(wù)。【2】用戶層數(shù)據(jù)模式,又稱為外模式或子模式,它是對(duì)以用戶為對(duì)象使用數(shù)據(jù)庫所涉及到的所有數(shù)據(jù)局部邏輯結(jié)構(gòu)的描述。它是模式一個(gè)子集或者是一個(gè)映射,一個(gè)數(shù)據(jù)庫只有一個(gè)模式,但通常都對(duì)應(yīng)著多個(gè)子模
25、式。子模式所包含的數(shù)據(jù)之間容許有重疊,也容許多個(gè)用戶共用同一個(gè)子模式。提供這一層次的數(shù)據(jù)模式描述,有以下優(yōu)點(diǎn):1用戶只要按照描述自己所使用數(shù)據(jù)的子模式編寫應(yīng)用程序或輸入操作命令,就可以完成滿足自己要求的數(shù)據(jù)庫操縱工作。而無需了解整體數(shù)據(jù)模式或數(shù)據(jù)的存儲(chǔ)組織結(jié)構(gòu),從而是用戶接口變得簡單。2保證了數(shù)據(jù)獨(dú)立性。由于用戶的數(shù)據(jù)庫應(yīng)用編程僅僅是依據(jù)子模式的數(shù)據(jù)邏輯結(jié)構(gòu)的描述,而子模式一般都是模式的一個(gè)真子集,因此若因需要而對(duì)模式所描述的數(shù)據(jù)邏輯結(jié)構(gòu)進(jìn)行部分修改或擴(kuò)充時(shí),如增加新的數(shù)據(jù)項(xiàng)或者增加新的記錄類型等,只要不影響子模式從模式中的原有的映射關(guān)系,那么用戶依據(jù)子模式所開發(fā)的應(yīng)用程序,則就不受模式變動(dòng)的
26、任何影響。所以提供模式與子模式這兩層數(shù)據(jù)邏輯結(jié)構(gòu)的描述,就可以較好地保證數(shù)據(jù)的邏輯獨(dú)立性。3數(shù)據(jù)能夠被較好地共享。由于同一模式可以產(chǎn)生許多不同的子模式,這些子模式所描述的數(shù)據(jù)可以來源于模式所描述的全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)中各種數(shù)據(jù)項(xiàng)或記錄類型,因此這樣做,這樣就可以很方便地實(shí)現(xiàn)數(shù)據(jù)的共享,也就大大減少了數(shù)據(jù)可能存在的冗余,從而有利于保證數(shù)據(jù)的一致性、完整性和正確性。4有利于保證數(shù)據(jù)的安全和保密。由于用戶是通過其相應(yīng)的應(yīng)用程序?qū)?shù)據(jù)庫中數(shù)據(jù)進(jìn)行操作,因此他只能操作其子模式所描述范圍內(nèi)的數(shù)據(jù),而無法接觸到其它用戶及其子模式所描述的數(shù)據(jù),由此就可以保證數(shù)據(jù)庫中的數(shù)據(jù)具有較好的安全性?!?】物理層數(shù)據(jù)模式,又
27、稱為內(nèi)模式或物理模式。它是對(duì)數(shù)據(jù)庫中所有數(shù)據(jù)在物理設(shè)備上實(shí)際存儲(chǔ)的組織結(jié)構(gòu)的描述。數(shù)據(jù)庫數(shù)據(jù)根據(jù)這一層數(shù)據(jù)模式的描述,被存放到若干按各種組織方式建立起來的物理文件中,對(duì)這些物理文件的所有存取訪問的控制都是由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一控制的。管理系統(tǒng)負(fù)責(zé)完成從概念層數(shù)據(jù)模式到物理層數(shù)據(jù)模式之間的數(shù)據(jù)映射,這樣由于所有的數(shù)據(jù)庫應(yīng)用程序或服務(wù)所涉及到數(shù)據(jù)又都是根據(jù)模式的數(shù)據(jù)描述得到的,因此當(dāng)數(shù)據(jù)庫數(shù)據(jù)的物理組織結(jié)構(gòu)發(fā)生變化時(shí),概念層數(shù)據(jù)模式描述通常無需修改,同樣也就保證了與模式相關(guān)聯(lián)的子模式和用戶應(yīng)用程序也無需修改,從而使得數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)也具有的物理獨(dú)立性。圖1.3 數(shù)據(jù)庫結(jié)構(gòu)各模式間關(guān)系 由于一個(gè)數(shù)據(jù)庫
28、是采用上述的三個(gè)層結(jié)構(gòu)方式對(duì)其中的數(shù)據(jù)組織進(jìn)行描述的,從而較好地保證了數(shù)據(jù)的邏輯獨(dú)立性和物理獨(dú)立性,方便了用戶對(duì)數(shù)據(jù)庫中數(shù)據(jù)的操作使用,減少了數(shù)據(jù)冗余。這三層模式之間的相互關(guān)系如圖1.3所示。由于數(shù)據(jù)庫中數(shù)據(jù),實(shí)際上是按照物理層數(shù)據(jù)模式進(jìn)行存儲(chǔ)的,而概念層數(shù)據(jù)模式和用戶層數(shù)據(jù)模式都只是對(duì)物理層數(shù)據(jù)模式描述的數(shù)據(jù)的一種逐級(jí)(層)地邏輯抽象,用戶在對(duì)數(shù)據(jù)庫進(jìn)行操作時(shí),都必須通過數(shù)據(jù)庫管理系統(tǒng),來完成從用戶層數(shù)據(jù)模式到概念層數(shù)據(jù)模式之間、概念層數(shù)據(jù)模式到物理層數(shù)據(jù)模式之間這兩種映射,當(dāng)然這兩種映射是由管理系統(tǒng)自動(dòng)完成的,對(duì)用戶是透明的。 目前實(shí)際應(yīng)用的中高檔數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)組織結(jié)構(gòu)基本上是按照上述三
29、層模式標(biāo)準(zhǔn),來描述數(shù)據(jù)組織的。也有一些中低檔數(shù)據(jù)庫系統(tǒng),為了方便一般用戶的操作使用,對(duì)上述三層模式標(biāo)準(zhǔn)進(jìn)行了一些簡化,它們往往采用一層或二層模式來描述數(shù)據(jù)組織結(jié)構(gòu),通常都略去了物理層的數(shù)據(jù)模式描述。1.2.3 數(shù)據(jù)庫系統(tǒng) 數(shù)據(jù)庫系統(tǒng)的核心是數(shù)據(jù)庫管理系統(tǒng)(database management system,簡稱dbms),在它的控制和幫助下,用戶可以建立、使用、修改和維護(hù)數(shù)據(jù)庫中數(shù)據(jù)。數(shù)據(jù)庫管理系統(tǒng)是建立在操作系統(tǒng)之上的應(yīng)用軟件平臺(tái)。它一般具有以下三個(gè)主要功能:(1)提供操作數(shù)據(jù)庫的用戶高級(jí)接口。具體講就是(a)提供數(shù)據(jù)描述語言,供用戶對(duì)整個(gè)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行各種邏輯和物理組織結(jié)構(gòu)描述,而這
30、些組織結(jié)構(gòu)的具體實(shí)現(xiàn)細(xì)節(jié),則由dbms完成,用戶不必關(guān)心。(b)提供數(shù)據(jù)操縱語言,供用戶對(duì)數(shù)據(jù)庫中數(shù)據(jù)按照其定義邏輯組織結(jié)構(gòu)進(jìn)行各種操作,如插入、刪除、修改和查詢等,這些操作的的具體實(shí)現(xiàn)細(xì)節(jié),則也由dbms完成,用戶不必關(guān)心。(c)同時(shí)還可能提供其它工具,如用戶界面生成工具、報(bào)表生成工具等,幫助用戶更加容易地對(duì)數(shù)據(jù)庫的操縱進(jìn)行編程。(2)管理數(shù)據(jù)庫。它主要包括以下功能:(a)控制整個(gè)數(shù)據(jù)庫系統(tǒng)的運(yùn)行;(b)控制用戶對(duì)數(shù)據(jù)庫的并發(fā)性操作;(c)執(zhí)行對(duì)數(shù)據(jù)庫中數(shù)據(jù)的安全、保密、有效性和完整性檢驗(yàn);(d)實(shí)施對(duì)數(shù)據(jù)庫中數(shù)據(jù)的檢索、插入、刪除、修改等操作。(e)維護(hù)數(shù)據(jù)庫數(shù)據(jù)組織結(jié)構(gòu)的完整和一致。(3
31、)維護(hù)數(shù)據(jù)庫,主要包括:(a)初始化時(shí)數(shù)據(jù)庫數(shù)據(jù)的裝入;(b)運(yùn)行時(shí)記錄下與用戶、操作、系統(tǒng)狀態(tài)和結(jié)果等信息的工作日志;(c)監(jiān)視數(shù)據(jù)庫性能;在性能變壞時(shí),重新組織數(shù)據(jù)庫;(d)在數(shù)據(jù)庫系統(tǒng)的硬件或軟件發(fā)生故障后,對(duì)數(shù)據(jù)庫中受破壞的數(shù)據(jù)進(jìn)行恢復(fù)。 這一小節(jié),將略為詳盡地介紹與數(shù)據(jù)庫管理軟件有關(guān)的一些基本情況。(一)數(shù)據(jù)庫系統(tǒng)語言 數(shù)據(jù)庫系統(tǒng)語言是用戶與數(shù)據(jù)庫系統(tǒng)進(jìn)行交互操作的主要工具,是連接用戶與數(shù)據(jù)庫系統(tǒng)的橋梁。數(shù)據(jù)庫語言功能的強(qiáng)弱直接影響到用戶使用數(shù)據(jù)庫系統(tǒng)的方便程度。數(shù)據(jù)庫系統(tǒng)語言通常包括數(shù)據(jù)庫數(shù)據(jù)描述語言ddl(data description language)和數(shù)據(jù)庫數(shù)據(jù)操作語言d
32、ml(data manipulation language)這兩種語言。數(shù)據(jù)描述語言用于描述數(shù)據(jù)庫中各種模式的定義;而數(shù)據(jù)操作語言則是用于描述對(duì)數(shù)據(jù)庫中數(shù)據(jù)所要進(jìn)行的各種操作。這里我們將概述這兩種語言一些基本功能?!?】數(shù)據(jù)描述語言 數(shù)據(jù)描述語言是建立和使用數(shù)據(jù)庫的重要工具,它是用于描述數(shù)據(jù)庫各層數(shù)據(jù)模式描述的語言。數(shù)據(jù)庫管理系統(tǒng)將對(duì)用戶用該語言所描述的各層數(shù)據(jù)模式,進(jìn)行編譯,產(chǎn)生可供數(shù)據(jù)庫系統(tǒng)操作時(shí)所使用的目標(biāo)模式。對(duì)應(yīng)著數(shù)據(jù)庫的模式、子模式和內(nèi)模式,數(shù)據(jù)描述語言又可分為模式描述語言、子模式描述語言和內(nèi)模式描述語言。它們各自的功能如下:(1)模式描述語言,它是用來描述數(shù)據(jù)庫概念層數(shù)據(jù)模式的,
33、即用于描述數(shù)據(jù)庫中所有數(shù)據(jù)以及它們間相互關(guān)系的特性。用模式描述語言寫出的數(shù)據(jù)庫全體數(shù)據(jù)的邏輯組織結(jié)構(gòu)的全部語句的集合,通常就被稱為一個(gè)模式,一個(gè)模式的主要內(nèi)容有: 給數(shù)據(jù)庫總體數(shù)據(jù)的邏輯組織結(jié)構(gòu),即模式取名 描述模式中每個(gè)記錄類型名稱,以及其中各數(shù)據(jù)項(xiàng)的名稱、數(shù)據(jù)類型(如字符型、數(shù)字型等)和數(shù)據(jù)長度等。 描述模式中各記錄類型之間的相互聯(lián)系,如果存在有相互聯(lián)系的話。 一個(gè)模式僅僅是對(duì)數(shù)據(jù)庫概念層邏輯數(shù)據(jù)組織結(jié)構(gòu)的一個(gè)描述,并非是概念層邏輯數(shù)據(jù)本身。與其它程序語言一樣,模式描述語言也有自己的一套清晰而又嚴(yán)格的語句和語法規(guī)則。對(duì)應(yīng)不同類型的數(shù)據(jù)庫系統(tǒng),如層次數(shù)據(jù)庫系統(tǒng)和網(wǎng)狀數(shù)據(jù)庫系統(tǒng),它們的模式描述
34、語言也有很大差別,即使是同一類型數(shù)據(jù)庫系統(tǒng),如關(guān)系數(shù)據(jù)庫系統(tǒng),不同軟件商推出的系統(tǒng),其模式描述語言也不盡相同。但有一點(diǎn)是一致的,這就是它們都必須是可對(duì)上面所說明的,描述一個(gè)模式所需要包括的三個(gè)基本方面進(jìn)行定義說明。(2)子模式描述語言,它是用來描述數(shù)據(jù)庫用戶層數(shù)據(jù)模式的,即用于描述用戶所使用的數(shù)據(jù)的邏輯數(shù)據(jù)組織結(jié)構(gòu)的定義。用子模式描述語言寫出的用戶局部數(shù)據(jù)邏輯組織結(jié)構(gòu)的全部語句的集合,通常就被稱為一個(gè)子模式,一個(gè)子模式的主要內(nèi)容有: 給用戶使用數(shù)據(jù)庫所涉及到局部數(shù)據(jù)的邏輯組織結(jié)構(gòu),即子模式取名 描述子模式中所包含的每個(gè)記錄類型及其中的各數(shù)據(jù)項(xiàng),這些記錄類型的名稱以及各數(shù)據(jù)項(xiàng)的名稱和長度,可以與
35、模式中的定義有所不同,但這里主要是描述子模式中的記錄類型及其數(shù)據(jù)項(xiàng)與模式中記錄類型及其數(shù)據(jù)項(xiàng)之間的對(duì)應(yīng)映射關(guān)系,子模式中所描述的記錄及其中的數(shù)據(jù)項(xiàng)必須是已在模式中定義過的。 描述子模式中各記錄類型之間的相互聯(lián)系。這里同樣是描述子模式中的記錄間相互聯(lián)系與模式中記錄間相互聯(lián)系之間的對(duì)應(yīng)映射關(guān)系。子模式中所描述的記錄間相互聯(lián)系必須是已在模式中定義過的。 與模式描述語言不同,子模式描述語言有時(shí)與編寫應(yīng)用程序所采用的其它程序設(shè)計(jì)語言相關(guān),因此根據(jù)子模式描述語言所適用的編寫應(yīng)用程序語言,子模式描述語言也可分為cobol子模式描述語言、fortran子模式描述語言和c子模式描述語言等。(3)內(nèi)模式描述語言,
36、它是用來描述數(shù)據(jù)庫中數(shù)據(jù)在物理存貯介質(zhì)上的組織結(jié)構(gòu)和存放方式等,它與數(shù)據(jù)庫系統(tǒng)所運(yùn)行的硬件環(huán)境特性相關(guān)。例如,系統(tǒng)建立了哪些物理文件?文件的存貯設(shè)備是什么?文件是以什么樣的組織方式等等,這些都是由內(nèi)模式描述語言來負(fù)責(zé)描述的。 上述內(nèi)容僅僅是關(guān)于數(shù)據(jù)描述語言中一些最基本的部分。通常各軟件商生產(chǎn)出的數(shù)據(jù)庫系統(tǒng),往往都要根據(jù)自己的具體實(shí)現(xiàn)情況,提供出相應(yīng)的一整套數(shù)據(jù)描述語言的規(guī)范,其中也有一些數(shù)據(jù)庫系統(tǒng),對(duì)上述的數(shù)據(jù)描述語言的標(biāo)準(zhǔn)進(jìn)行了一些簡化,只給出一種或二種描述語言定義,或干脆將數(shù)據(jù)描述語言與數(shù)據(jù)操作語言歸并到了一起,以方便用戶使用。如foxpro數(shù)據(jù)庫系統(tǒng),以及目前比較流行的基于sql的多種數(shù)
37、據(jù)庫系統(tǒng)。【2】數(shù)據(jù)操作語言 數(shù)據(jù)操縱語言是用戶操縱數(shù)據(jù)庫中數(shù)據(jù)的工具,用戶借助它來實(shí)現(xiàn)從數(shù)據(jù)庫中檢索數(shù)據(jù)、向數(shù)據(jù)庫中添加數(shù)據(jù)、刪除數(shù)據(jù)庫中沒有保留價(jià)值的數(shù)據(jù)或修改某些發(fā)生變化的數(shù)據(jù)等操作。 數(shù)據(jù)操縱語言通常分為兩種類型,即宿主式數(shù)據(jù)操縱語言和自含式數(shù)據(jù)操縱語言。自含式數(shù)據(jù)操縱語言在數(shù)據(jù)庫系統(tǒng)中可獨(dú)立使用,是一種完整的語言,這類語言使用簡單方便,很適合于在終端上使用。這類語言的優(yōu)點(diǎn)是系統(tǒng)運(yùn)行效率較高且使用簡單,缺點(diǎn)是它的應(yīng)用范圍常常受到限制,例如要提取出數(shù)據(jù)庫中的一些數(shù)據(jù)進(jìn)行某種復(fù)雜運(yùn)算處理時(shí),單靠數(shù)據(jù)庫系統(tǒng)所提供的這類數(shù)據(jù)操縱語言有時(shí)就很難做到這一點(diǎn)。自含式數(shù)據(jù)操縱語言通常包含以下基本操作功
38、能:(a)從數(shù)據(jù)庫中選擇滿足一定要求的記錄或聯(lián)系;(b)增加新的記錄或聯(lián)系到數(shù)據(jù)庫中;(c)修改數(shù)據(jù)庫中的記錄或聯(lián)系;(d)刪除數(shù)據(jù)庫中的記錄或聯(lián)系; 另一種是宿主式數(shù)據(jù)操縱語言,它不能單獨(dú)使用,必須嵌入到某種程序設(shè)計(jì)語言(如c,cobol,fortran)之中方能進(jìn)行數(shù)據(jù)庫操作,這種數(shù)據(jù)操縱語言語句僅負(fù)責(zé)對(duì)數(shù)據(jù)庫中數(shù)據(jù)的操作,其它復(fù)雜的數(shù)據(jù)處理工作均有主語言完成,有時(shí)這樣做會(huì)使得用戶的應(yīng)用程序變得相當(dāng)復(fù)雜。由于這樣的程序既包含了主語言語句,也包含了數(shù)據(jù)操縱語言語句,也就使得主語言原來的編譯程序便不能完全編譯應(yīng)用程序了,解決這一問題有兩種辦法:(a)重新設(shè)計(jì)和實(shí)現(xiàn)一個(gè)編譯程序,使之能編譯包括數(shù)
39、據(jù)操縱語言和主語言的所有語句,這種辦法不大現(xiàn)實(shí)經(jīng)濟(jì);(b)不修改主語言編譯程序,而是設(shè)計(jì)一個(gè)預(yù)編程序來對(duì)應(yīng)用程序中的數(shù)據(jù)操縱語言進(jìn)行預(yù)編譯,將其首先轉(zhuǎn)換成用主語言寫的程序,然后再用主語言的編譯程序來編譯,以產(chǎn)生最后的目標(biāo)程序。這樣做辦法比較可行,目前已為許多數(shù)據(jù)庫系統(tǒng)所采用。 實(shí)際上許多數(shù)據(jù)庫系統(tǒng)除了提供上述兩種數(shù)據(jù)操作語言之外,還提供了許多編程工具和或編程命令,以便幫助用戶更加容易地編制數(shù)據(jù)庫的應(yīng)用程序,如用戶界面生成工具、報(bào)表生成工具和數(shù)據(jù)庫api接口等。(二)數(shù)據(jù)庫系統(tǒng)運(yùn)行管理與控制軟件 數(shù)據(jù)庫系統(tǒng)運(yùn)行管理與控制軟件是數(shù)據(jù)庫管理系統(tǒng)軟件的實(shí)際組成,它主要包括語言編譯處理程序、系統(tǒng)運(yùn)行控制
40、程序和數(shù)據(jù)庫日常管理程序以及數(shù)據(jù)庫工具等多種軟件。下面將概述這幾種軟件一些基本功能(1)語言編譯處理程序。它主要包括:(a)數(shù)據(jù)庫系統(tǒng)中各種數(shù)據(jù)描述語言的編譯處理程序,它們的作用是將各種采用模式描述語言所定義數(shù)據(jù)模式編譯成dbms所使用的內(nèi)部定義目標(biāo)模式。(b)數(shù)據(jù)庫系統(tǒng)各種數(shù)據(jù)操縱語言的處理程序,它們可將應(yīng)用程序中采用數(shù)據(jù)操縱語言所寫的數(shù)據(jù)操作語句轉(zhuǎn)換成其宿主語言編譯程序所能處理的語句。(c)終端操作命令解釋程序,它主要用于解釋終端操作命令的意義,完成相應(yīng)數(shù)據(jù)庫系統(tǒng)命令的執(zhí)行過程。(d)數(shù)據(jù)庫控制命令解釋程序,它負(fù)責(zé)解釋執(zhí)行每一條數(shù)據(jù)庫控制命令。(2)系統(tǒng)運(yùn)行控制程序。它主要包括:(a)數(shù)據(jù)
41、庫系統(tǒng)的總控程序,它用于檢查訪問的合法性,以決定一個(gè)訪問是否能使用數(shù)據(jù)庫。(b)并發(fā)控制程序。協(xié)調(diào)多個(gè)應(yīng)用程序?qū)?shù)據(jù)庫的操作,保證數(shù)據(jù)庫中數(shù)據(jù)的一致性。(c)保密控制程序。實(shí)現(xiàn)對(duì)數(shù)據(jù)庫數(shù)據(jù)的安全保密控制。(d)數(shù)據(jù)完整性控制程序。核對(duì)數(shù)據(jù)庫完整性約束條件,以決定對(duì)數(shù)據(jù)庫的操作是否有效。(e)數(shù)據(jù)庫存取訪問程序。實(shí)施對(duì)數(shù)據(jù)庫中數(shù)據(jù)的操作,如執(zhí)行檢索、插入、修改、刪除等操作。(f)通訊控制程序。實(shí)現(xiàn)用戶程序與dbms之間的通訊。(3)數(shù)據(jù)庫日常管理程序。這主要包括:(a)數(shù)據(jù)裝入程序。實(shí)現(xiàn)將初始數(shù)據(jù)裝入數(shù)據(jù)庫。(b)系統(tǒng)恢復(fù)程序。當(dāng)軟硬件出現(xiàn)故障時(shí),利用恢復(fù)程序?qū)?shù)據(jù)庫恢復(fù)到正確狀態(tài)。(c)工作日
42、志程序。負(fù)責(zé)記載進(jìn)入數(shù)據(jù)庫的所有訪問,其內(nèi)容包括用戶名稱、進(jìn)入系統(tǒng)時(shí)間、進(jìn)行何種操作、數(shù)據(jù)變更情況等等。使每個(gè)用戶每次訪問都留下蹤跡。(d)性能監(jiān)測程序。監(jiān)測操作執(zhí)行時(shí)間與存貯空間占用情況,為數(shù)據(jù)庫的再組織提供依據(jù)。(e)重新組織程序。當(dāng)數(shù)據(jù)庫系統(tǒng)性能變壞時(shí),對(duì)數(shù)據(jù)庫重新進(jìn)行物理組織。(f)轉(zhuǎn)貯、編輯、打印程序、用于轉(zhuǎn)貯數(shù)據(jù)庫的部分和全部數(shù)據(jù),或者編輯打印數(shù)據(jù)等。(4)數(shù)據(jù)庫工具軟件。它主要是為了方便建立數(shù)據(jù)庫系統(tǒng)的具體應(yīng)用,而提供各種工具軟件。其中有數(shù)據(jù)庫系統(tǒng)應(yīng)用程序界面制作工具,報(bào)表制作工具等許多軟件工具。 最后我們簡單介紹一下建立數(shù)據(jù)庫應(yīng)用系統(tǒng)的基本知識(shí)。數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì)方法我們將在
43、第五章詳細(xì)介紹。與其它應(yīng)用軟件開發(fā)與應(yīng)用過程一樣,數(shù)據(jù)庫系統(tǒng)的應(yīng)用,也有一個(gè)生命周期,它主要由以下五個(gè)階段構(gòu)成:(1)數(shù)據(jù)庫系統(tǒng)的規(guī)劃。它包括系統(tǒng)的應(yīng)用范圍和功能的確認(rèn)、應(yīng)用環(huán)境的分析、dbms及其支撐環(huán)境的選擇、硬件配置,人員的配備和培訓(xùn),投資估算和效益分析等活動(dòng)。(2)數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)。它包括了解應(yīng)用系統(tǒng)的信息和處理需求,設(shè)計(jì)滿足其要求的整體數(shù)據(jù)模型及處理流程,并結(jié)合具體所采用的數(shù)據(jù)庫系統(tǒng)、硬件環(huán)境和系統(tǒng)軟件平臺(tái)的特點(diǎn),設(shè)計(jì)出符合具體數(shù)據(jù)庫系統(tǒng)應(yīng)用要求的數(shù)據(jù)模型,及其應(yīng)用軟件的流程圖。選擇合適的商用數(shù)據(jù)庫系統(tǒng),來設(shè)計(jì)、建立、管理和維護(hù)數(shù)據(jù)庫系統(tǒng),使之能夠?yàn)橛脩籼峁┳罴逊?wù)。(3)數(shù)據(jù)庫系統(tǒng)
44、的建立。首先根據(jù)數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)結(jié)果,定義數(shù)據(jù)模式,規(guī)定訪問權(quán)限,設(shè)置完整性約束。然后準(zhǔn)備數(shù)據(jù),對(duì)其進(jìn)行正確性校驗(yàn)后,將其錄入,與此同時(shí),完成主要應(yīng)用程序的編制工作。(4)數(shù)據(jù)庫系統(tǒng)的管理。它包括應(yīng)用軟件的編制與修改、數(shù)據(jù)庫的重新組織、數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的備份與恢復(fù)等工作。保證數(shù)據(jù)庫系統(tǒng)的完好,為用戶提供可靠的服務(wù)。(5)數(shù)據(jù)庫系統(tǒng)的調(diào)整。由于應(yīng)用數(shù)據(jù)庫系統(tǒng)的用戶所在的硬環(huán)境,如單位組織調(diào)整、人員變化等,軟環(huán)境,如人員素質(zhì)、應(yīng)用要求等,發(fā)生變化,在數(shù)據(jù)庫系統(tǒng)運(yùn)行一段時(shí)間后,往往都需要進(jìn)行擴(kuò)充與重構(gòu),即需要對(duì)數(shù)據(jù)庫系統(tǒng)的各種數(shù)據(jù)模式的定義和處理流程進(jìn)行適當(dāng)?shù)男薷暮脱a(bǔ)充,使之適應(yīng)新的形勢。 一般與一
45、個(gè)數(shù)據(jù)庫系統(tǒng)的應(yīng)用系統(tǒng)有關(guān)的人員,有以下四類,他們是:(a)系統(tǒng)管理員,他的任務(wù)主要是定義數(shù)據(jù)庫系統(tǒng)的物理存儲(chǔ)模式,分配并管理各用戶操作的權(quán)限,管理日常數(shù)據(jù)庫系統(tǒng)的運(yùn)行工作,以及維護(hù)數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù),保證其完整和安全、(b)系統(tǒng)分析員,他們的任務(wù)主要是,從整體上分析數(shù)據(jù)庫系統(tǒng)應(yīng)用所涉及的客觀信息結(jié)構(gòu)和內(nèi)容,定義相應(yīng)的數(shù)據(jù)庫系統(tǒng)的全局?jǐn)?shù)據(jù)模式;(c)應(yīng)用程序員,他們的任務(wù)主要是分析具體用戶的信息處理需要,定義數(shù)據(jù)庫系統(tǒng)的子模式,編寫具體數(shù)據(jù)庫應(yīng)用程序;(d)用戶,他們具體的數(shù)據(jù)庫應(yīng)用程序和數(shù)據(jù)庫的最終使用者。(三)數(shù)據(jù)庫系統(tǒng)訪問示例 這里,我們介紹一下普通用戶讀取數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)時(shí),數(shù)據(jù)庫的工
46、作過程(如圖1.4所示),以便使讀者可以從中了解dbms是如何來進(jìn)行數(shù)據(jù)庫系統(tǒng)的管理工作的。用戶訪問數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的過程實(shí)際上就是用戶與dbms進(jìn)行交互的過程。其具體步驟如下:()用戶通過應(yīng)用程序指明它使用的子模式名稱,發(fā)出數(shù)據(jù)操作命令,dbms通過處理用戶的應(yīng)用程序,接收該操作命令。()dbms按照應(yīng)用程序中的子模式名稱,調(diào)出相應(yīng)的子模式,核對(duì)該用戶的訪問權(quán)利、操作合法性等,若檢查通過則繼續(xù)執(zhí)行,否則拒絕執(zhí)行并報(bào)告出錯(cuò)信息。()dbms按模式確定子模式中操作所涉及的記錄類型,并通過模式到存儲(chǔ)模式的映射,找出這些記錄類型的相應(yīng)存貯模式。()dbms查閱存貯模式,確定應(yīng)從哪個(gè)物理文件、存貯設(shè)備
47、以及調(diào)用哪個(gè)訪問程序去讀取所需的記錄。()dbms的訪問程序找到有關(guān)的物理數(shù)據(jù)地址,向操作系統(tǒng)發(fā)出讀操作命令。()操作系統(tǒng)收到dbms發(fā)來的命令后,啟動(dòng)系統(tǒng)的輸入輸出程序完成讀操作,把要讀取的數(shù)據(jù)塊送到內(nèi)存中的系統(tǒng)緩沖區(qū)。()dbms收到操作系統(tǒng)關(guān)于輸入輸出操作結(jié)束回答后,按模式、子模式的定義,將已讀入到系統(tǒng)緩沖區(qū)的內(nèi)容映射為用戶程序所要的邏輯記錄,并送到用戶的工作區(qū)中。()dbms向應(yīng)用程序發(fā)送反映操作執(zhí)行結(jié)果的狀態(tài)信息(由狀態(tài)字描述),如“執(zhí)行成功”、“數(shù)據(jù)未找到”等。()記載dbms系統(tǒng)的工作日志。(10)應(yīng)用程序檢查狀態(tài)信息,如執(zhí)行成功,則可對(duì)程序工作區(qū)中的數(shù)據(jù)作正常處理,否則按出錯(cuò)類
48、型決定程序的后續(xù)處理。 用戶修改一個(gè)記錄的操作步驟也是類似的。首先讀出所需記錄,在程序工作區(qū)中修改好,而后再把修改好的記錄寫回?cái)?shù)據(jù)庫中原記錄的位置上。圖1.4 數(shù)據(jù)庫的工作過程1.3 實(shí)體聯(lián)系模型 本節(jié)主要介紹有關(guān)實(shí)體聯(lián)系模型的概念和基本知識(shí),使讀者了解并掌握基本的實(shí)體聯(lián)系模型的使用方法。1.3.1 模型的槌? 我們都知道數(shù)據(jù)是表達(dá)信息的一種重要的量化符號(hào),是信息存在的一種重要形式。而所謂數(shù)據(jù)模型則是數(shù)據(jù)特征的一種抽象。它不是描述個(gè)別的數(shù)據(jù),而是描述數(shù)據(jù)的共性。一般來講,數(shù)據(jù)模型包含兩方面內(nèi)容,它們是:(1)數(shù)據(jù)的靜態(tài)特性,這主要包括數(shù)據(jù)的基本結(jié)構(gòu)、數(shù)據(jù)間的聯(lián)系和數(shù)據(jù)中的相互約束等特性;(2)
49、數(shù)據(jù)的動(dòng)態(tài)特性,這主要包括對(duì)數(shù)據(jù)操作的方法。在數(shù)據(jù)庫應(yīng)用系統(tǒng)中,建立反映客觀信息范疇的數(shù)據(jù)模型是數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計(jì)中最為重要的,也最基本的步驟之一,它是連接客觀信息世界和數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)邏輯組織的橋梁。也是計(jì)算機(jī)專業(yè)人員與非計(jì)算機(jī)專業(yè)的用戶之間進(jìn)行交流的共同基礎(chǔ)。這里我們將要介紹的數(shù)據(jù)模型就是實(shí)體聯(lián)系數(shù)據(jù)模型(又稱數(shù)據(jù)模型),它與傳統(tǒng)的數(shù)據(jù)模型有所不同。數(shù)據(jù)模型是面向現(xiàn)實(shí)世界,而不是面向?qū)崿F(xiàn)方法的,它主要是用于描述現(xiàn)實(shí)信息世界中數(shù)據(jù)的靜態(tài)特性。而不涉及數(shù)據(jù)的處理過程。但由于它簡單易學(xué),因而在數(shù)據(jù)庫系統(tǒng)應(yīng)用的設(shè)計(jì)中,得到了廣泛應(yīng)用。 e-r數(shù)據(jù)模型是p.p.chen在1976年提出的,它為數(shù)據(jù)庫系
50、統(tǒng)應(yīng)用的設(shè)計(jì)人員提供了三個(gè)基本的模型描述成分,它們是實(shí)體、聯(lián)系和屬性。e-r數(shù)據(jù)模型就是利用這三個(gè)成分來描述反映一個(gè)客觀信息世界內(nèi)容的數(shù)據(jù)模型。在數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計(jì)中,通常還需要將這一數(shù)據(jù)模型轉(zhuǎn)換為各數(shù)據(jù)庫管理系統(tǒng)所支持的具體數(shù)據(jù)模型,即層次數(shù)據(jù)模型、網(wǎng)狀數(shù)據(jù)模型和關(guān)系數(shù)據(jù)模型等。由此我們也可以看出e-r數(shù)據(jù)模型是從現(xiàn)實(shí)信息世界到數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)邏輯組織結(jié)構(gòu)設(shè)計(jì)之間的一個(gè)中間階段,只所以是這樣,主要是因?yàn)槿绻苯訉F(xiàn)實(shí)世界的信息,構(gòu)造成某個(gè)dbms所能接受的數(shù)據(jù)邏輯組織結(jié)構(gòu),其工作往往是十分復(fù)雜而且難度也很大,應(yīng)用設(shè)計(jì)人員不僅要考慮現(xiàn)實(shí)世界各種信息及其內(nèi)在的聯(lián)系,以及各種具體應(yīng)用對(duì)數(shù)據(jù)處理的要
51、求,而且還要考慮采用某種特定的數(shù)據(jù)庫系統(tǒng)后,所面臨的各種條件限制,這樣就大大增加了應(yīng)用系統(tǒng)設(shè)計(jì)的復(fù)雜性。 下面我們就介紹一下數(shù)據(jù)模型中的三個(gè)基本要素,即實(shí)體、聯(lián)系和屬性的有關(guān)基本知識(shí)?!?】實(shí)體 數(shù)據(jù)是用來描述現(xiàn)實(shí)世界中各種事物的。而要描述的對(duì)象是形形色色的,有具體的,也有抽象的;有物理上存在的,也有是概念性的;如張三、汽車、運(yùn)動(dòng)、興趣、神靈等。這些對(duì)象的共同特征是可以相互有區(qū)別,否則就會(huì)被認(rèn)為是同一種對(duì)象。凡是可以相互區(qū)別開并可以被我們所識(shí)別的事、物、概念等對(duì)象均可認(rèn)為是實(shí)體。它是具有共同某些特征的一類具體實(shí)體,即可認(rèn)為是一實(shí)體集合,對(duì)這一集合中所有實(shí)體共同特征的描述,稱為實(shí)體型。實(shí)體集中的
52、各具體實(shí)體,稱為該實(shí)體型的值或?qū)嶓w值。對(duì)于同一實(shí)體集中的不同實(shí)體其特征值不完全相同,并由此可加以區(qū)分。如學(xué)生實(shí)體集,其實(shí)體型可以通過學(xué)號(hào)、姓名、年齡等特征加以描述。學(xué)生實(shí)體集中的不同的學(xué)生實(shí)體,通過其不同的學(xué)號(hào)又可加以區(qū)分。例如學(xué)號(hào)為881001姓名為李平的學(xué)生是一個(gè)具體實(shí)體,顯然不同于學(xué)號(hào)為881002姓名為王明的學(xué)生這個(gè)具體實(shí)體。【2】聯(lián)系 在現(xiàn)實(shí)世界中,任何事物都不是孤立存在的。實(shí)體之間存在著各種相互聯(lián)系,例如教師與學(xué)生之間至少存在一種聯(lián)系,即“教學(xué)”聯(lián)系,商店與商品之間存在一種供應(yīng)聯(lián)系,這些都是不同類型的實(shí)體之間存在的聯(lián)系。還有一種聯(lián)系是存在于同一類型實(shí)體之間的,例如學(xué)生實(shí)體型里,某一
53、學(xué)生是班長,顯然他和其他學(xué)生間也存在著一種“領(lǐng)導(dǎo)”聯(lián)系。在數(shù)據(jù)模型中,通常將不同實(shí)體型之間存在的聯(lián)系歸納成三種不同類型,它們是:()一對(duì)一的聯(lián)系。其定義是:對(duì)于實(shí)體型中的一個(gè)實(shí)體,在實(shí)體型中至多有一個(gè)實(shí)體與之對(duì)應(yīng),反之對(duì)于實(shí)體型中的一個(gè)實(shí)體,在實(shí)體型中至多有一個(gè)實(shí)體與之對(duì)應(yīng)。這樣的聯(lián)系被稱為是一對(duì)一的聯(lián)系。例如兩個(gè)實(shí)體型分別為國家和總統(tǒng),顯然,一個(gè)國家只有一個(gè)總統(tǒng),而一個(gè)總統(tǒng)只能對(duì)應(yīng)于一個(gè)國家;又如系和系主任兩個(gè)實(shí)體型,一個(gè)系只能有一名系主任,而一個(gè)系主任只能領(lǐng)導(dǎo)一個(gè)系。這些顯然都是兩種實(shí)體型之間一對(duì)一聯(lián)系的情況。通常又將這種聯(lián)系記為:的聯(lián)系。()一對(duì)多的聯(lián)系。其定義是:對(duì)于實(shí)體型中的一個(gè)實(shí)體
54、,實(shí)體型中可以有若干個(gè)實(shí)體與之對(duì)應(yīng);反之,對(duì)于實(shí)體中的一個(gè)實(shí)體,則實(shí)體型中只能有一個(gè)實(shí)體與之對(duì)應(yīng)。這樣的聯(lián)系被稱為是一對(duì)多的聯(lián)系,例如兩個(gè)實(shí)體型分別為系和教師,一個(gè)系可以有若干教師,一個(gè)教師只能對(duì)應(yīng)一個(gè)系,顯然這是兩種實(shí)體型之間一對(duì)多的聯(lián)系。通常將這種聯(lián)系記為:的聯(lián)系。:的聯(lián)系有時(shí)可看成是:的聯(lián)系的一種特殊情況。()多對(duì)多的聯(lián)系。其定義是:對(duì)于實(shí)體型中的一個(gè)實(shí)體,實(shí)體型中可以有若干個(gè)實(shí)體于之對(duì)應(yīng);反之,對(duì)于實(shí)體型中的一個(gè)實(shí)體,則實(shí)體型中也有若干個(gè)實(shí)體與之對(duì)應(yīng),這樣的聯(lián)系被稱為是多對(duì)多的聯(lián)系。例如兩個(gè)實(shí)體型分別為教師和課程,一個(gè)教師可以教若干門課,一門課又可以有若干個(gè)教師講。通常將這種聯(lián)系記為:
55、的聯(lián)系。以上介紹的三種類型的聯(lián)系不僅可以用于描述二個(gè)不同類型的實(shí)體,還可以用于描述多個(gè)不同類型的實(shí)體。如在現(xiàn)實(shí)世界中,存在著許多多個(gè)實(shí)體型相互之間都有聯(lián)系的情況。如教師、課程、學(xué)生三個(gè)實(shí)體型之間就存在一種聯(lián)系,一個(gè)教師可以教若干門課,一門課又可以有若干個(gè)教師教授;一個(gè)教師可以教若干學(xué)生,一學(xué)生又可以有若干個(gè)教師教;一門課可以有若干學(xué)生選,一學(xué)生又可以選若干門課。有時(shí)為了方便我們也可以將這三個(gè)實(shí)體型之間聯(lián)系,分解成每兩個(gè)實(shí)體型之間均存在一個(gè)多對(duì)多的聯(lián)系。 最后我們再介紹一種較為特殊的聯(lián)系,這就是同一實(shí)體型中的不同的具體實(shí)體之間也可以存在有某聯(lián)系,如職工實(shí)體型,在這一實(shí)體型中的實(shí)體有普遍職工,也有
56、經(jīng)理,經(jīng)理與職工之間有一種領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)的關(guān)系。在數(shù)據(jù)模型中,通常我們將這種特殊的聯(lián)系,稱為聯(lián)系?!?】屬性 實(shí)體型是對(duì)實(shí)體集合中所有實(shí)體共同描述特征的集合,這些實(shí)體所共有的描述特征就稱為實(shí)體的屬性。如學(xué)生實(shí)體型,其共有的描述特征通常有學(xué)號(hào)、姓名、年齡、性別等,它們都是學(xué)生實(shí)體型的屬性。這些屬性的一組值就表示了一個(gè)具體的實(shí)體。在一個(gè)具體的實(shí)體型中,其中的每一個(gè)屬性都有其取值范圍,這一范圍稱為屬性的值域。一個(gè)屬性的值域可以是整數(shù)、浮點(diǎn)數(shù)、字符串等。如學(xué)生實(shí)體型中的年齡屬性的值域就是一定區(qū)間中的整數(shù),而姓名屬性的值域就是符合一定要求的字符串等。實(shí)體型中的某個(gè)(些)屬性的取值可以用來唯一區(qū)分實(shí)體型中具
57、體實(shí)體,如學(xué)生實(shí)體型中的學(xué)號(hào)屬性的取值就可以用來區(qū)分每一個(gè)學(xué)生。這種屬性又可稱為該實(shí)體型的標(biāo)識(shí)碼。 不僅實(shí)體型有屬性,聯(lián)系也可以有屬性,如學(xué)生和課程這兩個(gè)實(shí)體型,“選課”是它們之間的一種聯(lián)系,學(xué)生選修某門課程取得了某個(gè)成績,顯然成績描述是的一個(gè)屬性,但它既不是學(xué)生實(shí)體型中的一個(gè)屬性,也不是課程實(shí)體型中的一個(gè)屬性。而成績屬性的具體取值,既依賴于某個(gè)具體的學(xué)生,又依賴于某個(gè)具體的課程,所以我們將成績屬性定義為是學(xué)生和課程這兩個(gè)實(shí)體型之間選課聯(lián)系的屬性。又如機(jī)器和零件這兩個(gè)實(shí)體型,“構(gòu)造”是它們之間的一種聯(lián)系,數(shù)量這一屬性,即需要多少數(shù)量的零件構(gòu)造某一個(gè)機(jī)器,則是構(gòu)造這一聯(lián)系的屬性。 充分認(rèn)識(shí)和理解聯(lián)系可以有屬性這一概念,對(duì)于正確地建立或理解數(shù)據(jù)模型,以及建立或理解數(shù)據(jù)庫的數(shù)據(jù)邏輯組織結(jié)構(gòu)都具有十分重要的意義。 實(shí)體、屬性和聯(lián)系三個(gè)基本要素的概念是有明確區(qū)分的,但是對(duì)于某個(gè)具體數(shù)據(jù)對(duì)象,究竟它應(yīng)該被認(rèn)為是實(shí)體,還是屬性或聯(lián)系,常常需要根據(jù)具體應(yīng)用背景和用戶的觀點(diǎn),方可確定。1.3.2 模型的表示 前面,我們介紹數(shù)據(jù)模型中的三個(gè)基本的要素,這里我們將介紹使用并描述數(shù)據(jù)模型。使用數(shù)據(jù)模型來分析描述現(xiàn)實(shí)信息世界中的各種信息對(duì)象的主要分析步驟如下:(1)首先根據(jù)數(shù)據(jù)庫系
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)營銷團(tuán)隊(duì)提成考核方案
- 利用生物質(zhì)能實(shí)現(xiàn)低碳煉鐵的研究進(jìn)展
- 2025年會(huì)計(jì)專業(yè)考試高級(jí)會(huì)計(jì)實(shí)務(wù)試卷與參考答案
- 挖土方施工方案
- 小學(xué)畢業(yè)季拍攝活動(dòng)策劃方案
- 農(nóng)產(chǎn)品倉儲(chǔ)管理工程施工方案
- 工業(yè)廠房空調(diào)安裝優(yōu)化方案
- 圖書館借閱數(shù)據(jù)分析與制度優(yōu)化
- 懷化學(xué)院《體育概論》2022-2023學(xué)年第一學(xué)期期末試卷
- 企業(yè)無煙工作場所方案
- 廣東省江門市新會(huì)區(qū)崖南鎮(zhèn)田邊小學(xué)2024-2025學(xué)年一年級(jí)上學(xué)期11月期中語文試題
- 滬科版(2024)八年級(jí)全一冊物理第一學(xué)期期中學(xué)業(yè)質(zhì)量測試卷 2套(含答案)
- 化工和危險(xiǎn)化學(xué)品生產(chǎn)經(jīng)營單位二十條重大隱患判定標(biāo)準(zhǔn)釋義(中化協(xié))
- 愚公移山英文 -中國故事英文版課件
- 課件交互設(shè)計(jì)
- 防火玻璃國家規(guī)范
- 獨(dú)特的我PPT課件
- 施工現(xiàn)場平面布置圖
- 全國初中數(shù)學(xué)優(yōu)秀課一等獎(jiǎng):圓周角--教學(xué)設(shè)計(jì)(方碧霞)
- 社區(qū)獲得性肺炎教學(xué)查房
- 淺析語言和言語的關(guān)系及其對(duì)外語教學(xué)的啟示.doc
評(píng)論
0/150
提交評(píng)論