《數(shù)據(jù)庫原理與應(yīng)用》課件1第2章 關(guān)系數(shù)據(jù)庫系統(tǒng)模型_第1頁
《數(shù)據(jù)庫原理與應(yīng)用》課件1第2章 關(guān)系數(shù)據(jù)庫系統(tǒng)模型_第2頁
《數(shù)據(jù)庫原理與應(yīng)用》課件1第2章 關(guān)系數(shù)據(jù)庫系統(tǒng)模型_第3頁
《數(shù)據(jù)庫原理與應(yīng)用》課件1第2章 關(guān)系數(shù)據(jù)庫系統(tǒng)模型_第4頁
《數(shù)據(jù)庫原理與應(yīng)用》課件1第2章 關(guān)系數(shù)據(jù)庫系統(tǒng)模型_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

12.1關(guān)系模型關(guān)系數(shù)據(jù)庫系統(tǒng)采用關(guān)系模型作為數(shù)據(jù)的組織方式,關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作和關(guān)系完整性三部分組成。2.1.1關(guān)系數(shù)據(jù)結(jié)構(gòu)1)域(Domain)定義2.1域是一組具有相同數(shù)據(jù)類型的值的集合。例如,整數(shù)、正整數(shù)、實數(shù)、大于等于0且小于等于100的正整數(shù)、{0,1,2,3,4}等都可以是域。2.)笛卡爾積(CartesianProduct)定義2.2設(shè)定一組域D1,D2,…,Dn,在這組域中可以是相同的域。定義D1,D2,…,Dn,的笛卡爾積為D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}其中每一個元素(d1,d2,…,dn)叫做一個n元組(n-tuple)或簡稱元組(Tuple),元素中的每個值di(i=1,2,…,n)叫做一個分量(Component)。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)22.1關(guān)系模型如果Di(i=1,2,…,n)為有限集,其基數(shù)(Cardinalnumber)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)為笛卡爾積可以表示為一個二維表,表中每一行對應(yīng)一個元組,每一列的值來自一個域?!纠?.1】笛卡爾積舉例給出3個域:D1

=學(xué)號集合stno={181011,181012}D2

=姓名集合stname={劉明杰,周小容}D3

=性別集合stsex={男,女}則D1,D2,D3的笛卡爾積為:D1

×

D2×

D3={(181011,劉明杰,男),(181011,劉明杰,女),(181011,周小容,男),(181011,周小容,女),(181012,劉明杰,男),(181012,劉明杰,女),(181012,周小容,男),(181012,周小容,女)}

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)32.1關(guān)系模型其中(181011,劉明杰,男),(181011,劉明杰,女),(181011,周小容,男),(181011,周小容,女)等都是元組,181001,181002,劉明杰,周小容,男,女等都是分量,這個笛卡爾積的基數(shù)是2×2×2=8,即共有8個元組,可列成一張二維表,如表2.1所示。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)表2.1D1,D2,D3的笛卡爾積42.1關(guān)系模型3.)關(guān)系(Relation)定義2.3笛卡爾積D1×D2×…×Dn的子集稱為D1,D2,…,Dn上的關(guān)系,表示為R(D1,D2,…,Dn)這里的R表示關(guān)系的名稱,n是關(guān)系的目或度(Degree)。當(dāng)n=1時,稱該關(guān)系為單元關(guān)系或一元關(guān)系。當(dāng)n=2時,稱該關(guān)系為二元關(guān)系。當(dāng)n=m時,稱該關(guān)系為m元關(guān)系。關(guān)系中的每個元素是關(guān)系中的元組,通常用t表示。在一般情況下,D1,D2,…,Dn的笛卡爾積是沒有實際意義的,只有它的某個子集才有實際意義,舉例如下?!纠?.2】關(guān)系舉例在例2.1的笛卡爾積中,許多元組是沒有意義的,因為一個學(xué)號只標(biāo)識一個學(xué)生的姓名,一個學(xué)生只有一個性別,表2.1的一個子集才有意義,才可以表示學(xué)生關(guān)系,將學(xué)生關(guān)系取名為S,表示為S(stno,stname,stsex),列成二維表如表2.2所示。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)52.1關(guān)系模型(1)關(guān)系的元組、屬性和候選碼關(guān)系是笛卡爾積的有限子集,所以關(guān)系也是一個二維表。●

