數(shù)據(jù)庫技術(shù)理論與電子商務(wù)介紹_第1頁
數(shù)據(jù)庫技術(shù)理論與電子商務(wù)介紹_第2頁
數(shù)據(jù)庫技術(shù)理論與電子商務(wù)介紹_第3頁
數(shù)據(jù)庫技術(shù)理論與電子商務(wù)介紹_第4頁
數(shù)據(jù)庫技術(shù)理論與電子商務(wù)介紹_第5頁
已閱讀5頁,還剩76頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第7章 數(shù)據(jù)庫技術(shù)計算機與人類相比的最大優(yōu)勢就是能夠迅速準(zhǔn)確地處理大量數(shù)據(jù)。因此,自從計算機發(fā)明以來,數(shù)據(jù)處理就是它的基本功能和關(guān)鍵技術(shù)。數(shù)據(jù)處理的中心問題是數(shù)據(jù)管理,數(shù)據(jù)管理是指對數(shù)據(jù)的分類、組織、編碼、存儲、檢索和維護。而數(shù)據(jù)庫技術(shù)正是數(shù)據(jù)處理技術(shù)發(fā)展到比較成熟后的產(chǎn)物。電子商務(wù)以電子計算機及其網(wǎng)絡(luò)技術(shù)取代傳統(tǒng)方式來進行生產(chǎn)經(jīng)營活動,離不開數(shù)據(jù)庫技術(shù)的支持。數(shù)據(jù)庫技術(shù)對電子商務(wù)的支持主要表現(xiàn)在兩方面:存儲和管理各各種商務(wù)數(shù)據(jù)據(jù)。這是數(shù)據(jù)據(jù)庫技術(shù)的基基本功能。決策支持。近近幾年,隨著著數(shù)據(jù)倉庫和和數(shù)據(jù)挖掘技技術(shù)的產(chǎn)生和和發(fā)展,使企企業(yè)可以科學(xué)學(xué)地對數(shù)據(jù)庫中海海量的商務(wù)數(shù)數(shù)據(jù)進行科學(xué)學(xué)地組織、

2、分分析和統(tǒng)計,從從而更好地服服務(wù)于企業(yè)的的決策支持??梢哉f,數(shù)據(jù)庫庫技術(shù)是電子子商務(wù)的一項項支撐技術(shù),在在電子商務(wù)的的建設(shè)中占有有重要的地位位。7.1 數(shù)數(shù)據(jù)庫技術(shù)的的產(chǎn)生與發(fā)展展數(shù)據(jù)庫技術(shù)是應(yīng)應(yīng)數(shù)據(jù)管理任任務(wù)的需要而而產(chǎn)生的,是是數(shù)據(jù)管理技技術(shù)發(fā)展到一一定階段的產(chǎn)產(chǎn)物。數(shù)據(jù)管管理技術(shù)的發(fā)發(fā)展,是隨著著計算機硬件件和軟件技術(shù)術(shù)的發(fā)展而不不斷發(fā)展的。到到目前為止,數(shù)據(jù)管理技術(shù)主要經(jīng)歷了以下幾個階段:手工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫系統(tǒng)階段、數(shù)據(jù)倉庫階段。7.1.1 手工管理階階段20世紀50年年代中期以前前,計算機主主要用于科學(xué)學(xué)計算。硬件件存儲設(shè)備主主要有磁帶、卡卡片機、紙帶帶機等,還沒沒有

3、磁盤等直直接存取的存存儲設(shè)備;軟軟件上也處于于初級的階段段,沒有操作作系統(tǒng)和管理理數(shù)據(jù)的工具具。數(shù)據(jù)的組組織和管理完完全靠程序員員手工完成,因因此稱為“手工管理階階段”。這個階段段數(shù)據(jù)的管理理效率很低。手工管理方式的的特點是: 數(shù)據(jù)不保存存。 程序與數(shù)據(jù)據(jù)合在一起,因因而數(shù)據(jù)沒有有獨立性,程程序沒有彈性性,要修改數(shù)數(shù)據(jù)必須修改改程序。 程序員必須須自己編程實實現(xiàn)數(shù)據(jù)的存存儲結(jié)構(gòu)、存存取方法和輸輸入輸出,迫迫使程序員直直接與物理設(shè)設(shè)備打交道,加加大了程序設(shè)設(shè)計難度,編編程效率低。 數(shù)據(jù)面向應(yīng)應(yīng)用,這意味味著即使多個個不同程序用用到相同數(shù)據(jù)據(jù),也得各自自定義,數(shù)據(jù)據(jù)不僅高度冗冗余,而且不不能共享。

4、7.1.2 文件系統(tǒng)階階段進入20世紀660年代,數(shù)數(shù)據(jù)管理方式式發(fā)生了很大大的變化。計計算機在這個個階段不僅用用于科學(xué)計算算,還大量用用于管理。外外存儲設(shè)備也也出現(xiàn)了存取取效率高得多多的直接存儲儲設(shè)備,如磁磁盤、磁鼓等等;在軟件方方面,不僅有有了操作系統(tǒng)統(tǒng),而且還出出現(xiàn)了專門的的數(shù)據(jù)管理軟軟件,一般稱稱之為文件系系統(tǒng)。有了文文件系統(tǒng),數(shù)數(shù)據(jù)的增、刪刪、改等操作作都變得輕松松了。更重要要的是數(shù)據(jù)的的復(fù)制變得相相當(dāng)容易,使使數(shù)據(jù)可以反反復(fù)使用。程程序員在免除除了數(shù)據(jù)管理理工作以后,不不僅可以專心心從事其他更更有意義的工工作,而且減減少了錯誤。文件管理方式本本質(zhì)上是把數(shù)數(shù)據(jù)組織成文文件形式存儲儲在

5、磁盤上。文文件是操作系系統(tǒng)管理數(shù)據(jù)據(jù)的基本單位位。文件可以以命名,通過過文件名以記記錄為單位存存取數(shù)據(jù),不不必關(guān)心數(shù)據(jù)據(jù)的存儲位置置。由于文件件是根據(jù)數(shù)據(jù)據(jù)所代表的意意義組織的,所所以文件能反反映現(xiàn)實世界界事物。在文文件中常涉及及下列術(shù)語:數(shù)據(jù)項:描述述事物性質(zhì)的的最小數(shù)據(jù)單單位;記錄:若干數(shù)數(shù)據(jù)項的集合合稱記錄,一一個記錄能表表達一個具體體事物;文件:若干記記錄的集會就就叫做文件。顯然,數(shù)據(jù)組織織成文件,邏邏輯關(guān)系非常常明確,使數(shù)數(shù)據(jù)處理真正正體現(xiàn)了信息息處理,按名名存取數(shù)據(jù),既既形象,又方方便。由于有有了直接存取取存儲設(shè)備,所所以文件可以以組織成多種種形式,如順順序文件、索索引文件等,從從

6、而對文件中中的記錄可順順序訪問,也也可隨機訪問問。文件方式管理數(shù)數(shù)據(jù)是數(shù)據(jù)管管理的一大進進步,即使是是數(shù)據(jù)庫方式式也是在文件件系統(tǒng)基礎(chǔ)上上發(fā)展起來的的。這一階段段的特點如下下: 數(shù)據(jù)可長期期保存在磁盤盤上。 數(shù)據(jù)的物理理結(jié)構(gòu)與邏輯輯結(jié)構(gòu)有了區(qū)區(qū)別,兩者之之間由文件管管理系統(tǒng)進行行轉(zhuǎn)換,因而而程序與數(shù)據(jù)據(jù)之間有物理理上的獨立性性,即數(shù)據(jù)在在存儲上的改改變不一定會會影響到程序序,這可使程程序員不必過過多地考慮數(shù)數(shù)據(jù)存放地址址,而把精力力放在算法上上。 文件系統(tǒng)提提供了數(shù)據(jù)存存取方法,但但當(dāng)數(shù)據(jù)的物物理結(jié)構(gòu)改變變時,仍需修修改程序。 數(shù)據(jù)不再屬屬于某個特定定程序,在一一定程度上可可以共享。上述特點可

7、用圖圖7l表示文文件管理系統(tǒng)程序1程序2程序n文件n文件2文件1圖7l 文件系統(tǒng)階段數(shù)據(jù)管理示意圖然而,文件方式式管理數(shù)據(jù)還還是有很多缺缺陷的,主要要表現(xiàn)在以下下幾個方面:1. 文件是是面向特定用用途設(shè)計的:這意味著有有一個應(yīng)用,就就有一個文件件相對應(yīng)。而而程序是基于于文件編制的的,導(dǎo)致程序序仍然與文件件相互依存。因因為文件有所所變動,程序序就得相應(yīng)修修改,而文件件離開了使用用它的程序便便全部失去存存在的價值。2. 數(shù)據(jù)冗冗余大:因為為文件之間缺缺乏聯(lián)系,有有可能造成同同樣數(shù)據(jù)在不不同文件中重重復(fù)存儲。3. 數(shù)據(jù)可可能發(fā)生矛盾盾:因為同一一數(shù)據(jù)出現(xiàn)在在不同文件中中,稍有不慎慎就可能造成成同一數(shù)

