《數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用》電子課件
《數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用》電子課件,數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用,數(shù)據(jù)庫(kù)技術(shù),應(yīng)用,電子,課件
第二第二章章 數(shù)據(jù)模型數(shù)據(jù)模型本章學(xué)習(xí)目標(biāo)本章學(xué)習(xí)目標(biāo)n理解模型和數(shù)據(jù)模型的基本概念。n理解概念數(shù)據(jù)模型的基本概念。n掌握E-R模型的表示方法。n掌握數(shù)據(jù)模型的三要素。n了解層次、網(wǎng)狀模型的基本特點(diǎn)。n掌握關(guān)系模型的基本概念。n了解面向?qū)ο蠛桶虢Y(jié)構(gòu)化數(shù)據(jù)模型的特點(diǎn)。本章概述本章概述n生活中,人們對(duì)于模型并不陌生,例如航空模型、航海模型等,它可以幫助人們對(duì)客觀事物進(jìn)行學(xué)習(xí)和理解。計(jì)算機(jī)不能直接處理現(xiàn)實(shí)世界中的具體事物,所以必須要借助于一個(gè)工具將現(xiàn)實(shí)世界的事物及其相互聯(lián)系轉(zhuǎn)換成數(shù)據(jù)庫(kù)系統(tǒng)中計(jì)算機(jī)能夠處理的數(shù)據(jù),這個(gè)工具就是數(shù)據(jù)模型。n數(shù)據(jù)模型的基本概念和數(shù)據(jù)庫(kù)系統(tǒng)涉及的概念模型、層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο髷?shù)據(jù)模型和半結(jié)構(gòu)化數(shù)據(jù)模型的基本概念和設(shè)計(jì)方法,為后面的數(shù)據(jù)庫(kù)設(shè)計(jì)打下基礎(chǔ)。主要內(nèi)容主要內(nèi)容2.1 模型與數(shù)據(jù)模型2.3 邏輯數(shù)據(jù)模型2.4 半結(jié)構(gòu)化數(shù)據(jù)模型2.2 概念數(shù)據(jù)模型主要內(nèi)容主要內(nèi)容2.1 模型與數(shù)據(jù)模型2.3 邏輯數(shù)據(jù)模型2.4 半結(jié)構(gòu)化數(shù)據(jù)模型2.2 概念數(shù)據(jù)模型2.1 模型與數(shù)據(jù)模型模型與數(shù)據(jù)模型n由于計(jì)算機(jī)不可能直接處理現(xiàn)實(shí)世界中的具體事物,為了對(duì)客觀事物及其聯(lián)系進(jìn)行有效的描述與刻畫(huà),需要引入模型的概念。模型是對(duì)現(xiàn)實(shí)世界特征的模擬和抽象。數(shù)據(jù)模型也是一種模型,它是現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象,是用來(lái)描述數(shù)據(jù)的一組概念和定義。n不同的數(shù)據(jù)模型實(shí)際上是提供給我們模型化數(shù)據(jù)和信息的不同工具。根據(jù)模型應(yīng)用的不同目的,可以將這些模型劃分為三類,它們分屬于三個(gè)不同的層次。n第一類模型是概念數(shù)據(jù)模型,簡(jiǎn)稱概念模型。它是按用戶的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模,不涉及DBMS的具體技術(shù),主要用于數(shù)據(jù)庫(kù)設(shè)計(jì)。第二類模型是邏輯數(shù)據(jù)模型,簡(jiǎn)稱邏輯模型。它是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建模,主要用于DBMS的實(shí)現(xiàn)。不同的DBMS提供不同的邏輯數(shù)據(jù)模型,常用的有層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P偷取5谌愂俏锢頂?shù)據(jù)模型,簡(jiǎn)稱物理模型。它是對(duì)數(shù)據(jù)最底層的抽象,它描述數(shù)據(jù)在物理存儲(chǔ)介質(zhì)上的組織結(jié)構(gòu)和存取方法,是面向計(jì)算機(jī)系統(tǒng)的,與具體的DBMS、操作系統(tǒng)和計(jì)算機(jī)硬件密切相關(guān)。物理模型的具體實(shí)現(xiàn)是DBMS的任務(wù),DBMS為了保證物理模型的獨(dú)立性與可移植性,大部分的實(shí)現(xiàn)工作由系統(tǒng)自動(dòng)完成,數(shù)據(jù)庫(kù)設(shè)計(jì)人員只需要設(shè)計(jì)索引、聚集等特殊結(jié)構(gòu)。2.1 模型與數(shù)據(jù)模型模型與數(shù)據(jù)模型n為了把現(xiàn)實(shí)世界中的具體事物抽象、組織為某一DBMS支持的數(shù)據(jù)模型,人們常常首先通過(guò)選擇、分類、命名等將現(xiàn)實(shí)世界中的客觀對(duì)象抽象為信息世界中的某一種信息結(jié)構(gòu),這種信息結(jié)構(gòu)并不依賴于具體的計(jì)算機(jī)系統(tǒng),是一種概念級(jí)的數(shù)據(jù)模型;然后將信息世界的概念數(shù)據(jù)模型轉(zhuǎn)換為機(jī)器世界里計(jì)算機(jī)上某一DBMS支持的邏輯數(shù)據(jù)模型,邏輯數(shù)據(jù)模型最終還要由DBMS轉(zhuǎn)換為面向計(jì)算機(jī)系統(tǒng)的物理數(shù)據(jù)模型,這一過(guò)程如圖2-1所示。n從現(xiàn)實(shí)世界到概念數(shù)據(jù)模型的抽象是由數(shù)據(jù)庫(kù)設(shè)計(jì)人員來(lái)完成的;從概念數(shù)據(jù)模型到邏輯數(shù)據(jù)模型的轉(zhuǎn)換可以由數(shù)據(jù)庫(kù)設(shè)計(jì)人員來(lái)完成,也可以用數(shù)據(jù)庫(kù)設(shè)計(jì)工具協(xié)助設(shè)計(jì)人員完成;從邏輯數(shù)據(jù)模型到物理數(shù)據(jù)模型的轉(zhuǎn)換一般由DBMS來(lái)完成。2.2 概念數(shù)據(jù)模型概念數(shù)據(jù)模型2.2 概念數(shù)據(jù)模型2.3 邏輯數(shù)據(jù)模型2.4 半結(jié)構(gòu)化數(shù)據(jù)模型2.1 模型與數(shù)據(jù)模型2.2 概念數(shù)據(jù)模型概念數(shù)據(jù)模型n概念數(shù)據(jù)模型(Conceptual Data Model)也稱為信息模型。它是對(duì)客觀事物及其聯(lián)系的抽象,用于信息世界的建模,是現(xiàn)實(shí)世界到信息世界的第一層抽象,是數(shù)據(jù)庫(kù)設(shè)計(jì)人員進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)的有力工具。概念數(shù)據(jù)模型擺脫了計(jì)算機(jī)系統(tǒng)及數(shù)據(jù)庫(kù)管理系統(tǒng)的具體技術(shù)問(wèn)題,集中精力分析數(shù)據(jù)以及數(shù)據(jù)之間的聯(lián)系等,與具體的數(shù)據(jù)庫(kù)管理系統(tǒng)無(wú)關(guān)。概念數(shù)據(jù)模型必須換成邏輯數(shù)據(jù)模型,才能在數(shù)據(jù)庫(kù)管理系統(tǒng)中實(shí)現(xiàn)。它強(qiáng)調(diào)其語(yǔ)義表達(dá)能力,即能夠較方便、直接地表達(dá)應(yīng)用中的各種語(yǔ)義知識(shí)。這類模型概念簡(jiǎn)單、清晰、易于被用戶理解,是數(shù)據(jù)庫(kù)設(shè)計(jì)人員和用戶之間進(jìn)行交流的語(yǔ)言。nPeter Pin-Shan Chen在1976年提出的實(shí)體-聯(lián)系方法,簡(jiǎn)稱E-R模型(Entity-Relationship Model),是最為著名的一種概念模型的表示方法,該方法用E-R圖來(lái)描述現(xiàn)實(shí)世界的概念模型。E-R模型能夠清楚地表達(dá)被描述對(duì)象的語(yǔ)義,用圖形化方式描述數(shù)據(jù)及其之間的關(guān)系,簡(jiǎn)單、容易理解掌握、且易被轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型。n為了適應(yīng)新的應(yīng)用需求,在基本E-R模型的基礎(chǔ)上又提出了擴(kuò)展實(shí)體聯(lián)系模型(Extend Entity-Relationship Model),簡(jiǎn)稱為“EER模型”,這種模型能表示更多的語(yǔ)義,擴(kuò)充了子類型的概念,為面向?qū)ο蟮臄?shù)據(jù)庫(kù)設(shè)計(jì)提供了有效工具。本書(shū)重點(diǎn)研究關(guān)系數(shù)據(jù)庫(kù),所以在此僅詳細(xì)介紹基本的E-R模型。2.2 概念數(shù)據(jù)模型概念數(shù)據(jù)模型1.概念模型的基本概念(1)實(shí)體(Entity)客觀存在并可相互區(qū)分的事物稱為實(shí)體。實(shí)體可以是具體的人、事和物,也可以是抽象的概念或聯(lián)系,例如,學(xué)生是一個(gè)實(shí)體。(2)屬性(Atribute)實(shí)體所具有的若干特征稱為屬性,其中每一個(gè)特征就成為實(shí)體的一個(gè)屬性。屬性必須相對(duì)實(shí)體而存在。例如學(xué)生實(shí)體可以由學(xué)號(hào)、姓名、性別、出生年份、所屬院系、入學(xué)年份等屬性組成(94002268,張山,男,l976,計(jì)算機(jī)系,l994),這些屬性組合起來(lái)表征了某一個(gè)學(xué)生。(3)碼(Key)唯一標(biāo)識(shí)實(shí)體的屬性集稱為碼。例如學(xué)號(hào)是學(xué)生實(shí)體的碼。(4)域(Domain)屬性的取值范圍稱為該屬性的域。例如,學(xué)號(hào)的域?yàn)?位整數(shù),姓名的域?yàn)樽址?,年齡的域?yàn)樾∮?8的整數(shù),性別的域?yàn)?男,女)。2.2 概念數(shù)據(jù)模型概念數(shù)據(jù)模型(5)實(shí)體型(EntityType)實(shí)體型由實(shí)體名稱和屬性名稱集合組成的形式來(lái)抽象和刻畫(huà)同一類實(shí)體。例如,學(xué)生(學(xué)號(hào),姓名,性別,出生年份,所屬院系)就是一個(gè)實(shí)體型。(6)實(shí)體集(Entity Set)同一類型實(shí)體的集合稱為實(shí)體集。例如,全體學(xué)生就是一個(gè)實(shí)體集。(7)聯(lián)系(Relationship)現(xiàn)實(shí)世界中事物之間的聯(lián)系在概念模型中必然要加以反映。一般存在兩類聯(lián)系:一是實(shí)體內(nèi)部的聯(lián)系,通常是指組成實(shí)體的各屬性之間的聯(lián)系;二是實(shí)體之間的聯(lián)系,通常是指不同實(shí)體之間的聯(lián)系。2.聯(lián)系兩個(gè)實(shí)體型之間的聯(lián)系稱為二元聯(lián)系,是現(xiàn)實(shí)世界大量存在的聯(lián)系,可以分為三類,如圖2-2所示。(1)一對(duì)一(1:1)聯(lián)系2.2 概念數(shù)據(jù)模型概念數(shù)據(jù)模型對(duì)于兩個(gè)實(shí)體集A和B,若A中的每一個(gè)值在B中至多有一個(gè)實(shí)體值與之對(duì)應(yīng),反之亦然,則稱實(shí)體集A和B具有一對(duì)一的聯(lián)系,記為1:1。例如,學(xué)校里面,一個(gè)學(xué)校只有一個(gè)正校長(zhǎng),而一個(gè)校長(zhǎng)只在一個(gè)學(xué)校中任職,則學(xué)校與校長(zhǎng)之間具有一對(duì)一聯(lián)系。(2)一對(duì)多(1:n)聯(lián)系對(duì)于兩個(gè)實(shí)體集A和B,若A中的每一個(gè)值在B中有多個(gè)實(shí)體值與之對(duì)應(yīng),反之B中每一個(gè)實(shí)體值在A中至多有一個(gè)實(shí)體值與之對(duì)應(yīng),則稱實(shí)體集A和B具有一對(duì)多的聯(lián)系,記為1:n。例如,一個(gè)專業(yè)中有若干名學(xué)生,而每個(gè)學(xué)生只在一個(gè)專業(yè)中學(xué)習(xí),則專業(yè)與學(xué)生之間具有一對(duì)多聯(lián)系。(3)多對(duì)多(m:n)聯(lián)系對(duì)于兩個(gè)實(shí)體集A和B,若A中每一個(gè)實(shí)體值在B中有多個(gè)實(shí)體值與之對(duì)應(yīng),反之亦然,則稱實(shí)體集A與實(shí)體集B具有多對(duì)多聯(lián)系,記為m:n。例如,一個(gè)教師可以有很多學(xué)生,一個(gè)學(xué)生也可以有很多個(gè)老師,則教師與學(xué)生之間具有多對(duì)多聯(lián)系。2.2 概念數(shù)據(jù)模型概念數(shù)據(jù)模型實(shí)際上,一對(duì)一聯(lián)系是一對(duì)多聯(lián)系的特例,而一對(duì)多聯(lián)系又是多對(duì)實(shí)際上,一對(duì)一聯(lián)系是一對(duì)多聯(lián)系的特例,而一對(duì)多聯(lián)系又是多對(duì)多聯(lián)系的特例。多聯(lián)系的特例。一般地,三個(gè)以上的實(shí)體型之間也存在著一對(duì)一、一對(duì)多、多對(duì)多一般地,三個(gè)以上的實(shí)體型之間也存在著一對(duì)一、一對(duì)多、多對(duì)多的聯(lián)系,稱為多元聯(lián)系。例如,對(duì)于課程、教師與參考書(shū)三個(gè)實(shí)體的聯(lián)系,稱為多元聯(lián)系。例如,對(duì)于課程、教師與參考書(shū)三個(gè)實(shí)體型,如果一門課程可以有若干個(gè)教師講授,使用若干本參考書(shū),而型,如果一門課程可以有若干個(gè)教師講授,使用若干本參考書(shū),而每一個(gè)教師只講授一門課程,每一本參考書(shū)只供一門課程使用,則每一個(gè)教師只講授一門課程,每一本參考書(shū)只供一門課程使用,則課程與教師、參考書(shū)之間的聯(lián)系是一對(duì)多的,如圖課程與教師、參考書(shū)之間的聯(lián)系是一對(duì)多的,如圖2-32-3所示。所示。2.2 概念數(shù)據(jù)模型概念數(shù)據(jù)模型同一個(gè)實(shí)體集內(nèi)的各實(shí)體之間也可以存在一對(duì)一、一對(duì)多、多對(duì)多的聯(lián)系,稱為一元聯(lián)系。例如職工實(shí)體集內(nèi)部具有領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)的聯(lián)系,即某一職工(干部)領(lǐng)導(dǎo)若干名職工,而一個(gè)職工僅被另外一個(gè)職工直接領(lǐng)導(dǎo)。因此,這是一對(duì)多的聯(lián)系,如圖2-4所示。3.概念模型的表示方法概念模型的表示方法很多,其中最著名也是最常用的表示法是E-R方法(實(shí)體聯(lián)系方法),它用E-R圖來(lái)描述現(xiàn)實(shí)世界的概念模型。E-R方法也稱為E-R模型。E-R圖的主要成分是實(shí)體型、屬性和聯(lián)系。2.2 概念數(shù)據(jù)模型概念數(shù)據(jù)模型實(shí)體型:用矩形表示,矩形框內(nèi)寫(xiě)明實(shí)體名。屬性:用橢圓形表示,并用無(wú)向邊把實(shí)體與屬性連接起來(lái)。聯(lián)系:用菱形表示,菱形框內(nèi)寫(xiě)明聯(lián)系名,并用無(wú)向邊分別把菱形與有關(guān)實(shí)體相連接,在無(wú)向邊旁標(biāo)上聯(lián)系的類型(1:1、1:n或m:n)。需要注意的是,如果一個(gè)聯(lián)系具有屬性,則這些屬性也要用無(wú)向邊與該聯(lián)系連接起來(lái)。例如:學(xué)校中有一個(gè)校長(zhǎng)和若干個(gè)班級(jí),每個(gè)班級(jí)有若干個(gè)教師和學(xué)生,每個(gè)教師教授許多學(xué)生,每個(gè)學(xué)生都有學(xué)號(hào)、姓名、性別、班級(jí)、入學(xué)時(shí)間屬性。則此學(xué)校的E-R圖如圖2-5所示2.2 概念數(shù)據(jù)模型概念數(shù)據(jù)模型2.2 概念數(shù)據(jù)模型概念數(shù)據(jù)模型需要說(shuō)明的是,E-R圖的繪制有兩種方法:集成法和分離法。集成法是將一個(gè)系統(tǒng)的所有實(shí)體、實(shí)體屬性,實(shí)體與實(shí)體之間的聯(lián)系全部畫(huà)在一個(gè)圖上,形成一個(gè)完整的E-R圖。這種畫(huà)法適合描述規(guī)模不大的數(shù)據(jù)庫(kù)系統(tǒng),上例即是集成法繪制的E-R圖。分離法是先分別畫(huà)各個(gè)實(shí)體及其屬性圖,然后再畫(huà)實(shí)體間聯(lián)系圖,這種畫(huà)法適合描述規(guī)模較大的數(shù)據(jù)庫(kù)系統(tǒng)。主要內(nèi)容主要內(nèi)容2.2 概念數(shù)據(jù)模型2.3 邏輯數(shù)據(jù)模型2.4 半結(jié)構(gòu)化數(shù)據(jù)模型2.1 模型與數(shù)據(jù)模型2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型2.3.1 2.3.1 邏輯數(shù)據(jù)模型概述邏輯數(shù)據(jù)模型概述1.1.數(shù)據(jù)模型的三要素?cái)?shù)據(jù)模型的三要素邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型(Logic Data Model)(Logic Data Model)又稱為結(jié)構(gòu)數(shù)據(jù)模型又稱為結(jié)構(gòu)數(shù)據(jù)模型(Structure Data(Structure Data Model)Model)。邏輯數(shù)據(jù)模型的任務(wù)是描述計(jì)算機(jī)世界中數(shù)據(jù)及數(shù)據(jù)之間的關(guān)系及數(shù)。邏輯數(shù)據(jù)模型的任務(wù)是描述計(jì)算機(jī)世界中數(shù)據(jù)及數(shù)據(jù)之間的關(guān)系及數(shù)據(jù)存儲(chǔ)、處理的特征。它是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)組織數(shù)據(jù),關(guān)注數(shù)據(jù)結(jié)構(gòu),是據(jù)存儲(chǔ)、處理的特征。它是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)組織數(shù)據(jù),關(guān)注數(shù)據(jù)結(jié)構(gòu),是嚴(yán)格定義的一組概念的集合,這些概念精確地描述了系統(tǒng)的靜態(tài)特性、動(dòng)態(tài)特嚴(yán)格定義的一組概念的集合,這些概念精確地描述了系統(tǒng)的靜態(tài)特性、動(dòng)態(tài)特性和完整性約束條件。因此,邏輯數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性和完整性約束條件。因此,邏輯數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三部分組成,也稱為數(shù)據(jù)模型的三要素。性約束三部分組成,也稱為數(shù)據(jù)模型的三要素。(1)(1)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是對(duì)實(shí)體型和實(shí)體間聯(lián)系的表達(dá)和實(shí)現(xiàn),是所研究的對(duì)象類型的集數(shù)據(jù)結(jié)構(gòu)是對(duì)實(shí)體型和實(shí)體間聯(lián)系的表達(dá)和實(shí)現(xiàn),是所研究的對(duì)象類型的集合。這些對(duì)象是數(shù)據(jù)庫(kù)的組成部分,它們包括兩類,一類是與數(shù)據(jù)類型、內(nèi)容、合。這些對(duì)象是數(shù)據(jù)庫(kù)的組成部分,它們包括兩類,一類是與數(shù)據(jù)類型、內(nèi)容、性質(zhì)有關(guān)的描述,例如網(wǎng)狀模型中的數(shù)據(jù)項(xiàng)、記錄,關(guān)系模型中的域、屬性、性質(zhì)有關(guān)的描述,例如網(wǎng)狀模型中的數(shù)據(jù)項(xiàng)、記錄,關(guān)系模型中的域、屬性、關(guān)系等;另一類是與數(shù)據(jù)之間聯(lián)系有關(guān)的描述。例如關(guān)系模型中的外鍵。數(shù)據(jù)關(guān)系等;另一類是與數(shù)據(jù)之間聯(lián)系有關(guān)的描述。例如關(guān)系模型中的外鍵。數(shù)據(jù)結(jié)構(gòu)是對(duì)數(shù)據(jù)模型靜態(tài)特性的描述。結(jié)構(gòu)是對(duì)數(shù)據(jù)模型靜態(tài)特性的描述。2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型數(shù)據(jù)結(jié)構(gòu)是刻畫(huà)一個(gè)數(shù)據(jù)模型性質(zhì)最重要的方面,因此,在數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)結(jié)構(gòu)是刻畫(huà)一個(gè)數(shù)據(jù)模型性質(zhì)最重要的方面,因此,在數(shù)據(jù)庫(kù)系統(tǒng)中,人們通常按照數(shù)據(jù)結(jié)構(gòu)的類型來(lái)命名數(shù)據(jù)模型。例如層次結(jié)構(gòu)、網(wǎng)狀結(jié)構(gòu)和關(guān)人們通常按照數(shù)據(jù)結(jié)構(gòu)的類型來(lái)命名數(shù)據(jù)模型。例如層次結(jié)構(gòu)、網(wǎng)狀結(jié)構(gòu)和關(guān)系結(jié)構(gòu)的數(shù)據(jù)模型分別命名為層次模型、網(wǎng)狀模型和關(guān)系模型。系結(jié)構(gòu)的數(shù)據(jù)模型分別命名為層次模型、網(wǎng)狀模型和關(guān)系模型。(2)(2)數(shù)據(jù)操作數(shù)據(jù)操作數(shù)據(jù)操作是指對(duì)數(shù)據(jù)庫(kù)中各種對(duì)象數(shù)據(jù)操作是指對(duì)數(shù)據(jù)庫(kù)中各種對(duì)象(型型)的實(shí)例的實(shí)例(值值)允許執(zhí)行的操作的集合,允許執(zhí)行的操作的集合,包括操作及相應(yīng)的操作規(guī)則。數(shù)據(jù)庫(kù)主要有數(shù)據(jù)查詢和數(shù)據(jù)更新兩大類操作。包括操作及相應(yīng)的操作規(guī)則。數(shù)據(jù)庫(kù)主要有數(shù)據(jù)查詢和數(shù)據(jù)更新兩大類操作。數(shù)據(jù)模型必須定義這些操作的確切含義、操作符號(hào)、操作規(guī)則以及實(shí)現(xiàn)操作的數(shù)據(jù)模型必須定義這些操作的確切含義、操作符號(hào)、操作規(guī)則以及實(shí)現(xiàn)操作的語(yǔ)言。數(shù)據(jù)操作是對(duì)數(shù)據(jù)模型動(dòng)態(tài)特性的描述。語(yǔ)言。數(shù)據(jù)操作是對(duì)數(shù)據(jù)模型動(dòng)態(tài)特性的描述。(3)(3)數(shù)據(jù)的約束條件數(shù)據(jù)的約束條件數(shù)據(jù)的約束條件是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)的約束條件是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫(kù)狀態(tài)數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫(kù)狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。數(shù)據(jù)模型必須遵守基本的通用的完整性約束條件。例如,在關(guān)系模型中,任數(shù)據(jù)模型必須遵守基本的通用的完整性約束條件。例如,在關(guān)系模型中,任何關(guān)系必須滿足實(shí)體完整性和參照完整性兩個(gè)條件。何關(guān)系必須滿足實(shí)體完整性和參照完整性兩個(gè)條件。2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型另外,數(shù)據(jù)模型還應(yīng)該提供用戶自定義完整性約束條件的機(jī)制,以反映具體另外,數(shù)據(jù)模型還應(yīng)該提供用戶自定義完整性約束條件的機(jī)制,以反映具體應(yīng)用所涉及的數(shù)據(jù)必須遵守的特定的語(yǔ)義約束條件。例如,在學(xué)校的數(shù)據(jù)庫(kù)中應(yīng)用所涉及的數(shù)據(jù)必須遵守的特定的語(yǔ)義約束條件。例如,在學(xué)校的數(shù)據(jù)庫(kù)中規(guī)定大學(xué)生入學(xué)年齡不得超過(guò)規(guī)定大學(xué)生入學(xué)年齡不得超過(guò)3030歲,學(xué)生累計(jì)成績(jī)不得有三門以上不及格等。歲,學(xué)生累計(jì)成績(jī)不得有三門以上不及格等。2.2.邏輯數(shù)據(jù)模型的分類邏輯數(shù)據(jù)模型的分類目前,數(shù)據(jù)庫(kù)領(lǐng)域中最常用的邏輯數(shù)據(jù)模型有層次模型目前,數(shù)據(jù)庫(kù)領(lǐng)域中最常用的邏輯數(shù)據(jù)模型有層次模型(Hierarchical(Hierarchical Model)Model)、網(wǎng)狀模型、網(wǎng)狀模型(Network Model)(Network Model)、關(guān)系模型、關(guān)系模型(Relational Model)(Relational Model)和面向?qū)兔嫦驅(qū)ο竽P拖竽P?Object Oriented Model)(Object Oriented Model),其中層次模型和網(wǎng)狀模型統(tǒng)稱為非關(guān)系模,其中層次模型和網(wǎng)狀模型統(tǒng)稱為非關(guān)系模型。型。非關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng)在非關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng)在2020世紀(jì)世紀(jì)7070年代至年代至8080年代初非常流行,在當(dāng)時(shí)的數(shù)年代初非常流行,在當(dāng)時(shí)的數(shù)據(jù)庫(kù)系統(tǒng)產(chǎn)品中占據(jù)了主導(dǎo)地位,現(xiàn)在已逐漸被關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng)取代,據(jù)庫(kù)系統(tǒng)產(chǎn)品中占據(jù)了主導(dǎo)地位,現(xiàn)在已逐漸被關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng)取代,但由于早期開(kāi)發(fā)的應(yīng)用系統(tǒng)都是基于層次數(shù)據(jù)庫(kù)或網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)的,因此,但由于早期開(kāi)發(fā)的應(yīng)用系統(tǒng)都是基于層次數(shù)據(jù)庫(kù)或網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)的,因此,目前仍有不少層次數(shù)據(jù)庫(kù)或網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)在繼續(xù)使用。目前仍有不少層次數(shù)據(jù)庫(kù)或網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)在繼續(xù)使用。2020世紀(jì)世紀(jì)8080年代以來(lái),年代以來(lái),面向?qū)ο蟮姆椒ê图夹g(shù)在計(jì)算機(jī)各個(gè)領(lǐng)域,包括程序設(shè)計(jì)語(yǔ)言、軟件工程、信面向?qū)ο蟮姆椒ê图夹g(shù)在計(jì)算機(jī)各個(gè)領(lǐng)域,包括程序設(shè)計(jì)語(yǔ)言、軟件工程、信息系統(tǒng)設(shè)計(jì)、計(jì)算機(jī)硬件設(shè)計(jì)等各方面都產(chǎn)生了深遠(yuǎn)的影響,也促進(jìn)數(shù)據(jù)庫(kù)中息系統(tǒng)設(shè)計(jì)、計(jì)算機(jī)硬件設(shè)計(jì)等各方面都產(chǎn)生了深遠(yuǎn)的影響,也促進(jìn)數(shù)據(jù)庫(kù)中面向?qū)ο髷?shù)據(jù)模型的研究和發(fā)展。面向?qū)ο髷?shù)據(jù)模型的研究和發(fā)展。2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型2.3.2 2.3.2 層次模型層次模型層次模型是數(shù)據(jù)庫(kù)系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型。層次數(shù)據(jù)庫(kù)系統(tǒng)的典型代表層次模型是數(shù)據(jù)庫(kù)系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型。層次數(shù)據(jù)庫(kù)系統(tǒng)的典型代表是是IBMIBM公司的公司的IMS(Information Management System)IMS(Information Management System)數(shù)據(jù)庫(kù)管理系統(tǒng),曾經(jīng)得數(shù)據(jù)庫(kù)管理系統(tǒng),曾經(jīng)得到廣泛的使用。到廣泛的使用。層次模型是按照層次結(jié)構(gòu)的形式組織數(shù)據(jù)庫(kù)數(shù)據(jù)的數(shù)據(jù)模型,用樹(shù)形結(jié)構(gòu)層次模型是按照層次結(jié)構(gòu)的形式組織數(shù)據(jù)庫(kù)數(shù)據(jù)的數(shù)據(jù)模型,用樹(shù)形結(jié)構(gòu)來(lái)表示各類實(shí)體以及實(shí)體間的聯(lián)系?,F(xiàn)實(shí)世界中許多實(shí)體之間的聯(lián)系本來(lái)就呈來(lái)表示各類實(shí)體以及實(shí)體間的聯(lián)系。現(xiàn)實(shí)世界中許多實(shí)體之間的聯(lián)系本來(lái)就呈現(xiàn)出一種很自然的層次關(guān)系,如家族關(guān)系、軍隊(duì)編制、行政機(jī)構(gòu)等?,F(xiàn)出一種很自然的層次關(guān)系,如家族關(guān)系、軍隊(duì)編制、行政機(jī)構(gòu)等。1.1.層次模型的數(shù)據(jù)結(jié)構(gòu)層次模型的數(shù)據(jù)結(jié)構(gòu)層次模型建立在層次模型建立在“樹(shù)樹(shù)”的概念基礎(chǔ)之上,應(yīng)滿足下面兩個(gè)基本條件:的概念基礎(chǔ)之上,應(yīng)滿足下面兩個(gè)基本條件:(1)(1)有且只有一個(gè)結(jié)點(diǎn)沒(méi)有雙親結(jié)點(diǎn),這個(gè)結(jié)點(diǎn)稱為根結(jié)點(diǎn);有且只有一個(gè)結(jié)點(diǎn)沒(méi)有雙親結(jié)點(diǎn),這個(gè)結(jié)點(diǎn)稱為根結(jié)點(diǎn);(2)(2)根結(jié)點(diǎn)以外的其他結(jié)點(diǎn)有且只有一個(gè)雙親結(jié)點(diǎn)。根結(jié)點(diǎn)以外的其他結(jié)點(diǎn)有且只有一個(gè)雙親結(jié)點(diǎn)。在層次模型中,每個(gè)結(jié)點(diǎn)表示一個(gè)記錄類型,記錄之間的聯(lián)系用結(jié)點(diǎn)之間的在層次模型中,每個(gè)結(jié)點(diǎn)表示一個(gè)記錄類型,記錄之間的聯(lián)系用結(jié)點(diǎn)之間的連線連線(有向邊有向邊)表示,這種聯(lián)系只能是父子之間的一對(duì)多表示,這種聯(lián)系只能是父子之間的一對(duì)多(包括一對(duì)一包括一對(duì)一)的聯(lián)系,的聯(lián)系,表示表示“一一”的記錄類型是父節(jié)點(diǎn),表示的記錄類型是父節(jié)點(diǎn),表示“多多”的記錄類型是子節(jié)點(diǎn)。每個(gè)記錄的記錄類型是子節(jié)點(diǎn)。每個(gè)記錄類型包含若干個(gè)字段,記錄類型描述的是實(shí)體,字段描述的是實(shí)體的屬性。類型包含若干個(gè)字段,記錄類型描述的是實(shí)體,字段描述的是實(shí)體的屬性。2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型層次模型像一棵倒立的樹(shù),除根節(jié)點(diǎn)外,每個(gè)節(jié)點(diǎn)的雙親是唯一的,一個(gè)層層次模型像一棵倒立的樹(shù),除根節(jié)點(diǎn)外,每個(gè)節(jié)點(diǎn)的雙親是唯一的,一個(gè)層次模型的例子如圖次模型的例子如圖2-62-6所示:所示:在層次模型中,同一雙親的子女結(jié)點(diǎn)稱為兄弟結(jié)點(diǎn),沒(méi)有子女結(jié)點(diǎn)的結(jié)點(diǎn)稱在層次模型中,同一雙親的子女結(jié)點(diǎn)稱為兄弟結(jié)點(diǎn),沒(méi)有子女結(jié)點(diǎn)的結(jié)點(diǎn)稱為葉節(jié)點(diǎn)。圖為葉節(jié)點(diǎn)。圖2-62-6中,中,R1R1為根結(jié)點(diǎn);為根結(jié)點(diǎn);R2R2和和R3R3為兄弟結(jié)點(diǎn),是為兄弟結(jié)點(diǎn),是R1R1的子女結(jié)點(diǎn);的子女結(jié)點(diǎn);R4R4和和R5R5為兄弟結(jié)點(diǎn),是為兄弟結(jié)點(diǎn),是R2R2的子女結(jié)點(diǎn);的子女結(jié)點(diǎn);R3R3、R4R4和和R5R5為葉結(jié)點(diǎn)。為葉結(jié)點(diǎn)。2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型圖圖2-72-7是一個(gè)教師學(xué)生層次模型。該層次模型有是一個(gè)教師學(xué)生層次模型。該層次模型有4 4個(gè)記錄類型,即實(shí)體。實(shí)體個(gè)記錄類型,即實(shí)體。實(shí)體系是根結(jié)點(diǎn),由系編號(hào)、系名、地點(diǎn)系是根結(jié)點(diǎn),由系編號(hào)、系名、地點(diǎn)3 3個(gè)屬性組成。它有兩個(gè)子女結(jié)點(diǎn),分別個(gè)屬性組成。它有兩個(gè)子女結(jié)點(diǎn),分別是教研室實(shí)體和學(xué)生實(shí)體。實(shí)體教研室是系的子女結(jié)點(diǎn),同時(shí)又是教師實(shí)體的是教研室實(shí)體和學(xué)生實(shí)體。實(shí)體教研室是系的子女結(jié)點(diǎn),同時(shí)又是教師實(shí)體的雙親結(jié)點(diǎn),它由教研室編號(hào)、教研室名兩個(gè)屬性組成。實(shí)體學(xué)生由學(xué)號(hào)、姓名、雙親結(jié)點(diǎn),它由教研室編號(hào)、教研室名兩個(gè)屬性組成。實(shí)體學(xué)生由學(xué)號(hào)、姓名、成績(jī)成績(jī)3 3個(gè)屬性組成。實(shí)體教師由教師號(hào)、姓名、研究方向個(gè)屬性組成。實(shí)體教師由教師號(hào)、姓名、研究方向3 3個(gè)屬性組成。學(xué)生與個(gè)屬性組成。學(xué)生與教師是葉子結(jié)點(diǎn),它們沒(méi)有子女結(jié)點(diǎn)。由系到教研室、教研室到教師、系到學(xué)教師是葉子結(jié)點(diǎn),它們沒(méi)有子女結(jié)點(diǎn)。由系到教研室、教研室到教師、系到學(xué)生都是一對(duì)多的聯(lián)系。生都是一對(duì)多的聯(lián)系。2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型2.2.層次模型的數(shù)據(jù)操作與完整性約束層次模型的數(shù)據(jù)操作與完整性約束層次模型的數(shù)據(jù)操作主要有查詢、插入、刪除和更新。進(jìn)行插入、刪除、更層次模型的數(shù)據(jù)操作主要有查詢、插入、刪除和更新。進(jìn)行插入、刪除、更新操作時(shí)要滿足層次模型的完整性約束條件。新操作時(shí)要滿足層次模型的完整性約束條件。進(jìn)行插入操作時(shí),如果沒(méi)有相應(yīng)的雙親結(jié)點(diǎn)值就不能插入它的子女結(jié)點(diǎn)值。進(jìn)行插入操作時(shí),如果沒(méi)有相應(yīng)的雙親結(jié)點(diǎn)值就不能插入它的子女結(jié)點(diǎn)值。例如在圖例如在圖2-72-7的層次數(shù)據(jù)庫(kù)中,如果新調(diào)入一名教師,但尚未分配到某個(gè)教研的層次數(shù)據(jù)庫(kù)中,如果新調(diào)入一名教師,但尚未分配到某個(gè)教研室,這時(shí)就不能將新的教師插入到數(shù)據(jù)庫(kù)中。室,這時(shí)就不能將新的教師插入到數(shù)據(jù)庫(kù)中。進(jìn)行刪除操作時(shí),如果刪除雙親結(jié)點(diǎn)值,則相應(yīng)的子女結(jié)點(diǎn)值也被同時(shí)刪除。進(jìn)行刪除操作時(shí),如果刪除雙親結(jié)點(diǎn)值,則相應(yīng)的子女結(jié)點(diǎn)值也被同時(shí)刪除。例如在圖例如在圖2-72-7中的層次數(shù)據(jù)庫(kù)中,如果刪除網(wǎng)絡(luò)教研室,則該教研室的所有教中的層次數(shù)據(jù)庫(kù)中,如果刪除網(wǎng)絡(luò)教研室,則該教研室的所有教師的數(shù)據(jù)將全部丟失。師的數(shù)據(jù)將全部丟失。進(jìn)行更新操作時(shí),應(yīng)更新所有相應(yīng)記錄,以保證數(shù)據(jù)的一致性。進(jìn)行更新操作時(shí),應(yīng)更新所有相應(yīng)記錄,以保證數(shù)據(jù)的一致性。3.3.層次模型的優(yōu)缺點(diǎn)層次模型的優(yōu)缺點(diǎn)層次模型的優(yōu)點(diǎn)主要有:層次模型的優(yōu)點(diǎn)主要有:(1)(1)層次模型的數(shù)據(jù)結(jié)構(gòu)比較簡(jiǎn)單。層次模型的數(shù)據(jù)結(jié)構(gòu)比較簡(jiǎn)單。(2)(2)對(duì)于實(shí)體間聯(lián)系是固定的且預(yù)先定義好的應(yīng)用系統(tǒng),采用層次模型實(shí)對(duì)于實(shí)體間聯(lián)系是固定的且預(yù)先定義好的應(yīng)用系統(tǒng),采用層次模型實(shí)現(xiàn),其性能優(yōu)于關(guān)系模型,不低于網(wǎng)狀模型。現(xiàn),其性能優(yōu)于關(guān)系模型,不低于網(wǎng)狀模型。(3)(3)層次數(shù)據(jù)模型提供了良好的完整性支持。層次數(shù)據(jù)模型提供了良好的完整性支持。2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型層次模型的缺點(diǎn)主要有:層次模型的缺點(diǎn)主要有:(1)(1)現(xiàn)實(shí)世界中很多聯(lián)系是非層次性的,如多對(duì)多聯(lián)系、一個(gè)結(jié)點(diǎn)具有多現(xiàn)實(shí)世界中很多聯(lián)系是非層次性的,如多對(duì)多聯(lián)系、一個(gè)結(jié)點(diǎn)具有多個(gè)雙親等,層次模型表示這類聯(lián)系的方法很不靈活,只能通過(guò)引入冗余數(shù)據(jù)個(gè)雙親等,層次模型表示這類聯(lián)系的方法很不靈活,只能通過(guò)引入冗余數(shù)據(jù)(易產(chǎn)生不一致性易產(chǎn)生不一致性)或創(chuàng)建非自然的數(shù)據(jù)組織或創(chuàng)建非自然的數(shù)據(jù)組織(引入虛擬結(jié)點(diǎn)引入虛擬結(jié)點(diǎn))來(lái)解決。來(lái)解決。(2)(2)對(duì)插入和刪除操作的限制比較多。對(duì)插入和刪除操作的限制比較多。(3)(3)查詢子女結(jié)點(diǎn)必須通過(guò)雙親結(jié)點(diǎn)。查詢子女結(jié)點(diǎn)必須通過(guò)雙親結(jié)點(diǎn)。(4)(4)由于結(jié)構(gòu)嚴(yán)密,層次命令趨于程序化。由于結(jié)構(gòu)嚴(yán)密,層次命令趨于程序化。層次模型還具有一個(gè)基本特點(diǎn),任何一個(gè)給定的記錄值只有按其路徑查看層次模型還具有一個(gè)基本特點(diǎn),任何一個(gè)給定的記錄值只有按其路徑查看時(shí)才能顯示它的全部意義,沒(méi)有一個(gè)子女記錄值能夠脫離雙親記錄值而獨(dú)立存時(shí)才能顯示它的全部意義,沒(méi)有一個(gè)子女記錄值能夠脫離雙親記錄值而獨(dú)立存在。因此層次模型對(duì)具有一對(duì)多的層次關(guān)系的描述非常直觀、自然、容易理解。在。因此層次模型對(duì)具有一對(duì)多的層次關(guān)系的描述非常直觀、自然、容易理解。2.3.3 2.3.3 網(wǎng)狀模型網(wǎng)狀模型在現(xiàn)實(shí)世界中事物之間的聯(lián)系更多是非層次關(guān)系的,用層次模型表示非樹(shù)形在現(xiàn)實(shí)世界中事物之間的聯(lián)系更多是非層次關(guān)系的,用層次模型表示非樹(shù)形結(jié)構(gòu)很不直接,網(wǎng)狀模型則可以克服這一缺點(diǎn)。結(jié)構(gòu)很不直接,網(wǎng)狀模型則可以克服這一缺點(diǎn)。2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型網(wǎng)狀數(shù)據(jù)模型的典型代表是網(wǎng)狀數(shù)據(jù)模型的典型代表是DBTGDBTG系統(tǒng),亦稱系統(tǒng),亦稱CODASYLCODASYL系統(tǒng),這是系統(tǒng),這是2020世紀(jì)世紀(jì)7070年年代數(shù)據(jù)系統(tǒng)語(yǔ)言研究會(huì)代數(shù)據(jù)系統(tǒng)語(yǔ)言研究會(huì)(Conference On Data System Language(Conference On Data System Language,CODASYL)CODASYL)下下屬的數(shù)據(jù)庫(kù)任務(wù)組屬的數(shù)據(jù)庫(kù)任務(wù)組(Data Base Task Group(Data Base Task Group,DBTG)DBTG)提出的一個(gè)系統(tǒng)方案。提出的一個(gè)系統(tǒng)方案。DBTGDBTG系統(tǒng)雖然不是實(shí)際的軟件系統(tǒng),但是它提出的基本概念、方法和技術(shù)具有普遍系統(tǒng)雖然不是實(shí)際的軟件系統(tǒng),但是它提出的基本概念、方法和技術(shù)具有普遍意義,對(duì)于網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)的研制和發(fā)展起了重大的影響。后來(lái)許多系統(tǒng)都采意義,對(duì)于網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)的研制和發(fā)展起了重大的影響。后來(lái)許多系統(tǒng)都采用用DBTGDBTG模型或者簡(jiǎn)化的模型或者簡(jiǎn)化的DBTGDBTG模型,例如模型,例如CuUinetSoftwareCuUinetSoftware公司的公司的IDMSIDMS等。等。1.1.網(wǎng)狀模型的數(shù)據(jù)結(jié)構(gòu)網(wǎng)狀模型的數(shù)據(jù)結(jié)構(gòu)網(wǎng)狀模型建立在連通有向圖的基礎(chǔ)之上,應(yīng)滿足以下兩個(gè)基本條件:網(wǎng)狀模型建立在連通有向圖的基礎(chǔ)之上,應(yīng)滿足以下兩個(gè)基本條件:(1)(1)允許一個(gè)以上的結(jié)點(diǎn)無(wú)雙親;允許一個(gè)以上的結(jié)點(diǎn)無(wú)雙親;(2)(2)一個(gè)結(jié)點(diǎn)可以有多于一個(gè)的雙親。一個(gè)結(jié)點(diǎn)可以有多于一個(gè)的雙親。網(wǎng)狀模型是一種比層次模型更具普遍性的結(jié)構(gòu)。它去掉了層次模型的兩個(gè)限網(wǎng)狀模型是一種比層次模型更具普遍性的結(jié)構(gòu)。它去掉了層次模型的兩個(gè)限制,允許多個(gè)結(jié)點(diǎn)沒(méi)有雙親結(jié)點(diǎn),允許結(jié)點(diǎn)有多個(gè)雙親結(jié)點(diǎn),此外它還允許兩制,允許多個(gè)結(jié)點(diǎn)沒(méi)有雙親結(jié)點(diǎn),允許結(jié)點(diǎn)有多個(gè)雙親結(jié)點(diǎn),此外它還允許兩個(gè)結(jié)點(diǎn)之間有多種聯(lián)系個(gè)結(jié)點(diǎn)之間有多種聯(lián)系(稱之為復(fù)合聯(lián)系稱之為復(fù)合聯(lián)系)。因此,網(wǎng)狀模型可以更直接地去描。因此,網(wǎng)狀模型可以更直接地去描述現(xiàn)實(shí)世界,而層次模型實(shí)際上是網(wǎng)狀模型的一個(gè)特例。述現(xiàn)實(shí)世界,而層次模型實(shí)際上是網(wǎng)狀模型的一個(gè)特例。2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型與層次模型一樣,網(wǎng)狀模型中每個(gè)結(jié)點(diǎn)表示一個(gè)記錄類型與層次模型一樣,網(wǎng)狀模型中每個(gè)結(jié)點(diǎn)表示一個(gè)記錄類型(實(shí)體實(shí)體),每個(gè)記錄,每個(gè)記錄類型可包含若干個(gè)字段類型可包含若干個(gè)字段(屬性屬性),結(jié)點(diǎn)間的連線表示實(shí)體之間一對(duì)多的父子聯(lián)系。,結(jié)點(diǎn)間的連線表示實(shí)體之間一對(duì)多的父子聯(lián)系。從定義可以看出,層次模型中子女結(jié)點(diǎn)與雙親結(jié)點(diǎn)的聯(lián)系是唯一的,而在網(wǎng)從定義可以看出,層次模型中子女結(jié)點(diǎn)與雙親結(jié)點(diǎn)的聯(lián)系是唯一的,而在網(wǎng)狀模型中這種聯(lián)系可以不唯一。因此,要為每個(gè)聯(lián)系命名,并指出與該聯(lián)系有狀模型中這種聯(lián)系可以不唯一。因此,要為每個(gè)聯(lián)系命名,并指出與該聯(lián)系有關(guān)的雙親記錄和子女記錄。例如圖關(guān)的雙親記錄和子女記錄。例如圖2-82-8是網(wǎng)狀模型的一個(gè)例子,圖是網(wǎng)狀模型的一個(gè)例子,圖2-82-8中中R3R3有兩有兩個(gè)雙親記錄個(gè)雙親記錄R1R1和和R2R2,因此,把,因此,把R1R1與與R3R3之問(wèn)的聯(lián)系命名為之問(wèn)的聯(lián)系命名為L(zhǎng)1L1,R2R2與與R3R3之間的聯(lián)系之間的聯(lián)系命名為命名為L(zhǎng)2L2。實(shí)際的商品化網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)對(duì)網(wǎng)狀數(shù)據(jù)結(jié)構(gòu)都有不同的限制,這時(shí)就需要實(shí)際的商品化網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)對(duì)網(wǎng)狀數(shù)據(jù)結(jié)構(gòu)都有不同的限制,這時(shí)就需要把現(xiàn)實(shí)世界一般的網(wǎng)狀結(jié)構(gòu)轉(zhuǎn)換成系統(tǒng)所能處理的結(jié)構(gòu)。把現(xiàn)實(shí)世界一般的網(wǎng)狀結(jié)構(gòu)轉(zhuǎn)換成系統(tǒng)所能處理的結(jié)構(gòu)。2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型下面以學(xué)生選課為例,看一看網(wǎng)狀模型是怎樣來(lái)組織數(shù)據(jù)的。下面以學(xué)生選課為例,看一看網(wǎng)狀模型是怎樣來(lái)組織數(shù)據(jù)的。按照常規(guī),一個(gè)學(xué)生可以選修若干門課程,某一課程可以被多個(gè)學(xué)生選修,按照常規(guī),一個(gè)學(xué)生可以選修若干門課程,某一課程可以被多個(gè)學(xué)生選修,因此,學(xué)生與課程之間是多對(duì)多的聯(lián)系。這樣的實(shí)體聯(lián)系圖不能直接用網(wǎng)狀模因此,學(xué)生與課程之間是多對(duì)多的聯(lián)系。這樣的實(shí)體聯(lián)系圖不能直接用網(wǎng)狀模型來(lái)表示,因?yàn)榫W(wǎng)狀模型中不能直接表示實(shí)體之間多對(duì)多的聯(lián)系。為此引進(jìn)一型來(lái)表示,因?yàn)榫W(wǎng)狀模型中不能直接表示實(shí)體之間多對(duì)多的聯(lián)系。為此引進(jìn)一個(gè)學(xué)生選課的聯(lián)結(jié)記錄,它由三個(gè)數(shù)據(jù)項(xiàng)組成,即學(xué)號(hào)、課程號(hào)、成績(jī),表示個(gè)學(xué)生選課的聯(lián)結(jié)記錄,它由三個(gè)數(shù)據(jù)項(xiàng)組成,即學(xué)號(hào)、課程號(hào)、成績(jī),表示某個(gè)學(xué)生選修某一門課程及其成績(jī)。某個(gè)學(xué)生選修某一門課程及其成績(jī)。2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型這樣,學(xué)生選課數(shù)據(jù)庫(kù)包括三個(gè)記錄類型:學(xué)生、課程和選課。這樣,學(xué)生選課數(shù)據(jù)庫(kù)包括三個(gè)記錄類型:學(xué)生、課程和選課。每個(gè)學(xué)生可以選修多門課程。顯然對(duì)于學(xué)生記錄中的一個(gè)值,選課記錄每個(gè)學(xué)生可以選修多門課程。顯然對(duì)于學(xué)生記錄中的一個(gè)值,選課記錄中可以有多個(gè)值與之聯(lián)系;而選課記錄中的一個(gè)值,只能與學(xué)生記錄中的一中可以有多個(gè)值與之聯(lián)系;而選課記錄中的一個(gè)值,只能與學(xué)生記錄中的一個(gè)值聯(lián)系。學(xué)生與選課之間的聯(lián)系是一對(duì)多的聯(lián)系,聯(lián)系名為學(xué)生個(gè)值聯(lián)系。學(xué)生與選課之間的聯(lián)系是一對(duì)多的聯(lián)系,聯(lián)系名為學(xué)生-選課。選課。同樣,課程與選課之間的聯(lián)系也是一對(duì)多的聯(lián)系,聯(lián)系名為課程同樣,課程與選課之間的聯(lián)系也是一對(duì)多的聯(lián)系,聯(lián)系名為課程-選課。圖選課。圖2-92-9為學(xué)生選課的網(wǎng)狀模型。為學(xué)生選課的網(wǎng)狀模型。2.2.網(wǎng)狀模型的數(shù)據(jù)操作與完整性約束網(wǎng)狀模型的數(shù)據(jù)操作與完整性約束 網(wǎng)狀模型的數(shù)據(jù)操作主要包括查詢、插入、刪除和更新。進(jìn)行插入操作網(wǎng)狀模型的數(shù)據(jù)操作主要包括查詢、插入、刪除和更新。進(jìn)行插入操作時(shí),允許插入尚未確定雙親結(jié)點(diǎn)值的子女結(jié)點(diǎn)值。進(jìn)行刪除操作時(shí),只允許時(shí),允許插入尚未確定雙親結(jié)點(diǎn)值的子女結(jié)點(diǎn)值。進(jìn)行刪除操作時(shí),只允許刪除雙親結(jié)點(diǎn)值。進(jìn)行更新操作時(shí)只需更新指定記錄即可。因此,一般來(lái)說(shuō),刪除雙親結(jié)點(diǎn)值。進(jìn)行更新操作時(shí)只需更新指定記錄即可。因此,一般來(lái)說(shuō),網(wǎng)狀模型沒(méi)有層次模型那樣嚴(yán)格的完整性約束條件,但具體的網(wǎng)狀數(shù)據(jù)庫(kù)系網(wǎng)狀模型沒(méi)有層次模型那樣嚴(yán)格的完整性約束條件,但具體的網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)統(tǒng)(如如DBTG)DBTG)對(duì)數(shù)據(jù)操作都加了一些限制,提供了一定的完整性約束。對(duì)數(shù)據(jù)操作都加了一些限制,提供了一定的完整性約束。DBTG DBTG在模式在模式DDLDDL中提供了定義中提供了定義DBTGDBTG數(shù)據(jù)庫(kù)完整性的若干概念和語(yǔ)句,主要數(shù)據(jù)庫(kù)完整性的若干概念和語(yǔ)句,主要有:有:2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型(1)(1)支持記錄碼的概念,碼即唯一標(biāo)識(shí)記錄的數(shù)據(jù)項(xiàng)的集合。例如,學(xué)生記支持記錄碼的概念,碼即唯一標(biāo)識(shí)記錄的數(shù)據(jù)項(xiàng)的集合。例如,學(xué)生記錄錄(圖圖2-9)2-9)中學(xué)號(hào)是碼,因此數(shù)據(jù)庫(kù)中不允許學(xué)生記錄中學(xué)號(hào)出現(xiàn)重復(fù)值。中學(xué)號(hào)是碼,因此數(shù)據(jù)庫(kù)中不允許學(xué)生記錄中學(xué)號(hào)出現(xiàn)重復(fù)值。(2)(2)保證一個(gè)聯(lián)系中雙親記錄和子女記錄之間是一對(duì)多的聯(lián)系。保證一個(gè)聯(lián)系中雙親記錄和子女記錄之間是一對(duì)多的聯(lián)系。(3)(3)可以支持雙親記錄和子女記錄之間某些約束條件。如有些子女記錄要求可以支持雙親記錄和子女記錄之間某些約束條件。如有些子女記錄要求雙親記錄存在才能插入,雙親記錄刪除時(shí)也連同刪除。例如圖雙親記錄存在才能插入,雙親記錄刪除時(shí)也連同刪除。例如圖2-92-9中選課記錄中選課記錄就應(yīng)該滿足這種約束條件,學(xué)生選課記錄值必須是數(shù)據(jù)庫(kù)中存在的某一學(xué)生選就應(yīng)該滿足這種約束條件,學(xué)生選課記錄值必須是數(shù)據(jù)庫(kù)中存在的某一學(xué)生選修存在的某一課程的選修記錄。修存在的某一課程的選修記錄。DBTGDBTG提供了提供了“屬籍類別屬籍類別”的概念來(lái)描述這類約的概念來(lái)描述這類約束條件。束條件。3.3.網(wǎng)狀數(shù)據(jù)模型的優(yōu)缺點(diǎn)網(wǎng)狀數(shù)據(jù)模型的優(yōu)缺點(diǎn)網(wǎng)狀數(shù)據(jù)模型的優(yōu)點(diǎn)主要有:網(wǎng)狀數(shù)據(jù)模型的優(yōu)點(diǎn)主要有:(1)(1)能夠更為直接地描述現(xiàn)實(shí)世界。如一個(gè)結(jié)點(diǎn)可以有多個(gè)雙親,結(jié)點(diǎn)之間能夠更為直接地描述現(xiàn)實(shí)世界。如一個(gè)結(jié)點(diǎn)可以有多個(gè)雙親,結(jié)點(diǎn)之間可以有多種聯(lián)系??梢杂卸喾N聯(lián)系。(2)(2)具有良好的性能,存取效率較高。具有良好的性能,存取效率較高。網(wǎng)狀數(shù)據(jù)模型的缺點(diǎn)主要有:網(wǎng)狀數(shù)據(jù)模型的缺點(diǎn)主要有:2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型(1)(1)結(jié)構(gòu)比較復(fù)雜,而且應(yīng)用環(huán)境越大,數(shù)據(jù)庫(kù)的結(jié)構(gòu)就變得越復(fù)雜,不利結(jié)構(gòu)比較復(fù)雜,而且應(yīng)用環(huán)境越大,數(shù)據(jù)庫(kù)的結(jié)構(gòu)就變得越復(fù)雜,不利于最終用戶掌握。于最終用戶掌握。(2)(2)其數(shù)據(jù)定義語(yǔ)言其數(shù)據(jù)定義語(yǔ)言(DDL)(DDL),數(shù)據(jù)操作語(yǔ)言,數(shù)據(jù)操作語(yǔ)言(DML)(DML)語(yǔ)言復(fù)雜,用戶不容易使用。語(yǔ)言復(fù)雜,用戶不容易使用。由于記錄之間聯(lián)系是通過(guò)存取路徑實(shí)現(xiàn)的,應(yīng)用程序在訪問(wèn)數(shù)據(jù)時(shí)必須選擇由于記錄之間聯(lián)系是通過(guò)存取路徑實(shí)現(xiàn)的,應(yīng)用程序在訪問(wèn)數(shù)據(jù)時(shí)必須選擇適當(dāng)?shù)拇嫒÷窂?,因此,用戶必須了解系統(tǒng)結(jié)構(gòu)的細(xì)節(jié),加重了編寫(xiě)應(yīng)用程序適當(dāng)?shù)拇嫒÷窂剑虼?,用戶必須了解系統(tǒng)結(jié)構(gòu)的細(xì)節(jié),加重了編寫(xiě)應(yīng)用程序的負(fù)擔(dān)。的負(fù)擔(dān)。2.3.4 2.3.4 關(guān)系模型關(guān)系模型關(guān)系模型是目前最重要的、應(yīng)用最廣泛的一種數(shù)據(jù)模型。目前,主流的數(shù)據(jù)關(guān)系模型是目前最重要的、應(yīng)用最廣泛的一種數(shù)據(jù)模型。目前,主流的數(shù)據(jù)庫(kù)系統(tǒng)大部分都是基于關(guān)系模型的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)庫(kù)系統(tǒng)大部分都是基于關(guān)系模型的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)(Relational DataBase(Relational DataBase SystemSystem,RDBS)RDBS)。19701970年美國(guó)年美國(guó)IBMIBM公司公司San JoseSan Jose研究室的研究員研究室的研究員E.F.CoddE.F.Codd首次提首次提出了數(shù)據(jù)庫(kù)系統(tǒng)的關(guān)系模型,開(kāi)創(chuàng)了數(shù)據(jù)庫(kù)關(guān)系方法和關(guān)系數(shù)據(jù)理論的研究,出了數(shù)據(jù)庫(kù)系統(tǒng)的關(guān)系模型,開(kāi)創(chuàng)了數(shù)據(jù)庫(kù)關(guān)系方法和關(guān)系數(shù)據(jù)理論的研究,為數(shù)據(jù)庫(kù)技術(shù)奠定了理論基礎(chǔ)。為數(shù)據(jù)庫(kù)技術(shù)奠定了理論基礎(chǔ)。2020世紀(jì)世紀(jì)8080年代以來(lái),計(jì)算機(jī)廠商新推出的年代以來(lái),計(jì)算機(jī)廠商新推出的DBMSDBMS幾乎都支持關(guān)系模型,非關(guān)系模型的產(chǎn)品也大都添加了關(guān)系接口,數(shù)據(jù)庫(kù)領(lǐng)域幾乎都支持關(guān)系模型,非關(guān)系模型的產(chǎn)品也大都添加了關(guān)系接口,數(shù)據(jù)庫(kù)領(lǐng)域當(dāng)前的研究工作也都是以關(guān)系方法為基礎(chǔ),所以本書(shū)的重點(diǎn)也將放在關(guān)系數(shù)據(jù)當(dāng)前的研究工作也都是以關(guān)系方法為基礎(chǔ),所以本書(shū)的重點(diǎn)也將放在關(guān)系數(shù)據(jù)庫(kù)上。庫(kù)上。2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型1.1.關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)建立在集合論中關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)建立在集合論中“關(guān)系關(guān)系”這個(gè)數(shù)學(xué)概念的基礎(chǔ)之上,這個(gè)數(shù)學(xué)概念的基礎(chǔ)之上,有著嚴(yán)格的數(shù)學(xué)定義。這里只簡(jiǎn)單勾畫(huà)一下關(guān)系模型。在用戶觀點(diǎn)來(lái)看,關(guān)有著嚴(yán)格的數(shù)學(xué)定義。這里只簡(jiǎn)單勾畫(huà)一下關(guān)系模型。在用戶觀點(diǎn)來(lái)看,關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)非常簡(jiǎn)單,每個(gè)關(guān)系的數(shù)據(jù)結(jié)構(gòu)是一張二維表,它由行和系模型的數(shù)據(jù)結(jié)構(gòu)非常簡(jiǎn)單,每個(gè)關(guān)系的數(shù)據(jù)結(jié)構(gòu)是一張二維表,它由行和列組成。這張表既可以用來(lái)描述實(shí)體,也可以用來(lái)描述實(shí)體間的聯(lián)系。現(xiàn)在列組成。這張表既可以用來(lái)描述實(shí)體,也可以用來(lái)描述實(shí)體間的聯(lián)系?,F(xiàn)在以學(xué)生表為例,介紹關(guān)系模型中的一些術(shù)語(yǔ),如表以學(xué)生表為例,介紹關(guān)系模型中的一些術(shù)語(yǔ),如表2-12-1所示。所示。l關(guān)系關(guān)系(Relation)(Relation):一個(gè)關(guān)系通常對(duì)應(yīng)一張二維表,如上述的這張學(xué)生表;:一個(gè)關(guān)系通常對(duì)應(yīng)一張二維表,如上述的這張學(xué)生表;l元組元組(Tuple)(Tuple):表中的一行即為一個(gè)元組,也稱為記錄;:表中的一行即為一個(gè)元組,也稱為記錄;l屬性屬性(Attribute)(Attribute):表中的一列即為一個(gè)屬性,給每一個(gè)屬性起一個(gè)名稱:表中的一列即為一個(gè)屬性,給每一個(gè)屬性起一個(gè)名稱即屬性名,如上表有五列,對(duì)應(yīng)五個(gè)屬性即屬性名,如上表有五列,對(duì)應(yīng)五個(gè)屬性(學(xué)號(hào),姓名,性別,年齡,系名學(xué)號(hào),姓名,性別,年齡,系名);l碼碼(Key)(Key):表中的某個(gè)屬性組,它可以唯一確定一個(gè)元組,如表中的學(xué)號(hào),:表中的某個(gè)屬性組,它可以唯一確定一個(gè)元組,如表中的學(xué)號(hào),可以唯一確定一個(gè)學(xué)生記錄,也就成為本關(guān)系的碼;可以唯一確定一個(gè)學(xué)生記錄,也就成為本關(guān)系的碼;l域域(Domain)(Domain):屬性的取值范圍,如人的年齡域在:屬性的取值范圍,如人的年齡域在l l150150歲之間,大學(xué)生年歲之間,大學(xué)生年齡屬性的域是齡屬性的域是(14(1438)38),性別的域是,性別的域是(男,女男,女),系別的域是一個(gè)學(xué)校所有系,系別的域是一個(gè)學(xué)校所有系名的集合;名的集合;2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型l分量分量(Component)(Component):元組中的一個(gè)屬性值;:元組中的一個(gè)屬性值;l關(guān)系模式(Relational schema):對(duì)關(guān)系的描述,一般表示為:關(guān)系名(屬性l,屬性2,屬性n)。例如上表的關(guān)系可描述為:學(xué)生(學(xué)號(hào),姓名,性別,年齡,系名)。在關(guān)系模型中,實(shí)體以及實(shí)體間的聯(lián)系都是用關(guān)系來(lái)表示。關(guān)系模型在關(guān)系模型中,實(shí)體以及實(shí)體間的聯(lián)系都是用關(guān)系來(lái)表示。關(guān)系模型要求關(guān)系必須是規(guī)范化的,即要求關(guān)系必須滿足一定的規(guī)范條件,這要求關(guān)系必須是規(guī)范化的,即要求關(guān)系必須滿足一定的規(guī)范條件,這些規(guī)范條件中最基本的一條就是,關(guān)系的每一個(gè)分量必須是一個(gè)不可些規(guī)范條件中最基本的一條就是,關(guān)系的每一個(gè)分量必須是一個(gè)不可分的數(shù)據(jù)項(xiàng),也就是說(shuō),不允許表中還有表,如表分的數(shù)據(jù)項(xiàng),也就是說(shuō),不允許表中還有表,如表2-22-2中工資和扣除是中工資和扣除是可分的數(shù)據(jù)項(xiàng),工資又分為基本工資、津貼和職務(wù)工資,扣除又分為可分的數(shù)據(jù)項(xiàng),工資又分為基本工資、津貼和職務(wù)工資,扣除又分為房租和水電。因此,表房租和水電。因此,表2-22-2就不符合關(guān)系模型要求。就不符合關(guān)系模型要求。2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型2.2.關(guān)系模型的數(shù)據(jù)操作與完整性約束關(guān)系模型的數(shù)據(jù)操作與完整性約束關(guān)系數(shù)據(jù)模型的操作主要包括查詢、插入、刪除和修改數(shù)據(jù)。這些操作必關(guān)系數(shù)據(jù)模型的操作主要包括查詢、插入、刪除和修改數(shù)據(jù)。這些操作必須滿足關(guān)系的完整性約束條件。關(guān)系模型中數(shù)據(jù)操作的特點(diǎn)是集合操作方式,須滿足關(guān)系的完整性約束條件。關(guān)系模型中數(shù)據(jù)操作的特點(diǎn)是集合操作方式,即操作對(duì)象和操作結(jié)果都是集合,這種操作方式也稱為一次一集合的方式。即操作對(duì)象和操作結(jié)果都是集合,這種操作方式也稱為一次一集合的方式。相應(yīng)的,非關(guān)系數(shù)據(jù)模型的操作方式是一次一記錄的方式。相應(yīng)的,非關(guān)系數(shù)據(jù)模型的操作方式是一次一記錄的方式。關(guān)系的完整性約束條件包括三大類:實(shí)體完整性、參照完整性和用戶定義關(guān)系的完整性約束條件包括三大類:實(shí)體完整性、參照完整性和用戶定義的完整性。實(shí)體完整性定義數(shù)據(jù)庫(kù)中每一個(gè)基本關(guān)系的主碼應(yīng)滿足的條件,的完整性。實(shí)體完整性定義數(shù)據(jù)庫(kù)中每一個(gè)基本關(guān)系的主碼應(yīng)滿足的條件,能夠保證元組的唯一性。參照完整性定義表之間的引用關(guān)系,即參照與被參能夠保證元組的唯一性。參照完整性定義表之間的引用關(guān)系,即參照與被參照關(guān)系。用戶定義完整性是用戶針對(duì)具體的應(yīng)用環(huán)境制定的數(shù)據(jù)規(guī)則,反映照關(guān)系。用戶定義完整性是用戶針對(duì)具體的應(yīng)用環(huán)境制定的數(shù)據(jù)規(guī)則,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語(yǔ)義要求。數(shù)據(jù)完整性約束的具體內(nèi)某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語(yǔ)義要求。數(shù)據(jù)完整性約束的具體內(nèi)容將在第容將在第3 3章詳細(xì)介紹。章詳細(xì)介紹。2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型3.3.關(guān)系模型的優(yōu)缺點(diǎn)關(guān)系模型的優(yōu)缺點(diǎn)關(guān)系數(shù)據(jù)模型的優(yōu)點(diǎn)主要體現(xiàn)在如下幾點(diǎn):關(guān)系數(shù)據(jù)模型的優(yōu)點(diǎn)主要體現(xiàn)在如下幾點(diǎn):(1)(1)關(guān)系模型與非關(guān)系模型不同,它是建立在嚴(yán)格的數(shù)學(xué)理論基礎(chǔ)上的。關(guān)系模型與非關(guān)系模型不同,它是建立在嚴(yán)格的數(shù)學(xué)理論基礎(chǔ)上的。(2)(2)關(guān)系模型的概念單一,實(shí)體與實(shí)體間的聯(lián)系都用關(guān)系表示,對(duì)數(shù)據(jù)的關(guān)系模型的概念單一,實(shí)體與實(shí)體間的聯(lián)系都用關(guān)系表示,對(duì)數(shù)據(jù)的檢索結(jié)果也是關(guān)系檢索結(jié)果也是關(guān)系(即表即表),所以其數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單、清晰,用戶易懂易用。,所以其數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單、清晰,用戶易懂易用。(3)(3)關(guān)系模型的物理存儲(chǔ)和存取路徑對(duì)用戶透明,從而具有更高的數(shù)據(jù)獨(dú)關(guān)系模型的物理存儲(chǔ)和存取路徑對(duì)用戶透明,從而具有更高的數(shù)據(jù)獨(dú)立性、更好的安全保密性,簡(jiǎn)化了程序員的工作和數(shù)據(jù)庫(kù)開(kāi)發(fā)工作。立性、更好的安全保密性,簡(jiǎn)化了程序員的工作和數(shù)據(jù)庫(kù)開(kāi)發(fā)工作。關(guān)系數(shù)據(jù)模型的缺點(diǎn)關(guān)系數(shù)據(jù)模型的缺點(diǎn):(1)(1)由于存取路徑對(duì)用戶透明,查詢效率往往不如非關(guān)系數(shù)據(jù)模型高。因由于存取路徑對(duì)用戶透明,查詢效率往往不如非關(guān)系數(shù)據(jù)模型高。因此,為了提高性能,必須對(duì)用戶的查詢請(qǐng)求進(jìn)行優(yōu)化,這就增加了開(kāi)發(fā)數(shù)據(jù)此,為了提高性能,必須對(duì)用戶的查詢請(qǐng)求進(jìn)行優(yōu)化,這就增加了開(kāi)發(fā)數(shù)據(jù)庫(kù)管理系統(tǒng)的難度和負(fù)擔(dān)。庫(kù)管理系統(tǒng)的難度和負(fù)擔(dān)。(2)(2)關(guān)系數(shù)據(jù)模型不能以自然的方式表示實(shí)體集間的聯(lián)系,存在語(yǔ)義信息關(guān)系數(shù)據(jù)模型不能以自然的方式表示實(shí)體集間的聯(lián)系,存在語(yǔ)義信息不足、數(shù)據(jù)類型過(guò)少等弱點(diǎn)。不足、數(shù)據(jù)類型過(guò)少等弱點(diǎn)。2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型2.3.5 2.3.5 面向?qū)ο髷?shù)據(jù)模型面向?qū)ο髷?shù)據(jù)模型面向?qū)ο髷?shù)據(jù)模型面向?qū)ο髷?shù)據(jù)模型(Object-Oriented Data Model)(Object-Oriented Data Model)吸取了層次、網(wǎng)狀、關(guān)吸取了層次、網(wǎng)狀、關(guān)系等各種數(shù)據(jù)模型的優(yōu)點(diǎn),并借鑒面向?qū)ο蟮脑O(shè)計(jì)方法,可以表達(dá)更為復(fù)雜系等各種數(shù)據(jù)模型的優(yōu)點(diǎn),并借鑒面向?qū)ο蟮脑O(shè)計(jì)方法,可以表達(dá)更為復(fù)雜的數(shù)據(jù)結(jié)構(gòu),對(duì)于具有復(fù)雜要求和嵌套遞歸關(guān)系的數(shù)據(jù)形式具有很強(qiáng)的表達(dá)的數(shù)據(jù)結(jié)構(gòu),對(duì)于具有復(fù)雜要求和嵌套遞歸關(guān)系的數(shù)據(jù)形式具有很強(qiáng)的表達(dá)能力。是近幾年來(lái)迅速崛起并得到飛速發(fā)展的數(shù)據(jù)模型。能力。是近幾年來(lái)迅速崛起并得到飛速發(fā)展的數(shù)據(jù)模型。在面向?qū)ο髷?shù)據(jù)模型中,現(xiàn)實(shí)世界的任意實(shí)體都統(tǒng)一地用對(duì)象表示,每個(gè)在面向?qū)ο髷?shù)據(jù)模型中,現(xiàn)實(shí)世界的任意實(shí)體都統(tǒng)一地用對(duì)象表示,每個(gè)對(duì)象都有唯一的標(biāo)識(shí),稱為對(duì)象標(biāo)識(shí)對(duì)象都有唯一的標(biāo)識(shí),稱為對(duì)象標(biāo)識(shí)(Object Identifier(Object Identifier,OID)OID)。每一個(gè)對(duì)。每一個(gè)對(duì)象的定義包含狀態(tài)和行為兩個(gè)方面,狀態(tài)由一組屬性組成,行為由一組方法象的定義包含狀態(tài)和行為兩個(gè)方面,狀態(tài)由一組屬性組成,行為由一組方法組成。通過(guò)方法可以改變對(duì)象的狀態(tài),對(duì)對(duì)象進(jìn)行各種數(shù)據(jù)庫(kù)操作。對(duì)象在組成。通過(guò)方法可以改變對(duì)象的狀態(tài),對(duì)對(duì)象進(jìn)行各種數(shù)據(jù)庫(kù)操作。對(duì)象在被刪除前是永久存在的,即具有持久性。具有相同屬性和方法的對(duì)象構(gòu)成一被刪除前是永久存在的,即具有持久性。具有相同屬性和方法的對(duì)象構(gòu)成一個(gè)對(duì)象類個(gè)對(duì)象類(簡(jiǎn)稱為類簡(jiǎn)稱為類),一個(gè)對(duì)象是某一類的實(shí)例。例如,一個(gè)對(duì)象是某一類的實(shí)例。例如,CUSTOMERCUSTOMER類不僅含類不僅含有客戶的屬性有客戶的屬性(比如比如CUST.IDCUST.ID、CUST.NAMECUST.NAME和和CUST.ADDRESSCUST.ADDRESS等等),還包含模仿客,還包含模仿客戶行為戶行為(如修改訂單如修改訂單)的過(guò)程。具體的某個(gè)客戶,如王維是的過(guò)程。具體的某個(gè)客戶,如王維是CUSTOMERCUSTOMER類中的一類中的一個(gè)對(duì)象。在該對(duì)象內(nèi)部,用類的屬性個(gè)對(duì)象。在該對(duì)象內(nèi)部,用類的屬性CUST.IDCUST.ID的值來(lái)唯一區(qū)分每個(gè)客戶的值來(lái)唯一區(qū)分每個(gè)客戶(對(duì)象對(duì)象),該類的所有對(duì)象共享類的行為模式。,該類的所有對(duì)象共享類的行為模式。2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型在面向?qū)ο髷?shù)據(jù)庫(kù)中,對(duì)象是狀態(tài)和行為的封裝。從對(duì)象外部看,對(duì)象的在面向?qū)ο髷?shù)據(jù)庫(kù)中,對(duì)象是狀態(tài)和行為的封裝。從對(duì)象外部看,對(duì)象的狀態(tài)和行為是不可見(jiàn)的,對(duì)象之間的通信是通過(guò)消息傳遞來(lái)調(diào)用對(duì)象中的屬狀態(tài)和行為是不可見(jiàn)的,對(duì)象之間的通信是通過(guò)消息傳遞來(lái)調(diào)用對(duì)象中的屬性和方法,從而內(nèi)部執(zhí)行要求的操作,操作的結(jié)果仍以消息的形式返回。性和方法,從而內(nèi)部執(zhí)行要求的操作,操作的結(jié)果仍以消息的形式返回。面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng)面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng)(OODBMS)(OODBMS)是數(shù)據(jù)庫(kù)管理中最新的方法,它們始于是數(shù)據(jù)庫(kù)管理中最新的方法,它們始于工程和設(shè)工程和設(shè)計(jì)領(lǐng)域的應(yīng)用,并且成為廣受金融、電信和萬(wàn)維網(wǎng)計(jì)領(lǐng)域的應(yīng)用,并且成為廣受金融、電信和萬(wàn)維網(wǎng)(WWW)(WWW)應(yīng)用歡迎的系統(tǒng)。應(yīng)用歡迎的系統(tǒng)。它適用于多媒體應(yīng)用以及復(fù)雜的、很難在關(guān)系它適用于多媒體應(yīng)用以及復(fù)雜的、很難在關(guān)系DBMSDBMS里模擬和處理的關(guān)系。里模擬和處理的關(guān)系。1.1.面向?qū)ο竽P偷臄?shù)據(jù)結(jié)構(gòu)面向?qū)ο竽P偷臄?shù)據(jù)結(jié)構(gòu)面向?qū)ο髷?shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)是非常容易變化的。與傳統(tǒng)的數(shù)據(jù)庫(kù)面向?qū)ο髷?shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)是非常容易變化的。與傳統(tǒng)的數(shù)據(jù)庫(kù)(如層如層次、網(wǎng)狀或關(guān)系次、網(wǎng)狀或關(guān)系)不同,對(duì)象模型沒(méi)有單一固定的數(shù)據(jù)結(jié)構(gòu)。編程人員可以不同,對(duì)象模型沒(méi)有單一固定的數(shù)據(jù)結(jié)構(gòu)。編程人員可以給類或?qū)ο箢愋投x任何有用的結(jié)構(gòu),例如鏈表、集合、數(shù)組等。此外,對(duì)給類或?qū)ο箢愋投x任何有用的結(jié)構(gòu),例如鏈表、集合、數(shù)組等。此外,對(duì)象可以包含可變的復(fù)雜度,利用多重類型和多重結(jié)構(gòu)。象可以包含可變的復(fù)雜度,利用多重類型和多重結(jié)構(gòu)。2.2.面向?qū)ο髷?shù)據(jù)模型的優(yōu)缺點(diǎn)面向?qū)ο髷?shù)據(jù)模型的優(yōu)缺點(diǎn)2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型面向?qū)ο髷?shù)據(jù)模型的優(yōu)點(diǎn):面向?qū)ο髷?shù)據(jù)模型的優(yōu)點(diǎn):(1)(1)適合處理各種各樣的數(shù)據(jù)類型適合處理各種各樣的數(shù)據(jù)類型與傳統(tǒng)的數(shù)據(jù)庫(kù)與傳統(tǒng)的數(shù)據(jù)庫(kù)(如層次、網(wǎng)狀或關(guān)系如層次、網(wǎng)狀或關(guān)系)不同,面向?qū)ο髷?shù)據(jù)庫(kù)適合存儲(chǔ)不不同,面向?qū)ο髷?shù)據(jù)庫(kù)適合存儲(chǔ)不同類型的同類型的數(shù)據(jù),例如,圖片、聲音、視頻,包括文本、數(shù)字等。面向?qū)ο髷?shù)據(jù)模型數(shù)據(jù),例如,圖片、聲音、視頻,包括文本、數(shù)字等。面向?qū)ο髷?shù)據(jù)模型結(jié)合了面向?qū)ο蟪绦蛟O(shè)計(jì)與數(shù)據(jù)庫(kù)技術(shù),因而提供了一個(gè)集成應(yīng)用開(kāi)發(fā)系統(tǒng)。結(jié)合了面向?qū)ο蟪绦蛟O(shè)計(jì)與數(shù)據(jù)庫(kù)技術(shù),因而提供了一個(gè)集成應(yīng)用開(kāi)發(fā)系統(tǒng)。(2)(2)提高了開(kāi)發(fā)效率提高了開(kāi)發(fā)效率面向?qū)ο髷?shù)據(jù)模型提供強(qiáng)大的特性,例如繼承、多態(tài)和動(dòng)態(tài)綁定,這樣允面向?qū)ο髷?shù)據(jù)模型提供強(qiáng)大的特性,例如繼承、多態(tài)和動(dòng)態(tài)綁定,這樣允許用戶不用許用戶不用編寫(xiě)特定對(duì)象的代碼就可以構(gòu)成對(duì)象并提供解決方案。這些特性能有效地編寫(xiě)特定對(duì)象的代碼就可以構(gòu)成對(duì)象并提供解決方案。這些特性能有效地提高數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)人員的開(kāi)發(fā)效率。提高數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)人員的開(kāi)發(fā)效率。(3)(3)改善數(shù)據(jù)訪問(wèn)改善數(shù)據(jù)訪問(wèn)面向?qū)ο髷?shù)據(jù)模型明確地表示聯(lián)系,支持導(dǎo)航式和關(guān)聯(lián)式兩種方式的信息面向?qū)ο髷?shù)據(jù)模型明確地表示聯(lián)系,支持導(dǎo)航式和關(guān)聯(lián)式兩種方式的信息訪問(wèn)。它比訪問(wèn)。它比2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型基于關(guān)系值的聯(lián)系更能提高數(shù)據(jù)訪問(wèn)性能。基于關(guān)系值的聯(lián)系更能提高數(shù)據(jù)訪問(wèn)性能。面向?qū)ο髷?shù)據(jù)模型的缺點(diǎn)面向?qū)ο髷?shù)據(jù)模型的缺點(diǎn) :(1)(1)沒(méi)有準(zhǔn)確的定義沒(méi)有準(zhǔn)確的定義很難提供一個(gè)準(zhǔn)確的定義來(lái)說(shuō)明面向?qū)ο蠛茈y提供一個(gè)準(zhǔn)確的定義來(lái)說(shuō)明面向?qū)ο驞BMSDBMS應(yīng)建成什么樣,這是因?yàn)樵搼?yīng)建成什么樣,這是因?yàn)樵撁Q已經(jīng)應(yīng)用到很多不同的產(chǎn)品和原型中,而這些產(chǎn)品和原型考慮的方面可名稱已經(jīng)應(yīng)用到很多不同的產(chǎn)品和原型中,而這些產(chǎn)品和原型考慮的方面可能不一樣。能不一樣。(2)(2)維護(hù)困難維護(hù)困難隨著組織信息需求的改變,對(duì)象的定義也要求改變并且需移植現(xiàn)有數(shù)據(jù)庫(kù),隨著組織信息需求的改變,對(duì)象的定義也要求改變并且需移植現(xiàn)有數(shù)據(jù)庫(kù),以完成新對(duì)象的定義。當(dāng)改變對(duì)象的定義和移植數(shù)據(jù)庫(kù)時(shí),它可能面臨真正以完成新對(duì)象的定義。當(dāng)改變對(duì)象的定義和移植數(shù)據(jù)庫(kù)時(shí),它可能面臨真正的挑戰(zhàn)。的挑戰(zhàn)。(3)(3)不適合所有應(yīng)用不適合所有應(yīng)用面向?qū)ο髷?shù)據(jù)模型適合于需要管理數(shù)據(jù)對(duì)象之間存在復(fù)雜關(guān)系的應(yīng)用,特面向?qū)ο髷?shù)據(jù)模型適合于需要管理數(shù)據(jù)對(duì)象之間存在復(fù)雜關(guān)系的應(yīng)用,特別適合于特定的應(yīng)用,例如工程、電子商務(wù)、醫(yī)療等,但并不適合所有應(yīng)用,別適合于特定的應(yīng)用,例如工程、電子商務(wù)、醫(yī)療等,但并不適合所有應(yīng)用,當(dāng)用于普通應(yīng)用時(shí),其性能會(huì)降低并要求很高的處理能力。當(dāng)用于普通應(yīng)用時(shí),其性能會(huì)降低并要求很高的處理能力。3 3面向?qū)ο髷?shù)據(jù)模型與關(guān)系數(shù)據(jù)模型的對(duì)比面向?qū)ο髷?shù)據(jù)模型與關(guān)系數(shù)據(jù)模型的對(duì)比2.3 邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型針對(duì)數(shù)據(jù)模型的三要素,對(duì)關(guān)系數(shù)據(jù)模型和面向?qū)ο髷?shù)據(jù)模型進(jìn)行比較:針對(duì)數(shù)據(jù)模型的三要素,對(duì)關(guān)系數(shù)據(jù)模型和面向?qū)ο髷?shù)據(jù)模型進(jìn)行比較:(1)(1)在關(guān)系模型中基本數(shù)據(jù)結(jié)構(gòu)是表,而面向?qū)ο髷?shù)據(jù)模型中對(duì)應(yīng)的是類;在關(guān)系模型中基本數(shù)據(jù)結(jié)構(gòu)是表,而面向?qū)ο髷?shù)據(jù)模型中對(duì)應(yīng)的是類;關(guān)系中的數(shù)據(jù)元組相當(dāng)于面向?qū)ο髷?shù)據(jù)模型中的實(shí)例。關(guān)系中的數(shù)據(jù)元組相當(dāng)于面向?qū)ο髷?shù)據(jù)模型中的實(shí)例。(2)(2)在關(guān)系數(shù)據(jù)模型中的數(shù)據(jù)操作都?xì)w結(jié)為對(duì)關(guān)系的運(yùn)算;在面向?qū)ο髷?shù)在關(guān)系數(shù)據(jù)模型中的數(shù)據(jù)操作都?xì)w結(jié)為對(duì)關(guān)系的運(yùn)算;在面向?qū)ο髷?shù)據(jù)模型中,對(duì)類的操作分為兩部分:一是封裝在類內(nèi)的操作即方法;二是類據(jù)模型中,對(duì)類的操作分為兩部分:一是封裝在類內(nèi)的操作即方法;二是類間相互溝通的操作即消息。間相互溝通的操作即消息。
收藏
編號(hào):48760729
類型:共享資源
大?。?span id="ievbyqtbdd" class="font-tahoma">10.02MB
格式:ZIP
上傳時(shí)間:2022-01-14
30
積分
- 關(guān) 鍵 詞:
-
數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用
數(shù)據(jù)庫(kù)技術(shù)
應(yīng)用
電子
課件
- 資源描述:
-
《數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用》電子課件,數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用,數(shù)據(jù)庫(kù)技術(shù),應(yīng)用,電子,課件
展開(kāi)閱讀全文
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書(shū)面授權(quán),請(qǐng)勿作他用。