第2章數(shù)據(jù)模型PPT課件_第1頁
第2章數(shù)據(jù)模型PPT課件_第2頁
第2章數(shù)據(jù)模型PPT課件_第3頁
第2章數(shù)據(jù)模型PPT課件_第4頁
第2章數(shù)據(jù)模型PPT課件_第5頁
已閱讀5頁,還剩124頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、本章學(xué)習(xí)要求:本章學(xué)習(xí)要求:1. 1. 層次數(shù)據(jù)模型、網(wǎng)狀數(shù)據(jù)模型層次數(shù)據(jù)模型、網(wǎng)狀數(shù)據(jù)模型 了解層次及了解層次及網(wǎng)狀網(wǎng)狀數(shù)據(jù)模型的基本概念和結(jié)構(gòu)。數(shù)據(jù)模型的基本概念和結(jié)構(gòu)。2. 2. 關(guān)系數(shù)據(jù)模型關(guān)系數(shù)據(jù)模型 掌握關(guān)系數(shù)據(jù)模型的基本概念以及關(guān)系代數(shù)操作。掌握關(guān)系數(shù)據(jù)模型的基本概念以及關(guān)系代數(shù)操作。了解層次、網(wǎng)狀和關(guān)系模型之間的差別。了解層次、網(wǎng)狀和關(guān)系模型之間的差別。3. 3. 對(duì)傳統(tǒng)模型的評(píng)價(jià)對(duì)傳統(tǒng)模型的評(píng)價(jià) 了解傳統(tǒng)模型的不足之處。了解傳統(tǒng)模型的不足之處。4 4E-RE-R數(shù)據(jù)模型數(shù)據(jù)模型 掌握掌握E-RE-R模型的概念和表示。模型的概念和表示。5. 5. 面向?qū)ο髷?shù)據(jù)模型面向?qū)ο髷?shù)據(jù)模

2、型 了解面向?qū)ο髷?shù)據(jù)模型的基本概念。了解面向?qū)ο髷?shù)據(jù)模型的基本概念。數(shù)據(jù)模型可分為兩類數(shù)據(jù)模型可分為兩類:1.1. 獨(dú)立于計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)模型獨(dú)立于計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)模型, ,它完全不涉及信息它完全不涉及信息在計(jì)算機(jī)系統(tǒng)中的表示在計(jì)算機(jī)系統(tǒng)中的表示, ,只是用來描述某個(gè)特定組只是用來描述某個(gè)特定組織所關(guān)心的信息結(jié)構(gòu)織所關(guān)心的信息結(jié)構(gòu), ,這類模型稱為這類模型稱為 “ “概念數(shù)據(jù)模概念數(shù)據(jù)模型型”。 概念模型用于建立信息世界的數(shù)據(jù)模型概念模型用于建立信息世界的數(shù)據(jù)模型, ,強(qiáng)調(diào)強(qiáng)調(diào)其語義表達(dá)能力其語義表達(dá)能力, ,概念應(yīng)該簡(jiǎn)單概念應(yīng)該簡(jiǎn)單, ,清晰清晰, ,易于用戶理易于用戶理解解, ,它是現(xiàn)實(shí)世

3、界的第一層抽象它是現(xiàn)實(shí)世界的第一層抽象, ,是用戶和數(shù)據(jù)庫人是用戶和數(shù)據(jù)庫人員之間進(jìn)行交流的工具。最著名的是員之間進(jìn)行交流的工具。最著名的是“實(shí)體聯(lián)系模實(shí)體聯(lián)系模型型”。2. 2. 直接面向數(shù)據(jù)庫的邏輯結(jié)構(gòu)的數(shù)據(jù)模型直接面向數(shù)據(jù)庫的邏輯結(jié)構(gòu)的數(shù)據(jù)模型, ,它是它是現(xiàn)實(shí)世界的第二層抽象。這類模型涉及到計(jì)算機(jī)現(xiàn)實(shí)世界的第二層抽象。這類模型涉及到計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng), ,又稱為又稱為“基本數(shù)據(jù)模型基本數(shù)據(jù)模型”或或“結(jié)構(gòu)數(shù)據(jù)模型結(jié)構(gòu)數(shù)據(jù)模型”。 例如例如, , 層次、網(wǎng)狀、關(guān)系、面向?qū)ο髷?shù)據(jù)模層次、網(wǎng)狀、關(guān)系、面向?qū)ο髷?shù)據(jù)模型型”. .這類模型有嚴(yán)格的形式化定義這類模型有嚴(yán)

4、格的形式化定義, ,以便在計(jì)算以便在計(jì)算機(jī)系統(tǒng)中實(shí)現(xiàn)。機(jī)系統(tǒng)中實(shí)現(xiàn)。 用樹型(層次)結(jié)構(gòu)表示實(shí)體類型及用樹型(層次)結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為層次數(shù)據(jù)模層次數(shù)據(jù)模型型(hierarchical data model)(hierarchical data model)。n基本概念和結(jié)構(gòu)記錄和字段記錄和字段雙親子女關(guān)系雙親子女關(guān)系層次數(shù)據(jù)模式層次數(shù)據(jù)模式虛擬記錄虛擬記錄層次數(shù)據(jù)的線性表示層次數(shù)據(jù)的線性表示記錄和字段記錄和字段 記錄是用來描述某個(gè)事物或事物間關(guān)系的命名的記錄是用來描述某個(gè)事物或事物間關(guān)系的命名的數(shù)據(jù)單位,也是存儲(chǔ)的數(shù)據(jù)單位。一個(gè)記錄包含若干數(shù)據(jù)

