第1章數(shù)據(jù)庫基礎(chǔ)知識_第1頁
第1章數(shù)據(jù)庫基礎(chǔ)知識_第2頁
第1章數(shù)據(jù)庫基礎(chǔ)知識_第3頁
第1章數(shù)據(jù)庫基礎(chǔ)知識_第4頁
第1章數(shù)據(jù)庫基礎(chǔ)知識_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、13第1章 數(shù)據(jù)庫基礎(chǔ)知識第1章 數(shù)據(jù)庫基礎(chǔ)知識數(shù)據(jù)庫是存放數(shù)據(jù)及相關(guān)信息的倉庫,是事務處理、信息管理等應用系統(tǒng)的基礎(chǔ),數(shù)據(jù)管理系統(tǒng)通過將大量的數(shù)據(jù)按一定的數(shù)據(jù)模型組織起來,提供存儲、維護、檢索數(shù)據(jù)的功能,使應用系統(tǒng)可以方便地、及時地、準確地從數(shù)據(jù)庫中獲取所需的信息。本章主要內(nèi)容:l 數(shù)據(jù)處理的相關(guān)概念l 數(shù)據(jù)庫系統(tǒng)的組成l 數(shù)據(jù)模型的相關(guān)概念l 關(guān)系型數(shù)據(jù)庫的相關(guān)概念1.1 數(shù)據(jù)管理1.1.1 數(shù)據(jù)與信息1信息一般意義上,信息是指事物存在的方式和運動狀態(tài)的表現(xiàn)形式。這里的“事物”泛指存在于人類社會、思維活動和自然界中一切可能的對象?!按嬖诜绞健笔侵甘挛锏膬?nèi)部結(jié)構(gòu)和外部聯(lián)系?!斑\動狀態(tài)”則是指

2、事物在時間和空間上變化所展示的特征、態(tài)勢和規(guī)律。概括地講,信息是對客觀事物的反映?,F(xiàn)實生活中,人們經(jīng)常接觸各種各樣的信息,并根據(jù)這些信息做出反映。例如,在超市挑選某種奶粉時,首先要了解該奶粉的價格、質(zhì)量及包裝等,然后根據(jù)這些信息決定是否購買;再如,選修一門課程時,可以根據(jù)課程教師、課程性質(zhì)及它的作用來決定是否選修等。2數(shù)據(jù)數(shù)據(jù)是指表達信息的物理符號。在計算機中,數(shù)據(jù)是指能被計算機存儲和處理的、反映客觀事物的物理符號序列。數(shù)據(jù)反映信息,而信息則依靠數(shù)據(jù)表達。表達信息的符號不僅可以是數(shù)字、字母、文字和其他特殊字符組成的文本形式的數(shù)據(jù),還可以是圖形、圖像、動畫、影像、聲音等多媒體數(shù)據(jù)。在計算機中,主

3、要使用磁盤、光盤等外部存儲器來存儲數(shù)據(jù),通過計算機軟件和應用程序來管理與處理數(shù)據(jù)。3數(shù)據(jù)與信息的關(guān)系數(shù)據(jù)與信息是兩個既有聯(lián)系,又有區(qū)別的概念。數(shù)據(jù)是信息的符號表示或載體,信息則是數(shù)據(jù)的內(nèi)涵,是對數(shù)據(jù)的語義解釋;數(shù)據(jù)是物理性的,是被加工的對象,而信息是對數(shù)據(jù)加工的結(jié)果,是觀念性的,并依賴于數(shù)據(jù)而存在。數(shù)據(jù)表示了信息,而信息只有通過數(shù)據(jù)形式表示出來才能被人們理解和接受。信息是有用的數(shù)據(jù),信息是通過數(shù)據(jù)符號來傳播的,數(shù)據(jù)如不具有知識性和有用性則不能稱其為信息。1.1.2 數(shù)據(jù)處理與數(shù)據(jù)管理1數(shù)據(jù)處理數(shù)據(jù)處理是對數(shù)據(jù)的采集、存儲、檢索、加工、變換和傳輸。數(shù)據(jù)是對事實、概念或指令的一種表達形式,可由人工

4、或自動化裝置進行處理。數(shù)據(jù)的形式可以是數(shù)字、文字、圖形或聲音等。數(shù)據(jù)經(jīng)過解釋并賦予一定的意義之后,便成為信息。數(shù)據(jù)處理的基本目的是從大量的、可能是雜亂無章的、難以理解的數(shù)據(jù)中抽取并推導出對于某些特定的人們來說是有價值、有意義的數(shù)據(jù)。數(shù)據(jù)處理是系統(tǒng)工程和自動控制的基本環(huán)節(jié)。數(shù)據(jù)處理貫穿于社會生產(chǎn)和社會生活的各個領(lǐng)域。數(shù)據(jù)處理技術(shù)的發(fā)展及其應用的廣度和深度,極大地影響著人類社會發(fā)展的進程。在計算機中,使用計算機外存儲器,如磁盤來存儲數(shù)據(jù)。而對數(shù)據(jù)的加工處理是通過計算機軟件進行的。2數(shù)據(jù)管理數(shù)據(jù)處理的中心問題是數(shù)據(jù)管理。數(shù)據(jù)管理是利用計算機硬件和軟件技術(shù)對數(shù)據(jù)進行有效的收集、存儲、處理和應用的過程。

