關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義_第1頁(yè)
關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義_第2頁(yè)
關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義_第3頁(yè)
關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義_第4頁(yè)
關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義_第5頁(yè)
已閱讀5頁(yè),還剩62頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1Chapter2.RelationalDB2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義2.2關(guān)系操作2.3關(guān)系的完整性2.4關(guān)系代數(shù)2.5關(guān)系演算關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第1頁(yè)。2HistoryofRelationalDatabaseCODASYL于1962年發(fā)表的“信息代數(shù)”一文E.F.Codd從1970年起發(fā)表了一系列的論文20世紀(jì)70年代末的實(shí)驗(yàn)系統(tǒng)SystemR和Ingres從20世紀(jì)80年代逐步走向成熟,Oracle,Sybase…----Relations//DataStructure

關(guān)系數(shù)據(jù)結(jié)構(gòu)非常簡(jiǎn)單,在關(guān)系數(shù)據(jù)模型中,現(xiàn)實(shí)世界中的實(shí)體及實(shí)體與實(shí)體之間的聯(lián)系均用關(guān)系來(lái)表示。從邏輯或用戶的觀點(diǎn)來(lái)看,關(guān)系就是二維表。Chapter2.RelationalDatabase關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第2頁(yè)。3----OperationsonRDB//DataManipulation傳統(tǒng)的集合運(yùn)算并(Union)、交(Intersection)、差(Difference)廣義笛卡爾積(ExtendedCartesianProduct)專門(mén)的關(guān)系運(yùn)算選擇(Select)、投影(Project)、連接(Join)除(Divide)有關(guān)的數(shù)據(jù)操作插入(Insert)刪除(Delete)修改(Update)RDB(cont.)關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第3頁(yè)。4Note:關(guān)系是以集合的方式操作的,即操作的對(duì)象是元組的集合,操作的結(jié)果也是元組的集合。這和非關(guān)系模型的操作結(jié)果是一條記錄有著重要區(qū)別。關(guān)系的操作能力可以用代數(shù)方式和邏輯方式來(lái)表示:代數(shù)方式是通過(guò)關(guān)系代數(shù)對(duì)關(guān)系的運(yùn)算來(lái)表達(dá)查詢要求的方式。典型代表是關(guān)系代數(shù)語(yǔ)言。邏輯方式是通過(guò)關(guān)系演算、用謂詞表達(dá)對(duì)關(guān)系的查詢要求的方式。典型代表是元組關(guān)系演算語(yǔ)言和域關(guān)系演算語(yǔ)言。//DataLog語(yǔ)言:人工智能語(yǔ)言Prolog在數(shù)據(jù)庫(kù)中的應(yīng)用。RDB(cont.)關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第4頁(yè)。5關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言——SQL(StructuredQueryLanguage),它是一種介于關(guān)系代數(shù)和關(guān)系演算的語(yǔ)言,提供DDL(數(shù)據(jù)定義語(yǔ)言)、DML(數(shù)據(jù)操縱語(yǔ)言,含數(shù)據(jù)查詢功能)和DCL(數(shù)據(jù)控制語(yǔ)言)等功能。綜上所述,可以把關(guān)系數(shù)據(jù)語(yǔ)言分為三類(lèi):關(guān)系代數(shù)語(yǔ)言(ISBL:InformationSystemBaseLanguage,由IBM研制)、關(guān)系演算語(yǔ)言(ALPHA/QUEL/QBE)以及具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的SQL語(yǔ)言。特點(diǎn):具有完備的表達(dá)能力,是非過(guò)程化的集合操作語(yǔ)言,功能強(qiáng),可以直接交互使用也可以嵌入高級(jí)程序設(shè)計(jì)語(yǔ)言中使用。RDB(cont.)關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第5頁(yè)。6----關(guān)系完整性約束(IC:IntegrityConstraint)在數(shù)據(jù)庫(kù)中數(shù)據(jù)完整性是指保證數(shù)據(jù)正確的特性,是一種語(yǔ)義概念。它包括兩方面的內(nèi)容:與現(xiàn)實(shí)世界中應(yīng)用需求的數(shù)據(jù)的相容性和正確性;數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)之間的相容性和正確性。在關(guān)系數(shù)據(jù)模型中一般將數(shù)據(jù)完整性分為三類(lèi):實(shí)體完整性參照完整性用戶定義完整性

