2014 春季 信息11,12 DB P,T&A-張祖平 數據庫原理、技術及應用 張祖平/Zhang Zuping 電子信息工程系 School of Information Science and Engineering,Central South University , zpzhang@mail.csu.edu.cn 本章小結 關系模型中的相關概念 關系(集合),性質,關系模型,關系數據庫, 關系的完整性 三類完整性,實體,參照與用戶自定義 關系操作 關系代數(重點) 元組演算 域演算(QBE) 關系系統 四種類型,關系的查詢優化 作業 P50 練習題 信息11級 1 3 元組,候選碼,關系模式 4 (1),(3)用關系代數與元組演算,(5)關系代數 5 (1) 信息12級 2 3 關系,關系模型,關系系統 4 (2),(4)用關系代數與元組演算,(6)關系代數 5 (2) 域關系演算語言QBE-15 例9 查詢有兩個人以上選修的課程號。 本查詢是在一個表內連接。這個查詢就是要顯示這樣的課程1,它不僅被05001選修,并且也被另一個學生(┑05001)選修了。 域關系演算語言QBE-16 更新操作 修改操作 插入操作 域關系演算語言QBE-17 修改操作 修改操作符為“U.”。在QBE中,關系的主碼不允許修改,如果需要修改某個元組的主碼,只能先刪除該元組,然后再插入新的主碼的元組。 域關系演算語言QBE-18 例10 把05001學生的年齡改為18歲。 ① 這是一個簡單修改操作,不包含算術表達式,因此可以有兩種表示方法。將操作符“U.”放在值上; ② 將操作符“U.”放在關系上; 這是這里,碼05001標明要修改的元組。“”標明所在的行是修改后的新值。由于主碼是不能修改的,所以即使在第(2)種寫法中,系統也不會混淆要修改的屬性 域關系演算語言QBE-19 例11 把05001學生的年齡增加1歲。 這個修改操作涉及表達式,所以只能將操作符“U.”放在關系上。 域關系演算語言QBE-20 插入操作 插入操作符為“I.”。新插入的元組必須具有碼值,其他屬性值可以為空。 例12 把信息系女生05701,姓名張三,年齡17歲存入數據庫中。 域關系演算語言QBE-21 刪除操作 刪除操作符為“D.”。 例13 刪除學生05089。 由于SC關系與Student關系之間具有參照關系,為保證參照完整性,刪除05089學生后,通常還應刪除05089學生選修的全部課程。 關系系統的分類-1 分類依據----依據關系系統支持關系模型的程度不同分類 表式系統 僅支持關系數據結構(即表),最早的鏈表式系統。 (最小)關系系統 支持:關系數據結構 選擇、投影、連接關系操作 一般的關系數據庫系統為最小關系如ACCESS,MYSQL等。 關系系統的分類-2 關系上完備的系統 支持:關系數據結構,如所有的關系代數操作 大型數據庫系統一般為完備式關系系統,如DB2,ORACLE,SQL SERVER等。 全關系系統 支持:關系模型的所有特征。 特別是數據結構中域的概念,實體完整性和參照完整性。 是理想的關系系統定義,一般現在還沒有,是大型數據庫系統努力的方向。 關系數據庫系統的查詢優化-1 關系數據庫系統和非過程化的SQL語言能夠取得巨大的成功,關鍵是得益于查詢優化技術的實現發展。關系查詢優化是影響RDBMS性能的關鍵因素。 優化對關系系統來說既是挑戰又是機遇。所謂挑戰是指關系系統為了達到用戶可以接受的性能必須進行查詢優化。由于關系表達式的語義級別很高,使關系系統可以從關系表達式中分析查詢語義,提供了執行查詢優化的可能性。這就為關系系統在性能上接近甚至超過非關系系統提供了機遇。 關系數據庫系統的查詢優化-2 關系系統的查詢優化既是RDBMS實現的關鍵技術又是關系系統的優點所在。它減輕了用戶選擇存取路徑的負擔。用戶只要提出“干什么”,不必提出“怎么干”。 查詢優化的特點不僅在于用戶不必考慮如果最好地表達查詢以獲得較好的效率,而且在于系統可以比用戶程序的“優化”做得更好。 關系數據庫查詢優化的總目標是:選擇有效的策略,求得給定關系表達式的值。 關系數據庫系統的查詢優化-3 實際系統對查詢優化的具體實現不盡相同,但一般來說,可以歸納為四個步驟: ① 將查詢轉換成某種內部表示,通常是語法樹。 ② 根據一定的等價變換規則把語法樹轉換成標準(優化)形式。 ③ 選擇低層的操作算法。對于語法樹中的每一個操作需要根據存取路徑、數據的存儲分布、存儲數據的聚簇等信息來選擇具體的執行算法。 ④ 生成查詢計劃。 關系數據庫系統的查詢優化-4 在集中式數據庫中,查詢的執行開銷主要包括: 總代價=I/O代價+C