關(guān)系數(shù)據(jù)庫設(shè)計(jì)與應(yīng)用(工作手冊式) 課件 第3章 關(guān)系模型_第1頁
關(guān)系數(shù)據(jù)庫設(shè)計(jì)與應(yīng)用(工作手冊式) 課件 第3章 關(guān)系模型_第2頁
關(guān)系數(shù)據(jù)庫設(shè)計(jì)與應(yīng)用(工作手冊式) 課件 第3章 關(guān)系模型_第3頁
關(guān)系數(shù)據(jù)庫設(shè)計(jì)與應(yīng)用(工作手冊式) 課件 第3章 關(guān)系模型_第4頁
關(guān)系數(shù)據(jù)庫設(shè)計(jì)與應(yīng)用(工作手冊式) 課件 第3章 關(guān)系模型_第5頁
已閱讀5頁,還剩101頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第3章

關(guān)系模型工業(yè)和信息化部“十四五”規(guī)劃教材

浙江省高職院校“十四五”首批重點(diǎn)教材《關(guān)系數(shù)據(jù)庫設(shè)計(jì)與應(yīng)用》(工作手冊式)

配套課件學(xué)習(xí)目標(biāo)LEARNINGTARGET掌握關(guān)系模型的基本結(jié)構(gòu)及術(shù)語;掌握關(guān)系模型的數(shù)據(jù)操作;理解關(guān)系模型的完整性約束;掌握E-R模型轉(zhuǎn)換成關(guān)系模型的方法。知識(shí)目標(biāo)能力目標(biāo)會(huì)進(jìn)行關(guān)系的基本運(yùn)算;能將E-R模型轉(zhuǎn)換成關(guān)系模型。思政目標(biāo)培養(yǎng)學(xué)生嚴(yán)謹(jǐn)、認(rèn)真的學(xué)習(xí)態(tài)度;培養(yǎng)規(guī)則意識(shí)和數(shù)據(jù)共享意識(shí)。主要內(nèi)容MAINCONTENTS3.1關(guān)系模型基本結(jié)構(gòu)及術(shù)語3.2關(guān)系模型的數(shù)據(jù)操作3.3關(guān)系的完整性約束*3.4E-R模型轉(zhuǎn)換為關(guān)系模型3.5關(guān)系模型的特點(diǎn)認(rèn)識(shí)關(guān)系模型現(xiàn)實(shí)世界信息世界(概念模型)計(jì)算機(jī)世界(數(shù)據(jù)模型)關(guān)系數(shù)據(jù)庫是目前各類數(shù)據(jù)庫中最重要、最流行的數(shù)據(jù)庫。關(guān)系數(shù)據(jù)模型(或稱關(guān)系模型)屬于邏輯數(shù)據(jù)模型,是對現(xiàn)實(shí)世界的第二層抽象。還有層次模型、網(wǎng)狀模型等,但關(guān)系模型是目前最重要的一種數(shù)據(jù)模型。信息世界:用概念模型(E-R模型)表示對現(xiàn)實(shí)世界的抽象與模擬。計(jì)算機(jī)世界:用DBMS(數(shù)據(jù)庫管理系統(tǒng))支持的數(shù)據(jù)模型表現(xiàn)。認(rèn)識(shí)關(guān)系模型關(guān)系模型的重要性關(guān)系數(shù)據(jù)庫采用關(guān)系模型作為數(shù)據(jù)的組織方式。關(guān)系數(shù)據(jù)庫是支持關(guān)系模型的數(shù)據(jù)庫系統(tǒng)。關(guān)系模型就是用二維表格結(jié)構(gòu)來表示實(shí)體及實(shí)體之間聯(lián)系的數(shù)據(jù)模型。關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和完整性約束三部分組成。關(guān)系模型基本結(jié)構(gòu)及術(shù)語3.1關(guān)系模型基本結(jié)構(gòu)及術(shù)語

關(guān)系模型:關(guān)系模型的結(jié)構(gòu)非常簡單,在關(guān)系模型中,現(xiàn)實(shí)世界中的實(shí)體以及實(shí)體之間的聯(lián)系都通過關(guān)系來表達(dá)。在用戶觀點(diǎn)下,關(guān)系數(shù)據(jù)模型中的邏輯結(jié)構(gòu)是一張二維表,它由行(也稱記錄)和列(也稱屬性)組成。關(guān)系模型基本結(jié)構(gòu)及術(shù)語學(xué)號(hào)姓名性別班級(jí)年齡2021210021江星男大數(shù)據(jù)2101192021210022趙盼男大數(shù)據(jù)2101202021210023劉鵬男大數(shù)據(jù)2101202021210024李鑫女大數(shù)據(jù)210119學(xué)生表屬性名數(shù)據(jù)屬性記錄關(guān)系模型基本結(jié)構(gòu)及術(shù)語關(guān)系模型的基本術(shù)語:1.關(guān)系2.元組3.屬性4.主碼5.主屬性與非主屬性6.域7.分量8.關(guān)系模式9.元數(shù)關(guān)系模型基本結(jié)構(gòu)及術(shù)語1.關(guān)系在關(guān)系模型中,數(shù)據(jù)是以二維表的形式存在的,這個(gè)二維表就叫做關(guān)系。通俗地說,一個(gè)關(guān)系對應(yīng)一張表。每個(gè)關(guān)系都有一個(gè)關(guān)系名。但關(guān)系與傳統(tǒng)的二維表又有區(qū)別:關(guān)系表中的每一列都是不可再分的基本屬性;表中各屬性不能重名;表中的行列次序并不重要,即可以交換行、列的前后順序。關(guān)系模型基本結(jié)構(gòu)及術(shù)語關(guān)系例子1學(xué)生關(guān)系名/表名關(guān)系學(xué)號(hào)姓名性別班級(jí)年齡2021210021江星男大數(shù)據(jù)2101192021210022趙盼男大數(shù)據(jù)2101202021210023劉鵬男大數(shù)據(jù)2101202021210024李鑫女大數(shù)據(jù)210119關(guān)系模型基本結(jié)構(gòu)及術(shù)語關(guān)系例子2姓名性別工資基本工資職務(wù)工資張芳女2000.0800.0王剛男1600.0500.0余梅女1200.0300.0姓名性別基本工資職務(wù)工資

