第一章 數(shù)據(jù)庫導(dǎo)論(2)_第1頁
第一章 數(shù)據(jù)庫導(dǎo)論(2)_第2頁
第一章 數(shù)據(jù)庫導(dǎo)論(2)_第3頁
第一章 數(shù)據(jù)庫導(dǎo)論(2)_第4頁
第一章 數(shù)據(jù)庫導(dǎo)論(2)_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、An Introduction to Database Systems1/80第一章 緒論(下)1.1 數(shù)據(jù)庫系統(tǒng)概述數(shù)據(jù)庫系統(tǒng)概述1.2 數(shù)據(jù)模型數(shù)據(jù)模型1.3 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)1.4 數(shù)據(jù)庫系統(tǒng)的組成數(shù)據(jù)庫系統(tǒng)的組成1.5 小結(jié)小結(jié)An Introduction to Database Systems2/80 1.2 數(shù)據(jù)模型 1.2.1 兩大類數(shù)據(jù)模型兩大類數(shù)據(jù)模型 1.2.2 數(shù)據(jù)模型的組成要素?cái)?shù)據(jù)模型的組成要素 1.2.3 概念模型概念模型 1.2.4 最常用的數(shù)據(jù)模型最常用的數(shù)據(jù)模型 1.2.5 層次模型層次模型 1.2.6 網(wǎng)狀模型網(wǎng)狀模型 1.2.7 關(guān)系模型關(guān)系模

2、型An Introduction to Database Systems3/80 1.2.4 最常用的數(shù)據(jù)模型o非關(guān)系模型n層次模型(Hierarchical Model)n網(wǎng)狀模型(Network Model)o關(guān)系模型(Relational Model) o面向?qū)ο竽P?Object Oriented Model)o對象關(guān)系模型(Object Relational Model)An Introduction to Database Systems4/801.2.5 層次模型o層次模型是數(shù)據(jù)庫系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型 o層次數(shù)據(jù)庫系統(tǒng)的典型代表是IBM公司的IMS(Information M

3、anagement System)數(shù)據(jù)庫管理系統(tǒng)o層次模型用樹形結(jié)構(gòu)來表示各類實(shí)體以及實(shí)體間的聯(lián)系 An Introduction to Database Systems5/80一、 層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)o層次模型滿足滿足下面兩個條件的基本層次聯(lián)系的集合為層次模型下面兩個條件的基本層次聯(lián)系的集合為層次模型1. 有且只有一個結(jié)點(diǎn)沒有雙親結(jié)點(diǎn),這個結(jié)點(diǎn)稱為根結(jié)點(diǎn)有且只有一個結(jié)點(diǎn)沒有雙親結(jié)點(diǎn),這個結(jié)點(diǎn)稱為根結(jié)點(diǎn)2. 根以外的其它結(jié)點(diǎn)有且只有一個雙親結(jié)點(diǎn)根以外的其它結(jié)點(diǎn)有且只有一個雙親結(jié)點(diǎn)o層次模型中的幾個術(shù)語n根結(jié)點(diǎn),雙親結(jié)點(diǎn),兄弟結(jié)點(diǎn),葉結(jié)點(diǎn)根結(jié)點(diǎn),雙親結(jié)點(diǎn),兄弟結(jié)點(diǎn),葉結(jié)點(diǎn)An Introdu

4、ction to Database Systems6/80層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù)) 1 根結(jié)點(diǎn)根結(jié)點(diǎn) 2 兄弟結(jié)點(diǎn)兄弟結(jié)點(diǎn) 3 葉結(jié)點(diǎn)葉結(jié)點(diǎn) 4 兄弟結(jié)點(diǎn)兄弟結(jié)點(diǎn) 5 葉結(jié)點(diǎn)葉結(jié)點(diǎn) 葉結(jié)點(diǎn)葉結(jié)點(diǎn)圖圖1.16 一個層次模型的示例一個層次模型的示例An Introduction to Database Systems7/80層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))o層次模型的特點(diǎn):n結(jié)點(diǎn)的雙親是唯一的結(jié)點(diǎn)的雙親是唯一的n只能直接處理只能直接處理一對多一對多的實(shí)體聯(lián)系的實(shí)體聯(lián)系n每個記錄類型可以定義一個每個記錄類型可以定義一個排序字段排序字段,也稱為,也稱為碼字段碼字段n任何記錄值只有任何記錄值只有按其路徑