5、單位,也是存儲(chǔ)的數(shù)據(jù)單位。一個(gè)記錄包含若干字段。字段。 每個(gè)字段也是命名的,字段只能是簡(jiǎn)單數(shù)據(jù)類型每個(gè)字段也是命名的,字段只能是簡(jiǎn)單數(shù)據(jù)類型(整數(shù)、實(shí)數(shù)、字符串等)。(整數(shù)、實(shí)數(shù)、字符串等)。系系系名系名系號(hào)系號(hào) 系主任名系主任名 地點(diǎn)地點(diǎn)記錄的型記錄的型計(jì)算機(jī)系計(jì)算機(jī)系9 9李西遠(yuǎn)李西遠(yuǎn) 科技館科技館記錄的一個(gè)實(shí)例記錄的一個(gè)實(shí)例雙親子女關(guān)系(雙親子女關(guān)系(Parent-Child RelationshipParent-Child Relationship,PCRPCR) 反映兩個(gè)記錄型之間的一對(duì)多(反映兩個(gè)記錄型之間的一對(duì)多(1 1:N N)關(guān)系)關(guān)系系系班班計(jì)算機(jī)系計(jì)算機(jī)系901901班班

6、911911班班921921班班931931班班1 1N NPCRPCR型型PCRPCR實(shí)例實(shí)例層次數(shù)據(jù)模式層次數(shù)據(jù)模式 層次數(shù)據(jù)模式由層次數(shù)據(jù)模式由PCRPCR構(gòu)成構(gòu)成層次數(shù)據(jù)模式層次數(shù)據(jù)模式系系班班學(xué)生學(xué)生教研組教研組教師教師計(jì)算機(jī)系計(jì)算機(jī)系901901班班911911班班921921班班931931班班硬件教研組硬件教研組軟件教研組軟件教研組王一王一張三張三 李四李四 趙立趙立 錢英錢英 孫玉孫玉 周新周新 吳堅(jiān)吳堅(jiān)鄭山鄭山洪流洪流陳芝陳芝丁偉丁偉層次數(shù)據(jù)模式實(shí)例層次數(shù)據(jù)模式實(shí)例 在層次數(shù)據(jù)模式中,除根以外,所有的記在層次數(shù)據(jù)模式中,除根以外,所有的記錄型都應(yīng)該有唯一的雙親,但可以有多個(gè)

7、子女,錄型都應(yīng)該有唯一的雙親,但可以有多個(gè)子女,子女按從左到右的次序排序。子女按從左到右的次序排序。虛擬記錄虛擬記錄 非層次關(guān)系表示問題非層次關(guān)系表示問題(1 1)M M:N N 王一王一張三張三李四李四人工智能人工智能數(shù)據(jù)庫數(shù)據(jù)庫學(xué)生:學(xué)生:課程:課程: 不允許一個(gè)記錄有多個(gè)雙親,需要復(fù)制記錄,不允許一個(gè)記錄有多個(gè)雙親,需要復(fù)制記錄,導(dǎo)致冗余。如下圖:導(dǎo)致冗余。如下圖:型型實(shí)例實(shí)例學(xué)生學(xué)生課程課程王一王一人工智能人工智能張三張三人工智能人工智能數(shù)據(jù)庫數(shù)據(jù)庫李四李四人工智能人工智能 數(shù)據(jù)庫數(shù)據(jù)庫(2 2)一個(gè)記錄是兩個(gè)以上)一個(gè)記錄是兩個(gè)以上PCRPCR的子女的子女學(xué)生學(xué)生班班運(yùn)動(dòng)隊(duì)運(yùn)動(dòng)隊(duì)只能

8、表示成下圖,存在冗余。只能表示成下圖,存在冗余。學(xué)生學(xué)生班班學(xué)生學(xué)生運(yùn)動(dòng)隊(duì)運(yùn)動(dòng)隊(duì)(3 3)多元關(guān)系)多元關(guān)系供應(yīng)商供應(yīng)商零件零件工程項(xiàng)目工程項(xiàng)目供應(yīng)關(guān)系供應(yīng)關(guān)系可以用可以用PCRPCR表示為:表示為:供應(yīng)商零件工程項(xiàng)目零件供應(yīng)商工程項(xiàng)目供應(yīng)商工程項(xiàng)目零件 注意:書上圖注意:書上圖2-122-12不能表示三元關(guān)系,因?yàn)楣┎荒鼙硎救P(guān)系,因?yàn)楣?yīng)關(guān)系與供應(yīng)商,供應(yīng)關(guān)系與工程項(xiàng)目這兩個(gè)應(yīng)關(guān)系與供應(yīng)商,供應(yīng)關(guān)系與工程項(xiàng)目這兩個(gè)PCRPCR的一個(gè)雙親實(shí)例,其子女集合是并關(guān)系,而不是的一個(gè)雙親實(shí)例,其子女集合是并關(guān)系,而不是迪卡爾積關(guān)系。迪卡爾積關(guān)系。供應(yīng)商供應(yīng)商零件零件工程項(xiàng)目工程項(xiàng)目供應(yīng)關(guān)系供應(yīng)關(guān)系