張芳女2000.0800.0王剛男1600.0500.0余梅女1200.0300.0×√關(guān)系模型基本結(jié)構(gòu)及術(shù)語關(guān)系例子3×學(xué)號(hào)姓名性別年齡姓名0101張偉男20張三0102李麗女18李四0103王明男19王五0104趙娟女20趙六關(guān)系模型基本結(jié)構(gòu)及術(shù)語關(guān)系例子4學(xué)號(hào)姓名性別年齡曾用名0101張偉男20張三0102李麗女18李四0103王明男19王五0104趙娟女20趙六學(xué)號(hào)姓名曾用名年齡性別0101張偉張三20男0102李麗李四18女0103王明王五19男0104趙娟趙六20女關(guān)系模型基本結(jié)構(gòu)及術(shù)語2.元組表中的一行即為一個(gè)元組,相當(dāng)于一個(gè)記錄值。3.屬性表中的一列即為一個(gè)屬性,列名即為屬性名。4.主碼主碼(也稱主鍵或主關(guān)鍵字),是表中的屬性或?qū)傩越M,用于唯一確定一個(gè)元組。2021210021江星男大數(shù)據(jù)210119學(xué)號(hào)2021210021202121002220212100232021210024學(xué)號(hào)姓名性別班級(jí)年齡關(guān)系模型基本結(jié)構(gòu)及術(shù)語5.主屬性與非主屬性包含在主碼中的屬性稱主屬性,不包含在主碼中的屬性稱非主屬性。6.域?qū)傩缘娜≈捣秶Q為域。如:“性別”屬性的域是(F、M)。7.分量元組中的一個(gè)屬性值。學(xué)號(hào)姓名性別班級(jí)年齡2021210021江星男大數(shù)據(jù)210119思考題:這一個(gè)元組中有幾個(gè)分量?關(guān)系模型基本結(jié)構(gòu)及術(shù)語8.關(guān)系模式關(guān)系的描述稱為關(guān)系模式,通常情況下,簡記為R(U),其中R為關(guān)系名,U為R中屬性名的集合,表示為:關(guān)系名(屬性1,屬性2,…,屬性n)通篇用到的例子:學(xué)生(學(xué)號(hào),姓名,年齡,性別,班級(jí))課程(課程號(hào),課程名,教師,周課時(shí)數(shù),備注)選課(學(xué)號(hào),課程號(hào),成績)9.元數(shù)(K≥1)在關(guān)系模式中,屬性的個(gè)數(shù)。思考題:學(xué)生關(guān)系中有幾個(gè)元數(shù)?關(guān)系模型基本結(jié)構(gòu)及術(shù)語關(guān)系模型的認(rèn)識(shí)從集合論的觀點(diǎn)關(guān)系是一個(gè)元數(shù)為K(K≥1)的元組的集合。以下認(rèn)識(shí):關(guān)系是元組的集合。關(guān)系模式是命名的屬性集合。元組是屬性值的集合。關(guān)系中的每一個(gè)屬性值都是不可分解的。關(guān)系中不允許出現(xiàn)相同的元組。小結(jié)學(xué)號(hào)姓名性別班級(jí)年齡2021210021江星男大數(shù)據(jù)2101192021210022趙盼男大數(shù)據(jù)2101202021210023劉鵬男大數(shù)據(jù)2101202021210024李鑫女大數(shù)據(jù)210119學(xué)生關(guān)系名/表名關(guān)系主碼D1D2D5D3D4域關(guān)系模式行屬性列元組主屬性本關(guān)系模式如何表示?元數(shù)是多少?5課堂練習(xí)1請分析下表:關(guān)系是指?關(guān)系名是?元組有幾個(gè)?屬性有哪些?元數(shù)是多少?選課表學(xué)號(hào)課程號(hào)成績2021210021474202121002218520212100231932021210024291請寫出上表對應(yīng)的關(guān)系模式。動(dòng)一動(dòng)課堂練習(xí)11.參考答案:關(guān)系是指“選課表”這張表;關(guān)系名是“選課”;元組有“4個(gè)”,即表中4行就是4個(gè)元組;屬性是“學(xué)號(hào)、課程號(hào)、成績“;元數(shù)是“3”。2.上表對應(yīng)的關(guān)系模式:選課(學(xué)號(hào),課程號(hào),成績)。關(guān)系模型的數(shù)據(jù)操作3.2關(guān)系模型的數(shù)據(jù)操作關(guān)系模型的操作對象是集合。即操作的數(shù)據(jù)及操作的結(jié)果都是完整的表。關(guān)系模型中常用的關(guān)系操作包括查詢操作和插入、刪除、修改操作兩大部分。其中查詢操作的表達(dá)能力是最重要的。(包括并、交、差、選擇、投影、連接等。)關(guān)系操作增、刪、改、查關(guān)系模型的數(shù)據(jù)操作在關(guān)系代數(shù)中,變量是關(guān)系,運(yùn)算符操縱關(guān)系的結(jié)果是形成新的關(guān)系。即關(guān)系代數(shù)是封閉的,一個(gè)或多個(gè)關(guān)系操作的結(jié)果仍然是一個(gè)關(guān)系。關(guān)系代數(shù)關(guān)系代數(shù)用到的運(yùn)算符包括四類:集合運(yùn)算符、專門的關(guān)系運(yùn)算符、比較運(yùn)算符和邏輯運(yùn)算符(P49)。關(guān)系模型的數(shù)據(jù)操作關(guān)系代數(shù)關(guān)系代數(shù)運(yùn)算符運(yùn)算符含義集合運(yùn)算符∪-∩并差交專門的關(guān)系運(yùn)算符×÷σ∏?廣義笛卡爾積除選擇投影連接關(guān)系模型的數(shù)據(jù)操作并運(yùn)算差運(yùn)算交運(yùn)算笛卡爾乘積投影選擇連接關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作關(guān)系代數(shù)1.并運(yùn)算兩個(gè)集合R、S的“并”操作,如圖:即求:所有至少出現(xiàn)在兩個(gè)關(guān)系之一中的元組集合。前提:每個(gè)關(guān)系必須要有相同數(shù)目的屬性,而且在對應(yīng)列中的屬性必須是相同的域。兩個(gè)關(guān)系的“并”是指將一個(gè)關(guān)系的元組加到第二個(gè)關(guān)系中,生成新的關(guān)系,新關(guān)系的屬性列數(shù)沒有發(fā)生變化。關(guān)系模型的數(shù)據(jù)操作RelationsR,S:AB