RDB(cont.)關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第6頁(yè)。7關(guān)系模型的基本數(shù)據(jù)結(jié)構(gòu)是關(guān)系:實(shí)體以及實(shí)體之間的聯(lián)系都用關(guān)系來(lái)表示,并且直觀來(lái)看關(guān)系就是二維表,由行和列組成,見(jiàn)下圖。FurtherdiscussionofRDB:倉(cāng)庫(kù)號(hào)城市面積WH1北京370WH2上海500WH3廣州200關(guān)系關(guān)系名:倉(cāng)庫(kù)屬性和屬性名關(guān)系模式(表結(jié)構(gòu))元組關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第7頁(yè)。81)關(guān)系(Relation):二維表,表名就是關(guān)系名。2)屬性(Attribute):表中的列稱為屬性,每個(gè)屬性有一個(gè)在該表中唯一的屬性名,列的個(gè)數(shù)稱為關(guān)系的元數(shù),有n個(gè)列的表為n元關(guān)系。3)值域(Domain):表中屬性的取值范圍稱為值域。4)元組(Tuple):表中的行稱為元組/記錄。5)分量(Component):元組中的每一個(gè)屬性值稱為元組的一個(gè)分量,n元關(guān)系的每個(gè)元組就有n個(gè)分量。6)關(guān)系模式(RelationSchema):二維表的結(jié)構(gòu)稱為關(guān)系模式。設(shè)關(guān)系名為REL,屬性為A1,A2,…,An,則關(guān)系模式可以表示為:REL(A1,A2,…,An)。BasicTermsinRDB:關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第8頁(yè)。97)關(guān)系模型(RelationModel):所有的關(guān)系模式的總稱。8)關(guān)系數(shù)據(jù)庫(kù)(RelationDatabase):對(duì)應(yīng)于一個(gè)關(guān)系模型的所有關(guān)系的集合稱為關(guān)系數(shù)據(jù)庫(kù)。關(guān)系模型是“型”,或“內(nèi)涵(Intention)”,關(guān)系數(shù)據(jù)庫(kù)是“值”,或外延(Extension)。9)候選關(guān)鍵字(CandidateKey):如果一個(gè)屬性集的值能唯一標(biāo)識(shí)該關(guān)系的元組而又不含有多余的屬性,則稱該屬性集為候選關(guān)鍵字/候選鍵/候選碼,一個(gè)關(guān)系可以有多個(gè)候選鍵。10)主關(guān)鍵字(PrimaryKey):當(dāng)一個(gè)關(guān)系有多個(gè)候選鍵時(shí),可以指定其中一個(gè)作為主關(guān)鍵字/主鍵/主碼。每個(gè)關(guān)系有且只有一個(gè)主鍵。BasicTermsinRDB:關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第9頁(yè)。1011)主屬性(PrimaryAttribute):任一候選鍵中出現(xiàn)的屬性稱為主屬性。12)非主屬性(NonprimaryAttribute):不在任一候選鍵中出現(xiàn)的屬性。13)外部關(guān)鍵字(ForeignKey):如果一個(gè)屬性集不是所在關(guān)系的關(guān)鍵字,但是是其他關(guān)系的關(guān)鍵字,則該屬性集稱為外部關(guān)鍵字/外部鍵/外碼。14)參照關(guān)系(ReferencingRelation)和被參照關(guān)系(ReferencedRelation):在關(guān)系數(shù)據(jù)庫(kù)中通過(guò)外部鍵使兩個(gè)關(guān)系關(guān)聯(lián),這種聯(lián)系通常是一對(duì)多(1:n)的,其中主/父關(guān)系(1方)稱為被參照關(guān)系,從/子關(guān)系(n方)稱為參照關(guān)系。BasicTermsinRDB:關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第10頁(yè)。11首先定義域和笛卡爾積。域:域是一組具有相同數(shù)據(jù)類(lèi)型的值的集合。笛卡爾積:給定一組域D1,D2,…,Dn(它們可以相同),定義D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,…,n}其中每一個(gè)元素(d1,d2,…,dn)叫作一個(gè)n元組,元組中每一個(gè)di叫作元組的一個(gè)分量。例子見(jiàn)P42-43。笛卡爾積是一種所有可能的組合的運(yùn)算。關(guān)系的形式定義:笛卡爾積D1×D2×…

×Dn的任意一個(gè)子集稱為D1,D2,…,

Dn上的一個(gè)n元關(guān)系。2.1FormalDefinitionofRelation關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第11頁(yè)。12幾個(gè)概念:候選碼、主屬性、非主屬性、全碼等參見(jiàn)前面所述。需要說(shuō)明兩點(diǎn):集合中的元素是無(wú)序的,關(guān)系是元組的集合,元組可以是無(wú)序的;但關(guān)系中的元組的分量是有序的。

例如,在關(guān)系中(a,b)≠(b,a),但在集合中{a,b}={b,a}。若一個(gè)關(guān)系的元組個(gè)數(shù)是無(wú)限的,則該關(guān)系稱為無(wú)限關(guān)系,否則稱為有限關(guān)系;在數(shù)據(jù)庫(kù)中只考慮有限關(guān)系。RDB(cont.)關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第12頁(yè)。13關(guān)系的6條性質(zhì):每一分量必須是不可分的最小數(shù)據(jù)項(xiàng),即每個(gè)屬性都是不可再分解的,這是關(guān)系數(shù)據(jù)庫(kù)對(duì)關(guān)系的最基本的限定。列的個(gè)數(shù)和每列的數(shù)據(jù)類(lèi)型是固定的,即每一列中的分量是同類(lèi)型的數(shù)據(jù),來(lái)自同一個(gè)值域。不同的列可以出自同一個(gè)值域,每一列稱為屬性,每個(gè)屬性要給予不同的屬性名。列的順序是無(wú)關(guān)緊要的,即列的次序可以任意交換,但一定是整體交換,屬性名和屬性值必須作為整列同時(shí)交換。行的順序是無(wú)關(guān)緊要的,即行的次序可以任意交換。元組不可以重復(fù),即在一個(gè)關(guān)系中任意兩個(gè)元組不能完全一樣。RDB(cont.)關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第13頁(yè)。14關(guān)系模式:定義2.4:關(guān)系的描述稱為關(guān)系模式,形式化表示為:R(U,D,DOM,F(xiàn)),其中,R為關(guān)系名,U為組成該關(guān)系的屬性集合,D為U中屬性所來(lái)自的域,DOM為屬性向域的映像集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。簡(jiǎn)單地,關(guān)系模式可以表示成:R(U)。關(guān)系數(shù)據(jù)庫(kù):在一個(gè)給定的應(yīng)用領(lǐng)域中,所有實(shí)體及實(shí)體之間的聯(lián)系的總和,構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫(kù)??梢詫㈥P(guān)系數(shù)據(jù)庫(kù)分為型和值兩個(gè)含義。----RDB的型指的是RDB模式,是對(duì)RDB的描述,包括:域的定義、定義在這些域上的所有關(guān)系模式。----RDB的值指的是在某一時(shí)刻,滿足上述關(guān)系模式的記錄的集合。RDB(cont.)關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第14頁(yè)。15關(guān)系操作:選擇、投影、連接、除、并、差、交、笛卡兒積。其中,選擇、投影、并、差、笛卡兒積是5種基本操作,其他操作可以用基本操作來(lái)定義和導(dǎo)出。集合操作方式:操作的對(duì)象和結(jié)果都是集合,即一次一集合方式,Set-at-a-time。非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式為一次一記錄,即Record-at-a-time。關(guān)系數(shù)據(jù)語(yǔ)言的分類(lèi)關(guān)系代數(shù)語(yǔ)言:ISBL關(guān)系演算語(yǔ)言:1。元組關(guān)系演算APLHA,QUEL2。域關(guān)系演算QBESQL:T-SQL、PL/SQL、…Section2.OperationsonRelationalDataModel關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第15頁(yè)。16三種完整性約束:實(shí)體完整性、參照完整性和用戶自定義完整性