5、查看時(shí),才能顯出它的全部意義按其路徑查看時(shí),才能顯出它的全部意義n沒有一個子女記錄值能夠脫離雙親記錄值而獨(dú)立存在沒有一個子女記錄值能夠脫離雙親記錄值而獨(dú)立存在An Introduction to Database Systems8/80層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))圖1.17 教員學(xué)生層次數(shù)據(jù)庫模型 根結(jié)點(diǎn)根結(jié)點(diǎn)記錄型系的子女結(jié)點(diǎn)記錄型系的子女結(jié)點(diǎn)記錄型教員的雙親結(jié)點(diǎn)記錄型教員的雙親結(jié)點(diǎn)葉結(jié)點(diǎn)葉結(jié)點(diǎn)葉結(jié)點(diǎn)葉結(jié)點(diǎn)字段字段An Introduction to Database Systems9/80層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))圖1.18 教員學(xué)生層次數(shù)據(jù)庫的一個值 An Introduction t

6、o Database Systems10/80二、多對多聯(lián)系在層次模型中的表示o多對多聯(lián)系在層次模型中的表示n用層次模型用層次模型間接間接表示多對多聯(lián)系表示多對多聯(lián)系n方法方法將多對多聯(lián)系將多對多聯(lián)系分解分解成一對多聯(lián)系成一對多聯(lián)系n分解方法分解方法o冗余結(jié)點(diǎn)法冗余結(jié)點(diǎn)法o虛擬結(jié)點(diǎn)法虛擬結(jié)點(diǎn)法An Introduction to Database Systems11/80冗余結(jié)點(diǎn)法冗余結(jié)點(diǎn)法學(xué)生學(xué)生課程課程 優(yōu)點(diǎn)優(yōu)點(diǎn):結(jié)構(gòu)清晰,存儲位置可以改變; 缺點(diǎn)缺點(diǎn):需要額外的存儲空間,有可能導(dǎo)致不一致性。An Introduction to Database Systems12/80虛擬結(jié)點(diǎn)法虛擬結(jié)點(diǎn)

7、法 優(yōu)點(diǎn)優(yōu)點(diǎn):節(jié)省空間,避免數(shù)據(jù)不一致性; 缺點(diǎn)缺點(diǎn):改變存儲位置需要修改虛擬結(jié)點(diǎn)中的指針。An Introduction to Database Systems13/80三、層次模型的數(shù)據(jù)操縱與完整性約束 o層次模型的數(shù)據(jù)操縱層次模型的數(shù)據(jù)操縱n查詢n插入n刪除n更新 An Introduction to Database Systems14/80層次模型的數(shù)據(jù)操縱與完整性約束(續(xù))o層次模型的完整性約束條件層次模型的完整性約束條件 n無相應(yīng)的雙親結(jié)點(diǎn)值就不能插入子女結(jié)點(diǎn)值n如果刪除雙親結(jié)點(diǎn)值,則相應(yīng)的子女結(jié)點(diǎn)值也被同時(shí)刪除n更新操作時(shí),應(yīng)更新所有相應(yīng)記錄,以保證數(shù)據(jù)的一致性An Intro

8、duction to Database Systems15/80四、層次數(shù)據(jù)模型的存儲結(jié)構(gòu)-鄰接法o鄰接法: 按照層次樹前序遍歷的順序把所有記錄值依次鄰接存放,即通過物理空間的位置相鄰來實(shí)現(xiàn)層次順序。o按鄰接法存放圖1.20(b)中以根記錄A1為首的層次記錄實(shí)例集 圖圖1.20 層次數(shù)據(jù)庫及其實(shí)例層次數(shù)據(jù)庫及其實(shí)例 順序存儲結(jié)構(gòu)順序存儲結(jié)構(gòu)An Introduction to Database Systems16/80層次數(shù)據(jù)模型的存儲結(jié)構(gòu)-子女子女-兄弟鏈接兄弟鏈接法法每個記錄設(shè)兩類指針,分別指向最左邊的子女(每個記錄型對應(yīng)一個,長子)和最近的兄弟。An Introduction to Da

9、tabase Systems17/80層次數(shù)據(jù)模型的存儲結(jié)構(gòu)-鏈接法o層次序列鏈接層次序列鏈接法法:按樹的前序穿越順序鏈接各記錄值。An Introduction to Database Systems18/80五、層次模型的優(yōu)缺點(diǎn)o優(yōu)點(diǎn)優(yōu)點(diǎn)n層次模型的層次模型的數(shù)據(jù)結(jié)構(gòu)比較簡單清晰數(shù)據(jù)結(jié)構(gòu)比較簡單清晰 n查詢效率高查詢效率高,性能優(yōu)于關(guān)系模型,不低于網(wǎng)狀模型,性能優(yōu)于關(guān)系模型,不低于網(wǎng)狀模型n層次數(shù)據(jù)模型提供了層次數(shù)據(jù)模型提供了良好的完整性支持良好的完整性支持o缺點(diǎn)缺點(diǎn)n多對多多對多聯(lián)系表示不自然聯(lián)系表示不自然n對插入和刪除操作的限制多,對插入和刪除操作的限制多,應(yīng)用程序的編寫比較復(fù)雜應(yīng)用程