121RAB

23SAB

12123AB

1213=R∪S:1.并運(yùn)算關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作學(xué)號(hào)姓名性別班級(jí)年齡2021210001張燕女大數(shù)據(jù)2102192021210002陳芳女大數(shù)據(jù)2102192021210023劉鵬男大數(shù)據(jù)210120學(xué)號(hào)姓名性別班級(jí)年齡2021210021江星男大數(shù)據(jù)2101192021210022趙盼男大數(shù)據(jù)2101202021210023劉鵬男大數(shù)據(jù)2101202021210024李鑫女大數(shù)據(jù)210119RS學(xué)號(hào)姓名性別班級(jí)年齡2021210001張燕女大數(shù)據(jù)2102192021210002陳芳女大數(shù)據(jù)2102192021210021江星男大數(shù)據(jù)2101192021210022趙盼男大數(shù)據(jù)2101202021210023劉鵬男大數(shù)據(jù)2101202021210024李鑫女大數(shù)據(jù)210119R∪S1.并運(yùn)算關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作2.差運(yùn)算兩個(gè)集合的“差”操作,如圖:即求:所有出現(xiàn)在一個(gè)關(guān)系而不在另一關(guān)系中的元組集合。兩個(gè)集合的“差”操作(R-S)生成一個(gè)新的結(jié)果集,在結(jié)果集中包括所有在集合R中出現(xiàn)而在S中不出現(xiàn)的元數(shù)。關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作2.差運(yùn)算RelationsR,S:AB

121RAB

23SR-S:AB

11=關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作學(xué)號(hào)姓名性別班級(jí)年齡2021210001張燕女大數(shù)據(jù)2102192021210002陳芳女大數(shù)據(jù)2102192021210023劉鵬男大數(shù)據(jù)210120學(xué)號(hào)姓名性別班級(jí)年齡2021210021江星男大數(shù)據(jù)2101192021210022趙盼男大數(shù)據(jù)2101202021210023劉鵬男大數(shù)據(jù)2101202021210024李鑫女大數(shù)據(jù)210119RS學(xué)號(hào)姓名性別年齡籍貫200101張燕女21福建200102陳芳女21江蘇R-S2.差運(yùn)算S-R?注意:減法的順序不同,最后得出的值也不同。學(xué)號(hào)姓名性別年齡籍貫100101江星男21內(nèi)蒙古100102趙盼男21河南100104李鑫女21江西關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作3.交運(yùn)算兩個(gè)集合的“交”操作,如圖:即求:所有同時(shí)出現(xiàn)在兩個(gè)關(guān)系中的元組集合。兩個(gè)集合的“交”操作生成一個(gè)新的結(jié)果集,在結(jié)果集中包括所有在集合R中出現(xiàn)并且在S中也出現(xiàn)的元數(shù)。關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作3.交運(yùn)算RelationsR,S:AB

121RAB

23SR∩S:AB2=關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作學(xué)號(hào)姓名性別班級(jí)年齡2021210001張燕女大數(shù)據(jù)2102192021210002陳芳女大數(shù)據(jù)2102192021210023劉鵬男大數(shù)據(jù)210120學(xué)號(hào)姓名性別班級(jí)年齡2021210021江星男大數(shù)據(jù)2101192021210022趙盼男大數(shù)據(jù)2101202021210023劉鵬男大數(shù)據(jù)2101202021210024李鑫女大數(shù)據(jù)210119RS學(xué)號(hào)姓名性別班級(jí)年齡2021210023劉鵬男大數(shù)據(jù)210120R∩S3.交運(yùn)算關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作課堂練習(xí)RS求:R∪S、R∩S、R-S學(xué)號(hào)課程號(hào)202121002122021210022420212100231學(xué)號(hào)課程號(hào)202121002122021210024320212100253關(guān)系代數(shù)動(dòng)一動(dòng)關(guān)系模型的數(shù)據(jù)操作4.笛卡爾積兩個(gè)關(guān)系的積(也稱笛卡爾乘積)是指第一個(gè)關(guān)系中的每個(gè)元組和第二個(gè)關(guān)系的每個(gè)元組的聯(lián)接。關(guān)系A(chǔ)(含有X個(gè)屬性列,M個(gè)元組)和關(guān)系B(含有Y個(gè)屬性列,N個(gè)元組)的“積”是一個(gè)有X+Y屬性列,有M×N個(gè)元組的關(guān)系?!胺e”記為:A×B或B×A。關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作4.笛卡爾積ABCA1B1C1A2B2C2A3B3C3R1DED1E1D2E2R2A1B1C1D1E1A3B3C3D2E2A1B1C1D2E2A3B3C3D1E1A2B2C2D2E2A2B2C2D1E1ABCDER1×R2:

屬性列:3+2=5,元組=3×2=6關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作課程號(hào)課程名教師周課時(shí)數(shù)備注1關(guān)系數(shù)據(jù)庫應(yīng)用吳老師32Python語言基礎(chǔ)黃老師33大數(shù)據(jù)分析技術(shù)黃老師44數(shù)據(jù)采集與預(yù)處理涂老師4RS4.笛卡爾積學(xué)號(hào)課程號(hào)成績2021210021474202121002218520212100231932021210024291屬性列:5+3=8,元組=4×4=16關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作R×S:4.笛卡爾積課程號(hào)課程名教師周課時(shí)數(shù)備注學(xué)號(hào)課程號(hào)成績1關(guān)系數(shù)據(jù)庫應(yīng)用吳老師420111284741關(guān)系數(shù)據(jù)庫應(yīng)用吳老師420111291931關(guān)系數(shù)據(jù)庫應(yīng)用吳老師420111301741關(guān)系數(shù)據(jù)庫應(yīng)用吳老師420111312842Python語言基礎(chǔ)黃老師420111284742Python語言基礎(chǔ)黃老師420111291932Python語言基礎(chǔ)黃老師420111301742Python語言基礎(chǔ)黃老師420111312843大數(shù)據(jù)分析技術(shù)黃老師220111284743大數(shù)據(jù)分析技術(shù)黃老師220111291933大數(shù)據(jù)分析技術(shù)黃老師220111301743大數(shù)據(jù)分析技術(shù)黃老師220111312844數(shù)據(jù)采集與預(yù)處理涂老師620111284744數(shù)據(jù)采集與預(yù)處理涂老師620111291934數(shù)據(jù)采集與預(yù)處理涂老師620111301744數(shù)據(jù)采集與預(yù)處理涂老師62011131284關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作5.投影投影是從一個(gè)關(guān)系中選擇指定的屬性的操作。投影的結(jié)果是一個(gè)帶有所選屬性的新的關(guān)系。關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系。記作:∏A(R),其中A為R的屬性列。A1A2A3A4A2A4∏關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作5.投影ABC

102030401112AC

1112=AC

112RelationR:

A,C

(R)關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作5.投影課程號(hào)課程名教師周課時(shí)數(shù)備注1關(guān)系數(shù)據(jù)庫應(yīng)用吳老師32Python語言基礎(chǔ)黃老師33大數(shù)據(jù)分析技術(shù)黃老師44數(shù)據(jù)采集與預(yù)處理涂老師4課程表例1:查詢課程表中課程號(hào)、課程名及相應(yīng)的任課教師信息。

∏課程號(hào),課程名,教師(課程表)課程號(hào)課程名教師1關(guān)系數(shù)據(jù)庫應(yīng)用吳老師2Python語言基礎(chǔ)黃老師3大數(shù)據(jù)分析技術(shù)黃老師4數(shù)據(jù)采集與預(yù)處理涂老師例2:查詢課程表中任課教師信息。教師吳老師黃老師涂老師

∏教師(課程表)

注意:投影是取列,其結(jié)果是一個(gè)關(guān)系,不包含任何重復(fù)的元組。關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作6.選擇投影操作取得是在垂直方向上關(guān)系的子集(列),選擇操作取得是水平方向上的關(guān)系子集(行)。投影標(biāo)識(shí)的是新關(guān)系中所包括的屬性,選擇標(biāo)識(shí)的是在新關(guān)系上所包括的元組。在關(guān)系R中選擇滿足給定條件的諸元組,可以表示為:

σ

F(R)。A1A2A3A4σA1A2A3A4關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作6.選擇RelationR:ABCD

A=B

(R)ABCD

112237310關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作6.選擇RelationR:ABCD

A=B^D>5

(R)ABCD

123710關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作課程號(hào)課程名教師周課時(shí)數(shù)備注1關(guān)系數(shù)據(jù)庫應(yīng)用吳老師32Python語言基礎(chǔ)黃老師33大數(shù)據(jù)分析技術(shù)黃老師44數(shù)據(jù)采集與預(yù)處理涂老師4課程表6.選擇例如:查詢周課時(shí)數(shù)為4的課程信息。

周課時(shí)數(shù)=4(課程表)或

4=4(課程表)課程號(hào)課程名教師周課時(shí)數(shù)備注3大數(shù)據(jù)分析技術(shù)黃老師44數(shù)據(jù)采集與預(yù)處理涂老師4關(guān)系代數(shù)其中下角標(biāo)4為“周課時(shí)數(shù)”的屬性列號(hào)關(guān)系模型的數(shù)據(jù)操作課程表6.選擇例如:查詢課程號(hào)大于3的課程信息。

課程號(hào)>3(課程表)或