5、其目的在于充分有效地發(fā)揮數(shù)據(jù)的作用,實現(xiàn)數(shù)據(jù)有效管理的關(guān)鍵是數(shù)據(jù)組織。1.1.3 數(shù)據(jù)處理技術(shù)的發(fā)展隨著計算機技術(shù)的發(fā)展,數(shù)據(jù)管理經(jīng)歷了人工管理、文件系統(tǒng)、數(shù)據(jù)庫系統(tǒng)三個發(fā)展階段。在數(shù)據(jù)庫系統(tǒng)中所建立的數(shù)據(jù)結(jié)構(gòu),更充分地描述了數(shù)據(jù)間的內(nèi)在聯(lián)系。便于數(shù)據(jù)修改、更新與擴充,同時保證了數(shù)據(jù)的獨立性、可靠性、安全性與完整性,減少了數(shù)據(jù)冗余,提高了數(shù)據(jù)共享程度及數(shù)據(jù)管理效率。(1)人工管理階段20世紀50年代中期以前,計算機主要用于科學計算,這一階段數(shù)據(jù)管理的主要特征是: 數(shù)據(jù)不保存。由于當時計算機主要用于科學計算,一般不需要將數(shù)據(jù)長期保存,只是在計算某一課題時將數(shù)據(jù)輸入,用完就撤走。不僅對用戶數(shù)據(jù)如此

6、處置,對系統(tǒng)軟件有時也是這樣。 應用程序管理數(shù)據(jù)。數(shù)據(jù)需要由應用程序自己設(shè)計、說明和管理,沒有相應的軟件系統(tǒng)負責數(shù)據(jù)的管理工作。 數(shù)據(jù)不能共享。數(shù)據(jù)是面向應用程序的,一組數(shù)據(jù)只能對應一個程序,因此程序與程序之間有大量的冗余。 數(shù)據(jù)不具有獨立性。數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)發(fā)生變化后,必須對應用程序做相應的修改,這就加重了程序員的負擔。人工管理階段應用程序與數(shù)據(jù)之間的一一對應關(guān)系如圖1-1所示:圖1-1 人工管理階段應用程序與數(shù)據(jù)的對應關(guān)系(2)文件系統(tǒng)階段20世紀50年代后期到60年代中期,這時硬件方面已經(jīng)有了磁盤、磁鼓等直接存取存儲設(shè)備;軟件方面,操作系統(tǒng)中已經(jīng)有了專門的數(shù)據(jù)管理軟件,一般稱為文

7、件系統(tǒng);處理方式上不僅有了批處理,而且能夠聯(lián)機實時處理。用文件系統(tǒng)管理數(shù)據(jù)具有如下特點: 數(shù)據(jù)可以長期保存。由于大量用于數(shù)據(jù)處理,數(shù)據(jù)需要長期保留在外存上反復進行查詢、修改、插入和刪除等操作。 由文件系統(tǒng)管理數(shù)據(jù)。文件系統(tǒng)也存在著一些缺點,其中主要的是數(shù)據(jù)共享性差,冗余度大。在文件系統(tǒng)中,一個文件基本上對應于一個應用程序,即文件仍然是面向應用的。當不同的應用程序具有部分相同的數(shù)據(jù)時,也必須建立各自的文件,而不能共享相同的數(shù)據(jù),因此數(shù)據(jù)冗余度大,浪費存儲空間。同時,由于相同數(shù)據(jù)的重復存儲、各自管理,容易造成數(shù)據(jù)的不一致性,給數(shù)據(jù)的修改和維護帶來了困難。文件系統(tǒng)階段應用程序與數(shù)據(jù)之間的對應關(guān)系如圖