10、序的編寫比較復(fù)雜 n查詢查詢子女結(jié)點(diǎn)必須通過雙親結(jié)點(diǎn)子女結(jié)點(diǎn)必須通過雙親結(jié)點(diǎn)n由于結(jié)構(gòu)嚴(yán)密,由于結(jié)構(gòu)嚴(yán)密,層次命令趨于程序化層次命令趨于程序化 An Introduction to Database Systems19/80 1.2 數(shù)據(jù)模型 1.2.1 兩大類數(shù)據(jù)模型兩大類數(shù)據(jù)模型 1.2.2 數(shù)據(jù)模型的組成要素?cái)?shù)據(jù)模型的組成要素 1.2.3 概念模型概念模型 1.2.4 最常用的數(shù)據(jù)模型最常用的數(shù)據(jù)模型 1.2.5 層次模型層次模型 1.2.6 網(wǎng)狀模型網(wǎng)狀模型 1.2.7 關(guān)系模型關(guān)系模型An Introduction to Database Systems20/801.2.6 網(wǎng)狀模型

11、o網(wǎng)狀數(shù)據(jù)庫系統(tǒng)采用網(wǎng)狀數(shù)據(jù)庫系統(tǒng)采用網(wǎng)狀模型網(wǎng)狀模型作為數(shù)據(jù)的組織方式作為數(shù)據(jù)的組織方式 o典型代表是典型代表是DBTG系統(tǒng):系統(tǒng):n亦稱CODASYL系統(tǒng)n70年代由DBTG提出的一個系統(tǒng)方案n奠定了數(shù)據(jù)庫系統(tǒng)的基本概念、方法和技術(shù)o實(shí)際系統(tǒng)實(shí)際系統(tǒng)nCullinet Software Inc.公司的 IDMSnUnivac公司的 DMS1100nHoneywell公司的IDS/2nHP公司的IMAGEAn Introduction to Database Systems21/801.網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)o網(wǎng)狀模型1. 允許一個以上的結(jié)點(diǎn)無雙親;允許一個以上的結(jié)點(diǎn)無雙親;2. 一個結(jié)點(diǎn)可

12、以有多于一個的雙親一個結(jié)點(diǎn)可以有多于一個的雙親。o表示方法(與層次數(shù)據(jù)模型相同)n實(shí)體型實(shí)體型:用記錄類型描述,每個結(jié)點(diǎn)表示一個記錄類:用記錄類型描述,每個結(jié)點(diǎn)表示一個記錄類型(實(shí)體)型(實(shí)體)n屬性屬性:用字段描述,每個記錄類型可包含若干個字段:用字段描述,每個記錄類型可包含若干個字段n聯(lián)系聯(lián)系:用結(jié)點(diǎn)之間的連線表示記錄類型(實(shí)體)之間:用結(jié)點(diǎn)之間的連線表示記錄類型(實(shí)體)之間的的一對多的父子聯(lián)系一對多的父子聯(lián)系A(chǔ)n Introduction to Database Systems22/80網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))o網(wǎng)狀模型與層次模型的區(qū)別n網(wǎng)狀模型允許多個結(jié)點(diǎn)網(wǎng)狀模型允許多個結(jié)點(diǎn)沒有雙

13、親結(jié)點(diǎn)沒有雙親結(jié)點(diǎn)n網(wǎng)狀模型允許結(jié)點(diǎn)有網(wǎng)狀模型允許結(jié)點(diǎn)有多個雙親結(jié)點(diǎn)多個雙親結(jié)點(diǎn)n網(wǎng)狀模型允許網(wǎng)狀模型允許兩個結(jié)點(diǎn)之間有多種聯(lián)系兩個結(jié)點(diǎn)之間有多種聯(lián)系(復(fù)合聯(lián)系)(復(fù)合聯(lián)系)n網(wǎng)狀模型可以網(wǎng)狀模型可以更直接地去描述現(xiàn)實(shí)更直接地去描述現(xiàn)實(shí)世界世界層次模型實(shí)際上是網(wǎng)狀模型的一個層次模型實(shí)際上是網(wǎng)狀模型的一個特例特例An Introduction to Database Systems23/80網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))v網(wǎng)狀模型中子女結(jié)點(diǎn)與雙親結(jié)點(diǎn)的聯(lián)系可以不唯一網(wǎng)狀模型中子女結(jié)點(diǎn)與雙親結(jié)點(diǎn)的聯(lián)系可以不唯一要為每個聯(lián)系命名要為每個聯(lián)系命名,并指出與該聯(lián)系有關(guān)的雙親記錄和,并指出與該聯(lián)系有關(guān)的雙親