元組(Tuple)表的每一行,對應(yīng)一個元組?!?/p>

屬性(Attribute)表的每一列,對應(yīng)一個域,由于域可以相同,為了加以區(qū)分,必須對每一列起一個唯一的名字,稱為屬性?!?/p>

候選碼(Candidatekey)若關(guān)系中某一屬性組的值能唯一地標(biāo)識一個元組,則稱該屬性組為候選碼。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)表2.2S關(guān)系62.1關(guān)系模型候選鍵碼中的諸屬性稱為為主屬性(Primeattribute),不包含在任何候選碼中的屬性稱為非主屬性(Non-primeattribute)或非碼屬性((Non-keyattribute)。在最簡單的情況下,候選碼只包含一個屬性,在最極端的情況下,關(guān)系模式的所有屬性組成這個關(guān)系模式的候選碼,稱為全碼(All-key)?!裰鞔a(Primarykey)在一個關(guān)系中有多個候選碼,從中選定一個作為主碼。(2)關(guān)系的類型關(guān)系有3種類型:基本關(guān)系(又稱基本表或基表)、查詢表和視圖表?!窕娟P(guān)系:實際存在的表,是實際存儲數(shù)據(jù)的邏輯表示●查詢表:查詢結(jié)果對應(yīng)的表●視圖表:由基本表或其它視圖標(biāo)導(dǎo)出的表,是虛表,不對應(yīng)實際存儲的數(shù)據(jù)

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)72.1關(guān)系模型(3)關(guān)系的性質(zhì)關(guān)系具有以下的性質(zhì):●列的同質(zhì)性:每一列中的分量是同一類型的數(shù)據(jù),來自同一個域?!窳忻ㄒ恍裕好恳涣芯哂胁煌膶傩悦?,但不同列的值可以來自同一個域?!裨M相異性:關(guān)系中任意兩個元組的候選碼不能相同?!裥行虻臒o關(guān)性:行的次序可以互換?!窳行虻臒o關(guān)性:列的次序可以互換?!穹至吭有裕悍至恐凳窃拥?,即每一個分量都必須是不可分的數(shù)據(jù)項。(4)規(guī)范化關(guān)系模型要求關(guān)系必須是規(guī)范化(normalization)的,規(guī)范化要求關(guān)系必須滿足一定的規(guī)范條件,而在規(guī)范條件中最基本的一條是每一個分量必須是不可分的數(shù)據(jù)項。規(guī)范化的關(guān)系簡稱為范式(NormalForm)。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)82.1關(guān)系模型例如,表2.3所示的關(guān)系就是不規(guī)范的,存在”表中有表”的現(xiàn)象。2.關(guān)系模式在關(guān)系數(shù)據(jù)庫中,關(guān)系模式是型,關(guān)系是值。關(guān)系是元組的集合,關(guān)系模式是對關(guān)系的描述,所以關(guān)系模式必須指出這個元組集合的結(jié)構(gòu),即它由哪些屬性構(gòu)成,這些屬性來自哪些域。定義2.4

關(guān)系模式(RelationSchema)可以形式化地表示為R(U,D,DOM,F)其中:R是關(guān)系名,U是組成該關(guān)系的屬性名集合,D是屬性所來自的域,DOM是屬性向域的映象集合,F(xiàn)是屬性間的數(shù)據(jù)依賴關(guān)系集合。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)表2.3非規(guī)范化關(guān)系92.1關(guān)系模型關(guān)系模式通??梢院営洖镽(U)或R(A1,A2,…,An)其中,R是關(guān)系名,A1,A2,…,An

