




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
11.3關系模型2本節主要講述:1.3.1關系模型的數據結構1.3.2關系的數學定義1.3.3關系的性質1.3.4關系的碼1.3.5關系數據庫模式與關系數據庫1.3.6關系運算1.3.7關系代數31.3.1關系模型
關系模型就是用二維表格結構來表示實體及實體之間聯系的模型。關系模型是由若干個關系模式組成的集合。在建立關系模型時,只要把所有的實體及其屬性用關系模式來表示,同時把實體之間的聯系也用關系模式來表示,就可以得到一個關系模型。41.3.2關系的數學定義一、域(Domain)域是一組具有相同數據類型的值的集合,又稱為值域。(用D表示)例如整數、實數、字符串的集合。域中所包含的值的個數稱為域的基數(用m表示)。例如:D1={李力,王平,劉偉} m1=3 D2={男,女} m2=2 D3={47,28,30} m3=3 其中,D1,D2,D3為域名,分別表示教師關系中姓名、性別、年齡的集合。域的值無排列次序,如D2={男,女}={女,男}關系中用域表示屬性的取值范圍5二、笛卡爾積(CartesianProduct)給定一組域D1,D2,…,Dn(它們可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,…,Dn的笛卡爾積為D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。由定義可以看出,笛卡爾積也是一個集合。例如:上述表示教師關系中姓名、性別兩個域的笛卡爾積為:D1={李力,王平,劉偉}D2={男,女}D1×D2={(李力,男),(李力,女),(王平,男),(王平,女),(劉偉,男),(劉偉,女)}6D1={李力,王平,劉偉}D2={男,女}笛卡爾積(CartesianProduct)給定一組域D1,D2,…,Dn(它們可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,…,Dn的笛卡爾積為D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。其中:1.元素中的每一個di叫做一個分量(Component),來自相應的域(di∈Di)2.每一個元素(d1,d2,d3,…,dn)叫做一個n元組(n-tuple),簡稱元組(Tuple)。但元組不是di的集合,元組的每個分量(di)是按序排列的。如:(1,2,3)≠(2,3,1)≠(1,3,2)而集合中的元素是沒有排序次序的,如(1,2,3)=(2,3,1)=(1,3,2)。其中:李力、王平、劉偉、男、女都是分量(李力,男),(李力,女)等是元組3.若Di(i=1,2,……n)為有限集,Di中的集合元素個數稱為Di的基數,用mi(i=1,2,……n)表示,則笛卡爾積D1×D2×……×Dn的基數M(即元素(d1,d2,……dn)的個數)為所有域的基數的累積?;鶖礛=m1×m2=3*2=6元組的個數為6例如:上述表示教師關系中姓名、性別兩個域的笛卡爾積為:即
M=94.笛卡爾積可用二維表的形式表示。例如,上述的6個元組可表示成下表。姓名性別李力男李力女王平男王平女劉偉男劉偉女D1D2笛卡爾積實際是一個二維表,表的框架由域構成,表的任意一行就是一個元組,表中的每一列來自同一域,如第一個分量來自D1,第二個分量來自D2。D1和D2的笛卡爾積10三、關系的數學定義(Relation)笛卡爾積D1×D2×…×Dn的任一子集稱為定義在域D1,D2,…Dn上的n元關系(Relation),可用
R(D1,D2……Dn)表示如上例D1×D2笛卡爾積的子集可以構成教師關系T。姓名性別李力男王平女劉偉男幾點說明:1.
R為關系名,n稱為關系的目或度(Degree)。當n=1時,稱為單元關系。當n=2時,稱為二元關系?!攏=n時,稱為n元關系。112.關系中元組個數是關系的基數。如果一個關系的元組個數是無限的,則稱為無限關系;如果一個關系的元組個數是有限的,則稱為有限關系。3.
同樣可以把關系看成一個二維表。其中,(1)表的框架由域Di(i=1,2,……n)構成;(2)表的任意一行對應一個元組;(3)表的每一列來自同一域;(4)域可以相同,為了加以區別,每列起一個名字,稱為屬性,n目關系有n個屬性,屬性的名字唯一,屬性的取值范圍Di(i=1,2,…,n)稱為值域用Ai表示4.關系的定義:定義在域D1,D2……Dn上的關系由關系頭和關系體組成:
關系頭:是屬性A1,A2……An的集合;
關系體:是元組的集合。具有相同關系框架的關系稱為同類關系,例如,有另一個關系T2,如表所示:T212姓名性別張雪女張蘭女T1和T2是同類關系135.數學上關系是笛卡爾積的任意子集,但在實際應用中關系是笛卡爾積中所取的有意義的子集。姓名性別李力男李力女表不符合實際情況141.3.3關系的性質1.關系中不允許出現相同的元組。2.關系中元組的順序(即行序)是無關緊要的,在一個關系中可以任意交換兩行的次序。根據關系的這個性質,可以改變元組的順序使其具有某種排序,然后按照順序查詢數據,可以提高查詢速度。153.關系中屬性的順序是無關緊要的:即列的順序可以任意交換。交換時,應連同屬性名一起交換,否則將得到不同的關系。例如:關系T作如表1所示的交換時,無任何影響而作如表2所示的交換時,不交換屬性名,只交換屬性列中的值,則得到不同的關系。性別姓名男李力女王平男劉偉姓名性別男李力女王平男劉偉表1表2164.同一屬性名下的各個屬性值必須來自同一個域:是同一類型的數據。5.關系中各個屬性必須有不同的名字:不同的屬性可來自同一個域,即它們的分量可以取自同一個域。姓名職業兼職張強教師輔導員王麗工人教師劉寧教師輔導員職業與兼職是兩個不同的屬性,它們取自同一個域:職業={教師,工人,輔導員}。176.所有的屬性值都是原子的,元組中每一分量必須是不可分的數據項,即不可“表中有表”。滿足上述條件的關系稱為規范化關系,否則稱為非規范化關系。姓名籍貫省市/縣張強吉林長春王麗山西大同姓名省市/縣張強吉林長春王麗山西大同表1表2181.3.4關系的碼一、候選碼與主碼1.候選碼:能唯一標識關系中元組的屬性或屬性集,則稱該屬性或屬性集為候選碼(CandidateKey),也稱候選鍵,關系鍵。如:候選碼候選碼19下面給出候選碼的形式化定義:設關系R有屬性A1,A2,……An,其屬性集K=(Ai,Aj,……Ak),當且僅當滿足下列條件時,K被稱為候選碼:
1.唯一性(Uniqueness):關系R的任意兩個不同元組,其屬性集K的值是不同的。
2.最小性(Minimally):組成關系鍵的屬性集(Ai,Aj,……Ak)中,任一屬性都不能從屬性集K中刪掉,否則將破壞唯一性的性質。2.如果一個關系中有多個候選碼,可以從中選擇一個作為查詢、插入或刪除元組的操作變量,被選用的候選鍵稱為主碼(PrimaryKey),或稱為主鍵、主關鍵字。20二、主屬性與非主屬性主屬性(PrimeAttribute):包含在主碼中的各屬性稱為主屬性。非主屬性(Non-PrimeAttribute):不包含在任何候選碼中的屬性稱為非主屬性。在最簡單的情況下,一個候選碼只包含一個屬性,如學生關系中的“學號”,教師關系中的“教師號”。在最極終端的情況下,所有屬性的組合是關系的候選碼,這時稱為全碼(all-key)。21一個老師可以指導多個學生,一個學生的導師可以有多個。學生姓名指導教師李陽王名李陽李斌張浩王名張浩李斌全鍵22三、外碼(Foreignkey)
如果關系R2的一個或一組屬性X不是R2的主碼,而是另一關系R1的主碼,則該屬性或屬性組X稱為關系R2的外碼或外部關系鍵。并稱關系R2為參照關系(referencingrelation),關系R1為被參照關系(referencedrelation)。參照關系被參照關系學生選課由外部關系鍵的定義可知,被參照關系的主碼和參照關系的外碼必須定義在同一個域上。R2R123同一關系內部屬性間也可能存在參照關系。例:職工(職工號,姓名,性別,部門領導號)外碼外碼并不一定要與相應的主碼同名:習慣上,當外碼與相應的主碼屬于不同的關系時,取相同的名字。24四、關系模型的完整性關系模型的三類完整性:實體完整性參照完整性用戶定義的完整性25例如,學生關系中的屬性“學號”可以唯一標識一個元組,也可以唯一標識學生實體。不能為空不能部分為空1.實體完整性(EntityIntegrity)實體完整性是指主碼的值不能為空或不能部分為空。262.
參照完整性(Referentialintegrity)如果關系R2的外碼X與關系R1的主碼相符,則X的每個值或者等于R1中主碼的某一個值,或者取空值。SNO學號SN姓名SEX性別AGE年齡DEPT所在系S1趙亦女17計算機S2錢爾男18信息…
S11王威男19
S(學生關系)D(系別關系)DEPT所在系ADDR地址計算機1號樓自動化1號樓
信息2號樓空值R1R227學生
選課例:學號是學生關系的主鍵,在選課關系中,學號能不能取空值?283.用戶定義完整性(User-definedIntegrity)用戶定義完整性是針對某一具體關系數據庫的約束條件。它反映某一具體應用所涉及的數據必須滿足的語義要求。例如,屬性值根據實際需要,要具備一些約束條件,如選課關系中成績不能為負數;某些數據的輸入格式要有一些限制等。291.3.5關系數據庫模式與關系數據庫一、關系模式(RelationSchema):1.定義:一個關系的屬性名表(集合)R(A1,A2,…,An)叫做關系模式,其中
R為關系名;A1,A2,…,An為屬性名。二、關系數據庫(RelationDatabase)一組隨時間變化的,具有各種度的規范化關系的集合。關系頭2.關系數據庫模式:一組關系模式的集合。3.關系數據庫的內容:對應于關系數據庫模式的當前值,也稱關系數據庫的實例。關系體關系數據庫由一組關系頭的集合及其關系體的集合組成。30例如教學數據庫中,共有五個關系,其關系模式分別學生(學號,姓名,性別,年齡,系別)教師(教師號,姓名,性別,年齡,系別)課程(課程號,課程名,課時)選課(學號,課程號,成績)授課(教師號,課程號)31在每個關系中,又有其相應的數據庫的實例
S1趙亦女17計算機S2錢爾男18信息S3孫珊女20信息S4李思男21自動化S5周武男19計算機S6吳麗女20自動化與學生關系模式對應的數據庫中的實例321.3.6關系運算關系數據語言的種類關系數據語言關系代數語言關系演算語言具有關系代數和關系演算雙重特點的語言元組關系演算語言域關系演算語言ISBL(InformationSystemBaseLanguage)QUELQBESQL33一、關系代數的分類及其運算符關系代數的運算對象是關系,運算結果也是關系,關系代數用到的運算符主要包括四類:集合運算符:∪(并),-(差),∩(交),×(廣義笛卡爾積);專門的關系運算符:σ(選取),∏(投影),∞(連接),*(自然連接),÷(除);算術比較運算符:>(大于),≥(大于等于),<(小于),≤(小于等于),=(等于),≠(不等于);邏輯運算符:∧(AND與),∨(OR或),┐(NOT非)1.3.7關系代數34關系代數的運算按運算符的不同主要分為兩類:傳統的集合運算:∪(并),-(差),∩(交),×(廣義笛卡爾積);專門的關系運算:
σ(選擇),∏(投影),∞(連接),*(自然連接),÷(除)35二、傳統的集合運算對參加運算的關系有什么要求呢?下面先看一個定義。定義設給定兩個關系R、S,若滿足:具有相同的度n;R中第i個屬性和S中第i個屬性必須來自同一個域。則說關系R、S是相容的。除笛卡爾積外,要求參加運算的關系必須滿足上述的相容性定義。361.并(Union)關系R和關系S的并由屬于R或屬于S的元組組成,即R和S的所有元組合并,刪去重復元組,組成一個新關系,其結果仍為n目關系。記作:
R∪S={t|t∈R∨t∈S}R
S對于關系數據庫,記錄的插入和添加可通過并運算實現。372.差(Difference)關系R與關系S的差由屬于R而不屬于S的所有元組組成,即R中刪去與S中相同的元組,組成一個新關系,其結果仍為n目關系。記作:
R-S={t|t∈R∧┐t∈S}R
S通過差運算,可實現關系數據庫
記錄的刪除。383.交(Intersection)關系R與關系S的交由既屬于R又屬于S的元組組成,即R與S中相同的元組,組成一個新關系,其結果仍為n目關系。記作:
R∩S={t|t∈R∧t∈S}R
S如果兩個關系沒有相同的元組,那么它們的交為空(Ф)。兩個關系的并和差運算為基本運算,而交運算為非基本運算,交運算可以用差運算來表示:R∩S=R-(R-S)394.廣義笛卡爾積(ExtendedCartesianProduct)不要求參加運算的兩個關系是同類關系。關系R的目為n,關系S的目為m,則R與S的廣義笛卡爾積為:
R×S={trts|tr∈R,ts∈S}⌒關系的廣義笛卡爾積可用于兩關系的連接操作;連接操作將在后面章節中介紹。結果:它是一個n+m列的元組,前n個分量為R中的一個n元組,后m個分量為S中的一個m元組。
⌒trts=(r1,r2,…,rn,s1,s2,…sm)稱為元組的連串40廣義笛卡兒積運算實例41三、專門的關系運算由于傳統的集合運算,只是從行的角度進行,而要靈活地實現關系數據庫多樣的查詢操作,必須引入專門的關系運算。專門的關系運算:
σ(選擇),∏(投影),∞(連接),*(自然連接),÷(除)42樣板數據庫(學生-課程數據庫)1.選取(Selection)選擇運算是單目運算,是在關系R中選擇滿足給定條件的若干個元組組成一個新的關系,記作:
σF(R)={t|t∈R∧F(t)為真}σ為選取運算符;F為選取的條件:它由運算對象(屬性名、常數、簡單函數)、算術比較運算符(>,≥,<,≤,=,≠)和邏輯運算符(∨∧┐)連接起來的邏輯表達式,結果為邏輯值“真”或“假”。θ表示比較運算符,X1和Y1是運算對象基本形式為X1θY1屬性名也可以用它的序號來代替選取運算實際上是從關系R中選取使邏輯表達式為真的元組,是從行的角度進行的運算。472.投影(Projection)關系R上的投影是從R中選擇出若干屬性列,組成新的關系,即對關系在垂直方向進行的運算,從左到右按照指定的若干屬性及順序取出相應列,刪去重復元組。記作:ΠA(R)={t[A]|t∈R}其中A為R中的屬性列,Π為投影運算符。48投影運算可以改變關系的屬性次序
49例4查詢選課關系中有哪些學生選修了課程。ΠSNO(SC)SNO9500195001950019500295002SNO9500195002投影后取消了某些屬性列,就可能出現重復行,應該取消這些完全相同的行。所以投影之后,不但減少了屬性,元組也可能減少,新關系與原關系不相容。SNO95001ΠSNO(σCNO=’1’(SC))本例選取運算和投影運算相結合,先在選課表中選取滿足條件的元組,再于SNO屬性上進行投影例5查詢選修了1號課程的學生學號。51例5查詢選修了1號課程的學生學號。ΠSNO(σCNO=’1’(SC))本例中,能不能改變選取運算與投影運算的次序?問題???SNO9500195002不能改變運算次序52投影運算是從列的角度進行的運算,這正是選取運算和投影運算的區別所在。選取運算是從關系的水平方向上進行運算的,而投影運算則是從關系的垂直方向上進行的。533.連接(Join)連接運算是二目運算,是從兩個關系的笛卡爾積中選取滿足連接條件的元組,組成新的關系。設關系R(A1,A2,……An)及S(B1,B2,……Bm),連接屬性集X包含于{A1,A2,……An},及Y包含于{B1,B2,……Bm},X與Y中屬性列數目相等,且相對應屬性有共同的域。關系R和S在連接屬性X和Y上的連接,就是從R×S笛卡爾積中,選取X屬性列上的分量與Y屬性列上的分量滿足給定θ比較條件的那些元組,組成新的關系。新關系的度為n+m。
若Z={A1,A2……An}/X(/X:去掉X之外的屬性)及W={B1,B2……Bm}/Y,則R及S可表示為R(Z,X),S(W,Y)XY是相容的54記作:RS={|tr∈R∧ts∈S∧tr[X]θts[Y]為真}其中,是連接運算符,θ為算術比較運算符,也稱θ連接;XθY為連接條件;θ為“=”時,稱為等值連接;θ為“<”時,稱為小于連接;θ為“>”時,稱為大于連接。連接運算為非基本運算,可以用選取運算和廣義笛卡爾積運算來表示:RS=σxθy(R×S)trts(55例6如圖所示的兩個關系R與S,求(1)R和S滿足C>D的連接;ABCa1b12a1b24a2b36a2b48BDb15b2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社區綠色生態養殖項目合作框架協議
- 網絡安全協議與通信原理題庫
- 2025年城鄉墻體廣告投放合同
- 自考行政管理本科職業認知試題及答案解析
- 2025年為何要開展技術合同登記
- 2025貨車買賣合同書范文
- 2025年市政學考試的考前復習試題
- 建筑項目的利益相關者管理試題及答案
- 2025船舶租賃合同書
- 2025境外咨詢合同 境外咨詢服務合同
- 2025年四川省成都市錦江區中考二診物理試題(含答案)
- (二模)贛州市2025年高三年級適應性考試英語試卷(含答案)
- 曲靖市社區工作者招聘真題2024
- 2024年新疆阿合奇縣事業單位公開招聘村務工作者筆試題帶答案
- 2025-2030中國胃食管反流藥物行業市場發展趨勢與前景展望戰略研究報告
- 2025年建筑集成光伏(BIPV)市場規模分析
- 小學生脫口秀課件
- 抖音陪跑合同協議
- 高三尖子生、邊緣生輔導方案2
- 2025-2030海工裝備制造行業市場深度調研及前景趨勢與投資研究報告
- 華為測試面試題及答案
評論
0/150
提交評論