版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、本章教學(xué)計劃 理論教學(xué)(課堂教學(xué)):4學(xué)時 實驗教學(xué)(上機(jī)實習(xí)):2學(xué)時本章教學(xué)重點(diǎn) 1. 數(shù)據(jù)模型及數(shù)據(jù)庫系統(tǒng) 2. 關(guān)系運(yùn)算及關(guān)系的規(guī)范化 3. 關(guān)系數(shù)據(jù)庫及SQL語言 4. 管理信息系統(tǒng)的結(jié)構(gòu)與功能 5. 管理信息系統(tǒng)的開發(fā)與設(shè)計步驟,第6章 數(shù)據(jù)庫原理與技術(shù)基礎(chǔ),6.1 數(shù)據(jù)庫系統(tǒng)概述 6.2 關(guān)系數(shù)據(jù)庫 6.3 常見數(shù)據(jù)庫管理系統(tǒng)6.4 管理信息系統(tǒng),,第6章 數(shù)據(jù)庫原理與技術(shù)基礎(chǔ),6.
2、1 數(shù)據(jù)庫系統(tǒng)概述,數(shù)據(jù)庫系統(tǒng)是計算機(jī)軟件系統(tǒng)的一個重要分支,也是一門新興學(xué)科,它和計算機(jī)網(wǎng)絡(luò)、人工智能一起被稱為計算機(jī)技術(shù)領(lǐng)域的三大熱門技術(shù),而且隨著各種應(yīng)用領(lǐng)域?qū)?shù)據(jù)管理的進(jìn)一步需求,數(shù)據(jù)處理迅速成為計算機(jī)應(yīng)用的重要方面,數(shù)據(jù)庫也成為計算機(jī)領(lǐng)域發(fā)展最快的學(xué)科之一。數(shù)據(jù)庫已經(jīng)成為信息社會的重要基礎(chǔ)設(shè)施?! ?shù)據(jù)庫技術(shù)發(fā)展到今天已經(jīng)是一門成熟的技術(shù),但由于數(shù)據(jù)庫是一個復(fù)雜系統(tǒng),涉及面廣,所以至今仍沒有統(tǒng)一的、公認(rèn)的定義。綜合較為流行的
3、數(shù)據(jù)庫文獻(xiàn)中對數(shù)據(jù)庫的定義,可以給數(shù)據(jù)庫定義為:數(shù)據(jù)庫是以某種方式組織和存儲起來的、可以檢索和利用的、互相關(guān)聯(lián)的數(shù)據(jù)集合,它提供給多種用戶共享并且有最小的冗余度和較高的數(shù)據(jù)獨(dú)立性,其安全控制機(jī)制可保證數(shù)據(jù)安全、可靠。,6.1 數(shù)據(jù)庫系統(tǒng)概述,6.1.1 數(shù)據(jù)管理技術(shù)的發(fā)展歷史 數(shù)據(jù)庫技術(shù)是20世紀(jì)60年代開始興起的一門信息管理自動化的新興學(xué)科,是計算機(jī)科學(xué)中的一個重要分支。從60年代末到70年代初,數(shù)據(jù)庫技術(shù)日益成熟,并有了堅
4、實的理論基礎(chǔ)。進(jìn)入70年代,數(shù)據(jù)庫技術(shù)有了很大的發(fā)展。數(shù)據(jù)庫方法,特別是DBTG(Data Base Task Group,數(shù)據(jù)庫任務(wù)組)方法(該方法是DBTG所提議的基于網(wǎng)狀結(jié)構(gòu)的數(shù)據(jù)庫網(wǎng)狀模型方法)和思想已應(yīng)用于各種計算機(jī)系統(tǒng),出現(xiàn)了許許多多基于網(wǎng)狀模型和層次模型的商品化數(shù)據(jù)庫系統(tǒng)。隨后,關(guān)系方法的理論研究和軟件系統(tǒng)的研制又取得了很大成果,關(guān)系方法也從實驗室走向了商用。 數(shù)據(jù)庫是數(shù)據(jù)管理的產(chǎn)物。數(shù)據(jù)管理是數(shù)據(jù)庫的核心任務(wù),內(nèi)
5、容包括對數(shù)據(jù)的分類、組織、編碼、儲存、檢索和維護(hù)。隨著計算機(jī)硬件和軟件的發(fā)展,數(shù)據(jù)庫技術(shù)也不斷地發(fā)展。從數(shù)據(jù)管理的角度看,數(shù)據(jù)庫技術(shù)到目前共經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。,6.1 數(shù)據(jù)庫系統(tǒng)概述,6.1.1 數(shù)據(jù)管理技術(shù)的發(fā)展歷史1) 人工管理階段 人工管理階段是指20世紀(jì)50年代中期之前。當(dāng)時計算機(jī)剛誕生不久,這個時期的計算機(jī)主要用于科學(xué)計算。從硬件看,沒有磁盤等直接存取的存儲設(shè)備;從軟件看,沒有操作系
6、統(tǒng)和管理數(shù)據(jù)的軟件,數(shù)據(jù)處理方式是批處理。這個時期數(shù)據(jù)管理的特點(diǎn)是: (1)數(shù)據(jù)不保存。 (2)沒有專門對數(shù)據(jù)進(jìn)行管理的軟件系統(tǒng)。 (3)沒有文件的概念。 (4)數(shù)據(jù)是面向應(yīng)用的?! ∪斯す芾黼A段數(shù)據(jù)和程序之間的關(guān)系如下圖所示。,6.1 數(shù)據(jù)庫系統(tǒng)概述,6.1.1 數(shù)據(jù)管理技術(shù)的發(fā)展歷史1) 人工管理階段,人工管理階段程序和數(shù)據(jù)之間的關(guān)系,6.1 數(shù)據(jù)庫系統(tǒng)概述,6.1.1 數(shù)據(jù)管理技術(shù)的發(fā)展歷史
7、2) 文件系統(tǒng)階段 文件系統(tǒng)階段是指20世紀(jì)50年代后期到60年代中期。在這個階段,計算機(jī)不僅用于科學(xué)計算,還大量用于管理數(shù)據(jù)。在硬件方面,外存儲器有了磁盤、磁鼓等直接存取的存儲設(shè)備。在軟件方面,操作系統(tǒng)中已經(jīng)有了專門用于管理數(shù)據(jù)的軟件,稱為文件系統(tǒng)。這個時期數(shù)據(jù)管理的特點(diǎn)是: (1)數(shù)據(jù)需要長期保存在外存上供反復(fù)使用。 (2)程序和數(shù)據(jù)之間有了一定的獨(dú)立性。 (3)文件的形式已經(jīng)多樣化。 (4
8、)數(shù)據(jù)的存取基本上以記錄為單位?! ∥募到y(tǒng)階段數(shù)據(jù)和程序之間的關(guān)系如下圖所示。,6.1 數(shù)據(jù)庫系統(tǒng)概述,6.1.1 數(shù)據(jù)管理技術(shù)的發(fā)展歷史2) 文件系統(tǒng)階段,文件系統(tǒng)階段數(shù)據(jù)和程序之間的關(guān)系,6.1 數(shù)據(jù)庫系統(tǒng)概述,3) 數(shù)據(jù)庫系統(tǒng)階段 數(shù)據(jù)庫系統(tǒng)階段是從20世紀(jì)60年代后期開始的。由于計算機(jī)用于管理,從而使數(shù)據(jù)量急劇增加,其中非數(shù)值數(shù)據(jù)所占比例較大,而非數(shù)值數(shù)據(jù)比數(shù)值數(shù)據(jù)復(fù)雜得多,不僅要知道各項數(shù)據(jù)本身的內(nèi)容,而且還需
9、要知道它們之間的關(guān)系,這就需要一個高度組織化的數(shù)據(jù)管理系統(tǒng)。此外,隨著計算機(jī)技術(shù)的飛速發(fā)展和網(wǎng)絡(luò)通信的出現(xiàn),使得多個用戶共享一個數(shù)據(jù)集合成為可能,于是出現(xiàn)了數(shù)據(jù)庫系統(tǒng)。在這一階段中,數(shù)據(jù)庫中的數(shù)據(jù)不再是面向某個應(yīng)用或某個程序,而是面向整個企業(yè)(組織)或整個應(yīng)用的。數(shù)據(jù)庫系統(tǒng)階段的特點(diǎn)是: (1)采用復(fù)雜的結(jié)構(gòu)化的數(shù)據(jù)模型。 (2)較高的數(shù)據(jù)獨(dú)立性。 (3)最低的冗余度。 (4)數(shù)據(jù)控制功能。,6.1 數(shù)據(jù)
10、庫系統(tǒng)概述,6.1.1 數(shù)據(jù)管理技術(shù)的發(fā)展歷史3) 數(shù)據(jù)庫系統(tǒng)階段,數(shù)據(jù)庫系統(tǒng)階段數(shù)據(jù)和程序之間的關(guān)系,6.1 數(shù)據(jù)庫系統(tǒng)概述,6.1.2 數(shù)據(jù)模型 數(shù)據(jù)庫存儲的是數(shù)據(jù),這些數(shù)據(jù)反映了現(xiàn)實世界中有意義、有價值的信息,數(shù)據(jù)庫不僅反映數(shù)據(jù)本身的內(nèi)容,而且也反映數(shù)據(jù)之間的聯(lián)系。數(shù)據(jù)模型就是用來抽象表示、處理現(xiàn)實世界的數(shù)據(jù)和信息的工具,它是數(shù)據(jù)庫中用于提供信息表示和操作手段的形式框架,也是將現(xiàn)實世界轉(zhuǎn)換為數(shù)據(jù)世界的橋梁。有關(guān)數(shù)據(jù)模
11、型的基本概念是數(shù)據(jù)庫理論的基礎(chǔ)。 1) 數(shù)據(jù)處理的抽象描述 不同的領(lǐng)域,數(shù)據(jù)的描述有所不同。實際生活中,有對現(xiàn)實世界的描述;理論研究中,有對符號化數(shù)據(jù)的描述;而在計算機(jī)內(nèi)部,數(shù)據(jù)又有其特定的表示方法。人們在研究和處理數(shù)據(jù)的過程中,常常把數(shù)據(jù)的轉(zhuǎn)換分為三個領(lǐng)域——現(xiàn)實世界、信息世界、機(jī)器世界,這三個世界間的轉(zhuǎn)換過程,就是將客觀現(xiàn)實的信息反映到計算機(jī)數(shù)據(jù)庫中的過程。,6.1 數(shù)據(jù)庫系統(tǒng)概述,6.1.2 數(shù)據(jù)模型1) 數(shù)據(jù)
12、處理的抽象描述 (1)現(xiàn)實世界。客觀存在的世界就是現(xiàn)實世界,它獨(dú)立于人們的思想之外。現(xiàn)實世界存在無數(shù)事物,每一個客觀存在的事物可以看作是一個個體,個體有多項特征和屬性。比如,電視機(jī)就有價格、品牌、可視面積大小以及是否彩色等特征。而不同的人,只會關(guān)心其中的一部分屬性,一定領(lǐng)域內(nèi)的個體有著相同的特征。,6.1 數(shù)據(jù)庫系統(tǒng)概述,6.1.2 數(shù)據(jù)模型1) 數(shù)據(jù)處理的抽象描述(2)信息世界。信息世界也稱概念世界,是現(xiàn)實世界在人們頭腦
13、中的反映。人的思維將現(xiàn)實世界的數(shù)據(jù)抽象化和概念化,并用文字符號表示出來,這就形成了信息世界。下面是人們在研究現(xiàn)實世界過程中常常用到的術(shù)語: ① 實體(Entity)。 ② 屬性(Attribute)。 ③ 鍵(Key)。 ④ 聯(lián)系(Relationship)。,6.1 數(shù)據(jù)庫系統(tǒng)概述,2) 數(shù)據(jù)模型 數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)的約束條件三部分組成。 數(shù)據(jù)結(jié)構(gòu)是所研究的對象類型的
14、集合。在數(shù)據(jù)庫系統(tǒng)中通常按照數(shù)據(jù)結(jié)構(gòu)的類型來命名數(shù)據(jù)模型,如層次結(jié)構(gòu)、網(wǎng)狀結(jié)構(gòu)和關(guān)系結(jié)構(gòu)的模型分別命名為層次模型、網(wǎng)狀模型和關(guān)系模型。 數(shù)據(jù)操作是指對數(shù)據(jù)庫中各種對象(型)的實例(值)允許執(zhí)行的操作的集合,包括操作及有關(guān)的操作規(guī)則。數(shù)據(jù)操作是用來描述系統(tǒng)的信息變化的,是對系統(tǒng)動態(tài)特性的描述。數(shù)據(jù)操作的種類有檢索(如查詢)和更新(增、刪、改)。 數(shù)據(jù)的約束條件是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系
15、所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效和相容。,6.1 數(shù)據(jù)庫系統(tǒng)概述,2) 數(shù)據(jù)模型(1) 信息模型(概念模型)與E-R(Entity-Relationship)方法 為了把現(xiàn)實世界中的具體事物進(jìn)行抽象,人們常常首先把現(xiàn)實世界抽象為信息世界,然后再將信息世界轉(zhuǎn)化為機(jī)器世界。在把現(xiàn)實世界抽象為信息世界的過程中,實際上是抽象出現(xiàn)實系統(tǒng)中有應(yīng)用價值的元素及其關(guān)聯(lián)。這時所形成的信息
16、結(jié)構(gòu)是概念模型。在抽象出概念模型后,再把概念模型轉(zhuǎn)換為計算機(jī)上某一DBMS(DataBase Management System,數(shù)據(jù)庫管理系統(tǒng))支持的數(shù)據(jù)模型。需要一種方法能夠?qū)ΜF(xiàn)實世界的信息進(jìn)行描述,最常用的是實體-聯(lián)系方法。 實體-聯(lián)系方法(即E-R方法)是P.P.S.Chen于1976年提出的,這種方法由于簡單、實用,所以得到了非常普遍的應(yīng)用。它使用的工具稱作E-R圖,它所描述的現(xiàn)實世界的信息結(jié)構(gòu)稱為企業(yè)模式,也把這種描
17、述結(jié)果稱為E-R模型。,6.1 數(shù)據(jù)庫系統(tǒng)概述,E-R方法的要點(diǎn): ① 用矩形框表示實體,實體名(如學(xué)生)寫在框內(nèi)。 ② 用橢圓框表示實體的屬性,框內(nèi)寫上屬性名,并用線段連到相應(yīng)的實體上。 ③ 用菱形框表示實體間的聯(lián)系,在框內(nèi)寫上聯(lián)系名,用線段連接菱形框與矩形框,在線段旁注上聯(lián)系的類型(一對一、一對多或多對多)。如果聯(lián)系也具有屬性,那么把屬性和菱形框用線段連上。 E-R圖是抽象描述現(xiàn)實世界的有力工具,它與
18、計算機(jī)所支持的數(shù)據(jù)模型相獨(dú)立,它更接近于現(xiàn)實世界。具體畫法是:把有聯(lián)系的實體(方框)通過聯(lián)系(菱形框)連接起來,注明聯(lián)系方式,實體的屬性(橢圓框)連到相應(yīng)實體上。下圖(E-R圖)描述的是2個實體間的多對多(m:n)的聯(lián)系方式。,6.1 數(shù)據(jù)庫系統(tǒng)概述,有關(guān)學(xué)生、課程的E-R圖(實體關(guān)系圖),6.1 數(shù)據(jù)庫系統(tǒng)概述,(2)結(jié)構(gòu)模型。結(jié)構(gòu)數(shù)據(jù)模型是機(jī)器世界的數(shù)據(jù)模型。實際數(shù)據(jù)庫系統(tǒng)中所支持的數(shù)據(jù)模型主要有層次模型、網(wǎng)狀模型和關(guān)系模型。
19、 ① 層次模型。用樹型結(jié)構(gòu)來表示實體之間聯(lián)系的模型稱為層次模型。層次模型是滿足有且僅有一個根結(jié)點(diǎn),非根結(jié)點(diǎn)有且僅有一個父結(jié)點(diǎn)的基本層次聯(lián)系的集合。構(gòu)成層次模型的樹是由結(jié)點(diǎn)和連線組成的,結(jié)點(diǎn)表示實體集,連線表示相連兩個實體之間的聯(lián)系,這種聯(lián)系只能是一對多的。通常把表示“一”的實體放在上方,稱為父結(jié)點(diǎn);而把表示“多”的實體放在下方,稱為子結(jié)點(diǎn)。 ② 網(wǎng)狀模型。用網(wǎng)狀結(jié)構(gòu)來表示實體之間聯(lián)系的數(shù)據(jù)模型稱為網(wǎng)狀模型。網(wǎng)狀模型是以記錄型為
20、結(jié)點(diǎn)的網(wǎng)狀結(jié)構(gòu),這種結(jié)構(gòu)必須滿足兩個條件:一個是網(wǎng)狀模型可以有一個以上結(jié)點(diǎn)而無父結(jié)點(diǎn);另一個是至少有一個結(jié)點(diǎn)具有多于一個的父結(jié)點(diǎn)。,6.1 數(shù)據(jù)庫系統(tǒng)概述,③ 關(guān)系模型。用一個二維表格表示實體和實體之間聯(lián)系的模型稱為關(guān)系模型。關(guān)系模型由三部分組成:關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系的完整性。 關(guān)系應(yīng)滿足以下條件:表格中的每一列都是不可再分的,每行和每列的相交點(diǎn)僅包含單個值;任何列中的值必須是同一類型的,各列被指定一個相異的名字;各
21、行相異,不允許重復(fù);行、列均無次序要求。一個關(guān)系就是一個文件,該文件中的每個記錄是惟一的,所有記錄具有相同個數(shù)和類型的字段,也就是說,所有記錄有同樣的固定長度和格式。關(guān)系可以有三種類型:基本關(guān)系(通常稱為基本表或基表)、查詢表和視圖表?;颈硎菍嶋H存在的表,它是實際存儲數(shù)據(jù)的邏輯表示;查詢表是查詢結(jié)果對應(yīng)的表;視圖表是由基本表或其他圖表導(dǎo)出的表,是虛表,不對應(yīng)實際存儲的數(shù)據(jù)。,6.1 數(shù)據(jù)庫系統(tǒng)概述,③ 關(guān)系模型 關(guān)系操作采用集
22、合操作方式,即操作的對象和結(jié)果都是集合。這種操作方式也稱為一次一個集合的方式。關(guān)系模型中常用的關(guān)系操作包括查詢操作(選擇、投影、連接、除、并、交、差等)和編輯操作(增、刪、改)兩大部分。查詢的表達(dá)能力是其中最重要的部分。 在關(guān)系型數(shù)據(jù)庫中,完整性約束用于確保數(shù)據(jù)的準(zhǔn)確性和一致性。關(guān)系模型提供了豐富的完整性控制機(jī)制,允許定義三類完整性:實體完整性、參照完整性和用戶定義完整性。其中實體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束
23、條件,應(yīng)該由關(guān)系系統(tǒng)自動支持。 實體完整性規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A就不能取空值?,F(xiàn)實世界中的實體之間往往存在某種聯(lián)系,在關(guān)系模型中實體及實體間的聯(lián)系都是用關(guān)系來描述的,這樣就自然存在著關(guān)系與關(guān)系間的引用。實體完整性和參照完整性用于任何關(guān)系數(shù)據(jù)庫系統(tǒng),用戶定義的完整性則是針對某一具體的數(shù)據(jù)庫的約束條件,如性別只能是“男”或“女”兩種可能。它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。關(guān)系模型應(yīng)提供定義和檢驗這類
24、完整性的機(jī)制。,6.1 數(shù)據(jù)庫系統(tǒng)概述,(3)面向?qū)ο竽P?。計算機(jī)應(yīng)用對數(shù)據(jù)模型的要求是多種多樣的,而且是層出不窮的。與其根據(jù)不同的新需求,提出各種新的數(shù)據(jù)模型,還不如設(shè)計一種可擴(kuò)充的數(shù)據(jù)模型,由用戶根據(jù)需要定義新的數(shù)據(jù)類型及相應(yīng)的約束和操作。面向?qū)ο髷?shù)據(jù)模型(Object-Oriented data model,簡稱O-O data model)就是一種可擴(kuò)充的數(shù)據(jù)模型。 在面向?qū)ο髷?shù)據(jù)模型中,所有現(xiàn)實世界中小的實體都模擬為對
25、象,小至一個整數(shù)、字符串、一個公司,都可以看成是對象。一個對象包含有若干屬性,用以描述對象的狀態(tài)、組成和特性。屬性也是對象,它又可能包含其他對象作為其屬性。這種遞歸引用對象的過程可以繼續(xù)下去,從而組成各種復(fù)雜的對象,而且同一個對象可以被多個對象所引用。除了屬性外,對象還包含若干方法,用以描述對象的行為特性。方法又稱為操作,它可以改變對象的狀態(tài),對對象進(jìn)行各種數(shù)據(jù)庫操作。方法的定義包含兩個部分:一是方法的接口,說明方法的名稱、參數(shù)和結(jié)果的
26、類型,一般稱之為調(diào)用說明;二是方法的實現(xiàn)部分,它是用程序設(shè)計語言編寫的一個過程,以實現(xiàn)方法的功能。一個數(shù)據(jù)庫一般包含大量的對象。如果每個對象都附有屬性和方法的說明,則會有大量的重復(fù)。為了解決這個問題,同時也為了概念上的清晰,常常把類似的對象歸并為類。,6.1 數(shù)據(jù)庫系統(tǒng)概述,6.1.3 數(shù)據(jù)庫系統(tǒng) 一個數(shù)據(jù)庫系統(tǒng)(Database System)主要由數(shù)據(jù)庫(Database)和數(shù)據(jù)庫管理系統(tǒng)(DBMS)構(gòu)成。簡單地說,數(shù)據(jù)庫
27、是一組經(jīng)過計算機(jī)整理后的數(shù)據(jù),存儲在一個或者多個文件中,而管理這個數(shù)據(jù)庫的軟件就被稱之為數(shù)據(jù)庫管理系統(tǒng)。此外,數(shù)據(jù)庫系統(tǒng)還包括數(shù)據(jù)庫應(yīng)用系統(tǒng)和用戶等。 數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫系統(tǒng)是三個不同的概念。數(shù)據(jù)庫強(qiáng)調(diào)的是數(shù)據(jù),數(shù)據(jù)庫管理系統(tǒng)強(qiáng)調(diào)的是系統(tǒng)軟件,而數(shù)據(jù)庫系統(tǒng)強(qiáng)調(diào)的是數(shù)據(jù)庫的整個運(yùn)行系統(tǒng)。,6.1 數(shù)據(jù)庫系統(tǒng)概述,6.1.3 數(shù)據(jù)庫系統(tǒng)1) 數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu) 數(shù)據(jù)庫系統(tǒng)軟件產(chǎn)品多種多樣,支持不同的數(shù)據(jù)
28、模型,使用不同的數(shù)據(jù)庫語言,建立在不同的操作系統(tǒng)之上,數(shù)據(jù)的存儲結(jié)構(gòu)也各不相同,但是大多數(shù)數(shù)據(jù)庫系統(tǒng)在總的體系結(jié)構(gòu)上都具有三級模式的結(jié)構(gòu)特征。數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)由模式、外模式和內(nèi)模式組成。 (1)模式。模式又稱為概念模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶的公共數(shù)據(jù)視圖,它描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu)。 (2)外模式。外模式又稱為子模式或用戶模式,是數(shù)據(jù)庫用戶看到的數(shù)據(jù)視圖,它涉及的是數(shù)據(jù)的局部邏輯
29、結(jié)構(gòu),通常是模式的子集。 (3)內(nèi)模式。內(nèi)模式又稱為存儲模式,是數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)部的表示,即對數(shù)據(jù)物理結(jié)構(gòu)和方式的描述。內(nèi)模式是全體數(shù)據(jù)庫數(shù)據(jù)的內(nèi)部表示或者是低層描述,用來定義數(shù)據(jù)的存儲方式和物理結(jié)構(gòu)。,6.1 數(shù)據(jù)庫系統(tǒng)概述,6.1.3 數(shù)據(jù)庫系統(tǒng)2) 數(shù)據(jù)庫系統(tǒng)的用戶 數(shù)據(jù)庫系統(tǒng)的用戶是指使用和訪問數(shù)據(jù)庫中數(shù)據(jù)的人。其用戶有以下四種: (1)數(shù)據(jù)庫設(shè)計者 (2)數(shù)據(jù)庫管理員 (3)應(yīng)用程
30、序設(shè)計者 (4)普通用戶 在實際工作中,數(shù)據(jù)庫管理員利用賬號來控制每個用戶的訪問權(quán)限。每個用戶都有自己的賬號和密碼,使用此賬號和密碼,用戶可以登錄數(shù)據(jù)庫,并在允許的權(quán)限范圍內(nèi)訪問數(shù)據(jù)庫中的數(shù)據(jù)。,6.1 數(shù)據(jù)庫系統(tǒng)概述,6.1.3 數(shù)據(jù)庫系統(tǒng) 3) 數(shù)據(jù)庫管理系統(tǒng) 數(shù)據(jù)庫管理系統(tǒng)(DBMS)是指幫助用戶建立、使用和管理數(shù)據(jù)庫的軟件系統(tǒng)。它通常由下面三個部分組成: (1)數(shù)據(jù)定義語言(Data Defi
31、nition Language,DDL)。DDL用來描述數(shù)據(jù)庫的結(jié)構(gòu),供用戶建立數(shù)據(jù)庫。 (2)數(shù)據(jù)操作語言(Data Manipulation Language,DML)。DML供用戶對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的查詢(數(shù)據(jù)的檢索和統(tǒng)計等)和處理(數(shù)據(jù)的增加、刪除和修改等)等操作。 (3)其他管理和控制例行程序。這部分包括安全、通訊控制和工作日志等內(nèi)容。 一般情況下,DDL和DML組成一個一體化的語言。對于關(guān)系型數(shù)據(jù)庫,最
32、常用的就是SQL語言,幾乎所有的數(shù)據(jù)庫管理系統(tǒng)都提供了對SQL語言的支持。,6.1 數(shù)據(jù)庫系統(tǒng)概述,6.1.3 數(shù)據(jù)庫系統(tǒng) 數(shù)據(jù)庫管理系統(tǒng)提供了用戶和數(shù)據(jù)庫之間的軟件界面,使用戶能更方便地操作數(shù)據(jù)庫。一般來說,它應(yīng)有如下功能: (1)數(shù)據(jù)定義。和高級語言類似,須定義需要的數(shù)據(jù)類型。 (2)數(shù)據(jù)處理。DBMS必須提供用戶對數(shù)據(jù)庫的存取能力,包括記錄的增加、修改、檢索和刪除等。 (3)數(shù)據(jù)安全性、完整性和并發(fā)性
33、控制。管理和監(jiān)督用戶的權(quán)限,防止用戶有任何破壞或者惡意的企圖,保證進(jìn)入數(shù)據(jù)庫中的存儲數(shù)據(jù)的語義正確性和有效性,防止改變數(shù)據(jù)的語義,正確處理多用戶環(huán)境下的并發(fā)操作。 (4)效率。DBMS應(yīng)保證數(shù)據(jù)庫的高效率運(yùn)行,以提高數(shù)據(jù)檢索和修改的速度。,6.1 數(shù)據(jù)庫系統(tǒng)概述,6.1.3 數(shù)據(jù)庫系統(tǒng) 4) 數(shù)據(jù)庫系統(tǒng)的發(fā)展 數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心。按照數(shù)據(jù)模型發(fā)展的主線,數(shù)據(jù)庫系統(tǒng)的形成過程和發(fā)展可從以下三個方面反映出來。
34、 (1)第一代數(shù)據(jù)庫系統(tǒng)——層次和網(wǎng)狀數(shù)據(jù)庫管理系統(tǒng)。層次和網(wǎng)狀數(shù)據(jù)庫的代表產(chǎn)品是IBM公司在1969年研制出的層次模型數(shù)據(jù)庫管理系統(tǒng)。層次數(shù)據(jù)庫是數(shù)據(jù)庫系統(tǒng)的先驅(qū),而網(wǎng)狀數(shù)據(jù)庫則是數(shù)據(jù)庫概念、方法、技術(shù)的奠基。,6.1 數(shù)據(jù)庫系統(tǒng)概述,6.1.3 數(shù)據(jù)庫系統(tǒng) 4) 數(shù)據(jù)庫系統(tǒng)的發(fā)展 (2)第二代數(shù)據(jù)庫系統(tǒng)——關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。1970年,IBM公司的研究員E.E.Codd在題為《大型共享數(shù)據(jù)庫數(shù)據(jù)的關(guān)
35、系模型》的論文中提出了數(shù)據(jù)庫的關(guān)系模型,為關(guān)系數(shù)據(jù)庫技術(shù)奠定了理論基礎(chǔ)。到了20世紀(jì)80年代,幾乎所有新開發(fā)的數(shù)據(jù)庫系統(tǒng)都是關(guān)系型的。真正使得關(guān)系數(shù)據(jù)庫技術(shù)實用化的關(guān)鍵人物是James Gray。Gray在解決如何保障數(shù)據(jù)的完整性、安全性、并發(fā)性以及數(shù)據(jù)庫的故障恢復(fù)能力等重大技術(shù)問題方面發(fā)揮了關(guān)鍵作用。關(guān)系數(shù)據(jù)庫系統(tǒng)的出現(xiàn),促進(jìn)了數(shù)據(jù)庫的小型化和普及化,使得在微型機(jī)上配置數(shù)據(jù)庫系統(tǒng)成為可能。,6.1 數(shù)據(jù)庫系統(tǒng)概述,6.1.3 數(shù)據(jù)庫
36、系統(tǒng) 4) 數(shù)據(jù)庫系統(tǒng)的發(fā)展(3)新一代數(shù)據(jù)庫系統(tǒng)的研究和發(fā)展。目前已從多方面發(fā)展了現(xiàn)行的數(shù)據(jù)庫系統(tǒng)技術(shù)。可以從數(shù)據(jù)模型、新技術(shù)內(nèi)容、應(yīng)用領(lǐng)域三個方面概括新一代數(shù)據(jù)庫系統(tǒng)的發(fā)展。 ① 面向?qū)ο蟮姆椒ê图夹g(shù)對數(shù)據(jù)庫發(fā)展的影響最為深遠(yuǎn)。20世紀(jì)80年代,面向?qū)ο蟮姆椒ê图夹g(shù)的出現(xiàn),對計算機(jī)各個領(lǐng)域,包括程序設(shè)計語言、軟件工程、信息系統(tǒng)設(shè)計以及計算機(jī)硬件設(shè)備等都產(chǎn)生了深遠(yuǎn)的影響,也給面臨新挑戰(zhàn)的數(shù)據(jù)庫技術(shù)帶來了新的機(jī)遇和希望。數(shù)據(jù)
37、庫研究人員借鑒和吸收了面向?qū)ο蟮姆椒ê图夹g(shù),提出了面向?qū)ο蟮臄?shù)據(jù)庫模型(簡稱對象模型)。當(dāng)前有許多研究是建立在數(shù)據(jù)庫已有的成果和技術(shù)上的,針對不同的應(yīng)用,對傳統(tǒng)的DBMS,主要是RDBMS進(jìn)行不同層次上的擴(kuò)充,例如建立對象關(guān)系(OR)模型和建立對象關(guān)系數(shù)據(jù)庫(ORDB)。,6.1 數(shù)據(jù)庫系統(tǒng)概述,6.1.3 數(shù)據(jù)庫系統(tǒng) ② 數(shù)據(jù)庫技術(shù)與多學(xué)科技術(shù)的有機(jī)結(jié)合。數(shù)據(jù)庫技術(shù)與多學(xué)科技術(shù)的有機(jī)結(jié)合是當(dāng)前數(shù)據(jù)庫發(fā)展的重要特征。計算機(jī)領(lǐng)域中其
38、他新興技術(shù)的發(fā)展對數(shù)據(jù)庫技術(shù)產(chǎn)生了重大影響。傳統(tǒng)的數(shù)據(jù)庫技術(shù)和其他計算機(jī)技術(shù)的結(jié)合、互相滲透,使數(shù)據(jù)庫中新的技術(shù)內(nèi)容層出不窮。數(shù)據(jù)庫的許多概念、技術(shù)內(nèi)容、應(yīng)用領(lǐng)域,甚至某些原理都有了重大的發(fā)展和變化。建立和實現(xiàn)了一系列新型的數(shù)據(jù)庫,如分布式數(shù)據(jù)庫、并行數(shù)據(jù)庫、演繹數(shù)據(jù)庫、知識庫、多媒體庫和移動數(shù)據(jù)庫等,它們共同構(gòu)成了數(shù)據(jù)庫大家族。 ③ 面向?qū)iT應(yīng)用領(lǐng)域的數(shù)據(jù)庫技術(shù)的研究。為了適應(yīng)數(shù)據(jù)庫應(yīng)用多元化的要求,在傳統(tǒng)數(shù)據(jù)庫基礎(chǔ)上,結(jié)合各
39、個專門應(yīng)用領(lǐng)域的特點(diǎn),研究適合該應(yīng)用領(lǐng)域的數(shù)據(jù)庫技術(shù),如工程數(shù)據(jù)庫、統(tǒng)計數(shù)據(jù)庫、科學(xué)數(shù)據(jù)庫、空間數(shù)據(jù)庫、地理數(shù)據(jù)庫和Web數(shù)據(jù)庫等,這是當(dāng)前數(shù)據(jù)庫技術(shù)發(fā)展的又一重要特征。 同時,數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)也由主機(jī)/終端的集中式結(jié)構(gòu)發(fā)展到網(wǎng)絡(luò)環(huán)境的分布式結(jié)構(gòu),隨后又發(fā)展成兩層、三層或多層客戶/服務(wù)器結(jié)構(gòu)以及Internet環(huán)境下的瀏覽器/服務(wù)器和移動環(huán)境下的動態(tài)結(jié)構(gòu)。多種數(shù)據(jù)庫結(jié)構(gòu)滿足了不同應(yīng)用的需求,適應(yīng)了不同的應(yīng)用環(huán)境。,6.1 數(shù)據(jù)庫系
40、統(tǒng)概述,6.1.3 數(shù)據(jù)庫系統(tǒng) ② 數(shù)據(jù)庫技術(shù)與多學(xué)科技術(shù)的有機(jī)結(jié)合。數(shù)據(jù)庫技術(shù)與多學(xué)科技術(shù)的有機(jī)結(jié)合是當(dāng)前數(shù)據(jù)庫發(fā)展的重要特征。計算機(jī)領(lǐng)域中其他新興技術(shù)的發(fā)展對數(shù)據(jù)庫技術(shù)產(chǎn)生了重大影響。傳統(tǒng)的數(shù)據(jù)庫技術(shù)和其他計算機(jī)技術(shù)的結(jié)合、互相滲透,使數(shù)據(jù)庫中新的技術(shù)內(nèi)容層出不窮。數(shù)據(jù)庫的許多概念、技術(shù)內(nèi)容、應(yīng)用領(lǐng)域,甚至某些原理都有了重大的發(fā)展和變化。建立和實現(xiàn)了一系列新型的數(shù)據(jù)庫,如分布式數(shù)據(jù)庫、并行數(shù)據(jù)庫、演繹數(shù)據(jù)庫、知識庫、多媒體庫和移
41、動數(shù)據(jù)庫等,它們共同構(gòu)成了數(shù)據(jù)庫大家族。 ③ 面向?qū)iT應(yīng)用領(lǐng)域的數(shù)據(jù)庫技術(shù)的研究。為了適應(yīng)數(shù)據(jù)庫應(yīng)用多元化的要求,在傳統(tǒng)數(shù)據(jù)庫基礎(chǔ)上,結(jié)合各個專門應(yīng)用領(lǐng)域的特點(diǎn),研究適合該應(yīng)用領(lǐng)域的數(shù)據(jù)庫技術(shù),如工程數(shù)據(jù)庫、統(tǒng)計數(shù)據(jù)庫、科學(xué)數(shù)據(jù)庫、空間數(shù)據(jù)庫、地理數(shù)據(jù)庫和Web數(shù)據(jù)庫等,這是當(dāng)前數(shù)據(jù)庫技術(shù)發(fā)展的又一重要特征。 同時,數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)也由主機(jī)/終端的集中式結(jié)構(gòu)發(fā)展到網(wǎng)絡(luò)環(huán)境的分布式結(jié)構(gòu),隨后又發(fā)展成兩層、三層或多層客戶/服務(wù)
42、器結(jié)構(gòu)以及Internet環(huán)境下的瀏覽器/服務(wù)器和移動環(huán)境下的動態(tài)結(jié)構(gòu)。多種數(shù)據(jù)庫結(jié)構(gòu)滿足了不同應(yīng)用的需求,適應(yīng)了不同的應(yīng)用環(huán)境。,6.1 數(shù)據(jù)庫系統(tǒng)概述 6.2 關(guān)系數(shù)據(jù)庫 6.3 常見數(shù)據(jù)庫管理系統(tǒng)6.4 管理信息系統(tǒng),,第6章 數(shù)據(jù)庫原理與技術(shù)基礎(chǔ),6.2 關(guān)系數(shù)據(jù)庫,數(shù)據(jù)模型為關(guān)系模型的數(shù)據(jù)庫稱為關(guān)系數(shù)據(jù)庫。 在關(guān)系數(shù)據(jù)庫中,主要涉及以下基本術(shù)語。 關(guān)系:一個關(guān)系就是一張二維表,每個關(guān)系有一個關(guān)系名
43、。在計算機(jī)里,一個關(guān)系可以存儲為一個文件。下表的學(xué)生基本情況即為一個關(guān)系。,6.2 關(guān)系數(shù)據(jù)庫,元組:二維表中水平方向的行稱為元組,每一行是一個元組。元組對應(yīng)存儲文件中的一個具體記錄。表6.1包含5個元組。 屬性:二維表中垂直方向的列稱為屬性,每一列有一個屬性名,與前面介紹的實體屬性相同。屬性名和該屬性的數(shù)據(jù)類型、寬度等在數(shù)據(jù)定義時規(guī)定。屬性值是各個記錄中的字段值。例如,表6.1的學(xué)生基本情況關(guān)系中的學(xué)號、姓名、性別等為屬性名。
44、20050000001、張大偉、男等是屬性值?! ∮颍簩傩缘娜≈捣秶?,即不同元組對同一個屬性的取值所限定的范圍。例如,姓名的取值范圍是文字字符;性別只能從“男”、“女”兩個漢字中取其一。 關(guān)鍵字:屬性或?qū)傩越M合,其值能夠唯一地標(biāo)識一個元組。例如,表6.1的學(xué)生基本情況關(guān)系中的學(xué)號可以作為標(biāo)識關(guān)鍵字;如果絕對沒有重名學(xué)生,姓名也能唯一地標(biāo)識一個元組。由于具有某一性別的不止一個人,性別就不能作為標(biāo)識關(guān)鍵字。,6.2 關(guān)系數(shù)據(jù)庫,關(guān)
45、系模式:對關(guān)系的描述稱為關(guān)系模式,其格式為: 關(guān)系名(屬性名1,屬性名2,…,屬性名n)一個關(guān)系模式對應(yīng)一個關(guān)系的結(jié)構(gòu)。 從集合論的觀點(diǎn)來定義關(guān)系,可以將關(guān)系定義為元組的集合。關(guān)系模式是命名的屬性集合。元組是屬性值的集合。一個具體的關(guān)系模型是若干個關(guān)系模式的集合。 關(guān)系數(shù)據(jù)庫結(jié)構(gòu)與層次型、網(wǎng)狀型結(jié)構(gòu)相比有如下優(yōu)點(diǎn): (1)表格式的關(guān)系易于建立數(shù)據(jù)庫。 (2)使用者較易于理解表格式的關(guān)系。
46、 (3)層次型與網(wǎng)狀型結(jié)構(gòu)可容易地轉(zhuǎn)換成表格式結(jié)構(gòu),因此可視為萬用形式的結(jié)構(gòu)。 (4)投影與連結(jié)表格的字段很容易,因此新關(guān)系的建立也易于實現(xiàn)。 (5)搜尋速度較快,表格式的搜尋比線性結(jié)構(gòu)更容易。 (6)關(guān)系型結(jié)構(gòu)較易于修改。,6.2 關(guān)系數(shù)據(jù)庫,6.2.1 關(guān)系運(yùn)算與關(guān)系代數(shù) 關(guān)系代數(shù)是一種抽象的查詢語言,是關(guān)系數(shù)據(jù)操縱語言的一種傳統(tǒng)表達(dá)方式,它是用對關(guān)系的運(yùn)算來表達(dá)查詢的。 任何一種運(yùn)算都是將
47、一定的運(yùn)算符作用于一定的運(yùn)算對象上,得到預(yù)期的運(yùn)算結(jié)果。所以運(yùn)算對象、運(yùn)算符、運(yùn)算結(jié)果是運(yùn)算的三大要素。 關(guān)系代數(shù)的運(yùn)算對象是關(guān)系,運(yùn)算結(jié)果亦為關(guān)系。關(guān)系代數(shù)用到的運(yùn)算符包括四類:集合運(yùn)算符、專門的關(guān)系運(yùn)算符、算術(shù)比較符和邏輯運(yùn)算符。對關(guān)系數(shù)據(jù)庫進(jìn)行查詢時,需要找到用戶感興趣的數(shù)據(jù),這就需要對關(guān)系進(jìn)行一定的關(guān)系運(yùn)算。關(guān)系的基本運(yùn)算有兩類:一類是傳統(tǒng)的集合運(yùn)算(并、差、交等);另一類是專門的關(guān)系運(yùn)算(選擇、投影、聯(lián)接)。有些查詢
48、需要幾個基本運(yùn)算的組合,經(jīng)過若干個步驟才能完成。,6.2 關(guān)系數(shù)據(jù)庫,6.2.1 關(guān)系運(yùn)算與關(guān)系代數(shù) 1) 傳統(tǒng)的集合運(yùn)算 進(jìn)行并、差、交集合運(yùn)算的兩個關(guān)系必須具有相同的關(guān)系模式,即相同結(jié)構(gòu)。 (1)并——兩個相同結(jié)構(gòu)的關(guān)系的并是由屬于這兩個關(guān)系的元組組成的集合。(2)差——設(shè)有兩個相同結(jié)構(gòu)的關(guān)系R和S,R差S的結(jié)果是由屬于R但不屬于S的元組組成的集合,即差運(yùn)算的結(jié)果是從R中去掉S中也有的元組。(3)交——兩個具
49、有相同結(jié)構(gòu)的關(guān)系R和S,它們的交是由既屬于R又屬于S的元組組成的集合。交運(yùn)算的結(jié)果是R和S的共同元組。,6.2 關(guān)系數(shù)據(jù)庫,6.2.1 關(guān)系運(yùn)算與關(guān)系代數(shù) 2) 專門的關(guān)系運(yùn)算 (1)選擇——從關(guān)系中找出滿足給定條件的元組的操作稱為選擇。選擇的條件以邏輯表達(dá)式給出,使得邏輯表達(dá)式的值為真的元組將被選取。 選擇是從行的角度進(jìn)行的運(yùn)算,即從水平方向抽取記錄。經(jīng)過選擇運(yùn)算得到的結(jié)果元組形成的新關(guān)系,其關(guān)系模式不變,但其中
50、的元組是原關(guān)系的一個子集。 (2)投影——從關(guān)系模式中指定若干個屬性組成新的關(guān)系稱為投影。 投影是從列的角度進(jìn)行的運(yùn)算,相當(dāng)于對關(guān)系進(jìn)行垂直分解。經(jīng)過投影運(yùn)算可以得到一個新關(guān)系,其關(guān)系模式所包含的屬性個數(shù)往往比原關(guān)系少,或者屬性的排列順序不同。投影運(yùn)算提供了垂直調(diào)整關(guān)系的手段,體現(xiàn)出關(guān)系中列的次序無關(guān)性這一特點(diǎn)。 (3)聯(lián)接——聯(lián)接是關(guān)系的橫向結(jié)合。聯(lián)接運(yùn)算將按兩個關(guān)系模式的屬性名拼接成一個更寬的關(guān)系模式,生成的
51、新關(guān)系中包含滿足聯(lián)接條件的元組。 聯(lián)接過程是通過聯(lián)接條件來控制的,聯(lián)接條件中將出現(xiàn)兩個關(guān)系中的公共屬性名,或者具有相同語義、可比的屬性。,6.2 關(guān)系數(shù)據(jù)庫,6.2.1 關(guān)系運(yùn)算與關(guān)系代數(shù) 1) 傳統(tǒng)的集合運(yùn)算 (4)自然聯(lián)接和優(yōu)化 ① 自然聯(lián)接——自然聯(lián)接是去掉重復(fù)屬性的等值聯(lián)接,它屬于聯(lián)接運(yùn)算中按照屬性值對應(yīng)相等為條件進(jìn)行的聯(lián)接操作。自然聯(lián)接是最常用的聯(lián)接運(yùn)算。 利用關(guān)系的投影、選擇和聯(lián)接運(yùn)算可以方便
52、地分解或構(gòu)造新的關(guān)系。 ② 聯(lián)接優(yōu)化——系統(tǒng)在執(zhí)行聯(lián)接運(yùn)算時要進(jìn)行大量的比較操作,因此執(zhí)行起來比較費(fèi)時間。尤其是在包括許多元組的關(guān)系之間進(jìn)行聯(lián)接時,矛盾更加突出。,6.2 關(guān)系數(shù)據(jù)庫,設(shè)關(guān)系R和S分別有m和n個元組。聯(lián)接運(yùn)算先從R關(guān)系中的第一個元組開始,依次與S關(guān)系的各個元組按照聯(lián)結(jié)條件進(jìn)行比較,符合條件的兩元組首尾相連納入新關(guān)系,一輪共需要進(jìn)行n次比較;再用R關(guān)系中的第二個元組對S關(guān)系的各個元組進(jìn)行第二次掃描。由于R中有m個元
53、組,共需要進(jìn)行m輪掃描,因此,R與S的聯(lián)接過程共需要訪問m×n個元組。如果m=500,n=50,聯(lián)接過程需要進(jìn)行25000次訪問。由此可見,涉及到聯(lián)接的查詢應(yīng)當(dāng)考慮優(yōu)化,以便提高操作效率。 優(yōu)化的一般方法是,考慮縮小參與聯(lián)接運(yùn)算關(guān)系的尺寸,要減少訪問記錄的次數(shù)。首先應(yīng)進(jìn)行選擇運(yùn)算,盡量減少關(guān)系中元組的個數(shù),能投影的再投影,使關(guān)系中屬性個數(shù)較少。在投影時必須注意保留聯(lián)接兩個關(guān)系所需要的公共屬性或具有相同語義的屬性,否則關(guān)
54、系之間就失去了聯(lián)系,然后再進(jìn)行聯(lián)接操作。 在關(guān)系代數(shù)中,將關(guān)系和運(yùn)算經(jīng)有限次復(fù)合所形成的式子稱為關(guān)系代數(shù)表達(dá)式。,6.2 關(guān)系數(shù)據(jù)庫,6.2.2 關(guān)系的規(guī)范化 關(guān)系模型看起來簡單,但是不能把日常手工管理所用的各種表格,按照一張表一個關(guān)系直接存放到數(shù)據(jù)庫里。在關(guān)系模型中對關(guān)系有一定的要求,關(guān)系必須具有以下特點(diǎn): (1)關(guān)系必須規(guī)范化。所謂規(guī)范化是指關(guān)系模型中的每一個關(guān)系模式都必須滿足一定的要求。最基本的要求是每個
55、屬性值必須是不可分割的數(shù)據(jù)單元,即表中不能再包含表。 手工制表中經(jīng)常出現(xiàn)如下表所示的復(fù)合表。這種表格不是二維表,不能直接作為關(guān)系來存放,只要去掉表中的“應(yīng)發(fā)工資”和“應(yīng)扣工資”兩個表項就可以了。而在數(shù)據(jù)輸出時,可以對打印格式另行設(shè)計,從而滿足用戶的要求。,6.2 關(guān)系數(shù)據(jù)庫,6.2.2 關(guān)系的規(guī)范化,復(fù)合表。這種表格不是二維表,不能直接作為關(guān)系來存放,只要去掉表中的“應(yīng)發(fā)工資”和“應(yīng)扣工資”兩個表項就可以了,6.2 關(guān)系數(shù)據(jù)庫
56、,6.2.2 關(guān)系的規(guī)范化 ?。?)在同一個關(guān)系中不能出現(xiàn)相同的屬性名,即表格中的字段名不允許重復(fù),且每一列必須具有相同的數(shù)據(jù)類型。 (3)關(guān)系中不允許有完全相同的元組,即表格中不允許出現(xiàn)相同的行(相同的記錄)。 (4)在一個關(guān)系中對屬性和元組無順序要求,既任意交換表格中兩列或兩行的位置并不影響數(shù)據(jù)的實際含義。,6.2 關(guān)系數(shù)據(jù)庫,6.2.3 SQL語言簡介 SQL是Structured Query Langu
57、age(結(jié)構(gòu)化查詢語言)的縮寫。SQL是專為數(shù)據(jù)庫而建立的操作命令集,是一種功能齊全的數(shù)據(jù)庫語言。在使用它時,只需要發(fā)出“做什么”的命令,而“怎么做”則不用使用者考慮。SQL的功能強(qiáng)大、簡單易學(xué)、使用方便,已經(jīng)成為數(shù)據(jù)庫操作的基礎(chǔ),并且現(xiàn)在幾乎所有的數(shù)據(jù)庫均支持SQL?! ?) SQL數(shù)據(jù)庫的數(shù)據(jù)體系結(jié)構(gòu) SQL數(shù)據(jù)庫的數(shù)據(jù)體系結(jié)構(gòu)基本上是三級結(jié)構(gòu),但使用的術(shù)語與傳統(tǒng)關(guān)系模型的術(shù)語不同。在SQL中,關(guān)系模式(模式)稱為“基本表”(
58、base table),存儲模式(內(nèi)模式)稱為“存儲文件”(stored file),子模式(外模式)稱為“視圖”(view),元組稱為“行”(row),屬性稱為“列”(column)。,6.2 關(guān)系數(shù)據(jù)庫,6.2.3 SQL語言簡介2) SQL語言的組成 ① 一個SQL數(shù)據(jù)庫是表(Table)的集合,它由一個或多個SQL模式定義。 ② 一個SQL表由行若干行構(gòu)成,—行是列的序列(集合),每列與行對應(yīng)—個數(shù)據(jù)項。
59、 ③ 一個表或者是一個基本表,或者是一個視圖?;颈硎菍嶋H存儲在數(shù)據(jù)庫的表,而視圖是由若干基本表或其他視圖構(gòu)成的表的定義。 ④ 一個基本表可以跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表。每個存儲文件與外存上的—個物理文件對應(yīng)。,6.2 關(guān)系數(shù)據(jù)庫,6.2.3 SQL語言簡介2) SQL語言的組成 ⑤ 用戶可以用SQL語句對視圖和基本表進(jìn)行查詢等操作。從用戶角度看,視圖和基本表是一樣的,沒有區(qū)別,
60、都是關(guān)系(表格)。 ⑥ SQL用戶可以是應(yīng)用程序,也可以是終端用戶。SQL語句可嵌入在宿主語言的程序中使用,宿主語言有FORTRAN、COBOL、PASCAL、PL/1、C和Ada語言等。SQL用戶也能作為獨(dú)立的用戶接口,供交互環(huán)境下的終端用戶使用。,6.2 關(guān)系數(shù)據(jù)庫,6.2.3 SQL語言簡介3) 對數(shù)據(jù)庫進(jìn)行操作 SQL包括了所有對數(shù)據(jù)庫的操作,主要由以下4個部分組成: ① 數(shù)據(jù)定義:這一部分又稱為“S
61、QL DDL(Data Definition Language)”,指定義數(shù)據(jù)庫的邏輯結(jié)構(gòu),包括定義數(shù)據(jù)庫、基本表、視圖和索引四個部分。 ② 數(shù)據(jù)操作:這一部分又稱為“SQL DML(Data Manipulation Language)”,其中包括數(shù)據(jù)查詢和數(shù)據(jù)更新兩大類操作,其中數(shù)據(jù)更新又包括插入、刪除和更新三種操作。 ③ 數(shù)據(jù)控制:對用戶訪問數(shù)據(jù)的控制有基本表和視圖的授權(quán)、完整性規(guī)則的描述、事務(wù)控制語句等。
62、 ④ 嵌入式SQL語言的使用規(guī)定:規(guī)定SQL語句在宿主語言的程序中使用的規(guī)則。,6.2 關(guān)系數(shù)據(jù)庫,6.2.3 SQL語言簡介4) SQL語言的優(yōu)點(diǎn) 使用SQL語言有如下優(yōu)點(diǎn): ① 非過程化語言 ② 統(tǒng)—的語言 SQL為許多任務(wù)提供了命令,其中包括: ● 查詢數(shù)據(jù); ● 在表中插入、修改和刪除記錄; ● 建立、修改和刪除數(shù)據(jù)對象; ● 控制對數(shù)據(jù)和數(shù)據(jù)對象的存取; ●
63、保證數(shù)據(jù)庫一致性和完整性。 ③ 是所有關(guān)系數(shù)據(jù)庫的公共語言,6.2 關(guān)系數(shù)據(jù)庫,6.2.3 SQL語言簡介,SQL語言的動詞,6.1 數(shù)據(jù)庫系統(tǒng)概述 6.2 關(guān)系數(shù)據(jù)庫 6.3 常見數(shù)據(jù)庫管理系統(tǒng)6.4 管理信息系統(tǒng),,第6章 數(shù)據(jù)庫原理與技術(shù)基礎(chǔ),6.3 常見數(shù)據(jù)庫管理系統(tǒng),6.3.1 小型數(shù)據(jù)庫 1) Access Access是Office辦公套件中一個極為重要的組成部分。剛開始時微軟公司是將
64、Access單獨(dú)作為一個產(chǎn)品進(jìn)行銷售的,后來微軟發(fā)現(xiàn)如果將Access捆綁在Office中一起發(fā)售,將帶來更加可觀的利潤,于是第一次將Access捆綁到Office 97中,成為Office套件中的一個重要成員?,F(xiàn)在它已經(jīng)成為Office辦公套件中不可缺少的部件了。自從1992年開始銷售以來,Access 已經(jīng)賣出了超過6000萬份,現(xiàn)在它已經(jīng)成為世界上最流行的桌面數(shù)據(jù)庫管理系統(tǒng)。 后來微軟公司通過大量地改進(jìn),將Access的新版本
65、功能變得更加強(qiáng)大。不管是處理公司的客戶訂單數(shù)據(jù)、管理自己的個人通訊錄,還是大量科研數(shù)據(jù)的記錄和處理,人們都可以利用它來解決大量數(shù)據(jù)的管理工作。,6.3 常見數(shù)據(jù)庫管理系統(tǒng),6.3.1 小型數(shù)據(jù)庫2) Xbase系列 數(shù)據(jù)庫理論的研究在20世紀(jì)70年代后期進(jìn)入較為成熟的階段,隨著80年代初IBM/PC及其兼容機(jī)的廣泛使用,數(shù)據(jù)庫產(chǎn)品的代表作之一、Ashton-Tate公司開發(fā)的dBASE很快進(jìn)入微機(jī)世界,成為一個相當(dāng)普遍而且受歡迎
66、的數(shù)據(jù)庫管理系統(tǒng)。用戶只需鍵入簡單的命令,即可輕易完成數(shù)據(jù)庫的建立、增添、修改、查詢、索引以及產(chǎn)生報表或標(biāo)簽,或者利用其程序語言開發(fā)應(yīng)用系統(tǒng)程序。由于它易于使用,功能較強(qiáng),很快成為80年代中期的主導(dǎo)數(shù)據(jù)庫系統(tǒng)(極盛時期曾在個人計算機(jī)的數(shù)據(jù)庫管理系統(tǒng)市場上的占有率高達(dá)80-85%)。繼dBASE II 之后,dBASE III,dBASE III Plus 以及dBASE IV相繼誕生,其功能逐漸增強(qiáng)。,6.3 常見數(shù)據(jù)庫管理系統(tǒng),6.3
67、.1 小型數(shù)據(jù)庫2) Xbase系列 但是,dBASE存在的一些缺陷使其應(yīng)用受到越來越大的限制。首先,它運(yùn)行速度慢,這在建立大型數(shù)據(jù)庫時顯得尤為突出。其次,早期的dBASE不帶編譯器,僅是解釋執(zhí)行,后來雖然增加了編譯器,但編譯與解釋執(zhí)行時存在許多差異。再就是它的設(shè)計標(biāo)準(zhǔn),隨著dBASE增強(qiáng)版本的出現(xiàn),由于各版本之間不相兼容,其標(biāo)準(zhǔn)變得越來越模糊,Ashton-Tate公司不再定義dBASE標(biāo)準(zhǔn),就連dBASE IV本身也未按標(biāo)準(zhǔn)
68、設(shè)計。后來,人們常用Xbase來表示各種數(shù)據(jù)庫管理系統(tǒng)的程序設(shè)計語言。,6.3 常見數(shù)據(jù)庫管理系統(tǒng),6.3.1 小型數(shù)據(jù)庫2) Xbase系列 1986年,與dBASE III Plus兼容的FoxBASE+推出后不久,F(xiàn)oxPro/LAN也投入市場,一時間引起轟動。 1987年之后相繼推出了FoxBASE+ 2.0和2.10,這兩個產(chǎn)品不僅速度上超越其前期產(chǎn)品,而且還擴(kuò)充了對開發(fā)者極其有用的語言,并提供了良好的界面和
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫原理與技術(shù)-習(xí)題答案
- 《數(shù)據(jù)庫原理》
- 數(shù)據(jù)庫原理、技術(shù)與應(yīng)用習(xí)題匯編
- 數(shù)據(jù)庫原理
- 數(shù)據(jù)庫原理與應(yīng)用a實驗管理-數(shù)據(jù)庫安全管理
- 數(shù)據(jù)庫技術(shù)基礎(chǔ)教程
- 數(shù)據(jù)庫原理與應(yīng)用a實驗管理-數(shù)據(jù)庫安全管理
- 數(shù)據(jù)庫原理與技術(shù)課程習(xí)題答案
- 數(shù)據(jù)庫原理與設(shè)計方法
- 數(shù)據(jù)庫原理與應(yīng)用試題-
- 數(shù)據(jù)庫原理與設(shè)計題庫
- 數(shù)據(jù)庫學(xué)習(xí)入門數(shù)據(jù)庫基礎(chǔ)入門
- 《數(shù)據(jù)庫原理》教案
- 數(shù)據(jù)庫基礎(chǔ)與應(yīng)用試題
- 數(shù)據(jù)庫基礎(chǔ)與應(yīng)用-試題
- 數(shù)據(jù)庫原理與應(yīng)用教程答案
- 數(shù)據(jù)庫原理與應(yīng)用測驗答案
- 數(shù)據(jù)庫原理與應(yīng)用課程簡介
- 數(shù)據(jù)庫原理與技術(shù)復(fù)習(xí)題及答案
- 數(shù)據(jù)庫原理與應(yīng)用(1)-(1)
評論
0/150
提交評論