8、1-2所示。圖1-2 文件系統(tǒng)階段應用程序與數(shù)據(jù)的對應關(guān)系(3)數(shù)據(jù)庫系統(tǒng)階段20世紀60年代后期以來,計算機管理的對象規(guī)模越來越大,應用范圍也越來越廣泛,數(shù)據(jù)量急劇增長,同時多種應用、多種語言互相覆蓋地共享數(shù)據(jù)集合的要求越來越強烈,數(shù)據(jù)庫技術(shù)應運而生,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)。 用數(shù)據(jù)庫系統(tǒng)來管理數(shù)據(jù)比文件系統(tǒng)具有明顯的優(yōu)點。為了實現(xiàn)數(shù)據(jù)的統(tǒng)一管理,達到數(shù)據(jù)共享的目的,產(chǎn)生了數(shù)據(jù)庫技術(shù)。數(shù)據(jù)庫技術(shù)進一步克服了文件系統(tǒng)的不足,提供了對數(shù)據(jù)進行管理的更有效、更方便的功能,產(chǎn)生了數(shù)據(jù)庫管理系統(tǒng)。從文件系統(tǒng)到數(shù)據(jù)庫系統(tǒng),標志著數(shù)據(jù)庫管理技術(shù)的飛躍。數(shù)據(jù)庫系統(tǒng)階段應用程序與數(shù)據(jù)之

9、間的對應關(guān)系如圖1-3所示。圖1-3 數(shù)據(jù)庫系統(tǒng)階段應用程序與數(shù)據(jù)的對應關(guān)系1.2 數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)DBS(DataBase System)是指引進數(shù)據(jù)庫技術(shù)后的計算機系統(tǒng),主要包括計算機硬件系統(tǒng)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫應用系統(tǒng)和用戶五個部分。1.2.1 數(shù)據(jù)庫數(shù)據(jù)庫DB(DataBase)是指長期存儲在計算機內(nèi),有組織的,可共享的數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲,具有較小的冗余、較高的數(shù)據(jù)獨立性和易擴展性,并可為各種用戶共享,并且還具有完善的自我保護能力和數(shù)據(jù)恢復能力。1.2.2 數(shù)據(jù)庫管理系統(tǒng) 數(shù)據(jù)庫管理系統(tǒng)DBMS(DataBase Managemen

10、t System)是數(shù)據(jù)庫系統(tǒng)的核心軟件,是在操作系統(tǒng)的支持下工作,解決如何科學地組織和存儲數(shù)據(jù),如何高效獲取和維護數(shù)據(jù)的系統(tǒng)軟件。其主要功能包括:數(shù)據(jù)定義功能、數(shù)據(jù)操縱功能、數(shù)據(jù)庫的運行管理和數(shù)據(jù)庫的建立與維護。1.2.3 數(shù)據(jù)庫應用系統(tǒng)數(shù)據(jù)庫應用系統(tǒng)DBAS(DataBase Application System)是指利用數(shù)據(jù)庫系統(tǒng)資源開發(fā)的面向?qū)嶋H應用的軟件系統(tǒng)。一個數(shù)據(jù)庫應用系統(tǒng)通常由數(shù)據(jù)庫和應用程序組成。它們都是在數(shù)據(jù)庫管理系統(tǒng)支持下設(shè)計和開發(fā)出來的。1.2.4 計算機硬件系統(tǒng)硬件系統(tǒng)是指運行數(shù)據(jù)庫系統(tǒng)所需要的硬件設(shè)備,包括主機、顯示器等。1.2.5 用戶用戶是指使用和管理數(shù)據(jù)庫的人

11、,他們可以對數(shù)據(jù)庫進行存儲、維護和檢索等操作。數(shù)據(jù)庫系統(tǒng)中用戶可以分為三類。1終端用戶終端用戶主要是指使用數(shù)據(jù)庫的各級管理人員、工程技術(shù)人員等,一般來說,他們是非計算機專業(yè)人員。2應用程序員應用程序員負責為終端用戶設(shè)計和編制應用程序,以便終端用戶對數(shù)據(jù)庫進行操作。3數(shù)據(jù)庫管理員數(shù)據(jù)庫管理員DBA(DataBase Administrator)是指對數(shù)據(jù)庫進行設(shè)計、維護和管理的專門人員。數(shù)據(jù)庫系統(tǒng)的組成結(jié)構(gòu)如圖1-4所示。硬件OSDBMSM應用開發(fā)工具應用系統(tǒng)用戶圖1-4 數(shù)據(jù)庫系統(tǒng)組成結(jié)構(gòu)圖1.2.6 數(shù)據(jù)庫系統(tǒng)的特點1數(shù)據(jù)結(jié)構(gòu)化在文件系統(tǒng)中,盡管記錄內(nèi)部已有了某些結(jié)構(gòu),但記錄之間沒有聯(lián)系。而