8、據(jù)在在不同文件中中不一樣,這這將導(dǎo)致數(shù)據(jù)據(jù)的冗余。4. 數(shù)據(jù)聯(lián)聯(lián)系弱:不同同文件缺乏聯(lián)聯(lián)系就不能反反映現(xiàn)實世界界中事物之間間的自然聯(lián)系系,這是文件件方式最大的的弊端。7.1.3 數(shù)據(jù)庫系統(tǒng)統(tǒng)階段到了20世紀660年代后期期,計算機被被越來越多地地應(yīng)用于管理理領(lǐng)域,而且且規(guī)模也越來來越大,因此此數(shù)據(jù)量也急急劇增長。同同時,人們對對數(shù)據(jù)共享的的要求也越來來越強烈。在在這種情況下下,“數(shù)據(jù)庫”的概念應(yīng)運運而生了。用用數(shù)據(jù)庫管理理數(shù)據(jù)有如下下的特點:1. 數(shù)據(jù)結(jié)結(jié)構(gòu)化數(shù)據(jù)庫是存儲在在磁盤等外部部直接存取存存儲設(shè)備上的的數(shù)據(jù)集合,是是按一定的數(shù)數(shù)據(jù)結(jié)構(gòu)組織織起來的。與與文件系統(tǒng)相相比,文件系系統(tǒng)中的文件

9、件之間不存在在聯(lián)系,因而而從總體上看看數(shù)據(jù)是沒有有結(jié)構(gòu)的;而而數(shù)據(jù)庫中的的文件是相互互聯(lián)系著的,并并在總體上遵遵從一定的結(jié)結(jié)構(gòu)形式。這這是文件系統(tǒng)統(tǒng)與數(shù)據(jù)庫系系統(tǒng)的最大區(qū)區(qū)別。數(shù)據(jù)庫庫正是通過文文件之間的聯(lián)聯(lián)系反映現(xiàn)實實世界事物間間的自然聯(lián)系系。2. 數(shù)據(jù)共共享數(shù)據(jù)庫中的數(shù)據(jù)據(jù)是考慮所有有用戶的數(shù)據(jù)據(jù)需求、面向向整個系統(tǒng)組組織的。因此此數(shù)據(jù)庫中包包含了所有用用戶的數(shù)據(jù)成成分,但每個個用戶通常只只用到其中一一部分數(shù)據(jù)。不不同用戶所使使用的數(shù)據(jù)可可以重疊,同同一部分數(shù)據(jù)據(jù)也可為多用用戶共享,如如圖72所示。程序1程序1程序2程序n數(shù)據(jù)庫應(yīng)用程序遠程終端用戶圖72 數(shù)數(shù)據(jù)共享示意意圖3. 減少了數(shù)數(shù)

10、據(jù)冗余在數(shù)據(jù)庫方式下下,用戶不是是自建文件,而而是取自數(shù)據(jù)據(jù)庫中的某個個子集,它并并非獨立存在在,而是靠數(shù)數(shù)據(jù)庫管理系系統(tǒng)從數(shù)據(jù)庫庫中映射出來來的,所以叫叫做邏輯文件件。如圖73所示,用戶戶使用的是邏邏輯文件,因因此盡管一個個數(shù)據(jù)可能出出現(xiàn)在不同的的邏輯文件中中,但實際上上的物理存儲儲只可能出現(xiàn)現(xiàn)一次,這就就減少了數(shù)據(jù)據(jù)冗余。DBMSDBMS程序A程序B程序C邏輯文件C邏輯文件B邏輯文件A數(shù)據(jù)庫圖73 應(yīng)用程序使用從數(shù)據(jù)庫中導(dǎo)出的邏輯文件4. 有較高高的數(shù)據(jù)獨立立性數(shù)據(jù)獨立是數(shù)據(jù)據(jù)庫技術(shù)努力力追求的目標(biāo)標(biāo),其好處是是數(shù)據(jù)存儲方方式的改變不不會影響到應(yīng)應(yīng)用程序。數(shù)數(shù)據(jù)獨立又有有兩個含義,即即物理

11、數(shù)據(jù)獨獨立性和邏輯輯數(shù)據(jù)獨立性性。所謂物理理數(shù)據(jù)獨立性性是指數(shù)據(jù)庫庫物理結(jié)構(gòu)(包包括數(shù)據(jù)的組組織和存儲、存存取方法沙十十部存儲設(shè)備備等)發(fā)生改改變時,不會會影響到邏輯輯結(jié)構(gòu),而用用戶使用的是是邏輯數(shù)據(jù),所所以不必改動動程序;所謂謂邏輯數(shù)據(jù)獨獨立性是指數(shù)數(shù)據(jù)庫全局邏邏輯發(fā)生改變變時,用戶也也不需改動程程序,就像數(shù)數(shù)據(jù)庫并沒發(fā)發(fā)生變化一樣樣。這是因為為用戶僅使用用數(shù)據(jù)庫的一一個子集,全全局變化與否否與具體用戶戶無關(guān),只要要能從數(shù)據(jù)庫庫中導(dǎo)出他所所用到的數(shù)據(jù)據(jù)就行。5. 用戶接接口在數(shù)據(jù)庫系統(tǒng)中中,數(shù)據(jù)庫管管理系統(tǒng)作為為用戶與數(shù)據(jù)據(jù)庫的接口,提提供了數(shù)據(jù)庫庫定義、數(shù)據(jù)據(jù)庫運行。數(shù)數(shù)據(jù)庫維護和和數(shù)據(jù)安

12、全性性、完整性等等控制功能;此外還支持持某種程序設(shè)設(shè)計語言,并并設(shè)有專門的的數(shù)據(jù)操作語語言,為用戶戶編程提供了了方便。數(shù)據(jù)庫系統(tǒng)的出出現(xiàn),使信息息系統(tǒng)的研制制從圍繞加工工數(shù)據(jù)的程序序為中心轉(zhuǎn)變變到圍繞共享享的數(shù)據(jù)庫來來進行。這既既便于數(shù)據(jù)的的集中管理,也也有利于應(yīng)用用程序的研制制和維護,提提高了數(shù)據(jù)的的利用率和相相容性,從而而提高了做出出決策的可靠靠性。因此大大型復(fù)雜的信信息系統(tǒng)大多多以數(shù)據(jù)庫為為核心。數(shù)據(jù)庫是一個通通用化的綜合合性數(shù)據(jù)集合合。它可以供供各種用戶共共享且具有最最小的冗余度度和較高的數(shù)數(shù)據(jù)與程序的的獨立性。由由于多種程序序并發(fā)地使用用數(shù)據(jù)庫,為為了能有效、及及時地處理數(shù)數(shù)據(jù),并提

13、供供安全性和完完整性,就需需要一個軟件件系統(tǒng)數(shù)據(jù)庫管管理系統(tǒng)(DDBMS),在在建立、運用用和維護時對對數(shù)據(jù)庫進行行統(tǒng)一控制。在這個階段,企企業(yè)的管理一一般采用管理理信息系統(tǒng)(MIS)。管理信息系統(tǒng)可以有效地管理企業(yè)內(nèi)部的信息和信息流,是企業(yè)向管理現(xiàn)代化邁出的第一步。而企業(yè)管理信息系統(tǒng)可以說是數(shù)據(jù)庫管理系統(tǒng)在功能上的一種擴展,因為數(shù)據(jù)管理仍是它的核心內(nèi)容。電子數(shù)據(jù)交換(EDI)也漸漸發(fā)展起來。數(shù)據(jù)庫管理系統(tǒng)對企業(yè)從事電子交易起到很大的支持作用。我們都知道EDI的一大特點(同時也是優(yōu)點)就是把各種貿(mào)易單證的電子化和標(biāo)準(zhǔn)化。而數(shù)據(jù)庫系統(tǒng)也是把數(shù)據(jù)管理規(guī)范化和標(biāo)準(zhǔn)化了。因此,就可以比較容易地實現(xiàn)數(shù)據(jù)

14、庫系統(tǒng)的業(yè)務(wù)數(shù)據(jù)與EDI的單證之間的自動轉(zhuǎn)換。與手工制作電子單證相比,提高了效率、減少了錯誤、降低了成本。更高層次的、幫幫助企業(yè)決策策的決策支持持系統(tǒng)(DSSS)也慢慢慢發(fā)展起來。但但直到20世紀80年代末,決決策支持系統(tǒng)統(tǒng)的應(yīng)用還不不是很廣泛。原原因在于:那那時的決策支支持系統(tǒng)在理理論和方法上上過于復(fù)雜,過過于偏重高級級而抽象的理理論,而且過過于偏重結(jié)論論,在一定程程度上忽視了了對業(yè)務(wù)數(shù)據(jù)據(jù)的分析,而而且,成本高高昂,因此實實際產(chǎn)生的應(yīng)應(yīng)用效果遠遠遠比不上管理理信息系統(tǒng)。在在人們眼里,決決策支持系統(tǒng)統(tǒng)是一個高高高在上的東西西。事實上,企企業(yè)對于決策策支持并不要要求大而全,也也并不要求一一套系