9、n主要問題:數(shù)據(jù)冗余,為避免這一情況,只存主要問題:數(shù)據(jù)冗余,為避免這一情況,只存一份記錄,其它引用該記錄的地方用指針代替一份記錄,其它引用該記錄的地方用指針代替 這種用指針代替的記錄稱為這種用指針代替的記錄稱為虛擬記錄虛擬記錄。n用下標(biāo)用下標(biāo)v v表示,指針用虛線箭頭表示。表示,指針用虛線箭頭表示。(學(xué)生)(學(xué)生)v v課程課程學(xué)生學(xué)生(課程)(課程)v v學(xué)生學(xué)生(學(xué)生)(學(xué)生)v v班班運(yùn)動(dòng)隊(duì)運(yùn)動(dòng)隊(duì)層次數(shù)據(jù)的線性表示層次數(shù)據(jù)的線性表示 由于存儲(chǔ)器是線性的,層次數(shù)據(jù)必須變換成線由于存儲(chǔ)器是線性的,層次數(shù)據(jù)必須變換成線性形式才能存儲(chǔ),層次數(shù)據(jù)模式的實(shí)例對(duì)應(yīng)一棵層性形式才能存儲(chǔ),層次數(shù)據(jù)模式的

10、實(shí)例對(duì)應(yīng)一棵層次樹(或森林),對(duì)層次樹(或森林)按先序遍歷次樹(或森林),對(duì)層次樹(或森林)按先序遍歷生成的序列稱為層次序列(生成的序列稱為層次序列(hierarchical hierarchical sequencesequence),規(guī)定以此作為存儲(chǔ)次序。),規(guī)定以此作為存儲(chǔ)次序。計(jì)計(jì)算算機(jī)機(jī)系系901901班班王王一一張張三三911911班班931931班班吳吳堅(jiān)堅(jiān)硬硬件件教教研研組組鄭鄭山山洪洪流流軟軟件件教教研研組組丁丁偉偉n層次數(shù)據(jù)模型的約束層次數(shù)據(jù)模型的約束(1 1)除了根記錄外,任何其它記錄不能離開其)除了根記錄外,任何其它記錄不能離開其雙親記錄而孤立存在;雙親記錄而孤立存在;

11、(2 2)任何記錄,不管虛實(shí),只允許有一個(gè)雙親)任何記錄,不管虛實(shí),只允許有一個(gè)雙親記錄(保證層次數(shù)據(jù)模式及其實(shí)例是樹形);記錄(保證層次數(shù)據(jù)模式及其實(shí)例是樹形);(3 3)虛擬記錄的指針必須指向一個(gè)實(shí)際存在的)虛擬記錄的指針必須指向一個(gè)實(shí)際存在的記錄,有虛擬記錄指向的記錄不得刪除;記錄,有虛擬記錄指向的記錄不得刪除;(4 4)虛擬記錄不得為根記錄。)虛擬記錄不得為根記錄。 特點(diǎn)特點(diǎn): : 層次結(jié)構(gòu)是樹結(jié)構(gòu),樹的結(jié)點(diǎn)是記錄層次結(jié)構(gòu)是樹結(jié)構(gòu),樹的結(jié)點(diǎn)是記錄類型,非根結(jié)點(diǎn)有且只有一個(gè)父結(jié)點(diǎn)。上一層記類型,非根結(jié)點(diǎn)有且只有一個(gè)父結(jié)點(diǎn)。上一層記錄類型和下一層記錄類型是錄類型和下一層記錄類型是1:N聯(lián)系