14、記錄和子女記錄子女記錄 R1與與R3之間的之間的聯(lián)系聯(lián)系L1R2與與R3之間的之間的聯(lián)系聯(lián)系L2 An Introduction to Database Systems24/80網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))網(wǎng)狀模型的例子 An Introduction to Database Systems25/80網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))多對多聯(lián)系在網(wǎng)狀模型中的表示n用網(wǎng)狀模型用網(wǎng)狀模型間接間接表示多對多聯(lián)系表示多對多聯(lián)系n方法:將多對多聯(lián)系方法:將多對多聯(lián)系直接直接分解成一對多聯(lián)系分解成一對多聯(lián)系A(chǔ)n Introduction to Database Systems26/80網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù)

15、)例如:一個學(xué)生可以選修若干門課程,某一課程可以被多個學(xué)生選修,學(xué)生與課程之間是多對多聯(lián)系 o引進(jìn)一個學(xué)生選課的聯(lián)結(jié)記錄,由3個數(shù)據(jù)項(xiàng)組成:學(xué)號,課程號,成績,表示某個學(xué)生選修某一門課程及其成績 圖1.24 學(xué)生/選課/課程的網(wǎng)狀數(shù)據(jù)模型 An Introduction to Database Systems27/80三、網(wǎng)狀數(shù)據(jù)模型的存儲結(jié)構(gòu)o關(guān)鍵n實(shí)現(xiàn)記錄之間的聯(lián)系實(shí)現(xiàn)記錄之間的聯(lián)系o常用方法n單向鏈接單向鏈接n雙向鏈接雙向鏈接n環(huán)狀鏈接環(huán)狀鏈接n向首鏈接向首鏈接An Introduction to Database Systems28/80網(wǎng)狀數(shù)據(jù)模型的存儲結(jié)構(gòu)(續(xù))圖1.25 學(xué)生/選

16、課/課程的網(wǎng)狀數(shù)據(jù)庫實(shí)例 學(xué)生記錄學(xué)生記錄課程記錄課程記錄選課記錄選課記錄An Introduction to Database Systems29/80四、網(wǎng)狀數(shù)據(jù)模型的優(yōu)缺點(diǎn)o優(yōu)點(diǎn)n能夠能夠更為直接更為直接地描述現(xiàn)實(shí)世界,如一個結(jié)點(diǎn)可以有地描述現(xiàn)實(shí)世界,如一個結(jié)點(diǎn)可以有多個雙親多個雙親n具有具有良好的性能良好的性能,存取,存取效率效率較高較高o缺點(diǎn)n結(jié)構(gòu)比較結(jié)構(gòu)比較復(fù)雜復(fù)雜,而且隨著應(yīng)用環(huán)境的擴(kuò)大,數(shù)據(jù)庫,而且隨著應(yīng)用環(huán)境的擴(kuò)大,數(shù)據(jù)庫的結(jié)構(gòu)就變得越來越復(fù)雜,不利于最終用戶掌握的結(jié)構(gòu)就變得越來越復(fù)雜,不利于最終用戶掌握n操作復(fù)雜操作復(fù)雜:DDL、DML語言復(fù)雜,用戶不容易使用語言復(fù)雜,用戶

17、不容易使用An Introduction to Database Systems30/80 1.2 數(shù)據(jù)模型 1.2.1 兩大類數(shù)據(jù)模型兩大類數(shù)據(jù)模型 1.2.2 數(shù)據(jù)模型的組成要素?cái)?shù)據(jù)模型的組成要素 1.2.3 概念模型概念模型 1.2.4 最常用的數(shù)據(jù)模型最常用的數(shù)據(jù)模型 1.2.5 層次模型層次模型 1.2.6 網(wǎng)狀模型網(wǎng)狀模型 1.2.7 關(guān)系模型關(guān)系模型An Introduction to Database Systems31/801.2.7 關(guān)系模型o關(guān)系數(shù)據(jù)庫系統(tǒng)采用關(guān)系模型作為數(shù)據(jù)的組織方式 o1970年美國IBM公司San Jose研究室的研究員E.F.Codd首次提出了數(shù)據(jù)

18、庫系統(tǒng)的關(guān)系模型 o計(jì)算機(jī)廠商新推出的數(shù)據(jù)庫管理系統(tǒng)幾乎都支持關(guān)系模型 nOraclenDB2nSybase, SQL Server, InfomixAn Introduction to Database Systems32/80一、關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu) o在在用戶觀點(diǎn)用戶觀點(diǎn)下,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,下,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。它由行和列組成。學(xué) 號姓 名年 齡性 別系 名年 級2005004王小明19女社會學(xué)20052005006黃大鵬20男商品學(xué)20052005008張文斌18女法律2005學(xué)生登記表學(xué)生登記表屬性屬性元組元組An Intr