規(guī)則2.1實(shí)體完整性規(guī)則P49實(shí)體完整性是要保證關(guān)系中的每個(gè)元組都是可識(shí)別和唯一的。實(shí)體完整性規(guī)則的具體內(nèi)容是:若屬性A是關(guān)系R的主屬性,則屬性A不可以為空值NULL。所謂空值就是“不知道”或“還沒(méi)有確定”,它既不是數(shù)值0,也不是空字符串,是一個(gè)未知的量。//比如,工資屬性實(shí)體完整性是關(guān)系模型必須滿足的完整性約束條件,也稱作是關(guān)系的不變性。關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)可以用主關(guān)鍵字實(shí)現(xiàn)實(shí)體完整性,這是由關(guān)系系統(tǒng)自動(dòng)支持的。Section3.IntegrityConstraintsonRelationalDataModel關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第16頁(yè)。17現(xiàn)實(shí)世界中的實(shí)體間存在著某種聯(lián)系,而在關(guān)系模型中實(shí)體是用關(guān)系描述的、實(shí)體之間的聯(lián)系也是用關(guān)系描述的,這樣就自然存在著關(guān)系和關(guān)系之間的參照或引用。參照完整性也是關(guān)系模型必須滿足的完整性約束條件,是關(guān)系的另一個(gè)不變性。通過(guò)一個(gè)例子來(lái)說(shuō)明什么是參照完整性。比如,倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào),城市,面積),職工(職工號(hào),倉(cāng)庫(kù)號(hào),工資),在倉(cāng)庫(kù)關(guān)系和職工關(guān)系之間存在參照/引用關(guān)系,即職工關(guān)系的倉(cāng)庫(kù)號(hào)屬性的取值需要來(lái)自于倉(cāng)庫(kù)關(guān)系的關(guān)鍵字“倉(cāng)庫(kù)號(hào)”,因?yàn)?,從語(yǔ)義上來(lái)講,一個(gè)職工肯定隸屬于一個(gè)已經(jīng)存在的倉(cāng)庫(kù),而不會(huì)屬于一個(gè)不存在的倉(cāng)庫(kù)。在這里,倉(cāng)庫(kù)關(guān)系是被參照/被引用關(guān)系,職工關(guān)系是參照關(guān)系。ReferenceIntegrityConstraint關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第17頁(yè)。18顯然,參照關(guān)系的外部鍵和被參照關(guān)系的主關(guān)鍵字是出自同一個(gè)值域的,在實(shí)際應(yīng)用中往往也是同名的(當(dāng)然,不是必須的。)。參照完整性規(guī)則的內(nèi)容是:如果屬性(或?qū)傩越M)F是關(guān)系R的外部關(guān)鍵字,它與關(guān)系S的主關(guān)鍵字K相對(duì)應(yīng),則對(duì)于關(guān)系R中每個(gè)元組在屬性(或?qū)傩越M)F上的值必須為:●

或者取空值(F的每個(gè)屬性均為空值);//比如說(shuō),在前面的例子中,某個(gè)新來(lái)的職工還未確定在哪個(gè)倉(cāng)庫(kù)工作,則該職工的倉(cāng)庫(kù)號(hào)為空值?!?/p>

或者等于S中某個(gè)元組的主關(guān)鍵字的值。在關(guān)系系統(tǒng)中通過(guò)說(shuō)明外部關(guān)鍵字來(lái)實(shí)現(xiàn)參照完整性。ReferenceIntegrityConstraint關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第18頁(yè)。19一種與應(yīng)用密切相關(guān)的數(shù)據(jù)完整性約束,如某個(gè)屬性的值必須唯一某個(gè)屬性的取值必須在某個(gè)范圍內(nèi)某些屬性值之間應(yīng)該滿足一定的函數(shù)關(guān)系等類(lèi)似以上的約束不是關(guān)系數(shù)據(jù)模型本身所要求的,而是為了滿足應(yīng)用方面的語(yǔ)義要求而提出的,這些完整性需求需要由用戶定義,因此稱為用戶自定義完整性。在用戶定義完整性中最常見(jiàn)的是限定屬性的取值范圍,即對(duì)值域的約束,也稱為域完整性約束,包括說(shuō)明屬性的數(shù)據(jù)類(lèi)型、精度、取值范圍、是否允許空值等。SemanticConstraintDefinedbyUsers關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第19頁(yè)。20執(zhí)行插入操作時(shí)檢查完整性執(zhí)行插入操作時(shí)需要分別檢查實(shí)體完整性規(guī)則、參照完整性規(guī)則和用戶定義完整性規(guī)則。檢查實(shí)體完整性規(guī)則:主屬性是否為空?主鍵取值是否唯一?檢查參照完整性規(guī)則:外部鍵取值是否存在?檢查用戶定義完整性規(guī)則:是否滿足用戶定義的約束?執(zhí)行刪除操作時(shí)檢查完整性

執(zhí)行刪除操作時(shí)一般只需要檢查參照完整性規(guī)則。執(zhí)行更新操作時(shí)檢查完整性執(zhí)行更新操作可以看作是先刪除舊的元組,然后再插入新的元組。所以執(zhí)行更新操作時(shí)的完整性檢查綜合了上述兩種情況。RoleofIntegrityConstraints關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第20頁(yè)。21基本概念和幾個(gè)符號(hào):關(guān)系代數(shù)的運(yùn)算由如下兩大類(lèi)組成,即:----傳統(tǒng)的集合運(yùn)算:廣義笛卡爾積、集合并、集合交、集合差運(yùn)算等;----專門(mén)的關(guān)系運(yùn)算:選擇、投影、連接和除運(yùn)算。關(guān)系代數(shù)中的運(yùn)算符有:----集合運(yùn)算符:∪、∩、-、×;----關(guān)系運(yùn)算符:σ、П、∞、÷;----比較運(yùn)算符:﹥、﹤、=、≠、≤、≥;----邏輯運(yùn)算符:﹁、∧、∨。Section4.RelationalAlgebra關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第21頁(yè)。22幾個(gè)專門(mén)的符號(hào):----設(shè)有關(guān)系模式R(A1,A2,…,An)r∈R表示r是R的一個(gè)元組;r.Ai或r[Ai]表示r這個(gè)元組中相應(yīng)于屬性Ai的一個(gè)分量;例如,假設(shè)R是倉(cāng)庫(kù)關(guān)系,r=(“WH1”,“北京”,370)是倉(cāng)庫(kù)關(guān)系的一個(gè)元組,則r∈R,r.倉(cāng)庫(kù)號(hào)或r[倉(cāng)庫(kù)號(hào)]為“WH1”。----設(shè)R為m元關(guān)系,S為n元關(guān)系,并且r=(r1,r2,…,rm)∈R,s=(s1,s2,…,sn)∈S,則rs=(r1,r2,…,rm,s1,s2,…,sn)稱為元組的連串。這是一個(gè)(m+n)元組,前m個(gè)分量為R中的一個(gè)m元組,后n個(gè)分量為S中的一個(gè)n元組。Section4.RelationalAlgebra