為屬性名。關(guān)系是關(guān)系模式在某一時刻的狀態(tài)或內(nèi)容。關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動態(tài)的、隨時間不斷變化的,因為關(guān)系操作在不斷地更新著數(shù)據(jù)庫中的數(shù)據(jù)。在實際應(yīng)用中,我們常常把關(guān)系模式和關(guān)系統(tǒng)稱為關(guān)系。3.關(guān)系數(shù)據(jù)庫在一個給定的應(yīng)用領(lǐng)域中,所有實體及實體之間聯(lián)系的關(guān)系的集合構(gòu)成一個關(guān)系數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫的型稱為關(guān)系數(shù)據(jù)庫模式,是對關(guān)系數(shù)據(jù)庫的描述,包括若干域的定義和在這些域上定義的若干關(guān)系模式。關(guān)系數(shù)據(jù)庫的值是這些關(guān)系模式在某一時刻對應(yīng)的關(guān)系的集合。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)102.1關(guān)系模型2.1.2關(guān)系操作1.基本的關(guān)系操作關(guān)系操作包括查詢(Query)操作和插入(Insert)、刪除(Delete)、修改(Update)操作兩大部分。查詢操作是關(guān)系操作最重要的部分,可分為選擇(Select)、投影(Project)、連接(Join)、除(Devide)、并(Union)、差(Except)、交(Intersection)、笛卡爾積等。其中的5種基本操作是并、差、笛卡爾積,選擇、投影,其它操作可由基本操作來定義和導(dǎo)出。關(guān)系操作的特點是集合操作方式,即操作的對象與結(jié)果都是集合。這種操作方式亦稱為一次一集合(set-at-a-time)方式,相應(yīng)地,非關(guān)系模型的數(shù)據(jù)操作方式則為一次一記錄(record-at-a-time)方式。2.關(guān)系操作語言關(guān)系操作語言是數(shù)據(jù)庫管理系統(tǒng)提供的用戶接口,是用戶用來操作數(shù)據(jù)庫的工具,關(guān)系操作語言靈活方便,表達能力強大,可分為關(guān)系代數(shù)語言、關(guān)系演算語言和結(jié)構(gòu)化查詢語言三類。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)112.1關(guān)系模型(1)關(guān)系代數(shù)語言用對關(guān)系的運算來表達查詢要求的語言,如ISBL。(2)關(guān)系演算語言用謂詞來表達查詢要求的語言,又分為元組關(guān)系演算語言和域關(guān)系演算語言,前者如ALPHA,后者QBE。(3)結(jié)構(gòu)化查詢語言介于關(guān)系代數(shù)和關(guān)系運算之間,具有關(guān)系代數(shù)和關(guān)系演算雙重特點,如SQL。以上三種語言,在表達能力上是完全等價的。關(guān)系操作語言是一章高度非過程化語言,存取路徑的選擇由數(shù)據(jù)庫管理系統(tǒng)的優(yōu)化機制自動完成。2.1.3關(guān)系的完整性關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件。關(guān)系的值在不斷變化,為了維護數(shù)據(jù)庫中的數(shù)據(jù)與現(xiàn)實世界的一致性,任何關(guān)系在任何時刻都應(yīng)滿足這些約束條件。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)122.1關(guān)系模型關(guān)系模型的三種完整性約束為:實體完整性,參照完整性和用戶定義完整性。任何關(guān)系數(shù)據(jù)庫都應(yīng)支持實體完整性和參照完整性,此外,不同關(guān)系數(shù)據(jù)庫系統(tǒng)根據(jù)實際情況需要一些特殊約束條件形成用戶定義完整性。1.實體完整性(EntityIntegrity)規(guī)則2.1實體完整性規(guī)則若屬性(一個或一組屬性)A是基本關(guān)系R的主屬性,則A不能取空值??罩?nullvalue)指”不知道”或”不存在”的值。例如,在學(xué)生關(guān)系S(stno,stname,stsex)中,學(xué)號stno是這個關(guān)系的主碼,則stno不能取空值。又如在選課關(guān)系——選課(學(xué)號,課程號,分?jǐn)?shù))中,”學(xué)號,課程號”為主碼,則”學(xué)號”和”課程號”兩個屬性都不能取空值。實體完整性規(guī)則說明如下:(1)實體完整性規(guī)則是針對基本關(guān)系而言。一個基本表通常對應(yīng)現(xiàn)實世界的一個實體集。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)132.1關(guān)系模型(2)現(xiàn)實世界中的實體是可區(qū)分的,即它們具有某種唯一性標(biāo)識。(3)相應(yīng)地,關(guān)系模型中以主碼作為唯一性標(biāo)識。(4)主碼中的屬性即主屬性不能取空值。2.參照完整性(ReferentialIntegrity)在現(xiàn)實世界中實體之間存在的聯(lián)系,在關(guān)系模型中都是用關(guān)系來描述,自然存在關(guān)系與關(guān)系間的引用,參照完整性一般指多個實體之間的聯(lián)系,一般用外碼實現(xiàn),舉例如下?!纠?.3】學(xué)生實體與學(xué)院實體可用以下關(guān)系表示,其中的主碼用下劃線標(biāo)識。學(xué)生(學(xué)號,姓名,性別,出生日期,專業(yè),總學(xué)分,學(xué)院號)學(xué)院(學(xué)院號,學(xué)院名,院長)這兩個關(guān)系存在屬性的引用,學(xué)生關(guān)系引用了學(xué)院關(guān)系的主碼”學(xué)院號”,學(xué)生關(guān)系”學(xué)院號”必須是確實存在的學(xué)院的學(xué)院號,即學(xué)院關(guān)系有該學(xué)院的記錄。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)142.1關(guān)系模型【例2.4】學(xué)生、課程、學(xué)生與課程之間的聯(lián)系可用以下3個關(guān)系表示,其中的主碼用下劃線標(biāo)識。