15、統(tǒng)代替替決策者去思思考,他們所所需要的往往往是對簡單卻卻十分重要的的業(yè)務(wù)數(shù)據(jù)的的反復(fù)挖掘,為為決策提供一一定的依據(jù)??茖W(xué)的決策必須須以大量可靠靠的數(shù)據(jù)為基基礎(chǔ),這些數(shù)數(shù)據(jù)應(yīng)包括企企業(yè)的內(nèi)部數(shù)數(shù)據(jù)、與企業(yè)業(yè)的經(jīng)營和生生產(chǎn)相關(guān)的外外部數(shù)據(jù),還還應(yīng)包括綜合合數(shù)據(jù)和歷史史數(shù)據(jù)。否則則,決策就沒沒有根據(jù),就就會成為主觀觀的猜想。當(dāng)當(dāng)時,數(shù)據(jù)庫庫技術(shù)雖然已已經(jīng)成熟,但但應(yīng)用還不廣廣泛,所以普普遍存在一個個數(shù)據(jù)量不足足的問題。此此外,分析工工具的缺乏也也是一大問題題。沒有充足足的數(shù)據(jù),分分析工具也不不得力,分析析的結(jié)果當(dāng)然然不能切中要要害。由此可可以看出,在在這個階段,用用于決策支持持的技術(shù)還不不完備,時機

16、機也還不成熟熟,決策支持持系統(tǒng)的失敗敗也是可以理理解的。7.1.4 數(shù)據(jù)倉庫階階段進入20世紀990年代,計計算機得到空空前廣泛的應(yīng)應(yīng)用,使得企企業(yè)的生產(chǎn)效效率進一步提提高,商業(yè)競競爭也越來越越激烈了。一一個企業(yè)要想想在市場上生生存下去,不不僅要建立完完善的計算機機管理信息系系統(tǒng)來提高效效率,而且要要先于對手獲獲得至關(guān)重要要的決策信息息。這樣,企企業(yè)才能在未未來的競爭中中適應(yīng)潮流、把把握正確的發(fā)發(fā)展方向。企企業(yè)對迅速而而準(zhǔn)確地獲得得決策信息的的需求比以前前大大增強了了。對企業(yè)來來說,決策支支持系統(tǒng)已不不是可有可無無的東西,企企業(yè)需要實用用而且成本低低廉的決策支支持系統(tǒng)。系系統(tǒng)開發(fā)人員員由于企業(yè)

17、的的需求,也漸漸漸認識到了了決策支持系系統(tǒng)開發(fā)的方方向。決策支支持系統(tǒng)的建建設(shè)更應(yīng)該把把注意力放在在對數(shù)據(jù)的挖挖掘上,放在在滿足業(yè)務(wù)主主管們各種各各樣的查詢要要求上,由他他們自己做決決定,系統(tǒng)只只是提供一些些用來輔助決決策的參考意意見,應(yīng)該幫幫助而不是代代替高級業(yè)務(wù)務(wù)人員的思考考。在這一時期,計計算機及其網(wǎng)網(wǎng)絡(luò)技術(shù)的應(yīng)應(yīng)用更為廣泛泛,企業(yè)管理理信息系統(tǒng)逐逐漸由以內(nèi)部部管理為主轉(zhuǎn)轉(zhuǎn)變?yōu)閷φ麄€個供應(yīng)鏈的管管理。企業(yè)之之間的商務(wù)活活動也從以前前簡單的電子子數(shù)據(jù)傳輸轉(zhuǎn)轉(zhuǎn)變?yōu)槿轿晃坏暮献鳎婋娮由虅?wù)蓬勃勃興起。企業(yè)業(yè)之間的相互互合作不僅可可以提高企業(yè)業(yè)的生產(chǎn)效率率、降低生產(chǎn)產(chǎn)成本,也為為企業(yè)獲取大大量

18、的外部數(shù)數(shù)據(jù)帶來了方方便。這就為為決策支持分分析奠定了基基礎(chǔ)。另外,由由于數(shù)據(jù)庫技技術(shù)的發(fā)展和和日益成熟,決決策支持分析析工具也漸漸漸豐富起來。企業(yè)的需求和技技術(shù)的成熟最最終導(dǎo)致了數(shù)數(shù)據(jù)倉庫的產(chǎn)產(chǎn)生。數(shù)據(jù)倉倉庫作為決策策支持系統(tǒng)的的一種有效、可可行的體系化化解決方案,包包括三個方面面的內(nèi)容:數(shù)數(shù)據(jù)倉庫技術(shù)術(shù)(DW)、聯(lián)機機分析處理技術(shù)(OLLAP)和數(shù)數(shù)據(jù)挖掘技術(shù)術(shù)(DM)。數(shù)據(jù)庫技術(shù)的發(fā)發(fā)展為解決決決策支持問題題提供了可能能,而激烈的的市場競爭產(chǎn)產(chǎn)生了對決策策支持的巨大大需求,由此此人們找到了了以數(shù)據(jù)倉庫庫為基礎(chǔ)、以以O(shè)LAP和DMI具為手手段的一整套套可操作、可可實施的解決決方案。7.2

19、數(shù)數(shù)據(jù)庫技術(shù)的的基本理論 電子子商務(wù)是指利利用電子網(wǎng)絡(luò)絡(luò)進行的商務(wù)務(wù)活動,這里里的電子網(wǎng)絡(luò)絡(luò)主要是指IInternnet和基于于 Inteernet技技術(shù)的Inttranet(企業(yè)業(yè)內(nèi)部網(wǎng))及及Extranet(企業(yè)業(yè)外部網(wǎng))。其其進行的商務(wù)務(wù)活動不僅包包含電子數(shù)據(jù)據(jù)交換所涉及及的電子交易易,還包括電電子郵件交流流、網(wǎng)上站點點宣傳和利用用lnterrnet技術(shù)術(shù)改造的其他他傳統(tǒng)應(yīng)用。但但電子商務(wù)應(yīng)應(yīng)用的前提是是企業(yè)管理信信息系統(tǒng)的廣廣泛應(yīng)用。數(shù)數(shù)據(jù)庫技術(shù)是是企業(yè)管理信信息系統(tǒng)的核核心技術(shù)之一一,所以,想想深入地理解解電子商務(wù)就就應(yīng)該先了解解數(shù)據(jù)庫的一一些基本理論論。7.2.1 數(shù)據(jù)模型1. 數(shù)

20、據(jù)模型型的要素數(shù)據(jù)庫是某個企企業(yè)、組織或或部門所涉及及的數(shù)據(jù)的一一個綜合,它它不僅要反映映數(shù)據(jù)本身的的內(nèi)容,而且且還要反映數(shù)數(shù)據(jù)之間的聯(lián)聯(lián)系。由于計計算機不可能能直接處理現(xiàn)現(xiàn)實世界中的的具體事物,所所以人們必須須事先把具體體事物轉(zhuǎn)換成成計算機能夠夠處理的數(shù)據(jù)據(jù)。在數(shù)據(jù)庫庫中用數(shù)據(jù)模模型這個工具具來抽象、表表示和處理現(xiàn)現(xiàn)實世界中的的數(shù)據(jù)和信息息。通俗地講講數(shù)據(jù)模型就就是現(xiàn)實世界界的模擬。數(shù)據(jù)模型應(yīng)滿足足三方面要求求;一是能比比較真實地模模擬現(xiàn)實世界界;二是容易易為人所理解解;三是便于于在計算機上上實現(xiàn)。一種種數(shù)據(jù)模型要要很好地滿足足這三方面的的要求,在目目前尚很困難難。在數(shù)據(jù)庫庫系統(tǒng)中針對對不同

21、的使用用對象和應(yīng)用用目的,采用用不同的數(shù)據(jù)據(jù)模型。不同的數(shù)據(jù)模型型實際上是提提供給我們模模型化數(shù)據(jù)和和信息的不同同工具。根據(jù)據(jù)模型應(yīng)用的的不同目的,可可以將這些模模型劃分為兩兩類,它們分分屬于兩個不不同的層次。第第一類模型是是概念模型,也也稱信息模型型,它是按用用戶的觀點對對數(shù)據(jù)和信息息建模。另一一類模型是數(shù)數(shù)據(jù)模型,主主要包括網(wǎng)狀狀模型、層次次模型、關(guān)系系模型等,它它是按計算機機系統(tǒng)的觀點點對數(shù)據(jù)建模模。一般地講,任何何一種數(shù)據(jù)模模型都是嚴格格定義的概念念的集合。這這些概念必須須能夠精確地地描述系統(tǒng)的的靜態(tài)特性、動動態(tài)特性和完完整性約束條條件。因此數(shù)數(shù)據(jù)模型通常常都是由數(shù)據(jù)據(jù)結(jié)構(gòu)、數(shù)據(jù)據(jù)操作