關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第22頁(yè)。23元組中屬性的映像集(P54):設(shè)有關(guān)系模式R(X,Y),其中X、Y可以是單個(gè)屬性,也可以是屬性集,定義當(dāng)X取值為x時(shí),即r[X]=x,x在R中的映象集為:Yx={r[Y]|r∈R∧r.X=x}例子:考慮訂購(gòu)單關(guān)系。設(shè)X={職工號(hào)},Y={供應(yīng)商號(hào),訂購(gòu)單號(hào),訂購(gòu)日期},則當(dāng)X取值E3時(shí),Yx={(S7,OR67,2002/06/23),(S4,OR79,2002/07/29),(S6,OR907,2002/07/13),(S3,OR91,2002/10/27)}.例子:R(X,Z),元組有:{(x1,Z1),(x1,Z2),(x1,Z3),(x2,Z2),(x2,Z3),(x3,Z1),(x3,Z3)}x1在R中的映象集Zx1={Z1,Z2,Z3}x2在R中的映象集Zx2={Z2,Z3}x3在R中的映象集Zx3={Z1,Z3}Section4.RelationalAlgebra

關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第23頁(yè)。24傳統(tǒng)的集合運(yùn)算集合運(yùn)算:∪、∩、-、×;R∪S={t|t∈R∨t∈S};R∩S={t|t∈R∧t∈S};R-

S={t|t∈R∧tS};//以上要求R和S是同質(zhì)的。R×S={rs|r∈R,s∈S}:假設(shè)R是m元關(guān)系,有k個(gè)元組,S是n元關(guān)系,有l(wèi)個(gè)元組,則R×S是m+n元關(guān)系,有k*l個(gè)元組。例子見(jiàn)P54圖2.2。Section4.RelationalAlgebra

關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第24頁(yè)。25專門(mén)的關(guān)系運(yùn)算----選擇運(yùn)算:σ—從指定的關(guān)系中選擇滿足某個(gè)/些邏輯條件的元組形成一個(gè)新的關(guān)系。//結(jié)構(gòu)不變,元組個(gè)數(shù)改變。σF(R)={r|r∈R∧F},這里F為結(jié)果為“真”的邏輯表達(dá)式。比如,T=σ職工號(hào)=“E3”(訂購(gòu)單);

S1=σSdept=“IS”(Student)。Section4.RelationalAlgebra

關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第25頁(yè)。26----投影運(yùn)算:П—從指定的關(guān)系中由部分屬性及元組的相應(yīng)分量形成一個(gè)新的關(guān)系。

//結(jié)構(gòu)改變,元組個(gè)數(shù)可能改變。ПAttr(R)={r.Attr|r∈R},這里Attr為被投影的屬性/屬性集。比如,T=П職工號(hào),供應(yīng)商號(hào)(訂購(gòu)單);

S2=ПSname,Sdept(Student)。Section4.RelationalAlgebra

關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第26頁(yè)。27訂購(gòu)單:職工號(hào)供應(yīng)商號(hào)訂購(gòu)單號(hào)訂購(gòu)日期E3S7OR6702/06/23E1S4OR7302/07/28E7S4OR7602/05/25E6S6OR7702/06/19E3S4OR7902/07/29E1S6OR8002/06/22E3S6OR9002/07/13E3S3OR9102/10/27T1=σ職工號(hào)=E3(訂購(gòu)單):職工號(hào)供應(yīng)商號(hào)訂購(gòu)單號(hào)E3S7OR67E3S4OR79E3S6OR90E3S3OR91選擇操作T2=П供應(yīng)商號(hào),訂購(gòu)單號(hào)(T1):供應(yīng)商號(hào)訂購(gòu)單號(hào)S7OR67S4OR79S6OR90S3OR91投影操作Section4.RelationalAlgebra

關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第27頁(yè)。28----連接運(yùn)算:∞

—連接相互之間有聯(lián)系的兩個(gè)關(guān)系,形成一個(gè)新的關(guān)系。參與運(yùn)算的兩個(gè)關(guān)系通常是具有一對(duì)多聯(lián)系的引用與被引用關(guān)系,并且是通過(guò)外部鍵與主鍵的匹配而實(shí)現(xiàn)的.這兩個(gè)鍵也稱為連接屬性.通常我們也稱連接運(yùn)算為連接運(yùn)算,這里是比較運(yùn)算符。當(dāng)為“=”時(shí),稱為等值連接,其余情況稱為非等值連接;----自然連接:∞—(1)等值連接,并且(2)去掉重復(fù)的屬性。例子:假設(shè)R(A,B,C),S(A,D,E),則R與S的連接運(yùn)算,其結(jié)果關(guān)系模式為:T(A1,B,C,A2,D,E);R與S的自然連接運(yùn)算,其結(jié)果關(guān)系模式為:T(A,B,C,D,E)。//暫時(shí)不考慮元組。其他例子見(jiàn)P58。Section4.RelationalAlgebra

關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第28頁(yè)。29注意,為了使一個(gè)關(guān)系中的任一元組都參加自然連接,該元組的連接屬性的值必須出現(xiàn)在另一個(gè)參加連接的關(guān)系中。綜合運(yùn)算的例子.倉(cāng)庫(kù)號(hào)城市面積倉(cāng)庫(kù)號(hào)職工號(hào)工資WH1北京370WH2E11220WH2上海500WH1E31210WH3廣州200WH2E41250WH4合肥130WH3E61230WH1E71250假設(shè)要求出在上海工作的職工的工資值.R1=σ城市=“上海”(倉(cāng)庫(kù));//有哪些倉(cāng)庫(kù)在上海;R2=R1∞職工;//有哪些職工在上述倉(cāng)庫(kù)工作;R3=П工資(R2).//將工資屬性值羅列出來(lái).Section4.RelationalAlgebra