學(xué)生(學(xué)號,姓名,性別,出生日期,專業(yè),總學(xué)分)

課程(課程號,課程名,學(xué)分)

選課(學(xué)號,課程號,分?jǐn)?shù))這3個關(guān)系存在屬性的引用,選課關(guān)系引用了學(xué)生關(guān)系的主碼”學(xué)號”和課程關(guān)系的主碼”課程號”,選課關(guān)系”學(xué)號”和”課程號”的取值需要參照學(xué)生關(guān)系的”學(xué)號”取值和課程關(guān)系的”課程號”取值?!纠?.5】學(xué)生關(guān)系的內(nèi)部屬性之間存在引用關(guān)系,其中的主碼用下劃線標(biāo)識。學(xué)生(學(xué)號,姓名,性別,出生日期,專業(yè),總學(xué)分,班長學(xué)號)在該關(guān)系中,”學(xué)號”屬性是主碼,”班長學(xué)號”屬性是所在班級班長的學(xué)號,它引用了本關(guān)系”學(xué)號”屬性,即”班長學(xué)號”必須是確實存在的學(xué)生學(xué)號。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)152.1關(guān)系模型定義2.5設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的碼,Ks是基本關(guān)系S的主碼。如果F與Ks相對應(yīng),則稱F是R的外碼(ForeignKey)。并稱基本關(guān)系R為參照關(guān)系(ReferencingRelation),基本關(guān)系S為被參照關(guān)系(ReferencedRelation)或目標(biāo)關(guān)系(TargetRelation)。關(guān)系R和S不一定是不同的關(guān)系。在例2.3中,學(xué)生關(guān)系的”學(xué)院號”與學(xué)院關(guān)系的主碼”學(xué)院號”相對應(yīng),所以,”學(xué)院號”屬性是學(xué)生關(guān)系的外碼,學(xué)生關(guān)系是參照關(guān)系,學(xué)院關(guān)系是被參照關(guān)系。在例2.4中,選課關(guān)系”學(xué)號”和學(xué)生關(guān)系的主碼”學(xué)號”相對應(yīng),選課關(guān)系”課程號”和課程關(guān)系的主碼”課程號”相對應(yīng),所以,”學(xué)號”屬性和”課程號”屬性是選課關(guān)系的外碼,選課關(guān)系是參照關(guān)系,學(xué)生關(guān)系和課程關(guān)系都是被參照關(guān)系。在例2.5中,”班長學(xué)號”屬性與本身的主碼”學(xué)號”屬性相對應(yīng),所以,”班長學(xué)號”屬性是學(xué)生關(guān)系的外碼,學(xué)生關(guān)系既是參照關(guān)系,也是被參照關(guān)系。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)162.1關(guān)系模型外碼不一定要與相應(yīng)的主碼同名,在例2.5中,學(xué)生關(guān)系的主碼名是”學(xué)號”,外碼名是”班長學(xué)號”。但在實際應(yīng)用中,為了便于識別,當(dāng)外碼與相應(yīng)的主碼屬于不同的關(guān)系時,往往取相同的名字。參照完整性規(guī)則就是定義外碼與主碼之間的引用規(guī)則。規(guī)則2.2參照完整性規(guī)則若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個元組在F上的值必須為●或者取空值(F的每個屬性值均為空值);●或者等于S中某個元組的主碼值。在例2.3中,學(xué)生關(guān)系每個元組的”學(xué)院號”屬性只能取下面兩類值:(1)空值,表示尚未給該學(xué)生分配學(xué)院;(2)非空值,被參照關(guān)系”學(xué)院號”中一定存在一個元組,它的主碼值等于該參照關(guān)系”學(xué)院號”中的外碼值。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)172.1關(guān)系模型3.用戶定義完整性(User-definedIntegrity)用戶定義的完整性是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,使某一具體應(yīng)用涉及數(shù)據(jù)必須滿足語義要求。用戶定義的完整性數(shù)據(jù)也稱為域完整性或語義完整性,通過這些規(guī)則限制數(shù)據(jù)庫只接受符合完整性約束條件的數(shù)據(jù)值,不接受違反約束條件的數(shù)據(jù),從而保證數(shù)據(jù)庫的中數(shù)據(jù)的有效性和可靠性。按應(yīng)用語義,屬性數(shù)據(jù)有:(1)類型與長度限制。(2)取值范圍限制。例如,學(xué)生關(guān)系中”性別”數(shù)據(jù)只能是男或女,選課關(guān)系中”成績”數(shù)據(jù)為1到100之間,等等。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)182.2關(guān)系代數(shù)關(guān)系代數(shù)是一種抽象的查詢語言,它用對關(guān)系的運算來表達查詢。關(guān)系代數(shù)是施加于關(guān)系上的一組集合代數(shù)運算,是基于關(guān)系代數(shù)的數(shù)據(jù)操作語言,稱為關(guān)系代數(shù)語言,簡稱關(guān)系代數(shù)。任何一種運算都是將一定的運算符作用于某運算對象上,得到預(yù)期的運算結(jié)果,故運算符、運算對象及運算結(jié)果是關(guān)系代數(shù)運算的三要素。關(guān)系代數(shù)運算的運算對象是關(guān)系,運算結(jié)果也是關(guān)系,用到的運算符包括集合運算符、專門的關(guān)系運算符、比較運算符、和邏輯運算符等。關(guān)系代數(shù)中的操作可以分為兩類:(1)傳統(tǒng)的集合運算,如并、交、差、笛卡兒積。這類運算將關(guān)系看成元組的集合,運算時從行的角度進行。(2)專門的關(guān)系運算,如選擇、投影、連接、除。這些運算不僅涉及行而且也涉及到列。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)