1>3(課程表)關(guān)系代數(shù)課程號(hào)課程名教師周課時(shí)數(shù)備注1關(guān)系數(shù)據(jù)庫應(yīng)用吳老師32Python語言基礎(chǔ)黃老師33大數(shù)據(jù)分析技術(shù)黃老師44數(shù)據(jù)采集與預(yù)處理涂老師4課程號(hào)課程名教師周課時(shí)數(shù)備注4數(shù)據(jù)采集與預(yù)處理涂老師4關(guān)系模型的數(shù)據(jù)操作6.選擇關(guān)系運(yùn)算的組合關(guān)系運(yùn)算的對象和結(jié)果都是關(guān)系,我們可以把多個(gè)關(guān)系運(yùn)算組合稱一個(gè)關(guān)系代數(shù)表達(dá)式。如:學(xué)生表(學(xué)號(hào),姓名,年齡,性別,班級(jí))例:找出所有年齡大于20歲的學(xué)生姓名:

∏姓名()

年齡>20(學(xué)生表)關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作6.選擇關(guān)系運(yùn)算的組合例:查詢出名叫張三的學(xué)生的性別和年齡。學(xué)生表(學(xué)號(hào),姓名,年齡,性別,班級(jí))∏性別,年齡()

姓名='張三'

(學(xué)生表)關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作6.選擇關(guān)系運(yùn)算的組合例:查詢出名叫張三和張六的學(xué)生的性別和年齡。學(xué)生表(學(xué)號(hào),姓名,年齡,性別,班級(jí))∏性別,年齡()

姓名='張三'∨姓名=‘張六’(學(xué)生表)∏性別,年齡(

姓名='張三'(學(xué)生表)∪

姓名='張六'(學(xué)生表))關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作6.選擇關(guān)系運(yùn)算的組合關(guān)系運(yùn)算的對象和結(jié)果都是關(guān)系,我們可以把多個(gè)關(guān)系運(yùn)算組合稱一個(gè)關(guān)系代數(shù)表達(dá)式。如:學(xué)生表(學(xué)號(hào),姓名,年齡,性別,班級(jí))例1:找出所有年齡大于20歲的學(xué)生姓名。

∏姓名()

年齡>20(學(xué)生表)關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作6.選擇關(guān)系運(yùn)算的組合例2:查詢出名叫張三的學(xué)生的性別和年齡。學(xué)生表(學(xué)號(hào),姓名,年齡,性別,班級(jí))∏性別,年齡()

姓名='張三'

(學(xué)生表)關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作6.選擇關(guān)系運(yùn)算的組合例3:查詢出名叫張三或張六的學(xué)生的性別和年齡。學(xué)生表(學(xué)號(hào),姓名,年齡,性別,班級(jí))∏性別,年齡()

姓名='張三'∨姓名=‘張六’(學(xué)生表)∏性別,年齡(

姓名='張三'(學(xué)生表)∪

姓名='張六'(學(xué)生表))關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作課堂練習(xí)2設(shè)有學(xué)生表、選課表兩個(gè)關(guān)系模式,如下所示:學(xué)生表(學(xué)號(hào),姓名,年齡,性別,班級(jí))選課表(學(xué)號(hào),課程號(hào),成績)請用關(guān)系代數(shù)完成如下運(yùn)算:①查詢每個(gè)學(xué)生的學(xué)號(hào)、姓名和班級(jí)②查詢有成績不及格的課程的課程號(hào)③查詢成績大于90分的學(xué)生的學(xué)號(hào)和課程號(hào)④查詢姓名為“張三”且年齡大于18的學(xué)生的性別和班級(jí)關(guān)系代數(shù)動(dòng)一動(dòng)關(guān)系模型的數(shù)據(jù)操作課堂練習(xí)2答案關(guān)系代數(shù)①查詢每個(gè)學(xué)生的學(xué)號(hào)、姓名和班級(jí)

∏學(xué)號(hào),姓名,班級(jí)(學(xué)生表)②查詢有成績不及格的課程的課程號(hào)

∏課程號(hào)(

成績<60(選課表))③查詢成績大于90分的學(xué)生的學(xué)號(hào)和課程號(hào)

∏學(xué)號(hào),課程號(hào)(

成績>90(選課表))④查詢姓名為“張三”、年齡大于18的學(xué)生的性別和班級(jí)

∏性別,班級(jí)(

姓名=‘張三’^年齡>18(學(xué)生表))關(guān)系模型的數(shù)據(jù)操作6.選擇思考:例:找出所有選擇了“軟件工程”課程的學(xué)生的學(xué)號(hào)。學(xué)生(學(xué)號(hào),姓名,年齡,性別,班級(jí))課程(課程號(hào),課程名,教師,周課時(shí)數(shù),備注)選課(學(xué)號(hào),課程號(hào),成績)∏學(xué)號(hào)(

課程名=‘軟件工程’(課程表))關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作7.連接指從兩個(gè)關(guān)系R,S的廣義笛卡爾積中選取屬性間滿足一定條件的元組,

記為:其中A和B分別為R和S上度數(shù)相等且可比的屬性組,θ為比較運(yùn)算符。R?SAθB連接運(yùn)算中有兩種常用的連接:一種是等值連接,另一種是自然連接。等值連接是從關(guān)系R和S的廣義笛卡爾積中選取A和B屬性相等的元;自然連接是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉。關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作7.連接學(xué)號(hào)姓名年齡所在系98001王平20計(jì)算機(jī)98002李麗21數(shù)學(xué)98003陳紅20計(jì)算機(jī)學(xué)號(hào)課程號(hào)成績98001C19598001C38098003C18598003C275學(xué)生.學(xué)號(hào)姓名年齡所在系選課.學(xué)號(hào)課程號(hào)成績98001王平20計(jì)算機(jī)98001C19598001王平20計(jì)算機(jī)98001C38098001王平20計(jì)算機(jī)98003C18598001王平20計(jì)算機(jī)98003C27598002李麗21數(shù)學(xué)98001C19598002李麗21數(shù)學(xué)98001C38098002李麗21數(shù)學(xué)98003C19598002李麗21數(shù)學(xué)98003C27598003陳紅20計(jì)算機(jī)98001C19598003陳紅20計(jì)算機(jī)98001C38098003陳紅20計(jì)算機(jī)98003C18598003陳紅20計(jì)算機(jī)98003C275學(xué)生選課學(xué)生╳選課步驟一:兩個(gè)關(guān)系R,S的廣義笛卡爾積關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作7.連接學(xué)號(hào)姓名年齡所在系98001王平20計(jì)算機(jī)98002李麗21數(shù)學(xué)98003陳紅20計(jì)算機(jī)學(xué)號(hào)課程號(hào)成績98001C19598001C38098003C18598003C275學(xué)生選課學(xué)生?