關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第29頁(yè)。30R1:倉(cāng)庫(kù)號(hào)城市面積WH2上海500職工:倉(cāng)庫(kù)號(hào)職工號(hào)工資WH2E11220WH1E31210WH2E41250WH3E61230WH1E71250R2:倉(cāng)庫(kù)號(hào)城市面積職工號(hào)工資WH2上海500E11220WH2上海500E41250自然連接R3:工資12201250投影倉(cāng)庫(kù):倉(cāng)庫(kù)號(hào)城市面積WH1北京370WH2上海500WH3廣州200WH4合肥130選擇Section4.RelationalAlgebra

關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第30頁(yè)。31----除運(yùn)算:假設(shè)R(X,Y)和S(Y),其中X、Y是一個(gè)/組屬性集,則R÷S={r.X|r∈R∧Yx

S}.//R為被除關(guān)系,S為除關(guān)系。商關(guān)系由R中某些X屬性值構(gòu)成,其中的任一X值所對(duì)應(yīng)的一組Y值都包含除關(guān)系S例子如下:倉(cāng)庫(kù)號(hào)供應(yīng)商號(hào)WH1S1WH1S2WH1S3WH2S3WH3S1WH3S2WH5S1WH5S2WH5S4WH6S2倉(cāng)庫(kù)號(hào)WH1WH3WH5供應(yīng)商號(hào)S1S2÷=Section4.RelationalAlgebra

關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第31頁(yè)。32例6(P59)關(guān)系R、S和R÷S如下。R(A,B,C)

a1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1S(B,C,D)b1c2d1b2c1d1b2c3d2R÷S=T(A)a1÷=Section4.RelationalAlgebra

關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第32頁(yè)。33除運(yùn)算常用于“至少…”這種查詢.比如上述例子的含義是:列出至少向倉(cāng)庫(kù)WH1、WH3、WH5供貨的供應(yīng)商號(hào)。例子:訂購(gòu)單:DIVISOR:職工號(hào)供應(yīng)商號(hào)訂購(gòu)單號(hào)訂購(gòu)日期供應(yīng)商號(hào)E3S7OR672002/06/23S7E1S4OR732002/07/28S4E7S4OR762002/05/25S6E6S6OR772002/06/19E3S4OR792002/07/29E1S6OR802002/06/22E3S6OR902002/07/13E3S3OR912002/10/27Section4.RelationalAlgebra

關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第33頁(yè)。34R1=П職工號(hào),供應(yīng)商號(hào)(訂購(gòu)單):職工號(hào)供應(yīng)商號(hào)E3S7E1S4E7S4E6S6E3S4E1S6E3S6E3S3R2=R1÷DIVISOR:職工號(hào)E3職工:倉(cāng)庫(kù)號(hào)職工號(hào)工資WH2E11220WH1E31210WH2E41250WH3E61230WH1E71250R3=R2∞職工:倉(cāng)庫(kù)號(hào)職工號(hào)工資WH1E31210R4=П職工號(hào),工資(R3):職工號(hào)工資E31210例7查詢至少選修1號(hào)課程和2號(hào)課程的學(xué)生學(xué)號(hào):K(Cno)={1,3},T=ПSno,Cno(SC)÷KSection4.RelationalAlgebra

關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第34頁(yè)。35例9查詢至少選修一門(mén)其直接先行課程為5號(hào)課程的學(xué)生姓名:K(Cno)=ПCnoσCpno=“5”(Course);T=(ПSno,Cno(SC)÷K)∞(ПSname,sno(Student))例10查詢選修了全部課程的學(xué)生學(xué)號(hào)和姓名:T=(ПSno,Cno(SC)÷ПCno(Course))∞(ПSname,sno(Student))Section4.RelationalAlgebra

關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第35頁(yè)。36元組關(guān)系演算以元組變量作為謂詞變?cè)幕緦?duì)象.ALPHA語(yǔ)言主要有GET,PUT,HOLD,UPDATE,DELETE,DROP等6條語(yǔ)句,語(yǔ)句的基本格式是:操作語(yǔ)句工作空間名(表達(dá)式):操作條件一、檢索操作檢索操作用GET可以實(shí)現(xiàn)如下查詢,假設(shè)我們有關(guān)系模式:STUDENT(SNO,SNAME,SSEX,SAGE,SDEPT),COURSE(CNO,CNAME,CPNO,CCREDIT),SC(SNO,CNO,GRADE)(1)簡(jiǎn)單檢索(即不帶條件的檢索)查詢所有被選修的課程號(hào)碼;GETW(SC.CNO)查詢所有學(xué)生的數(shù)據(jù);GETW(STUDENT)2.5關(guān)系演算—元組關(guān)系演算語(yǔ)言ALPHA關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第36頁(yè)。37(2)限定的檢索(即帶條件的檢索)查詢計(jì)算機(jī)系中年齡<20的學(xué)生的學(xué)號(hào)和年齡;GETW(STUDENT.SNO,STUDENT.SAGE):STUDENT.SDEPT=“CS”∧SAGE<20(3)帶排序的檢索查詢計(jì)算機(jī)系學(xué)生的學(xué)號(hào),年齡,結(jié)果按年齡降序排序;GETW(STUDENT.SNO,STUDENT.SAGE):STUDENT.SDEPT=“CS”DOWNSTUDENT.SAGE(4)帶定額的檢索取出一個(gè)計(jì)算機(jī)系學(xué)生的學(xué)號(hào);GETW(1)(STUDENT.SNO):STUDENT.SDEPT=“CS”2.5關(guān)系演算關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第37頁(yè)。38查詢信息系年齡最大的三個(gè)學(xué)生的學(xué)號(hào),年齡,結(jié)果按年齡降序排序;GETW(3)(STUDENT.SNO,STUDENT.SAGE):STUDENT.SDEPT=“IS”DOWNSTUDENT.SAGE(5)用元組變量的檢索元組變量也稱為范圍變量,其值是在某一關(guān)系范圍內(nèi)變化,一個(gè)關(guān)系可以設(shè)多個(gè)元組變量.元組變量主要有兩個(gè)方面的用途:----簡(jiǎn)化關(guān)系名;----操作條件中使用量詞時(shí)必須用元組變量.查詢信息系學(xué)生的姓名;RANGESTUDENTX//用RANGE來(lái)說(shuō)明元組變量.X可以代表STUDENT.GETW(X.SNAME):X.SDEPT=“IS”(6)用存在量詞的檢索操作條件中使用量詞時(shí)必須用元組變量.2.5關(guān)系演算關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第38頁(yè)。39查詢選修2號(hào)課的學(xué)生的姓名;RANGESCXGETW(STUDENT.SNAME):X(X.SNO=STUDENT.SNO∧