12、聯(lián)系。( (因此不能因此不能表示表示M:N) 層次模型的優(yōu)點(diǎn):層次模型的優(yōu)點(diǎn): 記錄之間的聯(lián)系通過指針來實(shí)現(xiàn),查詢效率記錄之間的聯(lián)系通過指針來實(shí)現(xiàn),查詢效率較高(針對(duì)層次結(jié)構(gòu))。較高(針對(duì)層次結(jié)構(gòu))。 層次模型的缺點(diǎn):層次模型的缺點(diǎn):1 1、只能表示、只能表示1 1:N N聯(lián)系,雖然可以采用虛擬記錄聯(lián)系,雖然可以采用虛擬記錄描述非層次數(shù)據(jù)關(guān)系,但較復(fù)雜,用戶不易掌握,描述非層次數(shù)據(jù)關(guān)系,但較復(fù)雜,用戶不易掌握,并且非層次結(jié)構(gòu)的查詢效率比較低;并且非層次結(jié)構(gòu)的查詢效率比較低;2 2、由于層次順序的嚴(yán)格和復(fù)雜,引起數(shù)據(jù)的查詢、由于層次順序的嚴(yán)格和復(fù)雜,引起數(shù)據(jù)的查詢和更新很復(fù)雜,因此應(yīng)用程序的編寫

13、也比較復(fù)雜;和更新很復(fù)雜,因此應(yīng)用程序的編寫也比較復(fù)雜;3 3、模式描述語言較復(fù)雜,數(shù)據(jù)獨(dú)立性差。、模式描述語言較復(fù)雜,數(shù)據(jù)獨(dú)立性差。 用有向圖(網(wǎng)絡(luò)結(jié)構(gòu))表示實(shí)體及實(shí)體之間用有向圖(網(wǎng)絡(luò)結(jié)構(gòu))表示實(shí)體及實(shí)體之間聯(lián)系的數(shù)據(jù)模型稱為聯(lián)系的數(shù)據(jù)模型稱為網(wǎng)狀數(shù)據(jù)模型(網(wǎng)狀數(shù)據(jù)模型(network network data modeldata model)。)。有向圖中的結(jié)點(diǎn)是記錄類型,有向圖中的結(jié)點(diǎn)是記錄類型,箭頭表示從箭尾的記錄類型到箭頭的記錄類型箭頭表示從箭尾的記錄類型到箭頭的記錄類型間聯(lián)系。間聯(lián)系。 基本概念和結(jié)構(gòu)基本概念和結(jié)構(gòu) 記錄和數(shù)據(jù)項(xiàng)記錄和數(shù)據(jù)項(xiàng) 數(shù)據(jù)項(xiàng)相當(dāng)于字段,記錄是數(shù)據(jù)項(xiàng)的有序結(jié)

14、合。數(shù)據(jù)項(xiàng)相當(dāng)于字段,記錄是數(shù)據(jù)項(xiàng)的有序結(jié)合。 系系 系表示兩個(gè)記錄型間的系表示兩個(gè)記錄型間的1:N1:N關(guān)系;對(duì)應(yīng)關(guān)系;對(duì)應(yīng)“1”1”的的為首記錄,對(duì)應(yīng)為首記錄,對(duì)應(yīng)“N”N”的為屬記錄。系是命名的,的為屬記錄。系是命名的,有型值之分,例如:圖有型值之分,例如:圖2-172-17就是系的型和值。就是系的型和值。班級(jí)班級(jí)學(xué)生學(xué)生一班一班王一王一李紅李紅丁杰丁杰型型值值圖圖2-17 2-17 班級(jí)班級(jí)學(xué)生系學(xué)生系具有多種類型屬記錄的系稱為具有多種類型屬記錄的系稱為“多屬系多屬系”(multimember setmultimember set)多屬系多屬系系值:系值:3 3個(gè)成員的并,而非個(gè)成員的

15、并,而非“X”X”賬戶賬戶存款帳存款帳提款帳提款帳轉(zhuǎn)賬轉(zhuǎn)賬網(wǎng)狀模型的特點(diǎn):網(wǎng)狀模型的特點(diǎn): 與層次模型不同,網(wǎng)狀模型中,一個(gè)記錄型可與層次模型不同,網(wǎng)狀模型中,一個(gè)記錄型可以成為多個(gè)首記錄型的屬記錄以成為多個(gè)首記錄型的屬記錄突破層次的限制;突破層次的限制; 一個(gè)記錄型不能既作為一個(gè)系的首記錄又作為一個(gè)記錄型不能既作為一個(gè)系的首記錄又作為同一個(gè)系的屬記錄。同一個(gè)系的屬記錄。 EMPEMP領(lǐng)導(dǎo)領(lǐng)導(dǎo)引入聯(lián)系記錄引入聯(lián)系記錄 EMPEMPLINKLINK1:11:11:N1:N1:11:1表示一人擔(dān)任一個(gè)領(lǐng)導(dǎo)崗位,系值見下一頁圖。表示一人擔(dān)任一個(gè)領(lǐng)導(dǎo)崗位,系值見下一頁圖。E E4 4L L1 1S S

16、1 1E E7 7L L2 2S S1 1E E9 9L L3 3S S1 1E E3 3E E5 5E E1 1E E6 6S S2 2S S2 2S S2 2一個(gè)記錄值不能出現(xiàn)在同一系型的多個(gè)系值中,否一個(gè)記錄值不能出現(xiàn)在同一系型的多個(gè)系值中,否則不是則不是1:N1:N關(guān)系關(guān)系 例如,學(xué)生例如,學(xué)生(S)(S)和課程和課程(C)(C)關(guān)系關(guān)系S S1 1C C1 1C C2 2C C3 3C C4 4S S1 1C C5 5C C6 6解決解決M:NM:N問題的方法問題的方法聯(lián)系記錄聯(lián)系記錄S SLINKLINK1 1C CSLSLM M1 1CLCLN N型型S S1 1L L1 1SL

17、SLL L2 2L L3 3L L4 4L L5 5L L6 6L L7 7S S2 2SLSLC C1 1C C2 2C C3 3C C4 4C C5 5C C6 6CLCLCLCLCLCLCLCLCLCLCLCL值值 LINK LINK表示多元關(guān)系表示多元關(guān)系零件零件LINKLINK1 1工程項(xiàng)目工程項(xiàng)目M M1 1N N供應(yīng)商供應(yīng)商1 1P Pn無首系,首記錄可以看成無首系,首記錄可以看成“系統(tǒng)系統(tǒng)”,例如一個(gè),例如一個(gè)單位的所有部門組成一個(gè)無首系。單位的所有部門組成一個(gè)無首系。n無首系只有一個(gè)實(shí)例,也稱單值系。無首系只有一個(gè)實(shí)例,也稱單值系。n系的實(shí)現(xiàn)方法系的實(shí)現(xiàn)方法O OS S1 1

18、S S2 2S S3 3前向指針前向指針后向指針后向指針首記錄指針首記錄指針系的鏈?zhǔn)綄?shí)現(xiàn)方式系的鏈?zhǔn)綄?shí)現(xiàn)方式n約束約束(1 1)一個(gè)記錄型不能兼任同一系的首記錄和屬記錄;)一個(gè)記錄型不能兼任同一系的首記錄和屬記錄;(2 2)一個(gè)記錄不能出現(xiàn)在同一系型的多個(gè)系值中;)一個(gè)記錄不能出現(xiàn)在同一系型的多個(gè)系值中;(3 3)插入一個(gè)新記錄時(shí),若它的記錄型是某個(gè)系的屬記)插入一個(gè)新記錄時(shí),若它的記錄型是某個(gè)系的屬記錄,必須考慮系籍問題(兩種系籍約束):錄,必須考慮系籍問題(兩種系籍約束):AUTOMATIC(AUTOMATIC(自動(dòng)的自動(dòng)的) ): 新的屬記錄插入時(shí)自動(dòng)加入相應(yīng)的系新的屬記錄插入時(shí)自動(dòng)加入

