第1章 數(shù)據(jù)庫原理及基本概念.ppt_第1頁
第1章 數(shù)據(jù)庫原理及基本概念.ppt_第2頁
第1章 數(shù)據(jù)庫原理及基本概念.ppt_第3頁
第1章 數(shù)據(jù)庫原理及基本概念.ppt_第4頁
第1章 數(shù)據(jù)庫原理及基本概念.ppt_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第1章 數(shù)據(jù)庫原理及基本概念,早期的計(jì)算機(jī)主要應(yīng)用于科學(xué)計(jì)算。隨著生產(chǎn)的發(fā)展,社會(huì)的進(jìn)步,計(jì)算機(jī)應(yīng)用進(jìn)入了數(shù)據(jù)處理的時(shí)代。在當(dāng)今社會(huì),計(jì)算機(jī)應(yīng)用已經(jīng)涉足到社會(huì)的各個(gè)領(lǐng)域,人們的日常生活,工作與計(jì)算機(jī)的關(guān)系也愈加緊密。 數(shù)據(jù)處理是計(jì)算機(jī)四大應(yīng)用(科學(xué)計(jì)算、過程控制、數(shù)據(jù)處理和輔助設(shè)計(jì))的一個(gè)重要方面。數(shù)據(jù)庫技術(shù)是在文件技術(shù)的基礎(chǔ)上發(fā)展起來的,它是數(shù)據(jù)處理的一種最新的方法。本章將從數(shù)據(jù)處理的發(fā)展過程簡要介紹數(shù)據(jù)庫系統(tǒng)所涉及的基本概念。,第1章 數(shù)據(jù)庫原理及基本概念,1.1 數(shù)據(jù)庫系統(tǒng) 1.2 數(shù)據(jù)庫管理系統(tǒng) 1.3 數(shù)據(jù)庫模型 1.4 關(guān)系數(shù)據(jù)庫的設(shè)計(jì) 1.5 Access 2002與數(shù)據(jù)庫的關(guān)系

2、 1.6 習(xí)題,1.1 數(shù)據(jù)庫系統(tǒng),1.1.1 數(shù)據(jù)處理 數(shù)據(jù)是描述事物的符號(hào)記錄。數(shù)字、文字、圖形、圖像、聲音等都是常見的數(shù)據(jù)表現(xiàn)形式。例如,20是一個(gè)數(shù)據(jù),它可以代表一個(gè)人的年齡,或者是一個(gè)學(xué)生的選修課程數(shù)目等信息。所以數(shù)據(jù)的表現(xiàn)形式還不能完全表達(dá)內(nèi)容,只有經(jīng)過解釋,才能將其變成有意義的數(shù)據(jù)。另外,數(shù)據(jù)之間是有聯(lián)系,有結(jié)構(gòu)的。例如,學(xué)生的編號(hào)、姓名、性別等。 數(shù)據(jù)處理是指對(duì)大量的各種形式的數(shù)據(jù)進(jìn)行收集、加工、傳輸和存儲(chǔ)的一系列工作。其目的就是從原始的大量的數(shù)據(jù)中提煉出對(duì)人們有價(jià)值的信息,幫助人們對(duì)環(huán)境進(jìn)行控制和做出行動(dòng)的決策。,1.1.2 數(shù)據(jù)庫 在數(shù)據(jù)處理中,數(shù)據(jù)的計(jì)算比較簡單,數(shù)據(jù)的管

3、理比較復(fù)雜。數(shù)據(jù)管理就是指數(shù)據(jù)的收集、整理、組織、存儲(chǔ)和檢索等操作。數(shù)據(jù)管理是數(shù)據(jù)處理的核心,而數(shù)據(jù)庫技術(shù)就是對(duì)數(shù)據(jù)進(jìn)行管理的。 在日常生活中我們經(jīng)常會(huì)遇到數(shù)據(jù)庫,例如教師上課的課程表,學(xué)生的成績登記等。簡單來說,數(shù)據(jù)庫是存放數(shù)據(jù)的地方,相當(dāng)于是存放數(shù)據(jù)的倉庫,并且是以結(jié)構(gòu)化的方式進(jìn)行存儲(chǔ),以便于查詢、應(yīng)用、數(shù)據(jù)更新和刪除等操作。數(shù)據(jù)庫的一個(gè)被大家普遍接受的更為嚴(yán)格的定義是: 數(shù)據(jù)庫是一組相互關(guān)聯(lián)的數(shù)據(jù)集合,它用系統(tǒng)的方法將數(shù)據(jù)組織起來,具有較小的數(shù)據(jù)冗余,可以供多個(gè)用戶使用,具有較高的數(shù)據(jù)獨(dú)立性,具有安全控制機(jī)制,能夠確保數(shù)據(jù)的安全、可靠,能有效、及時(shí)地處理數(shù)據(jù),并能保證數(shù)據(jù)的一致性與完整性