12、數(shù)據(jù)庫系統(tǒng)則實現(xiàn)了整體數(shù)據(jù)的結(jié)構(gòu)化,這是數(shù)據(jù)庫的主要特征之一,也是數(shù)據(jù)庫與文件系統(tǒng)的本質(zhì)區(qū)別。在數(shù)據(jù)庫系統(tǒng)中,采用一定的數(shù)據(jù)模型,將整個組織的數(shù)據(jù)結(jié)構(gòu)化成一個數(shù)據(jù)整體,數(shù)據(jù)不再只面向應用程序,而是面向系統(tǒng),這種整體的結(jié)構(gòu)化使得系統(tǒng)彈性大,有利于實現(xiàn)數(shù)據(jù)共享。另外,存儲數(shù)據(jù)的方式更加靈活,可以存取數(shù)據(jù)庫中的一個數(shù)據(jù)項或一組數(shù)據(jù)項、一條記錄或一組記錄。2數(shù)據(jù)共享性高、冗余性低、易擴充數(shù)據(jù)共享度高使系統(tǒng)現(xiàn)有用戶或程序可以共同享用數(shù)據(jù)庫中的數(shù)據(jù);當系統(tǒng)需要擴充時,再開發(fā)的新用戶或新程序還可以共享原有的數(shù)據(jù)資源;多用戶或多程序可以在同一時刻共同使用同一數(shù)據(jù)。減少冗余數(shù)據(jù)可以使數(shù)據(jù)統(tǒng)一,避免產(chǎn)生數(shù)據(jù)的不一

13、致問題。便于數(shù)據(jù)維護,避免數(shù)據(jù)統(tǒng)計錯誤。數(shù)據(jù)量小可以節(jié)約存儲空間,使數(shù)據(jù)的存儲、管理和查詢都容易實現(xiàn)。3數(shù)據(jù)獨立性高數(shù)據(jù)和程序相互之間的依賴性低、獨立性高的特性稱為數(shù)據(jù)獨立性高。數(shù)據(jù)庫中的數(shù)據(jù)獨立性可以分為兩級:(1)數(shù)據(jù)的物理獨立性(Physical Data Independence)數(shù)據(jù)的物理獨立性是指應用程序?qū)?shù)據(jù)存儲結(jié)構(gòu)的依賴程度。數(shù)據(jù)物理獨立性高是指當數(shù)據(jù)的物理結(jié)構(gòu)發(fā)生變化時,應用程序不需要修改也可以正常工作。數(shù)據(jù)庫系統(tǒng)之所以具有數(shù)據(jù)物理獨立性高的特點,是因為數(shù)據(jù)庫管理系統(tǒng)能夠提供數(shù)據(jù)的物理結(jié)構(gòu)與邏輯結(jié)構(gòu)之間的映像(Mapping)或轉(zhuǎn)換功能。(2)數(shù)據(jù)的邏輯獨立性(Logical

14、 Data Independence)數(shù)據(jù)的邏輯獨立性是指應用程序?qū)?shù)據(jù)全局邏輯結(jié)構(gòu)的依賴程度。數(shù)據(jù)邏輯獨立性高是指當數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)全局邏輯結(jié)構(gòu)改變時,它們對應的應用程序不需要改變?nèi)钥梢哉_\行。4數(shù)據(jù)由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理和控制數(shù)據(jù)庫的共享是并發(fā)的(concurrency)共享,即多個用戶可以同時存取數(shù)據(jù)庫中的數(shù)據(jù),甚至可以同時存取數(shù)據(jù)庫中的同一個數(shù)據(jù)。DBMS必須提供以下幾方面的數(shù)據(jù)控制功能:(1)數(shù)據(jù)的安全性保護(security)(2)數(shù)據(jù)的完整性檢查(integrity)(3)數(shù)據(jù)庫的并發(fā)訪問控制(concurrency)(4)數(shù)據(jù)庫的故障恢復(recovery)1.3 數(shù)據(jù)模型

15、數(shù)據(jù)模型是對現(xiàn)實世界數(shù)據(jù)特征的抽象,是用來描述現(xiàn)實世界中事物及其聯(lián)系的。它將數(shù)據(jù)庫中的數(shù)據(jù)按照一定的結(jié)構(gòu)組織起來,以反映事物本身及事物之間的各種聯(lián)系。由于計算機不可能直接處理現(xiàn)實世界中的具體事物,所以人們必須借助數(shù)據(jù)模型,把具體事物轉(zhuǎn)換成計算機能夠處理的數(shù)據(jù)。1.3.1 相關(guān)概念1實體的描述現(xiàn)實世界存在各種事物,事物和事物之間存在著各種聯(lián)系。這些聯(lián)系是客觀存在的,是由事物本身的性質(zhì)決定的。例如,學校的教學系統(tǒng)中有教師、學生、課程,教師給學生授課,學生選修課程并取得成績;在醫(yī)院里有醫(yī)生、處方、藥,醫(yī)生開處方,處方里包含藥等等。如果管理的對象較多或者比較特殊,事物之間的聯(lián)系就可能較為復雜。(1)實