X.CNO=‘2’)查詢選修了這樣課程的學(xué)生學(xué)號(hào),其直接先行課是6號(hào)課程;RANGECOURSECXGETW(SC.SNO):CX(CX.CNO=SC.CNO∧

CX.PCNO=‘6’)查詢至少選修了一門(mén)其先行課為6號(hào)課程的學(xué)生姓名;RANGECOURSECXSCSCXGETW(STUDENT.SNAME):SCX(SCX.SNO=STUDENT.SNO∧

CX(CX.CNO=SCX.CNO∧

CX.PCNO=‘6’)2.5關(guān)系演算關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第39頁(yè)。40(7)帶有多個(gè)關(guān)系的表達(dá)式的檢索:指結(jié)果表達(dá)式中可以有多個(gè)關(guān)系.查詢成績(jī)?yōu)?0分以上的學(xué)生姓名和課程名;RANGESCSCXGETW(STUDENT.SNAME,COURSE.CNAME):SCX(SCX.GRADE>=90∧SCX.SNO=STUDENT.SNO∧

COURSE.CNO=SCX.CNO)(8)用全稱量詞的檢索查詢不選1號(hào)課的學(xué)生姓名;RANGESCSCXGETW(STUDENT.SNAME):SCX(SCX.SCX.SNO≠STUDENT.SNO∨

SCX.CNO≠‘1’)(9)用兩種量詞的檢索查詢選修了全部課程的學(xué)生姓名;RANGECOURSECXSCSCXGETW(STUDENT.SNAME):

CXSCX(SCX.SNO=STUDENT.SNO∧SCX.CNO=CX.CNO)2.5關(guān)系演算關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第40頁(yè)。41(10).用蘊(yùn)涵的檢索查詢最少選修了95002學(xué)生所選課程的學(xué)生學(xué)號(hào);本題的求解思路是:對(duì)COURSE中的所有課程,依次檢查每一門(mén)課程,看95002是否選修了該課程,如果選修了,則再看某個(gè)學(xué)生是否也選修了該門(mén)課.如果對(duì)于95002所選的每門(mén)課該學(xué)生都選修了,則該學(xué)生為滿足要求的學(xué)生.把所有這樣的學(xué)生全都找出了即完成了本題.RANGECOURSECXSCSCXSCSCY//注意,這里SC設(shè)了兩個(gè)元組變量.GETW(STUDENT.SNO):

CXSCX(SCX.SNO=‘95002’∧SCX.CNO=CX.CNO)