4、。,1.1.3 數(shù)據(jù)庫技術(shù)的發(fā)展 數(shù)據(jù)庫技術(shù)是計(jì)算機(jī)科學(xué)技術(shù)中發(fā)展最快的重要分支之一,它已經(jīng)成為計(jì)算機(jī)信息系統(tǒng)和應(yīng)用系統(tǒng)的重要技術(shù)支柱。數(shù)據(jù)庫技術(shù)的發(fā)展大致經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。 1人工管理階段 在20世紀(jì)50年代中期,計(jì)算機(jī)主要用于科學(xué)計(jì)算。外存只有磁盤、卡片、磁帶,沒有磁盤等直接存取的存儲(chǔ)設(shè)備;軟件只有匯編語言,沒有操作系統(tǒng),沒有管理數(shù)據(jù)的軟件;數(shù)據(jù)處理方式是批處理。這個(gè)時(shí)期數(shù)據(jù)不保存;沒有相應(yīng)的軟件系統(tǒng)負(fù)責(zé)數(shù)據(jù)的管理工作,數(shù)據(jù)由應(yīng)用程序管理;數(shù)據(jù)不共享,一組數(shù)據(jù)只對(duì)應(yīng)一個(gè)程序;數(shù)據(jù)不具有獨(dú)立性,當(dāng)其邏輯結(jié)構(gòu)或物理結(jié)構(gòu)發(fā)生變化后,必須對(duì)應(yīng)用程序做相應(yīng)的修改。,2

5、文件系統(tǒng)階段 20世紀(jì)50年代后期到60年代中期,硬件方面有了磁盤、磁鼓等直接存儲(chǔ)設(shè)備;軟件方面有了專門的數(shù)據(jù)管理軟件,一般為文件系統(tǒng);處理形式上不僅有了批處理,而且能聯(lián)機(jī)實(shí)時(shí)處理。所以,數(shù)據(jù)可以長期保存;可以由文件系統(tǒng)管理數(shù)據(jù),但是數(shù)據(jù)共享性仍然較差,冗余度大,數(shù)據(jù)的獨(dú)立性差。 3數(shù)據(jù)庫系統(tǒng)階段 20世紀(jì)60年代以來,計(jì)算機(jī)用于管理的規(guī)模越來越大,應(yīng)用越來越廣泛,硬件有了大容量磁盤,出現(xiàn)越來越多的系統(tǒng)軟件,并且出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng)數(shù)據(jù)庫系統(tǒng)。它采用復(fù)雜的數(shù)據(jù)模型結(jié)構(gòu);有較高的數(shù)據(jù)獨(dú)立性;可以提供方便的用戶接口;并能提供數(shù)據(jù)控制功能。,1.1.4 數(shù)據(jù)庫系統(tǒng)簡介 數(shù)據(jù)庫系統(tǒng)由三部分

6、組成:數(shù)據(jù)庫(DB)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)和數(shù)據(jù)庫應(yīng)用系統(tǒng),三部分之間的關(guān)系如圖1-1所示。 1數(shù)據(jù)庫(DataBase) 數(shù)據(jù)庫是用來存儲(chǔ)數(shù)據(jù)的,它是按一定結(jié)構(gòu)存儲(chǔ)在計(jì)算機(jī)中相互關(guān)聯(lián)的數(shù)據(jù)的集合。例如,可以將描述學(xué)生的姓名、年齡、性別、家庭住址、E-mail信箱等相關(guān)信息存儲(chǔ)在一個(gè)數(shù)據(jù)庫中;為了加強(qiáng)對(duì)圖書館的圖書管理,可以對(duì)每一本圖書進(jìn)行分類編號(hào),然后將描述圖書的編號(hào)、書名,作者、出版社、定價(jià)等相關(guān)信息存儲(chǔ)在一個(gè)數(shù)據(jù)庫中等。 數(shù)據(jù)庫中有兩類數(shù)據(jù),一類是用戶數(shù)據(jù),如“學(xué)生表”中每個(gè)學(xué)生的信息;一類是系統(tǒng)數(shù)據(jù),如“學(xué)生表”中的結(jié)構(gòu),系統(tǒng)數(shù)據(jù)又稱為數(shù)據(jù)字典。,圖1-1 數(shù)據(jù)庫系統(tǒng)的組成,2數(shù)

