《Access數(shù)據(jù)庫程序設(shè)計》課件第1章 數(shù)據(jù)庫基礎(chǔ)_第1頁
《Access數(shù)據(jù)庫程序設(shè)計》課件第1章 數(shù)據(jù)庫基礎(chǔ)_第2頁
《Access數(shù)據(jù)庫程序設(shè)計》課件第1章 數(shù)據(jù)庫基礎(chǔ)_第3頁
《Access數(shù)據(jù)庫程序設(shè)計》課件第1章 數(shù)據(jù)庫基礎(chǔ)_第4頁
《Access數(shù)據(jù)庫程序設(shè)計》課件第1章 數(shù)據(jù)庫基礎(chǔ)_第5頁
已閱讀5頁,還剩84頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1.1數(shù)據(jù)管理發(fā)展概況1.2數(shù)據(jù)庫系統(tǒng)1.3數(shù)據(jù)模型1.4關(guān)系數(shù)據(jù)庫1.5關(guān)系運算1.6數(shù)據(jù)庫設(shè)計1.7關(guān)系數(shù)據(jù)理論1.1數(shù)據(jù)管理發(fā)展概況1.1.1數(shù)據(jù)、信息和數(shù)據(jù)處理1.數(shù)據(jù)數(shù)據(jù)(Data)是指存儲在某種存儲介質(zhì)(如計算機)上,能夠被識別的物理符號的集合,數(shù)據(jù)能夠反映事物的客觀特性。在計算機中,為了存儲和處理這些事物,就要抽象出事物中人們感興趣的、有代表性的特征,并用這些特征來描述事物,這些描述符號被人們稱為數(shù)據(jù),并賦予了特定的語義。數(shù)據(jù)具有刻畫事物、傳遞信息的功能。數(shù)據(jù)有一定的結(jié)構(gòu),其結(jié)構(gòu)又分為型和值。數(shù)據(jù)的型是指數(shù)據(jù)的數(shù)據(jù)類型;數(shù)據(jù)的值是指符合數(shù)據(jù)類型的具體值。數(shù)據(jù)的表現(xiàn)形式可以是多種多樣的,可以是數(shù)字、字母、文字和其他特殊字符組成的文本形式,也可以是圖形、圖像、動畫、影像、聲音等多媒體形式。在計算機系統(tǒng)中,一切能被計算機接收和處理的物理符號都稱為數(shù)據(jù)。2.信息信息(Information)是客觀現(xiàn)實世界中的事物、事件和概念的抽象反映。它所反映的是某一客觀系統(tǒng)中某一事物某一方面的屬性或某一時刻的表現(xiàn)形式。信息是數(shù)據(jù)的內(nèi)涵,是對數(shù)據(jù)的語義解釋,是數(shù)據(jù)含義的體現(xiàn),信息對于數(shù)據(jù)接收者來說是有意義的。同一條數(shù)據(jù)可以根據(jù)實際需要解釋為多條有意義的數(shù)據(jù)。3.數(shù)據(jù)與信息的關(guān)系數(shù)據(jù)和信息是兩個互相聯(lián)系、互相依賴但又互相區(qū)別的概念。數(shù)據(jù)是用來記錄信息的可識別的符號,是信息的具體表現(xiàn)形式,是信息的載體。信息則是有用的數(shù)據(jù),是數(shù)據(jù)的內(nèi)涵。信息是通過數(shù)據(jù)符號來傳播的,而數(shù)據(jù)若不具有知識性和有用性,則不能稱為信息,因此只有經(jīng)過加工處理,形成的具有使用價值的數(shù)據(jù)才能稱為信息。4.數(shù)據(jù)處理數(shù)據(jù)要經(jīng)過加工處理才能成為有意義的信息,這個加工處理就稱為數(shù)據(jù)處理(DataProcessing)。數(shù)據(jù)處理是對各種形式的數(shù)據(jù)進行收集、整理、存儲、加工和傳播的一系列活動的總和。數(shù)據(jù)處理也稱為信息處理,簡單來說就是將數(shù)據(jù)轉(zhuǎn)換為信息的過程。數(shù)據(jù)處理的基本目的是從大量的、雜亂無章的甚至難以理解的原始數(shù)據(jù)中,整理、提煉、抽取出對人們有價值、有意義的數(shù)據(jù)(信息)作為決策的依據(jù)。數(shù)據(jù)處理的真正含義是為了產(chǎn)生信息而處理數(shù)據(jù)。數(shù)據(jù)、信息和數(shù)據(jù)處理的關(guān)系如圖1-1所示。數(shù)據(jù)的組織、存儲、檢查和維護等工作是數(shù)據(jù)處理的基本環(huán)節(jié),這些工作一般統(tǒng)稱為數(shù)據(jù)管理。1.1.2數(shù)據(jù)管理技術(shù)的發(fā)展數(shù)據(jù)管理技術(shù)就是數(shù)據(jù)庫技術(shù),是應(yīng)對數(shù)據(jù)管理任務(wù)需要而產(chǎn)生的。數(shù)據(jù)管理是指對數(shù)據(jù)進行分類、組織、編碼、存儲、檢索和維護,是數(shù)據(jù)處理的核心問題。隨著計算機技術(shù)的不斷發(fā)展,在應(yīng)用需求的推動下,在計算機硬件、軟件發(fā)展的基礎(chǔ)上,數(shù)據(jù)管理技術(shù)經(jīng)歷了人工管理、文件系統(tǒng)、數(shù)據(jù)庫系統(tǒng)3個階段,每個階段的發(fā)展都以數(shù)據(jù)存儲冗余(重復(fù))不斷減小、數(shù)據(jù)獨立性不斷增強、數(shù)據(jù)操作更加方便簡單為標志。1.人工管理階段20世紀50年代中期以前,計算機主要應(yīng)用于科學(xué)計算,數(shù)據(jù)量較小,一般不需要長期保存數(shù)據(jù),再加上受到當(dāng)時硬件和軟件技術(shù)的限制,外部存儲器只有紙帶、卡片和磁帶,沒有硬盤等可以直接進行存取的存儲設(shè)備;軟件方面沒有操作系統(tǒng),沒有對數(shù)據(jù)進行管理的系統(tǒng)軟件;數(shù)據(jù)的管理完全在程序中進行,數(shù)據(jù)處理的方式基本上是批處理。在這個階段,數(shù)據(jù)操作在裸機上進行,由人工進行數(shù)據(jù)的管理。程序員在編寫應(yīng)用程序時既要設(shè)計算法,又要考慮數(shù)據(jù)的邏輯結(jié)構(gòu)、物理結(jié)構(gòu)以及輸入/輸出方法等問題。程序與數(shù)據(jù)是一個整體,數(shù)據(jù)是面向程序的,如果數(shù)據(jù)脫離了程序就無任何存在的價值。一組數(shù)據(jù)只能對應(yīng)一個程序,無法被其他程序使用,因此程序與程序之間存在大量的冗余數(shù)據(jù)。各程序之間的數(shù)據(jù)不能相互傳遞,缺少共享性,應(yīng)用程序的設(shè)計和維護負擔(dān)繁重。另外,如果數(shù)據(jù)的類型、格式或者輸入/輸出方式等邏輯結(jié)構(gòu)或者物理結(jié)構(gòu)發(fā)生變化,則必須對應(yīng)用程序做出相應(yīng)的修改。概括起來,這個階段有如下特點:(1)數(shù)據(jù)不保存。(2)程序與數(shù)據(jù)不具有獨立性,數(shù)據(jù)完全依賴程序。(3)數(shù)據(jù)不能共享,冗余度極高。(4)用戶管理數(shù)據(jù)。在人工管理階段,數(shù)據(jù)和程序之間的關(guān)系如圖1-2所示。2.文件系統(tǒng)階段文件系統(tǒng)提供了在外部存儲器上長期保存數(shù)據(jù)并對數(shù)據(jù)進行存取的手段。用戶可以把相關(guān)數(shù)據(jù)組織成一個文件存放在計算機中,由文件系統(tǒng)對數(shù)據(jù)進行存取管理。數(shù)據(jù)的處理方式有批處理,也有聯(lián)機實時處理。由于計算機此時大量用于信息處理,因此需要用戶能隨時對文件進行查詢、修改、插入和刪除等處理。文件中只存儲數(shù)據(jù),不存儲文件記錄的結(jié)構(gòu)描述信息,對數(shù)據(jù)的操作都以記錄為單位。文件的建立、存取、查詢、插入、刪除、修改等所有操作都要用程序來實現(xiàn)。在文件系統(tǒng)階段,文件的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)有一定的區(qū)別,這樣就使得程序與數(shù)據(jù)有一定的獨立性。數(shù)據(jù)的存儲結(jié)構(gòu)變化不一定會影響到程序,因此程序員可以集中精力進行算法設(shè)計,從而極大地減少了維護程序的工作量。這個階段有如下特點:(1)數(shù)據(jù)可以“文件”的形式長期保存。(2)程序與數(shù)據(jù)具有獨立性,但獨立性低。(3)數(shù)據(jù)共享性差,數(shù)據(jù)冗余大。(4)對數(shù)據(jù)的操作都以記錄為單位。(5)數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)有了比較簡單的區(qū)別。在文件系統(tǒng)階段,數(shù)據(jù)和程序之間的關(guān)系如圖1-3所示。文件系統(tǒng)使計算機在數(shù)據(jù)管理方面有了很大的進步。時至今日,文件系統(tǒng)仍是一般高級語言普遍采用的數(shù)據(jù)管理方式。但隨著數(shù)據(jù)管理規(guī)模的擴大,數(shù)據(jù)量急劇增加,使用數(shù)據(jù)的用戶也越來越多,這時候文件系統(tǒng)在進行數(shù)據(jù)處理時就顯露出了以下缺陷:(1)數(shù)據(jù)冗余度大。(2)數(shù)據(jù)獨立性差。(3)數(shù)據(jù)聯(lián)系弱。3.數(shù)據(jù)庫系統(tǒng)階段20世紀60年代末,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng),即數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)管理進入了數(shù)據(jù)庫系統(tǒng)階段。在數(shù)據(jù)庫系統(tǒng)階段,應(yīng)用程序與數(shù)據(jù)庫的關(guān)系通過數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,DBMS)來實現(xiàn)。與人工管理和文件系統(tǒng)階段相比,數(shù)據(jù)庫系統(tǒng)階段具有以下特點:(1)數(shù)據(jù)不再只針對某一特定應(yīng)用,而是面向全組織,具有整體的結(jié)構(gòu)性。(2)數(shù)據(jù)共享性高,冗余度小。(3)程序與數(shù)據(jù)間具有較高的獨立性。(4)實現(xiàn)了對數(shù)據(jù)的統(tǒng)一控制和管理。在數(shù)據(jù)庫系統(tǒng)階段,數(shù)據(jù)和程序之間的關(guān)系如圖1-4所示。以上三個階段的特點對照參見表1-1。4.新一代數(shù)據(jù)庫管理技術(shù)目前新一代數(shù)據(jù)庫管理技術(shù)主要具有以下特點。1)整體系統(tǒng)方面相對于傳統(tǒng)數(shù)據(jù)庫而言,新一代數(shù)據(jù)庫管理技術(shù)在數(shù)據(jù)模型及其語言、事務(wù)處理與執(zhí)行模型、數(shù)據(jù)邏輯組織與物理存儲等方面,都集成了新的技術(shù)、工具和機制。2)體系結(jié)構(gòu)方面新一代數(shù)據(jù)庫管理技術(shù)不改變數(shù)據(jù)庫的基本原理,而是在系統(tǒng)的體系結(jié)構(gòu)方面采用和集成了新的技術(shù)。3)應(yīng)用方面新一代數(shù)據(jù)庫管理技術(shù)以特定應(yīng)用領(lǐng)域的需要為出發(fā)點,在某些方面采用和引入了一些非傳統(tǒng)數(shù)據(jù)庫技術(shù),以加強系統(tǒng)對有關(guān)應(yīng)用的支撐能力。5.分布式數(shù)據(jù)庫系統(tǒng)分布式數(shù)據(jù)庫(DistributedDataBase,DDB)是數(shù)據(jù)庫技術(shù)與網(wǎng)絡(luò)技術(shù)相結(jié)合的產(chǎn)物。隨著傳統(tǒng)的數(shù)據(jù)庫技術(shù)日趨成熟,計算機網(wǎng)絡(luò)技術(shù)飛速發(fā)展,網(wǎng)絡(luò)的應(yīng)用范圍也在不斷擴充,數(shù)據(jù)庫應(yīng)用已經(jīng)普遍建立在計算機網(wǎng)絡(luò)之上。這時,以前所用的集中式數(shù)據(jù)庫系統(tǒng)就表現(xiàn)出了它的不足之處:一是數(shù)據(jù)按實際需要已經(jīng)在網(wǎng)絡(luò)上完成了分布存儲,這時再采用集中式處理,會出現(xiàn)通信開銷大的情況;二是應(yīng)用程序集中在一臺計算機上運行,一旦這臺計算機發(fā)生故障,則整個系統(tǒng)都會受到影響,可靠性不高;三是集中式處理導(dǎo)致系統(tǒng)的規(guī)模和配置都不夠靈活,系統(tǒng)的可擴充性差。在這種形勢下,集中式數(shù)據(jù)庫的“集中計算”開始向“分布計算”發(fā)展。在分布式數(shù)據(jù)庫系統(tǒng)中,一個應(yīng)用程序可以對數(shù)據(jù)庫進行透明操作,數(shù)據(jù)庫中的數(shù)據(jù)分別在不同的局部數(shù)據(jù)庫中存儲,由不同的數(shù)據(jù)庫管理系統(tǒng)(DBMS)進行管理,在不同的機器上運行,由不同的操作系統(tǒng)支持,被不同的通信網(wǎng)絡(luò)連接在一起。分布式數(shù)據(jù)庫系統(tǒng)有兩種:一種在物理上是分布的,但邏輯上卻是集中的;另一種在物理上和邏輯上都是分布的,也就是聯(lián)邦數(shù)據(jù)庫。第一種分布式數(shù)據(jù)庫在邏輯上是一個統(tǒng)一的整體,在物理上則分別存儲在不同的物理節(jié)點上。一個應(yīng)用程序通過網(wǎng)絡(luò)連接可以訪問分布在不同地理位置的數(shù)據(jù)庫,它的分布性表現(xiàn)在數(shù)據(jù)庫中的數(shù)據(jù)不存儲在同一場地。更確切地說,不存儲在同一計算機的存儲設(shè)備上。這就是分布式數(shù)據(jù)庫與集中式數(shù)據(jù)庫的區(qū)別。從用戶的角度看,一個分布式數(shù)據(jù)庫系統(tǒng)在邏輯上和集中式數(shù)據(jù)庫系統(tǒng)一樣,用戶可以在任何一個場地執(zhí)行全局應(yīng)用,就好像那些數(shù)據(jù)存儲在同一臺計算機上,由單個數(shù)據(jù)庫管理系統(tǒng)(DBMS)管理一樣,用戶并沒有感覺不一樣。聯(lián)邦數(shù)據(jù)庫(FederatedDataBase,F(xiàn)DB)技術(shù)的提出就是為了實現(xiàn)對相互獨立運行的多個數(shù)據(jù)庫的互操作。通常稱相互獨立運行的數(shù)據(jù)庫系統(tǒng)為單元數(shù)據(jù)庫系統(tǒng)。所謂聯(lián)邦數(shù)據(jù)庫系統(tǒng),是一組彼此協(xié)作且又相互獨立的單元數(shù)據(jù)庫系統(tǒng)的集合,它將單元數(shù)據(jù)庫系統(tǒng)按不同程度進行集成,為該系統(tǒng)提供整體控制和協(xié)同操作的軟件叫聯(lián)邦數(shù)據(jù)庫管理系統(tǒng)(FederatedDataBaseManagementSystem,F(xiàn)DBMS)。一個單元數(shù)據(jù)庫可以加入若干個聯(lián)邦數(shù)據(jù)庫管理系統(tǒng),每個單元數(shù)據(jù)庫系統(tǒng)可以是集中式的,也可以是分布式的,或者是另外一個FDBMS。它允許數(shù)據(jù)庫管理人員定義數(shù)據(jù)子集,這些子集統(tǒng)一形成一個虛擬數(shù)據(jù)庫,提供給聯(lián)邦數(shù)據(jù)庫管理系統(tǒng)內(nèi)的其他用戶使用。6.面向?qū)ο蟮臄?shù)據(jù)庫系統(tǒng)面向?qū)ο蟮臄?shù)據(jù)庫系統(tǒng)(Object-OrientedDataBaseSystem,OODBS)是將面向?qū)ο蠹夹g(shù)與數(shù)據(jù)庫技術(shù)相結(jié)合產(chǎn)生的。面向?qū)ο蟮臄?shù)據(jù)庫系統(tǒng)支持定義和操作面向?qū)ο蟮臄?shù)據(jù)庫,它應(yīng)滿足兩個標準:首先它是數(shù)據(jù)庫系統(tǒng),其次它是面向?qū)ο蟮南到y(tǒng)。第一個標準為數(shù)據(jù)庫系統(tǒng)應(yīng)具備的能力。第二個標準要求面向?qū)ο蟮臄?shù)據(jù)庫充分支持完整的面向?qū)ο?OO)的概念和控制機制。面向?qū)ο蟮臄?shù)據(jù)庫系統(tǒng)必須支持面向?qū)ο蟮臄?shù)據(jù)模型,具有面向?qū)ο蟮奶匦浴R粋€面向?qū)ο蟮臄?shù)據(jù)模型可用面向?qū)ο蟮挠^點來描述現(xiàn)實世界實體(對象)的邏輯組織、對象之間的限制和聯(lián)系等。把面向?qū)ο蟮姆椒ê蛿?shù)據(jù)庫技術(shù)結(jié)合起來可以使數(shù)據(jù)庫系統(tǒng)的分析、設(shè)計最大程度地與人們對客觀世界的認識相一致,對提高應(yīng)用的開發(fā)效率及增強應(yīng)用系統(tǒng)界面的友好性、系統(tǒng)的可伸縮性和可擴充性等具有重要的意義。7.數(shù)據(jù)倉庫隨著客戶機/服務(wù)器技術(shù)的成熟和并行數(shù)據(jù)庫的發(fā)展,信息處理技術(shù)實現(xiàn)了從大量的事務(wù)型數(shù)據(jù)庫中抽取數(shù)據(jù),并將其清理、轉(zhuǎn)換為新的存儲格式的過程,即為實現(xiàn)決策目標而把數(shù)據(jù)聚合在一種特殊的格式中。隨著此過程的發(fā)展和完善,這種支持決策的、特殊的數(shù)據(jù)存儲被稱為數(shù)據(jù)倉庫(DataWarehouse,DW或DWH)。8.數(shù)據(jù)挖掘數(shù)據(jù)挖掘是人工智能和數(shù)據(jù)庫領(lǐng)域研究的熱點問題。所謂數(shù)據(jù)挖掘,是指從數(shù)據(jù)庫的大量數(shù)據(jù)中揭示出隱含的、先前未知的并有潛在價值的信息的非平凡過程。數(shù)據(jù)挖掘是一種決策支持過程,它主要基于人工智能、機器學(xué)習(xí)、模式識別、統(tǒng)計學(xué)、數(shù)據(jù)庫、可視化技術(shù)等,高度自動化地分析企業(yè)的數(shù)據(jù),做出歸納性的推理,從中挖掘出潛在的模式,幫助決策者調(diào)整市場策略,減少風(fēng)險,做出正確的決策。簡單來說,數(shù)據(jù)挖掘就是從大量數(shù)據(jù)中提取或“挖掘”知識。知識發(fā)現(xiàn)過程由以下三個階段組成:數(shù)據(jù)準備、數(shù)據(jù)挖掘、結(jié)果表達和解釋。數(shù)據(jù)挖掘可以與用戶或知識庫交互。數(shù)據(jù)挖掘和數(shù)據(jù)倉庫的協(xié)同工作可以簡化數(shù)據(jù)挖掘過程中的重要步驟,提高數(shù)據(jù)挖掘的效率和能力,確保數(shù)據(jù)挖掘過程中數(shù)據(jù)來源的廣泛性和完整性。數(shù)據(jù)挖掘已經(jīng)成為數(shù)據(jù)倉庫應(yīng)用中極為重要和相對獨立的工具。9.大數(shù)據(jù)大數(shù)據(jù)(BigData)或稱巨量數(shù)據(jù)、海量數(shù)據(jù),指的是所涉及的數(shù)據(jù)量規(guī)模巨大,無法通過主流軟件工具在合理時間內(nèi)截取、管理、處理并整理成為人類所能解讀的信息的數(shù)據(jù)集合。大數(shù)據(jù)指不用隨機分析法(抽樣調(diào)查)這樣的捷徑,而采用所有數(shù)據(jù)進行分析處理。大數(shù)據(jù)的5V特點(由IBM提出)是:Volume(大量)、Velocity(高速)、Variety(多樣)、Value(低價值密度)、Veracity(真實性)。隨著云時代的來臨,大數(shù)據(jù)也吸引了越來越多的關(guān)注。從技術(shù)上看,大數(shù)據(jù)與云計算的關(guān)系就像一枚硬幣的正反面一樣密不可分。大數(shù)據(jù)必然無法用單臺的計算機進行處理,必須采用分布式架構(gòu)。它的特色在于對海量數(shù)據(jù)進行分布式數(shù)據(jù)挖掘,但它必須依托云計算的分布式處理、分布式數(shù)據(jù)庫和云存儲、虛擬化技術(shù)。10.元宇宙元宇宙(Metaverse)是利用科技手段進行鏈接與創(chuàng)造的與現(xiàn)實世界映射和交互的虛擬世界,它具備新型社會體系的數(shù)字生活空間。元宇宙本質(zhì)上是對現(xiàn)實世界的虛擬化、數(shù)字化過程,需要對內(nèi)容生產(chǎn)、經(jīng)濟系統(tǒng)、用戶體驗以及實體世界內(nèi)容等進行大量改造。但元宇宙的發(fā)展是循序漸進的,其在共享的基礎(chǔ)設(shè)施、標準及協(xié)議的支撐下,由眾多工具、平臺不斷融合、進化而最終成形。它基于擴展現(xiàn)實(VR和AR)技術(shù)提供沉浸式體驗,基于數(shù)字孿生技術(shù)生成現(xiàn)實世界的鏡像,基于區(qū)塊鏈技術(shù)搭建經(jīng)濟體系,將虛擬世界與現(xiàn)實世界在經(jīng)濟系統(tǒng)、社交系統(tǒng)、身份系統(tǒng)上密切融合,并且允許每個用戶進行內(nèi)容生產(chǎn)和世界編輯。1.2數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,DBS)是指引入數(shù)據(jù)庫技術(shù)后的計算機系統(tǒng)。它能夠有組織地、動態(tài)地存儲大量相關(guān)數(shù)據(jù),并能提供數(shù)據(jù)處理和信息資源共享。數(shù)據(jù)庫系統(tǒng)實際上是一個集合體,一般由硬件系統(tǒng)、軟件系統(tǒng)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶組成。數(shù)據(jù)庫系統(tǒng)的組成如圖1-5所示。1.2.1硬件系統(tǒng)硬件系統(tǒng)是指構(gòu)成計算機系統(tǒng)的各種物理設(shè)備,包括存儲所需的外部設(shè)備。由于數(shù)據(jù)庫系統(tǒng)承擔(dān)著數(shù)據(jù)管理的任務(wù),它主要在計算機操作系統(tǒng)的支持下工作,而且包含著數(shù)據(jù)庫管理例行程序、應(yīng)用程序、數(shù)據(jù)緩沖區(qū)等,因此要求有足夠大的內(nèi)存空間。同時,由于用戶的數(shù)據(jù)庫管理軟件都要保存在外部存儲器上,因此對外部存儲器容量的要求也很高。另外,外部存儲器還應(yīng)該具有較高的數(shù)據(jù)傳輸能力,以提高數(shù)據(jù)傳輸率。硬件的配置應(yīng)滿足整個數(shù)據(jù)庫系統(tǒng)的需要。1.2.2軟件系統(tǒng)數(shù)據(jù)庫系統(tǒng)中的軟件系統(tǒng)包括操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、與數(shù)據(jù)庫接口的高級語言及其編譯系統(tǒng)和以數(shù)據(jù)庫管理系統(tǒng)為核心的應(yīng)用開發(fā)工具。1.2.3數(shù)據(jù)庫數(shù)據(jù)庫(DataBase,DB)是數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)源,簡單來說,數(shù)據(jù)庫是存放數(shù)據(jù)的“倉庫”。數(shù)據(jù)庫是長期存儲在計算機內(nèi)的、有組織的、可共享的數(shù)據(jù)的集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲,具有較小的冗余度、較高的數(shù)據(jù)獨立性和易擴展性,可為各種用戶共享。數(shù)據(jù)庫中不僅包括描述事物的數(shù)據(jù)本身,還包括相關(guān)事物之間的關(guān)系。數(shù)據(jù)庫中的數(shù)據(jù)不只面向某一種特定的應(yīng)用,而且可以面向多種應(yīng)用,可以被多個用戶、多個應(yīng)用程序共享。當(dāng)然,為保障數(shù)據(jù)庫的安全,對于使用數(shù)據(jù)庫的用戶應(yīng)有相應(yīng)權(quán)限的限制。數(shù)據(jù)庫主要有以下特點:(1)數(shù)據(jù)的共享性高。數(shù)據(jù)庫中的數(shù)據(jù)能為多個用戶服務(wù),并可被各個應(yīng)用程序共享。(2)數(shù)據(jù)的獨立性高。在數(shù)據(jù)庫中,用戶的應(yīng)用程序與數(shù)據(jù)的邏輯組織和物理存儲方式都是無關(guān)的。(3)數(shù)據(jù)的完整性好。數(shù)據(jù)庫中的數(shù)據(jù)在操作和維護過程中可以保證正確無誤。(4)數(shù)據(jù)的冗余度小。數(shù)據(jù)庫中的數(shù)據(jù)會盡可能避免重復(fù)。1.2.4數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫的建立、使用和維護都是通過特定的數(shù)據(jù)庫語言進行的。正如使用高級語言需要解釋/編譯程序的支持一樣,使用數(shù)據(jù)庫語言也需要一個特定的支持軟件,這就是數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)。數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心,是位于用戶與操作系統(tǒng)之間的一種系統(tǒng)軟件,負責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、操縱、維護、控制、保護和數(shù)據(jù)服務(wù)等。用戶不能直接接觸數(shù)據(jù)庫,而是利用數(shù)據(jù)庫管理系統(tǒng)提供的一整套命令,對數(shù)據(jù)庫進行各種操作,從而實現(xiàn)用戶對數(shù)據(jù)的處理要求。一般來說,數(shù)據(jù)庫管理系統(tǒng)應(yīng)該具有以下功能。1.數(shù)據(jù)定義功能DBMS提供了數(shù)據(jù)定義語言(DataDefinitionLanguage,DDL),用于定義數(shù)據(jù)庫結(jié)構(gòu)、數(shù)據(jù)之間的聯(lián)系等。用戶通過它可以方便地對數(shù)據(jù)庫中的數(shù)據(jù)對象進行定義。2.數(shù)據(jù)操縱功能DBMS提供了數(shù)據(jù)操縱語言(DataManipulationLanguage,DML),主要用于操縱數(shù)據(jù)庫中的數(shù)據(jù),實現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的基本存取操作。數(shù)據(jù)操縱功能包括查找、插入、刪除和修改等語句,是數(shù)據(jù)庫的主要應(yīng)用。3.數(shù)據(jù)庫控制和管理功能DBMS提供了數(shù)據(jù)控制語言(DataControlLanguage,DCL),用于實現(xiàn)對數(shù)據(jù)庫的并發(fā)控制、安全性檢查、完整性約束條件的檢查等。它們在數(shù)據(jù)庫運行過程中監(jiān)視對數(shù)據(jù)庫的各種操作,控制管理數(shù)據(jù)庫資源,處理多用戶的并發(fā)操作等。4.數(shù)據(jù)庫維護功能DBMS還提供了一些應(yīng)用程序,用于對已經(jīng)建立好的數(shù)據(jù)庫進行維護,包括數(shù)據(jù)庫的轉(zhuǎn)儲與恢復(fù)、數(shù)據(jù)庫的重組與重構(gòu)、數(shù)據(jù)庫性能的監(jiān)視與分析等。5.數(shù)據(jù)庫通信功能在分布式環(huán)境下或網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)中,DBMS為不同數(shù)據(jù)庫間提供了通信的功能。1.2.5數(shù)據(jù)庫應(yīng)用系統(tǒng)數(shù)據(jù)庫應(yīng)用系統(tǒng)(DataBaseApplicationSystem,DBAS)是系統(tǒng)開發(fā)人員使用計算機高級語言利用數(shù)據(jù)庫系統(tǒng)資源開發(fā)出來的,對數(shù)據(jù)庫中的數(shù)據(jù)進行處理和加工的軟件。如教務(wù)管理系統(tǒng)、圖書管理系統(tǒng)、證券實時行情系統(tǒng)等。1.2.6人員數(shù)據(jù)庫系統(tǒng)的人員主要有3類:終端用戶、數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)人員和數(shù)據(jù)庫管理員。1.終端用戶終端用戶是數(shù)據(jù)庫的使用者,通過應(yīng)用程序與數(shù)據(jù)庫進行交互。2.數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)人員數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)人員負責(zé)分析、設(shè)計、開發(fā)、維護數(shù)據(jù)庫系統(tǒng)中的各類應(yīng)用程序,數(shù)據(jù)庫系統(tǒng)一般需要1個以上的數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)人員在開發(fā)周期內(nèi)完成數(shù)據(jù)庫結(jié)構(gòu)設(shè)計、應(yīng)用程序開發(fā)等任務(wù)。3.數(shù)據(jù)庫管理員數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)是高級用戶,其職能是管理、監(jiān)督、維護數(shù)據(jù)庫系統(tǒng)的正常運行,負責(zé)全面管理和控制數(shù)據(jù)庫系統(tǒng)。在數(shù)據(jù)庫系統(tǒng)中,各層次之間的相互關(guān)系如圖1-6所示。1.2.7數(shù)據(jù)庫系統(tǒng)的特點數(shù)據(jù)庫系統(tǒng)的主要特點如下:1.數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)庫系統(tǒng)實現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,是數(shù)據(jù)庫的主要特征之一,也是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。2.數(shù)據(jù)共享在數(shù)據(jù)庫系統(tǒng)中,所有的程序都存取同一份數(shù)據(jù)庫。一個庫中的數(shù)據(jù)不僅可為同一企業(yè)或機構(gòu)之間的各個部門所共享,也可為不同單位、地域甚至不同國家的用戶所共享。3.數(shù)據(jù)獨立性在數(shù)據(jù)庫系統(tǒng)中,用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中的數(shù)據(jù)是相互獨立的。用戶不需要了解數(shù)據(jù)實際的存取方式,只需要通過數(shù)據(jù)庫系統(tǒng)的存取命令就可以得到所需要的數(shù)據(jù)。4.可控冗余度實現(xiàn)共享后,不必要的重復(fù)數(shù)據(jù)將全部消除,這樣可以節(jié)省存儲空間、減少存取時間、避免數(shù)據(jù)之間的不相容性和不一致性。但為了提高查詢效率,有時也會保留少量重復(fù)數(shù)據(jù),比如學(xué)生基本信息表和學(xué)生成績表中都有學(xué)生的學(xué)號數(shù)據(jù)。數(shù)據(jù)庫系統(tǒng)中的冗余度可由設(shè)計人員控制。5.安全性保護安全性保護是指保護數(shù)據(jù)以防止不合法使用所造成數(shù)據(jù)破壞或泄密,可以通過設(shè)置訪問權(quán)限、對數(shù)據(jù)加密等手段實現(xiàn)。6.數(shù)據(jù)完整性控制數(shù)據(jù)完整性是指數(shù)據(jù)的正確性、有效性和相容性。數(shù)據(jù)庫系統(tǒng)提供了必要的功能,保證了數(shù)據(jù)在輸入、修改過程中始終符合原來的數(shù)據(jù)定義和規(guī)定。7.并發(fā)控制并發(fā)控制是指多個用戶進程在同一時刻期望存取同一數(shù)據(jù)時發(fā)生的事件。為了避免并發(fā)進程間相互干擾進而導(dǎo)致錯誤的結(jié)果或破壞數(shù)據(jù)完整性,必須對多用戶的并發(fā)操作加以控制和協(xié)調(diào)。8.故障發(fā)現(xiàn)和恢復(fù)控制在數(shù)據(jù)庫系統(tǒng)運行中,由于用戶操作失誤或硬件及軟件的故障,可能使得數(shù)據(jù)庫遭到局部性或全局性損壞,但系統(tǒng)能進行應(yīng)急性處理,把數(shù)據(jù)庫恢復(fù)到正確狀態(tài)。1.2.8數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)數(shù)據(jù)庫內(nèi)部體系結(jié)構(gòu)是數(shù)據(jù)庫系統(tǒng)的一個總框架。為了有效地組織和管理數(shù)據(jù),提高數(shù)據(jù)庫的邏輯獨立性和物理獨立性,人們?yōu)閿?shù)據(jù)庫設(shè)計了一個嚴謹?shù)捏w系結(jié)構(gòu)。現(xiàn)在DBMS的產(chǎn)品多種多樣,可在不同的操作系統(tǒng)支持下工作,大多數(shù)數(shù)據(jù)庫系統(tǒng)的內(nèi)部體系結(jié)構(gòu)是三級模式和兩級映象結(jié)構(gòu)。三級模式分別是外模式、模式和內(nèi)模式。兩級映象分別是外模式到模式的映象和模式到內(nèi)模式的映象。三級模式和兩級映象如圖1-7所示。1.數(shù)據(jù)庫的三級模式結(jié)構(gòu)為了保障數(shù)據(jù)與程序之間的獨立性,使用戶能以簡單的邏輯結(jié)構(gòu)操作數(shù)據(jù)而無須考慮數(shù)據(jù)的物理結(jié)構(gòu),簡化應(yīng)用程序的編制和程序員的負擔(dān),增強系統(tǒng)的可靠性,通常DBMS將數(shù)據(jù)庫的體系結(jié)構(gòu)分為三級模式:外模式、模式和內(nèi)模式。1)外模式外模式又稱為用戶模式或子模式,是數(shù)據(jù)庫用戶(包括開發(fā)人員和最終用戶)和數(shù)據(jù)庫系統(tǒng)的接口,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖(view),是數(shù)據(jù)庫用戶可以看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。一個數(shù)據(jù)庫通常有多個外模式。當(dāng)不同用戶在應(yīng)用需求、保密級別等方面存在差異時,其外模式的描述就會有所不同。外模式是保證數(shù)據(jù)庫安全的重要措施。每個用戶只能看見和訪問所對應(yīng)的外模式中的數(shù)據(jù),而數(shù)據(jù)庫中的其他數(shù)據(jù)均不可見。2)模式模式是所有數(shù)據(jù)庫用戶的公共數(shù)據(jù)視圖,是數(shù)據(jù)庫中全部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,反映了數(shù)據(jù)庫系統(tǒng)的整體觀。一個數(shù)據(jù)庫只有一個模式。模式不但要描述數(shù)據(jù)的邏輯結(jié)構(gòu),比如數(shù)據(jù)記錄的組成,各數(shù)據(jù)項的名稱、類型、取值的范圍等,而且要描述數(shù)據(jù)之間的聯(lián)系以及數(shù)據(jù)的完整性、安全性等要求。3)內(nèi)模式內(nèi)模式也稱存儲模式或物理模式,是對數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式,一個數(shù)據(jù)庫只有一個內(nèi)模式。內(nèi)模式對一般用戶是透明的,但它的設(shè)計直接影響數(shù)據(jù)庫的性能。2.數(shù)據(jù)庫的兩級映象數(shù)據(jù)庫的三級模式結(jié)構(gòu)是數(shù)據(jù)的三個抽象級別。三級模式結(jié)構(gòu)之間往往差別很大,為了實現(xiàn)這三個抽象級別的聯(lián)系和轉(zhuǎn)換,DBMS在三級模式結(jié)構(gòu)之間提供了兩級映象:外模式/模式映象,模式/內(nèi)模式映象。1)外模式/模式映象模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu),外模式描述的是數(shù)據(jù)的局部邏輯結(jié)構(gòu),對應(yīng)于同一個模式可以有任意多個外模式。對于每個外模式,數(shù)據(jù)庫系統(tǒng)都有一個外模式/模式映象,它定義了該外模式與模式之間的對應(yīng)關(guān)系。這些映象定義通常包含在各自外模式的描述中。當(dāng)模式改變時,由數(shù)據(jù)庫管理員對各個外模式/模式映象作相應(yīng)改變,可以使外模式保持不變。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨立性,簡稱邏輯數(shù)據(jù)獨立性。2)模式/內(nèi)模式映象數(shù)據(jù)庫中不僅只有一個模式,而且也只有一個內(nèi)模式,所以模式/內(nèi)模式映象是唯一的,它定義了數(shù)據(jù)庫全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)系。當(dāng)數(shù)據(jù)庫的存儲結(jié)構(gòu)改變了(如選用了另一種存儲結(jié)構(gòu)),由數(shù)據(jù)庫管理員對模式/內(nèi)模式映象作相應(yīng)的改變,可以保證模式保持不變,從而應(yīng)用程序也不必改變,保證了數(shù)據(jù)與程序的物理獨立性,簡稱物理數(shù)據(jù)獨立性。1.3數(shù)據(jù)模型1.3.1基本概念計算機信息處理的對象是現(xiàn)實生活中的客觀事物,在對客觀事物實施處理的過程中,首先要經(jīng)歷了解、熟悉的過程,從觀測中抽象出大量描述客觀事物的信息,再對這些信息進行整理、分類和規(guī)范,進而將規(guī)范化的信息數(shù)據(jù)化,最終由數(shù)據(jù)庫系統(tǒng)存儲、處理。這一過程涉及三個層次,即現(xiàn)實世界、信息世界和數(shù)據(jù)世界,經(jīng)歷了兩次抽象和轉(zhuǎn)換。1.現(xiàn)實世界現(xiàn)實世界就是人們所能看到的、接觸到的世界,是存在于人腦之外的客觀世界。現(xiàn)實世界中的事物是客觀存在的,事物與事物之間的聯(lián)系也是客觀存在的??陀^事物及其相互聯(lián)系就處于現(xiàn)實世界中,客觀事物可以用對象和性質(zhì)來描述。2.信息世界信息世界就是現(xiàn)實世界在人們頭腦中的反映,又稱概念世界。客觀事物在信息世界中稱為實體,反映事物間聯(lián)系的是實體模型或概念模型?,F(xiàn)實世界是物質(zhì)的,相對而言信息世界是抽象的。3.數(shù)據(jù)世界數(shù)據(jù)世界就是信息世界中的信息數(shù)據(jù)化后對應(yīng)的產(chǎn)物?,F(xiàn)實世界中的客觀事物及其聯(lián)系在數(shù)據(jù)世界中以數(shù)據(jù)模型描述。相對于信息世界,數(shù)據(jù)世界是量化的、物化的?,F(xiàn)實世界中的客觀事物通過數(shù)據(jù)抽象轉(zhuǎn)換為數(shù)據(jù)世界的數(shù)據(jù)。數(shù)據(jù)的抽象過程如圖1-8所示。1.3.2數(shù)據(jù)模型組成要素數(shù)據(jù)模型是對客觀事物及聯(lián)系的數(shù)據(jù)描述,是概念模型的數(shù)據(jù)化,即數(shù)據(jù)模型提供表示和組織數(shù)據(jù)的方法。一般地講,數(shù)據(jù)模型是嚴格定義的概念的集合,這些概念精確地描述系統(tǒng)的靜態(tài)特性、動態(tài)特性和完整性約束條件。因此,數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)的完整性約束三部分組成。1.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是對計算機的數(shù)據(jù)組織方式和數(shù)據(jù)之間的聯(lián)系進行框架性描述的集合,是對數(shù)據(jù)庫靜態(tài)特征的描述,是刻畫一個數(shù)據(jù)模型性質(zhì)最重要的方面。因此,在數(shù)據(jù)庫系統(tǒng)中,通常按照其數(shù)據(jù)結(jié)構(gòu)的類型來命名數(shù)據(jù)模型。2.數(shù)據(jù)操作數(shù)據(jù)操作是指數(shù)據(jù)庫中各記錄允許執(zhí)行的操作的集合,包括操作方法及有關(guān)的操作規(guī)則等。3.數(shù)據(jù)完整性約束數(shù)據(jù)的約束條件是關(guān)于數(shù)據(jù)狀態(tài)和狀態(tài)變化的一組完整性約束規(guī)則的集合,以保證數(shù)據(jù)的正確性、有效性和一致性。數(shù)據(jù)模型應(yīng)該反映和規(guī)定本數(shù)據(jù)模型必須遵守的、基本的、通用的完整性約束。此外數(shù)據(jù)模型還應(yīng)該提供定義完整性約束的機制,以反映具體所涉及的數(shù)據(jù)必須遵守的特定語義約束。數(shù)據(jù)模型是數(shù)據(jù)庫技術(shù)的關(guān)鍵,它的三個要素完整地描述了一個數(shù)據(jù)模型。1.3.3數(shù)據(jù)模型的層次類型根據(jù)數(shù)據(jù)抽象的不同級別,可以將數(shù)據(jù)模型分為三層:概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。從現(xiàn)實世界到概念模型的轉(zhuǎn)換由數(shù)據(jù)庫設(shè)計人員完成;從概念模型到邏輯模型的轉(zhuǎn)換可由數(shù)據(jù)庫設(shè)計人員完成,也可用數(shù)據(jù)庫設(shè)計工具協(xié)助設(shè)計人員來完成;從邏輯模型到物理模型的轉(zhuǎn)換一般由DBMS完成。1.概念數(shù)據(jù)模型概念數(shù)據(jù)模型是從用戶的角度來看的,強調(diào)對數(shù)據(jù)對象的基本表示和概括性描述(包括數(shù)據(jù)及其聯(lián)系),而不考慮計算機具體實現(xiàn),與具體的DBMS無關(guān)。2.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型是從計算機的角度來看的,用于在數(shù)據(jù)庫系統(tǒng)中實現(xiàn)。概念數(shù)據(jù)模型必須轉(zhuǎn)化為邏輯數(shù)據(jù)模型,才能在DBMS中實現(xiàn)。3.物理數(shù)據(jù)模型物理數(shù)據(jù)模型是從計算機(存儲介質(zhì))的角度來看的,每種邏輯數(shù)據(jù)模型在實現(xiàn)時,都有其對應(yīng)的物理數(shù)據(jù)模型的支持。1.3.4概念數(shù)據(jù)模型概念數(shù)據(jù)模型簡稱為概念模型或信息模型,是用來建立信息世界的數(shù)據(jù)模型,與具體的DBMS無關(guān)。概念數(shù)據(jù)模型強調(diào)語義表達,描述信息結(jié)構(gòu),是對現(xiàn)實世界的第一層抽象。1.基本概念1)實體實體是客觀存在并且可以相互區(qū)別的事物。實體可以是具體的事物;也可以是抽象的事物。2)屬性屬性用于描述實體的特征(性質(zhì)),用以區(qū)分一個個實體。3)實體型具有相同屬性的實體必然具有共同的特征和性質(zhì)。用實體名及描述它的各屬性名,可以刻畫出全部同質(zhì)實體的共同特征和性質(zhì),稱為實體型。4)實體集實體集是指具有相同類型及相同屬性的實體的集合。5)實體之間的聯(lián)系兩個實體集之間實體的對應(yīng)關(guān)系稱為聯(lián)系,它反映了現(xiàn)實世界事物之間的相互關(guān)聯(lián)。例如,學(xué)生和教師是兩個不同的實體集,但學(xué)生要修讀課程,兩者之間就發(fā)生了關(guān)聯(lián),建立了聯(lián)系。聯(lián)系的種類分為以下三種:(1)一對一聯(lián)系(1∶1)。如果實體集E1中的每一個實體至多和實體集E2中的一個實體有聯(lián)系,反之亦然,則稱E1和E2是一對一的聯(lián)系,表示為1∶1。(2)一對多聯(lián)系(1∶N)。如果實體集E1中的每個實體與實體集E2中的任意多個實體有聯(lián)系,而實體集E2中的每一個實體至多和實體集E1中的一個實體有聯(lián)系,則稱E1和E2之間是一對多的聯(lián)系,表示為1∶N,E1稱為一方,E2稱為多方。(3)多對多聯(lián)系(M∶N)。如果實體集E1中的每個實體與實體集E2中的任意多個實體有聯(lián)系,反之,實體集E2中的每個實體與實體集E1中的任意多個實體有聯(lián)系,則稱E1和E2之間是多對多的聯(lián)系,表示為M∶N。2.實體-聯(lián)系模型(E-R模型)概念模型的表示方法很多,其中最為著名和使用最為廣泛的是P.P.Chen于1976年提出的E-R(Entity-Relationship)模型。E-R模型是直接從現(xiàn)實世界中抽象出實體類型及實體間的聯(lián)系,是對現(xiàn)實世界的一種抽象,它主要由實體、聯(lián)系和屬性組成。E-R模型的圖形表示稱為E-R圖。基本E-R圖的組成如下:(1)矩形:表示實體集,實體名稱寫在矩形框內(nèi)。(2)橢圓:表示實體集或聯(lián)系的屬性,橢圓框內(nèi)標明屬性的名稱。(3)菱形:表示實體間的關(guān)系,菱形框內(nèi)注明聯(lián)系名稱。(4)無向邊:連接實體和各個屬性以及連接實體和聯(lián)系,同時在無向邊上注明聯(lián)系類型(1∶1,1∶N或M∶N)。1.3.5邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型簡稱為邏輯模型或數(shù)據(jù)模型。概念數(shù)據(jù)模型是概念上的抽象,它與具體的DBMS無關(guān),而邏輯數(shù)據(jù)模型與具體的DBMS有關(guān),是DBMS所支持的數(shù)據(jù)模型,描述數(shù)據(jù)庫數(shù)據(jù)的整體邏輯結(jié)構(gòu),便于在數(shù)據(jù)庫系統(tǒng)中實現(xiàn)。用概念數(shù)據(jù)模型表示的數(shù)據(jù)必須轉(zhuǎn)化為邏輯數(shù)據(jù)模型表示的數(shù)據(jù),才能在DBMS中實現(xiàn)。根據(jù)數(shù)據(jù)及數(shù)據(jù)間聯(lián)系的表示形式的不同,邏輯數(shù)據(jù)模型主要分為以下四種:1.層次模型層次模型是數(shù)據(jù)庫系統(tǒng)中最早使用的數(shù)據(jù)模型,它采用層次數(shù)據(jù)結(jié)構(gòu)來表示實體及實體之間的聯(lián)系。層次模型可以簡單、直觀地表示信息世界中實體、實體的屬性及實體之間的一對多聯(lián)系。層次數(shù)據(jù)結(jié)構(gòu)也稱為樹形結(jié)構(gòu),各個實體在數(shù)據(jù)模型中被稱為結(jié)點,層次模型有以下特點:(1)只有一個最高結(jié)點即根結(jié)點。(2)其余結(jié)點有而且僅有一個父結(jié)點(上層結(jié)點)。(3)每個結(jié)點可以有零個或多個子結(jié)點(下層結(jié)點)。(4)上下層結(jié)點之間表示一對多的聯(lián)系。2.網(wǎng)狀模型網(wǎng)狀模型用網(wǎng)狀結(jié)構(gòu)來表示實體及實體之間的關(guān)系,可以將其看成層次模型的一種擴展,層次模型是網(wǎng)狀模型的一個特例。網(wǎng)狀模型有以下特點:(1)用圖表示數(shù)據(jù)之間的關(guān)系。(2)允許結(jié)點有多于一個的父結(jié)點。(3)可以有一個以上的結(jié)點沒有父結(jié)點。(4)表示結(jié)點之間多對多的聯(lián)系。3.關(guān)系模型1970年,IBM公司的E.F.Cood提出了關(guān)系模型的概念,首次運用數(shù)學(xué)方法來研究數(shù)據(jù)庫的結(jié)構(gòu)和數(shù)據(jù)操作,并將數(shù)據(jù)庫的設(shè)計從以經(jīng)驗為主提高到以理論為指導(dǎo)。關(guān)系模型用二維表來表示實體及實體之間的聯(lián)系,一個二維表就是一個關(guān)系,它不僅可以反映實體本身,也可以反映實體之間的聯(lián)系。關(guān)系模型可以描述一對一、一對多和多對多的聯(lián)系,并向用戶隱藏存取路徑,大大提高了數(shù)據(jù)的獨立性及程序員的工作效率。此外,關(guān)系模型建立在嚴格的數(shù)學(xué)基礎(chǔ)之上,支持集合運算。關(guān)系模型是目前最成熟和最重要的一種數(shù)據(jù)模型,如Oracle、Sybase、SQLServer以及本書后面將要介紹的MicrosoftAccess2016等,都是基于關(guān)系模型的關(guān)系數(shù)據(jù)庫管理系統(tǒng)。4.面向?qū)ο竽P兔嫦驅(qū)ο竽P褪怯妹嫦驅(qū)ο蟮挠^點來描述現(xiàn)實世界實體的邏輯組織、實體之間的限制和聯(lián)系的模型。在面向?qū)ο髷?shù)據(jù)模型中,所有現(xiàn)實世界中的實體都可看成對象。一個對象包含若干屬性,用于描述對象的特性。屬性也是對象,它又可包含其他對象作為其屬性。這種遞歸引用對象的過程可以繼續(xù)下去,從而組成各種復(fù)雜的對象,而且同一個對象可以被多個對象引用。除了屬性之外,對象還包含若干方法,用于描述對象的行為。方法又稱為操作,它可以改變對象的狀態(tài)。對象是封裝的,它是由數(shù)據(jù)和操作組成的封裝體。面向?qū)ο髷?shù)據(jù)模型比層次模型、網(wǎng)狀模型和關(guān)系模型更直接、更具體,但由于面向?qū)ο竽P捅容^復(fù)雜,因此普及度不高。1.3.6物理數(shù)據(jù)模型物理數(shù)據(jù)模型是在計算機系統(tǒng)的底層對數(shù)據(jù)進行抽象,它描述數(shù)據(jù)在存儲介質(zhì)上的存儲方式和存取方法,是面向計算機系統(tǒng)的。物理數(shù)據(jù)模型反映了數(shù)據(jù)在存儲介質(zhì)上的存儲結(jié)構(gòu),它不僅與具體的DBMS有關(guān),也和操作系統(tǒng)及硬件有關(guān)。在設(shè)計一個數(shù)據(jù)庫時,首先需要將現(xiàn)實世界抽象得到概念數(shù)據(jù)模型,然后將概念數(shù)據(jù)模型轉(zhuǎn)換為邏輯數(shù)據(jù)模型,最后將邏輯數(shù)據(jù)模型轉(zhuǎn)換為物理數(shù)據(jù)模型。最后一步一般由選定的DBMS自動實現(xiàn)。1.4關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫是支持關(guān)系模型的數(shù)據(jù)庫。在關(guān)系模型中,不論是實體還是聯(lián)系都用關(guān)系來表示。一個關(guān)系模型中所有關(guān)系的集合稱為關(guān)系數(shù)據(jù)庫,也就是說,關(guān)系數(shù)據(jù)庫是由若干張二維表組成的,它包括二維表的結(jié)構(gòu)以及二維表中的數(shù)據(jù)兩部分。Access2016就是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng),使用它可以創(chuàng)建某一具體應(yīng)用的關(guān)系數(shù)據(jù)庫。1.4.1關(guān)系模型的基本術(shù)語關(guān)系模型理論、日常工作和生活及關(guān)系數(shù)據(jù)庫中的術(shù)語對照如表1-3所示。下面是關(guān)系模型中一些主要的基本術(shù)語。1.關(guān)系關(guān)系就是一張二維表,通常將一個沒有重復(fù)行、重復(fù)列的二維表看成一個關(guān)系,每個關(guān)系都有一個關(guān)系名。在Access2016中,一個關(guān)系對應(yīng)一個數(shù)據(jù)庫文件中的表。2.元組二維表中從第二行開始的每一行在關(guān)系中稱為一個元組,在關(guān)系數(shù)據(jù)庫中稱為一條記錄?!瓣P(guān)系”是元組的集合,“元組”是屬性值的集合,一個關(guān)系模型中的數(shù)據(jù)就是這樣逐行逐列組織起來的。3.屬性二維表的每一列在關(guān)系中稱為一個屬性,每個屬性都有一個屬性名,屬性值則是各個元組在該屬性上的取值。在關(guān)系數(shù)據(jù)庫中表中的一列稱為一個字段,屬性名也稱為字段名。4.域?qū)傩缘娜≈捣秶Q為域。域作為屬性值的集合,其類型與范圍具體由屬性的性質(zhì)及其所表示的意義確定。5.關(guān)鍵字或碼在關(guān)系的多個屬性中,能夠用來唯一標識元組的屬性或?qū)傩越M稱為關(guān)鍵字或碼。6.候選關(guān)鍵字或候選碼如果在一個關(guān)系中存在多個屬性(或?qū)傩越M),且都能用來唯一標識該關(guān)系中的元組,那么這些屬性(或?qū)傩越M)都稱為該關(guān)系的候選關(guān)鍵字或候選碼。7.主關(guān)鍵字或主碼在一個關(guān)系的若干候選關(guān)鍵字中,被指定作為關(guān)鍵字的候選關(guān)鍵字稱為該關(guān)系的主關(guān)鍵字(簡稱主鍵)或主碼。關(guān)系的主鍵只有一個,這個主鍵可以是一個屬性,也可以是多個屬性的組合。8.主屬性在一個關(guān)系中,包含在任一候選關(guān)鍵字中的屬性稱為主屬性。9.非主屬性或非碼屬性在一個關(guān)系中,不組成碼的屬性稱為該關(guān)系的非主屬性或非碼屬性。10.外部關(guān)鍵字或外碼一個關(guān)系的某個屬性雖不是該關(guān)系的關(guān)鍵字或只是關(guān)鍵字的一部分,但卻是另一個關(guān)系的關(guān)鍵字,則稱這樣的屬性為該關(guān)系的外部關(guān)鍵字(簡稱外鍵)或外碼。外部關(guān)鍵字是表與表聯(lián)系的紐帶。11.主表和從表主表和從表是指通過外鍵相關(guān)聯(lián)的兩個表。外鍵所在的表稱為從表,主鍵所在的表稱為主表。12.關(guān)系模式關(guān)系模式是對關(guān)系的描述,一個關(guān)系模式對應(yīng)一個關(guān)系的結(jié)構(gòu),關(guān)系模式的一般格式如下:關(guān)系名(屬性名1,屬性名2,…,屬性名n)1.4.2關(guān)系的性質(zhì)關(guān)系是一張二維表,但并不是所有的二維表都是關(guān)系,關(guān)系應(yīng)該具有以下性質(zhì)。(1)列是同質(zhì)的,即每一列中的值是同一類型的數(shù)據(jù),來自同一個域。(2)不同的列可以出自同一個域,稱其中的每一列為一個屬性,不同的屬性要給予不同的屬性名,不允許有重復(fù)的屬性名。(3)列的順序無所謂,即列的次序可以任意交換。(4)任意兩個元組不能完全相同。這只是現(xiàn)實中的一般性要求,有些數(shù)據(jù)庫允許在同一張表中存在兩個完全相同的元組。(5)行的順序無所謂,即行的次序可以任意交換。(6)關(guān)系模式必須滿足規(guī)范化的理論,不允許表中有表。1.4.3關(guān)系模型的優(yōu)缺點1.優(yōu)點(1)關(guān)系模型是建立在嚴格的數(shù)學(xué)概念的基礎(chǔ)上的。(2)無論實體還是實體之間的聯(lián)系都用關(guān)系來表示。對數(shù)據(jù)的查詢結(jié)果也是關(guān)系(表),因此其概念單一,結(jié)構(gòu)清晰、簡單,用戶容易理解。(3)關(guān)系模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨立性和安全保密性,也簡化了程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作。2.缺點由于存取路徑對用戶透明,查詢效率往往不如非關(guān)系數(shù)據(jù)模型。因此為了提高性能,必須對用戶的查詢請求進行優(yōu)化,這樣就增加了開發(fā)數(shù)據(jù)庫管理系統(tǒng)的負擔(dān)。1.4.4關(guān)系完整性關(guān)系完整性是為保證數(shù)據(jù)庫中數(shù)據(jù)的正確性和相容性,對關(guān)系模型提出的某種約束條件或規(guī)則。完整性通常包括實體完整性、參照完整性和用戶自定義完整性,其中實體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件。1.實體完整性實體完整性(EntityIntegrity)是指關(guān)系的主關(guān)鍵字不能重復(fù)也不能取空值。一個關(guān)系對應(yīng)現(xiàn)實世界中的一個實體集?,F(xiàn)實世界中的實體是可以相互區(qū)分、識別的,即它們應(yīng)具有某種唯一性標識。在關(guān)系模式中,以主關(guān)鍵字作為唯一性標識,而主關(guān)鍵字中的屬性(稱為主屬性)不能取空值;否則,表明關(guān)系模式中存在著不可標識的實體(因空值是不確定的),這與現(xiàn)實世界的實際情況相矛盾,這樣的實體就不是一個完整實體。按實體完整性規(guī)則要求,主屬性不得取空值,如主關(guān)鍵字是多個屬性的組合,則所有主屬性均不得取空值。2.參照完整性參照完整性(ReferentialIntegrity)是相關(guān)聯(lián)的兩個關(guān)系之間的約束,當(dāng)修改一個關(guān)系時,為保持數(shù)據(jù)的一致性,必須對另一個關(guān)系進行檢查和修改。3.用戶自定義完整性實體完整性和參照完整性約束機制主要是針對關(guān)系的主鍵和外鍵取值必須有效而給出的約束規(guī)則。除了實體完整性和參照完整性約束以外,關(guān)系數(shù)據(jù)庫管理系統(tǒng)允許用戶自定義其他的數(shù)據(jù)完整性約束條件。用戶自定義完整性(UserDefinedIntegrity)約束是用戶針對某一具體應(yīng)用的要求和實際需要,以及按照實際的數(shù)據(jù)庫運行環(huán)境要求,對關(guān)系中的數(shù)據(jù)所定義的約束條件,它反映的是某一具體應(yīng)用所涉及的數(shù)據(jù)必須要滿足的語義要求和條件。這一約束機制一般由關(guān)系模型提供定義并檢驗。1.5關(guān)系運算關(guān)系的基本運算有兩類,一類是傳統(tǒng)的集合運算(包括并、交、差和廣義笛卡兒積等運算),另一類是專門的關(guān)系運算(包括選擇、投影和連接)。關(guān)系基本運算的結(jié)果也是一個關(guān)系。1.5.1傳統(tǒng)的集合運算傳統(tǒng)的集合運算包括并、交、差和廣義笛卡兒積等運算。要進行并、交、差運算的兩個關(guān)系必須具有相同的結(jié)構(gòu),即屬性數(shù)目必須相同,且對應(yīng)的屬性取自同一個域。假定課程A(見表1-5)和課程B(見表1-6)兩個關(guān)系結(jié)構(gòu)相同。1.并運算假設(shè)R和S是兩個結(jié)構(gòu)相同的關(guān)系,R和S兩個關(guān)系的并運算可以記作R∪S,運算結(jié)果是將兩個關(guān)系的所有元組組成一個新的關(guān)系,若有完全相同的元組則只留下一個。課程A∪課程B的并運算結(jié)果如表1-7所示。2.交運算假設(shè)R和S是兩個結(jié)構(gòu)相同的關(guān)系,R和S兩個關(guān)系的交運算可以記作R∩S,運算結(jié)果是將兩個關(guān)系中的公共元組組成一個新的關(guān)系。課程A∩課程B的交運算結(jié)果如表1-8所示。3.差運算假設(shè)R和S是兩個結(jié)構(gòu)相同的關(guān)系,R和S兩個關(guān)系的差運算可以記作R-S,運算結(jié)果是將屬于R但不屬于S的元組組成一個新的關(guān)系。課程A-課程B的差運算結(jié)果如表1-9所示。4.廣義笛卡兒積運算設(shè)R和S是兩個關(guān)系,如果R是m元(有m個屬性)關(guān)系,有i個元組;S是n元關(guān)系,有j個元組;則笛卡兒積R?×?S是一個m?+?n元關(guān)系,有i?×?j個元組。實際計算笛卡兒積時,可從R的第一個元組開始,依次與S的每一個元組組合,然后對R的下一個元組進行同樣的操作,直至R的最后一個元組也進行完同樣的操作為止,即可得到R?×?S的全部元組。學(xué)生(如表1-10所示)?×?課程(如表1-11所示)的笛卡兒積運算結(jié)果如表1-12所示。1.5.2專門的關(guān)系運算專門的關(guān)系運算包括3種:選擇、投影和連接。1.選擇選擇運算是指從指定的關(guān)系中選擇某些滿足條件的元組構(gòu)成一個新的關(guān)系。選擇運算是在二維表中選擇滿足指定條件的行,它是從行的角度對關(guān)系進行運算,選出條件表達式為真的元組。通常將選擇運算記作:σ<條件表達式>(R)其中σ是選擇運算符,R是關(guān)系名。2.投影投影運算是指從指定的關(guān)系中選擇指定的若干屬性列構(gòu)成一個新的關(guān)系。投影運算是在二維表中選擇滿足指定條件的屬性列,它是從列的角度對關(guān)系進行運算。通常將投影運算記作:ΠS(R)其中Π是投影運算符,S是被投影的屬性或?qū)傩越M,R是關(guān)系名。3.連接連接運算是關(guān)系的橫向結(jié)合。連接運算是把兩個關(guān)系中滿足連接條件的元組組成一個新的關(guān)系。連接運算是一種二元運算,可以將兩個關(guān)系合并成一個大關(guān)系。連接類型有自然連接、內(nèi)連接、左外連接、右外連接、全外連接等,其中最常用的連接是自然連接。自然連接是將兩個關(guān)系中的若干列按照“同名等值”的原則,也就是公共屬性名相同,且屬性值相等的條件進行連接,并且在結(jié)果集中消除重復(fù)屬性。比如計算關(guān)系R和關(guān)系S的自然連接,首先要進行R?×?S(笛卡兒積),然后進行R和S中所有相同屬性等值比較的選擇運算,最后通過投影運算去掉重復(fù)的屬性。1.6數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計是數(shù)據(jù)庫技術(shù)的主要內(nèi)容之一。數(shù)據(jù)庫設(shè)計是指對于給定的應(yīng)用環(huán)境,構(gòu)建一個性能良好的、能滿足用戶要求的、能夠被選定的DBMS所接受的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及應(yīng)用系統(tǒng),使之能夠有效地、合理地采集、存儲、操作和管理數(shù)據(jù),滿足企業(yè)或組織中各類用戶的應(yīng)用需求。數(shù)據(jù)庫設(shè)計的主要內(nèi)容有數(shù)據(jù)庫的結(jié)構(gòu)特性設(shè)計和數(shù)據(jù)庫的行為特性設(shè)計。數(shù)據(jù)庫的結(jié)構(gòu)特性是靜態(tài)的,一般情況下不會輕易變動。因此,數(shù)據(jù)庫的結(jié)構(gòu)特性設(shè)計又稱為靜態(tài)結(jié)構(gòu)設(shè)計。其設(shè)計過程是:先將現(xiàn)實世界中的事物與事物之間的聯(lián)系用E-R圖表示,再將各個分E-R圖匯總,得出數(shù)據(jù)庫的概念結(jié)構(gòu)模型,最后將概念結(jié)構(gòu)模型轉(zhuǎn)換為數(shù)據(jù)庫的邏輯結(jié)構(gòu)模型表示。數(shù)據(jù)庫的行為結(jié)構(gòu)設(shè)計是指確定數(shù)據(jù)庫用戶的行為和動作。數(shù)據(jù)庫用戶的行為和動作通常有數(shù)據(jù)查詢和統(tǒng)計、事務(wù)處理及報表處理等,這些都需要通過應(yīng)用程序來表達和執(zhí)行,因而設(shè)計數(shù)據(jù)庫的行為特征要與應(yīng)用系統(tǒng)的設(shè)計結(jié)合進行。由于用戶的行為是動態(tài)的,因此,數(shù)據(jù)庫的行為特性設(shè)計也稱為數(shù)據(jù)庫的動態(tài)設(shè)計。其設(shè)計過程是:首先將現(xiàn)實世界中的數(shù)據(jù)及應(yīng)用情況用數(shù)據(jù)流圖和數(shù)據(jù)字典表示,并詳細描述其中的數(shù)據(jù)操作要求,進而得出系統(tǒng)的功能結(jié)構(gòu)和數(shù)據(jù)庫的子模式。按照規(guī)范設(shè)計的方法,將數(shù)據(jù)庫的設(shè)計分為如圖1-19所示的6個階段進行,不同的階段完成不同的設(shè)計內(nèi)容。1.需求分析階段需求分析的重點是調(diào)查、收集與分析用戶在數(shù)據(jù)管理中的信息要求、處理要求、安全性與完整性要求,得到設(shè)計系統(tǒng)所必需的需求信息,建立系統(tǒng)說明文檔。此階段包括需求的調(diào)查、需求的收集、需求的分析等內(nèi)容。需求分析階段的成果是系統(tǒng)需求說明書,此說明書主要包含數(shù)據(jù)流圖、數(shù)據(jù)字典、系統(tǒng)功能結(jié)構(gòu)圖和必要的說明。系統(tǒng)需求說明書是數(shù)據(jù)庫設(shè)計的基礎(chǔ)文件。2.概念結(jié)構(gòu)設(shè)計階段概念結(jié)構(gòu)設(shè)計是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵。它通過對用戶的需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型。一般都以E-R模型為工具來描述概念結(jié)構(gòu)。最常采用的設(shè)計策略是:自底向上,即首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局的概念結(jié)構(gòu)。3.邏輯結(jié)構(gòu)設(shè)計階段邏輯結(jié)構(gòu)設(shè)計的任務(wù)就是將概念模型(E-R模型)轉(zhuǎn)換成特定的DBMS系統(tǒng)所支持的數(shù)據(jù)庫的邏輯結(jié)構(gòu)。關(guān)系數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計可按以下步驟進行:(1)將E-R圖轉(zhuǎn)換為關(guān)系模式。(2)將轉(zhuǎn)換后的關(guān)系模式向特定的DBMS支持的數(shù)據(jù)模型轉(zhuǎn)換。(3)對數(shù)據(jù)模型進行優(yōu)化。4.數(shù)據(jù)庫物理設(shè)計階段數(shù)據(jù)庫的物理設(shè)計是為邏輯數(shù)據(jù)模型選取一個最適合的應(yīng)用環(huán)境的物理結(jié)構(gòu),包括存儲結(jié)構(gòu)和存取方法。5.數(shù)據(jù)庫實施階段數(shù)據(jù)庫實施階段根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進行試運行。6.數(shù)據(jù)庫運行和維護階段數(shù)據(jù)庫運行和維護階段是對系統(tǒng)進行評價、調(diào)整與修改,不斷完善系統(tǒng)。開發(fā)一個完善的數(shù)據(jù)庫應(yīng)用系統(tǒng)不可能一蹴而就,它往往是上述6個階段的不斷反復(fù)。而這6個階段不僅包含了數(shù)據(jù)庫的設(shè)計過程(靜態(tài)),而且包含了數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計過程(動態(tài))。在設(shè)計過程中,應(yīng)該把數(shù)據(jù)庫的結(jié)構(gòu)特性設(shè)計(數(shù)據(jù)庫的靜態(tài)設(shè)計)和數(shù)據(jù)庫的行為特性設(shè)計(數(shù)據(jù)庫的動態(tài)設(shè)計)緊密結(jié)合起來,將這兩個方面的需求分析、數(shù)據(jù)抽象、系統(tǒng)設(shè)計及實現(xiàn)等各個階段同時進行,相互參照、相互補充,以完善整體設(shè)計。1.7關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論就是指導(dǎo)產(chǎn)生一個具有確定的、好的數(shù)據(jù)庫模式的理論體系。1.7.1問題的提出給出一組如下的關(guān)系實例:學(xué)生關(guān)系:學(xué)生(學(xué)號,姓名,性別,出生日期,入學(xué)時間,系名)課程關(guān)系:課程(課程號,課程名,學(xué)時數(shù))選課關(guān)系:選課(學(xué)號,課程號,成績)若建立關(guān)系模式,則可以有如下兩種:(1)只有一個關(guān)系模式:學(xué)生—選課—課程。(2)用三個關(guān)系模式:學(xué)生,課程,選課。1.第一種設(shè)計:學(xué)生—選課—課程這種關(guān)系模式設(shè)計是將所有的實體屬性和實體之間的聯(lián)系都放到一個關(guān)系中,該設(shè)計存在的問題主要如下:1)數(shù)據(jù)冗余同一名學(xué)生修讀多門課程時,學(xué)生的個人信息會重復(fù)顯示多次;同一門課程被多名學(xué)生修讀時,課程信息也會重復(fù)顯示多次,造成數(shù)據(jù)冗余較大。2)修改異常如果某一名學(xué)生的學(xué)號錄入錯誤,需要進行修改,則所有涉及該學(xué)生的元組中的學(xué)號都需要進行修改。3)插入異常主鍵為(學(xué)號,課程號),按實體完整性規(guī)則要求,主屬性不得取空值,若主關(guān)鍵字是多個屬性的組合,則所有主屬性均不得取空值。如果新生入學(xué),應(yīng)錄入新生的個人基本信息,但此時新生還未修讀任何課程,也就沒有課程號,這樣該新生信息的課程號主屬性為空,不滿足實體完整性,也就不能將新生數(shù)據(jù)錄入數(shù)據(jù)庫,顯然這是不合理的。同樣的道理,若新開設(shè)一門課程,還沒有學(xué)生修讀,則這條課程信息也就沒有學(xué)號,同樣也不能錄入數(shù)據(jù)庫。4)刪除異常如果一門課程只有一名學(xué)生修讀,而該生后期退學(xué)了,就需要刪除該學(xué)生的這條信息,同時也就應(yīng)將該門課程一起刪除,不能只刪除學(xué)生個人信息而保留課程信息,因為這樣就不滿足實體完整性要求。如果一名學(xué)生只修讀了一門課程,后期該門課程不再開設(shè),需要刪除課程信息,那么也會同時將學(xué)生的基本信息一起刪除。2.第二種設(shè)計:學(xué)生,課程,選課這種關(guān)系模式設(shè)計是將所有的實體分開放到單獨的關(guān)系中,關(guān)系之間的聯(lián)系通過外鍵來實現(xiàn),該設(shè)計存在的問題主要是查找比較麻煩。本書介紹關(guān)系數(shù)據(jù)理論的其中兩個方面——數(shù)據(jù)依賴和范式。1.7

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論