16、體客觀存在并且能夠相互區(qū)別的事物稱為實體。實體可以是實際的事物,也可以是抽象的事件。例如,教師、學生、職工、醫(yī)生、圖書等屬于實際事物;選課、開處方等活動是比較抽象的事件。(2)實體的屬性描述實體的特性稱為屬性。例如,學生實體用學號、姓名,性別,出生日期,成績等若干屬性來描述;圖書實體用編號,分類號,書名,作者,價格等多個屬性來描述。(3)實體集和實體型屬性值的集合表示一個實體,而屬性的集合表示一種實體的類型,稱為實體型。同類型的實體的集合,稱為實體集。在Visual FoxPro中,用“二維表”存放同一類實體,即實體集,例如,學生表、圖書表等。Visual FoxPro的一個“表”包含若干字段

17、,“表”中所包含的“字段”就是實體的屬性。字段值的集合組成表中的一個記錄,代表一個具體的實體,即每一記錄表示一個實體。2實體間聯(lián)系實體之間的對應關(guān)系稱為聯(lián)系,它反映現(xiàn)實世界事物之間的相互關(guān)聯(lián)。例如,一個教師可以講授多門課程;一門課程可以被多名學生選修。實體間聯(lián)系的種類是指一個實體型中可能出現(xiàn)的每一個實體與另一個實體型中多少個具體實體存在聯(lián)系。兩個實體間的聯(lián)系可以歸納為三種類型。(1)一對一聯(lián)系考查部門和經(jīng)理兩個實體型,如果一個部門只有一個經(jīng)理,一個經(jīng)理不能同時在其他部門兼任經(jīng)理,在這種情況下部門和經(jīng)理之間存在一對一的聯(lián)系。在Visual FoxPro中,一對一的聯(lián)系表現(xiàn)為主表中的每一條記錄只與

18、相關(guān)表中的一條記錄相關(guān)聯(lián)。例如,一個單位人事部門的職工表和財務部門的工資表之間就存在一對一的聯(lián)系。對于一對一的聯(lián)系,Visual FoxPro多采用合并表的方式減少冗余。(2)一對多聯(lián)系考查部門和職工兩個實體型,一個部門有多個職工,而一個職工只在一個部門供職,即只占一個部門的編制。部門與職工之間則存在一對多的聯(lián)系??疾閷W生和系兩個實體集,一個學生只能在一個系注冊,而一個系有很多個學生。系和學生也是一對多的聯(lián)系。在Visual FoxPro中,一對多的聯(lián)系表現(xiàn)為主表中的每一條記錄與相關(guān)表中的多條記錄相關(guān)聯(lián)。即表A的一個記錄在表B中可以有多個記錄與之對應,但表B中的一個記錄最多只能有一個表A的記錄

19、與之對應。(3)多對多聯(lián)系考查學生與課程兩個實體型,一個學生可以選修多門課程,一門課程由多個學生選修。因此,學生與課程間存在多對多的聯(lián)系。圖書與讀者之間也是多對多聯(lián)系,因為一位讀者可以借閱若干本圖書;同一本圖書也可以相繼被幾個讀者借閱。在Visual FoxPro中,多對多的聯(lián)系表現(xiàn)為一個表中的多個記錄在相關(guān)表中同樣有多個記錄與其匹配。即表A的一條記錄在表B中可以對應多條記錄,而表B的一條記錄在表A中也可以對應多條記錄。對于多對多的聯(lián)系,Visual FoxPro多采用分解出一個紐帶表,將多對多的聯(lián)系轉(zhuǎn)化為一對多的聯(lián)系進行處理。3數(shù)據(jù)模型為了反映事物本身及事物之間的各種聯(lián)系,數(shù)據(jù)庫中的數(shù)據(jù)必須

20、有一定的結(jié)構(gòu),這種結(jié)構(gòu)用數(shù)據(jù)模型來表示。數(shù)據(jù)庫不僅管理數(shù)據(jù)本身,而且要使用數(shù)據(jù)模型表示出數(shù)據(jù)之間的聯(lián)系??梢?,數(shù)據(jù)模型是數(shù)據(jù)庫管理系統(tǒng)用來表示實體及實體間聯(lián)系的方法。任何一個數(shù)據(jù)庫管理系統(tǒng)都是基于某種數(shù)據(jù)模型的。數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型分為三種:層次模型、網(wǎng)狀模型、關(guān)系模型。因此,使用支持某種特定數(shù)據(jù)模型的數(shù)據(jù)庫管理系統(tǒng)開發(fā)出來的應用系統(tǒng)相應地稱為層次數(shù)據(jù)庫系統(tǒng)、網(wǎng)狀數(shù)據(jù)庫系統(tǒng)、關(guān)系數(shù)據(jù)庫系統(tǒng)。1.3.2 層次模型用樹型(層次)結(jié)構(gòu)表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為層次模型(Hierarchical Model)。 在一個層次模型中的限制條件是:有且僅有一個節(jié)點,無父節(jié)點,此節(jié)點為樹