19、oduction to Database Systems33/80關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))o關(guān)系(關(guān)系(Relation)一個關(guān)系對應(yīng)通常說的一張表o元組(元組(Tuple)表中的一行即為一個元組o屬性(屬性(Attribute) 表中的一列即為一個屬性,給每一個屬性起一個名稱即屬性名An Introduction to Database Systems34/80關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))o主碼(主碼(Key)表中的某個屬性組,它可以唯一確定一個元組。o域(域(Domain)屬性的取值范圍。o分量分量元組中的一個屬性值。o關(guān)系模式關(guān)系模式對關(guān)系的描述關(guān)系名(屬性1,屬性2,屬性n)學(xué)生(

20、學(xué)號,姓名,年齡,性別,系,年級)An Introduction to Database Systems35/80關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))例1: 學(xué)生、系、系與學(xué)生之間的一對多聯(lián)系:學(xué)生(學(xué)號,姓名,年齡,性別,系號,年級)學(xué)生(學(xué)號,姓名,年齡,性別,系號,年級)系系 ( (系號,系名,辦公地點(diǎn)系號,系名,辦公地點(diǎn)) )例2: 系、系主任、系與系主任間的一對一聯(lián)系例3:學(xué)生、課程、學(xué)生與課程之間的多對多聯(lián)系:學(xué)生(學(xué)號,姓名,年齡,性別,系號,年級)學(xué)生(學(xué)號,姓名,年齡,性別,系號,年級)課程(課程號,課程名,學(xué)分)課程(課程號,課程名,學(xué)分)選修(學(xué)號,課程號,成績)選修(學(xué)號,課程

21、號,成績)An Introduction to Database Systems36/80關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))o關(guān)系必須是規(guī)范化的,滿足一定的規(guī)范條件關(guān)系必須是規(guī)范化的,滿足一定的規(guī)范條件最基本的規(guī)范條件:關(guān)系的每一個分量必須是一個不可分的數(shù)據(jù)項(xiàng), 不允許表中還有表。 職工號姓名職 稱工 資扣 除實(shí) 發(fā)基 本津 貼職務(wù)房 租水 電86051陳 平講 師13051200501601122283圖圖1.27 一個工資表一個工資表(表中有表表中有表)實(shí)例實(shí)例 An Introduction to Database Systems37/80關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))關(guān)系術(shù)語一般表格的術(shù)語關(guān)系

22、名表名關(guān)系模式表頭(表格的描述)關(guān)系(一張)二維表元組記錄或行屬性列屬性名列名屬性值列值分量一條記錄中的一個列值非規(guī)范關(guān)系表中有表(大表中嵌有小表)表表1.2 術(shù)語對比術(shù)語對比 An Introduction to Database Systems38/80二、關(guān)系數(shù)據(jù)模型的操縱與完整性約束o數(shù)據(jù)操作是數(shù)據(jù)操作是集合操作集合操作,操作對象和操作結(jié)果都是關(guān)系,操作對象和操作結(jié)果都是關(guān)系n查詢n插入n刪除n更新o數(shù)據(jù)操作是集合操作,操作對象和操作結(jié)果都是關(guān)系,數(shù)據(jù)操作是集合操作,操作對象和操作結(jié)果都是關(guān)系,即若干元組的集合即若干元組的集合.o存取路徑對用戶隱蔽,用戶只要指出存取路徑對用戶隱蔽,用戶

23、只要指出“干什么干什么”,不必,不必詳細(xì)說明詳細(xì)說明“怎么干怎么干”.An Introduction to Database Systems39/80關(guān)系數(shù)據(jù)模型的操縱與完整性約束(續(xù))o關(guān)系的完整性約束條件 n實(shí)體完整性n參照完整性n用戶定義的完整性An Introduction to Database Systems40/80三、關(guān)系數(shù)據(jù)模型的存儲結(jié)構(gòu)o實(shí)體及實(shí)體間的聯(lián)系都用表來表示o表以文件形式存儲n有的DBMS一個表對應(yīng)一個操作系統(tǒng)文件n有的DBMS自己設(shè)計(jì)文件結(jié)構(gòu)An Introduction to Database Systems41/80四、關(guān)系數(shù)據(jù)模型的優(yōu)缺點(diǎn)o優(yōu)點(diǎn)優(yōu)點(diǎn)n建立在

