版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫技術(shù)中國科學(xué)技術(shù)大學(xué)網(wǎng)絡(luò)學(xué)院闞衛(wèi)華第一章緒論數(shù)據(jù)庫技術(shù)中國科學(xué)技術(shù)大學(xué)網(wǎng)絡(luò)學(xué)院闞衛(wèi)華第一章緒論一、教學(xué)目標(biāo)及要求《數(shù)據(jù)庫技術(shù)》是計算機(及應(yīng)用)專業(yè)的一門專業(yè)基礎(chǔ)課。該課程是計算機軟件學(xué)科的一個重要分支。它的主要任務(wù)是研究如何存儲、使用和管理數(shù)據(jù),有較強的理論性和實用性(主要體現(xiàn)在數(shù)據(jù)庫系統(tǒng)的核心DBMS的內(nèi)在結(jié)構(gòu)和某些實現(xiàn)方法上)。學(xué)生學(xué)習(xí)《數(shù)據(jù)庫技術(shù)》的基本目的:了解和掌握數(shù)據(jù)庫系統(tǒng)的基本概念、體系結(jié)構(gòu)和全局結(jié)構(gòu);掌握關(guān)系模型的關(guān)系運算理論、關(guān)系數(shù)據(jù)庫SQL語言的使用技術(shù);了解和掌握關(guān)系數(shù)據(jù)庫的規(guī)范化理論和數(shù)據(jù)庫設(shè)計的方法和應(yīng)用技術(shù),以便在掌握DBMS的內(nèi)在結(jié)構(gòu)后,能編寫出較好的應(yīng)用系統(tǒng)。8/25/20232一、教學(xué)目標(biāo)及要求《數(shù)據(jù)庫技術(shù)》是計算機(及應(yīng)用二、教學(xué)重點和難點
1.基本點:數(shù)據(jù)庫系統(tǒng)的基本概念;2.重、難點:如何用規(guī)范化理論設(shè)計、優(yōu)化關(guān)系模式;3.重點:數(shù)據(jù)庫的設(shè)計(包括概念結(jié)構(gòu)設(shè)計和邏輯結(jié)構(gòu)設(shè)計部分)。
8/25/20233二、教學(xué)重點和難點1.基本點:數(shù)據(jù)庫系統(tǒng)的基本概念;8/三、教材及主要參考書教材:《數(shù)據(jù)庫系統(tǒng)概論》(第四版)王珊、薩師煊編著,高等教育出版社主要參考書:1.《數(shù)據(jù)庫系統(tǒng)原理》王能斌編著,電子工業(yè)出版社2.《數(shù)據(jù)庫系統(tǒng)教程》施伯樂、丁寶康等編著,高等教育出版社
8/25/20234三、教材及主要參考書教材:《數(shù)據(jù)庫系統(tǒng)概論》(第四版)8/2第一章緒論1.1數(shù)據(jù)庫系統(tǒng)概述數(shù)據(jù)庫技術(shù)從20世紀(jì)60年代中期產(chǎn)生到今天,不過才幾十年的發(fā)展歷史。它的發(fā)展速度之快、使用范圍之廣,是其它技術(shù)所不能比的。數(shù)據(jù)庫系統(tǒng)已從第一代的網(wǎng)狀、層次數(shù)據(jù)庫系統(tǒng),第二代的關(guān)系數(shù)據(jù)庫系統(tǒng),發(fā)展到第三代以面向?qū)ο竽P蜑橹饕卣鞯臄?shù)據(jù)庫系統(tǒng)。8/25/20235第一章緒論1.1數(shù)據(jù)庫系統(tǒng)概述8/2/20235
數(shù)據(jù)庫是數(shù)據(jù)管理的最新技術(shù),是計算機科學(xué)的重要分支。今天,信息資源已經(jīng)成為各個部門的重要資源和財富。信息技術(shù)的發(fā)展極大地推動了社會的進(jìn)步和發(fā)展。作為信息技術(shù)主要支柱之一的數(shù)據(jù)庫技術(shù)在各個領(lǐng)域中有著廣泛的應(yīng)用。數(shù)據(jù)庫技術(shù)可以為各種用戶提供及時的、準(zhǔn)確的、相關(guān)的信息,從而滿足不同的需要。因此,數(shù)據(jù)庫技術(shù)課程是計算機科學(xué)與技術(shù)專業(yè)、信息管理專業(yè)重要課程。8/25/20236數(shù)據(jù)庫是數(shù)據(jù)管理的最新技術(shù),是計算數(shù)據(jù)庫技術(shù)的三個發(fā)展階段第一代數(shù)據(jù)庫系統(tǒng)(通常指的是層次和網(wǎng)狀數(shù)據(jù)庫系統(tǒng)),它們的代表是:(1)1968-1969年,IBM公司研制的層次模型的數(shù)據(jù)庫管理系統(tǒng)IMS(InformationManagementSystem);(2)美國數(shù)據(jù)庫系統(tǒng)語言協(xié)商會CODASYL(ConferenceOnDataSystemLanguage)下屬的數(shù)據(jù)庫任務(wù)組DBTG(DataTaskGroup)對數(shù)據(jù)庫方法進(jìn)行了系統(tǒng)的研究、探討,在20世紀(jì)60年代末70年代初提出了一些報告,稱為DBTG報告。8/25/20237數(shù)據(jù)庫技術(shù)的三個發(fā)展階段第一代數(shù)據(jù)庫系
DBTG報告確定并建立了數(shù)據(jù)庫系統(tǒng)很多概念、方法和技術(shù)。DBTG所提議的方法是基于網(wǎng)狀結(jié)構(gòu)的。它是數(shù)據(jù)庫網(wǎng)狀模型的典型代表。可以這樣說,層次型數(shù)據(jù)庫是數(shù)據(jù)庫系統(tǒng)的先驅(qū)者,而網(wǎng)狀型數(shù)據(jù)庫則是數(shù)據(jù)庫概念、方法和技術(shù)的奠基者。它們都是數(shù)據(jù)庫技術(shù)中研究得最早的兩種數(shù)據(jù)庫系統(tǒng)。8/25/20238DBTG報告確定并建立了數(shù)據(jù)庫系統(tǒng)很多概念、方法
它們的主要區(qū)分是以數(shù)據(jù)模型為基礎(chǔ),層次數(shù)據(jù)庫的數(shù)據(jù)模型是分層結(jié)構(gòu)的,網(wǎng)狀型數(shù)據(jù)庫的數(shù)據(jù)模型是網(wǎng)狀的,它們的數(shù)據(jù)結(jié)構(gòu)都可以用有向圖來表示。層次數(shù)據(jù)模型對應(yīng)于有根定向有序樹,而網(wǎng)狀模型對應(yīng)的是有向圖。所以,我們稱這兩種數(shù)據(jù)模型為格式化數(shù)據(jù)模型。8/25/20239它們的主要區(qū)分是以數(shù)據(jù)模型為基礎(chǔ)
上述兩種數(shù)據(jù)庫系統(tǒng)具有下列共同特點:1.支持三級模式的體系結(jié)構(gòu)三級模式通常指的是外模式、模式、內(nèi)模式。模式之間具有轉(zhuǎn)換(或稱為映射)的功能。層次型數(shù)據(jù)庫和網(wǎng)狀型數(shù)據(jù)庫都支持三級模式的結(jié)構(gòu),通過外模式和模式、模式和內(nèi)模式之間的映象,從而保證了數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)和程序的物理獨立性和一定的邏輯獨立性。8/25/202310上述兩種數(shù)據(jù)庫系統(tǒng)具有下列共同特點:8/2/
2.用存取路徑來表示數(shù)據(jù)之間的聯(lián)系應(yīng)該說,這個特點是數(shù)據(jù)庫系統(tǒng)和文件系統(tǒng)的主要區(qū)別之一。數(shù)據(jù)庫不僅存儲數(shù)據(jù),而且存儲數(shù)據(jù)之間的聯(lián)系。數(shù)據(jù)之間的聯(lián)系在層次和網(wǎng)狀數(shù)據(jù)庫系統(tǒng)中是用存取路徑來表示和實現(xiàn)的。3.獨立的數(shù)據(jù)定義語言層次型數(shù)據(jù)庫系統(tǒng)和網(wǎng)狀型數(shù)據(jù)庫系統(tǒng)有獨立的數(shù)據(jù)定義語言,用來描述數(shù)據(jù)庫的三級模式以及相互映象。這些模式一經(jīng)定義后,則就很難修改了。8/25/2023112.用存取路徑來表示數(shù)據(jù)之間的聯(lián)系8/2/202311
如果要修改模式的話,首先必須把數(shù)據(jù)全部卸出來,然后再重新定義那些模式,并重新生成它們,最后編寫實用程序把已經(jīng)卸出去的數(shù)據(jù)按新模式的定義裝入到新數(shù)據(jù)庫中。因此,在許多實際運行的層次型數(shù)據(jù)庫系統(tǒng)和網(wǎng)狀型數(shù)據(jù)庫系統(tǒng)中,模式是不輕易去重構(gòu)的。這就要求數(shù)據(jù)庫設(shè)計人員在建立數(shù)據(jù)庫應(yīng)用系統(tǒng)時,不僅要充分考慮用戶的當(dāng)前需求,還要充分了解以后需求可能的變化和發(fā)展。這對數(shù)據(jù)庫設(shè)計的要求比較高。8/25/202312如果要修改模式的話,首先必須把數(shù)
4.導(dǎo)航的數(shù)據(jù)操縱語言所謂導(dǎo)航,就是指用戶不僅要了解“要干什么”,而且要指出“怎么干”。用戶必須使用某種高級語言去編寫程序,一步一步地“引導(dǎo)”程序按照數(shù)據(jù)庫中某一條預(yù)先定義的存取路徑來訪問數(shù)據(jù)庫,最終達(dá)到訪問數(shù)據(jù)的目標(biāo)。這里需要指出的是,在訪問數(shù)據(jù)庫時,每次只能存取一條記錄值。(若該記錄值不滿足要求,就應(yīng)沿著存取路徑查找下一條記錄值。)
8/25/2023134.導(dǎo)航的數(shù)據(jù)操縱語言8/2/202313
第二代數(shù)據(jù)庫系統(tǒng):關(guān)系數(shù)據(jù)庫系統(tǒng)1970年IBM公司的E.F.Codd(科德)發(fā)表了題為“大型共享數(shù)據(jù)庫數(shù)據(jù)的關(guān)系模型”論文,提出了數(shù)據(jù)庫的關(guān)系模型,開創(chuàng)了數(shù)據(jù)庫關(guān)系方法和關(guān)系數(shù)據(jù)理論的研究,為關(guān)系數(shù)據(jù)庫技術(shù)奠定了理論基礎(chǔ)。人們之所以把20世紀(jì)70年代稱之為數(shù)據(jù)庫時代,主要是由于數(shù)據(jù)庫系統(tǒng)從實驗室走向了社會,在技術(shù)上主要表現(xiàn)為:8/25/202314第二代數(shù)據(jù)庫系統(tǒng):關(guān)系數(shù)據(jù)庫系統(tǒng)8/2/202314
(1)奠定了數(shù)據(jù)庫關(guān)系模型理論基礎(chǔ),給出了人們一致接受的關(guān)系模型的規(guī)范說明;(關(guān)系模型由三部分組成:數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作和數(shù)據(jù)完整性;關(guān)系模型的主要特點:①關(guān)系模型的概念單一,實體以及實體之間的聯(lián)系都用關(guān)系來表示;8/25/202315(1)奠定了數(shù)據(jù)庫關(guān)系模型理論基礎(chǔ),給出了人們一致接受
②以關(guān)系代數(shù)為基礎(chǔ),形式化基礎(chǔ)好;③數(shù)據(jù)獨立性強,數(shù)據(jù)的物理存儲和存取路徑對用戶屏蔽;④關(guān)系數(shù)據(jù)庫語言是非過程化的,把用戶從編程數(shù)據(jù)庫記錄的導(dǎo)航式檢索中解脫出來,大大降低了用戶編程的難度)。8/25/2023168/2/202316
(2)研究了關(guān)系數(shù)據(jù)語言,這些描述性的語言有關(guān)系代數(shù)、關(guān)系演算、SQL和QBE等。它們以其易學(xué)易懂的優(yōu)點為最終用戶所喜愛(這主要是改變了過去程序設(shè)計語言和網(wǎng)狀、層次數(shù)據(jù)庫系統(tǒng)中的語言風(fēng)格),從而為20世紀(jì)80年代數(shù)據(jù)庫語言標(biāo)準(zhǔn)化打下了基礎(chǔ)。8/25/202317(2)研究了關(guān)系數(shù)據(jù)語言,這些描述性的語言有關(guān)系代數(shù)、
(3)研制了大量的RDBMS的原型,攻克了系統(tǒng)實現(xiàn)中的查詢優(yōu)化、并發(fā)控制、故障恢復(fù)等關(guān)鍵技術(shù)。不僅極大地豐富了DBMS實現(xiàn)技術(shù)和數(shù)據(jù)庫關(guān)系模型理論,更為重要的是促進(jìn)了RDBMS的發(fā)展和廣泛應(yīng)用。因此,20世紀(jì)80年開發(fā)的數(shù)據(jù)庫系統(tǒng)大多為關(guān)系的,特別是微機RDBMS的使用,使得數(shù)據(jù)庫技術(shù)日益廣泛地應(yīng)用到企業(yè)管理、情報檢索、輔助決策等各個方面,成為實現(xiàn)和優(yōu)化信息系統(tǒng)的基本技術(shù)。8/25/202318(3)研制了大量的RDBMS的原型,攻克了系統(tǒng)實現(xiàn)中的
新一代數(shù)據(jù)庫技術(shù)的研究和發(fā)展新一代數(shù)據(jù)庫技術(shù)的研究和發(fā)展,導(dǎo)致了眾多的不同于第一、第二代數(shù)據(jù)庫的系統(tǒng)的誕生,構(gòu)成了數(shù)據(jù)庫系統(tǒng)的大家族。新一代數(shù)據(jù)庫技術(shù)的發(fā)展,呈現(xiàn)出百花齊放的局面,歸納起來,有如下特點:1.面向?qū)ο蟮姆椒ê图夹g(shù)對數(shù)據(jù)庫發(fā)展的影響;2.?dāng)?shù)據(jù)庫技術(shù)與多學(xué)科技術(shù)的有機結(jié)合;8/25/202319新一代數(shù)據(jù)庫技術(shù)的研究和發(fā)展8/2/202319
3.面向應(yīng)用領(lǐng)域的數(shù)據(jù)庫技術(shù)的研究(經(jīng)過多年的研究和討論,人們對第三代數(shù)據(jù)庫系統(tǒng)的基本特征有了如下的認(rèn)識:第三代數(shù)據(jù)庫系統(tǒng)應(yīng)該支持?jǐn)?shù)據(jù)管理、對象管理和知識管理;第三代數(shù)據(jù)庫系統(tǒng)必須保持或繼承第二代數(shù)據(jù)庫系統(tǒng)的技術(shù);第三代數(shù)據(jù)庫系統(tǒng)必須對其它系統(tǒng)開放)。8/25/2023203.面向應(yīng)用領(lǐng)域的數(shù)據(jù)庫技術(shù)的研究(經(jīng)過多年的研究和討1.1.1數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)
一、數(shù)據(jù)(Data)
數(shù)據(jù):描述事物的符號記錄稱為數(shù)據(jù)。數(shù)據(jù)的概念包括兩個方面:1.數(shù)據(jù)內(nèi)容是事物特性的反映或描述;2.數(shù)據(jù)是符號的集合?;蛘呷缤ǔKf的:數(shù)據(jù)是指用符號記錄下來的、可加以鑒別的信息?!胺枴笔敲枋鍪挛锾匦缘臄?shù)據(jù)形式,它不僅僅是指數(shù)字、字母、文字和其它特殊字符,而且還包括圖形、圖象、聲音等多媒體數(shù)據(jù);8/25/2023211.1.1數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)8/2
所謂“記錄下來”也不僅是指印在紙上,而且包括記錄在其它磁介質(zhì)上、光介質(zhì)上和半導(dǎo)體存儲器里。數(shù)據(jù)的形式還不能完全表達(dá)其內(nèi)容,需要經(jīng)過解釋。所以數(shù)據(jù)和關(guān)于數(shù)據(jù)的解釋是不可分的,數(shù)據(jù)的解釋是指對數(shù)據(jù)含義的說明,數(shù)據(jù)的含義稱為數(shù)據(jù)的語義,數(shù)據(jù)與其語義是不可分的。需要指出的是:數(shù)據(jù)的概念在數(shù)據(jù)處理中比在科學(xué)領(lǐng)域中已經(jīng)大大地拓寬了。數(shù)據(jù)在空間上的傳遞稱為通信,在時間上的傳遞稱為存儲。8/25/202322所謂“記錄下來”也不僅是指印在紙上,而且包括記錄在
數(shù)據(jù)舉例(見《P4.李明的學(xué)生記錄》)學(xué)生檔案中的學(xué)生記錄:(李明,男,21,1972,江蘇,計算機系,1990)數(shù)據(jù)的形式不能完全表達(dá)其內(nèi)容;數(shù)據(jù)的解釋:[數(shù)據(jù)是有一定的格式的,例如,學(xué)生姓名欄允許4個漢字,性別欄為1個漢字或為邏輯真假值]語義:學(xué)生姓名、性別、年齡、出生年月、出生地、所在系別、入學(xué)時間;解釋:李明是個大學(xué)生,1972年出生,江蘇省人,1990年考入計算機系。8/25/202323數(shù)據(jù)舉例(見《P4.李明的學(xué)生記錄》)8/2/202323二、數(shù)據(jù)庫(DataBase,簡稱DB)
人們收集并抽取出一個應(yīng)用所需要的大量數(shù)據(jù)之后,應(yīng)將其保存起來以供進(jìn)一步加工處理,進(jìn)一步抽取有用的信息。數(shù)據(jù)庫的定義:數(shù)據(jù)庫(Database,簡稱DB)是長期儲存在計算機內(nèi)、有組織的、可共享的大量數(shù)據(jù)集合。
(數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存,具有較小的冗余度、較高的數(shù)據(jù)獨立性和易擴展性,并可為各種用戶共享。)
8/25/202324二、數(shù)據(jù)庫(DataBase,簡稱DB)
數(shù)據(jù)庫的特征:數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存;可為各種用戶共享;冗余度較??;數(shù)據(jù)獨立性較高;易擴展。
8/25/202325數(shù)據(jù)庫的特征:8/2/202325三、數(shù)據(jù)庫管理系統(tǒng)DBMS的作用:科學(xué)地組織和存儲數(shù)據(jù)、高效地獲取和維護(hù)數(shù)據(jù)。什么是DBMS?數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。它的主要功能包括以下幾個方面(DBMS的主要功能):8/25/202326三、數(shù)據(jù)庫管理系統(tǒng)DBMS的作用:科學(xué)地組織和
1.數(shù)據(jù)定義功能:提供數(shù)據(jù)定義語言(DDL:DataDefinitionLanguage,簡稱DDL)定義數(shù)據(jù)庫中的數(shù)據(jù)對象。2.數(shù)據(jù)操縱功能:提供數(shù)據(jù)操縱語言(DML:DatamanipulationLanguage,簡稱DML)操縱數(shù)據(jù),實現(xiàn)對數(shù)據(jù)庫的基本操作(查詢、插入、刪除和修改等)。3.?dāng)?shù)據(jù)庫的運行管理: 保證數(shù)據(jù)的安全性、完整性、多用戶對數(shù)據(jù)的并發(fā)使用以及發(fā)生故障后的系統(tǒng)恢復(fù)。8/25/2023271.數(shù)據(jù)定義功能:8/2/202327
4.數(shù)據(jù)庫的建立和維護(hù)功能:它包括數(shù)據(jù)庫初始數(shù)據(jù)的輸入、轉(zhuǎn)換功能,數(shù)據(jù)庫的轉(zhuǎn)儲、介質(zhì)故障恢復(fù)、數(shù)據(jù)庫的重組織功能和性能監(jiān)視、分析功能等(這些功能通常是由一些實用程序來完成的)。8/25/2023284.數(shù)據(jù)庫的建立和維護(hù)功能:8/2/202328四、數(shù)據(jù)庫系統(tǒng)什么是數(shù)據(jù)庫系統(tǒng)?數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,簡稱DBS)是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成。以教材P.5圖1.1和1.2簡單介紹數(shù)據(jù)庫系統(tǒng)及其在整個計算機系統(tǒng)中的地位。
8/25/202329四、數(shù)據(jù)庫系統(tǒng)什么是數(shù)據(jù)庫系統(tǒng)?8/2/202329
數(shù)據(jù)庫系統(tǒng)的構(gòu)成:(參看教材P.5圖1.1)
8/25/202330數(shù)據(jù)庫系統(tǒng)的構(gòu)成:(參看教材P.5圖1.1)8/2/20圖1.1數(shù)據(jù)庫系統(tǒng)
圖1.1數(shù)據(jù)庫系統(tǒng)用戶用戶用戶應(yīng)用系統(tǒng)應(yīng)用開發(fā)工具DBMS操作系統(tǒng)數(shù)據(jù)庫DBA返回轉(zhuǎn)下頁8/25/202331圖1.1數(shù)據(jù)庫系統(tǒng)用戶用戶用戶應(yīng)用系統(tǒng)應(yīng)用開發(fā)工具D
由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員(和用戶)構(gòu)成。數(shù)據(jù)庫系統(tǒng)在計算機系統(tǒng)中的位置圖示(參看教材P.5圖1.2)此處見幻燈片下一頁P32
繼續(xù)1.1.2內(nèi)容P338/25/202332由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、
應(yīng)用系統(tǒng)應(yīng)用開發(fā)工具圖1.2數(shù)據(jù)庫系統(tǒng)在計算機系統(tǒng)中的地位DBMSOS編譯系統(tǒng)硬件返回8/25/202333應(yīng)用系統(tǒng)應(yīng)用開發(fā)工具圖1.2數(shù)據(jù)庫系統(tǒng)在計算機系統(tǒng)中的1.1.2數(shù)據(jù)管理技術(shù)的產(chǎn)生和發(fā)展
什么是數(shù)據(jù)管理?數(shù)據(jù)管理是數(shù)據(jù)處理的中心問題,數(shù)據(jù)的處理是指對各種數(shù)據(jù)進(jìn)行收集、存儲、加工和傳播的一系列活動的總和。而數(shù)據(jù)管理主要是指對數(shù)據(jù)進(jìn)行分類、組織、編碼、存儲、檢索和維護(hù)等,它是數(shù)據(jù)處理的中心問題。數(shù)據(jù)管理技術(shù)的發(fā)展過程:數(shù)據(jù)管理技術(shù)經(jīng)歷了人工管理、文件系統(tǒng)、數(shù)據(jù)庫系統(tǒng)三個階段。8/25/2023341.1.2數(shù)據(jù)管理技術(shù)的產(chǎn)生和發(fā)展什么是數(shù)據(jù)管理?8/2/
人工管理階段(20世紀(jì)40年代中~20世紀(jì)50年代中)文件系統(tǒng)階段(20世紀(jì)50年代末~20世紀(jì)60年代中)數(shù)據(jù)庫系統(tǒng)階段(20世紀(jì)60年代末~現(xiàn)在)數(shù)據(jù)管理技術(shù)的發(fā)展動力:1、應(yīng)用需求的推動2、計算機技術(shù)的發(fā)展(包括計算機硬件技術(shù)和軟件技術(shù)的發(fā)展)
8/25/202335人工管理階段(20世紀(jì)40年代中~20世紀(jì)5一、人工管理階段
時期:40年代中~50年代中產(chǎn)生的背景:應(yīng)用需求:科學(xué)計算 硬件水平:沒有直接存取存儲設(shè)備 軟件狀況:沒有操作系統(tǒng) 處理方式:批處理8/25/202336一、人工管理階段時期:40年代中~50年代中8/2/202
20世紀(jì)50年代中期以前,計算機主要用于科學(xué)計算。當(dāng)時的硬件狀況是,外存只有紙帶、卡片、磁帶,沒有磁盤等直接存取的存儲設(shè)備[外存儲設(shè)備的發(fā)展?fàn)顩r:20世紀(jì)50年代中期以前外存只有紙帶、卡片、磁帶;1967年,IBM推出32英寸軟盤,后又縮小為16英寸軟盤;1973年,IBM推出溫徹斯特技術(shù)(Wenchester)的溫氏盤,1976年,iCom推出的8英寸軟盤,售價為1200美元;8/25/20233720世紀(jì)50年代中期以前,計算機主要用于科學(xué)計算。當(dāng)
1980年,希捷(SeagateTechnologies)推出了5.25英寸溫氏驅(qū)動盤,同年8月,日本的索尼(Sony)推出了3.5英寸的雙面軟盤,其容量為875KB;到了1983年,3.5英寸的軟盤容量已達(dá)到1MB;1980年的溫氏硬盤的容量為5~10MB;到了1983年,飛利浦和索尼公司開發(fā)出了容量已達(dá)640MB~650MB的CD-ROM
];軟件狀況是,沒有操作系統(tǒng),沒有管理數(shù)據(jù)的軟件;數(shù)據(jù)處理方式是批處理。
8/25/2023381980年,希捷(SeagateTechnolo人工管理數(shù)據(jù)具有如下特點:數(shù)據(jù)的管理者:用戶(程序員)。數(shù)據(jù)面向的對象:某一應(yīng)用程序。數(shù)據(jù)的共享程度:無共享、冗余度極大。數(shù)據(jù)的獨立性:完全依賴于程序(不獨立)。數(shù)據(jù)的結(jié)構(gòu)化:無結(jié)構(gòu)。數(shù)據(jù)控制能力:應(yīng)用程序自己控制。8/25/202339人工管理數(shù)據(jù)具有如下特點:數(shù)據(jù)的管理者:用戶(程序員)。
⑴數(shù)據(jù)不(需要)保存。⑵應(yīng)用程序管理數(shù)據(jù)。應(yīng)用程序不僅要規(guī)定數(shù)據(jù)的邏輯結(jié)構(gòu),而且要設(shè)計物理結(jié)構(gòu),包括存儲結(jié)構(gòu)、存取方法、輸入方式等。⑶數(shù)據(jù)不共享:一組數(shù)據(jù)只能對應(yīng)一個程序。當(dāng)多個應(yīng)用程序涉及某些相同的數(shù)據(jù)時,由于必須各自定義,無法互相利用、互相參照,因此程序與程序之間有大量的冗余數(shù)據(jù)。8/25/202340⑴數(shù)據(jù)不(需要)保存。8/2/202340
⑷數(shù)據(jù)不具有獨立性:數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)發(fā)生變化后,必須對應(yīng)用程序做相應(yīng)的修改。程序與數(shù)據(jù)的對應(yīng)關(guān)系如圖1.3。此處見下一頁幻燈片P41
繼續(xù)課程P428/25/202341⑷數(shù)據(jù)不具有獨立性:數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)發(fā)生變圖1.3人工管理階段應(yīng)用程序與數(shù)據(jù)之間的對應(yīng)關(guān)系
圖1.3人工管理階段應(yīng)用程序與數(shù)據(jù)之間的對應(yīng)關(guān)系應(yīng)用程序1數(shù)據(jù)集1應(yīng)用程序2應(yīng)用程序n數(shù)據(jù)集2數(shù)據(jù)集n……返回8/25/202342圖1.3人工管理階段應(yīng)用程序與數(shù)據(jù)之間的對應(yīng)關(guān)系二、文件系統(tǒng)階段
20世紀(jì)50年代后期到60年代中期,這時硬件方面已有了磁盤、磁鼓等直接存取存儲設(shè)備;軟件方面,操作系統(tǒng)中已經(jīng)有了專門的數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng);處理方式上不僅有了批處理,而且能夠聯(lián)機實時處理。
8/25/202343二、文件系統(tǒng)階段20世紀(jì)50年代后期到60年代
時期:20世紀(jì)50年代末~20世紀(jì)60年代中產(chǎn)生的背景:應(yīng)用需求:科學(xué)計算、管理 硬件水平:磁盤、磁鼓 軟件水平:有文件系統(tǒng) 處理方式:聯(lián)機實時處理、批處理
8/25/202344時期:20世紀(jì)50年代末~20世紀(jì)60年代中8/2/202文件系統(tǒng)管理數(shù)據(jù)有如下特點:數(shù)據(jù)的管理者:文件系統(tǒng)(可以長期保存)。文件系統(tǒng)把數(shù)據(jù)組織成相互獨立的數(shù)據(jù)文件,可以對文件進(jìn)行增刪改的操作。數(shù)據(jù)面向的對象:某一應(yīng)用(數(shù)據(jù)的邏輯結(jié)構(gòu)改變必須修改應(yīng)用程序)。
數(shù)據(jù)的共享程度:共享性差、冗余度大。數(shù)據(jù)的獨立性:獨立性差。程序和數(shù)據(jù)之間由文件系統(tǒng)提供存取方法進(jìn)行轉(zhuǎn)換,使應(yīng)用程序與數(shù)據(jù)之間有了一定的獨立性。但文件系統(tǒng)仍存在數(shù)據(jù)共享性差,冗余度大和數(shù)據(jù)獨立性差的缺點。數(shù)據(jù)的結(jié)構(gòu)化:記錄內(nèi)有結(jié)構(gòu),整體無結(jié)構(gòu)。數(shù)據(jù)控制能力:應(yīng)用程序自己控制。8/25/202345文件系統(tǒng)管理數(shù)據(jù)有如下特點:數(shù)據(jù)的管理者:文件系統(tǒng)(可
文件系統(tǒng)中,一個文件基本上對應(yīng)一個應(yīng)用程序,不同的應(yīng)用程序具有部分相同的數(shù)據(jù)時,也必須建立各自的文件,而不能共享相同的數(shù)據(jù),因此數(shù)據(jù)的冗余度大,浪費存儲空間。容易造成數(shù)據(jù)的不一致性,給數(shù)據(jù)的修改和維護(hù)帶來了困難。一旦數(shù)據(jù)的邏輯結(jié)構(gòu)改變,必須修改應(yīng)用程序,修改文件結(jié)構(gòu)的定義。應(yīng)用程序的改變,例如應(yīng)用程序改用不同的高級語言等,也將引起文件的數(shù)據(jù)結(jié)構(gòu)的改變。因此數(shù)據(jù)與程序之間仍缺乏獨立性。程序與數(shù)據(jù)之間的關(guān)系如圖1.4。HdpP.46
8/25/202346文件系統(tǒng)中,一個文件基本上對應(yīng)一個應(yīng)用程序,不同的應(yīng)用圖1.4文件系統(tǒng)階段應(yīng)用程序與數(shù)據(jù)之間的對應(yīng)關(guān)系
應(yīng)用程序1存取方法...文件1…圖1.4文件系統(tǒng)階段應(yīng)用程序與數(shù)據(jù)之間的對應(yīng)關(guān)系應(yīng)用程序2文件2應(yīng)用程序n文件n返回轉(zhuǎn)下頁8/25/202347圖1.4文件系統(tǒng)階段應(yīng)用程序與數(shù)據(jù)之間的對應(yīng)關(guān)系
應(yīng)
文件系統(tǒng)中數(shù)據(jù)的結(jié)構(gòu):數(shù)據(jù)的結(jié)構(gòu)是靠程序定義和解釋的。盡管記錄內(nèi)部已有了某些結(jié)構(gòu)(整體無結(jié)構(gòu)),但記錄之間沒有聯(lián)系;雖然可以間接實現(xiàn)數(shù)據(jù)整體有結(jié)構(gòu)化,但必須在應(yīng)用程序中增加對數(shù)據(jù)間的聯(lián)系的描述。數(shù)據(jù)的最小存取單位是記錄;數(shù)據(jù)只能是定長的;雖然可以間接實現(xiàn)數(shù)據(jù)變長要求,但訪問相應(yīng)數(shù)據(jù)的應(yīng)用程序變得復(fù)雜了。文件間是獨立的,因此數(shù)據(jù)整體無結(jié)構(gòu)。
8/25/202348文件系統(tǒng)中數(shù)據(jù)的結(jié)構(gòu):8/2/202348三、數(shù)據(jù)庫系統(tǒng)階段
20世紀(jì)60年代后期以來,計算機應(yīng)用規(guī)模越來越大,數(shù)據(jù)量急劇增長。這時硬件已有大容量硬盤,硬件價格下降;軟件則價格上升,為編制和維護(hù)系統(tǒng)軟件及應(yīng)用程序所需的成本相對增加,在各個應(yīng)用領(lǐng)域,如果一旦改變數(shù)據(jù)結(jié)構(gòu),則都要修改應(yīng)用程序,代價無法計算;在處理方式上,聯(lián)機實時處理要求更多,并開始提出和考慮分布處理。文件系統(tǒng)管理數(shù)據(jù)已經(jīng)不能滿足應(yīng)用的需求,于是為了解決多用戶、多應(yīng)用共享數(shù)據(jù)的要求,使數(shù)據(jù)為盡可能多的應(yīng)用服務(wù),于是數(shù)據(jù)庫技術(shù)便應(yīng)運而生,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng):數(shù)據(jù)庫管理系統(tǒng)。
8/25/202349三、數(shù)據(jù)庫系統(tǒng)階段20世紀(jì)60年代后期以來,計算
時期:20世紀(jì)60年代末以來產(chǎn)生的背景(如上所述):應(yīng)用背景:大規(guī)模管理 硬件背景:大容量磁盤 軟件背景:有數(shù)據(jù)庫管理系統(tǒng) 處理方式:聯(lián)機實時處理;分布處理;批處理8/25/202350時期:20世紀(jì)60年代末以來8/2/202350
數(shù)據(jù)庫系統(tǒng)的出現(xiàn),使信息系統(tǒng)從以加工數(shù)據(jù)的程序為中心轉(zhuǎn)向圍繞共享的數(shù)據(jù)庫為中心的新階段。這樣既便于數(shù)據(jù)的集中管理,又有利于應(yīng)用程序的研制和維護(hù),從而提高了數(shù)據(jù)的利用率和相容性,提高了決策的可靠性。8/25/202351數(shù)據(jù)庫系統(tǒng)的出現(xiàn),使信息系統(tǒng)從以加工數(shù)據(jù)的程序為中心1.1.3數(shù)據(jù)庫系統(tǒng)的特點數(shù)據(jù)的管理者:DBMS數(shù)據(jù)面向的對象:現(xiàn)實世界 數(shù)據(jù)的共享程度:共享性高,冗余度小。數(shù)據(jù)的獨立性:高度的物理獨立性和一定的邏輯獨立性 數(shù)據(jù)的結(jié)構(gòu)化:整體結(jié)構(gòu)化(用數(shù)據(jù)模型描述)數(shù)據(jù)控制能力:由DBMS統(tǒng)一管理和控制(提供數(shù)據(jù)安全性、完整性、并發(fā)控制和恢復(fù)能力)8/25/2023521.1.3數(shù)據(jù)庫系統(tǒng)的特點數(shù)據(jù)的管理者:DBMS8/2/一、數(shù)據(jù)結(jié)構(gòu)化在文件系統(tǒng)中,相互獨立的文件的記錄內(nèi)部是有結(jié)構(gòu)的,但記錄之間沒有聯(lián)系。數(shù)據(jù)庫系統(tǒng)實現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,是數(shù)據(jù)庫的主要特征之一,也是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。數(shù)據(jù)庫中實現(xiàn)的是數(shù)據(jù)的真正結(jié)構(gòu)化。數(shù)據(jù)的結(jié)構(gòu)用數(shù)據(jù)模型來描述,不需要程序定義和解釋。數(shù)據(jù)可以變長。數(shù)據(jù)的最小存取單位是數(shù)據(jù)項。8/25/202353一、數(shù)據(jù)結(jié)構(gòu)化在文件系統(tǒng)中,相互獨立的文件的記錄內(nèi)部
(數(shù)據(jù)庫系統(tǒng)實現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,是數(shù)據(jù)庫的主要特征之一,也是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)不再針對某一應(yīng)用,而是面向全組織,具有整體的結(jié)構(gòu)化。不僅數(shù)據(jù)是結(jié)構(gòu)化的,而且存取數(shù)據(jù)的方式也很靈活,可以存取數(shù)據(jù)庫中的某一個數(shù)據(jù)項、一組數(shù)據(jù)項、一個記錄或一組記錄。)
8/25/202354(數(shù)據(jù)庫系統(tǒng)實現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,
二、數(shù)據(jù)的共享性高,冗余度低,易擴充數(shù)據(jù)的共享性高降低數(shù)據(jù)的冗余度,節(jié)省存儲空間避免數(shù)據(jù)間的不一致性使系統(tǒng)易于擴充8/25/202355二、數(shù)據(jù)的共享性高,冗余度低,易擴充8/2/202
數(shù)據(jù)庫系統(tǒng)從整體角度看待和描述數(shù)據(jù),數(shù)據(jù)不再面向某個應(yīng)用而是面向整個系統(tǒng),因此數(shù)據(jù)可以被多個用戶、多個應(yīng)用共享使用。數(shù)據(jù)共享可以減少數(shù)據(jù)冗余,節(jié)約存儲空間;數(shù)據(jù)共享還能夠避免數(shù)據(jù)之間的不相容性與不一致性(所謂數(shù)據(jù)的不一致性是指同一數(shù)據(jù)不同拷貝的值不一樣。人工管理和文件管理由于數(shù)據(jù)被重復(fù)存儲,當(dāng)不同的應(yīng)用使用和修改不同的拷貝時就很容易造成數(shù)據(jù)的不一致性)。數(shù)據(jù)庫系統(tǒng)彈性大,易于擴充。8/25/202356數(shù)據(jù)庫系統(tǒng)從整體角度看待和描述數(shù)據(jù),三、數(shù)據(jù)獨立性高
數(shù)據(jù)獨立性是數(shù)據(jù)庫領(lǐng)域中一個常用的術(shù)語,包括數(shù)據(jù)的物理獨立性和邏輯獨立性。數(shù)據(jù)獨立性是由DBMS的二級映象功能來保證的。物理獨立性:是指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中數(shù)據(jù)是相互獨立的。當(dāng)數(shù)據(jù)的物理存儲改變了,應(yīng)用程序不用改變。也就是說,數(shù)據(jù)在(磁盤上的)數(shù)據(jù)庫中怎樣存儲是由DBMS管理的,應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),這樣當(dāng)數(shù)據(jù)的物理存儲改變了,應(yīng)用程序不用改變。
邏輯獨立性:邏輯獨立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨立的。也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程序也可以不變。8/25/202357三、數(shù)據(jù)獨立性高數(shù)據(jù)獨立性是數(shù)據(jù)庫領(lǐng)域四、數(shù)據(jù)由DBMS統(tǒng)一管理和控制
數(shù)據(jù)庫的共享是并發(fā)的共享,即多個用戶可以同時存取數(shù)據(jù)庫中的數(shù)據(jù)甚至可以同時存取數(shù)據(jù)庫中同一數(shù)據(jù)。為此,DBMS還必須提供以下幾方面的數(shù)據(jù)控制功能:(1)數(shù)據(jù)的安全性(Security)保護(hù)
數(shù)據(jù)的安全性是指保護(hù)數(shù)據(jù)以防止不合法的使用造成的數(shù)據(jù)的泄密和損壞。使每個用戶只能按規(guī)定,對某些數(shù)據(jù)以某些方式進(jìn)行使用和處理。(2)數(shù)據(jù)的完整性(Integrity)檢查
數(shù)據(jù)的完整性指數(shù)據(jù)的正確性、有效性和相容性。數(shù)據(jù)的完整性檢查,是將數(shù)據(jù)控制在有效的范圍內(nèi),或保證數(shù)據(jù)之間滿足一定的關(guān)系。
8/25/202358四、數(shù)據(jù)由DBMS統(tǒng)一管理和控制數(shù)據(jù)
(3)并發(fā)(Concurrency)控制對多用戶的并發(fā)操作加以控制和協(xié)調(diào),防止相互干擾而得到錯誤的結(jié)果。
(當(dāng)多個用戶的并發(fā)進(jìn)程同時存取、修改數(shù)據(jù)庫時,可能會發(fā)生相互干擾而得到錯誤的結(jié)果或使得數(shù)據(jù)庫的完整性遭到破壞,因此必須對多用戶的并發(fā)操作加以控制和協(xié)調(diào)。)
8/25/202359(3)并發(fā)(Concurrency)控制8/2/2
例如,對于一個定票系統(tǒng),如果只剩下一張票,但同時有兩個用戶要定票。由于同時操作,那么這兩個進(jìn)程都將看到還剩下一張票,會產(chǎn)生錯誤。因此,必須對并發(fā)操作加以控制和協(xié)調(diào)。并發(fā)控制的種類和涉及到的概念很多,在這里不作詳細(xì)介紹,在第八章將詳細(xì)介紹。(4)數(shù)據(jù)庫恢復(fù)(Recovery)
將數(shù)據(jù)庫從錯誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)。
8/25/202360例如,對于一個定票系統(tǒng),如果只剩下一張
應(yīng)用程序與數(shù)據(jù)的對應(yīng)關(guān)系(數(shù)據(jù)庫系統(tǒng)):
數(shù)據(jù)庫管理系統(tǒng)DBMS應(yīng)用程序1數(shù)據(jù)庫…應(yīng)用程序2圖1.8數(shù)據(jù)庫系統(tǒng)階段應(yīng)用程序與數(shù)據(jù)之間的對應(yīng)關(guān)系返回8/25/202361應(yīng)用程序與數(shù)據(jù)的對應(yīng)關(guān)系(數(shù)據(jù)庫系統(tǒng)):
總的來說,數(shù)據(jù)庫是長期存儲在計算機內(nèi)有組織的、大量的、共享的數(shù)據(jù)集合。它可以供各種用戶共享,具有最小冗余度和較高的數(shù)據(jù)獨立性。數(shù)據(jù)庫管理系統(tǒng)DBMS在數(shù)據(jù)庫的建立、運用和維護(hù)時對數(shù)據(jù)庫進(jìn)行統(tǒng)一控制,從而保證數(shù)據(jù)的完整性、安全性,并在多用戶同時使用數(shù)據(jù)庫時進(jìn)行并發(fā)控制,在發(fā)生故障后對系統(tǒng)進(jìn)行恢復(fù)。
8/25/202362總的來說,數(shù)據(jù)庫是長期存儲在計算機內(nèi)有組織的、
目前,數(shù)據(jù)庫已經(jīng)成為現(xiàn)代信息系統(tǒng)的重要組成部分。具有數(shù)億字節(jié)信息的數(shù)據(jù)庫已經(jīng)普遍應(yīng)用于各行各業(yè);由于在微機上也配置了DBMS,使數(shù)據(jù)庫技術(shù)得到更加廣泛的應(yīng)用和普及。數(shù)據(jù)庫技術(shù)是計算機領(lǐng)域中發(fā)展最快的技術(shù)之一。數(shù)據(jù)庫技術(shù)發(fā)展是沿著數(shù)據(jù)模型的主線來展開的。下面我們來討論數(shù)據(jù)模型。8/25/202363目前,數(shù)據(jù)庫已經(jīng)成為現(xiàn)代信息系統(tǒng)的重要1.2數(shù)據(jù)模型
模型是現(xiàn)實世界特征的模擬和抽象。在數(shù)據(jù)庫中,人們用數(shù)據(jù)模型這個工具來抽象、表示和處理現(xiàn)實世界中的數(shù)據(jù)和信息。數(shù)據(jù)模型是現(xiàn)實世界數(shù)據(jù)特征的抽象。通俗地講數(shù)據(jù)模型就是現(xiàn)實世界的模擬。
數(shù)據(jù)模型應(yīng)滿足三方面要求:一是能比較真實地模擬現(xiàn)實世界;二是容易為人所理解;三是便于在計算機上實現(xiàn)。8/25/2023641.2數(shù)據(jù)模型模型是現(xiàn)實世界
事實上,一種數(shù)據(jù)模型要很好地滿足這三方面的要求是很困難的。一般是在數(shù)據(jù)庫系統(tǒng)中針對不同的使用對象和應(yīng)用目的,采用不同的數(shù)據(jù)模型。
8/25/202365事實上,一種數(shù)據(jù)模型要很好地滿足這三方面的要求
數(shù)據(jù)模型分成兩個不同的層次(1)概念模型:也稱信息模型,它是按用戶的觀點來對數(shù)據(jù)和信息建模。(2)數(shù)據(jù)模型:主要包括網(wǎng)狀模型、層次模型、關(guān)系模型等,它是按計算機系統(tǒng)的觀點對數(shù)據(jù)建模。
8/25/202366數(shù)據(jù)模型分成兩個不同的層次8/2/202366
不同的數(shù)據(jù)模型,實際上是提供給我們模型化數(shù)據(jù)和信息的不同工具。根據(jù)模型應(yīng)用的不同目的,可以將模型劃分為兩類(兩個層次):第一類模型是概念模型,也稱信息模型。它是按用戶的觀點來對數(shù)據(jù)和信息建模,主要用于數(shù)據(jù)庫設(shè)計。另一類模型是數(shù)據(jù)模型,主要包括網(wǎng)狀模型、層次模型、關(guān)系模型等,它是按計算機系統(tǒng)的觀點對數(shù)據(jù)建模,主要用于數(shù)據(jù)庫管理系統(tǒng)DBMS的實現(xiàn)。
8/25/202367不同的數(shù)據(jù)模型,實際上是提供給我們模型化數(shù)據(jù)和
現(xiàn)實世界中的客觀對象抽象為概念模型;概念模型是現(xiàn)實世界到機器世界的一個中間層次。
現(xiàn)實世界人們的認(rèn)識抽象信息世界(概念模型)機器世界(DBMS支持的數(shù)據(jù)模型)現(xiàn)實世界中客觀對象的抽象過程:說明見下頁8/25/202368現(xiàn)實世界中的客觀對象抽象為概念模型;概念模型是現(xiàn)實世
(對于上圖:)把概念模型轉(zhuǎn)換為某一種DBMS所支持的數(shù)據(jù)模型。數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ)。各種機器上實現(xiàn)的DBMS軟件都是基于某種數(shù)據(jù)模型的。
8/25/202369(對于上圖:)把概念模型轉(zhuǎn)換為某一種DBMS所支持
計算機不可能直接處理現(xiàn)實世界中的具體事物,所以人們必須實現(xiàn)把具體事物轉(zhuǎn)換成計算機能夠處理的數(shù)據(jù)。在數(shù)據(jù)中用數(shù)據(jù)模型這個工具來抽象、表示和處理現(xiàn)實世界中的數(shù)據(jù)和信息。我們無論處理任何數(shù)據(jù),都要先對此數(shù)據(jù)建立模型,然后在此基礎(chǔ)上進(jìn)行處理。下面我們先討論數(shù)據(jù)模型的共性:數(shù)據(jù)模型的組成要素。8/25/202370計算機不可能直接處理現(xiàn)實世界中的具體事物,所以1.2.1數(shù)據(jù)模型的組成要素
數(shù)據(jù)模型通常由三部分組成:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束。
一、數(shù)據(jù)結(jié)構(gòu)什么是數(shù)據(jù)結(jié)構(gòu)?數(shù)據(jù)結(jié)構(gòu)是所研究的對象類型的集合。數(shù)據(jù)結(jié)構(gòu)是對系統(tǒng)靜態(tài)特性的描述。數(shù)據(jù)結(jié)構(gòu)是刻畫一個數(shù)據(jù)模型性質(zhì)最重要的方面。因此在數(shù)據(jù)庫系統(tǒng)中,人們通常按其數(shù)據(jù)結(jié)構(gòu)的類型來命名數(shù)據(jù)模型。
兩類對象
:與數(shù)據(jù)類型、內(nèi)容、性質(zhì)有關(guān)的對象;與數(shù)據(jù)之間聯(lián)系有關(guān)的對象。
8/25/2023711.2.1數(shù)據(jù)模型的組成要素數(shù)據(jù)二、數(shù)據(jù)操作
數(shù)據(jù)操作是指對數(shù)據(jù)庫中各種對象(型)的實例(值)允許執(zhí)行的操作的集合,包括操作及有關(guān)的操作規(guī)則。數(shù)據(jù)操作是對系統(tǒng)動態(tài)特性的描述。數(shù)據(jù)操作的類型:檢索、更新(包括插入、刪除、修改)。數(shù)據(jù)模型必須定義對這些操作的確切含義、操作符號、操作規(guī)則(如優(yōu)先級)以及實現(xiàn)操作的語言。
8/25/202372二、數(shù)據(jù)操作數(shù)據(jù)操作是指對數(shù)據(jù)庫中各三、數(shù)據(jù)的約束條件
數(shù)據(jù)的約束條件是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,從而保證數(shù)據(jù)的正確、有效和相容。數(shù)據(jù)模型應(yīng)該反映和規(guī)定該數(shù)據(jù)模型必須遵守的基本的、通用的完整性約束條件。例如:(后面將要討論的)在關(guān)系模型中,任何關(guān)系必須滿足實體完整性和參照完整性這兩個條件。此外,數(shù)據(jù)模型還應(yīng)該提供定義完整性約束條件的機制,以反映具體應(yīng)用所涉及的數(shù)據(jù)必須遵守的特定的語義約束條件
。例如:在學(xué)校的數(shù)據(jù)庫中規(guī)定,學(xué)生的成績累計不及格的課程不能超過三門。
8/25/202373三、數(shù)據(jù)的約束條件數(shù)據(jù)的約束條件1.2.2概念模型
概念模型的用途:概念模型用于信息世界的建模。(概念模型是現(xiàn)實世界到機器世界的一個中間層次;是數(shù)據(jù)庫設(shè)計的有力工具;是數(shù)據(jù)庫設(shè)計人員和用戶之間進(jìn)行交流的語言。)
對概念模型的基本要求:一方面應(yīng)該具有較強的語義表達(dá)能力,能夠方便、直接地表達(dá)應(yīng)用中的各種語義知識;另一方面應(yīng)該具有簡單、清晰、易于用戶理解。
8/25/2023741.2.2概念模型概念模型的用一、信息世界中的基本概念
信息世界涉及的概念主要有:(1)實體(Entity):客觀存在并可相互區(qū)別的事物稱為實體。一個實體可以由若干個屬性來刻畫??梢允蔷唧w的人、事、物或抽象的概念。(2)屬性(Attribute):實體所具有的某一特性稱為屬性。例如,學(xué)生的學(xué)號、姓名。(3)碼(Key):唯一標(biāo)識實體的屬性集稱為碼。例如,學(xué)號是學(xué)生實體的碼。(4)域(Domain):屬性的取值范圍稱為該屬性的域。例如,學(xué)號的域為8位整數(shù),姓名的域為字符串集合,性別的域為(男,女)等等。
8/25/202375一、信息世界中的基本概念信息世界涉及的
(5)實體型(EntityType):具有相同屬性的實體必然具有共同的特征和性質(zhì)。我們用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。即同類實體稱為實體型。例如,學(xué)生(學(xué)號,姓名,性別,出生年份,系,入學(xué)時間)就是一個實體型。(6)實體集(EntitySet):同型實體的集合稱為實體集。例如,全體學(xué)生就是一個實體集。
8/25/202376(5)實體型(EntityType):8/2/20
(7)聯(lián)系(Relationship):在現(xiàn)實世界中,事物內(nèi)部以及事物之間是有聯(lián)系的,這些聯(lián)系在信息世界中反映為實體(型)內(nèi)部的聯(lián)系和實體(型)之間的聯(lián)系。實體內(nèi)部的聯(lián)系通常是指組成實體的各屬性之間的聯(lián)系;實體之間的聯(lián)系通常是指不同實體集之間的聯(lián)系。
8/25/202377(7)聯(lián)系(Relationship):8/2/20兩個實體型之間的聯(lián)系可以分為三類:
①一對一聯(lián)系(1:1)如果對于實體集A中的每一個實體,實體集B中至多有一個(也可以沒有)實體與之聯(lián)系,反之亦然,則稱實體集A與B具有一對一聯(lián)系,記為1:1。
例如,一個班級只有一個正班長,而一個班長也只在一個班中任職。則班級與班長之間具有一對一聯(lián)系。8/25/202378兩個實體型之間的聯(lián)系可以分為三類:①一對一聯(lián)系(
②一對多聯(lián)系(1:n)如果對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體B中的每一個實體,實體集A中至多只有一個實體與之聯(lián)系,則稱實體集A與B有一對多聯(lián)系,記為1:n。
例如,一個班級中可以有若干名學(xué)生,而每個學(xué)生只在一個班級中學(xué)習(xí)。則班級與學(xué)生之間具有一對多聯(lián)系。
8/25/202379②一對多聯(lián)系(1:n)8/2/202379
多對多聯(lián)系(m:n)如果對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中也有m個實體(m≥0)與之聯(lián)系,則稱實體集A與B具有多對多聯(lián)系,記為m:n。
例如,一門課程同時有若干個學(xué)生選修,而一個學(xué)生可以同時選修多門課程,則課程與學(xué)生之間具有多對多聯(lián)系。詳細(xì)介紹三種聯(lián)系的實例:hdp83~84(見教材P17~P18)。
8/25/202380多對多聯(lián)系(m:n)8/2/202380教材P18:圖1.10
實體型A聯(lián)系名11(a)1:1聯(lián)系實體型B(b)1:n聯(lián)系實體型A聯(lián)系名1n實體型B(c)m:n聯(lián)系實體型A聯(lián)系名mn實體型B圖1.10兩個實體型之間的三類聯(lián)系圖示8/25/202381教材P18:圖1.10
多個實體型間的聯(lián)系(略):多個實體型間的一對多聯(lián)系若實體集E1,E2,…,En存在聯(lián)系,對于實體集Ej(j=1,2,…,i-1,i+1,…,n)中的給定實體,最多只和Ei中的一個實體相聯(lián)系,則我們說Ei與E1,E2,…,Ei-1,Ei+1,…,En之間的聯(lián)系是一對多的。[注1:多個實體型間的一對一聯(lián)系(略);注2:多個實體型間的多對多聯(lián)系(略)]
8/25/202382多個實體型間的聯(lián)系(略):8/2/202382
實例1課程、教師與參考書三個實體型如果一門課程可以有若干個教師講授,使用若干本參考書,每一個教師只講授一門課程,每一本參考書只供一門課程使用,則課程與教師、參考書之間的聯(lián)系是一對多的(見圖1.11a)。
實例2三個實體型:供應(yīng)商、項目、零件一個供應(yīng)商可以供給多個項目多種零件,而每個項目可以使用多個供應(yīng)商供給的零件,每種零件可由不同供應(yīng)商供給,由此可以看出:三個實體型供應(yīng)商、項目、零件之間是多對多的聯(lián)系(見圖1.11b)。
繼續(xù)講課8/25/202383實例1課程、教師與參考書三個實體型8/2/2023圖1.11a三個實體型間的1:n聯(lián)系
圖1.11a三個實體型間的1:n聯(lián)系課程講授教師1m參考書n圖1.11b返回8/25/202384圖1.11a三個實體型間的1:n聯(lián)系圖1.11a三個圖1.11b三個實體型間的m:n聯(lián)系
圖1.11b三個實體型間的m:n聯(lián)系供應(yīng)商供應(yīng)項目m零件np供應(yīng)量返回8/25/202385圖1.11b三個實體型間的m:n聯(lián)系
同一實體集內(nèi)各實體間的聯(lián)系:一對一聯(lián)系、一對多聯(lián)系和多對多聯(lián)系實例同一實體集內(nèi)的一對多聯(lián)系職工實體集內(nèi)部具有領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)的聯(lián)系,即某一職工(管理者)“領(lǐng)導(dǎo)”若干名職工,而一個職工僅被另外一個職工直接領(lǐng)導(dǎo),這是一對多的聯(lián)系(見圖1.12)
繼續(xù)課程8/25/202386同一實體集內(nèi)各實體間的聯(lián)系:一對一聯(lián)同一實體型內(nèi)部的1:n聯(lián)系
職工領(lǐng)導(dǎo)圖1.12同一實體型內(nèi)部的1:n聯(lián)系1n返回8/25/202387同一實體型內(nèi)部的1:n聯(lián)系
二、概念模型的表示方法
實體-聯(lián)系方法(E-R方法):E-R方法也稱為E-R模型;用E-R圖來描述現(xiàn)實世界的概念模型。概念模型是對信息世界建模,所以概念模型應(yīng)該能夠方便、準(zhǔn)確地表示出上述信息世界中的常用概念。概念模型的表示方法很多,其中最為著名的是P.P.S.Chen于1976年提出的實體-聯(lián)系方法(Entity-RelationshipApproach)。該方法用E-R圖來描述現(xiàn)實世界的概念模型。
8/25/202388二、概念模型的表示方法實體-聯(lián)系方
E-R圖提供了表示實體型、屬性和聯(lián)系的方法:實體型:用矩形表示,矩形框內(nèi)寫明實體名。屬性:用橢圓形表示,并用無向邊將其與相應(yīng)的實體連接起來。聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實體連接起來,同時在無向邊旁標(biāo)上聯(lián)系的類型(1:1;1:n;m:n)。
8/25/202389E-R圖提供了表示實體型、屬性和聯(lián)
需要注意的是:如果一個聯(lián)系具有屬性,則這些屬性也要用無向邊與該聯(lián)系連接起來。課后閱讀:E-R圖實例[結(jié)合教材上的例子(P19~P20),詳細(xì)了解“某工廠物資管理”E-R圖]是如何用E-R圖來描述現(xiàn)實世界中的實體及其之間的聯(lián)系。
8/25/202390需要注意的是:如果一個聯(lián)系具有屬性1.2.3最常用的數(shù)據(jù)模型
回顧:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束條件,這三個方面的內(nèi)容完整地描述了一個數(shù)據(jù)模型,其中數(shù)據(jù)結(jié)構(gòu)是刻劃模型性質(zhì)的最基本的方面。目前,數(shù)據(jù)庫領(lǐng)域中最常用的數(shù)據(jù)模型有四種:非關(guān)系模型:層次模型(HierarchicalModel)、網(wǎng)狀模型(NetworkModel);數(shù)據(jù)結(jié)構(gòu):以基本層次聯(lián)系為基本單位。
8/25/2023911.2.3最常用的數(shù)據(jù)模型回顧:數(shù)
關(guān)系模型(RelationalModel)數(shù)據(jù)結(jié)構(gòu):表面向?qū)ο竽P?ObjectOrientedModel)
數(shù)據(jù)結(jié)構(gòu):對象注意:這里所討論的數(shù)據(jù)模型都是邏輯上的,也就是說,是用戶所看到的數(shù)據(jù)范圍;同時,它們又都能用某種語言描述,使計算機系統(tǒng)能夠理解,被數(shù)據(jù)庫管理系統(tǒng)支持的數(shù)據(jù)視圖。這些數(shù)據(jù)模型將以一定的方式存儲在數(shù)據(jù)庫系統(tǒng)中。這是DBMS的功能,是DBMS中的存儲模型。
8/25/202392關(guān)系模型(RelationalModel)8/2/2
在非關(guān)系模型中,實體用記錄表示,實體的屬性對應(yīng)記錄的數(shù)據(jù)項(或字段)。實體之間的聯(lián)系在非關(guān)系模型中轉(zhuǎn)換成記錄之間的兩兩聯(lián)系。非關(guān)系模型中數(shù)據(jù)結(jié)構(gòu)的單位是基本層次聯(lián)系。
所謂基本層次聯(lián)系是指兩個記錄以及它們之間的一對多(包括一對一)的聯(lián)系。
繼續(xù)課程8/25/202393在非關(guān)系模型中,實體用記錄表示,實基本層次聯(lián)系圖
Ri
Rj雙親結(jié)點子女結(jié)點1:n(包括1:1)的聯(lián)系名Lij
圖1.16基本層次聯(lián)系返回8/25/202394基本層次聯(lián)系圖RiRj雙親1.2.4層次模型
一、層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)層次數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)中最早出現(xiàn)的。層次數(shù)據(jù)庫系統(tǒng)的典型代表是IMS[1968-1969年,IBM公司研制的層次模型的數(shù)據(jù)庫管理系統(tǒng)IMS(InformationManagementSystem)],這是一個大型的商用數(shù)據(jù)庫管理系統(tǒng),曾經(jīng)得到廣泛的使用。8/25/2023951.2.4層次模型一、層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)8/2/2
在數(shù)據(jù)庫中定義滿足下面兩個條件的基本層次聯(lián)系的集合為層次模型。層次模型用樹形結(jié)構(gòu)來表示各類實體以及實體間的聯(lián)系。⑴有且只有一個結(jié)點沒有雙親結(jié)點,這個結(jié)點稱為根結(jié)點。⑵根以外的其它結(jié)點有且只有一個雙親結(jié)點。8/25/202396在數(shù)據(jù)庫中定義滿足下面兩個條件的基本一個層次模型的示例
R1R2R3R4R5R1:根結(jié)點R2與R3:兄弟結(jié)點R4與R5:兄弟結(jié)點R4:樹葉結(jié)點R5:樹葉結(jié)點圖1.17一個層次模型的示例轉(zhuǎn)下頁8/25/202397一個層次模型的示例
層次模型中的幾個術(shù)語(見上頁):
根結(jié)點,雙親結(jié)點,兄弟結(jié)點,葉結(jié)點。根據(jù)層次模型的定義我們可以看到,這是一個典型的樹狀結(jié)構(gòu)。在層次模型中,每個結(jié)點表示一個記錄類型,記錄(類型)之間的聯(lián)系用結(jié)點之間的連線(有向邊)表示,這種聯(lián)系是父子之間的一對多的聯(lián)系?,F(xiàn)實世界中的聯(lián)系靠父子之間的一對多聯(lián)系來體現(xiàn)。這就使得層次數(shù)據(jù)庫系統(tǒng)只能處理一對多的實體聯(lián)系。
8/25/202398
層次模型中的幾個術(shù)語(見上頁):8/2/20239
層次模型的一個基本特點是:任何一個給定的記錄值只有按其路徑查看時,才能顯示出它的全部意義,沒有一個子女記錄值能夠脫離雙親記錄值而獨立存在??蓞⒁娊滩腜22~P23的例子及圖1.18和1.19介紹層次模型。8/25/202399層次模型的一個基本特點是:任何一個給定的記錄值只有按
表示方法:實體型:用記錄類型描述。每個結(jié)點表示一個記錄類型。屬性:用字段描述。每個記錄類型可包含若干個字段。聯(lián)系:用結(jié)點之間的連線表示記錄(類)型之間的一對多的聯(lián)系。課后閱讀:實例:教員-學(xué)生數(shù)據(jù)模型(P23)
8/25/2023100表示方法:8/2/2023100
特點:結(jié)點的雙親是唯一的;只能直接處理一對多的實體聯(lián)系;每個記錄類型定義一個排序字段,也稱為碼字段。任何記錄值只有按其路徑查看時,才能顯出它的全部意義,沒有一個子女記錄值能夠脫離雙親記錄值而獨立存在。
8/25/2023101特點:8/2/2023101二、多對多聯(lián)系在層次模型中的表示
多對多聯(lián)系在層次模型中的表示:用層次模型間接表示多對多聯(lián)系;將多對多聯(lián)系分解成一對多聯(lián)系;分解方法:冗余結(jié)點法和虛擬結(jié)點法。
層次數(shù)據(jù)模型只能直接表示一對多(包括一對一)的聯(lián)系,那么另一種常見聯(lián)系:多對多聯(lián)系如何表示呢?層次模型表示多對多聯(lián)系必須首先將其分解成一對多聯(lián)系。分解方法有兩種:冗余結(jié)點法和虛擬結(jié)點法。課后閱讀:結(jié)合教材P.24圖1.20介紹這兩種分解方法。
8/25/2023102二、多對多聯(lián)系在層次模型中的表示多對多聯(lián)系在層次模型
*冗余結(jié)點法的特點:冗余結(jié)點法的優(yōu)點是結(jié)構(gòu)清晰,允許結(jié)點改變存儲位置;缺點是需要額外占用存儲空間,有潛在的不一致性。*虛擬結(jié)點法的特點:
虛擬結(jié)點法的優(yōu)點是減少對存儲空間的浪費,避免產(chǎn)生潛在的不一致性;缺點是結(jié)點改變存儲位置可能引起虛擬結(jié)點中指針的修改。
8/25/2023103*冗余結(jié)點法的特點:8/2/2023103三、層次模型的數(shù)據(jù)操縱與完整性約束
層次模型的數(shù)據(jù)操縱主要有:查詢、插入、刪除和更新。層次模型的數(shù)據(jù)操縱將產(chǎn)生如下的約束:無相應(yīng)的雙親結(jié)點值就不能插入子女結(jié)點值;如果刪除雙親結(jié)點值,則相應(yīng)的子女結(jié)點值也被同時刪除;更新操作時,應(yīng)更新所有相應(yīng)記錄,以保證數(shù)據(jù)的一致性。8/25/2023104三、層次模型的數(shù)據(jù)操縱與完整性約束層次模型的數(shù)據(jù)操縱
進(jìn)行插入操作時,如果沒有相應(yīng)的雙親結(jié)點值就不能插入子女節(jié)點值。例如,在層次數(shù)據(jù)庫中,如果新調(diào)入一名教師,但該教師尚未分配到某個教研室,這時就不能將新教師插入到數(shù)據(jù)庫中。這樣對于一些不明確父結(jié)點值的結(jié)點將無法完成插入操作。
8/25/2023105進(jìn)行插入操作時,如果沒有相應(yīng)的雙親結(jié)點值就不能
進(jìn)行刪除操作時,如果刪除雙親結(jié)點值,則相應(yīng)的子女結(jié)點值也被同時刪除。現(xiàn)實應(yīng)用中,有時我們刪除父結(jié)點,但并不希望其所有子結(jié)點都被刪除。例如,撤銷了一個系或?qū)I(yè),成立一個新的系或?qū)I(yè),但原來教師的記錄并不希望被刪除。
8/25/2023106進(jìn)行刪除操作時,如果刪除雙親結(jié)點值,則相應(yīng)的子
進(jìn)行修改操作(更新)時,應(yīng)修改所有相應(yīng)記錄,從而保證數(shù)據(jù)的一致性。例如,在層次數(shù)據(jù)庫中,如果一條記錄中的某一項被修改,則相關(guān)的記錄值都要修改。
8/25/2023107進(jìn)行修改操作(更新)時,應(yīng)修
四、層次數(shù)據(jù)模型的存儲結(jié)構(gòu)1.鄰接法按照層次樹前序遍歷的順序把所有記錄值依次鄰接存放,即通過物理空間的位置相鄰來體現(xiàn)(或隱含)層次順序。2.鏈接法用指引元(每個記錄設(shè)一類或兩類)來反映數(shù)據(jù)之間的層次聯(lián)系。*(1)子女-兄弟鏈接法:每個記錄設(shè)兩類指引元,分別指向最左邊的子女和最近的兄弟。課后閱讀:P.26*(2)層次序列鏈接法:按照層次樹前序遍歷的順序鏈接各記錄值。課后閱讀:P.268/25/2023108
四、層次數(shù)據(jù)模型的存儲結(jié)構(gòu)1.鄰接法8/2/2
五、層次模型的優(yōu)缺點層次模型的優(yōu)點主要有:層次數(shù)據(jù)模型簡單;對于實體間聯(lián)系是固定的,且預(yù)先定義好的應(yīng)用系統(tǒng),采用層次模型來實現(xiàn),性能優(yōu)于關(guān)系模型,不低于網(wǎng)狀模型;對具有一對多的層次關(guān)系的部門描述自然、直觀,容易理解(這是層次數(shù)據(jù)庫的突出優(yōu)點);層次數(shù)據(jù)模型提供了良好的完整性支持。
8/25/2023109
五、層次模型的優(yōu)缺點層次模型的優(yōu)點主要有:8/2/2023層次模型的缺點:層次模型對于表現(xiàn)多對多的聯(lián)系不自然[現(xiàn)實世界中很多聯(lián)系是非層次的,如多對多聯(lián)系、一個結(jié)點具有多個雙親等,層次模型表示這類聯(lián)系的方法很笨拙,只能通過引入冗余數(shù)據(jù)(易產(chǎn)生不一致性)或創(chuàng)建非自然的數(shù)據(jù)組織(引入虛擬結(jié)點)來加以解決。]對插入和刪除操作的限制比較多;查詢子女結(jié)點必須通過雙親結(jié)點;由于結(jié)構(gòu)嚴(yán)密,層次命令趨于程序化。
8/25/2023110層次模型的缺點:層次模型對于表現(xiàn)多對1.2.5網(wǎng)狀模型在現(xiàn)實世界中事物之間的聯(lián)系更多的是非層的關(guān)系的,用層次模型表示非樹形結(jié)構(gòu)是很不直接的,但網(wǎng)狀模型則可以克服這一弊病。在20世紀(jì)60年代末70年代初,美國數(shù)據(jù)庫系統(tǒng)語言協(xié)商會CODASYL(ConferenceOnDataSystemLanguage)下屬的數(shù)據(jù)庫任務(wù)組DBTG(DataTaskGroup)對數(shù)據(jù)庫方法進(jìn)行了系統(tǒng)的研究、探討,提出了稱為DBTG的報告。DBTG報告確定并建立了數(shù)據(jù)庫系統(tǒng)很多概念、方法和技術(shù)。(轉(zhuǎn)下頁)
8/25/20231111.2.5網(wǎng)狀模型在現(xiàn)實世界中事物之間的聯(lián)系
(續(xù)上頁)DBTG所提議的方法是基于網(wǎng)狀結(jié)構(gòu)的。它是數(shù)據(jù)庫網(wǎng)狀模型的典型代表。網(wǎng)狀型數(shù)據(jù)庫是數(shù)據(jù)庫概念、方法和技術(shù)的奠基者。網(wǎng)狀型數(shù)據(jù)庫的數(shù)據(jù)模型是網(wǎng)狀的,它對于網(wǎng)狀型數(shù)據(jù)庫系統(tǒng)的研制和發(fā)展起了重大的影響,后來的不少系統(tǒng)都采用了DBTG模型或簡化的DBTG模型。8/25/2023112(續(xù)上頁)DBTG所提議的方法是基于網(wǎng)狀結(jié)構(gòu)的。它一、網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)在數(shù)據(jù)庫中,把滿足以下兩個條件的基本層次聯(lián)系集合稱為網(wǎng)狀模型:⑴
允許一個以上的結(jié)點無雙親;⑵一個結(jié)點可以有多于一個的雙親。
例見下頁繼續(xù)課程8/25/2023113一、網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)在數(shù)據(jù)庫圖1.24網(wǎng)狀模型的例子
R1R1R3R1R2R1R1R1R1R1(b)(a)L1L2L1L2L1L2L3L4(c)圖1.24網(wǎng)狀模型的例子返回上頁8/25/2023114圖1.24網(wǎng)狀模型的例子
從定義可以看出,層次模型中子女結(jié)點與雙親結(jié)點的聯(lián)系是唯一的,而在網(wǎng)狀模型中這種聯(lián)系可以不唯一。因此,要為每個聯(lián)系命名,并指出與該聯(lián)系有關(guān)的雙親記錄和子女記錄。
8/25/2023115從定義可以看出,層次模型中子女結(jié)點與雙
表示方法(與層次數(shù)據(jù)模型相同):實體型:用記錄類型描述;
每個結(jié)點表示一個記錄類型(實體)。屬性:用字段描述。每個記錄類型可包含若干個字段(實體的屬性)。聯(lián)系:用結(jié)點之間的連線表示記錄(類)型之間的一對多的父子聯(lián)系。8/25/2023116表示方法(與層次數(shù)據(jù)模型相同):8/2/2023
網(wǎng)狀數(shù)據(jù)模型是一種比層次模型更具有普遍性的結(jié)構(gòu),它去掉了層次模型的兩個限制,允許多個結(jié)點沒有雙親結(jié)點,允許結(jié)點有多個雙親結(jié)點;此外,它還允許兩個結(jié)點之間有多種聯(lián)系(復(fù)合聯(lián)系)。因此,網(wǎng)狀數(shù)據(jù)模型可以更直接地去描述現(xiàn)實世界。而層次模型實際上是網(wǎng)狀數(shù)據(jù)模型的一個特例。8/25/2023117網(wǎng)狀數(shù)據(jù)模型是一種比層次模型更具有普遍性的結(jié)構(gòu)
特點:只能直接處理一對多的實體聯(lián)系;每個記錄類型定義一個排序字段,也稱為碼字段;任何記錄值只有按其路徑查看時,才能顯出它的全部意義。
多對多聯(lián)系在網(wǎng)狀模型中的表示:用網(wǎng)狀模型間接表示多對多聯(lián)系。方法:將多對多聯(lián)系直接分解成一對多聯(lián)系。8/25/2023118特點:8/2/2023118
*[課后閱讀:P.28]以學(xué)生選課為例,看網(wǎng)狀數(shù)據(jù)模型如何組織數(shù)據(jù)。一個學(xué)生可以選修若干門課程,某一課程可以被多個學(xué)生選修,因此學(xué)生與課程之間是多對多的聯(lián)系。這樣的實體聯(lián)系圖不能直接用網(wǎng)狀模型來表示,因為網(wǎng)狀模型不能直接表示記錄之間的多對多的聯(lián)系。為此我們可以把聯(lián)系也作為一個結(jié)點來表示,引入學(xué)生選課記錄,由三個數(shù)據(jù)項組成,即學(xué)號、課程號、成績,表示某個學(xué)生選修某一門課程及其成績。利用學(xué)生到選課的一對多聯(lián)系和課程到選課的一對多聯(lián)系表示學(xué)生和課程之間的多對多的聯(lián)系。(課后閱讀:P.28圖1.25)
8/25/2023119*[課后閱讀:P.28]以學(xué)生選課為例,
網(wǎng)狀模型與層次模型的區(qū)別:網(wǎng)狀模型允許多個結(jié)點沒有雙親結(jié)點;
網(wǎng)狀模型允許結(jié)點有多個雙親結(jié)點;網(wǎng)狀模型允許兩個結(jié)點之間有多種聯(lián)系(復(fù)合聯(lián)系);網(wǎng)狀模型可以更直接地去描述現(xiàn)實世界;層次模型實際上是網(wǎng)狀模型的一個特例。
8/25/2023120網(wǎng)狀模型與層次模型的區(qū)別:8/2/20231二、網(wǎng)狀數(shù)據(jù)模型的操縱與完整性約束
完整性約束條件允許插入尚未確定雙親結(jié)點值的子女結(jié)點值;允許只刪除雙親結(jié)點值;
DBTG在模式DDL中提供了定義DBTG數(shù)據(jù)庫完整性的若干概念和語句,主要有:
8/25/2023121二、網(wǎng)狀數(shù)據(jù)模型的操縱與完整性約束完整性約束條件8/2/2
⑴支持記錄碼的概念,碼即唯一標(biāo)志記錄的數(shù)據(jù)項的集合。⑵保證一個聯(lián)系中雙親記錄和子女記錄之間是一對多的聯(lián)系。⑶可以支持雙親記錄和子女記錄之間的某些約束條件。
例如,有些子女記錄要求雙親記錄存在才能插入,雙親記錄刪除時也連同刪除。8/25/2023122⑴支持記錄碼的概念,碼即唯一標(biāo)志記三、網(wǎng)狀數(shù)據(jù)模型的存儲結(jié)構(gòu)網(wǎng)狀數(shù)據(jù)模型的存儲結(jié)構(gòu)中關(guān)鍵是如何實現(xiàn)記錄之間的聯(lián)系。常用的方法是鏈接法(包括單向鏈接、雙向鏈接、環(huán)狀鏈接等)。
8/25/2023123三、網(wǎng)狀數(shù)據(jù)模型的存儲結(jié)構(gòu)網(wǎng)狀數(shù)據(jù)模型的存儲結(jié)四、網(wǎng)狀數(shù)據(jù)模型的優(yōu)缺點網(wǎng)狀數(shù)據(jù)模型的優(yōu)點主要有:能夠更為直接地描述現(xiàn)實世界,如一個結(jié)點可以有多個雙親。具有良好的性能,存取效率較高。
8/25/2023124四、網(wǎng)狀數(shù)據(jù)模型的優(yōu)缺點網(wǎng)狀數(shù)據(jù)模型的優(yōu)點主要有:8/2/網(wǎng)狀數(shù)據(jù)模型的缺點主要有:結(jié)構(gòu)比較復(fù)雜,而且隨著應(yīng)用環(huán)境的擴大,數(shù)據(jù)庫的結(jié)構(gòu)就變得越來越復(fù)雜,不利于最終用戶掌握。網(wǎng)狀數(shù)據(jù)模型的DDL、DML語言復(fù)雜,用戶不容易使用。由于記錄之間聯(lián)系時通過存取路徑實現(xiàn)的,應(yīng)用程序在訪問數(shù)據(jù)時必須選擇合適的存取路徑,因此,用戶必須了解系統(tǒng)結(jié)構(gòu)的細(xì)節(jié),加重了編寫應(yīng)用程序的負(fù)擔(dān)。
8/25/2023125網(wǎng)狀數(shù)據(jù)模型的缺點主要有:結(jié)構(gòu)比較復(fù)雜1.2.6關(guān)系模型關(guān)系模型是本課程的重點,關(guān)系模型是目前最重要的一種數(shù)據(jù)模型。關(guān)系數(shù)據(jù)庫系統(tǒng)采用關(guān)系模型作為數(shù)據(jù)庫的組織方式。
1970年,IBM公司的E.F.Codd首次提出了數(shù)據(jù)庫系統(tǒng)的關(guān)系模型,開創(chuàng)了數(shù)據(jù)庫關(guān)系方法和關(guān)系數(shù)據(jù)理論的研究,為關(guān)系數(shù)據(jù)庫技術(shù)奠定了理論基礎(chǔ)。人們之所以把20世紀(jì)70年代稱之為數(shù)據(jù)庫時代,主要是由于數(shù)據(jù)庫系統(tǒng)從實驗室走向了社會。由于E.F.Codd的杰出工作,他于1981年獲得了計算機界的最高獎:ACM圖靈獎。(轉(zhuǎn)下頁)
8/25/20231261.2.6關(guān)系模型關(guān)系模型是本課程的重點,關(guān)
(接上頁)20世紀(jì)80年代以來,計算機廠商推出的數(shù)據(jù)庫管理系統(tǒng)幾乎都支持關(guān)系模型,而非關(guān)系系統(tǒng)的產(chǎn)品也大多加上了關(guān)系接口。由于數(shù)據(jù)庫領(lǐng)域當(dāng)前的研究工作多以關(guān)系方法為基礎(chǔ),是目前主要采用的數(shù)據(jù)模型。因此,關(guān)系模型成了最重要的一種數(shù)據(jù)模型,關(guān)系數(shù)據(jù)庫也就成了本書的重點。[典型的關(guān)系數(shù)據(jù)庫系統(tǒng):
ORACLE、SYBASE、INFORMIX、DB/2、COBASE、PBASE、EasyBase、DM/2、OpenBase等]8/25/2023127(接上頁)20世紀(jì)80年代以來,計算機廠商推出一、關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)
在用戶觀點下,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。如下圖1.27所示:
8/25/2023128一、關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)在用圖1.27關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)
學(xué)生登記表學(xué)號姓名年齡性別系名年級95004王小明19女社會學(xué)9595006黃大鵬20男商品學(xué)9595008張文斌18女法律學(xué)95………………返回127繼續(xù)1298/25/2023129圖1.27關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)學(xué)生登記表
關(guān)系模型與以往的模型不同,它是建立在嚴(yá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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度美甲產(chǎn)品獨家代理銷售合同4篇
- 2025年度個人房產(chǎn)買賣合同物業(yè)交接范本
- 2025年度個人購房合同(含房產(chǎn)市場趨勢分析)2篇
- 2025年度個人消費借唄貸款合同(智能還款服務(wù)升級版)4篇
- 2025年度個人二手汽車轉(zhuǎn)讓與二手車保險理賠服務(wù)合同
- 美容院員工2025年度勞動合同模板全新修訂版4篇
- 2025年度個人對公司文化創(chuàng)意產(chǎn)業(yè)借款合同(文化創(chuàng)意產(chǎn)業(yè)扶持版)4篇
- 2025版民辦學(xué)校教師教學(xué)資源開發(fā)與利用合同4篇
- 二零二五版高速公路電子標(biāo)牌施工及運營合同3篇
- 2025年度個人購房稅費減免服務(wù)合同2篇
- 廣東省潮州市潮安區(qū)2023-2024學(xué)年五年級上學(xué)期期末考試數(shù)學(xué)試題
- 市政道路及設(shè)施零星養(yǎng)護(hù)服務(wù)技術(shù)方案(技術(shù)標(biāo))
- 藝術(shù)培訓(xùn)校長述職報告
- 選擇性必修一 期末綜合測試(二)(解析版)2021-2022學(xué)年人教版(2019)高二數(shù)學(xué)選修一
- 《論語》學(xué)而篇-第一課件
- 《寫美食有方法》課件
- 學(xué)校制度改進(jìn)
- 各行業(yè)智能客服占比分析報告
- 年產(chǎn)30萬噸高鈦渣生產(chǎn)線技改擴建項目環(huán)評報告公示
- 心電監(jiān)護(hù)考核標(biāo)準(zhǔn)
- (完整word版)申論寫作格子紙模板
評論
0/150
提交評論