21、的根;其他節(jié)點有且僅有一個父節(jié)點。層次模型的特點是記錄之間的聯(lián)系通過指針實現(xiàn),查詢效率高。缺點是只能表示一對多的聯(lián)系。層次數(shù)據(jù)模型結(jié)構(gòu)如圖1-5所示。圖1-5 層次模型1.3.3 網(wǎng)狀模型用網(wǎng)絡結(jié)構(gòu)表示實體類型及其實體之間聯(lián)系的模型。顧名思義,一個事物和另外的幾個都有聯(lián)系這樣構(gòu)成一張網(wǎng)狀圖。網(wǎng)狀模型的數(shù)據(jù)結(jié)構(gòu)主要有以下兩個特征,允許一個以上的節(jié)點無雙親;一個節(jié)點可以有多于一個的雙親。網(wǎng)狀數(shù)據(jù)模型如圖1-6所示。圖1-6 網(wǎng)狀模型1.3.4 關(guān)系模型用二維表的形式表示實體和實體間聯(lián)系的數(shù)據(jù)模型。關(guān)系模型與層次模型、網(wǎng)狀模型的本質(zhì)區(qū)別體現(xiàn)在表示實體間的聯(lián)系是不一樣的。對于層次模型和網(wǎng)狀模型來說,它

22、們是用鏈接指針來存儲和體現(xiàn)聯(lián)系的。在關(guān)系模型中,實體和實體之間的聯(lián)系都是用二維表來表示的。關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。每一個二維表稱為一個關(guān)系,每個關(guān)系有一個名稱,稱為關(guān)系名。1.4 關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫是基于關(guān)系模型的數(shù)據(jù)庫系統(tǒng)。關(guān)系數(shù)據(jù)庫中包含若干個關(guān)系,每個關(guān)系對應一張二維表。1.4.1 關(guān)系模型的基本概念1關(guān)系一個關(guān)系就是一張二維表。每個關(guān)系用關(guān)系名表示。在Visual FoxPro中,一個關(guān)系對應一個表文件,其擴展名為DBF。對關(guān)系的描述稱為關(guān)系模式,一個關(guān)系模式對應一個關(guān)系的結(jié)構(gòu)。其格式為:關(guān)系名(屬性名1,屬性名2,屬性名n)在Visual FoxPro

23、中表示為表結(jié)構(gòu):表名(字段名1,字段名2,字段名n)2元組關(guān)系表中的一行稱為一個元組。在Visual FoxPro中,一個元組對應表中的一條記錄。3屬性二維表中垂直方向的列稱為屬性,每一列有一個屬性名。在Visual FoxPro中,一個屬性對應表中的一個字段。每個字段的數(shù)據(jù)類型、寬度等在創(chuàng)建表的結(jié)構(gòu)時規(guī)定。4域?qū)傩缘娜≈捣秶?,即不同元組對同一個屬性的取值所限定的范圍。例如,姓名的取值范圍是文本字符;性別只能從“男”、“女”兩個漢字中取其一;邏輯型屬性婚否只能從邏輯真或者邏輯假兩個值中取值。5碼屬性或者屬性的組合,其值能夠唯一標識一個元組。在Visual FoxPro中對應的是關(guān)鍵字,體現(xiàn)為用

24、來唯一標識關(guān)系中記錄的字段或字段組合。如果碼的任意真子集都不能成為碼,這樣的最小碼稱為“候選碼”。候選碼可能有多個,被選中用來區(qū)別不同元組的候選碼稱為主碼。在Visual FoxPro中,對應的是候選關(guān)鍵字和主關(guān)鍵字。主關(guān)鍵字最多只能有一個,簡稱“主鍵”。6外部關(guān)鍵字如果表中的一個字段不是本表的主關(guān)鍵字或候選關(guān)鍵字,而是另外一個表的主關(guān)鍵字或候選關(guān)鍵字,這個字段就稱為外部關(guān)鍵字,簡稱“外鍵”。1.4.2 關(guān)系的特點關(guān)系必須規(guī)范化。所謂規(guī)范化是指關(guān)系模型中的每一個關(guān)系模式都必須滿足一定的要求。最基本的要求是每個屬性必須是不可分割的數(shù)據(jù)單元,即表中不能再包含表。在同一個關(guān)系中不能出現(xiàn)相同的屬性名。