SCY(SCY.SNO=STUDENT.SNO∧SCY.CNO=CX.CNO)2.5關(guān)系演算關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第41頁(yè)。42二、更新操作(1)修改操作UPDATE首先用HOLD語(yǔ)句將要修改的元組從數(shù)據(jù)庫(kù)中讀到工作空間中,然后用宿主語(yǔ)言修改工作空間中的元組的屬性,最后用UPDATE語(yǔ)句將修改后的元組送回?cái)?shù)據(jù)庫(kù)中.單純檢索數(shù)據(jù)使用GET語(yǔ)句即可,但為修改數(shù)據(jù)而讀元組時(shí)必須使用HOLD語(yǔ)句,它是帶上并發(fā)控制的GET語(yǔ)句.把95007學(xué)生從計(jì)算機(jī)系轉(zhuǎn)到信息系.HOLDW(STUDENT.SNO,STUDENT.SDEPT):STUDENT.SNO=‘95007’MOVE‘IS’TOW.SDEPTUPDATE2.5關(guān)系演算關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第42頁(yè)。43二、更新操作(2)插入操作PUT首先用宿主語(yǔ)言在工作空間中建立新元組,然后用PUT語(yǔ)句把該元組存入指定的關(guān)系中.新開(kāi)設(shè)了一門(mén)2學(xué)分的課程”計(jì)算機(jī)組織與結(jié)構(gòu)”,其課程號(hào)為8,直接先行課為6.插入該課程元組.MOVE‘8’TOW.CNOMOVE‘計(jì)算機(jī)組織與結(jié)構(gòu)’TOW.CNAMEMOVE‘6’TOW.CPNOMOVE‘2’TOW.CCREDITPUTW(COURSE)2.5關(guān)系演算關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第43頁(yè)。44二、更新操作(3)刪除操作DELETE用HOLD語(yǔ)句把要?jiǎng)h除的元組從數(shù)據(jù)庫(kù)中讀到工作空間中,然后用DELETE語(yǔ)句刪除該元組.95110學(xué)生退學(xué),刪除該學(xué)生元組.HOLDW(STUDENT):STUDENT.SNO=‘95110’DELETEW將學(xué)號(hào)95001改為95102HOLDW(Student):Student.Sno=‘95001’DELETEWMOVE‘95102’TOW.SnoMOVE‘李勇’TOW.SnameMOVE‘男’TOW.SsexMOVE’20’TOW.SageMOVE‘CS’TOW.SdeptPUTW(Student)2.5關(guān)系演算關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第44頁(yè)。45以元組變量的分量即域變量作為謂詞變?cè)幕緦?duì)象.QBE(QUERYBYEXAMPLE)是一種高度非過(guò)程化的基于屏幕表格的查詢語(yǔ)言,用戶通過(guò)終端屏幕編輯程序以填寫(xiě)表格的方式構(gòu)造查詢要求,而查詢結(jié)果也是以表格形式顯示.QBE用示例元素來(lái)表示查詢結(jié)果可能的情況,示例元素實(shí)質(zhì)上就是域變量。即,示例元素是這個(gè)域中可能的一個(gè)值。加下劃線表示示例元素,P.表示打印/顯示,常數(shù)值表示等值條件2.5關(guān)系演算--域關(guān)系演算語(yǔ)言QBE關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第45頁(yè)。46QEB操作框架如下:2.5域關(guān)系演算關(guān)系名操作命令屬性名1屬性名n屬性值/查詢條件1屬性值/查詢條件m…………例1:查詢信息系全體學(xué)生的姓名;其中,T是域變量/示例元素,要求加下劃線,P.是操作命令,IS是查詢條件.STUDENTSNOSDEPTISSNAMEP.TSSEXSAGE關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第46頁(yè)。472.5域關(guān)系演算例2:查詢?nèi)w學(xué)生的全部數(shù)據(jù)STUDENTSNOSDEPT>19SNAMEP.95001SSEXSAGESTUDENTSNOSDEPTP.CSSNAMEP.李勇SSEXSAGEP.95001P.20P.男例3:求年齡大于19歲的學(xué)生的學(xué)號(hào)關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第47頁(yè)。482.5域關(guān)系演算STUDENTSNOSDEPT>19SNAMEP.95001SSEXSAGE例4:求計(jì)算機(jī)科學(xué)系年齡大于19歲的學(xué)生的學(xué)號(hào)CSSTUDENTSNOSDEPT>19SNAMEP.95001SSEXSAGE例5:查詢計(jì)算機(jī)科學(xué)系或者年齡大于19歲的學(xué)生的學(xué)號(hào)//使用不同的示例元素值,并且寫(xiě)在不同的行上,即表示”或”運(yùn)算.CSP.95002關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第48頁(yè)。492.5域關(guān)系演算例6:查詢既選修了1號(hào)課又選修了2號(hào)課的學(xué)生學(xué)號(hào).//當(dāng)示例元素相同時(shí)表示AND運(yùn)算,另外,示例元素是這個(gè)域中可能的一個(gè)值即可.SCSNOP.95001P.95001CNO12GRADE例7:查詢選修1號(hào)課的學(xué)生姓名//涉及兩個(gè)關(guān)系.SCSNO95001CNO1GRADESTUDENTSNOSDEPTP.李勇SNAME95001SSEXSAGE關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第49頁(yè)。502.5域關(guān)系演算—更新操作例12:把95001學(xué)生的年齡改為18歲。STUDENTSNOSDEPT17SNAME95001SSEXSAGE例13:把95001學(xué)生的年齡增加1歲。STUDENTSNOSDEPT18SNAMESSEXSAGE95001U.U.9500117+1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第50頁(yè)。512.5域關(guān)系演算—更新操作例15:把信息系女生95701,姓名張三,年齡17歲存如數(shù)據(jù)庫(kù)中。STUDENTSNOSDEPTSNAME95089SSEXSAGE例16:刪除學(xué)生95089。D.STUDENTSNOSDEPT17SNAMESSEXSAGE95701I.張三女ISSCSNO95089CNOD.GRADE關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第51頁(yè)。521.設(shè)有關(guān)系R和S:R:ABCS:ABC246257357468468359計(jì)算R∪S,R-S,R∩S,R×S,ПA,C(S),σC>6(R),R∞R.B=S.BS,R∞S.2.設(shè)有關(guān)系R和S:R:ACDS:BCD258358741441458418349641計(jì)算,R∞S,R∞R.A=S.AS,σR.C=S.C(R×S),Exercises:關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第52頁(yè)。533.設(shè)教學(xué)數(shù)據(jù)庫(kù)中有四個(gè)關(guān)系:教師關(guān)系T(T#,TNAME,TITLE),課程關(guān)系C(C#,CNAME,T#),學(xué)生關(guān)系S(S#,SNAME,AGE,SEX),選課關(guān)系SC(S#,C#,SCORE).用關(guān)系代數(shù)表達(dá)式表示下列各個(gè)查詢.1)檢索年齡<17的女學(xué)生的學(xué)號(hào)和姓名;2)檢索男學(xué)生所學(xué)課程的課程號(hào)和課程名;3)檢索男學(xué)生所學(xué)課程的任課老師的教師號(hào)和姓名;4)檢索至少有學(xué)號(hào)為S2和S4學(xué)生選修的課程的課程號(hào);5)檢索王同學(xué)不學(xué)的課程的課程號(hào);6)檢索全部學(xué)生都選修的課程的課程號(hào)和課程名Exercises:關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第53頁(yè)。544.設(shè)某集團(tuán)有若干個(gè)公司,其人事數(shù)據(jù)庫(kù)中有3個(gè)關(guān)系:職工關(guān)系EMP(E#,ENAME,AGE,SEX,ECITY),公司關(guān)系COMP(C#,CNAME,CITY,MGR_E#)工作關(guān)系WORKS(E#,C#,SALARY)A)給出該數(shù)據(jù)庫(kù)的E-R圖B)用關(guān)系代數(shù)表達(dá)式表示下列各個(gè)查詢.1)檢索年齡>50的男職工的工號(hào)和姓名;2)檢索為聯(lián)華公司工作的職工的工號(hào)和姓名;3)檢索經(jīng)理的工號(hào),姓名和居住城市;4)檢索居住城市和公司所在城市相同的經(jīng)理工號(hào)和姓名;5)檢索居住城市和公司所在城市相同的職工工號(hào)和姓名;6)工號(hào)為E6的職工在多個(gè)公司工作,檢索至少在E6兼職的所有公司工作職工工號(hào).Exercises:關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第54頁(yè)。55E.F.Codd給出了全關(guān)系型的關(guān)系系統(tǒng)應(yīng)遵循的十二條基本準(zhǔn)則。準(zhǔn)則0一個(gè)關(guān)系型的DBMS必須能完全通過(guò)它的關(guān)系能力來(lái)管理數(shù)據(jù)庫(kù)。準(zhǔn)則0是下面十二條準(zhǔn)則的基礎(chǔ)。準(zhǔn)則0的一個(gè)推論是:任何聲稱是關(guān)系型的DBMS必須在關(guān)系這個(gè)級(jí)別上支持?jǐn)?shù)據(jù)的插入、修改和刪除(即一次多個(gè)記錄的操作級(jí)別)。不管一個(gè)系統(tǒng)是否還具有非關(guān)系的管理數(shù)據(jù)的能力,它必須滿足準(zhǔn)則0。任何不滿足準(zhǔn)則0的DBMS不配稱為關(guān)系型DBMS。準(zhǔn)則0的另一個(gè)推論是:關(guān)系型DBMS必須遵循信息準(zhǔn)則和保證訪問(wèn)(存取)準(zhǔn)則。準(zhǔn)則1信息準(zhǔn)則關(guān)系型DBMS的所有信息都應(yīng)在邏輯一級(jí)上用一種方法即表中的值顯式地表示。此外,表名、列名和域名等都用系統(tǒng)內(nèi)部表(即數(shù)據(jù)字典表)中的值表示。補(bǔ)充:全關(guān)系系統(tǒng)的十二條基本準(zhǔn)則關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第55頁(yè)。56