22、和完整整性約束三個個要素組成。 數(shù)據(jù)結(jié)構(gòu)構(gòu)數(shù)據(jù)結(jié)構(gòu)用于描描述系統(tǒng)的靜靜態(tài)特性,它它包括數(shù)據(jù)對對象及其相互互聯(lián)系,即數(shù)數(shù)據(jù)結(jié)構(gòu)是所所研究的對象象類型(obbject type)的的集合。這些些對象是數(shù)據(jù)據(jù)庫的組成成成分,它們包包括兩類,一一類是與數(shù)據(jù)據(jù)類型、內(nèi)容容、性質(zhì)有關(guān)關(guān)的對象,例例如網(wǎng)狀模型型中的數(shù)據(jù)項項、記錄,關(guān)關(guān)系模型中的的域、屬性、關(guān)關(guān)系等;一類類是與數(shù)據(jù)之之間聯(lián)系有關(guān)關(guān)的對象,例例如網(wǎng)狀模型型中的系型(set type)。數(shù)據(jù)結(jié)構(gòu)是刻畫畫一個數(shù)據(jù)模模型性質(zhì)最重重要的方面。因因此在數(shù)據(jù)庫庫系統(tǒng)中,人人們通常按照照其數(shù)據(jù)結(jié)構(gòu)構(gòu)的類型來命命名數(shù)據(jù)模型型。例如,層層次結(jié)構(gòu)、網(wǎng)網(wǎng)狀結(jié)構(gòu)和關(guān)關(guān)

23、系結(jié)構(gòu)的數(shù)數(shù)據(jù)模型分別別命名為層次次模型、網(wǎng)狀狀模型和關(guān)系系模型。 數(shù)據(jù)操作作數(shù)據(jù)操作用于描描述系統(tǒng)的動動態(tài)特性,主主要是對數(shù)據(jù)據(jù)的檢索和更更新,即數(shù)據(jù)據(jù)操作是指對對數(shù)據(jù)庫中各各種對象(型型)的實例(值值)允許執(zhí)行行的操作的集集合,包括操操作及有關(guān)的的操作規(guī)則。數(shù)數(shù)據(jù)庫主要有有檢索和更新新(包括插入入、刪除、修修改)兩大類類操作。數(shù)據(jù)據(jù)模型必須定定義這些操作作的確切含義義、操作符號號、操作規(guī)則則(如優(yōu)先級級)以及實現(xiàn)現(xiàn)操作的語言言。 數(shù)據(jù)的約約束條件數(shù)據(jù)的約束條件件是一組完整整性規(guī)則的集集合。完整性性規(guī)則是給定定的數(shù)據(jù)模型型中數(shù)據(jù)及其其聯(lián)系所具有有的制約和儲儲存規(guī)則,用用以限定符合合數(shù)據(jù)模型的

24、的數(shù)據(jù)庫狀態(tài)態(tài)以及狀態(tài)的的變化,以保保證數(shù)據(jù)的正正確、有效和和相容。數(shù)據(jù)模型應(yīng)該反反映和規(guī)定本本數(shù)據(jù)模型必必須遵守的基基本的通用的的完整性約束束條件。例如如,在關(guān)系模模型中,任何何關(guān)系必須滿滿足實體完整整性和參照完完整性兩個條條件。此外,數(shù)據(jù)模型型還應(yīng)該提供供定義完整性性約束條件的的機制,以反反映具體應(yīng)用用所涉及的數(shù)數(shù)據(jù)必須遵守守的特定的語語義約束條件件。例如,在在學(xué)校的數(shù)據(jù)據(jù)庫中規(guī)定大大學(xué)生年齡不不得超過299歲,碩士研研究生不得超超過38歲,學(xué)生生累計成績不不得有3門以上不及及格等。2. 數(shù)據(jù)模型型的種類不同的數(shù)據(jù)模型型具有不同的的數(shù)據(jù)結(jié)構(gòu)形形式。目前最最常用的數(shù)據(jù)據(jù)模型有層次次模型(hi

25、ierarchicaal modeel)、網(wǎng)狀狀模型(neetworkk modeel)和關(guān)系系模型(reelatioonal mmodel)。其其中層次模型型和網(wǎng)狀模型型統(tǒng)稱為非關(guān)關(guān)系模型。非非關(guān)系模型的的數(shù)據(jù)庫系統(tǒng)統(tǒng)在20世紀70年代與80年代初非非常流行,在在數(shù)據(jù)庫系統(tǒng)統(tǒng)產(chǎn)品中占據(jù)據(jù)了主導(dǎo)地位位,現(xiàn)在已逐逐漸被關(guān)系模模型的數(shù)據(jù)庫庫系統(tǒng)取代,但但在美國等一一些國家里,由由于歷史遺留留下來的原因因,目前網(wǎng)狀狀數(shù)據(jù)庫系統(tǒng)統(tǒng)的用戶數(shù)仍仍很多。20世紀80年年代以來,面面向?qū)ο蟮姆椒椒ê图夹g(shù)在在計算機各個個領(lǐng)域,包括括程序設(shè)計語語言、軟件工工程、信息系系統(tǒng)設(shè)計、計計算機硬件設(shè)設(shè)計等各方面面都產(chǎn)生了

26、深深遠的影響,也也促進了數(shù)據(jù)據(jù)庫中面向?qū)ο髷?shù)據(jù)模型型的研究和發(fā)發(fā)展。 層次模型型層次模型是數(shù)據(jù)據(jù)庫系統(tǒng)中最最早出現(xiàn)的數(shù)數(shù)據(jù)模型,它它用樹形結(jié)構(gòu)構(gòu)表示各類實實體以及實體體間的聯(lián)系。現(xiàn)實世世界中許多實實體之間的聯(lián)聯(lián)系本來就呈呈現(xiàn)出一種很很自然的層次次關(guān)系,如行行政機家族關(guān)系等。層層次模型數(shù)據(jù)據(jù)庫系統(tǒng)的典典型代表是IIBM公司的的IMS(IInformmationn Manaagemennt Sysstems)數(shù)數(shù)據(jù)庫管理系系統(tǒng),這是一一個曾經(jīng)廣泛泛使用的數(shù)據(jù)據(jù)庫管理系統(tǒng)統(tǒng)。 層次模型的的數(shù)據(jù)結(jié)構(gòu)層次模型用樹結(jié)結(jié)構(gòu)表示數(shù)據(jù)據(jù)之間的層次次關(guān)系。按照照樹的定義,在在層次模型中中,數(shù)據(jù)之間間的關(guān)系滿足足

27、;有且僅有一個個結(jié)點無雙親親,這個結(jié)點點稱為根結(jié)點點。其他結(jié)點有且且僅有一個雙雙親結(jié)點。因此,層次模型型職能描述數(shù)數(shù)據(jù)之間一對對一或多對多多的關(guān)系。層層次模型就像像一棵倒立的的樹,如圖774所示。在層次模型的數(shù)數(shù)據(jù)庫中查找找某一結(jié)點,必必須指定存取取路徑。所謂謂存取路徑是是指從根結(jié)點點開始沿途所所經(jīng)過的路徑徑。以圖74為例。存存取不同結(jié)點點的存取路徑徑如表71所示。ADADCB表71 存取路徑 存取結(jié)點存取路徑ABCDAABABCAD圖74 層層次模型 層次模型的的操縱與完整整性檢查層次模型的操縱縱主要有:查查詢、插入、刪刪除和更新。進進行查詢、插插入、刪除和和更新時要滿滿足層次模型型的完整性

28、約約束條件。進行插入操作時時,如果沒有有相應(yīng)的雙親親結(jié)點值就不不能插入子女女結(jié)點值。進進行刪除操作作時,如果刪刪除雙親結(jié)點點值,則相應(yīng)應(yīng)的子女結(jié)點點值也被同時時刪除。進行行更新時,應(yīng)應(yīng)更新所有相相應(yīng)記錄,以以保證數(shù)據(jù)的的一致性。 層次模型的的優(yōu)缺點層次模型的優(yōu)點點主要有:層次模型本身身比較簡單,只只需很少幾條條命令就能操操縱數(shù)據(jù)庫,比比較容易使用用。對于實體間聯(lián)聯(lián)系是固定的的,且預(yù)先定定義好的應(yīng)用用系統(tǒng),采用用此模型來實實現(xiàn),其性能能優(yōu)于關(guān)系模模型,不次于于網(wǎng)狀模型。層次模型提供供了良好的完完整性支持。層次模型的缺點點主要有:現(xiàn)實世界中很很多聯(lián)系是非非層次性的,如如多對多聯(lián)系系,一個結(jié)點點具有

