版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
數(shù)據(jù)庫系統(tǒng)原理
ThePrincipleofDatabaseSystem第2章關系代數(shù)(1)數(shù)據(jù)庫系統(tǒng)原理
ThePrincipleofDatab第2章關系數(shù)據(jù)庫2.1關系數(shù)據(jù)結構及形式化定義2.2關系操作2.3關系的完整性2第2章關系數(shù)據(jù)庫2.1關系數(shù)據(jù)結構及形式化定義2第2章關系數(shù)據(jù)庫1970年的6月,EdgarFrankCodd在CommunicationsofACM上發(fā)表了ARelationalModelofDataforLargeSharedDataBanks(大型共享數(shù)據(jù)庫數(shù)據(jù)的關系模型)1973年IBM啟動了SystemR的項目,研究關系型數(shù)據(jù)庫的實際可行性1979年,RSI發(fā)布了可用于DECPDP-11計算機上的商用ORACLE產(chǎn)品3第2章關系數(shù)據(jù)庫1970年的6月,EdgarFrank第2章關系數(shù)據(jù)庫左起EdOates、BruceScott、BobMiner、LarryEllison4第2章關系數(shù)據(jù)庫左起EdOates、BruceSco2.1關系數(shù)據(jù)結構及形式化定義關系數(shù)據(jù)庫系統(tǒng)關系模型的組成支持關系模型的數(shù)據(jù)庫系統(tǒng)關系數(shù)據(jù)結構關系操作集合關系完整性約束52.1關系數(shù)據(jù)結構及形式化定義關系數(shù)據(jù)庫系統(tǒng)支持關系模型的數(shù)2.1關系數(shù)據(jù)結構及形式化定義2.1.1關系2.1.2關系模式2.1.3關系數(shù)據(jù)庫62.1關系數(shù)據(jù)結構及形式化定義2.1.1關系62.1.1關系單一的數(shù)據(jù)結構----關系現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關系來表示數(shù)據(jù)的邏輯結構----二維表從用戶角度看,關系模型中數(shù)據(jù)的邏輯結構是一張二維表72.1.1關系單一的數(shù)據(jù)結構----關系72.1.1關系關系模型建立在集合代數(shù)的基礎上從集合論角度給出關系數(shù)據(jù)結構的形式化定義域笛卡爾積關系82.1.1關系關系模型建立在集合代數(shù)的基礎上8域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合。例如:整數(shù)、實數(shù)[1,10]之間的整數(shù)長度為8的字符串集合{‘男’,‘女’}介于2007年7月1日到2008年2月29日之間的日期9域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合。例如:笛卡爾積(CartesianProduct)笛卡爾積域上面的一種集合運算。給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}所有域的所有取值的一個組合不能重復10笛卡爾積(CartesianProduct)笛卡爾積域上面給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}例:給出三個域D1=SUPERVISOR={張清玫,劉逸}D2=SPECIALITY={計算機專業(yè),信息專業(yè)}D3=POSTGRADUATE={李勇,劉晨,王敏}D1×D2×D3=?笛卡爾積(CartesianProduct)11給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D1×D2×D3={(張清玫,計算機專業(yè),李勇),(張清玫,計算機專業(yè),劉晨),(張清玫,計算機專業(yè),王敏),(張清玫,信息專業(yè),李勇),(張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏),(劉逸,計算機專業(yè),李勇),(劉逸,計算機專業(yè),劉晨),(劉逸,計算機專業(yè),王敏),(劉逸,信息專業(yè),李勇),(劉逸,信息專業(yè),劉晨),(劉逸,信息專業(yè),王敏)}D1=SUPERVISOR={張清玫,劉逸}D2=SPECIALITY={計算機專業(yè),信息專業(yè)}D3=POSTGRADUATE={李勇,劉晨,王敏}笛卡爾積(CartesianProduct)12D1×D2×D3=D1=SUPERVISOR笛卡爾積(Ca元組(Tuple)笛卡爾積中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple)或簡稱元組。D1×D2×D3={(張清玫,計算機專業(yè),李勇),(張清玫,計算機專業(yè),劉晨),(張清玫,計算機專業(yè),王敏),(張清玫,信息專業(yè),李勇),(張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏),……}笛卡爾積(CartesianProduct)13元組(Tuple)笛卡爾積中每一個元素(d1,d2,…分量(Component)笛卡爾積元素(d1,d2,…,dn)中的每一個值di叫作一個分量。D1×D2×D3={(張清玫,計算機專業(yè),李勇),(張清玫,計算機專業(yè),劉晨),(張清玫,計算機專業(yè),王敏),(張清玫,信息專業(yè),李勇),(張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏),……}笛卡爾積(CartesianProduct)14分量(Component)笛卡爾積元素(d1,d2,…,dn基數(shù)(Cardinalnumber)若Di(i=1,2,…,n)為有限集,其基數(shù)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)M為:笛卡爾積(CartesianProduct)15基數(shù)(Cardinalnumber)若Di(i=1,2,…笛卡爾積(CartesianProduct)D1×D2×D3={(張清玫,計算機專業(yè),李勇),(張清玫,計算機專業(yè),劉晨),(張清玫,計算機專業(yè),王敏),(張清玫,信息專業(yè),李勇),(張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏),(劉逸,計算機專業(yè),李勇),(劉逸,計算機專業(yè),劉晨),(劉逸,計算機專業(yè),王敏),(劉逸,信息專業(yè),李勇),(劉逸,信息專業(yè),劉晨),(劉逸,信息專業(yè),王敏)}D1=SUPERVISOR={張清玫,劉逸}D2=SPECIALITY={計算機專業(yè),信息專業(yè)}D3=POSTGRADUATE={李勇,劉晨,王敏}D1×D2×D3的基數(shù):2×2×3=12即共有12個元組16笛卡爾積(CartesianProduct)D1×D2×D笛卡爾積可表示為一個二維表。表中的每行對應一個元組,表中的每列對應一個域。笛卡爾積(CartesianProduct)17笛卡爾積可表示為一個二維表。表中的每行對應一個元組,表中的每
笛卡爾積(CartesianProduct)18笛卡爾積(CartesianProduct)18關系(Relation)關系D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的關系,表示為
R(D1,D2,…,Dn)
R:關系名
n:關系的目或度(Degree)19關系(Relation)關系D1×D2×…
關系(Relation)D1×D2×D3={(張清玫,計算機專業(yè),李勇),(張清玫,計算機專業(yè),劉晨),(張清玫,計算機專業(yè),王敏),(張清玫,信息專業(yè),李勇),(張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏),(劉逸,計算機專業(yè),李勇),(劉逸,計算機專業(yè),劉晨),(劉逸,計算機專業(yè),王敏),(劉逸,信息專業(yè),李勇),(劉逸,信息專業(yè),劉晨),(劉逸,信息專業(yè),王敏)}從D1×D2×D3中取出有實際意義的元組來構造關系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)假設:導師與專業(yè):1:1導師與研究生:1:nSAP={(張清玫,計算機專業(yè),李勇),(張清玫,計算機專業(yè),劉晨),(劉逸,信息專業(yè),王敏)}20關系(Relation)D1×D2×D3=從D1×D2×關系(Relation)關系中的每個元素是關系中的元組,通常用t表示。關系也是一個二維表,表的每行對應一個元組,表的每列對應一個域。21關系(Relation)關系中的每個元素是關系中的元組,通常關系中不同列可以對應相同的域,為了加以區(qū)分,必須對每列起一個名字,稱為屬性(Attribute)。n目關系必有n個屬性。關系(Relation)22關系中不同列可以對應相同的域,為了加以區(qū)分,必須對每列起一個關系(Relation)候選碼(Candidatekey)若一個關系有多個候選碼,則選定其中一個為主碼(Primarykey)在最簡單的情況下,候選碼只包含一個屬性在最極端的情況下,關系模式的所有屬性組是這個關系模式的候選碼,稱為全碼(All-key)候選碼的諸屬性稱為主屬性(Primeattribute)不包含在任何侯選碼中的屬性稱為非碼屬性(Non-keyattribute)23關系(Relation)候選碼(Candidatekey)關系(Relation)主碼(PrimaryKey)若關系中的某一屬性組的值能唯一地標識一個元組,則稱該屬性組為候選碼24關系(Relation)主碼(PrimaryKey)若關系關系(Relation)三類關系基本關系(基本表或基表)實際存在的表,是實際存儲數(shù)據(jù)的邏輯表示25關系(Relation)三類關系實際存在的表,是實際存儲數(shù)據(jù)關系(Relation)三類關系基本關系(基本表或基表)查詢表查詢結果對應的表26關系(Relation)三類關系查詢結果對應的表26關系(Relation)三類關系基本關系(基本表或基表)查詢表視圖表由基本表或其他視圖表導出的表,是虛表,不對應實際存儲的數(shù)據(jù)27關系(Relation)三類關系由基本表或其他視圖表導出的表關系(Relation)無限關系在數(shù)據(jù)庫系統(tǒng)中是無意義的。因此限定關系必須是有限集合。笛卡爾積不滿足交換律,但關系滿足交換律,即(d1,d2,…,di,dj,…,dn)=(d1,d2,…,dj,di,…,dn)(i,j=1,2,…,n)28關系(Relation)無限關系在數(shù)據(jù)庫系統(tǒng)中是無意義的。因關系(Relation)基本關系的性質列是同質的(Homogeneous)每一列中的分量是同一類型的數(shù)據(jù),來自同一個域。29關系(Relation)基本關系的性質每一列中的分量是同一類關系(Relation)基本關系的性質不同的列可出自同一個域每一列稱為一個屬性。不同的屬性要給予不同的屬性名。30關系(Relation)基本關系的性質每一列稱為一個屬性。3關系(Relation)兩個域:人(PERSON)={張清玫,劉逸,李勇,劉晨,王敏}專業(yè)(SPECIALITY)={計算機專業(yè),信息專業(yè)}SAP關系的導師屬性和研究生屬性都從PERSON域中取值為了避免混淆,必須給這兩個屬性取不同的屬性名,而不能直接使用域名。定義:導師屬性名為SUPERVISOR-PERSON(或SUPERVISOR)研究生屬性名為POSTGRADUATE-PERSON(或POSTGRADUATE)31關系(Relation)兩個域:SAP關系的導師屬性和研究生關系(Relation)基本關系的性質列的順序無所謂遵循這一性質的數(shù)據(jù)庫產(chǎn)品(如ORACLE),增加新屬性時,永遠是插至最后一列。也有許多關系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質,例如FoxPro仍然區(qū)分了屬性順序。32關系(Relation)基本關系的性質遵循這一性質的數(shù)據(jù)庫產(chǎn)關系(Relation)基本關系的性質任意兩個元組的候選碼不能相同33關系(Relation)基本關系的性質33關系(Relation)基本關系的性質行的順序無所謂遵循這一性質的數(shù)據(jù)庫產(chǎn)品(如ORACLE),插入一個元組時永遠插至最后一行。但也有許多關系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質,例如FoxPro仍然區(qū)分了元組的順序。34關系(Relation)基本關系的性質遵循這一性質的數(shù)據(jù)庫產(chǎn)關系(Relation)基本關系的性質分量必須取原子值每一個分量都必須是不可分的數(shù)據(jù)項。35關系(Relation)基本關系的性質每一個分量都必須是不可2.1.2關系模式關系模式是型關系是值362.1.2關系模式關系模式是型362.1.2關系模式關系模式是對關系的描述元組集合的結構元組語義以及完整性約束條件屬性間的數(shù)據(jù)依賴關系集合屬性構成屬性來自的域屬性與域之間的映象關系372.1.2關系模式關系模式是對關系的描述屬性構成372.1.2關系模式關系模式可以形式化地表示為: R(U,D,DOM,F(xiàn))R關系名U組成該關系的屬性名集合D屬性組U中屬性所來自的域DOM屬性向域的映象集合F屬性間的數(shù)據(jù)依賴關系集合382.1.2關系模式關系模式可以形式化地表示為:R2.1.2關系模式例:導師和研究生出自同一個域——人取不同的屬性名,并在模式中定義屬性向域的映象,即說明它們分別出自哪個域。DOM(SUPERVISOR)=DOM(POSTGRADUATE)=PERSON392.1.2關系模式例:導師和研究生出自同一個域——人取不同2.1.2關系模式關系模式通??梢院営洖?/p>
R(U)或
R(A1,A2,…,An)R關系名A1,A2,…,An屬性名注:域名及屬性向域的映象常常直接說明為屬性的類型、長度402.1.2關系模式關系模式通??梢院営洖镽關系名注:2.1.3關系數(shù)據(jù)庫在一個給定的應用領域中,所有實體及實體之間聯(lián)系的關系的集合構成一個關系數(shù)據(jù)庫。412.1.3關系數(shù)據(jù)庫在一個給定的應用領域中,所有實體及實體2.1.3關系數(shù)據(jù)庫關系數(shù)據(jù)庫也有型和值之分關系數(shù)據(jù)庫的型稱為關系數(shù)據(jù)庫模式,是對關系數(shù)據(jù)庫的描述。關系數(shù)據(jù)庫的值是這些關系模式在某一時刻對應的關系的集合,通常簡稱為關系數(shù)據(jù)庫。若干域的定義在這些域上定義的若干關系模式422.1.3關系數(shù)據(jù)庫關系數(shù)據(jù)庫也有型和值之分若干域的定義42.2關系操作2.2.1基本的關系操作2.2.2關系數(shù)據(jù)語言的分類432.2關系操作2.2.1基本的關系操作432.2.1基本的關系操作查詢選擇、投影、連接、除、并、差、交、笛卡爾積等數(shù)據(jù)更新插入、刪除、修改查詢的表達能力是其中最主要的部分442.2.1基本的關系操作查詢查詢的表達能力是其中最主要的部分關系操作的特點集合操作方式,即操作的對象和結果都是集合——一次一集合非關系數(shù)據(jù)模型的數(shù)據(jù)操作方式——一次一記錄2.2.1基本的關系操作45關系操作的特點集合操作方式,即操作的對象和結果都是集合——一關系代數(shù)語言關系演算語言元組關系演算語言域關系演算語言2.2.2關系數(shù)據(jù)語言的分類用對關系的運算來表達查詢要求用謂詞來表達查詢要求46關系代數(shù)語言2.2.2關系數(shù)據(jù)語言的分類用對關系的運算來具有關系代數(shù)和關系演算雙重特點的語言典型代表:SQL(StructuredQueryLanguage)2.2.2關系數(shù)據(jù)語言的分類SQL不僅具有豐富的查詢功能,而且具有數(shù)據(jù)定義和數(shù)據(jù)控制功能。47具有關系代數(shù)和關系演算雙重特點的語言2.2.2關系數(shù)據(jù)語言的2.3.1關系的三類完整性約束2.3.2實體完整性2.3.3參照完整性2.3.4用戶定義的完整性2.3關系的完整性482.3.1關系的三類完整性約束2.3關系的完整性48關系的完整性實體完整性參照完整性用戶定義的完整性2.3.1關系的三類完整性約束關系模型的完整性規(guī)則對關系的某種約束條件關系的兩個不變性應用領域需要遵循的約束條件49關系的完整性2.3.1關系的三類完整性約束關系模型的完整性規(guī)2.3.2實體完整性實體完整性規(guī)則(EntityIntegrity)若屬性(指一個或一組屬性)A是基本關系R的主屬性,則A不能取空值??罩担╪ull)表示“不知道”或“不存在”的值。例如:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)其中POSTGRADUATE為主屬性(假設研究生不會重名),因此不能取空值。502.3.2實體完整性實體完整性規(guī)則(EntityInte2.3.2實體完整性實體完整性規(guī)則規(guī)定基本關系的所有主屬性都不能取空值。例如:選修(學號,課程號,成績)“學號、課程號”為主碼中的主屬性,因此這兩個屬性都不能取空值。512.3.2實體完整性實體完整性規(guī)則規(guī)定基本關系的所有主屬性2.3.2實體完整性遵守實體完整性規(guī)則的原因:實體完整性規(guī)則是針對基本關系而言的。一個基本表通常對應現(xiàn)實世界的一個實體集?,F(xiàn)實世界中的實體是可區(qū)分的,即它們具有某種唯一性標識。相應地,關系模型中以主碼作為唯一性標識如果主屬性取空值,就說明存在某個不可標識的實體,即存在不可區(qū)分的實體,這與第(2)點相矛盾,因此主屬性不能取空值。522.3.2實體完整性遵守實體完整性規(guī)則的原因:實體完整性規(guī)在關系模型中實體及實體間的聯(lián)系都是用關系來描述的,因此存在著關系與關系間的引用。例1:學生實體與專業(yè)實體間的聯(lián)系學生(學號,姓名,性別,專業(yè)號,年齡)專業(yè)(專業(yè)號,專業(yè)名)2.3.3參照完整性53在關系模型中實體及實體間的聯(lián)系都是用關系來描述的,因此存在著2.3.3參照完整性542.3.3參照完整性54例2:學生、課程、學生與課程之間的多對多聯(lián)系學生(學號,姓名,性別,專業(yè)號,年齡)課程(課程號,課程名,學分)選修(學號,課程號,成績)2.3.3參照完整性55例2:學生、課程、學生與課程之間的多對多聯(lián)系學生(學號,姓名
2.3.3參照完整性562.3.3參照完整性56例3:學生實體及其內部的領導聯(lián)系學生(學號,姓名,性別,專業(yè)號,年齡,班長)2.3.3參照完整性57例3:學生實體及其內部的領導聯(lián)系學生(學號,姓名,性別,專業(yè)外碼(ForeignKey)設F是基本關系R的一個或一組屬性,但不是關系R的碼。如果F與基本關系S的主碼Ks相對應,則稱F是基本關系R的外碼?;娟P系R稱為參照關系(ReferencingRelation)基本關系S稱為被參照關系(ReferencedRelation)或目標關系(TargetRelation)2.3.3參照完整性58外碼(ForeignKey)設F是基本關系R的一個或一組屬例1:學生實體與專業(yè)實體間的聯(lián)系學生(學號,姓名,性別,專業(yè)號,年齡)專業(yè)(專業(yè)號,專業(yè)名)2.3.3參照完整性例2:學生、課程、學生與課程之間的多對多聯(lián)系學生(學號,姓名,性別,專業(yè)號,年齡)課程(課程號,課程名,學分)選修(學號,課程號,成績)例3:學生實體及其內部的領導聯(lián)系學生(學號,姓名,性別,專業(yè)號,年齡,班長)59例1:學生實體與專業(yè)實體間的聯(lián)系學生(學號,姓名,性別,專業(yè)2.3.3參照完整性外碼(ForeignKey)目標關系S的主碼Ks和參照關系的外碼F必須定義在同一個(或一組)域上。外碼并不一定要與相應的主碼同名。但當外碼與相應的主碼屬于不同關系時,往往取相同的名字,以便于識別。602.3.3參照完整性外碼(ForeignKey)602.3.3參照完整性參照完整性規(guī)則若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的主碼Ks相對應(基本關系R和S不一定是不同的關系),則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值)或者等于S中某個元組的主碼值。612.3.3參照完整性參照完整性規(guī)則若屬性(或屬性組)F是基本2.3.3參照完整性學生關系中每個元組的“專業(yè)號”屬性只取下面兩類值:(1)空值,表示尚未給該學生分配專業(yè);(2)非空值,這時該值必須是專業(yè)關系中某個元組的“專業(yè)號”值,表示該學生不可能分配到一個不存在的專業(yè)中。例1:學生(學號,姓名,性別,專業(yè)號,年齡)專業(yè)(專業(yè)號,專業(yè)名)622.3.3參照完整性學生關系中每個元組的“專業(yè)號”屬性只取下2.3.3參照完整性例2:學生(學號,姓名,性別,專業(yè)號,年齡)課程(課程號,課程名,學分)選修(學號,課程號,成績)“學號”和“課程號”是選修關系中的主屬性,只能取相應被參照關系中已經(jīng)存在的主碼值。632.3.3參照完整性例2:“學號”和“課程號”是選修關系中的2.3.3參照完整性例3:學生(學號,姓名,性別,專業(yè)號,年齡,班長)(1)空值,表示該學生所在班級尚未選出班長;(2)非空值,這時該值必須是本關系中某個元組的學號值?!鞍嚅L”屬性值可以取兩類值:642.3.3參照完整性例3:(1)空值,表示該學生所在班級尚未2.3.4用戶定義的完整性用戶定義的完整性是針對某一具體關系數(shù)據(jù)庫的約束條件,反映某一具體應用所涉及的數(shù)據(jù)必須滿足的語義要求。652.3.4用戶定義的完整性用戶定義的完整性是針對某一具體關系2.3.4用戶定義的完整性例如:課程(課程號,課程名,學分)用戶定義的完整性規(guī)則:“課程名”屬性必須取唯一值“課程名”屬性也不能取空值“學分”屬性只能取值{1,2,3,4}662.3.4用戶定義的完整性例如:課程(課程號,課程名,學分)2.3.4用戶定義的完整性關系模型應提供定義和檢驗這類完整性的機制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應用程序承擔這一功能。672.3.4用戶定義的完整性關系模型應提供定義和檢驗這類完整性Congratulations!68Congratulations!68數(shù)據(jù)庫系統(tǒng)原理
ThePrincipleofDatabaseSystem第2章關系代數(shù)(1)數(shù)據(jù)庫系統(tǒng)原理
ThePrincipleofDatab第2章關系數(shù)據(jù)庫2.1關系數(shù)據(jù)結構及形式化定義2.2關系操作2.3關系的完整性70第2章關系數(shù)據(jù)庫2.1關系數(shù)據(jù)結構及形式化定義2第2章關系數(shù)據(jù)庫1970年的6月,EdgarFrankCodd在CommunicationsofACM上發(fā)表了ARelationalModelofDataforLargeSharedDataBanks(大型共享數(shù)據(jù)庫數(shù)據(jù)的關系模型)1973年IBM啟動了SystemR的項目,研究關系型數(shù)據(jù)庫的實際可行性1979年,RSI發(fā)布了可用于DECPDP-11計算機上的商用ORACLE產(chǎn)品71第2章關系數(shù)據(jù)庫1970年的6月,EdgarFrank第2章關系數(shù)據(jù)庫左起EdOates、BruceScott、BobMiner、LarryEllison72第2章關系數(shù)據(jù)庫左起EdOates、BruceSco2.1關系數(shù)據(jù)結構及形式化定義關系數(shù)據(jù)庫系統(tǒng)關系模型的組成支持關系模型的數(shù)據(jù)庫系統(tǒng)關系數(shù)據(jù)結構關系操作集合關系完整性約束732.1關系數(shù)據(jù)結構及形式化定義關系數(shù)據(jù)庫系統(tǒng)支持關系模型的數(shù)2.1關系數(shù)據(jù)結構及形式化定義2.1.1關系2.1.2關系模式2.1.3關系數(shù)據(jù)庫742.1關系數(shù)據(jù)結構及形式化定義2.1.1關系62.1.1關系單一的數(shù)據(jù)結構----關系現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關系來表示數(shù)據(jù)的邏輯結構----二維表從用戶角度看,關系模型中數(shù)據(jù)的邏輯結構是一張二維表752.1.1關系單一的數(shù)據(jù)結構----關系72.1.1關系關系模型建立在集合代數(shù)的基礎上從集合論角度給出關系數(shù)據(jù)結構的形式化定義域笛卡爾積關系762.1.1關系關系模型建立在集合代數(shù)的基礎上8域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合。例如:整數(shù)、實數(shù)[1,10]之間的整數(shù)長度為8的字符串集合{‘男’,‘女’}介于2007年7月1日到2008年2月29日之間的日期77域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合。例如:笛卡爾積(CartesianProduct)笛卡爾積域上面的一種集合運算。給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}所有域的所有取值的一個組合不能重復78笛卡爾積(CartesianProduct)笛卡爾積域上面給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}例:給出三個域D1=SUPERVISOR={張清玫,劉逸}D2=SPECIALITY={計算機專業(yè),信息專業(yè)}D3=POSTGRADUATE={李勇,劉晨,王敏}D1×D2×D3=?笛卡爾積(CartesianProduct)79給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D1×D2×D3={(張清玫,計算機專業(yè),李勇),(張清玫,計算機專業(yè),劉晨),(張清玫,計算機專業(yè),王敏),(張清玫,信息專業(yè),李勇),(張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏),(劉逸,計算機專業(yè),李勇),(劉逸,計算機專業(yè),劉晨),(劉逸,計算機專業(yè),王敏),(劉逸,信息專業(yè),李勇),(劉逸,信息專業(yè),劉晨),(劉逸,信息專業(yè),王敏)}D1=SUPERVISOR={張清玫,劉逸}D2=SPECIALITY={計算機專業(yè),信息專業(yè)}D3=POSTGRADUATE={李勇,劉晨,王敏}笛卡爾積(CartesianProduct)80D1×D2×D3=D1=SUPERVISOR笛卡爾積(Ca元組(Tuple)笛卡爾積中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple)或簡稱元組。D1×D2×D3={(張清玫,計算機專業(yè),李勇),(張清玫,計算機專業(yè),劉晨),(張清玫,計算機專業(yè),王敏),(張清玫,信息專業(yè),李勇),(張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏),……}笛卡爾積(CartesianProduct)81元組(Tuple)笛卡爾積中每一個元素(d1,d2,…分量(Component)笛卡爾積元素(d1,d2,…,dn)中的每一個值di叫作一個分量。D1×D2×D3={(張清玫,計算機專業(yè),李勇),(張清玫,計算機專業(yè),劉晨),(張清玫,計算機專業(yè),王敏),(張清玫,信息專業(yè),李勇),(張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏),……}笛卡爾積(CartesianProduct)82分量(Component)笛卡爾積元素(d1,d2,…,dn基數(shù)(Cardinalnumber)若Di(i=1,2,…,n)為有限集,其基數(shù)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)M為:笛卡爾積(CartesianProduct)83基數(shù)(Cardinalnumber)若Di(i=1,2,…笛卡爾積(CartesianProduct)D1×D2×D3={(張清玫,計算機專業(yè),李勇),(張清玫,計算機專業(yè),劉晨),(張清玫,計算機專業(yè),王敏),(張清玫,信息專業(yè),李勇),(張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏),(劉逸,計算機專業(yè),李勇),(劉逸,計算機專業(yè),劉晨),(劉逸,計算機專業(yè),王敏),(劉逸,信息專業(yè),李勇),(劉逸,信息專業(yè),劉晨),(劉逸,信息專業(yè),王敏)}D1=SUPERVISOR={張清玫,劉逸}D2=SPECIALITY={計算機專業(yè),信息專業(yè)}D3=POSTGRADUATE={李勇,劉晨,王敏}D1×D2×D3的基數(shù):2×2×3=12即共有12個元組84笛卡爾積(CartesianProduct)D1×D2×D笛卡爾積可表示為一個二維表。表中的每行對應一個元組,表中的每列對應一個域。笛卡爾積(CartesianProduct)85笛卡爾積可表示為一個二維表。表中的每行對應一個元組,表中的每
笛卡爾積(CartesianProduct)86笛卡爾積(CartesianProduct)18關系(Relation)關系D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的關系,表示為
R(D1,D2,…,Dn)
R:關系名
n:關系的目或度(Degree)87關系(Relation)關系D1×D2×…
關系(Relation)D1×D2×D3={(張清玫,計算機專業(yè),李勇),(張清玫,計算機專業(yè),劉晨),(張清玫,計算機專業(yè),王敏),(張清玫,信息專業(yè),李勇),(張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏),(劉逸,計算機專業(yè),李勇),(劉逸,計算機專業(yè),劉晨),(劉逸,計算機專業(yè),王敏),(劉逸,信息專業(yè),李勇),(劉逸,信息專業(yè),劉晨),(劉逸,信息專業(yè),王敏)}從D1×D2×D3中取出有實際意義的元組來構造關系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)假設:導師與專業(yè):1:1導師與研究生:1:nSAP={(張清玫,計算機專業(yè),李勇),(張清玫,計算機專業(yè),劉晨),(劉逸,信息專業(yè),王敏)}88關系(Relation)D1×D2×D3=從D1×D2×關系(Relation)關系中的每個元素是關系中的元組,通常用t表示。關系也是一個二維表,表的每行對應一個元組,表的每列對應一個域。89關系(Relation)關系中的每個元素是關系中的元組,通常關系中不同列可以對應相同的域,為了加以區(qū)分,必須對每列起一個名字,稱為屬性(Attribute)。n目關系必有n個屬性。關系(Relation)90關系中不同列可以對應相同的域,為了加以區(qū)分,必須對每列起一個關系(Relation)候選碼(Candidatekey)若一個關系有多個候選碼,則選定其中一個為主碼(Primarykey)在最簡單的情況下,候選碼只包含一個屬性在最極端的情況下,關系模式的所有屬性組是這個關系模式的候選碼,稱為全碼(All-key)候選碼的諸屬性稱為主屬性(Primeattribute)不包含在任何侯選碼中的屬性稱為非碼屬性(Non-keyattribute)91關系(Relation)候選碼(Candidatekey)關系(Relation)主碼(PrimaryKey)若關系中的某一屬性組的值能唯一地標識一個元組,則稱該屬性組為候選碼92關系(Relation)主碼(PrimaryKey)若關系關系(Relation)三類關系基本關系(基本表或基表)實際存在的表,是實際存儲數(shù)據(jù)的邏輯表示93關系(Relation)三類關系實際存在的表,是實際存儲數(shù)據(jù)關系(Relation)三類關系基本關系(基本表或基表)查詢表查詢結果對應的表94關系(Relation)三類關系查詢結果對應的表26關系(Relation)三類關系基本關系(基本表或基表)查詢表視圖表由基本表或其他視圖表導出的表,是虛表,不對應實際存儲的數(shù)據(jù)95關系(Relation)三類關系由基本表或其他視圖表導出的表關系(Relation)無限關系在數(shù)據(jù)庫系統(tǒng)中是無意義的。因此限定關系必須是有限集合。笛卡爾積不滿足交換律,但關系滿足交換律,即(d1,d2,…,di,dj,…,dn)=(d1,d2,…,dj,di,…,dn)(i,j=1,2,…,n)96關系(Relation)無限關系在數(shù)據(jù)庫系統(tǒng)中是無意義的。因關系(Relation)基本關系的性質列是同質的(Homogeneous)每一列中的分量是同一類型的數(shù)據(jù),來自同一個域。97關系(Relation)基本關系的性質每一列中的分量是同一類關系(Relation)基本關系的性質不同的列可出自同一個域每一列稱為一個屬性。不同的屬性要給予不同的屬性名。98關系(Relation)基本關系的性質每一列稱為一個屬性。3關系(Relation)兩個域:人(PERSON)={張清玫,劉逸,李勇,劉晨,王敏}專業(yè)(SPECIALITY)={計算機專業(yè),信息專業(yè)}SAP關系的導師屬性和研究生屬性都從PERSON域中取值為了避免混淆,必須給這兩個屬性取不同的屬性名,而不能直接使用域名。定義:導師屬性名為SUPERVISOR-PERSON(或SUPERVISOR)研究生屬性名為POSTGRADUATE-PERSON(或POSTGRADUATE)99關系(Relation)兩個域:SAP關系的導師屬性和研究生關系(Relation)基本關系的性質列的順序無所謂遵循這一性質的數(shù)據(jù)庫產(chǎn)品(如ORACLE),增加新屬性時,永遠是插至最后一列。也有許多關系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質,例如FoxPro仍然區(qū)分了屬性順序。100關系(Relation)基本關系的性質遵循這一性質的數(shù)據(jù)庫產(chǎn)關系(Relation)基本關系的性質任意兩個元組的候選碼不能相同101關系(Relation)基本關系的性質33關系(Relation)基本關系的性質行的順序無所謂遵循這一性質的數(shù)據(jù)庫產(chǎn)品(如ORACLE),插入一個元組時永遠插至最后一行。但也有許多關系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質,例如FoxPro仍然區(qū)分了元組的順序。102關系(Relation)基本關系的性質遵循這一性質的數(shù)據(jù)庫產(chǎn)關系(Relation)基本關系的性質分量必須取原子值每一個分量都必須是不可分的數(shù)據(jù)項。103關系(Relation)基本關系的性質每一個分量都必須是不可2.1.2關系模式關系模式是型關系是值1042.1.2關系模式關系模式是型362.1.2關系模式關系模式是對關系的描述元組集合的結構元組語義以及完整性約束條件屬性間的數(shù)據(jù)依賴關系集合屬性構成屬性來自的域屬性與域之間的映象關系1052.1.2關系模式關系模式是對關系的描述屬性構成372.1.2關系模式關系模式可以形式化地表示為: R(U,D,DOM,F(xiàn))R關系名U組成該關系的屬性名集合D屬性組U中屬性所來自的域DOM屬性向域的映象集合F屬性間的數(shù)據(jù)依賴關系集合1062.1.2關系模式關系模式可以形式化地表示為:R2.1.2關系模式例:導師和研究生出自同一個域——人取不同的屬性名,并在模式中定義屬性向域的映象,即說明它們分別出自哪個域。DOM(SUPERVISOR)=DOM(POSTGRADUATE)=PERSON1072.1.2關系模式例:導師和研究生出自同一個域——人取不同2.1.2關系模式關系模式通??梢院営洖?/p>
R(U)或
R(A1,A2,…,An)R關系名A1,A2,…,An屬性名注:域名及屬性向域的映象常常直接說明為屬性的類型、長度1082.1.2關系模式關系模式通??梢院営洖镽關系名注:2.1.3關系數(shù)據(jù)庫在一個給定的應用領域中,所有實體及實體之間聯(lián)系的關系的集合構成一個關系數(shù)據(jù)庫。1092.1.3關系數(shù)據(jù)庫在一個給定的應用領域中,所有實體及實體2.1.3關系數(shù)據(jù)庫關系數(shù)據(jù)庫也有型和值之分關系數(shù)據(jù)庫的型稱為關系數(shù)據(jù)庫模式,是對關系數(shù)據(jù)庫的描述。關系數(shù)據(jù)庫的值是這些關系模式在某一時刻對應的關系的集合,通常簡稱為關系數(shù)據(jù)庫。若干域的定義在這些域上定義的若干關系模式1102.1.3關系數(shù)據(jù)庫關系數(shù)據(jù)庫也有型和值之分若干域的定義42.2關系操作2.2.1基本的關系操作2.2.2關系數(shù)據(jù)語言的分類1112.2關系操作2.2.1基本的關系操作432.2.1基本的關系操作查詢選擇、投影、連接、除、并、差、交、笛卡爾積等數(shù)據(jù)更新插入、刪除、修改查詢的表達能力是其中最主要的部分1122.2.1基本的關系操作查詢查詢的表達能力是其中最主要的部分關系操作的特點集合操作方式,即操作的對象和結果都是集合——一次一集合非關系數(shù)據(jù)模型的數(shù)據(jù)操作方式——一次一記錄2.2.1基本的關系操作113關系操作的特點集合操作方式,即操作的對象和結果都是集合——一關系代數(shù)語言關系演算語言元組關系演算語言域關系演算語言2.2.2關系數(shù)據(jù)語言的分類用對關系的運算來表達查詢要求用謂詞來表達查詢要求114關系代數(shù)語言2.2.2關系數(shù)據(jù)語言的分類用對關系的運算來具有關系代數(shù)和關系演算雙重特點的語言典型代表:SQL(StructuredQueryLanguage)2.2.2關系數(shù)據(jù)語言的分類SQL不僅具有豐富的查詢功能,而且具有數(shù)據(jù)定義和數(shù)據(jù)控制功能。115具有關系代數(shù)和關系演算雙重特點的語言2.2.2關系數(shù)據(jù)語言的2.3.1關系的三類完整性約束2.3.2實體完整性2.3.3參照完整性2.3.4用戶定義的完整性2.3關系的完整性1162.3.1關系的三類完整性約束2.3關系的完整性48關系的完整性實體完整性參照完整性用戶定義的完整性2.3.1關系的三類完整性約束關系模型的完整性規(guī)則對關系的某種約束條件關系的兩個不變性應用領域需要遵循的約束條件117關系的完整性2.3.1關系的三類完整性約束關系模型的完整性規(guī)2.3.2實體完整性實體完整性規(guī)則(EntityIntegrity)若屬性(指一個或一組屬性)A是基本關系R的主屬性,則A不能取空值??罩担╪ull)表示“不知道”或“不存在”的值。例如:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)其中POSTGRADUATE為主屬性(假設研究生不會重名),因此不能取空值。1182.3.2實體完整性實體完整性規(guī)則(EntityInte2.3.2實體完整性實體完整性規(guī)則規(guī)定基本關系的所有主屬性都不能取空值。例如:選修(學號,課程號,成績)“學號、課程號”為主碼中的主屬性,因此這兩個屬性都不能取空值。1192.3.2實體完整性實體完整性規(guī)則規(guī)定基本關系的所有主屬性2.3.2實體完整性遵守實體完整性規(guī)則的原因:實體完整性規(guī)則是針對基本關系而言的。一個基本表通常對應現(xiàn)實世界的一個實體集。現(xiàn)實世界中的實體是可區(qū)分的,即它們具有某種唯一性標識。相應地,關系模型中以主碼作為唯一性標識如果主屬性取空值,就說明存在某個不可標識的實體,即存在不可區(qū)分的實體,這與第(2)點相矛盾,因此主屬性不能取空值。1202.3.2實體完整性遵守實體完整性規(guī)則的原因:實體完整性規(guī)在關系模型中實體及實體間的聯(lián)系都是用關系來描述的,因此存在著關系與關系間的引用。例1:學生實體
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年數(shù)碼相機贈與合同
- 2024-2030年豆腐乳行業(yè)風險投資態(tài)勢及投融資策略指引報告
- 2024中國建筑裝飾及水暖管道零件制造市場前景及投資研究報告
- 2025年中國替羅非班未來發(fā)展趨勢分析及投資規(guī)劃建議研究報告
- 2024-2030年中國盾構刀具行業(yè)市場全景監(jiān)測及投資前景展望報告
- 2025年塑料泡綿行業(yè)深度研究分析報告
- 2025年中國土霉素片行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年植物新品種保險合同
- 2025年房屋買賣合同終止協(xié)議
- 2025年PVC夾克行業(yè)深度研究分析報告
- 人教版高中生物學新舊教材知識差異盤點
- 四年級四年級下冊閱讀理解20篇(附帶答案解析)經(jīng)典
- 大連高新區(qū)整體發(fā)展戰(zhàn)略規(guī)劃(產(chǎn)業(yè)及功能布局)
- 國有資產(chǎn)管理法律責任與風險防控
- 未婚生子的分手協(xié)議書
- 變更監(jiān)事章程修正案范例
- 北京小客車指標租賃協(xié)議五篇
- 輸液室運用PDCA降低靜脈輸液患者外滲的發(fā)生率品管圈(QCC)活動成果
- YY/T 0681.2-2010無菌醫(yī)療器械包裝試驗方法第2部分:軟性屏障材料的密封強度
- 煙氣管道阻力計算
- 城鄉(xiāng)環(huán)衛(wèi)一體化保潔服務迎接重大節(jié)日、活動的保障措施
評論
0/150
提交評論