關系數(shù)據(jù)模型(基本概念和ER轉(zhuǎn)換).ppt
《關系數(shù)據(jù)模型(基本概念和ER轉(zhuǎn)換).ppt》由會員分享,可在線閱讀,更多相關《關系數(shù)據(jù)模型(基本概念和ER轉(zhuǎn)換).ppt(46頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1 2關系模型 2 三種主要的數(shù)據(jù)模型 層次模型網(wǎng)狀模型關系模型其中關系模型簡單靈活 并有著堅實的理論基礎 已成為當前最流行的數(shù)據(jù)模型 本章主要講述 關系數(shù)據(jù)庫的基本概念關系的定義和性質(zhì)E R到關系的轉(zhuǎn)換 2 1引子 3 層次模型 用樹型 層次 結構表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為層次模型 hierarchicalmodel 層次模型的特點是 記錄之間的聯(lián)系通過指針來實現(xiàn) 查詢效率較高 與文件系統(tǒng)的數(shù)據(jù)管理方式相比 層次模型是一個飛躍 用戶和設計者面對的是邏輯數(shù)據(jù)而不是物理數(shù)據(jù) 用戶不必花費大量的精力考慮數(shù)據(jù)的物理細節(jié) 邏輯數(shù)據(jù)與物理數(shù)據(jù)之間的轉(zhuǎn)換由DBMS完成 層次模型有兩個缺點 一是只能表示1 N聯(lián)系 雖然系統(tǒng)有多種輔助手段實現(xiàn)M N聯(lián)系但較復雜 用戶不易掌握 二是由于層次順序的嚴格和復雜 引起數(shù)據(jù)的查詢和更新操作很復雜 因此應用程序的編寫也比較復雜 4 網(wǎng)狀模型 用有向圖結構表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為網(wǎng)狀模型 networkmodel 網(wǎng)狀模型的特點是 記錄之間聯(lián)系通過指針實現(xiàn) M N聯(lián)系也容易實現(xiàn) 一個M N聯(lián)系可拆成兩個1 N聯(lián)系 查詢效率較高 網(wǎng)狀模型的缺點是 數(shù)據(jù)結構復雜和編程復雜 5 2 2關系模型由來 關系模型是發(fā)展較晚的一種模型 1970年美國IBM公司的研究員E F Codd首次提出了數(shù)據(jù)庫系統(tǒng)的關系模型 他發(fā)表了題為 大型共享數(shù)據(jù)銀行數(shù)據(jù)的關系模型 ARelationModelofDataforLargeSharedDataBanks 在文中解釋了關系模型 定義了某些關系代數(shù)運算 研究了數(shù)據(jù)的函數(shù)相關性 定義了關系的第三范式 從而開創(chuàng)了數(shù)據(jù)庫的關系方法和數(shù)據(jù)規(guī)范化理論的研究 他為此獲得了1981年的圖靈獎 此后許多人把研究方向轉(zhuǎn)到關系方法上 陸續(xù)出現(xiàn)了關系數(shù)據(jù)庫系統(tǒng) 1977年IBM公司研制的關系數(shù)據(jù)庫的代表SystemR開始運行 其后又進行了不斷的改進和擴充 出現(xiàn)了基于SystemR的數(shù)據(jù)庫系統(tǒng)SQL DB 6 20世紀80年代以來 計算機廠商新推出的數(shù)據(jù)庫管理系統(tǒng)幾乎都支持關系模型 非關系系統(tǒng)的產(chǎn)品也都加上了關系接口 數(shù)據(jù)庫領域當前的研究工作也都是以關系方法為基礎 關系數(shù)據(jù)庫已成為目前應用最廣泛的數(shù)據(jù)庫系統(tǒng) 如現(xiàn)在廣泛使用的小型數(shù)據(jù)庫系統(tǒng)Foxpro Acess 大型數(shù)據(jù)庫系統(tǒng)Oracle Informix Sybase SQLServer等都是關系數(shù)據(jù)庫系統(tǒng) 7 1 關系模型的基本概念關系模型的數(shù)據(jù)結構是一個 二維表框架 組成的集合 每個二維表又可稱為關系 所以關系模型是 關系框架 的集合 關系模型與層次模型 網(wǎng)狀模型不同 它是建立在嚴格的數(shù)學概念之上的 表 熟悉 是不是很簡單啊 8 提問 要求 構建一用來描述在校學生的數(shù)據(jù)庫 要求記錄的學生如下屬性 學號 姓名 年齡 系別 此設計很好的將學號 姓名 年齡 系別屬性記錄了下來 并且支持檢索 插入 刪除 更新操作 然而這是不是一個完美的設計呢 9 再提問 問題1 學校有幾個系 答 3個 問題2 經(jīng)管系有幾個學生 答 2個 問題你是怎么知道的 數(shù)出來的 問題1的答案是通過去掉系別列中的重復行后 數(shù)一數(shù)剩余的行數(shù)得到的 問題2的答案是通過數(shù)一數(shù)系別為經(jīng)管系的行數(shù)得到的 10 新要求 如下幾個要求 1 學校開設一個新的系 藝術系 然而藝術系的學生要等到兩個月后才能招進來 2 李四畢業(yè)了 不再是 在校學生 了 將其刪除 3 經(jīng)管系現(xiàn)要更名成 經(jīng)濟管理學院 如何插入一個沒有學生的系呢 這是一個兩難的問題 由于學校有藝術系 為了能夠在檢索 學校有幾個系 時檢索到4 我們不得不插入一行 該行的系別字段記錄上 藝術系 而藝術系沒有學生 所以我們還得讓學號 姓名 年齡字段空著 11 插入藝術系 問 藝術系有幾個學生 數(shù) 不行 解題邏輯發(fā)生變化 如果人數(shù)為1 判斷學號 姓名 年齡是否為空 如果為空則為0人 否則為1人 刪除操作 如果把李四一行刪除 機械系沒有了 所以也不得不修改刪除邏輯 如果某系只剩下最后一條記錄 就不能刪除了 而起清空學號 姓名 年齡字段的內(nèi)容 這么做好嗎 更新操作 經(jīng)管系更名需要修改兩行數(shù)據(jù) 假設剛剛修改完第一行 正要修改下一行 停電死機 當你下次開機后 經(jīng)管系 經(jīng)濟管理學院各一個 12 解決問題 拆分成兩個實體 學生 院系 規(guī)范化 將大表分解為小表的過程 目的是消除冗余和重復數(shù)據(jù) 并避免插入 修改和刪除時出現(xiàn)問題用范式進行規(guī)范化 范式有第一范式 第二范式 第三范式 第四范式 第五范式等 13 關系數(shù)據(jù)庫基本概念 實例 教學數(shù)據(jù)庫的關系模型及其實例 包含五個關系 教師關系T 學生關系S 課程關系C 選課關系SC和授課關系TC 分別對應五張表 下面以其為例 介紹關系模型中所涉及的一些基本概念 14 T 教師表 15 S 學生表 16 C 課程表 17 SC 選課表 TC 授課表 18 1 關系 Relation 一個關系對應一張二維表 如圖的五張表對應五個關系 2 元組 Tuple 表格中的一行 如S表中的一個學生記錄即為一個元組 3 屬性 Attribute 表格中的一列 相當于記錄中的一個字段 如S表中有五個屬性 學號 姓名 性別 年齡 系別 4 關鍵字 Key 可唯一標識元組的屬性或?qū)傩约?也稱為關系鍵或碼 如S表中學號可以唯一確定一個學生 為學生關系的主碼 主關鍵字 19 5 域 Domain 屬性的取值范圍 如年齡的域是 14 40 性別的域是 男 女 6 分量每一行對應的列的屬性值 即元組中的一個屬性值 如學號 姓名 年齡等均是一個分量 7 關系模式對關系的描述 一般表示為 關系名 屬性1 屬性2 屬性n 如 學生 學號 姓名 性別 年齡 系別 20 在關系模型中 實體是用關系來表示的 如 學生 學號 姓名 性別 年齡 系別 課程 課程號 課程名 課時 實體間的關系也是用關系來表示的 如 學生和課程之間的關系選課關系 學號 課程號 成績 21 2 關系模型的數(shù)據(jù)操縱數(shù)據(jù)操縱主要包括查詢 插入 刪除和修改數(shù)據(jù) 這些操作必須滿足關系的完整性約束條件 即實體完整性 參照完整性和用戶定義的完整性 用戶只要指出 干什么 而不必詳細說明 怎么干 從而大大地提高了數(shù)據(jù)的獨立性 提高了用戶的生產(chǎn)率 22 3 關系模型的優(yōu)缺點關系模型的優(yōu)點主要有 1 與非關系模型不同 它有較強的數(shù)學理論根據(jù) 2 數(shù)據(jù)結構簡單 清晰 用戶易懂易用 不僅用關系描述實體 而且用關系描述實體間的聯(lián)系 關系模型的缺點主要有 查詢效率往往不如非關系模型 因此 為了提高性能 必須對用戶的查詢表示進行優(yōu)化 增加了開發(fā)數(shù)據(jù)庫管理系統(tǒng)的負擔 23 1 關系中屬性的順序是無關緊要的 即列的順序可以任意交換 交換時 應連同屬性名一起交換 否則將得到不同的關系 例如 關系T1作如下交換時 無任何影響 如下表所示 2 3關系的重要性質(zhì) 24 而作如下交換時 不交換屬性名 只交換屬性列中的值 則得到不同的關系 如下表 25 2 同一屬性名下的各個屬性值必須來自同一個域 是同一類型的數(shù)據(jù) 職業(yè)屬性下面就應該是教師工人等 不能是男人女人 3 關系中各個屬性必須有不同的名字 不同的屬性可來自同一個域 即它們的分量可以取自同一個域 例如 有如下表中關系 職業(yè)與兼職是兩個不同的屬性 但它們?nèi)∽酝粋€域職業(yè) 教師 工人 輔導員 26 4 關系中每一分量必須是不可分的數(shù)據(jù)項 或者說所有屬性值都是原子的 即是一個確定的值 而不是值的集合 屬性值可以為空值 表示 未知 或 不可使用 即不可 表中有表 滿足此條件的關系稱為規(guī)范化關系 否則稱為非規(guī)范化關系 例如 在表2 8中 籍貫含有省 市 縣兩項 出現(xiàn)了 表中有表 的現(xiàn)象 則為非規(guī)范化關系 而把籍貫分成省 市 縣兩列 將其規(guī)范化 如表2 9所示 表2 8表2 9 27 E R到關系 實體集Entityset 關系relation 屬性Attributes 屬性attributes 關系Relationships 關系例子 影星 電影 制造商 30頁 73頁 實體集 影星 電影 制造商屬性 名字 年代 長度 地址 種類等等關系 stars in owns 實體集對應的轉(zhuǎn)換結果 電影 練習 影星 3 11 關系轉(zhuǎn)換的結果 owns 3 12 stars in 3 13 注意 73頁3 2 2R的屬性也是關系的屬性 R涉及的鍵碼也是R的屬性 改名 28 課堂練習 62頁3 1 1 29 2 4 1候選鍵與關系鍵能唯一標識關系中元組的屬性或?qū)傩约?則稱該屬性或?qū)傩约癁楹蜻x鍵 CandidateKey 也稱候選關鍵字或候選碼 如 學生關系 中的學號能唯一標識每一個學生 則屬性學號是學生關系的候選鍵 在 選課關系 中 只有屬性的組合 學號 課程號 才能唯一地區(qū)分每一條選課記錄 則屬性集 學號 課程號 是選課關系的候選鍵 2 4關系的鍵 30 下面給出候選鍵的形式化定義 設關系R有屬性A1 A2 An 其屬性集K Ai Aj Ak 當且僅當滿足下列條件時 K被稱為候選鍵 1 唯一性 Uniqueness 關系R的任意兩個不同元組 其屬性集K的值是不同的 2 最小性 Minimally 組成關系鍵的屬性集 Ai Aj Ak 中 任一屬性都不能從屬性集K中刪掉 否則將破壞唯一性的性質(zhì)例如 學生關系 中的每個學生的學號是唯一的 選課關系 中 學號 課程號 的組合也是唯一的 對于屬性集 學號 課程號 去掉任一屬性 都無法唯一標識選課記錄 31 如果一個關系中有多個候選鍵 可以從中選擇一個作為查詢 插入或刪除元組的操作變量 被選用的候選鍵稱為主關系鍵 PrimaryKey 或簡稱為主鍵 主碼 關系鍵 關鍵字 例如 假設在學生關系中沒有重名的學生 則 學號 和 姓名 都可作為學生關系的候選鍵 如果選定 學號 作為數(shù)據(jù)操作的依據(jù) 則 學號 為主關系鍵 主關系鍵是關系模型中的一個重要概念 每個關系必需選擇一個主關系鍵 選定以后 不能隨意改變 每個關系必定有且僅有一個主關系鍵 因為關系的元組無重復 至少關系的所有屬性的組合可作為主關系鍵 通常用較小的屬性組合作為主關系鍵 32 2 4 2主屬性與非碼屬性主屬性 PrimeAttribute 包含在候選碼中的的各屬性稱為主屬性 候選碼是學號時 學號就是主屬性非碼屬性 Non PrimeAttribute 不包含在任何候選碼中的屬性稱為非碼屬性 性別 年齡在最簡單的情況下 一個候選碼只包含一個屬性 如學生關系中的 學號 教師關系中的 教師號 在最極終端的情況下 所有屬性的組合是關系的候選碼 這時稱為全碼 all key 主屬性與非碼屬性 33 全碼的例子 下面是一個全碼的例子 假設有教師授課關系TCS 分別有三個屬性教師 T 課程 C 和學生 S 一個教師可以講授多門課程 一門課程可以為多個教師講授 同樣一個學生可以選聽多門課程 一門課程可以為多個學生選聽 在這種情況下 T C S三者之間是多對多關系 T C S 三個屬性的組合是關系TCS的候選碼 稱為全碼 T C S都是主屬性 34 外部關系鍵 2 4 3外部關系鍵例2 1假設在圖1 12所示的教學數(shù)據(jù)庫中增加一個系別關系D 包含兩個屬性系別 DEPT 和地址 ADDR 系別 是此關系的主碼 而 系別 并不是學生關系和教師關系的主碼 雖然都有系別這個屬性 所以 系別 是學生關系和教師關系的外部關系鍵 定義 如果關系R2 學生 教師 的一個或一組屬性 系別 X不是R2的主碼 而是另一關系R1 系別 的主碼 則該屬性或?qū)傩越MX稱為關系R2的外部關系鍵或外碼 Foreignkey 并稱關系R2為參照關系 referencingrelation 關系R1為被參照關系 referencedrelation 35 例2 2如圖1 12所示的選課關系中的 學號 屬性與學生關系的主碼 學號 相對應 課程號 屬性與課程關系的主碼 課程號 相對應 因此 學號 和 課程號 屬性是選課關系的外部關系鍵 學生關系和課程關系為被參照關系 選課關系為參照關系 其主碼是學號 課程號 由外部關系鍵的定義可知 被參照關系的主碼和參照關系的外碼必須定義在同一個域上 如選課關系中的 學號 與學生關系的主碼 學號 定義在同一個域上 課程號 屬性與課程關系的主碼 課程號 定義在同一個域上 36 2 4 4關系模型的完整性為了維護數(shù)據(jù)庫中數(shù)據(jù)與現(xiàn)實世界的一致性 對關系數(shù)據(jù)庫的插入 刪除和修改操作必須有一定的約束條件 這就是關系模型的三類完整性 實體完整性參照完整性用戶定義的完整性1 實體完整性 EntityIntegrity 實體完整性是指主關系鍵的值不能為空或部分為空 關系模型中的一個元組對應一個實體 一個關系則對應一個實體集 例如 一條學生記錄對應著一個學生 學生關系對應著學生的集合 37 現(xiàn)實世界中的實體是可區(qū)分的 即它們具有某種唯一性標識 與此相對應 關系模型中以主關系鍵來唯一標識元組 例如 學生關系中的屬性 學號 可以唯一標識一個元組 也可以唯一標識學生實體 如果主關系鍵中的值為空或部分為空 即主屬性為空 則不符合關系鍵的定義條件 不能唯一標識元組及與其相對應的實體 這就說明存在不可區(qū)分的實體 從而與現(xiàn)實世界中的實體是可以區(qū)分的事實相矛盾 因此主關系鍵的值不能為空或部分為空 例如 學生關系中的主關系鍵 學號 不能為空 選課關系中的主關系鍵 學號 課程號 不能部分為空 即 學號 和 課程號 兩個屬性都不能為空 38 2 參照完整性 Referentialintegrity 如果關系R2的外部關系鍵X與關系R1的主關系鍵相符 則X的每個值或者等于R1中主關系鍵的某一個值 或者取空值 在例2 1系別關系中的屬性 系別 是學生關系外部關系鍵 如圖2 2所示 學生關系中某個學生 如s1或s2 系別 的取值 必須在參照的系別關系中主關系鍵 系別 的值中能夠找到 否則表示把該學生分配到一個不存在的部門中 顯然不符合語義 如果某個學生 如s11 系別 取空值 則表示該學生尚未分配到任何一個系 否則 它只能取專業(yè)關系中某個元組的專業(yè)號值 39 S 學生關系 D 系別關系 圖2 2學生表和系別表 40 在例2 2中 如果按照參照完整性規(guī)則 選課關系中的外部關系鍵 學號 和 課程號 可以取空值或者取被參照關系中已經(jīng)存在的值 但由于 學號 和 課程號 是選課關系中主屬性 根據(jù)實體完整性規(guī)則 兩個屬性都不能為空 所以選課關系中的外部關系鍵 學號 和 課程號 中能取被參照關系中已經(jīng)存在的值 實體完整性和參照完整性是關系模型必須滿足的完整性約束條件 被稱作關系的兩個不變性 任何關系數(shù)據(jù)庫系統(tǒng)都應該支持這兩類完整性 除此之外 不同的關系數(shù)據(jù)庫系統(tǒng)由于應用環(huán)境的不同 往往還需要一些特殊的約束條件 這就是用戶定義完整性 41 3 用戶定義完整性 User definedIntegrity 用戶定義完整性是針對某一具體關系數(shù)據(jù)庫的約束條件 它反映某一具體應用所涉及的數(shù)據(jù)必須滿足的語義要求 例如 屬性值根據(jù)實際需要 要具備一些約束條件 如選課關系中成績不能為負數(shù) 某些數(shù)據(jù)的輸入格式要有一些限制等關系模型應該提供定義和檢驗這類完整性的機制 以便用統(tǒng)一的 系統(tǒng)的方法處理它們 而不要由應用程序承擔這一功能 42 2 5 1關系模式和關系數(shù)據(jù)庫模式一個關系的屬性名的集合R A1 A2 An 叫做關系模式 其中 R為關系名 A1 A2 An為屬性名 i 1 2 n 由定義可以看出 關系模式是關系的框架 或者稱為表框架 指出了關系由哪些屬性構成 是對關系結構的描述 一組關系模式的集合叫做關系數(shù)據(jù)庫模式 2 5關系數(shù)據(jù)庫模式與關系數(shù)據(jù)庫 43 關系數(shù)據(jù)庫模式是對關系數(shù)據(jù)庫結構的描述 或者說是對關系數(shù)據(jù)庫框架的描述 也就是前面所講過的關系頭 可以看作是關系的型 與關系數(shù)據(jù)庫模式對應的數(shù)據(jù)庫中的當前值就是關系數(shù)據(jù)庫的內(nèi)容 稱為關系數(shù)據(jù)庫的實例 即前面所講過的關系體 可以看作是關系的值 例如 在圖1 12所示的教學數(shù)據(jù)庫中 共有五個關系 其關系模式分別為 學生 學號 姓名 性別 年齡 系別 教師 教師號 姓名 性別 年齡 系別 課程 課程號 課程名 課時 選課 學號 課程號 成績 授課 教師號 課程號 44 在每個關系中 又有其相應的數(shù)據(jù)庫的實例例如 與學生關系模式對應的數(shù)據(jù)庫中的實例有如下6個元組 45 2 5 2關系數(shù)據(jù)庫關系數(shù)據(jù)庫是 一組隨時間變化 具有各種度的規(guī)范化關系的集合 因為關系是由關系頭和關系體組成的 所以關系數(shù)據(jù)庫也可以看作是一組關系頭和關系體的集合 由此可見 關系數(shù)據(jù)庫也有型和值的概念 其型就是關系數(shù)據(jù)庫模式 相對固定 其值就是關系數(shù)據(jù)庫內(nèi)容 代表現(xiàn)實世界中的實體 而實體是隨著時間不斷變化的 所以其值在不同的時刻會有所變化 46 例如 圖1 12所示的教學數(shù)據(jù)庫是五個關系的集合 或者說是五個關系頭和五個關系體的集合 其中 各個關系頭相對固定 而關系體的內(nèi)容 會隨時間而變化 比如 學生和教師的年齡隨時間而增長 教師的工資和崗位津貼也會發(fā)生變化- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 關系 數(shù)據(jù)模型 基本概念 ER 轉(zhuǎn)換
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
鏈接地址:http://m.kudomayuko.com/p-5306911.html