7、據(jù)庫管理系統(tǒng)DBMS(DataBase Management System) 數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一類通用的軟件系統(tǒng),它由一組計(jì)算機(jī)程序組成。數(shù)據(jù)庫管理系統(tǒng)能夠?qū)?shù)據(jù)庫進(jìn)行有效的管理,這其中包括存儲(chǔ)管理、安全性管理、完整性管理等,可以對(duì)數(shù)據(jù)庫進(jìn)行包括定義、查詢、更新以及各種控制等操作。數(shù)據(jù)庫管理系統(tǒng)是指在數(shù)據(jù)庫系統(tǒng)中對(duì)數(shù)據(jù)進(jìn)行管理的系統(tǒng)軟件。它是數(shù)據(jù)庫系統(tǒng)的核心組成部分,用戶能夠方便快捷地建立、維護(hù)、查詢、存取和處理數(shù)據(jù)庫中數(shù)據(jù)。例如,Microsoft Access 2002就是關(guān)系型桌面數(shù)據(jù)庫管理系統(tǒng)。,3數(shù)據(jù)庫應(yīng)用系統(tǒng) 數(shù)據(jù)庫應(yīng)用系統(tǒng)DBAS(Database App

8、lication Systems)是指數(shù)據(jù)庫應(yīng)用程序系統(tǒng),它是針對(duì)某一個(gè)實(shí)際應(yīng)用管理對(duì)象而進(jìn)行設(shè)計(jì)開發(fā)的面向用戶的軟件系統(tǒng)。它是建立在DBMS基礎(chǔ)之上,具有較好的人機(jī)交互操作性和友好的用戶界面。如學(xué)生管理系統(tǒng)、圖書館管理系統(tǒng)、民航售票系統(tǒng)等都是數(shù)據(jù)庫應(yīng)用系統(tǒng)。 數(shù)據(jù)庫應(yīng)用系統(tǒng)涉及系統(tǒng)開發(fā)人員、數(shù)據(jù)庫管理員和用戶。 (1)開發(fā)人員主要負(fù)責(zé)應(yīng)用系統(tǒng)的開發(fā)設(shè)計(jì)編程,并進(jìn)行調(diào)試和安裝。 (2)控制和管理數(shù)據(jù)庫的人員稱作數(shù)據(jù)庫管理員DBA(DataBase Administrator)。DBA負(fù)責(zé)整個(gè)數(shù)據(jù)庫系統(tǒng)的建立、管理、維護(hù)以及所有使用系統(tǒng)人員的協(xié)調(diào)工作等。 (3)用戶是應(yīng)用程序的使用者,他通過應(yīng)用

9、程序的用戶接口使用數(shù)據(jù)庫。,1.2 數(shù)據(jù)庫管理系統(tǒng),1.2.1 數(shù)據(jù)庫管理系統(tǒng)的基本功能 一般來說,一個(gè)數(shù)據(jù)庫管理系統(tǒng)應(yīng)具備以下功能: 1數(shù)據(jù)庫定義功能 它能定義數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)間的關(guān)系,更進(jìn)一步地定義數(shù)據(jù)的完整性。 2數(shù)據(jù)庫操作功能 實(shí)現(xiàn)對(duì)數(shù)據(jù)庫數(shù)據(jù)的基本操作,包括數(shù)據(jù)的增加、刪除、修改、數(shù)據(jù)庫的備份等。 3數(shù)據(jù)庫查詢功能 為用戶提供各種靈活的方式,來查詢數(shù)據(jù)庫內(nèi)的數(shù)據(jù)。,4數(shù)據(jù)庫控制功能 負(fù)責(zé)數(shù)據(jù)庫的安全性控制、完整性控制、多用戶環(huán)境下的存取控制等。 5數(shù)據(jù)庫通信功能 提供分布式數(shù)據(jù)庫或網(wǎng)絡(luò)操作功能,以便與網(wǎng)絡(luò)上的其他應(yīng)用軟件進(jìn)行關(guān)聯(lián)。 而數(shù)據(jù)庫管理員擁有完整的管理權(quán)限來進(jìn)行管理。,1

10、.2.2 數(shù)據(jù)庫管理系統(tǒng)的層次結(jié)構(gòu) 數(shù)據(jù)庫管理系統(tǒng)可以劃分為若干層次,這樣有助于它的設(shè)計(jì)和維護(hù)。如圖1-2所示是一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)的層次結(jié)構(gòu)示例。它根據(jù)處理對(duì)象的不同,按照最高級(jí)到最低級(jí)的次序來劃分,具有普遍性。圖中包括了與關(guān)系數(shù)據(jù)庫管理系統(tǒng)密切相關(guān)的應(yīng)用層和操作系統(tǒng)。 最上層是應(yīng)用層,位于DBMS核心之外。它處理的對(duì)象是各種各樣的數(shù)據(jù)庫應(yīng)用,可以用開發(fā)工具開發(fā)或者用宿主語言編寫。應(yīng)用程序利用DBMS提供的接口來完成事務(wù)處理和查詢處理。,圖1-2 RDBMS的層次結(jié)構(gòu),第2層是語言翻譯處理層。它處理的對(duì)象是數(shù)據(jù)庫語言,如SQL。其功能是對(duì)數(shù)據(jù)庫語言的各類語句進(jìn)行語法分析、視圖

