




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
AnIntroductiontoDatabaseSystem中國人民大學信息學院
王珊數據庫系統(tǒng)概論AnIntroductiontoDatabaseSystem第三章關系數據庫標準語言SQLAnIntroductiontoDatabaseSystem第三章
關系數據庫標準語言SQL3.1SQL概述3.2學生-課程數據庫3.3數據定義3.4數據查詢3.5數據更新3.6視圖3.7小結AnIntroductiontoDatabaseSystem關系數據庫的3級模式結構SQL視圖2視圖1基本表2基本表1基本表3基本表4存儲文件2存儲文件1外模式模式內模式復習第1章外模式—視圖+部分基本表
3級模式的概念:模式——基本表
內模式—存儲文件AnIntroductiontoDatabaseSystem關系模型的數據結構基本表本身獨立存在的表SQL中一個關系就對應一個基本表一個(或多個)基本表對應一個存儲文件一個表可以帶若干索引存儲文件邏輯結構組成了關系數據庫的內模式物理結構是任意的,對用戶透明視圖從一個或幾個基本表導出的表數據庫中只存放視圖的定義而不存放視圖對應的數據視圖是一個虛表用戶可以在視圖上再定義視圖AnIntroductiontoDatabaseSystem3.3數據定義3.3.1模式的定義與刪除3.3.2基本表的定義、刪除與修改3.3.3索引的建立與刪除SequentialFile201040306050807010090SequentialFile按照某個屬性排序的文件順序文件上的索引SequentialFile201040306050807010090稠密索引(DenseIndex)102030405060708090100110120OneitemforeachRecordItem:(Searchkey,pointertorecord)B樹和B+樹B樹能自動保持與數據文件大小適應的索引層次平衡樹能對所使用的存儲空間進行管理,使每個塊處于全滿半滿之間B+樹特殊的B樹,內部結點只存儲索引塊葉結點用指針連接4.3.1B+樹指向碼值為
31的記錄指向碼值為
37的記錄指向碼值為
41的記錄指向順序集上的
下一個葉結點典型的葉結點指向碼值
K<23指向碼值
23≤K<31指向碼值
31≤K<43指向碼值
K≥43典型的非葉結點參數n=3:每個塊存放碼值的最大個數:3最小碼數:m最小指針數:pB+樹指針和碼的數量最大指針數最大碼數最小指針數(指向數據)最小碼數內部結點n+1n(n+1)/2(n+1)/2-1葉結點n+1n(n+1)/2(n+1)/2根結點n+1n11AnIntroductiontoDatabaseSystemB+樹中的查找查找鍵為37的記錄13<3731<37<43找到37鍵值為37的記錄IO數:4若把第一、第二層結點保存在緩沖區(qū)
IO數:2AnIntroductiontoDatabaseSystemB+樹中的查找(若索引塊全在磁盤)查找鍵為37的記錄讀入root節(jié)點,IO=1根據條件13<37,讀取下一節(jié)點塊讀入下一節(jié)點,IO=2根據條件31<37<43,讀取下一節(jié)點塊讀入下一節(jié)點,IO=3,找到鍵值37,讀取記錄指針,讀取記錄所在的塊MainMemoryDisk讀入數據塊,IO=4,根據記錄指針找到鍵值為37的記錄AnIntroductiontoDatabaseSystemB+樹中的查找
(若第一、二層索引塊在內存)查找鍵為37的記錄讀取root節(jié)點,根據條件13<37,讀取下一節(jié)點塊讀取下一節(jié)點,根據條件31<37<43,讀取下一節(jié)點塊讀入下一節(jié)點,IO=1,找到鍵值37,讀取記錄指針,讀取記錄所在的塊MainMemoryDisk讀入數據塊,IO=2,根據記錄指針找到鍵值為37的記錄B+樹的插入三種情況:葉結點滿內部結點滿動作否否把碼放在葉結點合適的位置是否1.分裂葉結點2.把碼的中間值放在內部結點合適的位置3.左側的葉結點包括小于中間值的碼4.右側的葉結點包括大于或等于中間值的碼是是1.分裂葉節(jié)點2.左側的葉結點包括小于中間值的碼3.右側的葉結點包括大于或等于中間值的碼4.分裂內部結點5.左側的內部結點包括小于中間值的碼6.右側的內部結點包括大于中間值的碼7.把碼的中間值放在上一級內部結點合適的位置如果上一級內部結點已滿,則繼續(xù)分裂上一級結點B+樹的插入插入碼40
(屬于情況3)401.分裂葉結點2.碼中間值上提
分裂內部結點3.碼中間值上提(40,b)B+樹的插入插入碼40
(屬于情況3)1.分裂葉結點2.碼中間值上提
分裂內部結點3.碼中間值上提13>4031<40<434041葉結點滿4340B+樹的刪除三種情況:葉結點小于最小充滿度內部結點小于最小充滿度動作否否1.刪除葉結點中的碼2.對碼重新排序3.如果碼在上一級內部結點出現,則用下一個碼替換是否1.組合葉結點和它的兄弟結點2.相應更改內部結點以反映這種改變是是1.組合葉結點和它的兄弟結點2.相應更改內部結點以反映這種改變3.組合內部結點和它的兄弟結點
繼續(xù)組合內部結點,直到找到一個滿足充滿度的結點或者到達根結點B+樹的刪除刪除碼7(屬于情況2)551.組合葉結點2.更改內部結點以反映這種改變B+樹的刪除-刪除碼77<137<=74143577刪除碼7(屬于情況2)1.組合葉結點2.更改內部結點以反映這種改變5B+樹的刪除刪除碼11(屬于情況3,需要遞歸更改內部結點)1.組合葉結點5132.更改內部結點以反映這種改變(需要遞歸)233143B+樹的刪除-刪除碼1111<135<11414351.組合葉結點2.更改內部結點以反映這種改變5133123刪除碼11(屬于情況3,需要遞歸更改內部結點)1113AnIntroductiontoDatabaseSystem3.4數據查詢3.4.1單表查詢3.4.2連接查詢3.4.3嵌套查詢3.4.4集合查詢3.4.5Select語句的一般形式
AnIntroductiontoDatabaseSystem一、等值與非等值連接查詢等值連接:連接運算符為=[例33]查詢每個學生及其選修課程的情況
SELECTStudent.*,SC.* FROMStudent,SC WHEREStudent.Sno=SC.Sno;
/*連接謂詞*/AnIntroductiontoDatabaseSystem等值與非等值連接查詢(續(xù))Student.SnoSnameSsexSageSdeptSC.SnoCnoGrade200215121李勇男20CS200215121192200215121李勇男20CS200215121285200215121李勇男20CS200215121388200215122劉晨女19CS200215122290200215122劉晨女19CS200215122380查詢結果:AnIntroductiontoDatabaseSystem等值與非等值連接查詢(續(xù))自然連接:[例34]對[例33]用自然連接完成。
SELECTStudent.Sno,Sname,Ssex,Sage,Sdept,
Cno,GradeFROMStudent,SCWHEREStudent.Sno=SC.Sno;AnIntroductiontoDatabaseSystem連接操作的執(zhí)行:嵌套循環(huán)法(NESTED-LOOP)
select*froms,spjwheres.sno=spj.sno;S表SNOSNAMESTATUSCITYS1精益20天津S2盛錫10北京S3東方紅30北京S4豐泰盛20天津S5為民30上海SPJ表SNOPNOJNOQTYS1P1J1200S2P1J3100S1P1J4700S1P2J2100S2P3J1400S2P3J2200S2P3J4500S2P3J5400S2P5J1400S2P5J2100S5P1J1200S3P3J1200S4P5J1100S4P6J3300S4P6J4200S3P2J4100S5P3J1200S1P6J2200S5P6J4500resultsSNOSNAMECITYQTYS1精益天津200S1精益天津700S1精益天津100S1精益天津200S2盛錫北京100……AnIntroductiontoDatabaseSystem連接操作的執(zhí)行過程嵌套循環(huán)法(NESTED-LOOP)首先在表1中找到第一個元組,然后從頭開始掃描表2,逐一查找滿足連接件的元組,找到后就將表1中的第一個元組與該元組拼接起來,形成結果表中一個元組。表2全部查找完后,再找表1中第二個元組,然后再從頭開始掃描表2,逐一查找滿足連接條件的元組,找到后就將表1中的第二個元組與該元組拼接起來,形成結果表中一個元組。重復上述操作,直到表1中的全部元組都處理完畢
AnIntroductiontoDatabaseSystem連接操作的執(zhí)行:排序合并法(SORT-MERGE)S表SNOSNAMESTATUSCITYS1精益20天津S2盛錫10北京S3東方紅30北京S4豐泰盛20天津S5為民30上海SPJ表SNOPNOJNOQTYS1P1J1200S1P1J3100S1P1J4700S1P2J2100S2P3J1400S2P3J2200S2P3J4500S2P3J5400S2P5J1400S2P5J2100S3P1J1200S3P3J1200S4P5J1100S4P6J3300S4P6J4200S5P2J4100S5P3J1200S5P6J2200S5P6J4500resultsSNOSNAMECITYQTYS1精益天津200S1精益天津700S1精益天津100S1精益天津200S2盛錫北京100……AnIntroductiontoDatabaseSystem排序合并法(SORT-MERGE)常用于=連接首先按連接屬性對表1和表2排序對表1的第一個元組,從頭開始掃描表2,順序查找滿足連接條件的元組,找到后就將表1中的第一個元組與該元組拼接起來,形成結果表中一個元組。當遇到表2中第一條大于表1連接字段值的元組時,對表2的查詢不再繼續(xù)AnIntroductiontoDatabaseSystem排序合并法找到表1的第二條元組,然后從剛才的中斷點處繼續(xù)順序掃描表2,查找滿足連接條件的元組,找到后就將表1中的第一個元組與該元組拼接起來,形成結果表中一個元組。直接遇到表2中大于表1連接字段值的元組時,對表2的查詢不再繼續(xù)重復上述操作,直到表1或表2中的全部元組都處理完畢為止
AnIntroductiontoDatabaseSystem索引連接(INDEX-JOIN)
select*froms,spjwheres.sno=spj.sno;S表SNOSNAMESTATUSCITYS1精益20天津S2盛錫10北京S3東方紅30北京S4豐泰盛20天津S5為民30上海SPJ表SNOPNOJNOQTYS1P1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2019-2025年二級注冊建筑師之法律法規(guī)經濟與施工題庫檢測試卷A卷附答案
- 鄉(xiāng)村庭院收購合同樣本
- 內勤聘任合同樣本
- 如何與家人溝通財務問題計劃
- 公司車貸合同樣本
- 推廣綠色醫(yī)院建設的計劃
- 隧道涂裝鋼管架施工方案
- 產權車位定金合同標準文本
- 價格保護合同樣本
- 2025年鋼材購銷(訂貨)合同范文
- 《曹沖稱象課件》課件
- 【MOOC】宇宙簡史-南京大學 中國大學慕課MOOC答案
- 餐廳經營管理方案 餐廳的經營與管理計劃
- 公民基本權利課件
- 深度學習及自動駕駛應用 課件 第1、2章 汽車自動駕駛技術概述、深度學習基礎
- 糖尿病診治發(fā)展史
- 美團合作商騎手協議書范文模板
- 2024年湖北省高考化學試卷真題(含答案解析)
- 機器學習 課件 第7章 集成學習
- 視頻剪輯課件范文
- 健身房健身器材使用手冊
評論
0/150
提交評論