準(zhǔn)則2保證訪問(wèn)準(zhǔn)則依靠表名、主碼和列名的組合,保證能以邏輯方式訪問(wèn)關(guān)系數(shù)據(jù)庫(kù)中的每個(gè)數(shù)據(jù)項(xiàng)(分量值)。保證訪問(wèn)準(zhǔn)則表明關(guān)系系統(tǒng)所采用的是關(guān)聯(lián)尋址(AssociationAddressing)的訪問(wèn)模式,而不是那種面向機(jī)器的尋址方法。

準(zhǔn)則3空值的系統(tǒng)化處理全關(guān)系型的DBMS應(yīng)支持空值的概念,并用系統(tǒng)化的方式處理空值。

準(zhǔn)則4基于關(guān)系模型的動(dòng)態(tài)的聯(lián)機(jī)數(shù)據(jù)字典數(shù)據(jù)庫(kù)的描述在邏輯級(jí)上應(yīng)該和普通數(shù)據(jù)采用同樣的表示方式,使得授權(quán)用戶可以使用查詢一般數(shù)據(jù)所用的關(guān)系語(yǔ)言來(lái)查詢數(shù)據(jù)庫(kù)的描述信息。這一準(zhǔn)則有兩個(gè)推論。推論一是每個(gè)用戶只需學(xué)習(xí)一種數(shù)據(jù)模型。推論二是授權(quán)用戶可以很容易地?cái)U(kuò)充數(shù)據(jù)字典,使之變成完備的主動(dòng)的關(guān)系數(shù)據(jù)字典。補(bǔ)充:全關(guān)系系統(tǒng)的十二條基本準(zhǔn)則關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第56頁(yè)。57準(zhǔn)則5統(tǒng)一的數(shù)據(jù)子語(yǔ)言準(zhǔn)則一個(gè)關(guān)系系統(tǒng)可以具有幾種語(yǔ)言和多種終端使用方式,但必須有一種語(yǔ)言,它的語(yǔ)句可以表示為具有嚴(yán)格語(yǔ)法規(guī)定的字符串,并能全面地支持以下功能:

·數(shù)據(jù)定義,視圖定義

·數(shù)據(jù)操作(交互式或程序式)·完整性約束

·授權(quán)

·事務(wù)處理功能(事務(wù)開(kāi)始、提交、滾回)準(zhǔn)則6視圖更新準(zhǔn)則所有理論上可更新的視圖也應(yīng)該允許由系統(tǒng)更新。一個(gè)“理論上可更新的視圖”是指對(duì)此視圖的更新要求,存在一個(gè)與時(shí)間無(wú)關(guān)的算法,該算法可以無(wú)二義性地把更新要求轉(zhuǎn)換為對(duì)基本表的更新序列。補(bǔ)充:全關(guān)系系統(tǒng)的十二條基本準(zhǔn)則關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第57頁(yè)。58

準(zhǔn)則7高級(jí)的插入、修改和刪除操作關(guān)系系統(tǒng)的操作對(duì)象是單一的關(guān)系。以關(guān)系為操作對(duì)象不僅簡(jiǎn)化了用戶查詢,而且也為系統(tǒng)提供了很大的余地來(lái)進(jìn)行查詢優(yōu)化,提高了系統(tǒng)的運(yùn)行效率。

準(zhǔn)則8數(shù)據(jù)物理獨(dú)立性無(wú)論數(shù)據(jù)庫(kù)的數(shù)據(jù)在存儲(chǔ)表示或存取方法上作任何變化,應(yīng)用程序和終端活動(dòng)都保持邏輯上的不變性。

準(zhǔn)則9數(shù)據(jù)邏輯獨(dú)立性當(dāng)對(duì)基本關(guān)系進(jìn)行理論上信息不受損害的任何改變時(shí),應(yīng)用程序和終端活動(dòng)都保持邏輯上的不變性。為了盡可能提高數(shù)據(jù)邏輯獨(dú)立性,DBMS必須能對(duì)理論上可更新的視圖執(zhí)行插入、修改和刪除操作,即必須滿足準(zhǔn)則6。

準(zhǔn)則l0數(shù)據(jù)完整性的獨(dú)立性關(guān)系數(shù)據(jù)庫(kù)的完整性約束條件必須是用數(shù)據(jù)庫(kù)語(yǔ)言定義并存儲(chǔ)在數(shù)據(jù)字典中的,而不是在應(yīng)用程序中加以定義的。補(bǔ)充:全關(guān)系系統(tǒng)的十二條基本準(zhǔn)則關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第58頁(yè)。59

準(zhǔn)則11分布獨(dú)立性所謂分布獨(dú)立性是指關(guān)系型DBMS具有這樣的數(shù)據(jù)庫(kù)語(yǔ)言,它使應(yīng)用程序和終端活動(dòng)無(wú)論在最初的數(shù)據(jù)還是以后的數(shù)據(jù)重新分布時(shí)都能在邏輯上保持不變。

準(zhǔn)則12無(wú)破壞準(zhǔn)則如果一個(gè)關(guān)系系統(tǒng)具有一個(gè)低級(jí)(指一次一個(gè)記錄)語(yǔ)言,則這個(gè)低級(jí)語(yǔ)言不能違背或繞過(guò)完整性準(zhǔn)則。補(bǔ)充:全關(guān)系系統(tǒng)的十二條基本準(zhǔn)則關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義全文共67頁(yè),當(dāng)前為第59頁(yè)。60

關(guān)系代數(shù)運(yùn)算:8種關(guān)系代數(shù)運(yùn)算:并、差、交、笛卡爾積、投影、選擇、連接、除;5種基本運(yùn)算:并、差、笛卡爾積、投影、選擇;5個(gè)操作是基本的:積是唯一能使屬性數(shù)目增加的操作,它不能用別的操作來(lái)表達(dá)。所以積是基本的;投影是唯一能減少屬性數(shù)目的操作;并是唯一能不增加屬性數(shù)目的但能增加元組數(shù)目的操作;差不能通過(guò)并(因?yàn)椴⒂肋h(yuǎn)不能減少元組的數(shù)目)或積(同樣的原因)或投影(因?yàn)橥队爸荒苁菧p少屬性)來(lái)表達(dá),也不能利用選擇來(lái)表達(dá),因?yàn)榈诙€(gè)關(guān)系中的值對(duì)差很重要,選擇中卻不然,因此,

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論