11、轉(zhuǎn)換、授權(quán)檢查、完整性檢查和查詢優(yōu)化等。通過對(duì)下層基本模塊的調(diào)用,生成可執(zhí)行代碼。這些代碼的運(yùn)行即可完成數(shù)據(jù)庫語句的功能要求。向上提供的接口是單記錄操作。 第3層是數(shù)據(jù)存取層。該層處理的對(duì)象是單個(gè)元組。完成掃描(如表掃描)、排序、查找、插入、刪除和封鎖等基本操作,完成存取路徑維護(hù),并發(fā)控制和事務(wù)管理、安全控制等工作。向上提供的接口是單記錄操作。,第4層是數(shù)據(jù)存儲(chǔ)層。該層處理的對(duì)象是數(shù)據(jù)頁和系統(tǒng)緩沖區(qū)。執(zhí)行文件的邏輯打開、關(guān)閉,讀寫數(shù)據(jù)頁,完成緩沖區(qū)管理,內(nèi)外存交換和外存的數(shù)據(jù)管理等功能。 操作系統(tǒng)是DBMS的基礎(chǔ),它處理的對(duì)象是數(shù)據(jù)文件的物理塊,執(zhí)行物理文件的讀寫操作,保證DBMS對(duì)數(shù)據(jù)邏輯上

12、讀寫真實(shí)地映射到物理文件上。操作系統(tǒng)提供的存取原語和基本的存取方法通常作為和DBMS存儲(chǔ)層的接口。 這種DBMS層次結(jié)構(gòu)劃分的思想具有普遍性。但具體的系統(tǒng)在劃分細(xì)節(jié)上是多種多樣的,可以根據(jù)DBMS實(shí)現(xiàn)的環(huán)境和系統(tǒng)的規(guī)模靈活處理。,1.3 數(shù)據(jù)庫模型,目前,數(shù)據(jù)庫領(lǐng)域中最常用的數(shù)據(jù)模型有四種,層次模型,網(wǎng)狀模型,關(guān)系模型和面向?qū)ο竽P汀?1.3.1 數(shù)據(jù)模型的基本概念 1信息、數(shù)據(jù)和實(shí)體 信息是對(duì)客觀事物或抽象概念的描述。數(shù)據(jù)是表示信息的,是對(duì)客觀事物或抽象概念的符號(hào)化的描述??陀^存在并可相互區(qū)別的事物稱為實(shí)體。如一名學(xué)生、一本書、一個(gè)工程等。 2實(shí)體間的聯(lián)系 現(xiàn)實(shí)世界中的事物彼此之間是有關(guān)聯(lián)的

13、,任何一個(gè)實(shí)體都不是孤立存在的。也就是說,實(shí)體與實(shí)體之間是存在一定聯(lián)系的,實(shí)體與實(shí)體之間的聯(lián)系是比較復(fù)雜的,但抽象化后,可將實(shí)體與實(shí)體之間的聯(lián)系分為三類:,(1)一對(duì)一關(guān)系。如果有兩個(gè)實(shí)體的集合A和B,A中每一個(gè)實(shí)體最多與B中的一個(gè)實(shí)體有聯(lián)系,反過來,B中每一個(gè)實(shí)體最多與A中的一個(gè)實(shí)體有聯(lián)系,則稱實(shí)體集A和B之間是“一對(duì)一關(guān)系”。 這是最簡單的實(shí)體與實(shí)體之間的聯(lián)系?,F(xiàn)實(shí)世界中我們常會(huì)遇見。如實(shí)體集“學(xué)生班”和“班長”之間、“工程項(xiàng)目”和“項(xiàng)目負(fù)責(zé)人”之間就是“一對(duì)一關(guān)系”。 (2)一對(duì)多關(guān)系。如果有兩個(gè)實(shí)體的集合A和B,A中每一個(gè)實(shí)體與B中的一個(gè)或多個(gè)實(shí)體有聯(lián)系,反過來,B中每一個(gè)實(shí)體最多與A

14、中的一個(gè)實(shí)體有聯(lián)系,則稱實(shí)體集A和B之間是“一對(duì)多關(guān)系”。 例如,實(shí)體集“工程項(xiàng)目”和“工程參加者”之間、“學(xué)生班”和“學(xué)生”之間就是“一對(duì)多關(guān)系”。,(3)多對(duì)多關(guān)系。如果有兩個(gè)實(shí)體的集合A和B,A中每一個(gè)實(shí)體與B中的一個(gè)或多個(gè)實(shí)體有聯(lián)系,反過來,B中每一個(gè)實(shí)體與A中的一個(gè)或多個(gè)實(shí)體有聯(lián)系,則稱實(shí)體集A和B之間是“多對(duì)多關(guān)系”。 例如,實(shí)體集“圖書”和“借書人”之間、“學(xué)生”和“教師”之間就是“多對(duì)多關(guān)系”。 實(shí)際上,“一對(duì)一關(guān)系”是“一對(duì)多關(guān)系”的特例,“一對(duì)多關(guān)系”是“多對(duì)多關(guān)系”的特例。三者之間的關(guān)系如圖1-3所示。,圖1-3 各種實(shí)體之間關(guān)系的包含關(guān)系,1.3.2 非關(guān)系模型數(shù)據(jù)庫系