24、建立在嚴(yán)格的數(shù)學(xué)概念嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上的基礎(chǔ)上n概念單一概念單一o實(shí)體和各類聯(lián)系都用關(guān)系來表示o對數(shù)據(jù)的檢索結(jié)果也是關(guān)系n關(guān)系模型的存取路徑對用戶透明關(guān)系模型的存取路徑對用戶透明o具有更高的數(shù)據(jù)獨(dú)立性,更好的安全保密性o簡化了程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作o缺點(diǎn)缺點(diǎn)n存取路徑對用戶透明導(dǎo)致查詢效率往往不如非關(guān)系數(shù)據(jù)模型n為提高性能,必須對用戶的查詢請求進(jìn)行優(yōu)化,增加了開發(fā)DBMS的難度An Introduction to Database Systems42/80第一章 緒論1.1 數(shù)據(jù)庫系統(tǒng)概述數(shù)據(jù)庫系統(tǒng)概述1.2 數(shù)據(jù)模型數(shù)據(jù)模型1.3 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)1.4 數(shù)據(jù)庫系

25、統(tǒng)的組成數(shù)據(jù)庫系統(tǒng)的組成1.5 小結(jié)小結(jié)An Introduction to Database Systems43/801.3 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)o從數(shù)據(jù)庫管理系統(tǒng)角度看,數(shù)據(jù)庫系統(tǒng)通常采用三級模式結(jié)構(gòu),是數(shù)據(jù)庫系統(tǒng)內(nèi)部的系統(tǒng)結(jié)構(gòu) 。 o從數(shù)據(jù)庫最終用戶角度看(數(shù)據(jù)庫系統(tǒng)外部的體系結(jié)構(gòu)),數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)分為:n單用戶結(jié)構(gòu)n主從式結(jié)構(gòu)n分布式結(jié)構(gòu)n客戶服務(wù)器(C/S)n瀏覽器應(yīng)用服務(wù)器數(shù)據(jù)庫服務(wù)器多層結(jié)構(gòu)等(B/S)An Introduction to Database Systems44/80數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)(續(xù))1.3.1 數(shù)據(jù)庫系統(tǒng)模式的概念數(shù)據(jù)庫系統(tǒng)模式的概念 1.3.2 數(shù)據(jù)庫系統(tǒng)的三級模

26、式結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu) 1.3.3 數(shù)據(jù)庫的二級映像功能與數(shù)據(jù)獨(dú)立性數(shù)據(jù)庫的二級映像功能與數(shù)據(jù)獨(dú)立性 An Introduction to Database Systems45/801.3.1 數(shù)據(jù)庫系統(tǒng)模式的概念o“型” 和“值” 的概念n型(Type)對某一類數(shù)據(jù)的結(jié)構(gòu)和屬性的說明n值(Value)是型的一個具體賦值例如學(xué)生記錄型: (學(xué)號,姓名,性別,系別,年齡,籍貫)一個記錄值: (900201,李明,男,計(jì)算機(jī),22,江蘇)An Introduction to Database Systems46/80數(shù)據(jù)庫系統(tǒng)模式的概念(續(xù))o模式(模式(Schema)n數(shù)據(jù)庫邏輯結(jié)構(gòu)和特

27、征的描述n是型的描述n反映的是數(shù)據(jù)的結(jié)構(gòu)及其聯(lián)系n模式是相對穩(wěn)定的o實(shí)例(實(shí)例(Instance)n模式的一個具體值n反映數(shù)據(jù)庫某一時(shí)刻的狀態(tài)n同一個模式可以有很多實(shí)例n實(shí)例隨數(shù)據(jù)庫中的數(shù)據(jù)的更新而變動An Introduction to Database Systems47/80數(shù)據(jù)庫系統(tǒng)模式的概念 (續(xù))例如:在學(xué)生選課數(shù)據(jù)庫模式中,包含學(xué)生記錄、課程記錄和學(xué)生選課記錄n 2003年的一個學(xué)生數(shù)據(jù)庫實(shí)例,包含:2003年學(xué)校中所有學(xué)生的記錄學(xué)校開設(shè)的所有課程的記錄所有學(xué)生選課的記錄 n2002年度學(xué)生數(shù)據(jù)庫模式對應(yīng)的實(shí)例與 2003年度學(xué)生數(shù)據(jù)庫模式對應(yīng)的實(shí)例是不同的 An Introdu

28、ction to Database Systems48/80數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)(續(xù))1.3.1 數(shù)據(jù)庫系統(tǒng)模式的概念數(shù)據(jù)庫系統(tǒng)模式的概念 1.3.2 數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu) 1.3.3 數(shù)據(jù)庫的二級映像功能與數(shù)據(jù)獨(dú)立性數(shù)據(jù)庫的二級映像功能與數(shù)據(jù)獨(dú)立性 An Introduction to Database Systems49/801.3.2 數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)o模式(Schema) o外模式(External Schema)o內(nèi)模式(Internal Schema) An Introduction to Database Systems50/80數(shù)據(jù)庫系統(tǒng)的三級模式