29、多個雙雙親,層次模模型表示這類類聯(lián)系的方法法很笨拙,只只能通過引入入冗余數(shù)據(jù)(以以產(chǎn)生不一致致性)或創(chuàng)建建非自然的數(shù)數(shù)據(jù)組織(引引入續(xù)借點)來來解決。對插入和刪除除操作的限制制比較多。查詢子女結(jié)點點必須通過雙雙親結(jié)點。由于結(jié)構(gòu)嚴密密,層次命令令趨于程序化化。 網(wǎng)狀數(shù)據(jù)據(jù)模型自然界中實體型型間的聯(lián)系更更多的是非層層次關(guān)系,用用層次模型表表示非樹形結(jié)結(jié)構(gòu)是很不直直接的,網(wǎng)狀狀模型則可以以克服這一弊弊病。網(wǎng)狀模模型的典型代代表是DBTTG系統(tǒng),也也稱COY這是20世紀770年代數(shù)據(jù)據(jù)系統(tǒng)預(yù)言研研究會CODDASYL(CConferrence On Daata Syystemss Langguage)

30、下下屬的數(shù)據(jù)庫庫任務(wù)組(DData BBase TTase GGroup簡簡稱DBTGG)提出的一一個系統(tǒng)方案案。網(wǎng)狀模型的數(shù)數(shù)據(jù)結(jié)構(gòu)網(wǎng)狀模型描述了了數(shù)據(jù)之間的的網(wǎng)狀關(guān)系,是是一種比層次次模型更具普普遍性的結(jié)構(gòu)構(gòu),它去掉了了層次模型的的兩個限制,數(shù)數(shù)據(jù)之間允許許:有一個以上的的節(jié)點無雙親親。結(jié)點可以有多多個雙親結(jié)點點。因此,網(wǎng)狀模型型可以更直接接地描述現(xiàn)實實世界。而層層次結(jié)構(gòu)實際際上是網(wǎng)狀結(jié)結(jié)構(gòu)的一個特特例。圖75時網(wǎng)狀模模型的例子。圖7圖75 網(wǎng)狀模型網(wǎng)狀模型的操操縱與完整性性約束網(wǎng)狀模型的操縱縱主要包括查查詢、插入、刪刪除和更新數(shù)數(shù)據(jù)。插入操作允許插插入尚未確定定雙親結(jié)點值值的子女結(jié)點點值

31、。刪除操操作允許只刪刪除雙親結(jié)點點值。由于網(wǎng)網(wǎng)狀模型可以以直接表示非非樹形結(jié)構(gòu),而而無需像層次次模型那樣增增加冗余結(jié)點點,因此做更更新操作時只只需更新指定定記錄即可。查詢操作可以有多種方法,可根據(jù)具體情況選用??梢姡W(wǎng)狀模型型沒有層次模模型那樣嚴格格的完整性約約束條件,但但具體的網(wǎng)狀狀數(shù)據(jù)庫系統(tǒng)統(tǒng)(如DBTTG)對數(shù)據(jù)據(jù)操縱還是加加了一些限制制,提供了一一定的完整性性約束。網(wǎng)狀模型的優(yōu)優(yōu)缺點網(wǎng)狀模型的優(yōu)點點主要有:能夠更為直接接地描述現(xiàn)實實世界,如一一個結(jié)點可以以有多個雙親親、允許結(jié)點點之間為多對對多的聯(lián)系等等。具有良好的性性能,存取效效率較高。網(wǎng)狀模型的缺點點主要有:其DDL語言言極其復(fù)雜。

32、數(shù)據(jù)獨立性較較差。由于實實體間的聯(lián)系系本質(zhì)上是通通過存取路徑徑指示的,因因此應(yīng)用程序序在訪問數(shù)據(jù)據(jù)時要指定存存取路徑。 關(guān)系模型型關(guān)系模型是目前前最重要的一一種模型。美美國IBM公司的的研究員EFCoddd于19700年發(fā)表題為為“大型共享系系統(tǒng)的關(guān)系數(shù)數(shù)據(jù)庫的關(guān)系系模型”的論文,文文中首次提出出了數(shù)據(jù)庫系系統(tǒng)的關(guān)系模模型。20世紀80年代以來來,計算機廠廠商新推出的的數(shù)據(jù)庫管理理系統(tǒng)(DBBMS)幾乎乎都支持關(guān)系系模型,非關(guān)關(guān)系系統(tǒng)的產(chǎn)產(chǎn)品也大都加加上了關(guān)系接接口。數(shù)據(jù)庫庫領(lǐng)域當(dāng)前的的研究工作都都是以關(guān)系方方法為基礎(chǔ)。關(guān)系模型的數(shù)數(shù)據(jù)結(jié)構(gòu)關(guān)系模型在三種種模型中是最最重要的。雖雖然它的數(shù)據(jù)據(jù)關(guān)

33、系是幾種種模型中最簡簡單的,但其其定義卻比較較復(fù)雜??梢砸园殃P(guān)系模型型理解為一張張二維表,表表格中的每一一行代表一個個實體,稱為為記錄;每一一列代表實體體的一個屬性性,稱為數(shù)據(jù)據(jù)項。記錄的的集合稱為關(guān)關(guān)系。關(guān)系具具有如下性質(zhì)質(zhì):數(shù)據(jù)項不可再再分(即不可可表中套表)。關(guān)系中的列是是同性質(zhì)的,稱稱為屬性。屬屬性之間不能能重名。關(guān)系中不能出出現(xiàn)相同的記記錄,記錄的的順序免所謂謂。每個關(guān)系都有有一個主鍵,它它能唯一地標(biāo)標(biāo)識關(guān)系中的的一個記錄。關(guān)系中列的順順序不重要。學(xué)號姓名性別出生日期入學(xué)總分專業(yè)號9901張三男82/10/002625J001圖76 關(guān)關(guān)系模型關(guān)系模型的操操縱與完整性性約束關(guān)系數(shù)據(jù)模

34、型的的操縱主要包包括查詢、插插入、刪除和和更新數(shù)據(jù)。這這些操作必須須滿足關(guān)系的的完整性約束束條件。關(guān)系系的完整性約約束條件包括括三大類:實實體完整性、參參照完整性和和用戶定義的的完整性。關(guān)系模型中的數(shù)數(shù)據(jù)操作是集集合操作,操操作對象和操操作結(jié)果都是是關(guān)系,即若若干元組的集集合,而不像像非關(guān)系模型型中那樣是單單記錄的操作作方式。另一一方面,關(guān)系系模型把存取取路徑向用戶戶蔽起來,用用戶只需指出出“干什么”或“找什么”,不必詳細細說明“怎么干”或“怎么找”,從而大大大地提高了數(shù)數(shù)據(jù)的獨立性性,提高了用用戶的生產(chǎn)率率。關(guān)系模型的優(yōu)優(yōu)缺點關(guān)系模型具有下下列優(yōu)點:關(guān)系模型與非非關(guān)系模型不不同,它是建建立在

35、嚴格的的數(shù)學(xué)概念的的基礎(chǔ)上的。關(guān)系模型的概概念單一。無無論實體還是是實體之間的的聯(lián)系都用關(guān)關(guān)系來表示。對對數(shù)據(jù)的檢索索結(jié)果也是關(guān)關(guān)系(即表)。所所以其數(shù)據(jù)結(jié)結(jié)構(gòu)簡單、清清晰,用戶易易懂易用。關(guān)系模型的存存取路徑對用用戶透明,從從而具有更高高的數(shù)據(jù)獨立立性,更好的的安全保密性性,也簡化了程序員員的工作和數(shù)數(shù)據(jù)庫開發(fā)建建立的工作?!彼躁P(guān)系數(shù)據(jù)模模型誕生以后后發(fā)展迅速,深深受用戶的喜喜愛。關(guān)系模型的缺點點主要是:由由于存取路徑徑對用戶透明明,查詢效率率不如非關(guān)系系模型。因此此,必須對用用戶的查詢請請求進行優(yōu)化化,增加了開開發(fā)數(shù)據(jù)庫管管理系統(tǒng)的負負擔(dān)。7.2.2 關(guān)系數(shù)據(jù)庫庫關(guān)系數(shù)據(jù)庫是以以關(guān)系模型

36、為為基礎(chǔ)的數(shù)據(jù)據(jù)庫,它利用用關(guān)系來描述述現(xiàn)實世界,應(yīng)用數(shù)學(xué)方法來處理數(shù)據(jù)庫中的數(shù)據(jù)。關(guān)系數(shù)據(jù)庫目前是各類數(shù)據(jù)庫中最重要、最流行的數(shù)據(jù)庫。1. 概述關(guān)系數(shù)據(jù)庫系統(tǒng)統(tǒng)是支持關(guān)系系模型的數(shù)據(jù)據(jù)庫系統(tǒng)。關(guān)關(guān)系模型由關(guān)關(guān)系數(shù)據(jù)結(jié)構(gòu)構(gòu)、關(guān)系操作作集合和完整整性約束三部部分組成。 關(guān)系數(shù)據(jù)結(jié)結(jié)構(gòu)關(guān)系模型的數(shù)據(jù)據(jù)結(jié)構(gòu)非常單單一,在用戶戶看來,關(guān)系系模型中數(shù)據(jù)據(jù)的邏輯結(jié)構(gòu)構(gòu)是一張扁平平的二維表。但但關(guān)系模型的的這種簡單的的數(shù)據(jù)結(jié)構(gòu)能能夠表達豐富富的語義,描描述出現(xiàn)實世世界的實體以以及實體間的的各種聯(lián)系。 關(guān)系操作 關(guān)系操作采用集集合操作方式式,即操作的的對象和結(jié)果果都是集合。關(guān)關(guān)系模型中常常用的關(guān)系操操作包括:

37、選選擇、投影、連連接、除、并并、交、差等等查詢操作和和增、刪、改改操作兩大部部分。查詢的的表達能力是是其中最主要要的部分。關(guān)系模型中的關(guān)關(guān)系操作能力力早期通常是是用代數(shù)方式式或邏輯方式式來表示,分分別稱為關(guān)系系代數(shù)和關(guān)系系演算。關(guān)系系代數(shù)是用對對關(guān)系的運算算來表達查詢詢要求的方式式。關(guān)系演算算是用謂詞來來表達查詢要要求的方式。關(guān)關(guān)系演算又可可按謂詞變元元的基本對象象是元組變量量還是域變量量分為元組關(guān)關(guān)系演算和域域關(guān)系演算。關(guān)關(guān)系代數(shù)、元元組關(guān)系演算算和域關(guān)系演演算三種語言言在表達能力力上是完全等等價的。關(guān)系代數(shù)、元組組關(guān)系演算和和城關(guān)系演算算均是抽象的的查詢語言,這這些抽象的語語言與具體的的數(shù)

38、據(jù)庫管理理系統(tǒng)(DBBMS)中實實現(xiàn)的實際語語言并不完全全一樣。但它它們能用作評評估實際系統(tǒng)統(tǒng)中查詢語言言能力的標(biāo)準(zhǔn)準(zhǔn)或基礎(chǔ)。實際的查詢語言言除了提供關(guān)關(guān)系代數(shù)或關(guān)關(guān)系演算的功功能外,還提提供了許多附附加功能,例例集函數(shù)、關(guān)系賦賦值、算術(shù)運運算等。關(guān)系系語言是一種種高度非過程程化的語言,用用戶不必請求求數(shù)據(jù)庫管理理員(DBAA)為他建立立特殊的存取取路徑,存取取路徑的選擇擇由數(shù)據(jù)庫管管理系統(tǒng)(DDBMS)的的優(yōu)化機制來來完成,另外外,用戶不必必求助于循環(huán)環(huán)結(jié)構(gòu)就可以以完成數(shù)據(jù)操操作。對于關(guān)系數(shù)據(jù)庫庫而言,有一一種介于關(guān)系系代數(shù)和關(guān)系系演算之間的的語言SQLL(struuctureed quee

39、ry laanguagge,結(jié)構(gòu)化化查詢語言),它它不僅具有豐豐富的查詢功功能,而且具具有數(shù)據(jù)定義義和數(shù)據(jù)控制制功能,是集集查詢、數(shù)據(jù)據(jù)定義語言(DDDL)、數(shù)數(shù)據(jù)操縱語言言(DML)和和數(shù)據(jù)控制語語言(DCLL)于一體的的關(guān)系數(shù)據(jù)語語言,它充分分體現(xiàn)了關(guān)系系數(shù)據(jù)語言的的特點和優(yōu)點點,是關(guān)系數(shù)數(shù)據(jù)庫的標(biāo)準(zhǔn)準(zhǔn)語言。因此此,關(guān)系數(shù)據(jù)據(jù)語言可分成成以下三類:關(guān)系代數(shù)語言言,如ISBBL;關(guān)系演算語言言,其中包括括:元組關(guān)系演算算語言,如AAPLHAQQUEL;域關(guān)系演算語語言,如QBBE;具有關(guān)系代數(shù)數(shù)和關(guān)系演算算雙重特點的的語言,例如如SQL。這些關(guān)系數(shù)據(jù)語語言的共同特特點是,語言言具有完備的的表

40、達能力,是是非過程化的的集合操作語語言,功能強強,能夠嵌入入高級語言中中使用。 完整性約束束在關(guān)系型數(shù)據(jù)庫庫中,完整性性約束用于確確保數(shù)據(jù)的準(zhǔn)準(zhǔn)確性和一致致性。關(guān)系模模型提供了豐豐富的完整性性控制機制,允允許定義三類類完整性:實實體完整性、參參照完整性和和用戶定義完完整性。其中中實體完整性性和參照完整整性是關(guān)系模模型必須滿足足的完整性約約束條件,應(yīng)應(yīng)該由關(guān)系系系統(tǒng)自動支持持。實體完整性(eentityy inteegrty)一個基本關(guān)系通通常對應(yīng)現(xiàn)實實世界的一個個實體集。例例如,“學(xué)生”關(guān)系對應(yīng)于于學(xué)生的集合合?,F(xiàn)實世界界中的實體是是可區(qū)分的,即即它們具有某某種唯一性標(biāo)標(biāo)識。相應(yīng)地地,關(guān)系模型

41、型中以主碼作作為唯一性標(biāo)標(biāo)識。主碼中中的屬性即主主屬性不能取取空值。所謂謂空值就是“不知道”或“無意義”的值。如果果主屬性取空空值,就說明明存在某個不不可標(biāo)識的實實體,即存在在不可區(qū)分的的實體,這與與現(xiàn)實世界的的應(yīng)用環(huán)境相相矛盾,因此此這個實體一一定不是一個個完整的實體體。實體完整性規(guī)則則:若屬性A是基本關(guān)系系R的主屬性,則則屬性A不能取空值值。例如,在關(guān)系學(xué)學(xué)生(學(xué)號,姓姓名,性別,出出生日期,入入學(xué)總分,專專業(yè)號)中,學(xué)學(xué)生的學(xué)號屬屬性為主碼,則則學(xué)生的學(xué)號號不能取空值值。實體完整性規(guī)則則規(guī)定基本關(guān)關(guān)系的所有主主屬性都不能能取空值,而而不僅是主碼碼整體不能取取空值。例如如,學(xué)生選課課關(guān)系“

42、選修(學(xué)號號,課程號,成成績)”中,(學(xué)號號,課程號)為為主碼,則學(xué)學(xué)號和課程號號兩屬性都不不能取空值。參照完整性(rrefereentiall inteegrityy)現(xiàn)實世界中的實實體之間往往往存在某種聯(lián)聯(lián)系,在關(guān)系系模型中實體體及實體間的的聯(lián)系都是用用關(guān)系來描述述的。這樣就就自然存在著著關(guān)系與關(guān)系系間的引用。先先看下面的33個例子。例1:學(xué)生實體體和專業(yè)實體體可以用下面面的關(guān)系表示示,其中主碼碼用下劃線標(biāo)標(biāo)識:學(xué)生(學(xué)號,姓姓名,性別,出出生日期,入入學(xué)總分,專專業(yè)號,)專業(yè)(專業(yè)號,專專業(yè)名)這兩個關(guān)系之間間存在著屬性性的引用,即即“學(xué)生”關(guān)系引用了了“專業(yè)”關(guān)系的主碼碼“專業(yè)號”。顯

43、然,“學(xué)生”關(guān)系中的專專業(yè)號值必須須是確實存在在的專業(yè)的專專業(yè)號,即“專業(yè)”關(guān)系中有該該專業(yè)的記錄錄。這也就是是說,“學(xué)生”關(guān)系中的某某個屬性的取取值需要參照照“專業(yè)”關(guān)系的屬性性取值。例2:學(xué)生、課課程、學(xué)生與與課程之間的的多對多聯(lián)系系可以用以下下三個關(guān)系來來表示:學(xué)生(學(xué)號,姓姓名,性別,出出生日期,入入學(xué)總分,專專業(yè)號)課程(課程號,課課程名,學(xué)分分)選修(學(xué)號,課課程號,成績績)這三個關(guān)系之間間也存在著屬屬性的引用,即即“選修”關(guān)系引用了了“學(xué)生”關(guān)系的主碼碼“學(xué)號”和“課程”關(guān)系的主碼碼“課程號”。同樣,“選修”關(guān)系中的學(xué)學(xué)號值必須是是確實存在的的學(xué)生的學(xué)號號,即“學(xué)生”關(guān)系中一定定

44、有該學(xué)生的的記錄;“選修”關(guān)系中的課課程號值也必必須是確實存存在的課程的的課程號,即即“課程”關(guān)系中一定定有該課程的的記錄。換句句話說“選修”關(guān)系中某些些屬性的取值值需要參照其其他關(guān)系的屬屬性取值。不僅兩個或兩個個以上的關(guān)系系間可以存在在引用關(guān)系,同同一關(guān)系內(nèi)部部屬性間也可可能存在引用用關(guān)系。例3:關(guān)系學(xué)生生1如下所示示:學(xué)生1(學(xué)號,姓姓名,性別,出出生日期,專專業(yè)號,班長長)其中,“學(xué)號”屬性是主碼碼,“班長”屬性表示該該學(xué)生所在班班級的班長的的學(xué)號,它引引用了本關(guān)系系中的“學(xué)號屬性,即“班長”必須是確實實存在的學(xué)生生的學(xué)號。定義:設(shè)A是基基本關(guān)系R的一個或一一組屬性,但但不是關(guān)系RR的主