選課學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)等值連接學(xué)生.學(xué)號(hào)姓名年齡所在系選課.學(xué)號(hào)課程號(hào)成績98001王平20計(jì)算機(jī)98001C19598001王平20計(jì)算機(jī)98001C38098003陳紅20計(jì)算機(jī)98003C18598003陳紅20計(jì)算機(jī)98003C275步驟二:可選擇的去除一些元組選取A和B屬性相等的元關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作7.連接學(xué)號(hào)姓名年齡所在系98001王平20計(jì)算機(jī)98002李麗21數(shù)學(xué)98003陳紅20計(jì)算機(jī)學(xué)號(hào)課程號(hào)成績98001C19598001C38098003C18598003C275學(xué)生.學(xué)號(hào)姓名年齡所在系選課.學(xué)號(hào)課程號(hào)成績98001王平20計(jì)算機(jī)98001C19598001王平20計(jì)算機(jī)98001C38098001王平20計(jì)算機(jī)98003C18598001王平20計(jì)算機(jī)98003C27598002李麗21數(shù)學(xué)98001C19598002李麗21數(shù)學(xué)98001C38098002李麗21數(shù)學(xué)98003C19598002李麗21數(shù)學(xué)98003C27598003陳紅20計(jì)算機(jī)98001C19598003陳紅20計(jì)算機(jī)98001C38098003陳紅20計(jì)算機(jī)98003C18598003陳紅20計(jì)算機(jī)98003C275學(xué)生選課學(xué)生╳選課步驟一:兩個(gè)關(guān)系R,S的廣義笛卡爾積關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作7.連接學(xué)號(hào)姓名年齡所在系98001王平20計(jì)算機(jī)98002李麗21數(shù)學(xué)98003陳紅20計(jì)算機(jī)學(xué)號(hào)課程號(hào)成績98001C19598001C38098003C18598003C275學(xué)生選課學(xué)生

?選課自然連接學(xué)號(hào)姓名年齡所在系課程號(hào)成績98001王平20計(jì)算機(jī)C19598001王平20計(jì)算機(jī)C38098003陳紅20計(jì)算機(jī)C18598003陳紅20計(jì)算機(jī)C275步驟三:通過投影的方式移走一些屬性兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作7.連接學(xué)號(hào)姓名年齡所在系98001王平20計(jì)算機(jī)98002李麗21數(shù)學(xué)98003陳紅20計(jì)算機(jī)學(xué)號(hào)課程號(hào)成績98001C19598001C38098003C18598003C275學(xué)生選課學(xué)生

?選課學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)等值連接學(xué)生.學(xué)號(hào)姓名年齡所在系選課.學(xué)號(hào)課程號(hào)成績98001王平20計(jì)算機(jī)98001C19598001王平20計(jì)算機(jī)98001C38098003陳紅20計(jì)算機(jī)98003C18598003陳紅20計(jì)算機(jī)98003C275步驟二:可選擇的去除一些元組選取A和B屬性相等的元關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作7.連接連接操作是積、選擇和可能包括的投影操作的組合。兩個(gè)關(guān)系的連接操作定義(步驟)如下:首先,形成R×S的乘積;然后,進(jìn)行選擇去除某些元組(選擇的標(biāo)準(zhǔn)是連接時(shí)要指定的一部分);最后(可選擇地),通過投影的方式移走一些屬性。關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作7.連接例:找出所有選擇了“軟件工程”課程的學(xué)生的學(xué)號(hào)。學(xué)生(學(xué)號(hào),姓名,年齡,性別,班級(jí))課程(課程號(hào),課程名,教師,周課時(shí)數(shù),備注)選課(學(xué)號(hào),課程號(hào),成績)∏學(xué)號(hào)(

)

課程名=‘軟件工程’()

課程?選課課程表?xiàng)l件選課表屬性關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作7.連接連接條件上的限制不管是哪種條件的連接,連接條件中的屬性必須來自同一個(gè)域。如課程表中的“課程號(hào)”與選課表中的“成績”連接是非法的。關(guān)系代數(shù)關(guān)系模型的數(shù)據(jù)操作

思路:在所有的課程號(hào)范圍內(nèi)除去有同學(xué)不及格的課程號(hào)

∏課程號(hào)(課程表)∏課程號(hào)(

成績>=60(選課表))

×分析∏課程號(hào)(

成績<60(選課表))

-例:查詢出所有學(xué)生都及格的課程的課程號(hào)?!剃P(guān)系模型的數(shù)據(jù)操作課堂練習(xí)3:用關(guān)系代數(shù)表示檢索的例子學(xué)生選課庫的關(guān)系模式為:學(xué)生(學(xué)號(hào),姓名,性別,年齡,班級(jí))課程(課程號(hào),課程名,教師,周課時(shí)數(shù),備注)選課(學(xué)號(hào),課程號(hào),成績)