19、相應(yīng)的系值;值;MANUAL(MANUAL(人工的人工的) ):新的屬記錄插入時(shí)不自動(dòng)加入相應(yīng)的系值;:新的屬記錄插入時(shí)不自動(dòng)加入相應(yīng)的系值; (4 4)對(duì)已插入的屬記錄的系籍問題;)對(duì)已插入的屬記錄的系籍問題; 網(wǎng)狀數(shù)據(jù)模型提供三種留置系籍約束:網(wǎng)狀數(shù)據(jù)模型提供三種留置系籍約束:OPTIMAL(OPTIMAL(隨意的隨意的) ):對(duì)屬記錄的系籍處理比較隨意,屬記錄可:對(duì)屬記錄的系籍處理比較隨意,屬記錄可以脫離某個(gè)系值獨(dú)立存在,例如,以脫離某個(gè)系值獨(dú)立存在,例如,“系系學(xué)生學(xué)生”系;系;MANDATORY(MANDATORY(強(qiáng)制的強(qiáng)制的) ):屬記錄不能游離于系值之外,但可以轉(zhuǎn):屬記錄不能游

20、離于系值之外,但可以轉(zhuǎn)系值。例如,系值。例如,“部門部門職工職工”系;系;FIXED(FIXED(固定的固定的) ):不能游離,不能轉(zhuǎn)系值,例如,:不能游離,不能轉(zhuǎn)系值,例如,“職工職工家屬家屬”系。系。 上述系籍約束都是語義約束。上述系籍約束都是語義約束。(5 5)刪除記錄時(shí),刪除首記錄,沒有系籍問題;刪除屬)刪除記錄時(shí),刪除首記錄,沒有系籍問題;刪除屬記錄要按照(記錄要按照(4 4)進(jìn)行處理。)進(jìn)行處理。OPTIMALOPTIMAL 首記錄可以刪除,其屬記錄與系值脫離,仍保留首記錄可以刪除,其屬記錄與系值脫離,仍保留在數(shù)據(jù)庫中;在數(shù)據(jù)庫中;MANDATORYMANDATORY 首記錄不能刪

21、除,因?yàn)槠鋵儆涗洸荒苡坞x于系值首記錄不能刪除,因?yàn)槠鋵儆涗洸荒苡坞x于系值之外;之外;FIXEDFIXED 可將首記錄連同屬記錄一起刪除??蓪⑹子涗涍B同屬記錄一起刪除。網(wǎng)狀模型的缺點(diǎn):網(wǎng)狀模型的缺點(diǎn): 編寫應(yīng)用程序比較復(fù)雜,程序員必須熟悉數(shù)據(jù)庫編寫應(yīng)用程序比較復(fù)雜,程序員必須熟悉數(shù)據(jù)庫的邏輯結(jié)構(gòu)。的邏輯結(jié)構(gòu)。 在關(guān)系在關(guān)系DBDB以前,網(wǎng)狀以前,網(wǎng)狀DBDB比層次比層次DBDB用的要普遍。模用的要普遍。模擬層次和非層次結(jié)構(gòu)比較自然,目前仍有應(yīng)用實(shí)例。擬層次和非層次結(jié)構(gòu)比較自然,目前仍有應(yīng)用實(shí)例。 由于層次系統(tǒng)和網(wǎng)狀系統(tǒng)的應(yīng)用程序編制復(fù)雜,由于層次系統(tǒng)和網(wǎng)狀系統(tǒng)的應(yīng)用程序編制復(fù)雜,目前已被關(guān)系系統(tǒng)

22、產(chǎn)品取代。目前已被關(guān)系系統(tǒng)產(chǎn)品取代。 課程只介紹層次和網(wǎng)狀數(shù)據(jù)模型的概念和機(jī)制,課程只介紹層次和網(wǎng)狀數(shù)據(jù)模型的概念和機(jī)制,以求全面了解數(shù)據(jù)庫技術(shù)的發(fā)展。以求全面了解數(shù)據(jù)庫技術(shù)的發(fā)展。 層次、網(wǎng)狀模型都基于某種記錄結(jié)構(gòu)(層次、網(wǎng)狀模型都基于某種記錄結(jié)構(gòu)(PCR,SETPCR,SET),),關(guān)系模型跳出這一限制,定義清晰,結(jié)構(gòu)簡(jiǎn)單,操作方關(guān)系模型跳出這一限制,定義清晰,結(jié)構(gòu)簡(jiǎn)單,操作方便。便。 關(guān)系模型是以集合論中的關(guān)系概念為基礎(chǔ)發(fā)展起來關(guān)系模型是以集合論中的關(guān)系概念為基礎(chǔ)發(fā)展起來的數(shù)據(jù)模型。的數(shù)據(jù)模型。 關(guān)系模型(關(guān)系模型(relactionrelaction data model data m

23、odel)的主要特征是的主要特征是用用表格結(jié)構(gòu)表達(dá)實(shí)體集,用外鍵表示實(shí)體間聯(lián)系表格結(jié)構(gòu)表達(dá)實(shí)體集,用外鍵表示實(shí)體間聯(lián)系。與層次。與層次模型和網(wǎng)狀模型相比,關(guān)系模型比較簡(jiǎn)單,容易為初學(xué)模型和網(wǎng)狀模型相比,關(guān)系模型比較簡(jiǎn)單,容易為初學(xué)者接受。者接受。 關(guān)系模型是由若干個(gè)關(guān)系模式組成的集合。每個(gè)關(guān)系關(guān)系模型是由若干個(gè)關(guān)系模式組成的集合。每個(gè)關(guān)系實(shí)際上是一張表格,記錄之間聯(lián)系是通過各個(gè)關(guān)系模實(shí)際上是一張表格,記錄之間聯(lián)系是通過各個(gè)關(guān)系模式的鍵體現(xiàn)的。式的鍵體現(xiàn)的。 關(guān)系模型的層次、網(wǎng)狀模型的最大差別關(guān)系模型的層次、網(wǎng)狀模型的最大差別是用鍵而不是用鍵而不是用指針導(dǎo)航數(shù)據(jù),其表格簡(jiǎn)單,用戶易懂,用戶只需是

24、用指針導(dǎo)航數(shù)據(jù),其表格簡(jiǎn)單,用戶易懂,用戶只需用簡(jiǎn)單的查詢語句就可以對(duì)數(shù)據(jù)庫進(jìn)行操作,并不涉及用簡(jiǎn)單的查詢語句就可以對(duì)數(shù)據(jù)庫進(jìn)行操作,并不涉及存儲(chǔ)結(jié)構(gòu)、訪問技術(shù)等細(xì)節(jié)。存儲(chǔ)結(jié)構(gòu)、訪問技術(shù)等細(xì)節(jié)。1 1屬性和域?qū)傩院陀驅(qū)傩詫傩?用來描述事物特征。用來描述事物特征。例如:學(xué)生的例如:學(xué)生的姓名、學(xué)號(hào)、性別、出生年月姓名、學(xué)號(hào)、性別、出生年月等。等。屬性的域?qū)傩缘挠?屬性的取值范圍。屬性的取值范圍。例如:例如:姓名的取值范圍姓名的取值范圍是合法姓名的集合。是合法姓名的集合。 學(xué)號(hào)的域?qū)W號(hào)的域是若干位數(shù)字組成的字符串的集合。是若干位數(shù)字組成的字符串的集合。 性別的域性別的域是男,女,是男,女,注意:注