25、在Visual FoxPro中不允許同一個表中有相同的字段名。關(guān)系中不允許有完全相同的元組,即冗余。在一個關(guān)系中元組的次序無關(guān)緊要。也就是說,任意交換兩行的位置并不影響數(shù)據(jù)的實際含義。在一個關(guān)系中列的次序無關(guān)緊要。任意交換兩列的位置也不影響數(shù)據(jù)的實際含義。1.4.3 關(guān)系的完整性規(guī)則數(shù)據(jù)完整性是指數(shù)據(jù)庫中數(shù)據(jù)的正確性和一致性。數(shù)據(jù)完整性是用來防止數(shù)據(jù)庫中存在不合法的數(shù)據(jù),防止錯誤的數(shù)據(jù)進入數(shù)據(jù)庫中。數(shù)據(jù)完整性可以分為實體完整性、域完整性和參照完整性。1實體完整性實體完整性是指數(shù)據(jù)庫表的每一行都擁有一個唯一的標識。實體完整性由實體完整性規(guī)則來定義。完整性規(guī)則是指表中的每一行在組成關(guān)鍵字的列上不能

26、有空值(NULL)或重復值,否則就不能起到唯一標識該行的作用。2域完整性域完整性是指數(shù)據(jù)庫中字段取值的正確性,包括數(shù)據(jù)類型、精度、取值范圍以及是否允許為空值等。取值范圍又分為靜態(tài)和動態(tài)兩種:靜態(tài)取值范圍是指字段的取值范圍是固定的,如成績在0100之間;動態(tài)取值范圍是指字段的取值范圍由另一個字段或多個字段的值決定,或根據(jù)字段的新值依賴于它的舊值。3參照完整性參照完整性是指數(shù)據(jù)庫中表與表之間存在主鍵與外鍵的約束關(guān)系,利用這些約束關(guān)系可以維護數(shù)據(jù)的一致性或相容性,即在數(shù)據(jù)庫的多個表之間存在某種參照關(guān)系。具體地說,就是對相互有關(guān)聯(lián)的兩個表中的某一個表進行更新記錄、刪除記錄或插入新紀錄時,由于與另一個表

27、之間存在約束關(guān)系,更新、刪除或插入操作不能隨心所欲,根據(jù)選擇的約束條件的嚴格程度不同,或許禁止更新、刪除、插入操作,或許有條件地執(zhí)行,或許無條件地允許操作。1.4.4 關(guān)系運算查詢數(shù)據(jù)庫時,需要找到滿足用戶需求的數(shù)據(jù),這就要對關(guān)系進行一定的關(guān)系運算。關(guān)系的基本運算有兩類:一類是傳統(tǒng)的集合運算,包括并、差、交運算,另一類是專門的關(guān)系運算包括選擇、投影、連接運算。1傳統(tǒng)集合運算傳統(tǒng)的集合運算要求進行并、差、交集合的兩個關(guān)系必須具有相同的關(guān)系模式,即相同結(jié)構(gòu)。(1)并兩個相同結(jié)構(gòu)關(guān)系的并是由屬于這兩個關(guān)系的元組組成的集合。例如,有兩個結(jié)構(gòu)相同的學生關(guān)系,分別存放兩個班的學生,把一個班的學生記錄追加到

28、另一個班的學生記錄后面,這就是兩個關(guān)系的并集。(2)差設(shè)有兩個相同結(jié)構(gòu)的關(guān)系A(chǔ)和B,A差B的結(jié)果是由屬于A但不屬于B的元組組成的集合,即差運算的結(jié)果是從A中去掉B中也有的元組。例如,設(shè)有選修“大學英語”課程的學生關(guān)系A(chǔ),選修“計算機基礎(chǔ)”課程的學生關(guān)系B,查詢選修了“大學英語”課程的學生,但沒有選修“計算機基礎(chǔ)”課程的學生,就應該進行差運算。(3)交兩個具有相同結(jié)構(gòu)的關(guān)系A(chǔ)和B,它們的交是由既屬于A又屬于B的元組組成的集合。交運算的結(jié)果是A和B的共同元組。例如,有選修“大學英語”課程的學生關(guān)系A(chǔ),有選修“計算機基礎(chǔ)”課程的學生關(guān)系B。查詢既選修“大學英語”課程又選修“計算機基礎(chǔ)”課程的學生,就

29、應該進行交運算。2專門關(guān)系運算專門關(guān)系運算的對象及結(jié)果仍然是關(guān)系。常見的關(guān)系運算有選擇運算、投影運算及連接運算。(1)選擇運算選擇是從二維表中選出符合條件的記錄,構(gòu)成一個新的文件,所形成的新文件(關(guān)系)是原有文件(關(guān)系)的一個子集。它是從行的角度對關(guān)系進行的運算,即從指定的二維表中選擇滿足條件的行,構(gòu)成新的二維表。例如,從表1-1中選擇籍貫是“甘肅”的學生組成新的關(guān)系。表1-1 學生情況表學號姓名性別出生日期所在院系籍貫入學成績2009050101陳小飛男12/23/1990信息學院浙江5012009050102李 芳女02/11/1991外語學院甘肅4982009050103李 亮男10/2