192.2關(guān)系代數(shù)關(guān)系代數(shù)使用的運算符:(1)傳統(tǒng)的集合操作:∪(并)、-(差)、∩(交)、×(笛卡兒積)。(2)專門的關(guān)系操作:(選擇)、Π

(投影)、(連接)、÷(除)。(3)比較運算符:>(大于)、≥(大于等于)、<(小于)、≤(小于等于)、=(等于)、≠(不等于)。(4)邏輯運算符:∧(與)、∨(或)、?(非)。2.2.1傳統(tǒng)的集合運算傳統(tǒng)的集合運算有并、差、交和笛卡爾積運算,它們都是二目運算。傳統(tǒng)的集合運算用于關(guān)系運算時,要求參與運算的兩個關(guān)系必須是相容的,即兩個關(guān)系的列數(shù)相同,且對應(yīng)的屬性列都出自同一個域。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)202.2關(guān)系代數(shù)設(shè)關(guān)系R和關(guān)系S具有相同的n目(即兩個關(guān)系都有n個屬性),且相應(yīng)的屬性取自同一個域,t是元組變量,t∈R表示t是R的一個元組。以下定義并、差、交和笛卡爾積運算。1.并(Union)關(guān)系R和關(guān)系S的并記為R∪S,即

R∪S={t|t∈R∨t∈s}其結(jié)果仍為n目關(guān)系,由屬于R或?qū)儆赟的元組組成。2.差(Except)關(guān)系R和關(guān)系S的差記為R–S,即