29、結(jié)構(gòu)(續(xù))圖1.28 數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu) An Introduction to Database Systems51/80一、模式(Schema)o模式(也稱邏輯模式)n數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述n所有用戶的公共數(shù)據(jù)視圖,綜合了所有用戶的需求o一個數(shù)據(jù)庫只有一個模式o模式的地位:是數(shù)據(jù)庫系統(tǒng)模式結(jié)構(gòu)的中間層n與數(shù)據(jù)的物理存儲細(xì)節(jié)和硬件環(huán)境無關(guān)n與具體的應(yīng)用程序、開發(fā)工具及高級程序設(shè)計(jì)語言無關(guān)An Introduction to Database Systems52/80模式(續(xù))o模式的定義n數(shù)據(jù)的邏輯結(jié)構(gòu)(數(shù)據(jù)項(xiàng)的名字、類型、取值范圍等)n數(shù)據(jù)之間的聯(lián)系n數(shù)據(jù)有關(guān)的安全性、

30、完整性要求An Introduction to Database Systems53/80二、外模式(External Schema)o外模式(也稱子模式或用戶模式)n數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述n數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)邏輯表示。o外模式的地位:介于模式與應(yīng)用之間o模式與外模式的關(guān)系:一對多外模式通常是模式的子集一個數(shù)據(jù)庫可以有多個外模式,反映了不同用戶的應(yīng)用需求、看待數(shù)據(jù)的方式、對數(shù)據(jù)保密的要求對模式中同一數(shù)據(jù),在外模式中的結(jié)構(gòu)、類型、長度、保密級別等都可以不同。An Introduction to Database Sys

31、tems54/80外模式(續(xù))o外模式的用途n保證保證數(shù)據(jù)庫安全性數(shù)據(jù)庫安全性的一個有力措施的一個有力措施n每個用戶只能看見和訪問所對應(yīng)的外模式中的數(shù)據(jù)每個用戶只能看見和訪問所對應(yīng)的外模式中的數(shù)據(jù)o外模式與應(yīng)用的關(guān)系:一對多同一外模式也可以為某一用戶的同一外模式也可以為某一用戶的多個應(yīng)用系統(tǒng)多個應(yīng)用系統(tǒng)所使用所使用但一個應(yīng)用程序只能使用一個外模式但一個應(yīng)用程序只能使用一個外模式An Introduction to Database Systems55/80三、內(nèi)模式(Internal Schema)o內(nèi)模式(也稱存儲模式)n是數(shù)據(jù)是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式物理結(jié)構(gòu)和存儲方式的描述的描述n是數(shù)據(jù)在

32、數(shù)據(jù)庫內(nèi)部的表示方式是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式o記錄的存儲方式(記錄的存儲方式(順序存儲,按照順序存儲,按照B樹結(jié)構(gòu)存儲,樹結(jié)構(gòu)存儲, 按按hash方法存儲方法存儲)o索引的組織方式索引的組織方式o數(shù)據(jù)是否壓縮存儲數(shù)據(jù)是否壓縮存儲o數(shù)據(jù)是否加密數(shù)據(jù)是否加密o數(shù)據(jù)存儲記錄結(jié)構(gòu)的規(guī)定數(shù)據(jù)存儲記錄結(jié)構(gòu)的規(guī)定o一個數(shù)據(jù)庫只有一個內(nèi)模式An Introduction to Database Systems56/80內(nèi)模式舉例o例如學(xué)生記錄,如果按堆堆存儲,則插入一條新記錄總是放在學(xué)生記錄存儲的最后最后,如右圖所示An Introduction to Database Systems57/80內(nèi)模式舉例

33、o如果按學(xué)號升序存儲,則插入一條記錄就要找到它應(yīng)在的位置插入,如圖1.29(b)所示o如果按照學(xué)生年齡聚簇存放,假如新插入的S3是16歲,則應(yīng)插入的位置如圖1.29(c)所示 圖1.29 記錄不同的存儲方式示意圖An Introduction to Database Systems58/80數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)(續(xù))1.3.1 數(shù)據(jù)庫系統(tǒng)模式的概念數(shù)據(jù)庫系統(tǒng)模式的概念 1.3.2 數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu) 1.3.3 數(shù)據(jù)庫的二級映像功能與數(shù)據(jù)獨(dú)立性數(shù)據(jù)庫的二級映像功能與數(shù)據(jù)獨(dú)立性 An Introduction to Database Systems59/801.3.3 數(shù)