30、1/1990電氣學院陜西4782009050104李云霞女05/21/1991信息學院四川5152009050105王 鵬男07/09/1991電氣學院甘肅465選擇的條件以邏輯表達式給出,使得邏輯表達式的值為真的元組被選取。在Visual FoxPro中,選擇操作使用命令短語“FOR|WHILE<條件>”或設(shè)置記錄過濾器來實現(xiàn)。此例的顯示操作命令:List for籍貫=甘肅 注意:經(jīng)過選擇運算得到的結(jié)果可以形成新的關(guān)系,其關(guān)系模式不變,但其中的元組是原關(guān)系的一個子集。(2)投影運算投影是從一個文件(關(guān)系)中選擇所需要的若干字段,構(gòu)成一個新的文件,所形成的新的文件(關(guān)系),也是原有

31、文件(關(guān)系)的一個子集。它是從列的角度對關(guān)系進行的運算。例如,查找籍貫是“甘肅”的學生的姓名、性別及入學成績。顯示操作命令為:List for籍貫=甘肅fields 姓名,性別,入學成績(3)連接運算連接是從兩個關(guān)系中按一定的條件分別選取其中的若干字段,形成新關(guān)系。連接同時涉及到兩個二維表的運算,它是將兩個關(guān)系在給定的屬性上滿足給定條件的記錄連接起來而得到的一個新的關(guān)系。連接運算是同時從行和列的角度進行的運算。它是按連接字段值相同的原則將兩個二維表連接成一個新的表。本章小結(jié)本章介紹了數(shù)據(jù)庫基礎(chǔ)知識,內(nèi)容包括:(1)數(shù)據(jù)處理與數(shù)據(jù)管理的相關(guān)概念。(2)數(shù)據(jù)庫系統(tǒng)組成、數(shù)據(jù)庫系統(tǒng)特點。(3)數(shù)據(jù)模

32、型的基本概念和三種基本數(shù)據(jù)模型。(4)關(guān)系數(shù)據(jù)庫的基本概念、關(guān)系的完整性規(guī)則和關(guān)系運算。上述內(nèi)容是學好Visual FoxPro數(shù)據(jù)庫程序設(shè)計的基礎(chǔ),建議讀者在充分理解基本概念的前提下,熟練掌握三種專門的關(guān)系運算操作,這對于學習Visual FoxPro數(shù)據(jù)庫操作命令有很大幫助。習題一一、選擇題1. 下列有關(guān)數(shù)據(jù)庫的描述中,正確的是( )A 數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過程B 數(shù)據(jù)的物理獨立性是指當數(shù)據(jù)的邏輯結(jié)構(gòu)改變時,數(shù)據(jù)的存儲結(jié)構(gòu)不變C 關(guān)系中的每一列稱為元組,一個元組就是一個字段D 如果一個關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個關(guān)系的關(guān)鍵字,則稱其為關(guān)系的外關(guān)鍵字2. 下列

33、有關(guān)數(shù)據(jù)庫的描述中,正確的是( )A 數(shù)據(jù)庫是一個DBF文件B 數(shù)據(jù)庫是一個關(guān)系C 數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集D 數(shù)據(jù)庫是一組文件3. 在關(guān)系模型中,每個關(guān)系模式中的關(guān)鍵字( )A 可由多個任意屬性組成 B 最多有一個屬性組成C 可由一個或多個其值能唯一標識關(guān)系中任何元組的屬性組成D 以上說法都不對4. Visual FoxPro是一種( )A 數(shù)據(jù)庫系統(tǒng)B 數(shù)據(jù)庫管理系統(tǒng)C 數(shù)據(jù)庫D 數(shù)據(jù)庫應用系統(tǒng)5. 下列敘述中正確的是( )A 數(shù)據(jù)庫系統(tǒng)是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持B 數(shù)據(jù)庫技術(shù)的根本目標是要解決數(shù)據(jù)的共享問題C 數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)D 以上3中說法都不對6. 下列敘述中正確的是( )A 為了建立一個關(guān)系,首先要構(gòu)造數(shù)據(jù)的邏輯關(guān)系B 表示關(guān)系的二維表中各元組的每一個分量還可以分成若干數(shù)據(jù)項C 一個關(guān)系的屬性名表稱為關(guān)系模式D 一個關(guān)系可以包含多個二維表7. 數(shù)據(jù)庫管理系統(tǒng)是( )A 操作系

溫馨提示

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

評論

0/150

提交評論