R–S={t|t∈R∧t?s}其結(jié)果仍為n目關(guān)系,由屬于R且不屬于S的所有元組組成。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)212.2關(guān)系代數(shù)

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)222.2關(guān)系代數(shù)【例2.6】有2個關(guān)系R、S,如圖2.1所示,求以下各傳統(tǒng)的集合運算的結(jié)果。(1)R∪S(2)R–S(3)R∩S(4)R×S解:(1)R∪S由屬于R和屬于S的所有不重復(fù)的元組組成。(2)R–S由屬于R且不屬于S的所有元組組成。(3)R∩S由既屬于R又屬于S的元組組成。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)232.2關(guān)系代數(shù)

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)(4)R×S為R和S的笛卡兒積,共有3×3=9個元組傳統(tǒng)的集合運算結(jié)果如圖2.2所示。242.2關(guān)系代數(shù)

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)252.2關(guān)系代數(shù)

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)262.2關(guān)系代數(shù)解:在關(guān)系R中,X可取值{(a,b),(b,c),(c,a)}。(a,b)的象集為{(m,n),(n,p),(m,p)}(b,c)的象集為{(r,n)}(c,a)的象集為{(s,t),(p,m)}1.選擇(Selection)在關(guān)系R中選出滿足給定條件的諸元組稱為選擇,選擇是從行的角度進行的運算,表示為

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)272.2關(guān)系代數(shù)

σF

(R)={t|t∈R∧F(t)=’真’}其中F是一個邏輯表達式,表示選擇條件,取邏輯值”真”或”假”,t表示R

中的元組,F(xiàn)(t)表示R

中滿足F條件的元組。邏輯表達式F

的基本形式是

X1

θ

Y1其中θ

由比較運算符(>、≥、<、≤、=、≠)和邏輯運算符(∧、∨、?)組成,X1

,Y1等是屬性名、常量或簡單函數(shù),屬性名也可用它的序號來代替。2.投影(Projection)在關(guān)系R中選出若干屬性列組成新的關(guān)系稱為投影,投影是從列的角度進行的運算,表示為

ΠA(R)={t[A]|t∈R}其中A為R的屬性列。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)282.2關(guān)系代數(shù)【例2.8】關(guān)系R如圖2.4所示,求以下選擇和投影運算的結(jié)果。(1)σC=8(R)(2)ΠA,B(R)解:(1)σC=8(R)由R的C屬性值為’8’的元組組成。(2)ΠA,B