25、意: 關(guān)系數(shù)據(jù)模型中,所有的屬性都應(yīng)是不可再分的原子關(guān)系數(shù)據(jù)模型中,所有的屬性都應(yīng)是不可再分的原子數(shù)據(jù)(數(shù)據(jù)(atomic dataatomic data)的集合)的集合-1NF1NF。 關(guān)系數(shù)據(jù)模型中,允許某些屬性值為空,即關(guān)系數(shù)據(jù)模型中,允許某些屬性值為空,即NULLNULL???。空值不是值,而是一個(gè)標(biāo)記,表明該屬性值空缺。例如:值不是值,而是一個(gè)標(biāo)記,表明該屬性值空缺。例如:手機(jī)號(hào)碼,手機(jī)號(hào)碼,E_mailE_mail等。等。 的元組的集合。為所有滿足完整性約束的值,合,即在給定時(shí)間的元組的集為某關(guān)系其中,.21rRRrDDDrrnNULLRtFKtFKt)( 中某一元組為兩者效率大不一

26、樣兩者效率大不一樣!易證:易證:n投影操作可以和選擇操作組合起來投影操作可以和選擇操作組合起來 倉庫號(hào)倉庫號(hào)城市城市面積面積WH1WH1北京北京370370WH2WH2上海上海500500WH3WH3廣州廣州200200倉庫號(hào)倉庫號(hào)城市城市面積面積WH2WH2上海上海500500WH3WH3廣州廣州200200WH4WH4武漢武漢180180倉庫號(hào)倉庫號(hào)城市城市面積面積WH1WH1北京北京370370WH2WH2上海上海500500WH3WH3廣州廣州200200WH4WH4武漢武漢180180倉庫號(hào)倉庫號(hào)城市城市面積面積WH2WH2上海上海500500WH3WH3廣州廣州200200倉庫號(hào)倉

27、庫號(hào)城市城市面積面積WH1WH1北京北京370370 設(shè)有兩個(gè)關(guān)系設(shè)有兩個(gè)關(guān)系R R和和S S,它們的目分別為,它們的目分別為n nr r和和n ns s;它們的元組數(shù)分別為它們的元組數(shù)分別為|R|R|和和|S|S|,則,則R R和和S S的笛卡爾的笛卡爾乘積為:乘積為: R S=|t R and g S 為為t t和和g g的拼接,即的拼接,即R R S S仍為一個(gè)關(guān)系,仍為一個(gè)關(guān)系,它的目為它的目為nr+ns、元組數(shù)為元組數(shù)為|R|R|S|S|。 若若R R和和S S中有相同的屬性名,在這些屬性名前加中有相同的屬性名,在這些屬性名前加上關(guān)系名作為限定詞,進(jìn)行區(qū)別。上關(guān)系名作為限定詞,進(jìn)行區(qū)

28、別。 WH1WH1北京北京370370WH2WH2上海上海500500WH3WH3廣州廣州200200WH5WH5合肥合肥130130WH2WH2E1E112201220WH1WH1E3E312101210WH2WH2E4E412501250WH3WH3E6E612301230WH1WH1E7E712501250WH2WH2上海上海500500WH1WH1北京北京370370WH2WH2上海上海500500WH3WH3廣州廣州200200WH1WH1北京北京370370E1E112201220E3E312101210E4E412501250E6E612301230E7E712501250 上式

29、可以生成一個(gè)學(xué)生成績(jī)表,它具有學(xué)號(hào)、課程上式可以生成一個(gè)學(xué)生成績(jī)表,它具有學(xué)號(hào)、課程號(hào)、課程名、學(xué)分和成績(jī)等屬性。號(hào)、課程名、學(xué)分和成績(jī)等屬性。n可以證明:關(guān)系代數(shù)操作集可以證明:關(guān)系代數(shù)操作集 是完備的,是完備的, 也是完備的。也是完備的。n完備指任何其它關(guān)系代數(shù)操作都可以用這完備指任何其它關(guān)系代數(shù)操作都可以用這5 5種種操作來表示。操作來表示。n若一個(gè)關(guān)系若一個(gè)關(guān)系DBMSDBMS支持支持 ,稱,稱此此DBMSDBMS是完備的是完備的(relationally complete)(relationally complete)。n事實(shí)上,當(dāng)前關(guān)系事實(shí)上,當(dāng)前關(guān)系DBMSDBMS還增加了不少關(guān)

30、系代數(shù)還增加了不少關(guān)系代數(shù)不支持的操作,例如排序、分組等等。不支持的操作,例如排序、分組等等??赡苡锌赡苡蠷 R不含元組不含元組R R中相應(yīng)中相應(yīng)Y Y值集合不能包含值集合不能包含S(Y)S(Y)的的X X值集合值集合R R中相應(yīng)中相應(yīng)Y Y值集合能包含值集合能包含S(Y)S(Y)的的X X值集合值集合R-(RR-(R S)S) S S可以看成可以看成余數(shù)余數(shù)。示例示例a ab bNULLNULLa ab bNULLNULL外連接外連接n例:要求生成一個(gè)表,列出所有課程名及其先例:要求生成一個(gè)表,列出所有課程名及其先修課程名。修課程名。 n用關(guān)系代數(shù)表示的操作,需標(biāo)明關(guān)系操作的序用關(guān)系代數(shù)表示

31、的操作,需標(biāo)明關(guān)系操作的序列,因而以關(guān)系代數(shù)為基礎(chǔ)的列,因而以關(guān)系代數(shù)為基礎(chǔ)的DBDB語言是語言是過程性過程性語言(語言(procedural languageprocedural language)。)。n用謂詞演算來表達(dá)關(guān)系的操作稱為關(guān)系演算。用謂詞演算來表達(dá)關(guān)系的操作稱為關(guān)系演算。用關(guān)系演算表示關(guān)系的操作,只要說明所要得用關(guān)系演算表示關(guān)系的操作,只要說明所要得到的結(jié)果,而不必標(biāo)明操作的過程,因而以到的結(jié)果,而不必標(biāo)明操作的過程,因而以關(guān)關(guān)系演算為基礎(chǔ)的數(shù)據(jù)庫語言是說明性語言系演算為基礎(chǔ)的數(shù)據(jù)庫語言是說明性語言(declarative languagedeclarative languag

32、e)。)。n目前,面向用戶的關(guān)系數(shù)據(jù)庫語言基本上都以目前,面向用戶的關(guān)系數(shù)據(jù)庫語言基本上都以關(guān)系演算為基礎(chǔ)。關(guān)系演算為基礎(chǔ)。 (5 5)連接(實(shí)際指自然連接)連接(實(shí)際指自然連接) 設(shè)有兩個(gè)關(guān)系模式設(shè)有兩個(gè)關(guān)系模式R(ABC)R(ABC)和和S(CDE)S(CDE),r r、s s分別為分別為其值其值: : R RS=t(ABCDE)|tABCS=t(ABCDE)|tABC 注意:謂詞中兩個(gè)注意:謂詞中兩個(gè)tC同值,隱含等連接。同值,隱含等連接。 用謂詞演算表示關(guān)系操作時(shí),只有結(jié)果是有限集才用謂詞演算表示關(guān)系操作時(shí),只有結(jié)果是有限集才有意義。有意義。 一個(gè)表達(dá)式的結(jié)果如果是有限的,稱此表達(dá)式是