34、據(jù)庫的二級映像功能與數(shù)據(jù)獨(dú)立性o三級模式是對數(shù)據(jù)的三個抽象級別o二級映象在DBMS內(nèi)部實(shí)現(xiàn)這三個抽象層次的聯(lián)系和轉(zhuǎn)換n外模式模式映像n模式內(nèi)模式映像 An Introduction to Database Systems60/80一、外模式/模式映象o模式模式:描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu)o外模式外模式:描述的是數(shù)據(jù)的局部邏輯結(jié)構(gòu) n同一個模式可以有任意多個外模式 n每一個外模式,數(shù)據(jù)庫系統(tǒng)都有一個外模式模式映象,定義外模式與模式之間的對應(yīng)關(guān)系n映象定義通常包含在各自外模式的描述中o保證數(shù)據(jù)的邏輯獨(dú)立性n當(dāng)模式改變時(shí),數(shù)據(jù)庫管理員修改有關(guān)的外模式/模式映象,使外模式保持不變n應(yīng)用程序是依據(jù)數(shù)據(jù)的

35、外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨(dú)立性,簡稱數(shù)據(jù)的邏輯獨(dú)立性。An Introduction to Database Systems61/80二、模式/內(nèi)模式映象o模式/內(nèi)模式映象定義了數(shù)據(jù)全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)系。n例如,說明邏輯記錄和字段在內(nèi)部是如何表示的o數(shù)據(jù)庫中模式/內(nèi)模式映象是唯一的, 該映象定義通常包含在模式描述中;o保證數(shù)據(jù)的物理獨(dú)立性n當(dāng)數(shù)據(jù)庫的存儲結(jié)構(gòu)改變了(例如選用了另一種存儲結(jié)構(gòu)),數(shù)據(jù)庫管理員修改模式/內(nèi)模式映象,使模式保持不變n應(yīng)用程序不受影響。保證了數(shù)據(jù)與程序的物理獨(dú)立性,簡稱數(shù)據(jù)的物理獨(dú)立性。An Introduction t

36、o Database Systems62/80小結(jié)(1)o數(shù)據(jù)庫模式n即全局邏輯結(jié)構(gòu)是數(shù)據(jù)庫的中心與關(guān)鍵 n獨(dú)立于數(shù)據(jù)庫的其他層次 n設(shè)計(jì)數(shù)據(jù)庫模式結(jié)構(gòu)時(shí)應(yīng)首先確定數(shù)據(jù)庫的邏輯模式o數(shù)據(jù)庫的內(nèi)模式n依賴于它的全局邏輯結(jié)構(gòu)n獨(dú)立于數(shù)據(jù)庫的用戶視圖,即外模式n獨(dú)立于具體的存儲設(shè)備 n將全局邏輯結(jié)構(gòu)中所定義的數(shù)據(jù)結(jié)構(gòu)及其聯(lián)系按照一定的物理存儲策略進(jìn)行組織,以達(dá)到較好的時(shí)間與空間效率 An Introduction to Database Systems63/80小結(jié)(2)o數(shù)據(jù)庫的外模式n面向具體的應(yīng)用程序n定義在邏輯模式之上n獨(dú)立于存儲模式和存儲設(shè)備n當(dāng)應(yīng)用需求發(fā)生較大變化,相應(yīng)外模式不能滿足其視

37、圖要求時(shí),該外模式就得做相應(yīng)改動 n設(shè)計(jì)外模式時(shí)應(yīng)充分考慮到應(yīng)用的擴(kuò)充性 An Introduction to Database Systems64/80第一章 緒論1.1 數(shù)據(jù)庫系統(tǒng)概述數(shù)據(jù)庫系統(tǒng)概述1.2 數(shù)據(jù)模型數(shù)據(jù)模型1.3 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)1.4 數(shù)據(jù)庫系統(tǒng)的組成數(shù)據(jù)庫系統(tǒng)的組成1.5 小結(jié)小結(jié)An Introduction to Database Systems65/801.4 數(shù)據(jù)庫系統(tǒng)的組成o數(shù)據(jù)庫o數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)o應(yīng)用系統(tǒng)o數(shù)據(jù)庫管理員An Introduction to Database Systems66/80數(shù)據(jù)庫系統(tǒng)的組成(續(xù))o硬件平臺及數(shù)據(jù)庫 o軟件 o人員 An Introduction to Database Systems67/80一、硬件平臺及數(shù)據(jù)庫o數(shù)據(jù)庫系統(tǒng)對硬件資源的要求 (1) 足夠大的內(nèi)存n操作系統(tǒng)nDBMS的核心模塊n數(shù)據(jù)緩沖區(qū)n應(yīng)用程序 (2) 足夠大的外存n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論