(R)由R的A、B屬性列組成。選擇和投影運算結(jié)果如圖2.5所示。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)292.2關(guān)系代數(shù)

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)302.2關(guān)系代數(shù)

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)312.2關(guān)系代數(shù)●等值連接不把重復(fù)的屬性去掉,而自然連接要把重復(fù)屬性去掉。一般連接是從行的角度進行計算,而自然連接要取消重復(fù)列,它同時從行和列的角度進行計算。(3)外連接(Outerjoin)兩個關(guān)系R和S在做自然連接時,關(guān)系R中某些元組可能在S中不存在公共屬性上值相等的元組,造成R中這些元組被舍棄,同樣,S中某些元組也可能被舍棄。如果把舍棄的元組保存在結(jié)果關(guān)系中,而在其它屬性上填空值(Null),這種連接稱為全外連接(FullOuterJoin),符號為RS。如果只把左邊關(guān)系R中舍棄的元組保留,這種連接稱為左外連接(LeftOuterjoin或Leftjoin),符號為RS。如果只把右邊關(guān)系S中舍棄的元組保留,這種連接稱為右外連接(RightOuterjoin或Rightjoin),符號為RS。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)322.2關(guān)系代數(shù)【例2.9】關(guān)系R、S如圖2.6所示,求以下各個連接運算的結(jié)果。(1)RS(2)RS(3)RS(4)RS(5)RS(6)RS

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)C>DR.B=S.B332.2關(guān)系代數(shù)解:(1)RS該連接由R的C屬性值大于S的D屬性值的元組連接組成。(2)RS該等值連接由R的B屬性值等于S的B屬性值的元組連接組成。(3)RS該自然連接由R的B屬性值等于S的B屬性值的元組連接組成,并去掉重復(fù)列。(4)RS該左外連接取出左邊關(guān)系R中舍棄的所有元組,用空值填充右邊關(guān)系S中的屬性,再把產(chǎn)生的元組添加到自然連接結(jié)果中。(5)RS該右外連接取出右邊關(guān)系S中舍棄的所有元組,用空值填充左邊關(guān)系R中的屬性,再把產(chǎn)生的元組添加到自然連接結(jié)果中。(6)RS該全外連接既做左外連接又做右外連接,并把產(chǎn)生的元組添加到自然連接結(jié)果中。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)C>DR.B=S.B342.2關(guān)系代數(shù)各個連接運算的結(jié)果如圖2.7所示。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)352.2關(guān)系代數(shù)4.除(Division)給定關(guān)系R(X,Y)和S(Y,Z),其中X、Y、Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運算得到一個新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上的分量值x的象集Yx包含S在Y上投影的集合。記作R÷S={tr

[X]|tr∈R∧ΠY(S)íYx}其中的Yx為x在R中的象集,x=tr[X]。除運算是同時從行和列的角度進行的運算?!纠?.10】關(guān)系R,S如圖2.8所示,求R÷S。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)362.2關(guān)系代數(shù)

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)372.3關(guān)系演算把數(shù)理邏輯中的謂詞演算應(yīng)用到關(guān)系運算中,就得到了關(guān)系演算,關(guān)系演算可分為元組關(guān)系演算和域關(guān)系演算,前者以元組為變量,后者以域為變量。2.3.1元組關(guān)系演算在抽象的在元組關(guān)系演算中,為了討論方便,先允許關(guān)系是無限的,然后作適當(dāng)修改,保證關(guān)系演算中每一個公式表達的是有限關(guān)系。在元組關(guān)系演算系統(tǒng)中,稱{t|?(t)}為元組演算表達式,其中t是元組變量,是元組關(guān)系演算公式,簡稱公式,它是由原子公式和運算符組成。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)382.3關(guān)系演算原子公式有下列3種形式:(1)R(t)R是關(guān)系名,t是元組變量,R(t)表示t是關(guān)系R的元組,關(guān)系R可表示為{t|R(t)}(2)t[i]θu[j]:t和u都是元組變量,θ是算術(shù)比較運算符,該原子公式表示命題”元組t的第i個分量與元組u的第j個分量之間滿足θ關(guān)系”,例如,t[4]>u[5],表示元組的t