33、安一個(gè)表達(dá)式的結(jié)果如果是有限的,稱此表達(dá)式是安全的,否則是不安全的。全的,否則是不安全的。 否定常常會(huì)導(dǎo)致不安全的表達(dá)式,例如否定常常會(huì)導(dǎo)致不安全的表達(dá)式,例如 t|(tt|(tSTUDENT)STUDENT)是不安全的。是不安全的。 若限制若限制t t取值的域,使取值的域,使t tt| tt| t DOM(P) and (t DOM(P) and (t STUDENT)= DOM(P) STUDENT)= DOM(P) STUDENTSTUDENT,成為安全表達(dá)式。,成為安全表達(dá)式。n19761976年由年由P.ChenP.Chen提出:提出:v建立一種統(tǒng)一的數(shù)據(jù)模型,來概括層次、網(wǎng)狀和關(guān)建

34、立一種統(tǒng)一的數(shù)據(jù)模型,來概括層次、網(wǎng)狀和關(guān)系三種傳統(tǒng)數(shù)據(jù)模型;系三種傳統(tǒng)數(shù)據(jù)模型;v作為作為3 3種數(shù)據(jù)模型間相互轉(zhuǎn)換的中間模型;種數(shù)據(jù)模型間相互轉(zhuǎn)換的中間模型;v作為超脫作為超脫DBMSDBMS的一種概念數(shù)據(jù)模型,用比較自然的的一種概念數(shù)據(jù)模型,用比較自然的方式模擬現(xiàn)實(shí)世界。方式模擬現(xiàn)實(shí)世界。 nE-RE-R數(shù)據(jù)模型用的最成功和最廣泛的是作為數(shù)據(jù)庫數(shù)據(jù)模型用的最成功和最廣泛的是作為數(shù)據(jù)庫概念設(shè)計(jì)的數(shù)據(jù)模型。概念設(shè)計(jì)的數(shù)據(jù)模型。nE-RE-R數(shù)據(jù)模型不是面向?qū)崿F(xiàn),而是面向現(xiàn)實(shí)世界。數(shù)據(jù)模型不是面向?qū)崿F(xiàn),而是面向現(xiàn)實(shí)世界。其設(shè)計(jì)的出發(fā)點(diǎn)是有效自然的模擬現(xiàn)實(shí)世界,而其設(shè)計(jì)的出發(fā)點(diǎn)是有效自然的模擬現(xiàn)