45、碼,如如果A與基本本關(guān)系S的主碼Ks相對應(yīng),則則稱A是基本本關(guān)系R的外碼(fooreignn key),并并稱基本關(guān)系系R為參照關(guān)系(reeferenncing relaation),基基本關(guān)系S為被參照關(guān)關(guān)系(refferencced rrelatiion)或目目標(biāo)關(guān)系(ttargett rellationn)。關(guān)系R和S不一定是不不同的關(guān)系。顯然,目標(biāo)關(guān)系系S的主碼Ks和參照關(guān)關(guān)系的外碼AA必須定義在在同一個(或或一組)域上上。在例1中,“學(xué)學(xué)生”關(guān)系的“專業(yè)號”屬性與“專業(yè)”關(guān)系的主碼碼“專業(yè)號”相對應(yīng),因因此“專業(yè)號”屬性是“學(xué)生”關(guān)系的外碼碼。這里“專業(yè)”關(guān)系為被參參照關(guān)系,“學(xué)生”

46、關(guān)系為參照照關(guān)系。如圖圖77(aa)所示。在例2中,“選選修”關(guān)系的“學(xué)號”屬性與“學(xué)生”關(guān)系的主碼碼“學(xué)號”相對應(yīng),“課程號”屬性與“課程”關(guān)系的主碼碼“課程號”相對應(yīng),因因此“學(xué)號”和“課程號”屬性是“選修”關(guān)系的外碼碼。這里“學(xué)生”關(guān)系和“課程”關(guān)系均為被被參照關(guān)系,“選修”關(guān)系為參照關(guān)系。如圖77(b)所示。學(xué)生關(guān)系學(xué)生關(guān)系專業(yè)號專業(yè)關(guān)系學(xué)生關(guān)系選修關(guān)系課程關(guān)系學(xué)號課程號(a)(b)圖77 關(guān)系的參照圖在例3中,“班班長”屬性與本關(guān)關(guān)系主碼“學(xué)號”屬性相對應(yīng)應(yīng),因此“班長”是外碼。這這里“學(xué)生1”關(guān)系既是參參照關(guān)系也是是被參照關(guān)系系。需要指出的是,外外碼并不一定定要與相應(yīng)的的主碼同名(

47、如如例3)。不過,在在實際應(yīng)用當(dāng)當(dāng)中,為了便便于識別,當(dāng)當(dāng)外碼與相應(yīng)應(yīng)的主碼屬于于不同關(guān)系時時,往往給它它們?nèi)∠嗤牡拿?。參照完整性?guī)則則就是定義外外碼與主碼之之間的引用規(guī)規(guī)則。參照完整性規(guī)則則:若屬性(或或?qū)傩越M)AA是基本關(guān)系系R的外碼,它它與基本關(guān)系系S的主碼Ks相對應(yīng)(基基本關(guān)系R和S不一定是不不同的關(guān)系),則則對于R中每個元組組在A上的值值必須為:或者取空值(AA的每個屬性性值均為空值值);或者等于S中中某個元組的的主碼值。例如,對于例11,“學(xué)生”關(guān)系中每個個元組的專業(yè)業(yè)號屬性只能能取下面兩類類值;空值,表示尚尚未給該學(xué)生生分配專業(yè);非空值,這時時該值必須是是“專業(yè)”關(guān)系中某個個

48、元組的專業(yè)業(yè)號值,表示示該學(xué)生不可可能分配到一一個不存在的的專業(yè)中。即即被參照關(guān)系系“專業(yè)”中一定存在在一個元組,它它的主碼值等等于該參照關(guān)關(guān)系“學(xué)生”中的外碼值值。對于例2,按照照參照完整性性規(guī)則,學(xué)號號和課程號屬屬性也可以取取兩類值:空空值或目標(biāo)關(guān)關(guān)系中已經(jīng)存存在的值。但但由于學(xué)號和和課程號是“選修”關(guān)系中的主主屬性,按照照實體完整性性規(guī)則,它們們均不能取空空值。所以“選修”關(guān)系中的學(xué)學(xué)號和課程號號屬性實際上上只能取相應(yīng)應(yīng)被參照關(guān)系系中已經(jīng)存在在的主碼值。參照完整性規(guī)則則中,R與S可以是同一一個關(guān)系。例例如,對于例例3,按照參照照完整性規(guī)則則,班長屬性性值可以取兩兩類值空值,表示該該學(xué)生所

49、在班班級尚未選出出班長;非空值,這時時該值必須是是本關(guān)系中某某個元組的學(xué)學(xué)號值。用戶定義的完完整性(usser-deefinedd inteegrityy)實體完整性和參參照完整性適適用于任何關(guān)關(guān)系數(shù)據(jù)庫系系統(tǒng)。用戶定定義的完整性性是針對某一一具體關(guān)系數(shù)數(shù)據(jù)庫的約束束條件,它反反映某一具體體應(yīng)用所涉及及的數(shù)據(jù)必須須滿足的語義義要求。關(guān)系系模型應(yīng)提供供定義和檢驗驗這類完整性性的機制,以以便用統(tǒng)一的的系統(tǒng)方法來來處理它們而而不是由應(yīng)用用程序承擔(dān)這這一功能。2. 結(jié)構(gòu)化查查詢語言(SSQL)結(jié)構(gòu)化查詢語言言(struuctureed quuery languuage,簡簡稱SQL)的理理論是1977

50、4年由Booyce和CChambeerlin提提出的,并于于1975年年至19799年在IBMM公司的Sysstem R上實現(xiàn)。由由于它具有功功能豐富、使使用方式靈活活、語言簡潔潔易學(xué)等優(yōu)點點,在計算機機工業(yè)界和用用戶中倍受青青睞,很快被被廣泛推廣。后后來,美國國國家標(biāo)準(zhǔn)局(ANSI)和國際標(biāo)準(zhǔn)化組織(ISO)先后批準(zhǔn)SQL作為關(guān)系數(shù)據(jù)庫語言的美國及國際標(biāo)準(zhǔn)。至此,SQL就成為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言,關(guān)系數(shù)據(jù)庫系統(tǒng)一般都支持標(biāo)準(zhǔn)SQL語句。所以,盡管當(dāng)今不同品牌的關(guān)系數(shù)據(jù)庫有這樣或那樣的差異,但是人們卻都可以通過標(biāo)準(zhǔn)SQL語句對數(shù)據(jù)庫進行操作,因此,大大減輕了用戶的負擔(dān)。 SQL語言言的特點SQ

51、L語言之所所以能夠被用用戶和業(yè)界所所接受并成為為國際標(biāo)準(zhǔn),是是因為它是一一個綜合的、通通用的、功能能極強同時又又簡潔易學(xué)的的語言。SQQL語言充分分體現(xiàn)了關(guān)系系數(shù)據(jù)語言的的特點和優(yōu)點點。其重要特特點包括;SQL是一種種一體化的語語言,它包括括了數(shù)據(jù)定義義、數(shù)據(jù)查詢詢、數(shù)據(jù)操縱縱和數(shù)據(jù)控制制等功能,可可以完成數(shù)據(jù)據(jù)庫活動中的的全部工作。以以前的非關(guān)系系模型(層次次模型、網(wǎng)狀狀模型)的數(shù)數(shù)據(jù)語言一般般都分為存儲儲模式描述語語言、概念模模式描述語言言、外部模式式描述語言和和數(shù)據(jù)操縱語語言等,這種種模型的數(shù)據(jù)據(jù)語言,一是是內(nèi)容多;二二是掌握和使使用起來都不不像SQL那樣簡簡單和實用。另外,在關(guān)系模模型

52、中,實體體和實體間的的聯(lián)系均用關(guān)關(guān)系來表示,這這種數(shù)據(jù)結(jié)構(gòu)構(gòu)的單一性帶帶來了數(shù)據(jù)操操作符的統(tǒng)一一性,查找、插插入、刪除、更更新等每一種種操作都只需需一種操作方方式,從而避避免了非關(guān)系系系統(tǒng)由于信信息表示方式式的多樣性帶帶來的操作復(fù)復(fù)雜性。SQL語言是是一種高度非非過程化的語語言,用戶只只需提出“做什么”,而不必指指明“怎么做”,SQL語言就就可以將要求求交給系統(tǒng),由由系統(tǒng)自動完完成全部工作作。SQL語言用用一種語法結(jié)結(jié)構(gòu)提供兩種種使用方式:直接以命令令方式交互使使用,也可以以嵌入到程序序設(shè)計語言中中(例如C、Coboll、Fortraan、PL/SQL)以程序序方式使用。這這一種做法為為用戶提

