版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第1章 數(shù)據(jù)庫基礎(chǔ)知識數(shù)據(jù)庫是20世紀(jì)60年代后期發(fā)展起來的一項重要技術(shù),70年代以來數(shù)據(jù)庫技術(shù)得到迅猛發(fā)展,已經(jīng)成為計算機(jī)科學(xué)與技術(shù)的一個重要分支。經(jīng)過30多年的發(fā)展,現(xiàn)已經(jīng)形成相當(dāng)規(guī)模的理論體系和應(yīng)用技術(shù),不僅應(yīng)用于事務(wù)處理,并且進(jìn)一步應(yīng)用到人工智能、情報檢索、計算機(jī)輔助設(shè)計等各個領(lǐng)域。本章主要介紹數(shù)據(jù)庫的基本概念和基本理論,并結(jié)合Microsoft Access講解與關(guān)系數(shù)據(jù)庫相關(guān)的基本概念。1.1 數(shù)據(jù)庫系統(tǒng)概述數(shù)據(jù)庫能把大量的數(shù)據(jù)按照一定的結(jié)構(gòu)存儲起來,開辟了數(shù)據(jù)處理的新紀(jì)元??梢灾庇^地理解數(shù)據(jù)庫為一個存放數(shù)據(jù)的倉庫,只不過這個倉庫是在計算機(jī)的大容量存儲器上。數(shù)據(jù)處理的基本問題是數(shù)據(jù)
2、的組織、存儲、檢索、維護(hù)和加工利用,這些正是數(shù)據(jù)庫系統(tǒng)所要解決的問題。 計算機(jī)數(shù)據(jù)管理的發(fā)展一、數(shù)據(jù)與數(shù)據(jù)處理數(shù)據(jù)是指存儲在某一種介質(zhì)上能夠被識別的物理符號。數(shù)據(jù)的種類很多,不僅包括數(shù)字、字母、文字和其他特殊字符組成的文本形式,而且還包括圖形、圖像、動畫、影像、聲音等多媒體形式,但是使用最多、最基本的仍然是文字?jǐn)?shù)據(jù)。信息是經(jīng)過加工處理的有用數(shù)據(jù)。數(shù)據(jù)只有經(jīng)過提煉和抽象變成有用的數(shù)據(jù)后才能成為信息。信息仍以數(shù)據(jù)的形式表示。數(shù)據(jù)處理是指將數(shù)據(jù)加工并轉(zhuǎn)換成信息的過程。數(shù)據(jù)處理的核心是數(shù)據(jù)管理。計算機(jī)對數(shù)據(jù)的管理是指如何對數(shù)據(jù)分類、組織、編碼、存儲、檢索和維護(hù)。二、數(shù)據(jù)管理技術(shù)的發(fā)展 計算機(jī)在數(shù)據(jù)管理
3、方面經(jīng)歷了由低級到高級的發(fā)展過程。計算機(jī)數(shù)據(jù)管理隨著計算機(jī)軟硬件技術(shù)的發(fā)展,數(shù)據(jù)管理技術(shù)的發(fā)展大致經(jīng)歷了人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)、分布式數(shù)據(jù)庫系統(tǒng)和面向?qū)ο髷?shù)據(jù)庫系統(tǒng)5個階段。 1. 人工管理20世紀(jì)50年代以前,計算機(jī)主要用于科學(xué)計算。當(dāng)時的硬件狀況是,外存儲器只有紙帶、卡片、磁帶,沒有直接存取設(shè)備。軟件狀況是,沒有操作系統(tǒng)以及管理數(shù)據(jù)的軟件。人工管理階段具有的特點是:數(shù)據(jù)與程序不具有獨立性,一組數(shù)據(jù)對應(yīng)一組程序。數(shù)據(jù)不能長期保存,程序運(yùn)行結(jié)束后就退出計算機(jī)系統(tǒng),一個程序中的數(shù)據(jù)無法被其他程序使用,因此程序與程序之間存在大量的重復(fù)數(shù)據(jù),稱為數(shù)據(jù)冗余。2. 文件系統(tǒng)20世紀(jì)50年代后期到
4、60年代中期,計算機(jī)的應(yīng)用范圍逐漸擴(kuò)大,大量地應(yīng)用于管理中。這時,在硬件上出現(xiàn)了磁鼓、磁盤等直接存取數(shù)據(jù)的存儲設(shè)備;在軟件方面,在操作系統(tǒng)中已經(jīng)有了專門的數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng);處理方式上不僅有了文件批處理,而且能夠聯(lián)機(jī)實時處理。文件系統(tǒng)階段具有的特點是:程序和數(shù)據(jù)有了一定的獨立性,程序和數(shù)據(jù)分開存儲,有了程序文件和數(shù)據(jù)文件的區(qū)別。數(shù)據(jù)文件可以長期保存在外存儲器上被多次存取。但數(shù)據(jù)共享性差,數(shù)據(jù)冗余大。文件系統(tǒng)存在的問題阻礙了數(shù)據(jù)處理技術(shù)的發(fā)展,不能滿足日益增長的信息需求,這正是數(shù)據(jù)庫技術(shù)產(chǎn)生的原動力,也是數(shù)據(jù)庫系統(tǒng)產(chǎn)生的背景。3. 數(shù)據(jù)庫系統(tǒng)20世紀(jì)60年代后期,計算機(jī)性能得到提高,
5、更重要的是出現(xiàn)了大容量磁盤,存儲容量大大增加且價格下降。在處理方式上,聯(lián)機(jī)實時處理要求更多,并開始提出和考慮分布處理。在這種背景下,以文件系統(tǒng)作為數(shù)據(jù)管理手段已經(jīng)不能滿足應(yīng)用的需求,于是為解決多用戶、多應(yīng)用共享數(shù)據(jù)的需求,使數(shù)據(jù)為盡可能多的應(yīng)用提供服務(wù),出現(xiàn)了數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫系統(tǒng)階段基本實現(xiàn)了數(shù)據(jù)共享,減少了數(shù)據(jù)冗余,數(shù)據(jù)庫采用特定的數(shù)據(jù)模型,數(shù)據(jù)庫具有較高的數(shù)據(jù)獨立性,數(shù)據(jù)庫系統(tǒng)有統(tǒng)一的數(shù)據(jù)控制和數(shù)據(jù)管理。4. 分布式數(shù)據(jù)庫系統(tǒng)階段分布式數(shù)據(jù)庫系統(tǒng)是在集中式數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)上發(fā)展起來的,是計算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)結(jié)合的產(chǎn)物。分布式數(shù)據(jù)庫系統(tǒng)適合于單位分散的部門,允許各個部門將其常用的數(shù)據(jù)存
6、儲在本地,實施就地存放本地使用,從而提高響應(yīng)速度,降低通信費(fèi)用。分布式數(shù)據(jù)庫系統(tǒng)與集中式數(shù)據(jù)庫系統(tǒng)相比具有可擴(kuò)展性,通過增加適當(dāng)?shù)臄?shù)據(jù)冗余,提高系統(tǒng)的可靠性。在集中式數(shù)據(jù)庫中,盡量減少冗余度是系統(tǒng)目標(biāo)之一。目前使用較多的是基于客戶機(jī)/服務(wù)器(Client/Server,C/S)系統(tǒng)結(jié)構(gòu),C/S 結(jié)構(gòu)將應(yīng)用程序根據(jù)應(yīng)用情況分布到客戶的計算機(jī)和服務(wù)器上。Access為創(chuàng)建功能強(qiáng)大的客戶機(jī)/服務(wù)器應(yīng)用程序提供了專用工具??蛻魴C(jī)/服務(wù)器應(yīng)用程序具有本地(客戶)用戶界面,但訪問的是遠(yuǎn)程服務(wù)器上的數(shù)據(jù)。5. 面向?qū)ο髷?shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫技術(shù)與面向?qū)ο蟪绦蛟O(shè)計技術(shù)結(jié)合產(chǎn)生了面向?qū)ο蟮臄?shù)據(jù)庫系統(tǒng)。面向?qū)ο蟮臄?shù)據(jù)庫
7、吸收了面向?qū)ο蟪绦蛟O(shè)計方法學(xué)的核心概念和基本思想,采用面向?qū)ο蟮挠^點來描述現(xiàn)實世界實體(對象)的邏輯組織、對象之間的限制和聯(lián)系等。它克服了傳統(tǒng)數(shù)據(jù)庫的局限性,能夠自然地存儲復(fù)雜的數(shù)據(jù)對象以及這些對象之間的復(fù)雜關(guān)系,從而大幅度地提高了數(shù)據(jù)庫管理效率,降低了用戶使用的復(fù)雜性。從本質(zhì)上說,Access仍然是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫系統(tǒng),但它在用戶界面、程序設(shè)計等方面進(jìn)行了很好地擴(kuò)充,提供了面向?qū)ο蟪绦蛟O(shè)計的強(qiáng)大功能。 數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DataBase System,DBS)是指帶有數(shù)據(jù)庫并利用數(shù)據(jù)庫技術(shù)進(jìn)行數(shù)據(jù)管理的計算機(jī)系統(tǒng)。一、 有關(guān)數(shù)據(jù)庫的概念1. 數(shù)據(jù)庫(DataBase,DB)數(shù)據(jù)庫是數(shù)據(jù)
8、庫系統(tǒng)的數(shù)據(jù)源,是長期存儲在計算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)的集合。實際上數(shù)據(jù)庫就是為了實現(xiàn)一定的目的按某種規(guī)則組織起來的數(shù)據(jù)的集合,在我們的生活中這樣的數(shù)據(jù)庫可是隨處可見。2. 數(shù)據(jù)庫應(yīng)用系統(tǒng)(DataBase Application System,DBAS)數(shù)據(jù)庫應(yīng)用系統(tǒng)是指系統(tǒng)開發(fā)人員利用數(shù)據(jù)庫系統(tǒng)資源開發(fā)的面向某一類實際應(yīng)用的軟件系統(tǒng)。例如,學(xué)校信息管理系統(tǒng),財務(wù)管理系統(tǒng)、人事管理系統(tǒng)、圖書管理系統(tǒng)等,都是以數(shù)據(jù)庫為基礎(chǔ)和核心的計算機(jī)應(yīng)用系統(tǒng)。3. 數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System,DBMS)數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的一個重要組成部分。它是位于用
9、戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。數(shù)據(jù)庫管理系統(tǒng)是為數(shù)據(jù)庫的建立、使用和維護(hù)而配置的軟件。數(shù)據(jù)庫在建立、運(yùn)用和維護(hù)時由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理、統(tǒng)一控制。如常見的Access、SQL Server、Oracle等,都是常用的數(shù)據(jù)庫管理系統(tǒng)。4. 數(shù)據(jù)庫系統(tǒng)(DataBase System,DBS)數(shù)據(jù)庫系統(tǒng)是指在計算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),是實現(xiàn)有組織地、動態(tài)地存儲大量相關(guān)數(shù)據(jù),提供數(shù)據(jù)處理和信息資源共享的便利手段。一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其應(yīng)用開發(fā)工具)、數(shù)據(jù)庫應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員、應(yīng)用程序員和用戶組成,如圖1.1所示。圖1.1 數(shù)據(jù)庫系統(tǒng)二、數(shù)據(jù)庫系統(tǒng)的特點數(shù)據(jù)庫系統(tǒng)的層次結(jié)
10、構(gòu)如圖1.2所示,其主要特點如下:1. 數(shù)據(jù)的結(jié)構(gòu)化數(shù)據(jù)結(jié)構(gòu)化是數(shù)據(jù)庫與文件系統(tǒng)的根本區(qū)別。在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)是面向整體的,不但數(shù)據(jù)內(nèi)部組織有一定的結(jié)構(gòu),而且數(shù)據(jù)之間的聯(lián)系也按一定的結(jié)構(gòu)描述出來,所以數(shù)據(jù)整體結(jié)構(gòu)化。2. 數(shù)據(jù)的高共享性與低冗余性數(shù)據(jù)庫系統(tǒng)從整體角度看待和描述數(shù)據(jù),數(shù)據(jù)不再面向某個應(yīng)用而是面向整個系統(tǒng)。同一組基本記錄,就可以被多個應(yīng)用程序共享使用。這樣可以大大減少數(shù)據(jù)冗余,節(jié)約存儲空間,又能夠避免數(shù)據(jù)之間的不相容性和不一致性。3. 數(shù)據(jù)的獨立性數(shù)據(jù)獨立是指數(shù)據(jù)與應(yīng)用程序之間彼此獨立,不存在相互依賴的關(guān)系。數(shù)據(jù)庫系統(tǒng)提供了兩方面的映像功能,使得程序與數(shù)據(jù)庫中的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)
11、有高度的獨立性。4. 數(shù)據(jù)的統(tǒng)一管理與控制數(shù)據(jù)的統(tǒng)一管理與控制包括數(shù)據(jù)的完整性檢查、安全性檢查和并發(fā)控制3個方面。數(shù)據(jù)庫管理系統(tǒng)能統(tǒng)一控制數(shù)據(jù)庫的建立、運(yùn)用和維護(hù),使用戶能方便地定義數(shù)據(jù)和操作數(shù)據(jù),并能夠保證數(shù)據(jù)的安全性、完整性、多用戶對數(shù)據(jù)的并發(fā)使用及發(fā)生故障后的系統(tǒng)恢復(fù)。 數(shù)據(jù)模型數(shù)據(jù)模型是工具,是用來抽象地表示和處理現(xiàn)實世界中的數(shù)據(jù)和信息的工具。我們知道,計算機(jī)只能處理數(shù)據(jù)。數(shù)據(jù)模型就是從現(xiàn)實世界到數(shù)據(jù)世界的一個中間層次。現(xiàn)實世界的事物反映到人的大腦中來,人們把這些事物抽象為一種既不依賴于具體的計算機(jī)系統(tǒng)又不為某一DBMS支持的概念模型,然后再把概念模型轉(zhuǎn)換為計算機(jī)上某一DBMS支持的數(shù)
12、據(jù)模型。圖1.3所示是現(xiàn)實世界客觀對象的抽象過程。圖1.2 數(shù)據(jù)庫系統(tǒng)層次示意圖圖1.3 現(xiàn)實世界客觀對象的抽象過程一、實體描述在數(shù)據(jù)模型中,需要用到以下幾個術(shù)語。1. 實體(Entity)客觀存在并相互區(qū)別的事物稱為實體。 實體可以是實際的事物,也可以是抽象的事物。例如,學(xué)生、課程等都是屬于實際的事物;學(xué)生選課、教師授課等都是抽象的事物。2. 實體的屬性(Attribute)描述實體的特性稱為屬性。例如,學(xué)生實體用學(xué)號、姓名、性別、年齡、政治面貌、照片等屬性來描述。3. 實體集和實體型(Entity Set and Entity Type)屬性值的集合表示一個實體,而屬性的集合表示一種實體的
13、類型,稱為實體型。同類型的實體的集合,稱為實體集。例如,學(xué)生(學(xué)號,姓名,性別,年齡,政治面貌,照片)就是一個實體型。對于學(xué)生來說,全體學(xué)生就是一個實體集。在Access中,用“表”來存放同一類實體,即為實體集。例如,學(xué)生表、教師表、成績表等。Access的一個“表”包含若干個字段,“表”中的字段就是實體的屬性。字段值的集合組成表中的一條記錄,代表一個具體的實體,即每一條記錄表示一個實體。二、實體間的聯(lián)系及分類實體之間的對應(yīng)關(guān)系稱為聯(lián)系,它反映現(xiàn)實世界事物之間的相互關(guān)聯(lián)。兩個實體間的聯(lián)系可以歸結(jié)為三種類型。1. 一對一聯(lián)系(one-to-one relationship)如果對于實體集A中的每
14、一個實體,實體集B中有且只有一個實體與之聯(lián)系,反之亦然,則稱實體集A與實體集B具有一對一聯(lián)系。例如,一所學(xué)校只有一個校長,一個校長只有在一所學(xué)校任職,校長與學(xué)校之間的聯(lián)系就是一對一的聯(lián)系。在Access中,一對一聯(lián)系表現(xiàn)為主表中的每一條記錄只與相關(guān)表中的一條記錄相關(guān)聯(lián)。2. 一對多聯(lián)系(one-to-many relationship)如果對于實體集A中的每一個實體,實體集B中有多個實體與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯(lián)系,則稱實體集A與實體集B有一對多的聯(lián)系。例如,一個學(xué)院中可以有多名學(xué)生,而一個學(xué)生只能在一個學(xué)院中注冊學(xué)習(xí),學(xué)院和學(xué)生之間存在一對多
15、聯(lián)系。在Access中,一對多聯(lián)系表現(xiàn)為主表中的每條記錄與相關(guān)表中的多條記錄相關(guān)聯(lián)。即表A中的一條記錄在表B中可以有多條記錄與之對應(yīng),但表B中的一條記錄最多只能與表A中的一條記錄對應(yīng)。一對多聯(lián)系是最普遍的聯(lián)系,也可以將一對一聯(lián)系看作是一對多聯(lián)系的特殊情況。3. 多對多聯(lián)系(many-to-many relationship)如果對于實體集A中的每一個實體,實體集B中有多個實體與之聯(lián)系,而對于實體集B中的每一個實體,實體集A中也有多個實體與之聯(lián)系,則稱實體集A與實體集B之間有多對多的聯(lián)系。例如,一個學(xué)生可以選修多門課程,一門課程可以被多名學(xué)生選修。因此,學(xué)生和課程間存在多對多的聯(lián)系。在Acces
16、s中,多對多的聯(lián)系表現(xiàn)為一個表中的多條記錄在相關(guān)表中同樣可以有多條記錄與之對應(yīng)。即表A中的一條記錄在表B中可以對應(yīng)多條記錄,而表B中的一條記錄在表A中也可對應(yīng)多條記錄。多對多聯(lián)系是理論上及實際需求時會有這種情況,但在數(shù)據(jù)庫軟件中則沒有,因此,會將一個多對多聯(lián)系分解為多個一對多聯(lián)系。三、三種數(shù)據(jù)模型數(shù)據(jù)模型是面向數(shù)據(jù)庫全局邏輯結(jié)構(gòu)的描述,主要任務(wù)一是指出數(shù)據(jù)的構(gòu)造,包括如何表示數(shù)據(jù)、要研究的是什么實體、包含哪些屬性;二是確定數(shù)據(jù)間的聯(lián)系,主要是實體間的聯(lián)系。在數(shù)據(jù)庫系統(tǒng)中,常用的數(shù)據(jù)模型有層次數(shù)據(jù)模型、網(wǎng)狀數(shù)據(jù)模型和關(guān)系數(shù)據(jù)模型3種。1. 層次數(shù)據(jù)模型層次數(shù)據(jù)模型將現(xiàn)實世界的實體彼此之間抽象成一
17、種自上而下的層次關(guān)系,是使用樹型結(jié)構(gòu)表示實體與實體間聯(lián)系的模型。用圖來表示,層次數(shù)據(jù)模式是一棵倒立的樹。圖1.4給出了一個學(xué)校的層次數(shù)據(jù)模型。圖1.4 層次數(shù)據(jù)模型示意圖2. 網(wǎng)狀數(shù)據(jù)模型使用網(wǎng)狀結(jié)構(gòu)表示實體及實體間聯(lián)系的模型稱為網(wǎng)狀數(shù)據(jù)模型,如圖1.5所示。圖1.5 網(wǎng)狀數(shù)據(jù)模型示意圖3. 關(guān)系數(shù)據(jù)模型用二維表結(jié)構(gòu)來表示實體以及實體之間聯(lián)系的模型稱為關(guān)系數(shù)據(jù)模型。關(guān)系數(shù)據(jù)模型是以關(guān)系數(shù)學(xué)理論為基礎(chǔ)的,在關(guān)系數(shù)據(jù)模型中,操作的對象和結(jié)果都是二維表,這種二維表就是關(guān)系。關(guān)系數(shù)據(jù)模型與層次數(shù)據(jù)模型、網(wǎng)狀數(shù)據(jù)模型的本質(zhì)區(qū)別在于數(shù)據(jù)描述的一致性,模型概念單一。在關(guān)系型數(shù)據(jù)庫中,每一個關(guān)系都是一個二維表
18、,無論實體本身還是實體間的聯(lián)系均用稱為“關(guān)系”的二維表來表示,使得描述實體的數(shù)據(jù)本身能夠自然地反映它們之間的聯(lián)系。而傳統(tǒng)的層次和網(wǎng)狀模型數(shù)據(jù)庫是使用鏈接指針來存儲和體現(xiàn)聯(lián)系的。1.2 關(guān)系數(shù)據(jù)庫用關(guān)系數(shù)據(jù)模型建立的數(shù)據(jù)庫就是關(guān)系數(shù)據(jù)庫(Relational Database,RDB)。 關(guān)系數(shù)據(jù)模型關(guān)系數(shù)據(jù)模型的用戶界面非常簡單,一個關(guān)系的邏輯結(jié)構(gòu)就是一張二維表。這種用二維表的形式表示實體和實體間聯(lián)系的數(shù)據(jù)模型稱為關(guān)系數(shù)據(jù)模型。一、關(guān)系術(shù)語在Access中,一個“表”就是一個關(guān)系。圖1.6給出了一張學(xué)生表,圖1.7給出了一張成績表,這是兩個關(guān)系。這兩個表中都有唯一標(biāo)識一名學(xué)生的屬性學(xué)號,根據(jù)學(xué)
19、號通過一定的關(guān)系運(yùn)算可以將兩個關(guān)系聯(lián)系起來。 圖1.6 學(xué)生表 圖1.7 成績表1. 關(guān)系(Relation)一個關(guān)系就是一張二維表,每個關(guān)系有一個關(guān)系名。在Access中,一個關(guān)系存儲為一個表,具有一個表名。對關(guān)系的描述稱為關(guān)系模式,一個關(guān)系模式對應(yīng)一個關(guān)系的結(jié)構(gòu)。其格式為: 關(guān)系名(屬性名1,屬性名2,屬性名n)在Access中,表示為表結(jié)構(gòu): 表名(字段名1,字段名2,字段名n)2. 元組(Tuple)二維表(關(guān)系)中的每一行,對應(yīng)于表中的記錄。例如,學(xué)生表和成績表兩個關(guān)系各包括多條記錄(或多個元組)。3. 屬性(Attribute)二維表中的每一列,對應(yīng)于表中的字段。例如,學(xué)生表中的學(xué)
20、號、姓名、專業(yè)等字段名及其相應(yīng)的數(shù)據(jù)類型組成表的結(jié)構(gòu)。4. 域(Domain)屬性的取值范圍稱為域,也稱為值域。例如,性別只能取“男”或“女”。5. 關(guān)鍵字(Primary Key)關(guān)鍵字是屬性或?qū)傩缘募希P(guān)鍵字的值能夠唯一地標(biāo)識一個元組。例如,學(xué)生表中的學(xué)號。在Access中,主關(guān)鍵字和候選關(guān)鍵字就起唯一標(biāo)識一個元組的作用。6. 外部關(guān)鍵字(Foreign Key)如果表中的一個字段不是本表的主關(guān)鍵字,而是另外一個表的主關(guān)鍵字和候選關(guān)鍵字,這個字段(屬性)就稱為外關(guān)鍵字。在Access中,將相互之間存在聯(lián)系的表放在一個數(shù)據(jù)庫中統(tǒng)一管理。例如,在“教學(xué)信息管理”數(shù)據(jù)庫中可以加入教師表、學(xué)生表
21、、課程表和成績表等。 二、關(guān)系的特點 在關(guān)系模型中對關(guān)系有一定的要求,關(guān)系必須具有以下特點:1. 關(guān)系必須規(guī)范化。關(guān)系模型中的每一個關(guān)系模式都必須滿足一定的要求。最基本的要求是每個屬性必須是不可分割的數(shù)據(jù)單元,即表中不能再包含表。2. 屬性名必須唯一,即一個關(guān)系中不能出現(xiàn)相同的屬性名。3. 關(guān)系中不允許有完全相同的元組(即冗余)。4. 在一個關(guān)系中元組和屬性的順序都是無關(guān)緊要的。 關(guān)系運(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)接),有些查詢需要幾個基
22、本運(yùn)算的組合。 一、傳統(tǒng)的集合運(yùn)算進(jìn)行并、差、交集合運(yùn)算的兩個關(guān)系必須具有相同的關(guān)系模式,即元組具有相同結(jié)構(gòu)。1. 并(Union)兩個相同結(jié)構(gòu)關(guān)系的并是由屬于這兩個關(guān)系的元組組成的集合。例如,有兩個結(jié)構(gòu)相同的學(xué)生關(guān)系R1和R2,分別存放兩個班的學(xué)生,將第二個班的學(xué)生記錄追加到第一個班的學(xué)生記錄后面就是兩個關(guān)系的并集。2. 差(Difference)設(shè)有兩個相同的結(jié)構(gòu)R和S,R差S的結(jié)構(gòu)是由屬于R但不屬于S的元組組成的集合,即差運(yùn)算的結(jié)果是從R中去掉S中也有的元組。例如,設(shè)有選修計算機(jī)基礎(chǔ)的學(xué)生關(guān)系R,選修C語言程序設(shè)計的學(xué)生關(guān)系S。求選修了計算機(jī)基礎(chǔ),但沒有選修C語言程序設(shè)計的學(xué)生,就應(yīng)當(dāng)進(jìn)
23、行差運(yùn)算。3. 交(Intersection)兩個具有相同結(jié)構(gòu)的關(guān)系R和S,他們的交是由既屬于R又屬于S的元組組成的集合。交運(yùn)算的結(jié)果是R和S中的共同元組。例如,有選修計算機(jī)基礎(chǔ)的學(xué)生關(guān)系R,選修C語言程序設(shè)計的學(xué)生關(guān)系S。求既選修了計算機(jī)基礎(chǔ)又選修了C語言程序設(shè)計的學(xué)生,就應(yīng)當(dāng)進(jìn)行交運(yùn)算。 二、專門的關(guān)系運(yùn)算關(guān)系數(shù)據(jù)庫管理系統(tǒng)能完成選擇、投影和聯(lián)接3種關(guān)系操作。1. 選擇(Select)從關(guān)系中找出滿足給定條件的元組的操作稱為選擇。選擇的條件以邏輯表達(dá)式給出,使得邏輯表達(dá)式的值為真的元組將被選取。例如,要從教師表中找出職稱為“教授”的教師,所進(jìn)行的查詢操作就屬于選擇運(yùn)算。2. 投影(Projection)從關(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)緊要這一特點。例如,要從學(xué)生關(guān)系中查詢學(xué)生的“姓名”和“年級”,所進(jìn)行的
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子廠實習(xí)總結(jié)600字(21篇)
- 工會迎新年聯(lián)歡會活動方案(3篇)
- 科學(xué)教學(xué)個人工作總結(jié)范例
- 暑期社會實踐心得(34篇)
- 年末個人感言2篇
- 創(chuàng)新驅(qū)動共繪未來-我們的成就與展望
- 運(yùn)動與營養(yǎng)教育教學(xué)課件
- 電大離散數(shù)學(xué)集合論部分期末復(fù)習(xí)輔導(dǎo)
- 社會麥當(dāng)勞化讀書心得
- 烹飪營養(yǎng)與食品安全 期中、期末試卷及答案
- 人音版初音 八上 4.1我的祖國 教案
- 人教版七年級數(shù)學(xué)上冊專題03線段的雙中點模型(原卷版+解析)
- 新外研版高中英語必修1單詞正序英漢互譯默寫本
- 工程款遲延支付影響工期的函(聯(lián)系單)
- 新生兒呼吸機(jī)使用及護(hù)理
- 電子元器件來料檢驗規(guī)范
- 滬科版七年級下冊《相交線、平行線與平移》
- ASME材料-設(shè)計許用應(yīng)力
- 家庭醫(yī)生簽約服務(wù)培訓(xùn)
- 設(shè)計部門降本增效措施方案
- 2024年環(huán)磷酰胺原料藥項目調(diào)研分析報告
評論
0/150
提交評論