第4個分量大于元組u的第5個分量。(3)t[i]θc或cθt[i]這里c是一個常量,該原子公式表示命題”元組t

的第i

個分量與常量a

之間滿足θ關(guān)系”,例如,t[2]=6,表示元組的t第2個分量等于6。在公式中各種運算符的優(yōu)先級從高到低依次為:算術(shù)運算符、量詞($、")、邏輯運算符(?

、∧、∨)。其中,$為存在量詞符號,"為全稱量詞符號

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)392.3關(guān)系演算若元組演算公式中的一個元組變量前有存在量詞($)和全稱量詞("),則稱該變量為約束元組變量,否則稱自由元組變量。關(guān)系代數(shù)的5種基本運算可以用元組演算表達式表示如下。(1)并R∪S={t|R(t)∨S(t)}。(2)差R–S={t|R(t)∧?S(t)}。(3)笛卡爾積R×S={t(r+s)

|($u(r))($v(s))(R(u)

∧S(v)∧t[1]=u[1]

∧…∧t[r]=u[r]

∧t[r+1]=v[1]

∧…∧t[r+s]=v[s])}其中

t(r+s)

表示t有r+s個屬性。(4)投影

Пi1,…,ik(R)={t(k)|($u)(R(u)∧t[1]=u[i1]∧…∧t[k]=u[ik])。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)402.3關(guān)系演算

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)412.3關(guān)系演算(1)R(x1,x2,…,xk)該公式表示由分量x1,x2,…,xk組成的元組屬性關(guān)系R,其中,R是k元關(guān)系,每個xi

是常量或域變量。(2)xiθyj該公式表示xi,yj滿足比較關(guān)系θ,其中xi,yj

是域變量,θ為算術(shù)比較運算符。(3)xiθa或aθyj該公式表示xi

與常量a或常量a與yj滿足比較關(guān)系θ,其中xi,yj是域變量,a為常量,θ為算術(shù)比較運算符。在域關(guān)系演算的公式中,可以使用∧,∨,?等邏輯運算符,還可用x和x形成新的公式,變量xi是域變量。域關(guān)系演算表達式是形為{t1,…,tk|ψ(t1,…,tk)}的表達式,其中ψ(t1,…,tk)是關(guān)于自由域變量t1,…,tk

的公式。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)422.4SQL簡介SQL(StructuredQueryLanguage)語言,即結(jié)構(gòu)化查詢語言,是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言,是一種高級的非過程化編程語言,SQL語言是通用的、功能極強的關(guān)系數(shù)據(jù)庫語言,包括數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)查詢、數(shù)據(jù)控制等功能。2.4.1SQL語言分類通常將SQL語言分為以下4類。(1)數(shù)據(jù)定義語言(DataDefinitionLanguage,DDL)用于定義數(shù)據(jù)庫對象,對數(shù)據(jù)庫、數(shù)據(jù)庫中的表、視圖、索引等數(shù)據(jù)庫對象進行建立和刪除,DDL包括CREATE、ALTER、DROP等語句。(2)數(shù)據(jù)操縱語言(DataManipulationLanguage,DML)用于對數(shù)據(jù)庫中的數(shù)據(jù)進行插入、修改、刪除等操作,DML包括INSERT、UPDATE、DELETE等語句。

數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)432.4SQL簡介(3)數(shù)據(jù)查詢語言(DataQueryLanguage,DQL)用于對數(shù)據(jù)庫中的數(shù)據(jù)進行查詢操作,例如用SELECT語句進行查詢操作。(4)數(shù)據(jù)控制語言(DataControlLanguage,DCL)用于控制用戶對數(shù)據(jù)庫的操作權(quán)限,DC

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論