1、求選修了課程號(hào)為“C2”課程的學(xué)生學(xué)號(hào)2、求年齡大于20的所有女學(xué)生的學(xué)號(hào)、姓名3、求選了課的學(xué)生的學(xué)號(hào)和姓名4、求沒有選課的學(xué)生的學(xué)號(hào)和姓名5、求沒有選修課程號(hào)為“C1”的課程的學(xué)生學(xué)號(hào)6、選修“C2”課程或選修“C3”課程的學(xué)生學(xué)號(hào)關(guān)系的完整性約束3.3關(guān)系約束的完整性現(xiàn)實(shí)世界的三個(gè)問題如何保證一個(gè)數(shù)據(jù)(實(shí)體)是可識(shí)別的?如何由一個(gè)數(shù)據(jù)找到另一個(gè)數(shù)據(jù)?如何保證一個(gè)數(shù)據(jù)的取值合理?在關(guān)系模型中是通過關(guān)系的完整性約束來解決的。關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件。關(guān)系約束的完整性關(guān)系模型中可以有三類完整性約束實(shí)體完整性參照完整性用戶定義的完整性實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱為關(guān)系的兩個(gè)不變性,應(yīng)該由關(guān)系系統(tǒng)自動(dòng)支持。關(guān)系約束的完整性實(shí)體完整性(EntityIntegrity)規(guī)則若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。①實(shí)體完整性例:課程表(課程號(hào),課程名,教師,周課時(shí)數(shù),備注)“課程號(hào)”不能取相同的值,也不能取空值。選課表(學(xué)號(hào),課程號(hào),成績)“學(xué)號(hào)”和“課程號(hào)”的均不能取空值,且它們的組合不能取相同的值。關(guān)系約束的完整性如何保證一個(gè)實(shí)體可以識(shí)別職工號(hào)姓名性別部門號(hào)工資傭金10001張三男10110001500李四男10280050010003小花女105100080010001小明女107180020001000410002實(shí)體完整性保證一個(gè)表中的每一行必須是唯一的(元組的唯一性)。為保證實(shí)體完整性,要求關(guān)系數(shù)據(jù)庫中所有的表都必須有主碼,而且表中不允許存在無主碼值的記錄和主碼值相同的記錄。①實(shí)體完整性關(guān)系約束的完整性對于實(shí)體完整性規(guī)則說明如下:實(shí)體完整性規(guī)則是針對基本關(guān)系而言的?,F(xiàn)實(shí)世界中的實(shí)體是可區(qū)分的,即它們具有某種唯一性標(biāo)識(shí)。相應(yīng)地,關(guān)系模型中以主碼作為唯一性標(biāo)識(shí)。主碼中的屬性即主屬性不能取空值。實(shí)體完整性規(guī)則規(guī)定基本關(guān)系的所有主屬性都不能取空值。①實(shí)體完整性關(guān)系約束的完整性關(guān)系間的引用例1:職工實(shí)體集和部門實(shí)體集之間的關(guān)系引用:

職工(職工號(hào),姓名,性別,部門號(hào),工資,傭金)

部門(部門號(hào),名稱,地點(diǎn))即“職工”關(guān)系引用了“部門”關(guān)系的主碼“部門號(hào)”。②參照完整性部門號(hào)名稱地點(diǎn)101財(cái)務(wù)科A1-211102計(jì)算機(jī)系2-304105人事科A1-312106工商系2-301107教務(wù)科A1-201關(guān)系約束的完整性數(shù)據(jù)之間的參照關(guān)系職工表部門表職工號(hào)姓名性別部門號(hào)工資傭金10001張三男1011000150010002李四男10280050010003小花女105100080010009小明女10718002000108108②參照完整性關(guān)系約束的完整性關(guān)系間的引用思考:請分析選課系統(tǒng)內(nèi)的關(guān)系引用:

課程表(課程號(hào),課程名,教師,周課時(shí)數(shù),備注)

學(xué)生表(學(xué)號(hào),姓名,年齡,性別,班級(jí))

選課表(學(xué)號(hào),課程號(hào),成績)即“選課表”關(guān)系引用了“學(xué)生表”關(guān)系的主碼“學(xué)號(hào)”和“課程表”關(guān)系的主碼“課程號(hào)”。問一問②參照完整性關(guān)系約束的完整性關(guān)系間的引用思考:請分析職工關(guān)系中的關(guān)系引用。職工(職工號(hào),姓名,性別,部門號(hào),上司職工號(hào),工資,傭金)問一問經(jīng)驗(yàn)1:不僅兩個(gè)或兩個(gè)以上的關(guān)系間可以存在引用關(guān)系,同一關(guān)系內(nèi)部屬性間也可能存在引用關(guān)系。