15、統(tǒng) 層次模型和網(wǎng)狀模型統(tǒng)稱為非關(guān)系模型。 1969年,美國的IBM公司研制了基于層次模型的數(shù)據(jù)庫管理系統(tǒng)IMS(Information Management System)。其特點(diǎn)是:數(shù)據(jù)按層次模型組織,如圖1-4所示。 20世紀(jì)60年代末70年代初,美國數(shù)據(jù)系統(tǒng)語言協(xié)商會(huì)CODASYL(Conference On Data System Language)下屬的數(shù)據(jù)庫任務(wù)組DBTG(Data Base Task Group)提出了若干報(bào)告,對(duì)網(wǎng)狀數(shù)據(jù)庫中的許多概念、方法和技術(shù)都進(jìn)行了詳細(xì)的說明。DBTG的方法是網(wǎng)狀數(shù)據(jù)庫的典型代表,奠定了網(wǎng)狀數(shù)據(jù)庫的基礎(chǔ)。其特點(diǎn)是:數(shù)據(jù)按網(wǎng)狀模型組織,如圖1

16、-5所示。,圖1-4 層次模型數(shù)據(jù)結(jié)構(gòu),圖1-5 網(wǎng)狀模型數(shù)據(jù)結(jié)構(gòu),非關(guān)系型數(shù)據(jù)庫系統(tǒng)在20世紀(jì)60年代末至20世紀(jì)80年代初非常流行,在數(shù)據(jù)庫系統(tǒng)產(chǎn)品中占據(jù)了主導(dǎo)地位,現(xiàn)在已逐漸被關(guān)系模型的數(shù)據(jù)庫系統(tǒng)所代替,但是在美國等一些國家里,由于早期開發(fā)的應(yīng)用系統(tǒng)都是基于層次數(shù)據(jù)庫或網(wǎng)狀數(shù)據(jù)庫系統(tǒng)的,因此目前仍有不少的層次數(shù)據(jù)庫或網(wǎng)狀數(shù)據(jù)庫在使用。 1層次模型 層次模型是數(shù)據(jù)庫系統(tǒng)最早的一種模型,它的數(shù)據(jù)結(jié)構(gòu)是一種樹型結(jié)構(gòu),這種樹型結(jié)構(gòu)由結(jié)點(diǎn)和有向連線組成,如圖1-1所示。層次模型中每個(gè)結(jié)點(diǎn)為一個(gè)記錄型,每個(gè)記錄可以有多個(gè)數(shù)據(jù)項(xiàng)組成,其描述一個(gè)實(shí)體的類型;結(jié)點(diǎn)之間的有向連線表示記錄之間的聯(lián)系。根據(jù)結(jié)點(diǎn)

17、所在的層次,上層結(jié)點(diǎn)稱為下層的雙親結(jié)點(diǎn);下層結(jié)點(diǎn)稱為上層結(jié)點(diǎn)的子女結(jié)點(diǎn);沒有雙親結(jié)點(diǎn)的結(jié)點(diǎn)稱為根結(jié)點(diǎn);沒有子女結(jié)點(diǎn)的結(jié)點(diǎn)稱為葉結(jié)點(diǎn)。記錄與記錄之間存在著一對(duì)一的關(guān)系和一對(duì)多的關(guān)系,如圖1-6所示。,圖1-6 層次模型中記錄與記錄之間的聯(lián)系,需要注意的是,層次模型樹型結(jié)構(gòu)的特點(diǎn)是,每棵樹有且僅有一個(gè)根結(jié)點(diǎn);除根結(jié)點(diǎn)以外,層次模型中的每個(gè)結(jié)點(diǎn)有且僅有一個(gè)雙親結(jié)點(diǎn);每個(gè)結(jié)點(diǎn)可以有0個(gè)或任意有限多個(gè)子結(jié)點(diǎn)。在圖1-4中,結(jié)點(diǎn)A是根結(jié)點(diǎn);結(jié)點(diǎn)E是結(jié)點(diǎn)F和G的父結(jié)點(diǎn);結(jié)點(diǎn)F和G是結(jié)點(diǎn)E的子結(jié)點(diǎn)。 2網(wǎng)狀模型 網(wǎng)狀模型基本結(jié)構(gòu)的是:有一個(gè)以上的結(jié)點(diǎn)無雙親結(jié)點(diǎn);至少有一個(gè)結(jié)點(diǎn)有多于一個(gè)的雙親。在圖1-5a中結(jié)