53、供了了極大的靈活活性與方便性性?,F(xiàn)在有很很多數(shù)據(jù)庫應(yīng)應(yīng)用開發(fā)工具具都將SQLL語言直接溶溶到自身的語語言中,如DDelphi、Powerrbuildder等。這這種使用方式式為用戶提供供了更多的選選擇余地。SQL語言的的命令簡潔,易易學(xué)易用。雖雖然SQL語言功功能極強,但但由于設(shè)計巧巧妙,所以只只用了為數(shù)不不多的幾條命命令就完成了了所有的核心心功能。另外外,它的語法法也很簡單,很很接近自然語語言(英語),因因此,容易學(xué)學(xué)習(xí)和掌握。SQL語言支支持數(shù)據(jù)庫的的三層模式結(jié)結(jié)構(gòu);與概念念模式的概念念文件對應(yīng)的的是基本表(TTable),與與存儲模式對對應(yīng)的是存儲儲文件以及與與外部模式對對應(yīng)的是視圖圖和

54、部分基本本表。用戶看看到的可以是是基本表或視視圖,基本表表和視圖都是是關(guān)系,用戶戶可以在其上上進行查詢操操作。而存儲儲文件對用戶戶來說是透明明的。 SQL語言言的功能SQL語言是結(jié)結(jié)構(gòu)化的查詢詢語言。是一一種綜合的、通通用的、功能能極強的關(guān)系系數(shù)據(jù)庫語言言。它的功能能包括:創(chuàng)建建數(shù)據(jù)庫對象象、操縱對象象、往數(shù)據(jù)庫庫表中填充數(shù)數(shù)據(jù)、在數(shù)據(jù)據(jù)表中更新已已存在的數(shù)據(jù)據(jù)、刪除數(shù)據(jù)據(jù)、執(zhí)行數(shù)據(jù)據(jù)庫查詢、控控制數(shù)據(jù)庫訪訪問權(quán)限和數(shù)數(shù)據(jù)庫總體管管理。主要分分以下幾類:數(shù)據(jù)定義語言言DDL數(shù)據(jù)定義語言(DDDL)是SSQL的一部部分,是SQQL中用來生生成、修改、刪刪除關(guān)系數(shù)據(jù)據(jù)庫的表、窗窗口、模式、目目錄等

55、基本要要素的語言成成分。它允許許數(shù)據(jù)庫用戶戶創(chuàng)建或重新新構(gòu)造數(shù)據(jù)庫庫對象,如創(chuàng)創(chuàng)建或刪除一一個數(shù)據(jù)庫表表。DDL所包含的的要點是:標(biāo)識所有的表表定義每一個表表中所含的列列給每一個表一一個保證唯一一的主關(guān)鍵字字確認在數(shù)據(jù)庫庫每一個表中中至少有一個個列是與其他他表中的列相相同。這些共共享的列提供供了邏輯上的的連接,允許許一個表中的的信息與另一一表中的相應(yīng)應(yīng)信息相關(guān)聯(lián)聯(lián)。將每一個表都都用第三范式式(3NF)或或更好的方法法來檢驗,以以確保防止插插入、刪除、更更新非法。數(shù)據(jù)定義語言的的功能包括數(shù)數(shù)據(jù)庫的定義義、基本表的的定義、視圖圖的定義、存存儲過程的定定義、規(guī)則的的定義和索引引的定義等部部分,這些命

56、命令包括:CREATEE DATTABASEE定義數(shù)據(jù)據(jù)庫ALTER DATAABASE修改數(shù)據(jù)據(jù)庫DROP DATABBASE刪除數(shù)據(jù)庫庫CREATEE TABBALE定義基本表表ALTER TABAAL修改基本本表DROP TABALL刪除基本本表CREATEE VIEEW定義視圖圖DROP VIEW刪除視圖圖CREATEE INDDEX定義存儲儲模式中的索索引DROP INDEXX刪除存儲儲模式中的索索引CREATEE PROOCEDURRE定義存儲儲過程DROP PROCEEDURE刪除存儲儲過程CREATEE RULLE定義數(shù)據(jù)據(jù)庫用戶角色色DROP RULE刪除數(shù)據(jù)據(jù)庫用戶角色色數(shù)

57、據(jù)操縱語言言DML數(shù)據(jù)操縱語言(DDML)是SSQL的一部部分,在SQQL中用來生生成、修改、刪刪除關(guān)系數(shù)據(jù)據(jù)庫結(jié)構(gòu),但但它并不涉及及數(shù)據(jù)。DMML用于在關(guān)關(guān)系型數(shù)據(jù)庫庫對象中操縱縱數(shù)據(jù),主要要包括數(shù)據(jù)的的插入、更新新和刪除三方方面的內(nèi)容。主主要的DMLL命令包括:INSERTT數(shù)據(jù)的插插入UPDATEE數(shù)據(jù)的更更新DELETEE數(shù)據(jù)的刪刪除數(shù)據(jù)查詢語言言DQL查詢是對數(shù)據(jù)庫庫中的信息的的尋找和定位位。數(shù)據(jù)查詢詢語言(DQQL)盡管值值包含了一條條命令,但它它是數(shù)據(jù)庫的的核心操作,是是關(guān)系型數(shù)據(jù)據(jù)庫用戶使用用SQL的焦點點。SQL語言提提供了SELLECT語句句進行數(shù)據(jù)庫庫的查詢,它它包含有許

58、多多選項合子句句,具有靈活活的使用方法法和豐富的功功能。不論是是簡單的還是是復(fù)雜的查詢詢,也不論是是模糊的還是是精確的查詢詢,都是很容容易創(chuàng)建的。事務(wù)控制命令令事務(wù)控制命令允允許用戶管理理數(shù)據(jù)庫的事事務(wù)。以防止止數(shù)據(jù)庫的表表或元素不被被破壞。主要要的命令包括括:COMMITT保存數(shù)據(jù)據(jù)庫中由事務(wù)務(wù)引起的改變變;ROLLBAACK撤銷沒保保存到數(shù)據(jù)庫庫中的事務(wù)的的事務(wù)控制命命令;GRANT授權(quán)REVOKEE收回授權(quán)權(quán)SAVEPOOINT創(chuàng)建彝族事事務(wù)中的撤銷銷點;SET TTRANSAACTIONN給事務(wù)命命名。3. 關(guān)系數(shù)據(jù)據(jù)的規(guī)范化理理論為了使數(shù)據(jù)庫設(shè)設(shè)計的方法走走向完備,人人們提出了規(guī)規(guī)范

59、化理論。規(guī)規(guī)范化可以使使關(guān)系的結(jié)構(gòu)構(gòu)簡化,更加加有規(guī)律,存存儲盡量減少少冗余,使數(shù)數(shù)據(jù)庫設(shè)計得得更為合理。規(guī)規(guī)范化的目的的可以概括為為以下幾點:保證庫中每一一個分量都不不可再分;消除冗余存儲儲,簡化檢索索操作;消除插入異常常和刪除異常常。 數(shù)據(jù)依賴賴規(guī)范化問題考慮慮的基本出發(fā)發(fā)點在于一個個關(guān)系的數(shù)據(jù)據(jù)項之間存在在數(shù)據(jù)依賴問問題。它是現(xiàn)現(xiàn)實世界屬性性間相互聯(lián)系系的抽象,是是數(shù)據(jù)內(nèi)在的的性質(zhì),是語語義的體現(xiàn)。關(guān)關(guān)系中數(shù)據(jù)項項之間存在兩兩種依賴關(guān)系系:函數(shù)依賴賴和多值依賴賴。函數(shù)依賴:設(shè)RR(U)是屬性集集U上的關(guān)系模模式。X,Y是U的子集集。若對于RR(U)的任意一個可能的關(guān)關(guān)系r,r中不可能存存

60、在兩個元組組在X上的屬性值值相等,而在在Y上的屬性值值不等,則稱稱X函數(shù)確定Y或Y函數(shù)依賴于于X,記為XY。函數(shù)依賴普遍存存在于現(xiàn)實生生活中,如:對一個學(xué)生生的描述,描描述的屬性有有學(xué)號、姓名等,在給定學(xué)學(xué)號的情況下下,就可以唯唯一地確定其其姓名,不能能出現(xiàn)一個學(xué)學(xué)號對應(yīng)兩個個以上姓名的的情況,就稱稱“姓名”函數(shù)依賴“學(xué)號”。函數(shù)依賴賴描述的是屬屬性之間的單單值對應(yīng)關(guān)系系,即給定一一個關(guān)鍵字,就就能確定關(guān)系系模式中的所所有屬性,且且屬性值是唯唯一的。在關(guān)關(guān)系模式中函函數(shù)依賴可以以描述一對一一和多對一的的關(guān)系,但無無法描述一對對多和多對多多的關(guān)系。多值依賴:若結(jié)結(jié)定X,有一組屬屬性值Y與之對應(yīng),

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論