②參照完整性關(guān)系約束的完整性外碼(難點(diǎn))設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的主碼,如果F與基本關(guān)系S的主碼相對應(yīng),則稱F是基本關(guān)系R的外碼(Forieignkey),并稱基本關(guān)系R為參照關(guān)系,基本關(guān)系S為被參照關(guān)系。例1職工(職工號(hào),姓名,性別,部門號(hào),工資,傭金)部門(部門號(hào),名稱,地點(diǎn))關(guān)系R關(guān)系S外碼參照關(guān)系被參照關(guān)系②參照完整性關(guān)系約束的完整性外碼思考:請分析下列關(guān)系模式中的外碼、參照關(guān)系和被參照關(guān)系。課程表(課程號(hào),課程名,教師,周課時(shí)數(shù),備注)學(xué)生表(學(xué)號(hào),姓名,年齡,性別,班級(jí))選課表(學(xué)號(hào),課程號(hào),成績)參照關(guān)系被參照關(guān)系被參照關(guān)系外碼外碼思考:“學(xué)號(hào)”屬性能否作為外碼?問一問②參照完整性關(guān)系約束的完整性外碼思考:請分析“職工”關(guān)系中的外碼、參照關(guān)系和被參照關(guān)系。職工(職工號(hào),姓名,性別,部門號(hào),上司職工號(hào),工資,傭金)參照關(guān)系被參照關(guān)系外碼經(jīng)驗(yàn)2:關(guān)系R和S不一定是不同的關(guān)系。經(jīng)驗(yàn)3:外碼并不一定要與相應(yīng)的主碼同名。問一問②參照完整性關(guān)系約束的完整性參照完整性規(guī)則關(guān)系R中每個(gè)元組在外碼F上的值必須為:或者取空值(F中的每個(gè)屬性值均為空值);或者等于被參照關(guān)系S中某個(gè)元組的主碼值。②參照完整性關(guān)系約束的完整性職工關(guān)系中的每行的部門號(hào)屬性只能取下面兩類值:第一類:空值,表示尚未給該職工分配部門;第二類:非空值,但該值必須是部門關(guān)系中某個(gè)元組的部門號(hào)值,表示該職工不可能分配到一個(gè)不存在的部門中。思考:請分析職工關(guān)系是否存在其它外碼?試分析此外碼的取值限制。問一問②參照完整性關(guān)系約束的完整性定義參照完整性的注意點(diǎn):外鍵和相應(yīng)的主鍵可以不同名,只要定義在相同值域上即可;R和S也可以是同一個(gè)關(guān)系模式。②參照完整性關(guān)系約束的完整性用戶定義的完整性是針對某些具體關(guān)系數(shù)據(jù)庫的約束條件。例如,某個(gè)屬性必須取唯一值、某個(gè)屬性不能取空值、某些屬性值之間應(yīng)滿足一定的函數(shù)關(guān)系、某個(gè)屬性的取值范圍在1~12之間等。③用戶定義完整性例:選課表(課程號(hào),學(xué)號(hào),成績),在定義關(guān)系選課表時(shí),我們可以對成績這個(gè)屬性定義必須大于等于0的約束。將E-R模型轉(zhuǎn)換為關(guān)系模型3.4將E-R模型轉(zhuǎn)換為關(guān)系模型E-R模型向關(guān)系模型的轉(zhuǎn)換要解決的問題是:如何將實(shí)體和實(shí)體間的聯(lián)系轉(zhuǎn)換為關(guān)系模式。如何確定這些關(guān)系模式的屬性和碼。將E-R模型轉(zhuǎn)換為關(guān)系模型1.轉(zhuǎn)換原則1將E-R圖中每個(gè)實(shí)體集轉(zhuǎn)化為一個(gè)關(guān)系模式。①實(shí)體集中實(shí)體的屬性轉(zhuǎn)化為該關(guān)系模式的屬性;②實(shí)體的碼(實(shí)體鍵)轉(zhuǎn)化為該關(guān)系模式的碼;③每一個(gè)實(shí)體轉(zhuǎn)化為該關(guān)系模式對應(yīng)關(guān)系的一個(gè)元組。將E-R模型轉(zhuǎn)換為關(guān)系模型2.轉(zhuǎn)換原則2E-R圖中的聯(lián)系,根據(jù)聯(lián)系方式的不同,采取不同的方法。一個(gè)1:1聯(lián)系,任靠一邊。一個(gè)1:N聯(lián)系,靠多。一個(gè)M:N聯(lián)系,獨(dú)立轉(zhuǎn)換。3.轉(zhuǎn)換原則3:確定參照完整性將E-R模型轉(zhuǎn)換為關(guān)系模型2.轉(zhuǎn)換實(shí)例1:1聯(lián)系的轉(zhuǎn)換1任職系主任姓名職稱職工號(hào)系系編號(hào)地址1系名將E-R模型轉(zhuǎn)換為關(guān)系模型2.轉(zhuǎn)換實(shí)例1:1聯(lián)系的轉(zhuǎn)換第一步:根據(jù)原則1,每個(gè)實(shí)體集轉(zhuǎn)換為一個(gè)關(guān)系模式,實(shí)體的屬性轉(zhuǎn)換為關(guān)系模式的屬性,實(shí)體的碼轉(zhuǎn)換為關(guān)系模式的碼。系主任(職工號(hào),姓名,職稱)系(系編號(hào),系名,地址)1任職系主任姓名職稱職工號(hào)系系編號(hào)地址1系名第二步:根據(jù)原則2,對于1:1聯(lián)系可以靠一邊,現(xiàn)把“任職”聯(lián)系并入“系”實(shí)體集對應(yīng)的關(guān)系:系(系編號(hào),系名,地址,職工號(hào))

將E-R模型轉(zhuǎn)換為關(guān)系模型2.轉(zhuǎn)換實(shí)例1:1聯(lián)系的轉(zhuǎn)換1任職系主任姓名職稱職工號(hào)系系編號(hào)地址1系名第三步:根據(jù)原則3,定義參照完整性:系主任(職工號(hào),姓名,職稱)系(系編號(hào),系名,地址,職工號(hào))其中,“系”關(guān)系中的“職工號(hào)”為外碼,它參照“系主任”關(guān)系中的“職工號(hào)”。

將E-R模型轉(zhuǎn)換為關(guān)系模型1:1聯(lián)系的轉(zhuǎn)換1任職系主任姓名職稱職工號(hào)系系編號(hào)地址1系名練一練系主任(職工號(hào),姓名,職稱,系編號(hào))系(系編號(hào),系名,地址)其中,“系主任”關(guān)系中的“系編號(hào)”

溫馨提示

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

評(píng)論

0/150

提交評(píng)論