




已閱讀5頁,還剩504頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第一章數(shù)據(jù)庫系統(tǒng)的世界TheWorldsofDatabaseSystems 數(shù)據(jù)庫系統(tǒng)的發(fā)展數(shù)據(jù)庫管理系統(tǒng)的結構未來的數(shù)據(jù)庫系統(tǒng) 1 2 1 1數(shù)據(jù)庫系統(tǒng)的發(fā)展c 一 術語1 數(shù)據(jù)庫是長期儲存在計算機內的 有組織的 可共享的數(shù)據(jù)的集合 2 3 2 數(shù)據(jù)庫管理系統(tǒng) 3 數(shù)據(jù)庫系統(tǒng)基礎教程AFirstCourseinDatabaseSystemsDBMS DataBaseManagementSystem是處理數(shù)據(jù)庫訪問的軟件 提供數(shù)據(jù)庫的用戶接口 DBMS的目的 提供一個可以方便地 有效地存取數(shù)據(jù)庫信息的環(huán)境 4 5 3 數(shù)據(jù)庫系統(tǒng)是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng) 5 6 數(shù)據(jù)庫系統(tǒng)構成 6 7 保存信息的兩種不同方法 永久性的系統(tǒng)文件 數(shù)據(jù)庫系統(tǒng) 文件方式的問題 數(shù)據(jù)的冗余和不一致數(shù)據(jù)訪問困難數(shù)據(jù)孤立完整性問題原子性問題并發(fā)訪問異常安全性問題 二 文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng) 7 8 數(shù)據(jù)庫方法能較好地解決以上的問題數(shù)據(jù)的獨立性有效地訪問數(shù)據(jù)減少應用程序的開發(fā)時間數(shù)據(jù)的一致性和安全性統(tǒng)一的數(shù)據(jù)管理并發(fā)的數(shù)據(jù)訪問 三 為什么用數(shù)據(jù)庫 8 9 幾種模型 基于樹的層次模型基于圖的網(wǎng)狀模型物理相關 無高級查詢語言基于表的關系模型物理無關 支持高級查詢語言 基于對象的面向對象模型OOOR 四 數(shù)據(jù)庫模型的發(fā)展 定長記錄 9 10 關系數(shù)據(jù)庫系統(tǒng) 10 11 關查詢語言SQL語言SELECTbalanceFROMAccountsWHEREaccountNO 67890 關系數(shù)據(jù)庫系統(tǒng) 11 12 DBMS的組成數(shù)據(jù) 元數(shù)據(jù)存儲管理程序事務管理程序查詢處理程序 1 2數(shù)據(jù)庫管理系統(tǒng)的結構 12 13 數(shù)據(jù) 元數(shù)據(jù)關于數(shù)據(jù)結構的信息 關于數(shù)據(jù)的數(shù)據(jù) 索引 INDEX DBMS的組成 13 14 存儲管理程序文件管理程序緩沖區(qū)管理查程序 DBMS的組成 14 15 查詢處理程序查詢優(yōu)化磁盤訪問 是查詢的主要代價 索引是查詢優(yōu)化的利器 DBMS的組成 15 16 事務管理程序事務 是用戶定義的一個數(shù)據(jù)庫操作序列事務的四個特性原子性A一致性C隔離性I持久性D DBMS的組成 16 17 客戶 服務器程序體系結構瀏覽器 服務器體系結構 DBMS的組成 17 18 客戶 服務器程序體系結構瀏覽器 服務器體系結構 1 3未來的數(shù)據(jù)庫系統(tǒng) 18 第二章數(shù)據(jù)庫建模DatabaseModeling 19 20 數(shù)據(jù)庫的設計步驟 需求收集和分析設計概念結構設計邏輯結構設計物理結構物理實現(xiàn) 20 21 數(shù)據(jù)庫的設計步驟 需求收集和分析用戶關心什么用戶要什么結果設計概念結構設計邏輯結構設計物理結構物理實現(xiàn) 21 22 數(shù)據(jù)庫的設計步驟 需求收集和分析設計概念結構存什么關系 聯(lián)系 如何ODL或E R圖 是各種數(shù)據(jù)模型的共同基礎設計邏輯結構設計物理結構物理實現(xiàn) 22 23 數(shù)據(jù)庫的設計步驟 需求收集和分析設計概念結構設計邏輯結構用什么數(shù)據(jù)模型數(shù)據(jù)庫的模式 databaseschema 用戶子模式設計物理結構物理實現(xiàn) 23 24 數(shù)據(jù)庫的設計步驟 需求收集和分析設計概念結構設計邏輯結構設計物理結構數(shù)據(jù)怎么存根據(jù)DBMS產(chǎn)品 環(huán)境特點物理實現(xiàn) 24 25 數(shù)據(jù)庫的設計步驟 需求收集和分析設計概念結構設計邏輯結構設計物理結構物理實現(xiàn)運行DDL裝入測試數(shù)據(jù)應用程序 25 26 數(shù)據(jù)庫的設計步驟 想法需求 ODL E R 關系 RDBMS OODBMS 26 27 2 1ODL 對象定義語言ObjectDefinitionLanguage以面向對象的觀點 方法 說明數(shù)據(jù)庫的概念結構可方便地直接轉換成OODBMS的說明經(jīng)過努力 可以轉換成RDBMS的說明 27 28 面向對象的設計 對象標識 OID對象與對象的區(qū)別類具有相同特性的對象歸為一類對象的歸并必須有意義屬于同一類的對象其特性必須相同 28 29 面向對象的設計 對象的三個特性屬性 特性聯(lián)系 引用方法 函數(shù)接口說明interface 29 30 屬性對象某方面的特征 屬性就是數(shù)據(jù)只由基本數(shù)據(jù)類型構成屬性的類型 不能是類 也不能從類中構造InterfaceMovie MovieClass的ODL說明attributestringtitle attributeintegeryear attributeintegerlength attributeenumFilm color blackAndWhite filmType 30 31 InterfaceStar attributestringname attributeStructAddr stringstreet stringcity address 31 32 聯(lián)系對象的引用對象的關聯(lián)對象集合的引用 1 N RelationshipSetstars 單一對象集合的引用 1 1 RelationshipStarstarOf 32 33 反向聯(lián)系ODL要求顯式表示存在的反向聯(lián)系InterfaceMovie MovieClass的ODL說明attributestringtitle attributeintegeryear attributeintegerlength attributeenumFilm color blackAndWhite filmType relationshipSetstarsinverseStar starredIn Star與Movie的聯(lián)系 33 34 聯(lián)系的多重性N N在聯(lián)系中 每個C都和D的集合有關 而在反向聯(lián)系中 每個D都和C的集合有關N 1在聯(lián)系中 每個C都和唯一的D有關 而在反向聯(lián)系中 每個D都和C的集合有關1 1在聯(lián)系中 每個C都和唯一的D有關 而在反向聯(lián)系中 每個D都和唯一的C有關 34 35 InterfaceMoive relationshipSetstarsinverseStar staredIn relationshipStudioownedByinverseStudio owns InterfaceStar relationshipSetstaredIninverseMoive stars InterfaceStudio relationshipSetownsinverseMoive ownedBy 35 36 ODL中的類型基本類型原子類型接口類型結構類型 可由以下類型組合而成集合無重復 次序無關包可重復 次序無關列表可重復 次序相關數(shù)組結構 36 37 2 2實體聯(lián)系圖 E R 用圖形的方法 描述實體及實體間的聯(lián)系世界由一組稱作實體的基本對象及這些對象間的聯(lián)系組成元素實體 Entity 客觀存在并可相互區(qū)別的事件或物體對應于ODL中的對象實體集 EntitySet 同類 具有相同類型 相同性質 實體的集合對應于ODL中的類用矩形表示 37 38 2 2實體聯(lián)系圖 E R 元素屬性 Attribute 實體所具有的某一特性用與實體集相連的橢圓表示聯(lián)系 Relationship 實體集之間的關聯(lián)可涉及多個實體集可表示雙向的聯(lián)系用與相應的實體集相連的菱形表示 38 39 Movies Stars Stars in lenght filmType title year name address 39 40 E R聯(lián)系的多重性N與1的表示 Movies Stars Stars in Studios Presidents Runs Movies Studios Owns 40 41 聯(lián)系的多向性E R圖能方便地描述兩個以上實體集間的聯(lián)系 41 42 聯(lián)系中的角色實體集在聯(lián)系中的作用參與聯(lián)系的實體集互異只標注聯(lián)系名同一實體集在一個聯(lián)系中多次出現(xiàn)標注聯(lián)系名及角色名 42 43 聯(lián)系中的屬性聯(lián)系中可以包含屬性由聯(lián)系而產(chǎn)生的屬性可為由聯(lián)系產(chǎn)生的屬性建立實體集 Stars Movies Contracts Studios salary 43 44 將多向聯(lián)系轉換成二元聯(lián)系新增連接實體集引入連接實體集至原實體集的多對一的聯(lián)系 44 45 2 3設計原則 真實性設計應當忠于規(guī)范存什么避免冗余任何事物只表達一次避免引入過多的元素選擇合適的元素類型屬性 類 實體集 聯(lián)系集 45 46 2 4子類 特殊化與概括子類與超類屬性的繼承 46 47 ODL中的子類子類繼承其超類的所有特性屬性聯(lián)系InterfaceCartoon Movie relationshipsetvoices 47 48 ODL中的多重繼承類的層次一個類可以有多個超類InterfaceMurderMystery Movie attributestringweapon InterfaceCartoon MurderMystery Cartoon MurderMystery 48 49 E R中的子類IsaE R中的繼承 49 50 2 5對約束的建模 建模包含對現(xiàn)實世界的對象及聯(lián)系的描述 也包含對它們的一些約束鍵碼單值約束參照完整性約束域的約束一般約束 50 51 鍵碼在類的范圍內唯一標識一個對象 或者在實體集的范圍內唯一標識一個實體 的屬性或屬性集一個類中的兩個對象 或一個實體集中的兩個實體 在構成鍵碼的屬性集上取值不能相同ODL中鍵碼的表示interfaceMovie key title year 51 52 超碼一個或多個屬性的集合 能在一個實體集中唯一地標識一個實體一個類 或實體集 中可能有多個超碼候選碼其任意真子集都不為超碼的超碼一個類 或實體集 中可能有多個候選碼主碼從候選碼中選取的一個 一個類 實體集 中只有一個主碼E R圖中只能表示主碼 主碼屬性名加上下劃線 52 53 單值約束要求某個角色的值是唯一的 如鍵碼當一個屬性為單值時可以要求該屬性值存在 notnull 可以允許該屬性值任選 null 構成鍵碼的屬性 必須有值存在 notnull 53 54 參照完整性約束要求由某個對象引用的值在數(shù)據(jù)庫中確實存在參照與被參照 引用與被引用參照完整性約束的操作 各產(chǎn)品不同 禁止刪除被引用的對象級聯(lián)刪除 修改E R圖中參照完整性的表示 54 55 2 6弱實體集 弱實體集的屬性不足以形成主碼有主碼的實體集稱為強實體集弱實體集只有作為一對多聯(lián)系的一部分 多 才有意義弱實體集與其擁有者之間的聯(lián)系是標識性聯(lián)系 55 56 2 7關于聯(lián)系集 聯(lián)系集的成份參加聯(lián)系的實體集的主碼聯(lián)系集的屬性聯(lián)系中屬性的決策 二元聯(lián)系 1 1聯(lián)系集的屬性 放到任意一端1 N聯(lián)系集的屬性 放到N端N M聯(lián)系集的屬性 只能留在聯(lián)系集中 56 57 聯(lián)系集的取舍 二元聯(lián)系 1 1聯(lián)系 將一端的主碼作為另一端的屬性1 N聯(lián)系 將一端的主碼作為N端的屬性N M聯(lián)系 必須保留聯(lián)系集聯(lián)系集的鍵碼 二元聯(lián)系 1 1聯(lián)系 任意一端的主碼1 N聯(lián)系 N端的主碼N M聯(lián)系 參加聯(lián)系的所有實體集的主碼 57 58 ODL E R建模關心 存什么數(shù)據(jù) 關系如何不關心 用什么數(shù)學模型 DBMS產(chǎn)品透過E R圖 便于與用戶交流 58 59 作業(yè)思考所有帶 的練習 并上網(wǎng)查閱解答練習2 1 7 2 2 8 2 3 2 2 5 3 2 5 4 2 6 4 a 59 第三章關系數(shù)據(jù)模型TheRelationalDataModel 60 61 ODL E R到關系模型的轉換關系模型的設計理論 61 62 3 1關系模型的基本概念 邏輯數(shù)據(jù)模型是用戶從數(shù)據(jù)庫所看到的數(shù)據(jù)模型與DBMS有關層次 網(wǎng)狀 關系 面向對象 62 63 關系數(shù)據(jù)模型數(shù)據(jù)結構兩維的扁平表數(shù)據(jù)操作關系代數(shù)關系演算數(shù)據(jù)的完整性實體完整性參照完整性用戶定義的完整性 63 64 現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關系表示關系數(shù)據(jù)庫系統(tǒng)是建立在關系模型上的數(shù)據(jù)庫系統(tǒng)關系數(shù)據(jù)庫是表的集合 64 65 模型和模式數(shù)據(jù)模型是描述數(shù)據(jù)的手段數(shù)據(jù)模式是用給定的數(shù)據(jù)模型對具體數(shù)據(jù)的描述屬性元組域型值聯(lián)系關系的聯(lián)系是通過關聯(lián)屬性的值連接的 65 66 元組 行 記錄 Student sno sname ssex sage sdept 66 67 關系實例關系 實體集 類關系的實例 元組的集合元組 實體 對象數(shù)據(jù)庫實例 給定時刻數(shù)據(jù)庫中數(shù)據(jù)的一個快照 67 68 3 2從ODL設計到關系設計 ODL設計是概念設計的產(chǎn)物 UsingOO ODL描述 關系模式 實現(xiàn) 68 69 ODL屬性 關系屬性原子屬性類 關系屬性 屬性非原子屬性 復雜數(shù)據(jù)類型 必須轉換成原子屬性記錄結構結構的每個item對應一個屬性多值集合針對每個值建立一個元組會產(chǎn)生冗余 需規(guī)范化 69 70 ODL屬性 關系屬性 續(xù) 其他類型屬性 包 數(shù)組 列表 針對每個元素建立一個元組增加一個記數(shù)屬性 表示包的成員號定長數(shù)組擴展為多個屬性 70 71 ODL聯(lián)系 關系描述單值聯(lián)系聯(lián)系的類型為一個類增加一個 組 屬性 存放相關類的鍵碼屬性 組 將類之間的聯(lián)系 關系之間的聯(lián)系 71 72 ODL聯(lián)系 關系描述 續(xù) 多值聯(lián)系聯(lián)系的類型為某個類的集合類型1 N N M增加一個鍵碼屬性為集合的每個成員建立一個元組其他原始屬性重復多次 與集合成員的個數(shù)相等 導致大量的冗余 需要規(guī)范化 72 73 鍵碼是必需的選擇合適的屬性 組 作為鍵碼學號 工號 身份證號 增加計數(shù)屬性聯(lián)系與反向聯(lián)系在聯(lián)系的雙方均有聯(lián)系的描述 冗余ODL 雙向描述E R 相關的鍵碼值進行連接 73 74 3 3從E R圖到關系的設計 E R與ODL描述的差異聯(lián)系作為獨立的概念 聯(lián)系嵌套在類定義中結構化數(shù)據(jù) 允許使用集合 聚集類型聯(lián)系可以有屬性 聯(lián)系無屬性E R 關系模式 實現(xiàn) 74 75 實體集到關系的轉換非弱實體集實體集名 關系名屬性 屬性弱實體集為弱實體集建立關系屬性 弱實體集的屬性 輔助實體集的鍵碼 75 76 E R聯(lián)系到關系的轉換用關系表示聯(lián)系聯(lián)系名 關系名屬性 屬性 相關實體集的鍵碼屬性 集 多向聯(lián)系的轉換注意 屬性的命名 76 77 3 4子類結構到關系的轉換 ODL中的子類一個對象完全屬于一個類子類繼承其超類的特性E R中的子類分層結構通過與ISA聯(lián)系有關的實體集進行擴展 77 78 用關系表示ODL子類每個子類都有自己的關系包含該子類的所有特性 含繼承特性 在一個關系中含有所有屬性Movie title year length filmType studioName starName Cartoon title year length filmType studioName starName voice MurderMystery title year length filmType studioName starName weapon Cartoon MurderMystery title year length filmType studioName starName voice weapon 78 79 在關系模型中表示isa聯(lián)系子類的信息被分散到上層的幾個關系中與ISA聯(lián)系有關的實體集擁有相同的鍵碼Movie title year length filmType Cartoon title year MurderMystery title year weapon Voice title year name 79 80 使用NULL值合并關系將關系描述成一個 全集 屬性 所有可能的屬性描述 允許Null值層次越高 取Null值的屬性越多Movie title year length filmType studioName starName voice weapon 只是一種方法而已 80 81 作業(yè)思考所有帶 的練習 并上網(wǎng)查詢解答練習3 2 3 3 3 1 3 4 1 3 5 3 81 82 3 5函數(shù)依賴 數(shù)據(jù)依賴函數(shù)依賴多值依賴數(shù)據(jù)依賴是針對數(shù)據(jù)模式 而不是特定的實例 82 83 函數(shù)依賴 FD 屬性之間的聯(lián)系假設給定X屬性的值 就知道Y的值 那么X函數(shù)決定Y如果R的兩個元組在屬性A1 A2 An上一致 則它們在另一個屬性B上也一致 那么A1 A2 An函數(shù)決定B 記作A1A2 An BifA1A2 An B1thenA1A2 An B2A1A2 An B1B2 Bm A1A2 An Bm 83 84 關系的鍵碼如果一個或多個屬性的集合 A1A2 An 滿足如下條件 則該集合為關系R的鍵碼 1 這些屬性函數(shù)決定該關系的所有其他屬性2 A1A2 An 的任何真子集都不能函數(shù)決定R的所有其他屬性 84 85 超鍵碼包含鍵碼的屬性集稱為超鍵碼 85 86 尋找關系的鍵碼 來自E R 來自實體集的關系的鍵碼就是該實體集的鍵碼屬性對于二元聯(lián)系R N M 相關兩個實體的鍵碼都是R的鍵碼屬性N 1 多端實體集的鍵碼是R的加碼屬性1 1 任意一端實體集的鍵碼是R的鍵碼對于多向聯(lián)系R 如果多向聯(lián)系R有一個箭頭指向實體集E 則響應的關系中 除了E的鍵碼以外 至少還存在一個鍵碼 86 87 尋找關系的鍵碼 來自ODL 來自ODL的關系的鍵碼不一定就是該類的鍵碼屬性對于單值聯(lián)系R 類C有一個指向類D的單值聯(lián)系 C的關系中包含D的鍵碼 C的鍵碼仍是相應關系的鍵碼對于多值聯(lián)系R 被引用類的鍵碼加入到引用類的鍵碼組合稱為鍵碼 87 88 3 6函數(shù)依賴規(guī)則 分解規(guī)則A1A2 An B1B2 Bm等價于A1A2 An Bi合并規(guī)則A1A2 An Bi等價于A1A2 An B1B2 Bm 88 89 平凡的函數(shù)依賴如果對于函數(shù)依賴A1A2 An B B是A中的一個 則該函數(shù)依賴就是平凡的函數(shù)依賴平凡依賴是永恒的title year title非平凡如果B中至少有一個屬性不在A中title year year length完全非平凡如果B中沒有一個屬性在A中title year length 89 90 計算屬性的閉包閉包F的閉包是指F邏輯蘊涵的所有函數(shù)依賴的集合 記作F 閉包的意義檢驗給定的函數(shù)依賴是否蘊涵于某個函數(shù)依賴集S從給定的函數(shù)依賴 可以推導出蘊涵的函數(shù)依賴求閉包例 對關系R A B C D E F 給定函數(shù)依賴AB C BC AD D E CF B 求 A B 90 91 關系的基與最小基任何一個能從中導出關系的所有依賴的給定依賴集 稱為該關系的一個基如果一個基的任何真子集都不能推導出該關系的依賴全集 則稱此基為最小基求函數(shù)依賴的最小基例 對關系R A B C D 有A BC B C A B AB C AC D 求最小函數(shù)依賴集 91 92 3 7關系數(shù)據(jù)庫模式設計 什么是好的數(shù)據(jù)庫設計體現(xiàn)客觀世界的信息無過度的冗余無插入異常無更新復雜無刪除異常 92 93 更新復雜 刪除異常 93 94 異常的原因數(shù)據(jù)依賴的約束解決方法數(shù)據(jù)庫設計的規(guī)范化 分解 94 95 范式 NormalForms 規(guī)范化一個關系滿足某個范式所規(guī)定的一系列條件時 它就屬于該范式可以用規(guī)范化要求來設計數(shù)據(jù)庫也可以用來驗證設計結果的合理性 用其指導優(yōu)化過程1NF 2NF 3NF BCNF 4NF 95 96 第一范式 1NF 當且僅當一個關系R中 每一個元組的每一個屬性只含有一個值時 該關系屬于第一范式 要求屬性是原子的 96 97 第二范式 2NF 對于關系R 若R 1NF 且每一個非主屬性完全函數(shù)依賴于碼 則R 2NF 不能部分依賴于碼sc sno sname cno grade sno cno gradesno sname 完全依賴 非完全依賴 97 98 第三范式 3NF 對于關系R 若R 2NF 且每個非主屬性都不傳遞依賴于碼 則R 3NF 主屬性可以傳遞依賴于碼student sno sname sdept dept manager sno sname sdeptsdept dept manager傳遞依賴 sno dept manager 98 99 Boyce Codd范式 BCNF 對于關系R 若R 1NF 且所有非平凡的函數(shù)依賴 其決定因素是候選碼 則R BCNF sct s c t 學生 課程 教師t c 每位教師只上一門課 s c t s t c 每門課有若干位教師 99 100 最高范式BCNF是基于函數(shù)依賴的最高范式但不是數(shù)據(jù)庫模式設計的最高范式 100 101 范式優(yōu)化分解 A1 A2 An B1 B2 Bn C1 C2 Cn 分解的要求無損連接B C B或B C C保持依賴范式要求 101 102 分解到高層范式 基于FD 找出一個不符合范式要求的FD X Y 并使其右端的屬性盡可能地多 求出X 創(chuàng)建新的模式 包含上述FD的所有 左右 屬性 X 的所有屬性 創(chuàng)建另一模式 包含前述FD中的決定因素及剩余的所有屬性 U X X 反復1 3 直至符合范式要求 102 103 3 8多值依賴 BCNF仍有異常 103 104 多值依賴 MVD 按P 110的定義 104 105 多值依賴 MVD 設R U 是屬性集U上的一個關系 X Y Z是U的子集 且Z U X Y 關系R U 中多值依賴X Y成立 當且僅當對R U 的任一元組r 給定一對 x z 值 有一組y的值 這組值僅僅取決于x值 而與z值無關 對給定X的值 則Y的取值與Z的取值無關 105 106 給定一對 x z 值 有一組y的值 106 107 name title year 107 108 平凡的多值依賴如果X包含Y或X Y U 則X Y是平凡的多值依賴性質IfX Y andY ZthenX Z YIfX Y andZ U X YthenX ZIfX YthenX Y無分解 合并規(guī)則 108 109 第四范式 4NF 對于關系R 若R 1NF 且所有非平凡的多值依賴 其決定因素是候選碼 則R 4NF 基于數(shù)據(jù)依賴的最高范式分解要求無損連接保持依賴4NF 109 110 name title yearname street cityAllKeyisBCNFisn t4NF R1 name title year R2 name street city AllKeyis4NF 110 111 范式間的聯(lián)系高層范式包含低層范式分解特性 111 112 作業(yè)思考所有帶 的練習 并上網(wǎng)查詢解答練習3 7 5 3 8 3 112 第四章關系模型中的運算 OperationsInTheRelationalModel 113 114 概述 數(shù)據(jù)庫的核心應用是數(shù)據(jù)庫的查詢查詢語言用戶用來從數(shù)據(jù)庫中請求獲取信息的語言關系代數(shù)是過程化的查詢語言關系代數(shù)是一種抽象的查詢語言 114 115 4 1關系代數(shù) 運算對象 關系運算結果 關系 115 116 關系代數(shù) 關系代數(shù)的運算普通的集合運算并 交 差刪除部分關系的運算選擇 投影合并兩個關系元組的運算連接 積改名運算 116 117 關系代數(shù) 并Union R和S的并 R S 是在R或S或兩者中的元素的集合一個元素在并集中只出現(xiàn)一次R和S必須同類型 屬性集相同 次序相同 但屬性名可以不同 117 118 關系代數(shù) 交Intersect R和S的交 R S 是在R和S中都存在的元素的集合一個元素在交集中只出現(xiàn)一次R和S必須同類型 屬性集相同 次序相同 但屬性名可以不同 118 119 關系代數(shù) 差Minus R和S的差 R S 是在R中而不在S中的元素的集合R和S必須同類型 屬性集相同 次序相同 但屬性名可以不同 119 120 關系代數(shù) 投影Projection 從關系R中選擇若干屬性組成新的關系 A1 A2 An R 表示從R中選擇屬性集A1 A2 An組成新的關系列的運算投影運算的結果中 也要去除可能的重復元組例 ssex sage student 120 121 關系代數(shù) 選擇Selection 從關系R中選擇符合條件的元組構成新的關系 C R 表示從R中選擇滿足條件 使邏輯表達式C為真 的元組行的運算例 sage 23ANDsdep CS student 例 列出CS系的學號及姓名 sno sname sdep CS student 121 122 關系代數(shù) 笛卡兒積 關系R S的笛卡兒積是兩個關系的元組對的集合所組成的新關系R S 屬性是R和S的組合 有重復 元組是R和S所有元組的可能組合是R S的無條件連接 使任意兩個關系的信息能組合在一起例 student sc 注意sno的命名 122 123 關系代數(shù) 自然連接 從R S的結果集中 選取在某些公共屬性上具有相同值的元組 組成新的關系R S的公共屬性屬性集的交集 名稱及類型相同 公共屬性在結果中只出現(xiàn)一次等值連接例 studentsc 注意sno的命名 123 124 關系代數(shù) 條件連接 從R S的結果集中 選取在指定的屬性集上滿足 條件的元組 組成新的關系 是一個關于屬性集的邏輯表達式RCS 124 125 關系代數(shù) 改名 對關系R實施改名運算 可顯式地改變關系名及屬性名將關系R改名為S s R 將關系R B1 B2 Bn 改名S A1 A2 An S A1 A2 An R 125 126 關系代數(shù) 查詢中的復合運算 例 找出比 95001 年齡大的學生的學號和姓名 年齡 s sno s sname s sage s student s sage stu sage stu sno 95001 stu student 126 127 關系代數(shù) 查詢中的復合運算 例 找出比 95001 年齡大的學生的學號和姓名 年齡 與前例的結果有何差異 s sno s sname s sage stu sno 95001 ands sage stu sage s student stu student 127 128 關系代數(shù) 外連接 是連接運算的擴展 可以處理缺失信息保留非匹配元組外連接左外連接右外連接全外連接 128 129 關系代數(shù) 左外連接 取出左側關系中所有與右側關系的任一元組都不匹配的元組 用空值填充所有來自右側關系的屬性 再把產(chǎn)生的元組加到自然連接的結果上例 列出影星的當官情況 是影星 可能不是官 MovieStarMovieExec 129 130 關系代數(shù) 右外連接 與左外連接對稱例 列出行政長官的從影情況 是長官 可能不是影星 MovieStarMovieExec 130 131 關系代數(shù) 全外連接 左外連接與右外連接的合成例 列出所有行政長官和所有影星的關系MovieStarMovieExec 131 132 4 5對關系的約束 關系數(shù)據(jù)模型數(shù)據(jù)結構關系操作關系的完整性約束實體完整性參照完整性用戶定義的完整性 132 133 用關系代數(shù)作為約束語言 用關系代數(shù)可以表達約束R 0 R 0R S R S 0 133 134 參照完整性約束 如果對象 實體 A與對象 實體 B相關 那么B必須存在如果一個關系R的一個元組有個分量值為v 那么期望v將出現(xiàn)在另一個關系S的某個元組的特定分量中 v R v S 134 135 參照完整性約束 例 Movie關系中 每部電影的制片人必須出現(xiàn)在MovieExec關系中Movie title year length incolor studioName producerC MoiveExec name address cert networth 每個Movie元組的producerC 分量必須出現(xiàn)在MovieExec元組的cert 分量中 producerC Movie cert MovieExec producerC Movie cert MovieExec 0 135 136 參照完整性約束 例 影星只能于存在的Movie中出演角色Movie title year length incolor studioName producerC starsIn movieTitle movieYear starName movieTitle movieYear starsIn title year Movie 136 137 附加約束 函數(shù)依賴 對關系student 有sno sname stu1 sno stu2 snoANDstu1 snamestu2 sname stu1 stu2 0 137 138 附加約束 用戶定義的約束 某些屬性的取值有特定的要求 gender F ANDgender M MovieStar 0 138 139 4 6包的關系運算 集合無重復順序無關包可重復順序無關商業(yè)數(shù)據(jù)庫系統(tǒng)往往是基于包的采用包可以獲得比集合快的運算速度 139 140 包的關系運算 并 交 差投影 選擇乘積 連接不必去除重復元組 140 141 作業(yè) 練習4 1 1 4 5 1 4 5 4 4 5 5 141 第五章數(shù)據(jù)庫語言SQL 142 143 概述 SQL的發(fā)展1974年 由Boyce和Chamberlin提出1975 1979 IBMSanJoseResearchLab的關系數(shù)據(jù)庫管理系統(tǒng)原型SystemR實施了這種語言SQL 86是第一個SQL標準SQL 89 SQL 92 SQL2 SQL 99 SQL3 143 144 概述 現(xiàn)狀大部分DBMS產(chǎn)品都支持SQL 成為操作數(shù)據(jù)庫的標準語言有方言 支持程度不同 144 145 數(shù)據(jù)定義 DDL 定義 刪除 修改關系模式 基本表 定義 刪除視圖 View 定義 刪除索引 Index 數(shù)據(jù)操縱 DML 數(shù)據(jù)查詢數(shù)據(jù)增 刪 改數(shù)據(jù)控制 DCL 用戶訪問權限的授予 收回 概述 SQL的功能 145 146 交互式SQL一般DBMS都提供聯(lián)機交互工具用戶可直接鍵入SQL命令對數(shù)據(jù)庫進行操作由DBMS來進行解釋 概述 SQL的形式 146 147 嵌入式SQL能將SQL語句嵌入到高級語言 宿主語言 使應用程序充分利用SQL訪問數(shù)據(jù)庫的能力 宿主語言的過程處理能力一般需要預編譯 將嵌入的SQL語句轉化為宿主語言編譯器能處理的語句 概述 SQL的形式 147 148 數(shù)據(jù)定義Create Drop Alter數(shù)據(jù)操縱數(shù)據(jù)查詢 Select數(shù)據(jù)修改 Insert Update Delete數(shù)據(jù)控制Grant Revoke 概述 SQL的動詞 148 149 數(shù)據(jù)查詢是數(shù)據(jù)庫應用的核心功能基本結構SelectA1 A2 AnFromr1 r2 rmWhereP A1 A2 An p r1 r1 rm 數(shù)據(jù)查詢 149 150 Select語句的含義 對From子句中的各關系 作笛卡兒積 對Where子句中的邏輯表達式進行選擇 運算 找出符合條件的元組根據(jù)Select子句中的屬性列表 對上述結果作投影 操作 150 151 Select語句的含義 結果集查詢操作的對象是關系 結果還是一個關系 是一個結果集 是一個動態(tài)數(shù)據(jù)集 151 152 Select子句 對應于關系代數(shù)的投影 運算 用以列出查詢結果集中的期望屬性 152 153 SQL具有包的特性Select子句的缺省情況是保留重復元組 ALL 可用Distinct去除重復元組SelectDistinctsdeptFromStudentSelectAllsdeptFromStudent去除重復元組 費時需要臨時表的支持 Select子句 重復元組 153 154 Select子句 與屬性列表 星號 表示所有屬性星號 按關系模式中屬性的順序排列 并具有一定的邏輯數(shù)據(jù)獨立性顯式列出屬性名 按用戶順序排列Select FromStudentSelectStudent cno gradeFromStudent SCWhereStudent sno SC sno 154 155 Select子句 更名 為結果集中的某個屬性改名使結果集更具可讀性Selectsnoasstu no cnoascourse no gradeFromSCSelectsno sname 2001 sageasbirthdayFromStudent 155 156 Where子句 where子句對應與關系代數(shù)中的選擇 查詢滿足指定條件的元組可以通過Where子句來實現(xiàn)使where子句中的邏輯表達式返回True值的元組 是符合要求的元組 將被選擇出來 156 157 Where子句 運算符 比較 not 確定范圍 BetweenAandB NotBetweenAandB確定集合 IN NOTIN字符匹配 LIKE NOTLIKE空值 ISNULL ISNOTNULL多重條件 AND OR NOT 157 158 Where子句 Like 字符匹配 Like NotLike通配符 匹配任意字符串 匹配任意一個字符大小寫敏感 158 159 Where子句 Like 例 列出姓張的學生的學號 姓名 Selectsno snameFromStudentWheresnameLIKE 張 159 160 Where子句 Like 例 列出張姓且單名的學生的學號 姓名 Selectsno snameFromStudentWheresnameLIKE 張 160 161 Where子句 轉義符escape 例 列出課程名稱中帶有 的課號及課名 Selectcno cnameFromCourseWherecnameLIKE escape 161 162 From子句 From子句對應與關系代數(shù)中的笛卡兒積 列出將被掃描的關系 表 例 列出所有學生的學號 姓名 課號 成績 SelectSudent sno sname SC cno gradeFromStudent SCWhereStudent sno SC sno 162 163 From子句 元組變量 為From子句中的關系定義元組變量方便關系名的引用在同一關系的笛卡兒積中進行辨別例 列出與95001同歲的同學的學號 姓名 年齡SelectT sno T sname T sageFromStudentasT StudentasSWhereS sno 95001 ANDT sage S sage 163 164 OrderBy子句 指定結果集中元組的排列次序耗時ASC 缺省 DESC 未選中的屬性例 列出CS系中的男生的學號 姓名 年齡 并按年齡進行排列 升序 Selectsno sname sageFromStudentWheresdept CS OrderBysageASC 164 165 SQL的集合操作 SQL的結果集是 包 多個Select語句的結果可以進行集合操作 使結果為 集合 default SQL 92支持參加集合操作的關系 結果集 必須是相容的 165 166 SQL的集合操作 相容 屬性個數(shù)必須一致對應的類型必須一致屬性名無關最終結果集采用第一個結果的屬性名缺省為自動去除重復元組除非顯式說明ALLOrderBy放在整個語句的最后 166 167 SQL的集合操作 并 union 并 對應與關系代數(shù)的 標準SQL都支持的采用集合的觀點 合成多個查詢的結果select without orderby UNION ALL select without orderby UNION ALL select without orderby ORDERBYinteger ASC DESC 167 168 例 查詢計算機系的學生或者年齡不大于19歲的學生 并按年齡倒排序 SQL的集合操作 并 168 169 intersect 交 對應與關系代數(shù)的 并不是所有的DBMS都支持例 查詢計算機系的學生并且年齡不大于19歲的學生 并按年齡倒排序 源碼網(wǎng)整理 SQL的集合操作 交 169 170 except 差 對應與關系代數(shù)的 并不是所有的DBMS都支持例 查詢計算機系的男生 SQL的集合操作 差 170 171 數(shù)據(jù)定義語言 DataDefinitionLanguage Create Drop Alter定義一組關系 基本表 說明各關系的信息各關系的模式各屬性的值域完整性約束索引安全性和權限 數(shù)據(jù)定義語言 DDL 171 172 字符型char n varchar n 數(shù)值型integer smallintnumeric p d real double float n 日期 時間型datetime DDL SQL中的域類型 172 173 域定義語句 SQL 92支持 需重復使用的CreateDomainstu namevarchar 20 CreateDomainzip codechar 6 DDL SQL中的域類型 173 174 CreateTabler A1D1 A2D2 AnDn 其中 r關系名 表名 Ai關系r的一個屬性名Dn屬性Ai域值的域類型主鍵聲明 primarykey Aj1 Aj2 Ajvm DDL SQL的模式定義 174 175 CreateDomainstu namevarchar 20 CreateTableStudent snochar 10 primarykey sno snamestu name sagesmallint ssexchar 1 sdeptchar 2 DDL SQL的模式定義 175 176 CreateTableCourse cnochar 10 primarykey cno cnamevarchar 20 creditsmallint CreateTableSC snochar 10 notnull cnochar 10 notnull gradesmallint primarykey sno cno DDL SQL的模式定義 176 177 用SQL刪除關系 表 將整個關系模式 表結構 徹底刪除表中的數(shù)據(jù)也將被刪除DropTablerDropTablestudent DDL 刪除表結構Drop 177 178 刪除表中的某屬性去除屬性及相應的數(shù)據(jù)AlterTablerDropA DDL 修改模式Alter 178 179 增加表中的屬性向已經(jīng)存在的表中添加屬性allownull已有的元組中該屬性的值被置為NullAlterTablerAddADAlterTablestudentphonechar 16 DDL 修改模式Alter 179 180 屬性的默認值用戶不提供某屬性的值時 默認值被使用初始值TimeStampDDL中 ModifyDatechar 30 DefaultTimeStamp AlterTablestudentAddIDintegerDefaultAutoIncrement DDL DefaultValue 180 181 定義一個新的域 用戶定義的域 需要重復使用的域必須具有相同類型的屬性CreateDomainAs CreateDomaindatelogAschar 30 defaulttimestamp域的刪除DropDomaindatelog各DBMS的方法是不同的Restrict Cascade使用該域的屬性的處理 DDL 域定義 181 182 索引是一種數(shù)據(jù)結構 是對照表 指針表索引是為了加速對表中元組的檢索而創(chuàng)建的一種分散存儲結構 B樹 索引是對表而建立的 由除存放表的數(shù)據(jù)頁面以外的索引頁面組成索引是把雙刃劍 減慢更新的速度索引不是SQL標準的要求 DDL 索引Index 182 183 索引的種類聚簇索引 ClusteredIndex 非聚簇索引 Non ClusteredIndex DDL 索引Index 183 184 聚簇索引 ClusteredIndex 表中的元組按聚簇索引的順序物理地存放根級頁面 中間層頁面 葉級頁面 數(shù)據(jù)頁面 一個表中只能有一個聚簇索引更新的復雜性 需要大量的臨時空間 DDL 索引Index 184 185 非聚簇索引 Non ClusteredIndex 表中元組存儲的物理順序與索引的順序無關葉級索引頁面是指向數(shù)據(jù)頁面的指針每個表可有多個非聚簇索引 DDL 索引Index 185 186 CREATE UNIQUE CLUSTERED NONCLUSTERED INDEXindex nameOnTableName Column Column CreateIndexYearIndexOnMovie year CreateClusteredIndexSnoIndexOnstudent sno DropIndexYearIndex DDL 索引Index 186 187 查詢與更新的評估查詢多 更新多 索引的覆蓋Where表達式Where表達式的順序索引越多越好嗎 了解優(yōu)化器 DDL 索引的使用 187 188 數(shù)據(jù)添加用SQL的插入語句 向數(shù)據(jù)庫表中添加數(shù)據(jù)按關系模式的屬性順序InsertIntoStudentValues 95001 張三 27 M CS 按指定的屬性順序 也可以只添加部分屬性 非Null屬性為必需 InsertIntoStudent sno sname sage Values 95002 李四 26 188 189 把一列中的值進行聚合運算 返回單值的函數(shù)五個預定義的聚合函數(shù)平均值 Avg總和 Sum最小值 Min最大值 Max計數(shù) CountCount Count Distinct 聚合函數(shù) 189 190 GroupBy將查詢結果集按某一列或多列的值分組 值相等的為一組 一個分組以一個元組的形式出現(xiàn)只有出現(xiàn)在GroupBy子句中的屬性 才可出現(xiàn)在Select子句中例 統(tǒng)計各系學生的人數(shù) Selectsdept count asstu countFromStudentGroupBysdept 聚合函數(shù) 190 191 Having針對聚合函數(shù)的結果值進行篩選 選擇 它作用于分組計算結果集跟在GroupBy子句的后面 沒有GroupBy則針對全表例 列出具有兩門 含 以上不及格的學生的學號 不及格的課目數(shù) Selectsno count sno FromSCWheregrade 2 聚合函數(shù) 191 192 Having與Where的區(qū)別Where決定哪些元組被選擇參加運算 作用于關系中的元組Having決定哪些分組符合要求 作用于分組聚合函數(shù)的條件關系必須用Having Where中不應出現(xiàn)聚合函數(shù) 聚合函數(shù) 192 193 聚合函數(shù)忽略NullCount 不計Sum 不將其計入Avg 具有Null的元組不參與Max Min 不參與例 Selectcount sdept FromStudentSelectAvg sage FromStudent 聚合函數(shù) Null 193 194 子查詢是嵌套在另一查詢中的Select From Where表達式 Where Having SQL允許多層嵌套 由內而外地進行分析 子查詢的結果作為父查詢的查找條件可以用多個簡單查詢來構成復雜查詢 以增強SQL的查詢能力子查詢中不使用OrderBy子句 OrderBy子句只能對最終查詢結果進行排序 子查詢 Subquery 194 195 返回單值的子查詢 只返回一行一列父查詢與單值子查詢之間用比較運算符進行連接運算符 例 找出與95001同齡的學生Select FromStudentWheresage SelectsageFromStudentWheresno 95001 子查詢 單值比較 195 196 子查詢返回多行一列運算符 In All Some Any Exists 子查詢 多值 196 197 標量值與子查詢返回集中的某一個相等 trueIN被用來測試多值中的成員例 查詢選修 C01 課程的學生的學號 姓名 Selectsno snameFromStudentWheresn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年湖南省長沙市中考招生考試數(shù)學真題試卷(真題+答案)
- 預防肺炎主題班會課件
- 預防疾病安全課件
- 靜脈治療護士教育培訓體系
- 《電子產(chǎn)品裝配與測試》課件-任務2 儀器的使用
- 預防兒童近視課件
- 預防傳染保健康課件
- 學校輔導員(班導師)管理及考評辦法
- 城市污水管網(wǎng)建設項目節(jié)能評估報告(參考模板)
- 2025年年云服務項目合作計劃書
- 玩具行業(yè)智能玩具設計制造系統(tǒng)研發(fā)方案
- 成都大學附屬中學語文新初一分班試卷含答案
- 富馬酸泰吉利定注射液-臨床藥品解讀
- 酒店安全事故經(jīng)典案例分析
- 《分析化學》課程思政教學案例(一等獎)
- TCANSI 133-2024 液化天然氣(LNG)燃料動力船舶槽車氣試加注作業(yè)安全要求
- 改革開放三十年云南省金融業(yè)發(fā)展研究
- FIDIC施工合同條件(1999版,紅皮書)
- 第八章《運動和力》達標測試卷(含答案)2024-2025學年度人教版物理八年級下冊
- 【課件】當代圖書館的功能定位與 信息資源建設的發(fā)展趨勢
- 2025屆小升初語文總復習:《文言文閱讀》(附答案解析)
評論
0/150
提交評論