版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、An Introduction to Database System,數(shù)據(jù)庫系統(tǒng)概論 An Introduction to Database System 關系數(shù)據(jù)庫(續(xù)),An Introduction to Database System,第二章 關系數(shù)據(jù)庫,2.1 關系模型概述 2.2 關系數(shù)據(jù)結構 2.3 關系的完整性 2.4 關系代數(shù) 2.5 關系演算 2.6 小結,An Introduction to Database System,2.5 關系演算,關系演算是以數(shù)理邏輯中的謂詞演算為基礎的 按謂詞變元的不同,關系演算分為元組關系演算和域關系演算,An Introduction t
2、o Database System,2.5 關系演算,謂詞的概念與表示 反映判斷的句子是由主語和謂詞兩部分組成 例如:電子計算機是科學技術的工具 其中:電子計算機是主語 是科學技術的工具是謂語 主語一般是客體,可以是具體的,可以是抽象 用以刻畫客體的性質(zhì)或關系的既是謂詞,An Introduction to Database System,2.5 關系演算,我們用大寫字母來表示謂詞,用小寫字母來表示客體 例如:張三是大學生 用A表示是大學生 用c表示張三 則張三是大學生可以表示為A(c),An Introduction to Database System,2.5 關系演算,例如:a是小于b
3、用B 來表示”是小于” 則”a是小于b”可表示為B(a,b),A(c)為一元謂詞,B(a,b)為二元謂詞,An Introduction to Database System,命題函數(shù),L(x,y)表示”x小于y”,L(2,3)表示一個真命題,(,)表示一個假命題 由一個謂詞,一些客體變元組成的表達式為簡單命題函數(shù),An Introduction to Database System,命題,命題是反映判斷的句子,不反映判斷的句子不是命題。,An Introduction to Database System,全稱量詞,S(x)表示x是大學生,x的域為某單位的職工 那么: S(x)可以表示為某單
4、位的職工都是大學生,也可以表示為某單位存在一些職工是大學生。,為了避免這種理解上的混亂,需要引入量詞, 來區(qū)分“所有的”和”存在一些“的不同概念,An Introduction to Database System,量詞,引入量詞,X表示對所有的x,任何一個x,每一個x,存在量詞: X ,表示存在一些,M(x):x是人,():x要呼吸,x( M(X),H(X),An Introduction to Database System,量詞,命題:存在一些數(shù)是質(zhì)數(shù) P(x):x是質(zhì)數(shù) 存在一些數(shù)是質(zhì)數(shù):表示為X (p(x),An Introduction to Database System,量詞,
5、全稱量詞與存在量詞的轉(zhuǎn)換,(,x)p(x),(X ),(px),An Introduction to Database System,2.5 關系演算,關系演算 以數(shù)理邏輯中的謂詞演算為基礎 按謂詞變元不同 進行分類 1.元組關系演算: 以元組變量作為謂詞變元的基本對象 元組關系演算語言ALPHA 2.域關系演算: 以域變量作為謂詞變元的基本對象 域關系演算語言QBE,An Introduction to Database System,2.5.1 元組關系演算語言ALPHA,由E.F.Codd提出 INGRES所用的QUEL語言是參照ALPHA語言研制的 語句 檢索語句 GET 更新語句 P
6、UT,HOLD,UPDATE,DELETE,DROP,An Introduction to Database System,一、檢索操作,語句格式: GET工作空間名 (定額)(表達式1) :操作條件 DOWN/UP 表達式2 定額:規(guī)定檢索的元組個數(shù) 格式: 數(shù)字 表達式1:指定語句的操作對象 格式: 關系名| 關系名. 屬性名| 元組變量. 屬性名| 集函數(shù) , 操作條件:將操作結果限定在滿足條件的元組中 格式: 邏輯表達式 表達式2:指定排序方式 格式: 關系名. 屬性名| 元組變量. 屬性名, ,An Introduction to Database System,一、檢索操作,(1)
7、簡單檢索 GET工作空間名 (表達式1) 例1 查詢所有被選修的課程號碼。 GET W (SC.Cno) 例2 查詢所有學生的數(shù)據(jù)。 GET W (Student),An Introduction to Database System,(2)限定的檢索,格式 GET工作空間名(表達式1):操作條件 例3查詢信息系(IS)中年齡小于20歲的學生的學號和年齡 GET W (Student.Sno,Student.Sage): Student.Sdept=IS Student.Sage20,An Introduction to Database System,(3)帶排序的檢索,格式 GET工作空間
8、名(表達式1):操作條件 DOWN/UP 表達式2 例4查詢計算機科學系(CS)學生的學號、年齡,結果按年齡降 序排序 GET W (Student.Sno,Student.Sage): Student.Sdept=CS DOWN Student.Sage,An Introduction to Database System,(4)帶定額的檢索,格式 GET工作空間名(定額)(表達式1) :操作條件 DOWN/UP 表達式2 例5 取出一個信息系學生的學號。 GET W (1) (Student.Sno): Student.Sdept=IS 例6 查詢信息系年齡最大的三個學生的學號及其年齡,結
9、果按年齡降序排序。 GET W (3) (Student.Sno,Student.Sage): Student.Sdept=IS DOWN Student.Sage,An Introduction to Database System,(5)用元組變量的檢索,元組變量的含義 表示可以在某一關系范圍內(nèi)變化(也稱為范圍變量Range Variable) 元組變量的用途 簡化關系名:設一個較短名字的元組變量來代替較長的關系名。 操作條件中使用量詞時必須用元組變量。 定義元組變量 格式:RANGE 關系名 變量名 一個關系可以設多個元組變量,An Introduction to Database Sy
10、stem,(6) 用存在量詞的檢索,操作條件中使用量詞時必須用元組變量 例8 查詢選修2號課程的學生名字。 RANGE SC XGET W (Student.Sname): X(X.Sno=Student.SnoX.Cno=2) 例9 查詢選修了這樣課程的學生學號,其直接先行課是6號課程。 RANGE Course CX GET W (SC.Sno): CX (CX.Cno=SC.CnoCX.Pcno=6),An Introduction to Database System,用存在量詞的檢索(續(xù)),例10查詢至少選修一門其先行課為6號課程的學生名字 RANGE Course CX SC SC
11、X GET W (Student.Sname): SCX (SCX.Sno=Student.Sno CX (CX.Cno=SCX.CnoCX.Pcno=6) 前束范式形式: GET W (Student.Sname): SCXCX (SCX.Sno=Student.Sno CX.Cno=SCX.CnoCX.Pcno=6),An Introduction to Database System,(7)帶有多個關系的表達式的檢索,例11 查詢成績?yōu)?0分以上的學生名字與課程名字。 RANGE SC SCX GET W(Student.Sname,Course.Cname): SCX (SCX.Gra
12、de90 SCX.Sno=Student.Sno Course.Cno=SCX.Cno),An Introduction to Database System,(8)用全稱量詞的檢索,例12 查詢不選1號課程的學生名字 RANGE SC SCX GET W (Student.Sname): SCX (SCX.SnoStudent.SnoSCX.Cno1) 用存在量詞表示: RANGE SC SCX GET W (Student.Sname): SCX (SCX.Sno=Student.SnoSCX.Cno=1),An Introduction to Database System,(9)用兩種
13、量詞的檢索,例13 查詢選修了全部課程的學生姓名。 RANGE Course CX SC SCX GET W (Student.Sname): CX SCX (SCX.Sno=Student.Sno SCX.Cno=CX.Cno),An Introduction to Database System,(10)用蘊函(Implication)的檢索,例14 查詢最少選修了200215122學生所選課程的學生學號 RANGE Couse CX SC SCX SC SCY GET W (Student.Sno): CX(SCX (SCX.Sno=200215122SCX.Cno=CX.Cno) SC
14、Y(SCY.Sno=Student.Sno SCY.Cno= CX.Cno),An Introduction to Database System,(11)聚集函數(shù),常用聚集函數(shù)(Aggregation function)或內(nèi)部函數(shù)(Build-in function),關系演算中的聚集函數(shù),An Introduction to Database System,聚集函數(shù)(續(xù)),例15 查詢學生所在系的數(shù)目。 GET W ( COUNT(Student.Sdept) ) COUNT函數(shù)在計數(shù)時會自動排除重復值。 例16 查詢信息系學生的平均年齡 GET W (AVG(Student.Sage):
15、 Student.Sdept=IS ),An Introduction to Database System,二、更新操作,(1) 修改操作 (2) 插入操作 (3) 刪除操作,An Introduction to Database System,(1)修改操作步驟, 用HOLD語句將要修改的元組從數(shù)據(jù)庫中讀到工作空間中 HOLD 工作空間名(表達式1):操作條件 HOLD語句是帶上并發(fā)控制的GET語句 用宿主語言修改工作空間中元組的屬性 用UPDATE語句將修改后的元組送回數(shù)據(jù)庫中 UPDATE 工作空間名,An Introduction to Database System,修改操作(續(xù))
16、,例17 把200215121學生從計算機科學系轉(zhuǎn)到信息系。 HOLD W (Student.Sno, Student.Sdetp): Student.Sno=200215121 (從Student關系中讀出95007學生的數(shù)據(jù)) MOVE IS TO W.Sdept (用宿主語言進行修改) UPDATE W (把修改后的元組送回Student關系),An Introduction to Database System,(2)插入操作,步驟 用宿主語言在工作空間中建立新元組 用PUT語句把該元組存入指定關系中 PUT 工作空間名 (關系名) PUT語句只對一個關系操作,關系演算中的聚集函數(shù),A
17、n Introduction to Database System,插入操作(續(xù)),例18 學校新開設了一門2學分的課程“計算機組織與結構”,其課程號為8,直接先行課為6號課程。插入該課程元組 MOVE 8 TO W.Cno MOVE 計算機組織與結構 TO W.Cname MOVE 6 TO W.Cpno MOVE 2 TO W.Ccredit PUT W (Course),An Introduction to Database System,(3)刪除操作,步驟 用HOLD語句把要刪除的元組從數(shù)據(jù)庫中讀到工作空間中 用DELETE語句刪除該元組 DELETE 工作空間名,An Introd
18、uction to Database System,刪除操作(續(xù)),例19 200215125學生因故退學,刪除該學生元組 HOLD W (Student): Student.Sno=200215125 DELETE W,An Introduction to Database System,刪除操作(續(xù)),例20 將學號200215121改為200215126 HOLD W (Student): Student.Sno=200215121 DELETE W MOVE 200215126 TO W.Sno MOVE 李勇 TO W.Sname MOVE 男 TO W.Ssex MOVE 20 T
19、O W.Sage MOVE CS TO W.Sdept PUT W (Student),An Introduction to Database System,刪除操作(續(xù)),例21 刪除全部學生 HOLD W (Student) DELETE W 為保證參照完整性 ,刪除Student中元組時相應地要刪除SC中的元組 HOLD W (SC) DELETE W,An Introduction to Database System,小結:元組關系演算語言ALPHA,檢索操作 GET GET工作空間名 (定額)(表達式1) :操作條件 DOWN/UP 表達式2 插入操作 建立新元組-PUT 修改操作
20、 HOLD-修改-UPDATE 刪除操作 HOLD-DELETE,An Introduction to Database System,2.5 關 系 演 算,2.5.1 元組關系演算語言ALPHA 2.5.2 域關系演算語言QBE,An Introduction to Database System,2.5.2 域關系演算語言QBE,一種典型的域關系演算語言 由M.M.Zloof提出 以元組變量的分量即域變量作為謂詞變元的基本對象 QBE:Query By Example 基于屏幕表格的查詢語言 查詢要求:以填寫表格的方式構造查詢 用示例元素(域變量)來表示查詢結果可能的情況 查詢結果:以表
21、格形式顯示,An Introduction to Database System,QBE操作框架,An Introduction to Database System,一、檢索操作,1.簡單查詢 例1求信息系全體學生的姓名 操作步驟為: (1)用戶提出要求; (2)屏幕顯示空白表格;,An Introduction to Database System,簡單查詢(續(xù)),(3)用戶在最左邊一欄輸入要查詢的關系名Student; (4)系統(tǒng)顯示該關系的屬性名,An Introduction to Database System,簡單查詢(續(xù)),(5)用戶在上面構造查詢要求 李勇是示例元素,即域變量
22、 (6)屏幕顯示查詢結果,An Introduction to Database System,構造查詢的幾個要素,示例元素 即域變量 一定要加下劃線 示例元素是這個域中可能的一個值,它不必是查詢結果中的元素 打印操作符P. 實際上是顯示 查詢條件 可使用比較運算符,和 其中可以省略,An Introduction to Database System,簡單查詢(續(xù)),例2 查詢?nèi)w學生的全部數(shù)據(jù),An Introduction to Database System,簡單查詢(續(xù)),顯示全部數(shù)據(jù)也可以簡單地把P.操作符作用在關系名上。,An Introduction to Database S
23、ystem,2. 條件查詢,例3 求年齡大于19歲的學生的學號,An Introduction to Database System,條件查詢(與條件),例4 求計算機科學系年齡大于19歲的學生的學號。 方法(1):把兩個條件寫在同一行上,An Introduction to Database System,條件查詢(與條件),方法(2):把兩個條件寫在不同行上,但使用相同的示例元 素值,An Introduction to Database System,條件查詢(與條件),例5 查詢既選修了1號課程又選修了2號課程的學生的學號。,An Introduction to Database Sy
24、stem,條件查詢(或條件),例6查詢計算機科學系或者年齡大于19歲的學生的 學號。,An Introduction to Database System,條件查詢(多表連接),例7 查詢選修1號課程的學生姓名。,注意:示例元素Sno是連接屬性,其值在兩個表中要相同。,An Introduction to Database System,條件查詢(非條件),例8 查詢未選修1號課程的學生姓名,思路:顯示學號為200215121的學生名字,而該學生選修1號課程的情況為假,An Introduction to Database System,條件查詢(續(xù)),例9 查詢有兩個人以上選修的課程號。,思
25、路:查詢這樣的課程1,它不僅被200215121選修 而且也被另一個學生(200215121)選修了,An Introduction to Database System,3. 聚集函數(shù),常用聚集函數(shù):,QBE中的聚集函數(shù),An Introduction to Database System,聚集函數(shù)(續(xù)),例10 查詢信息系學生的平均年齡。,An Introduction to Database System,4.對查詢結果排序,升序排序: 對查詢結果按某個屬性值的升序排序,只需在相應列中填入“AO.” 降序排序: 按降序排序則填“DO.” 多列排序: 如果按多列排序,用“AO(i).”或“
26、DO(i).”表示,其中i為排序的優(yōu)先級,i值越小,優(yōu)先級越高,An Introduction to Database System,對查詢結果排序(續(xù)),例11 查全體男生的姓名,要求查詢結果按所在系升序排序,對相同系的學生按年齡降序排序。,An Introduction to Database System,二、更新操作,1.修改操作 例12 把200215121學生的年齡改為18歲。 方法(1) :將操作符“U.”放在值上,An Introduction to Database System,修改操作(續(xù)),方法(2): 將操作符“U.”放在關系上 碼200215121標明要修改的元組。 “U.”標明所在的行是修改后的新值。 由于主碼是不能修改的,所以系統(tǒng)不會混淆要修改的屬性。,An Introduction to Database System,修改操作(續(xù)),例13 把200215121學生的年齡增加1歲 操作涉及表達式,必須將操作符“U.”放在關系上,A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年金融安全與反欺詐試題
- 水務審批培訓
- 綠色設計工藝流程探討
- 2025泉州晉江市磁灶鎮(zhèn)人民政府招聘編外人員3人備考題庫(含答案詳解)
- 四級解決醫(yī)患關系
- 組織變革與組織文化p70
- 2026福建龍洲運輸集團有限公司上杭分公司招聘備考題庫帶答案詳解
- 騎行交通安全培訓課件
- 分詞介紹教學課件
- “夢工場”招商銀行福州分行2026寒假實習生招聘備考題庫有答案詳解
- 交通運輸安全檢查與處理規(guī)范(標準版)
- UCL介紹教學課件
- 木工電鋸使用規(guī)范制度
- 骨科跟骨骨折課件
- 2026年美團商業(yè)分析師崗位筆試解析與面試問答技巧
- 某高校十五五教育大數(shù)據(jù)治理中心與智慧校園支撐平臺建設方案
- 2026年山西警官職業(yè)學院單招綜合素質(zhì)考試備考試題帶答案解析
- 汽修廠文件檔案歸檔制度
- 高校科研項目立項及管理規(guī)范
- 2026年工業(yè)數(shù)字化能碳管理項目可行性研究報告
- 《事故隱患排查治理資金使用專項制度》
評論
0/150
提交評論