18、點(diǎn)A和B無雙親結(jié)點(diǎn);在圖1-5b中結(jié)點(diǎn)C和D均有兩個(gè)雙親結(jié)點(diǎn)A和B。記錄與記錄之間不僅存在著一對(duì)一的關(guān)系和一對(duì)多的關(guān)系,而且還存在著多對(duì)多的關(guān)系,如圖1-7所示。,圖1-7 網(wǎng)狀模型中記錄之間的多對(duì)多聯(lián)系,1.3.3 關(guān)系型模型數(shù)據(jù)庫系統(tǒng) 20世紀(jì)70年代中期,商品化的關(guān)系型數(shù)據(jù)庫系統(tǒng)開始問世。80年代初出現(xiàn)了一批商品化的基于關(guān)系型數(shù)據(jù)模型而建立的關(guān)系型數(shù)據(jù)庫系統(tǒng)。如SQL/DS,DB2,Oracle和INFORMIN等?,F(xiàn)在微機(jī)上使用的數(shù)據(jù)庫系統(tǒng)幾乎都是關(guān)系型數(shù)據(jù)庫系統(tǒng)。 1970年美國IBM公司San Jose研究實(shí)驗(yàn)室的研究員E.F.Cord發(fā)表了題為“大型共享數(shù)據(jù)庫數(shù)據(jù)的關(guān)系模型”的論

19、文,提出了關(guān)系模型的理論,為關(guān)系數(shù)據(jù)庫技術(shù)奠定了理論基礎(chǔ)。關(guān)系模型的特點(diǎn):數(shù)據(jù)按二維表格組織,如表1-1所示。,表1-1 課程表,關(guān)系模型是最重要的一種模型。關(guān)系模型的特點(diǎn)是用一組二維表來表示數(shù)據(jù)和數(shù)據(jù)之間的聯(lián)系。二維表結(jié)構(gòu)簡單、直觀。目前,關(guān)系數(shù)據(jù)庫在數(shù)據(jù)庫管理領(lǐng)域占主導(dǎo)地位。 每一張二維表組成一個(gè)關(guān)系,一個(gè)關(guān)系有一個(gè)關(guān)系名。一個(gè)關(guān)系由表頭和記錄數(shù)據(jù)兩部分組成,表頭由描述客觀世界中的實(shí)體的各個(gè)屬性(也稱數(shù)據(jù)項(xiàng)或字段)組成,表的每一列為一個(gè)字段,表頭由每一個(gè)字段的字段名構(gòu)成。表的每一行稱為一條記錄,它對(duì)應(yīng)客觀世界中的一個(gè)實(shí)體,每條記錄的數(shù)據(jù)由實(shí)體在各個(gè)字段的值組成。能夠區(qū)分任意兩條記錄的字段或

20、字段的集合稱為關(guān)鍵字段。,圖1-8 表與表之間的關(guān)系,表與表之間通過關(guān)鍵字段建立起一對(duì)一的關(guān)系、一對(duì)多的關(guān)系和多對(duì)多的關(guān)系,如圖1-8所示。,一個(gè)關(guān)系應(yīng)該具有以下性質(zhì): (1)一個(gè)關(guān)系中每列的數(shù)據(jù)類型是相同的,而且是不可再分的數(shù)據(jù)項(xiàng)。 (2)一個(gè)關(guān)系中不可以有重名的兩個(gè)字段。 (3)一個(gè)關(guān)系中不可以有完全相同的兩條記錄。 (4)一個(gè)關(guān)系中的任意兩行或任意兩列均可以交換。,1.3.4 面向?qū)ο髷?shù)據(jù)庫系統(tǒng) 面向?qū)ο髷?shù)據(jù)庫系統(tǒng)是數(shù)據(jù)庫技術(shù)與面向?qū)ο蟪绦蛟O(shè)計(jì)方法相結(jié)合的產(chǎn)物。對(duì)數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì),從原有的按模塊化程序設(shè)計(jì)轉(zhuǎn)變?yōu)槊嫦驅(qū)ο蟮臄?shù)據(jù)庫系統(tǒng)設(shè)計(jì)。 傳統(tǒng)的數(shù)據(jù)庫只能存儲(chǔ)文本信息,隨著多媒體應(yīng)用的

21、擴(kuò)大,人們希望數(shù)據(jù)庫不僅能夠存儲(chǔ)文本信息還要具有存儲(chǔ)多媒體數(shù)據(jù)(如聲音、圖形等)的能力。20世紀(jì)80年代中期以來,出現(xiàn)了一些商品化的面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng),如SQL/DS,DB2,Oracle,INFORMIN,Unify和DBASE等。 面向?qū)ο蟮臄?shù)據(jù)模型是80年代后期的一個(gè)重要趨勢(shì)。80年代后期,為了適應(yīng)新的數(shù)據(jù)庫應(yīng)用,例如計(jì)算機(jī)輔助設(shè)計(jì)、軟件工程等,人們開展了面向?qū)ο蟮臄?shù)據(jù)模型和數(shù)據(jù)庫管理系統(tǒng)的研究。面向?qū)ο蟮臄?shù)據(jù)模型和面向?qū)ο蟮臄?shù)據(jù)庫管理系統(tǒng)至今仍然是熱門的數(shù)據(jù)庫研究領(lǐng)域之一。,1.4 關(guān)系數(shù)據(jù)庫的設(shè)計(jì),數(shù)據(jù)庫的應(yīng)用越來越廣泛,從小型的單項(xiàng)事務(wù)處理系統(tǒng)到大型復(fù)雜的信息系統(tǒng),都采用先進(jìn)的