35、實(shí)世界,而不是首先考慮它在機(jī)器中的實(shí)現(xiàn)問題。不是首先考慮它在機(jī)器中的實(shí)現(xiàn)問題。nE-RE-R數(shù)據(jù)模型是一種有代表性的非傳統(tǒng)數(shù)據(jù)模型。數(shù)據(jù)模型是一種有代表性的非傳統(tǒng)數(shù)據(jù)模型。范式概念范式概念n構(gòu)造數(shù)據(jù)庫必須遵循一定的規(guī)則。在關(guān)系數(shù)構(gòu)造數(shù)據(jù)庫必須遵循一定的規(guī)則。在關(guān)系數(shù)據(jù)庫中,這種規(guī)則就是范式。據(jù)庫中,這種規(guī)則就是范式。范式是符合某范式是符合某一種級(jí)別的關(guān)系模式的集合一種級(jí)別的關(guān)系模式的集合。p 第一范式(第一范式(1NF1NF):):在關(guān)系模式在關(guān)系模式R R中的每一個(gè)具體中的每一個(gè)具體關(guān)系關(guān)系r r中,如果每個(gè)屬性值都是不可再分的最小數(shù)據(jù)中,如果每個(gè)屬性值都是不可再分的最小數(shù)據(jù)單位,則稱單位,

36、則稱R R是第一范式的關(guān)系。是第一范式的關(guān)系。 例如例如: :職工號(hào),姓名,電話號(hào)碼組成一個(gè)表(一個(gè)職工號(hào),姓名,電話號(hào)碼組成一個(gè)表(一個(gè)人可能有一個(gè)辦公室電話人可能有一個(gè)辦公室電話 和一個(gè)家里電話號(hào)碼)和一個(gè)家里電話號(hào)碼) 規(guī)規(guī)范成為范成為1NF1NF有三種方法:有三種方法: 以上三個(gè)方法,第一種方法最不可取,按實(shí)際情以上三個(gè)方法,第一種方法最不可取,按實(shí)際情況選取后兩種情況。況選取后兩種情況。 (1) (1) 重復(fù)存儲(chǔ)職工號(hào)和姓名。重復(fù)存儲(chǔ)職工號(hào)和姓名。 (2) (2) 職工號(hào)為關(guān)鍵字,電話號(hào)碼分為單位電話和住職工號(hào)為關(guān)鍵字,電話號(hào)碼分為單位電話和住宅電話兩個(gè)屬性。宅電話兩個(gè)屬性。 (3)

37、 (3) 職工號(hào)為關(guān)鍵字,但強(qiáng)制每條記錄只能有一個(gè)職工號(hào)為關(guān)鍵字,但強(qiáng)制每條記錄只能有一個(gè)電話號(hào)碼。電話號(hào)碼。關(guān)鍵字只能是電話號(hào)碼。關(guān)鍵字只能是電話號(hào)碼。p 第二范式(第二范式(2NF2NF):):如果關(guān)系模式如果關(guān)系模式R R中的所有非主屬中的所有非主屬性都完全依賴于任意一個(gè)候選關(guān)鍵字,則稱關(guān)系性都完全依賴于任意一個(gè)候選關(guān)鍵字,則稱關(guān)系R R是是屬于第二范式的。屬于第二范式的。 例:選課關(guān)系例:選課關(guān)系 SCISCI(SNOSNO,CNOCNO,GRADEGRADE,CREDITCREDIT)其中其中SNOSNO為學(xué)號(hào),為學(xué)號(hào),CNOCNO為課程號(hào),為課程號(hào),GRADEGRADE為成績(jī),為成

38、績(jī),CREDITCREDIT為學(xué)分。由以上條件,關(guān)鍵字為組合關(guān)鍵字為學(xué)分。由以上條件,關(guān)鍵字為組合關(guān)鍵字(SNOSNO,CNOCNO)。)。 在應(yīng)用中使用以上關(guān)系模式存在什么問題?在應(yīng)用中使用以上關(guān)系模式存在什么問題? a. a.數(shù)據(jù)冗余數(shù)據(jù)冗余b.b.更新異常更新異常c.c.插入異常插入異常在應(yīng)用中使用以上關(guān)系模式有以下問題:在應(yīng)用中使用以上關(guān)系模式有以下問題:假設(shè)同一門課由假設(shè)同一門課由4040個(gè)學(xué)生選修,學(xué)分就個(gè)學(xué)生選修,學(xué)分就 重復(fù)重復(fù)4040次。次。 若調(diào)整了某課程的學(xué)分,相應(yīng)的元組若調(diào)整了某課程的學(xué)分,相應(yīng)的元組CREDITCREDIT值都要值都要更新,有可能會(huì)出現(xiàn)同一門課學(xué)分不同。更新,有可能會(huì)出現(xiàn)同一門課學(xué)分不同。 如果計(jì)劃開新課,由于沒人選修,沒有學(xué)號(hào)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論