22、數(shù)據(jù)庫技術(shù)來保持系統(tǒng)數(shù)據(jù)的整體性、完整性和共享性。目前,一個(gè)國家的數(shù)據(jù)庫建設(shè)規(guī)模(數(shù)據(jù)庫的個(gè)數(shù)、種類)、數(shù)據(jù)庫信息量的大小和使用頻度已成為衡量一個(gè)國家信息化程度的重要標(biāo)志之一。 數(shù)據(jù)庫設(shè)計(jì)是建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的技術(shù),是信息系統(tǒng)開發(fā)和建設(shè)中的核心技術(shù)。具體來說,數(shù)據(jù)庫設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲(chǔ)數(shù)據(jù),滿足各種用戶的應(yīng)用需求(信息要求和處理要求)。這個(gè)問題是數(shù)據(jù)庫在應(yīng)用領(lǐng)域的主要研究課題。,1.4.1 數(shù)據(jù)庫設(shè)計(jì)方法 數(shù)據(jù)庫設(shè)計(jì)通常是在一個(gè)通用的DBMS的支持下進(jìn)行的,即利用現(xiàn)成的DBMS作為開發(fā)工具。由于數(shù)據(jù)庫中的數(shù)據(jù)要供不

23、同的應(yīng)用程序使用,實(shí)現(xiàn)數(shù)據(jù)共享,所以數(shù)據(jù)庫的設(shè)計(jì)在開發(fā)中就成為獨(dú)立開發(fā)活動(dòng),而且是在設(shè)計(jì)應(yīng)用程序之前進(jìn)行。 數(shù)據(jù)庫設(shè)計(jì)主要是指確定數(shù)據(jù)庫的模型。關(guān)系型數(shù)據(jù)庫的設(shè)計(jì)可以運(yùn)用“關(guān)系規(guī)范化”理論作為指導(dǎo),對(duì)組成數(shù)據(jù)庫的各個(gè)二維表的結(jié)構(gòu)進(jìn)行設(shè)計(jì)。 數(shù)據(jù)庫設(shè)計(jì)方法中比較著名的方法有新奧爾良(New Orleans)方法。它的設(shè)計(jì)思想是,將數(shù)據(jù)庫設(shè)計(jì)分為四個(gè)階段:需求分析(分析用戶要求),概念設(shè)計(jì)(信息分析和定義),邏輯設(shè)計(jì)(設(shè)計(jì)實(shí)現(xiàn))和物理設(shè)計(jì)(物理數(shù)據(jù)庫設(shè)計(jì)),如圖1-9所示。,圖1-9 新奧爾良方法的數(shù)據(jù)庫設(shè)計(jì)步驟,此后,S.B.Yao等又將數(shù)據(jù)庫設(shè)計(jì)分為五個(gè)步驟。后來I.R.Plamer等又主張將

24、數(shù)據(jù)庫設(shè)計(jì)當(dāng)成一步接一步的過程,并采用一些輔助手段實(shí)現(xiàn)每一個(gè)過程。 基于E-R模型的數(shù)據(jù)庫設(shè)計(jì)方法,或是基于3NF(第三范式)的設(shè)計(jì)方法,或是基于抽象語法規(guī)范的設(shè)計(jì)方法等,都是在數(shù)據(jù)庫設(shè)計(jì)的不同階段上支持實(shí)現(xiàn)的具體技術(shù)和方法。 規(guī)范設(shè)計(jì)的基本思想是過程迭代和逐步求精。,1.4.2 數(shù)據(jù)庫設(shè)計(jì)的基本步驟 按照規(guī)范化設(shè)計(jì)的方法,考慮到數(shù)據(jù)庫及其應(yīng)用系統(tǒng)開發(fā)全過程,數(shù)據(jù)庫設(shè)計(jì)可以分為以下六個(gè)階段。 1需求分析階段 進(jìn)行數(shù)據(jù)庫設(shè)計(jì)之前,需要詳細(xì)了解用戶需求,采集和分析有關(guān)資料和數(shù)據(jù)。需求分析是整個(gè)設(shè)計(jì)的基礎(chǔ),同時(shí)也是最困難、耗時(shí)耗力的工作。它需要系統(tǒng)分析人員和用戶之間進(jìn)行反復(fù)密切的接觸和協(xié)商才能完成的

25、一項(xiàng)工作。需求分析結(jié)果是否能夠做到完整、準(zhǔn)確、全面地表述用戶的需求直接影響著數(shù)據(jù)庫的設(shè)計(jì)質(zhì)量。需求分析做得不好,甚至能夠?qū)е抡麄€(gè)數(shù)據(jù)庫設(shè)計(jì)返工重做。 2概念設(shè)計(jì)階段 概念設(shè)計(jì)是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵,它通過對(duì)用戶需求進(jìn)行綜合、歸納和抽象,形成一個(gè)獨(dú)立于具體的數(shù)據(jù)庫管理系統(tǒng)的概念模型。,3邏輯設(shè)計(jì)階段 選擇適宜的數(shù)據(jù)模型來描述數(shù)據(jù)和功能,對(duì)數(shù)據(jù)庫數(shù)據(jù)和功能分析有著重大的影響。邏輯設(shè)計(jì)是將概念模型轉(zhuǎn)換為某個(gè)數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型,同時(shí)對(duì)其進(jìn)行綜合、細(xì)化,以得到優(yōu)化的數(shù)據(jù)模型。 4物理設(shè)計(jì)階段 數(shù)據(jù)庫物理設(shè)計(jì)階段是為邏輯數(shù)據(jù)模型選取一個(gè)最為合適的物理存儲(chǔ)結(jié)構(gòu)。物理存儲(chǔ)結(jié)構(gòu)的選取影響著數(shù)據(jù)庫的操

26、作效率、響應(yīng)時(shí)間和物理空間利用率。 5數(shù)據(jù)庫實(shí)施階段 在此階段,設(shè)計(jì)人員運(yùn)用DBMS提供的數(shù)據(jù)語言及其宿主語言,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進(jìn)行試運(yùn)行。 6數(shù)據(jù)庫運(yùn)行和維護(hù)階段 數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)過試運(yùn)行后即可投入正式運(yùn)行。在數(shù)據(jù)庫系統(tǒng)運(yùn)行過程中必須不斷地對(duì)其進(jìn)行評(píng)價(jià)、調(diào)整與修改。,一個(gè)數(shù)據(jù)庫應(yīng)用系統(tǒng)所使用的數(shù)據(jù)有兩種不同的觀察角度。一種觀點(diǎn)是從數(shù)據(jù)的描述出發(fā),主要是指數(shù)據(jù)的收集、數(shù)據(jù)庫的建立以及數(shù)據(jù)庫的維護(hù)。另一種觀點(diǎn)是從數(shù)據(jù)的使用出發(fā),比如用戶對(duì)數(shù)據(jù)查詢、統(tǒng)計(jì)、打印報(bào)表等的要求。 【例】 從數(shù)據(jù)使用出發(fā),做一個(gè)比較適合于小型的數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)

27、計(jì)。 其開發(fā)過程如圖1-10所示。 (1)需求分析。因?yàn)檐浖_發(fā)人員對(duì)計(jì)算機(jī)比較熟悉,對(duì)具體業(yè)務(wù)并不熟悉,而用戶則恰恰相反。 所以,對(duì)于同一個(gè)問題的理解,用戶和開發(fā)人員可能存在很大差異。因此,在這一階段開發(fā)人員需要和用戶以及用戶領(lǐng)域的專家進(jìn)行勾通,統(tǒng)一認(rèn)識(shí),確定系統(tǒng)的功能、性能、數(shù)據(jù)、界面等要求。需求分析階段實(shí)際上包含對(duì)處理數(shù)據(jù)的分析和對(duì)用戶所希望的軟件功能的分析兩個(gè)方面。,圖1-10 數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計(jì)的基本過程,(2)數(shù)據(jù)庫設(shè)計(jì)。如何將要處理的數(shù)據(jù)信息以數(shù)據(jù)庫的形式存儲(chǔ)?這一階段主要是對(duì)數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計(jì)。合理的數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計(jì)直接關(guān)系到整個(gè)應(yīng)用系統(tǒng)的設(shè)計(jì)工作。 (3)應(yīng)用軟件設(shè)計(jì)。應(yīng)用軟件設(shè)計(jì)需要首先確定軟件設(shè)計(jì)的總體結(jié)構(gòu),然后再對(duì)組成總體結(jié)構(gòu)的每一個(gè)模塊進(jìn)行具體的編碼設(shè)計(jì),最后進(jìn)行編碼的測試工作。 (4)功能的測試。軟件原型形成后,需要按照用戶的需求檢測軟件的功能,如果還有不完善的地方,則需要回溯到數(shù)據(jù)庫設(shè)計(jì)階段進(jìn)行修改,直到應(yīng)用軟件的設(shè)計(jì)滿足用戶的需求為止。此時(shí),設(shè)計(jì)工作便可以進(jìn)入軟件的運(yùn)行與維護(hù)階段。 (5)系統(tǒng)運(yùn)行與維護(hù)。開發(fā)完一個(gè)軟件產(chǎn)品投入使用后,常常由于各種原因需要對(duì)其作適當(dāng)?shù)男薷摹T谲浖到y(tǒng)的運(yùn)行期間對(duì)其進(jìn)行調(diào)整和修改,以改正在開發(fā)階段產(chǎn)生,在測試階段又沒有發(fā)現(xiàn)的錯(cuò)誤,實(shí)現(xiàn)軟件功能的擴(kuò)充、性能的改善、使軟件適應(yīng)新的工作環(huán)

溫馨提示

  • 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)論