項(xiàng)目1 數(shù)據(jù)庫(kù)基礎(chǔ)_第1頁(yè)
項(xiàng)目1 數(shù)據(jù)庫(kù)基礎(chǔ)_第2頁(yè)
項(xiàng)目1 數(shù)據(jù)庫(kù)基礎(chǔ)_第3頁(yè)
項(xiàng)目1 數(shù)據(jù)庫(kù)基礎(chǔ)_第4頁(yè)
項(xiàng)目1 數(shù)據(jù)庫(kù)基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)基礎(chǔ)項(xiàng)目1【能力目標(biāo)】掌握數(shù)據(jù)庫(kù)的發(fā)展階段和存儲(chǔ)結(jié)構(gòu)。掌握數(shù)據(jù)庫(kù)的設(shè)計(jì)方法。掌握數(shù)據(jù)模型的概念和分類(lèi)。【素養(yǎng)目標(biāo)】培養(yǎng)科學(xué)思維方法,加強(qiáng)規(guī)范化意識(shí),提升專(zhuān)業(yè)技能,提高創(chuàng)新思維能力。目標(biāo)學(xué)習(xí)導(dǎo)航圖1-1項(xiàng)目1所講內(nèi)容在數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)中的位置認(rèn)識(shí)數(shù)據(jù)庫(kù)1.11.1.1了解數(shù)據(jù)庫(kù)的發(fā)展階段最早的計(jì)算機(jī)主要應(yīng)用于軍事和科學(xué)研究領(lǐng)域,隨著計(jì)算機(jī)理論研究的深入和計(jì)算機(jī)技術(shù)的發(fā)展,從20世紀(jì)50年代開(kāi)始,計(jì)算機(jī)的主要應(yīng)用逐漸變?yōu)橐话愕臄?shù)據(jù)及事務(wù)處理。伴隨著這種轉(zhuǎn)變的逐漸深入,以數(shù)據(jù)處理為核心的數(shù)據(jù)庫(kù)技術(shù)隨之發(fā)展并成熟起來(lái),成為計(jì)算機(jī)科學(xué)技術(shù)中應(yīng)用最為廣泛和最為重要的技術(shù)之一。所謂數(shù)據(jù)處理,就是從已有數(shù)據(jù)出發(fā),經(jīng)過(guò)適當(dāng)加工、處理得到新的所需數(shù)據(jù)的過(guò)程。數(shù)據(jù)處理一般分為數(shù)據(jù)計(jì)算和數(shù)據(jù)管理兩部分。數(shù)據(jù)計(jì)算相對(duì)簡(jiǎn)單,數(shù)據(jù)管理卻比較復(fù)雜,是數(shù)據(jù)處理過(guò)程的主要內(nèi)容與核心部分。一般認(rèn)為,數(shù)據(jù)管理主要是指數(shù)據(jù)的收集、整理、組織、存儲(chǔ)、維護(hù)、檢索和傳送等操作。從數(shù)據(jù)管理的角度來(lái)看,計(jì)算機(jī)數(shù)據(jù)處理技術(shù)經(jīng)歷了如下3個(gè)階段:人工管理階段文件系統(tǒng)階段數(shù)據(jù)庫(kù)系統(tǒng)階段1.1.1了解數(shù)據(jù)庫(kù)的發(fā)展階段1.人工管理階段人工管理階段是計(jì)算機(jī)數(shù)據(jù)管理的初級(jí)階段,特征如下。(1)數(shù)據(jù)不保存由于主要用于科學(xué)計(jì)算,所以一般不需要將數(shù)據(jù)長(zhǎng)期保存。計(jì)算某一課題時(shí)將數(shù)據(jù)輸入,計(jì)算完畢就將數(shù)據(jù)撤走,用戶(hù)提供的數(shù)據(jù)是如此處理的,系統(tǒng)軟件運(yùn)行過(guò)程中產(chǎn)生的數(shù)據(jù)也是這樣處理的。(2)應(yīng)用程序管理數(shù)據(jù)由于沒(méi)有相應(yīng)軟件系統(tǒng)完成數(shù)據(jù)的管理工作,所以應(yīng)用程序不僅要規(guī)定好數(shù)據(jù)的邏輯結(jié)構(gòu),還要規(guī)定數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)、存取方法、輸入方式、地址分配等。(3)數(shù)據(jù)無(wú)共享數(shù)據(jù)是面向程序的,數(shù)據(jù)由應(yīng)用程序自行攜帶,一組數(shù)據(jù)只能對(duì)應(yīng)一個(gè)應(yīng)用程序,很難實(shí)現(xiàn)多個(gè)應(yīng)用程序共享數(shù)據(jù)資源,這就使應(yīng)用程序嚴(yán)重依賴(lài)數(shù)據(jù)。一個(gè)應(yīng)用程序攜帶的數(shù)據(jù),在應(yīng)用程序運(yùn)行結(jié)束后就連同該應(yīng)用程序一起退出計(jì)算機(jī)系統(tǒng)。如果別的應(yīng)用程序想使用該應(yīng)用程序的數(shù)據(jù),則只能重新組織攜帶,因此應(yīng)用程序之間有大量的冗余數(shù)據(jù)。1.1.1了解數(shù)據(jù)庫(kù)的發(fā)展階段(4)數(shù)據(jù)不獨(dú)立由于應(yīng)用程序只負(fù)責(zé)管理數(shù)據(jù),所以數(shù)據(jù)與程序不具有獨(dú)立性。如果數(shù)據(jù)的類(lèi)型、格式、存取方法或輸入/輸出方式等邏輯結(jié)構(gòu)或物理結(jié)構(gòu)發(fā)生變化,就必須對(duì)應(yīng)用程序做出相應(yīng)的修改,程序員負(fù)擔(dān)相當(dāng)重。人工管理階段應(yīng)用程序與數(shù)據(jù)集之間的對(duì)應(yīng)關(guān)系如圖1-2所示。圖1-2

人工管理階段應(yīng)用程序與數(shù)據(jù)集之間的對(duì)應(yīng)關(guān)系1.1.1了解數(shù)據(jù)庫(kù)的發(fā)展階段2.文件系統(tǒng)階段20世紀(jì)50年代后期至20世紀(jì)60年代中期,隨著計(jì)算機(jī)軟硬件的發(fā)展,出現(xiàn)了文件系統(tǒng),其負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行管理。(1)文件系統(tǒng)階段的特點(diǎn)①數(shù)據(jù)可以長(zhǎng)期保存。數(shù)據(jù)以文件的形式存儲(chǔ)在計(jì)算機(jī)的直接存儲(chǔ)設(shè)備中,可長(zhǎng)期保存并反復(fù)使用。用戶(hù)可隨時(shí)對(duì)文件進(jìn)行查詢(xún)、修改、插入和刪除等操作。②由文件系統(tǒng)管理數(shù)據(jù)。由專(zhuān)門(mén)的軟件(即文件系統(tǒng))進(jìn)行數(shù)據(jù)管理,文件系統(tǒng)把數(shù)據(jù)組織成相互獨(dú)立的數(shù)據(jù)文件,利用“按文件名訪(fǎng)問(wèn),按記錄進(jìn)行存取”的管理技術(shù),提供了對(duì)文件進(jìn)行打開(kāi)與關(guān)閉、對(duì)記錄進(jìn)行讀取和寫(xiě)入的操作。程序員只需與文件名打交道,不必明確數(shù)據(jù)的物理存儲(chǔ),大大減輕了程序員的負(fù)擔(dān)。1.1.1了解數(shù)據(jù)庫(kù)的發(fā)展階段(2)文件系統(tǒng)階段存在的問(wèn)題文件系統(tǒng)階段對(duì)數(shù)據(jù)的管理有了巨大進(jìn)步,但一些根本問(wèn)題仍沒(méi)有徹底解決,具體如下。①數(shù)據(jù)共享性差,冗余度大。在文件系統(tǒng)中,一個(gè)(或一組)文件基本上對(duì)應(yīng)一個(gè)應(yīng)用程序,即文件仍然是面向應(yīng)用程序的。當(dāng)不同的應(yīng)用程序具有部分相同的數(shù)據(jù)時(shí),也必須建立各自的文件,而不能共享相同的數(shù)據(jù),因此數(shù)據(jù)冗余度大,浪費(fèi)存儲(chǔ)空間。②數(shù)據(jù)獨(dú)立性差。文件系統(tǒng)中的文件是為某一特定的應(yīng)用程序服務(wù)的,文件的邏輯結(jié)構(gòu)是針對(duì)具體的應(yīng)用程序來(lái)設(shè)計(jì)和優(yōu)化的,因此文件中的數(shù)據(jù)要再被一些新的應(yīng)用程序使用會(huì)很困難。1.1.1了解數(shù)據(jù)庫(kù)的發(fā)展階段③數(shù)據(jù)一致性差。由于相同數(shù)據(jù)的重復(fù)存儲(chǔ)、各自管理,在進(jìn)行更新操作時(shí),容易造成數(shù)據(jù)的不一致,給數(shù)據(jù)的修改和維護(hù)帶來(lái)困難。文件系統(tǒng)階段應(yīng)用程序與文件之間的對(duì)應(yīng)關(guān)系如圖1-3所示。圖1-3

文件系統(tǒng)階段應(yīng)用程序與文件之間的對(duì)應(yīng)關(guān)系1.1.1了解數(shù)據(jù)庫(kù)的發(fā)展階段3.?dāng)?shù)據(jù)庫(kù)系統(tǒng)階段20世紀(jì)60年代后期以來(lái),計(jì)算機(jī)管理的對(duì)象規(guī)模越來(lái)越大,應(yīng)用范圍越來(lái)越廣泛,數(shù)據(jù)量急劇增加,同時(shí),多種應(yīng)用、多種語(yǔ)言互相覆蓋的共享集合的需求越來(lái)越強(qiáng)烈。在這種背景下,將文件系統(tǒng)作為數(shù)據(jù)管理手段已經(jīng)不能滿(mǎn)足需求,為了解決多用戶(hù)、多應(yīng)用程序共享數(shù)據(jù)的要求,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專(zhuān)門(mén)軟件系統(tǒng)——數(shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagementSystem,DBMS)。數(shù)據(jù)庫(kù)是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)、有組織、可共享的大量數(shù)據(jù)的集合。它可以供不同用戶(hù)共享,具有最小冗余度和較高的數(shù)據(jù)獨(dú)立性。DBMS在數(shù)據(jù)庫(kù)建立、運(yùn)用和維護(hù)時(shí)對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一控制,以保證數(shù)據(jù)的安全性和完整性,并且在多用戶(hù)同時(shí)使用數(shù)據(jù)庫(kù)時(shí)可以進(jìn)行并發(fā)控制,以及在發(fā)生故障后對(duì)數(shù)據(jù)庫(kù)進(jìn)行恢復(fù)。1.1.1了解數(shù)據(jù)庫(kù)的發(fā)展階段(1)數(shù)據(jù)庫(kù)管理技術(shù)的突破數(shù)據(jù)庫(kù)管理技術(shù)進(jìn)入新時(shí)代離不開(kāi)里程碑式的技術(shù)突破,以下3件大事為數(shù)據(jù)庫(kù)技術(shù)的突破奠定了基礎(chǔ)。①1968年,美國(guó)IBM公司推出了世界上第一個(gè)基于層次模型的大型商用DBMS——信息管理系統(tǒng)(InformationManagementSystem,IMS)。②1969年,美國(guó)數(shù)據(jù)系統(tǒng)語(yǔ)言協(xié)會(huì)(ConferenceonDataSystemLanguage,CODASYL)下屬的數(shù)據(jù)庫(kù)任務(wù)組(DatabaseTaskGroup,DBTG)提出了基于網(wǎng)狀模型的數(shù)據(jù)庫(kù)任務(wù)組系統(tǒng)。③1970年,美國(guó)IBM公司的高級(jí)研究員科德(E.F.Codd)發(fā)表論文提出關(guān)系模型,此模型奠定了關(guān)系數(shù)據(jù)庫(kù)的理論基礎(chǔ)。(2)數(shù)據(jù)庫(kù)系統(tǒng)階段的特點(diǎn)與人工管理階段和文件系統(tǒng)階段相比,數(shù)據(jù)庫(kù)系統(tǒng)階段主要有如下特點(diǎn)。①數(shù)據(jù)高度結(jié)構(gòu)化。數(shù)據(jù)結(jié)構(gòu)化是數(shù)據(jù)庫(kù)系統(tǒng)與文件管理系統(tǒng)的根本區(qū)別。數(shù)據(jù)庫(kù)系統(tǒng)不僅會(huì)考慮數(shù)據(jù)項(xiàng)之間的聯(lián)系,還會(huì)考慮數(shù)據(jù)類(lèi)型之間的聯(lián)系。在數(shù)據(jù)庫(kù)系統(tǒng)中,不僅數(shù)據(jù)內(nèi)部具有結(jié)構(gòu)化特征,數(shù)據(jù)整體也是結(jié)構(gòu)化的,即數(shù)據(jù)之間是有聯(lián)系的。1.1.1了解數(shù)據(jù)庫(kù)的發(fā)展階段②

數(shù)據(jù)的共享性高、冗余度小,易于擴(kuò)充。。數(shù)據(jù)庫(kù)中的數(shù)據(jù)是高度共享的,數(shù)據(jù)不再只是面向某個(gè)單獨(dú)的應(yīng)用,是面向整個(gè)系統(tǒng)。也就是說(shuō),同一個(gè)用戶(hù)可以因不同的應(yīng)用目的訪(fǎng)問(wèn)同一數(shù)據(jù);不同用戶(hù)可以同時(shí)訪(fǎng)問(wèn)同一數(shù)據(jù),即“并發(fā)訪(fǎng)問(wèn)”。③數(shù)據(jù)獨(dú)立性高。用戶(hù)只需關(guān)注數(shù)據(jù)庫(kù)名、數(shù)據(jù)文件名和文件中的屬性名等邏輯概念,而不用過(guò)多考慮數(shù)據(jù)的實(shí)際物理存儲(chǔ),也就是不需要關(guān)心實(shí)際數(shù)據(jù)究竟存儲(chǔ)在磁盤(pán)的什么位置。更準(zhǔn)確地說(shuō),數(shù)據(jù)庫(kù)系統(tǒng)同時(shí)具有物理獨(dú)立性與邏輯獨(dú)立性。物理獨(dú)立性是指改變數(shù)據(jù)庫(kù)物理結(jié)構(gòu)時(shí)不必修改現(xiàn)有的應(yīng)用程序。數(shù)據(jù)在磁盤(pán)上的存儲(chǔ)方式由DBMS管理,應(yīng)用程序無(wú)須了解,即當(dāng)數(shù)據(jù)的物理存儲(chǔ)方式改變時(shí),應(yīng)用程序不用改變。邏輯獨(dú)立性是指邏輯數(shù)據(jù)獨(dú)立性,是指改變數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)時(shí)不用改變應(yīng)用程序。用戶(hù)的應(yīng)用程序與數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)是相互獨(dú)立的,即當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),應(yīng)用程序可以不變。DBMS提供的二級(jí)映像功能保證了數(shù)據(jù)獨(dú)立性,相關(guān)內(nèi)容將在后面的項(xiàng)目中進(jìn)行討論。1.1.1了解數(shù)據(jù)庫(kù)的發(fā)展階段④數(shù)據(jù)安全性和正確性高。數(shù)據(jù)庫(kù)的共享會(huì)為數(shù)據(jù)庫(kù)帶來(lái)安全隱患,并且數(shù)據(jù)庫(kù)的共享具有并發(fā)的特征,即多個(gè)用戶(hù)能夠同時(shí)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行存取,甚至可以同時(shí)存取數(shù)據(jù)庫(kù)中的同一個(gè)數(shù)據(jù),這可能會(huì)存在用戶(hù)操作相互干擾的隱患。因此,需要一組軟件提供相應(yīng)的工具對(duì)數(shù)據(jù)進(jìn)行管理和控制,使用DBMS可以達(dá)到保證數(shù)據(jù)的安全性和正確性的基本要求。數(shù)據(jù)庫(kù)系統(tǒng)階段應(yīng)用程序與數(shù)據(jù)庫(kù)之間的對(duì)應(yīng)關(guān)系如圖1-4所示。圖1-4

數(shù)據(jù)庫(kù)系統(tǒng)階段應(yīng)用程序與數(shù)據(jù)庫(kù)之間的對(duì)應(yīng)關(guān)系

1.1.2熟悉數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)1.?dāng)?shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)是數(shù)據(jù)庫(kù)領(lǐng)域公認(rèn)的標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)體系結(jié)構(gòu),它包括模式、外模式和內(nèi)模式。三級(jí)模式結(jié)構(gòu)可以有效地組織和管理數(shù)據(jù),并使數(shù)據(jù)庫(kù)的邏輯獨(dú)立性和物理獨(dú)立性得到提高。數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)如圖1-5所示。圖1-5

數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)

1.1.2熟悉數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)(1)模式模式又稱(chēng)邏輯模式、概念模式,是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶(hù)的公共數(shù)據(jù)視圖。它在數(shù)據(jù)庫(kù)三級(jí)模式結(jié)構(gòu)中處于中間層,既與數(shù)據(jù)的物理存儲(chǔ)具體位置和硬件環(huán)境無(wú)關(guān),也不涉及具體的應(yīng)用程序、所使用的應(yīng)用開(kāi)發(fā)工具,以及高級(jí)程序設(shè)計(jì)語(yǔ)言。(2)外模式外模式又稱(chēng)子模式或用戶(hù)模式,它是模式的一個(gè)子集,這個(gè)子集是被某些特定用戶(hù)所使用的。從這個(gè)角度看,外模式是面向用戶(hù)的。本質(zhì)上,外模式描述了應(yīng)用程序所使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征,是數(shù)據(jù)庫(kù)用戶(hù)(包括應(yīng)用程序員和最終用戶(hù))所看到的數(shù)據(jù)視圖。(3)內(nèi)模式內(nèi)模式又稱(chēng)存儲(chǔ)模式,對(duì)應(yīng)于物理級(jí)。它是全體數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表示方式,是數(shù)據(jù)庫(kù)最底層的邏輯描述。它記錄了數(shù)據(jù)在存儲(chǔ)介質(zhì)上的存儲(chǔ)方式(如順序存儲(chǔ)、按照B樹(shù)結(jié)構(gòu)存儲(chǔ)或按哈希方法存儲(chǔ))、索引的組織方式、數(shù)據(jù)是否壓縮存儲(chǔ)、數(shù)據(jù)是否加密、數(shù)據(jù)存儲(chǔ)記錄結(jié)構(gòu)的規(guī)定等,對(duì)應(yīng)著實(shí)際存儲(chǔ)在外存儲(chǔ)介質(zhì)上的數(shù)據(jù)庫(kù)。

1.1.2熟悉數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)2.?dāng)?shù)據(jù)庫(kù)的二級(jí)映像與數(shù)據(jù)庫(kù)獨(dú)立性數(shù)據(jù)庫(kù)的三級(jí)模式是對(duì)數(shù)據(jù)的3個(gè)級(jí)別抽象。它把數(shù)據(jù)的具體組織(即物理模式)留給DBMS管理,使用戶(hù)無(wú)須關(guān)心數(shù)據(jù)在計(jì)算機(jī)內(nèi)部的存儲(chǔ)方式。同時(shí),為了建立3個(gè)抽象級(jí)的聯(lián)系與轉(zhuǎn)換,使模式與外模式雖然并不存在于計(jì)算機(jī)的外存中,但也能通過(guò)轉(zhuǎn)換獲得其存在的實(shí)體,DBMS在這3個(gè)模式之間建立了二級(jí)映像:外模式/模式映像和模式/內(nèi)模式映像。(1)外模式/模式映像模式描述了數(shù)據(jù)的全局邏輯結(jié)構(gòu),外模式描述了數(shù)據(jù)的局部邏輯結(jié)構(gòu)。同一個(gè)模式可以存在任意多個(gè)外模式。每一個(gè)外模式都對(duì)應(yīng)一個(gè)外模式/模式映像,它定義了該外模式與模式之間的對(duì)應(yīng)關(guān)系,外模式的描述中通常包含了這些映像的定義。當(dāng)模式發(fā)生改變(如在原有記錄類(lèi)型之間增加新的聯(lián)系、在某些記錄中增加新的數(shù)據(jù)項(xiàng)等)時(shí),數(shù)據(jù)庫(kù)管理員可以通過(guò)改變有關(guān)的外模式/模式映像,使外模式保持不變。應(yīng)用程序是根據(jù)數(shù)據(jù)的外模式編寫(xiě)的,因此應(yīng)用程序也無(wú)須發(fā)生改變,從而保證了數(shù)據(jù)與應(yīng)用程序的邏輯獨(dú)立性,稱(chēng)為數(shù)據(jù)的邏輯獨(dú)立性。

1.1.2熟悉數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)(2)模式/內(nèi)模式映像數(shù)據(jù)庫(kù)中只有一個(gè)模式,也只有一個(gè)內(nèi)模式,所以一個(gè)數(shù)據(jù)庫(kù)只有唯一的模式/內(nèi)模式映像。它通常包含在模式的描述中,定義了數(shù)據(jù)的全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系。當(dāng)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)發(fā)生改變時(shí),數(shù)據(jù)庫(kù)管理員通過(guò)對(duì)模式/內(nèi)模式映像進(jìn)行修改,可以使模式保持不變,從而使應(yīng)用程序也不用改變。這保證了數(shù)據(jù)與應(yīng)用程序的物理獨(dú)立性,稱(chēng)為數(shù)據(jù)的物理獨(dú)立性。數(shù)據(jù)庫(kù)的二級(jí)映像通過(guò)保證數(shù)據(jù)的物理獨(dú)立性和邏輯獨(dú)立性,確保了數(shù)據(jù)庫(kù)外模式的穩(wěn)定性,也從底層確保了應(yīng)用程序的穩(wěn)定性。除非應(yīng)用需求本身發(fā)生變化,否則無(wú)須對(duì)應(yīng)用程序進(jìn)行修改。數(shù)據(jù)庫(kù)的三級(jí)模式與二級(jí)映像實(shí)現(xiàn)了數(shù)據(jù)與應(yīng)用程序之間的獨(dú)立,使數(shù)據(jù)的定義和描述可以從應(yīng)用程序中分離出來(lái)。另外,由于數(shù)據(jù)的存取由DBMS進(jìn)行管理,因此用戶(hù)無(wú)須考慮存取路徑、方式等細(xì)節(jié),從而使應(yīng)用程序的編寫(xiě)得到簡(jiǎn)化,大大減輕了應(yīng)用程序維護(hù)人員的負(fù)擔(dān)。

1.1.3了解數(shù)據(jù)庫(kù)設(shè)計(jì)的方法及步驟

數(shù)據(jù)庫(kù)設(shè)計(jì)是建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng)的技術(shù),在信息系統(tǒng)開(kāi)發(fā)和建設(shè)中處于核心地位。具體來(lái)講,數(shù)據(jù)庫(kù)設(shè)計(jì)是指對(duì)于一個(gè)已知的應(yīng)用環(huán)境,構(gòu)造一個(gè)最優(yōu)的數(shù)據(jù)庫(kù)邏輯模式及物理結(jié)構(gòu),并在此基礎(chǔ)上建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),使其可以有效地存儲(chǔ)數(shù)據(jù),滿(mǎn)足不同用戶(hù)的各種應(yīng)用需求。1.?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)方法現(xiàn)實(shí)世界的復(fù)雜性導(dǎo)致了數(shù)據(jù)庫(kù)設(shè)計(jì)的復(fù)雜性。只有以科學(xué)的數(shù)據(jù)庫(kù)設(shè)計(jì)理論為基礎(chǔ),在具體的設(shè)計(jì)原則指導(dǎo)下,才能保證數(shù)據(jù)庫(kù)的設(shè)計(jì)質(zhì)量,減小后期維護(hù)的代價(jià)。邏輯數(shù)據(jù)庫(kù)設(shè)計(jì)是根據(jù)用戶(hù)需求和特定DBMS的具體特點(diǎn),以數(shù)據(jù)庫(kù)設(shè)計(jì)理論為依據(jù),設(shè)計(jì)數(shù)據(jù)庫(kù)的全局邏輯結(jié)構(gòu)和每個(gè)用戶(hù)的局部邏輯結(jié)構(gòu)。物理數(shù)據(jù)庫(kù)設(shè)計(jì)是在邏輯結(jié)構(gòu)確定之后,設(shè)計(jì)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)及其他實(shí)現(xiàn)細(xì)節(jié)。著名的新奧爾良方法是目前公認(rèn)的比較完整和權(quán)威的一種規(guī)范設(shè)計(jì)方法。它將數(shù)據(jù)庫(kù)設(shè)計(jì)分為4個(gè)階段:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)除了上述方法,還有一些為數(shù)據(jù)庫(kù)設(shè)計(jì)不同階段提供的具體實(shí)現(xiàn)技術(shù)與方法,如基于實(shí)體-聯(lián)系(Entity-Relationship,E-R)模型的設(shè)計(jì)方法、基于3NF(第三范式)的設(shè)計(jì)方法和基于抽象語(yǔ)法規(guī)范的設(shè)計(jì)方法等。

1.1.3了解數(shù)據(jù)庫(kù)設(shè)計(jì)的方法及步驟2.?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)步驟按照新奧爾良方法,數(shù)據(jù)庫(kù)設(shè)計(jì)的全過(guò)程主要分為需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)4個(gè)階段,如圖1-6所示。圖1-6數(shù)據(jù)庫(kù)設(shè)計(jì)的全過(guò)程

1.1.3了解數(shù)據(jù)庫(kù)設(shè)計(jì)的方法及步驟(1)需求分析進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)前必須充分了解與分析用戶(hù)需求(包括數(shù)據(jù)與處理)。需求分析在整個(gè)設(shè)計(jì)過(guò)程中具有奠基石的地位,是最困難和最耗時(shí)間的一步。需求分析主要包括以下2個(gè)步驟。①收集、整理與分析。這一步主要是調(diào)查、收集、整理與分析用戶(hù)在數(shù)據(jù)管理中的信息需求、處理需求、安全性與完整性需求,主要方法包括:調(diào)查組織機(jī)構(gòu)情況、調(diào)查各部門(mén)的業(yè)務(wù)活動(dòng)情況、協(xié)助用戶(hù)明確對(duì)新系統(tǒng)的各種需求、確定新系統(tǒng)的邊界等。②描述數(shù)據(jù)流圖與數(shù)據(jù)字典。完成收集并分析用戶(hù)需求后,還需對(duì)需求進(jìn)行進(jìn)一步表達(dá)。分析和表達(dá)用戶(hù)需求的常用方法為結(jié)構(gòu)化分析(StructuredAnalysis,SA)方法。SA方法從最上層的系統(tǒng)組織結(jié)構(gòu)入手,采用自頂向下、逐層分解的方式分析系統(tǒng),并描述數(shù)據(jù)的流向和數(shù)據(jù)的處理功能。除了數(shù)據(jù)流圖,還需使用數(shù)據(jù)字典(DataDictionary,DD)來(lái)集中描述系統(tǒng)中的各類(lèi)數(shù)據(jù)。

1.1.3了解數(shù)據(jù)庫(kù)設(shè)計(jì)的方法及步驟(2)概念設(shè)計(jì)概念設(shè)計(jì)是數(shù)據(jù)庫(kù)設(shè)計(jì)中的關(guān)鍵步驟,它通過(guò)對(duì)用戶(hù)需求進(jìn)行綜合分析、歸納與抽象,形成一個(gè)不依賴(lài)具體DBMS的概念數(shù)據(jù)模型,一般用E-R模型表示。對(duì)概念數(shù)據(jù)模型進(jìn)行轉(zhuǎn)換,可以形成計(jì)算機(jī)上某個(gè)DBMS支持的邏輯數(shù)據(jù)模型。概念數(shù)據(jù)模型的特點(diǎn)如下。①具有較強(qiáng)的語(yǔ)義表達(dá)能力,能夠清晰表達(dá)應(yīng)用所包含的各種語(yǔ)義知識(shí)。②

簡(jiǎn)潔明了、易于用戶(hù)理解,是數(shù)據(jù)庫(kù)設(shè)計(jì)人員與用戶(hù)之間溝通的橋梁。數(shù)據(jù)庫(kù)概念設(shè)計(jì)的基本方法將在1.3.1中重點(diǎn)介紹。(3)邏輯設(shè)計(jì)邏輯設(shè)計(jì)的任務(wù)是將E-R模型轉(zhuǎn)換為某個(gè)DBMS所支持的數(shù)據(jù)模型(如關(guān)系模型,即基本表),并對(duì)其進(jìn)行優(yōu)化。這個(gè)階段的模型設(shè)計(jì)需要考慮到DBMS本身的性能與特征,然后根據(jù)用戶(hù)的需求及安全性方面的考慮,在基本表(Table)的基礎(chǔ)上建立必要的視圖(View),形成數(shù)據(jù)庫(kù)的外模式。數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的基本方法將在任務(wù)1.3.2中重點(diǎn)介紹。

1.1.3了解數(shù)據(jù)庫(kù)設(shè)計(jì)的方法及步驟(4)物理設(shè)計(jì)物理設(shè)計(jì)主要是為邏輯結(jié)構(gòu)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)和存取方法)。物理設(shè)計(jì)因DBMS的特點(diǎn)和處理的需求而異,大致流程是對(duì)邏輯設(shè)計(jì)的關(guān)系模型進(jìn)行物理存儲(chǔ)安排,并設(shè)計(jì)用于實(shí)現(xiàn)高效數(shù)據(jù)訪(fǎng)問(wèn)的索引,形成數(shù)據(jù)庫(kù)的內(nèi)模式。認(rèn)識(shí)數(shù)據(jù)模型1.2

1.2.1了解數(shù)據(jù)模型的概念1.?dāng)?shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)用于描述數(shù)據(jù)庫(kù)系統(tǒng)的靜態(tài)特征,是數(shù)據(jù)庫(kù)研究的對(duì)象類(lèi)型及對(duì)象之間聯(lián)系的集合。也就是說(shuō),數(shù)據(jù)結(jié)構(gòu)的組成部分有兩類(lèi):一類(lèi)與數(shù)據(jù)對(duì)象的內(nèi)容、性質(zhì)、類(lèi)型相關(guān),例如,學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)中的學(xué)生數(shù)據(jù)項(xiàng)特征,包括學(xué)號(hào)、姓名、班級(jí)等,以及各項(xiàng)特征的屬性、域、關(guān)系等;一類(lèi)是數(shù)據(jù)對(duì)象之間的聯(lián)系,例如,一個(gè)學(xué)生可以選多門(mén)課、一門(mén)課可以被多個(gè)學(xué)生選擇,這種聯(lián)系也存在于數(shù)據(jù)庫(kù)系統(tǒng)中。這兩類(lèi)組成部分概括如下。(1)數(shù)據(jù)對(duì)象本身:類(lèi)型、內(nèi)容、性質(zhì),例如,關(guān)系模型中的域、屬性、關(guān)系等。(2)數(shù)據(jù)對(duì)象之間的聯(lián)系:數(shù)據(jù)之間是如何關(guān)聯(lián)的,例如,關(guān)系模型中的主鍵、外鍵等。在數(shù)據(jù)庫(kù)系統(tǒng)中,人們通常會(huì)按照其數(shù)據(jù)結(jié)構(gòu)的類(lèi)型來(lái)命名數(shù)據(jù)模型。例如,層次模型和關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)就分別是層次結(jié)構(gòu)和關(guān)系結(jié)構(gòu)。

1.2.1了解數(shù)據(jù)模型的概念2.?dāng)?shù)據(jù)操作數(shù)據(jù)操作用于描述數(shù)據(jù)庫(kù)系統(tǒng)的動(dòng)態(tài)特征,是允許施加在數(shù)據(jù)對(duì)象上的操作的集合。對(duì)數(shù)據(jù)執(zhí)行的操作主要有檢索、插入、刪除和修改。數(shù)據(jù)模型必須定義這些操作的確切含義、操作符號(hào)、操作規(guī)則(如優(yōu)先級(jí))以及實(shí)現(xiàn)操作的語(yǔ)言。3.?dāng)?shù)據(jù)的完整性約束數(shù)據(jù)的完整性約束是一組完整性規(guī)則的集合,規(guī)定數(shù)據(jù)庫(kù)狀態(tài)及狀態(tài)變化所應(yīng)滿(mǎn)足的條件,主要描述數(shù)據(jù)結(jié)構(gòu)內(nèi)數(shù)據(jù)間的語(yǔ)法、詞義聯(lián)系、制約和依存關(guān)系,以及數(shù)據(jù)動(dòng)態(tài)變化的規(guī)則,以保證數(shù)據(jù)的正確、有效和相容。例如,關(guān)系模型中規(guī)定了一個(gè)數(shù)據(jù)記錄中必須有一個(gè)確定的關(guān)鍵字,并且不能為空。另外,數(shù)據(jù)模型還應(yīng)提供定義完整性約束條件的機(jī)制,以反映某個(gè)應(yīng)用涉及的數(shù)據(jù)必須遵守的特定現(xiàn)實(shí)條件,例如,在學(xué)生選課管理系統(tǒng)中,學(xué)生必須選擇所有必修科目。

1.2.2掌握數(shù)據(jù)模型在數(shù)據(jù)庫(kù)領(lǐng)域,數(shù)據(jù)模型按不同的應(yīng)用目的,主要分為3種類(lèi)型:概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型。1.概念數(shù)據(jù)模型概念數(shù)據(jù)模型(ConceptualDataModel)也稱(chēng)為概念模型,它按照用戶(hù)的觀(guān)點(diǎn)對(duì)數(shù)據(jù)和信息建模,是對(duì)現(xiàn)實(shí)世界的抽象反映。它使數(shù)據(jù)庫(kù)設(shè)計(jì)人員在設(shè)計(jì)的初始階段擺脫了計(jì)算機(jī)系統(tǒng)及DBMS的具體技術(shù)問(wèn)題,能集中精力分析數(shù)據(jù)及數(shù)據(jù)之間的聯(lián)系等,不依賴(lài)于具體的計(jì)算機(jī)系統(tǒng),是現(xiàn)實(shí)世界到數(shù)據(jù)世界的中間層。概念數(shù)據(jù)模型主要用來(lái)完成數(shù)據(jù)庫(kù)設(shè)計(jì),概念數(shù)據(jù)模型必須轉(zhuǎn)換成邏輯數(shù)據(jù)模型才能在DBMS中實(shí)現(xiàn)。描述概念數(shù)據(jù)模型的工具是E-R模型,主要包括實(shí)體、聯(lián)系和屬性3個(gè)基本概念。

1.2.2掌握數(shù)據(jù)模型(1)實(shí)體(Entity)實(shí)體可以是現(xiàn)實(shí)世界中可互相區(qū)別的事件或物體,也可以是抽象的概念或聯(lián)系。例如,學(xué)校中的每個(gè)人都是一個(gè)實(shí)體。每個(gè)實(shí)體由一組屬性來(lái)表示,其中一些屬性可以唯一地標(biāo)識(shí)一個(gè)實(shí)體,如學(xué)號(hào)。與此類(lèi)似,每一門(mén)課程也可以看作一個(gè)實(shí)體,而課程號(hào)唯一地標(biāo)識(shí)了某個(gè)具體的課程實(shí)體。當(dāng)然,實(shí)體也可以是抽象的概念,如學(xué)生選課、機(jī)票預(yù)訂等。實(shí)體集是具有相同屬性的實(shí)體集合,而實(shí)例是實(shí)體集中的某個(gè)特例。實(shí)體集與實(shí)例舉例如圖1-7所示。圖1-7實(shí)體集與實(shí)例舉例

1.2.2掌握數(shù)據(jù)模型(2)聯(lián)系(Relationship)在客觀(guān)世界中,事物彼此之間是有聯(lián)系的。實(shí)體之間的聯(lián)系可以分為以下3類(lèi)。①一對(duì)一聯(lián)系(1:1)。如果實(shí)體集E(1)中的每一個(gè)實(shí)體至多與實(shí)體集E(2)中的一個(gè)實(shí)體相對(duì)應(yīng),并且實(shí)體集E(2)中的每一個(gè)實(shí)體至多與實(shí)體集E(1)中的一個(gè)實(shí)體相對(duì)應(yīng),則稱(chēng)實(shí)體集E(1)與實(shí)體集E(2)為一對(duì)一聯(lián)系,記作1:1。例如,電影院里一個(gè)座位只能坐一個(gè)觀(guān)眾,因此觀(guān)眾與座位之間是一對(duì)一聯(lián)系。②一對(duì)多聯(lián)系(1:n)。如果實(shí)體集E(1)中的一個(gè)實(shí)體與實(shí)體集E(2)中的多個(gè)實(shí)體相對(duì)應(yīng),并且實(shí)體集E(2)中的一個(gè)實(shí)體至多與實(shí)體集E(1)中的一個(gè)實(shí)體相對(duì)應(yīng),則稱(chēng)實(shí)體集E(1)與實(shí)體集E(2)為一對(duì)多聯(lián)系,記作1:n。例如,一個(gè)系部有多位教師,而每位教師只屬于某一個(gè)系部,因此系部與教師之間是一對(duì)多聯(lián)系。

1.2.2掌握數(shù)據(jù)模型③多對(duì)多聯(lián)系(m:n)。如果實(shí)體集E(1)中的一個(gè)實(shí)體與實(shí)體集E(2)中的多個(gè)實(shí)體相對(duì)應(yīng),并且實(shí)體集E(2)中的一個(gè)實(shí)體與實(shí)體集E(1)中的多個(gè)實(shí)體相對(duì)應(yīng),則稱(chēng)實(shí)體集E(1)與實(shí)體集E(2)為多對(duì)多聯(lián)系,記作m:n。例如,一個(gè)項(xiàng)目有多個(gè)職工,一個(gè)職工也可以參與多個(gè)項(xiàng)目,因此職工與項(xiàng)目之間是多對(duì)多聯(lián)系。實(shí)體間的聯(lián)系舉例如圖1-8所示。圖1-8實(shí)體間的聯(lián)系舉例

1.2.2掌握數(shù)據(jù)模型(3)屬性(Attribute)實(shí)體或聯(lián)系所具有的某方面特性被稱(chēng)為屬性。一個(gè)實(shí)體可以由若干個(gè)屬性來(lái)描述。例如,學(xué)生實(shí)體可能有學(xué)號(hào)、姓名、專(zhuān)業(yè)、性別、出生日期等屬性;課程實(shí)體可能有課程號(hào)、課程名稱(chēng)、開(kāi)課學(xué)期、學(xué)時(shí)、學(xué)分等屬性。可以唯一確定一個(gè)實(shí)體的屬性(一個(gè)或多個(gè))稱(chēng)之為主鍵。聯(lián)系也可能有屬性。例如,學(xué)生與課程的聯(lián)系是“學(xué)習(xí)”,學(xué)生“學(xué)習(xí)”某門(mén)課程所獲取的“成績(jī)”同時(shí)依賴(lài)于某個(gè)特定的學(xué)生以及某門(mén)特定的課程,所以“成績(jī)”是學(xué)生與課程之間的聯(lián)系“學(xué)習(xí)”的屬性。概念數(shù)據(jù)模型有多種表示方法,其中最為常用的是陳品山(P.P.S.Chen)于1976年提出的實(shí)體-聯(lián)系(E-R)模型,也就是E-R圖,它提供了表示實(shí)體、屬性和聯(lián)系的方法。

1.2.2掌握數(shù)據(jù)模型①

實(shí)體:用矩形框表示,矩形框內(nèi)寫(xiě)明實(shí)體名。②

屬性:用橢圓形框表示,并用無(wú)向邊將其與相應(yīng)的實(shí)體連接起來(lái),確定為主鍵的屬性用添加下劃線(xiàn)的方式表示。聯(lián)系也是可以有屬性的。③

聯(lián)系:用菱形框表示,菱形框內(nèi)寫(xiě)明聯(lián)系名,并用無(wú)向邊分別與實(shí)體相連,同時(shí)注明聯(lián)系的類(lèi)型(1:1、1:n或m:n)。學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)的E-R模型如圖1-9所示。圖1-9學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)的E-R模型

1.2.2掌握數(shù)據(jù)模型2.邏輯數(shù)據(jù)模型(1)層次模型層次模型的基本數(shù)據(jù)結(jié)構(gòu)就是層次結(jié)構(gòu)。由于在層次模型中,各類(lèi)實(shí)體及實(shí)體間的聯(lián)系是用“有向樹(shù)”的數(shù)據(jù)結(jié)構(gòu)來(lái)表示的,所以也稱(chēng)其為樹(shù)形結(jié)構(gòu)。大學(xué)系部的層次模型如圖1-10所示,系部就是“樹(shù)根”(根節(jié)點(diǎn)),系部下面的各辦公室就是“樹(shù)枝”(樹(shù)節(jié)點(diǎn))。圖1-10大學(xué)系部的層次模型

1.2.2掌握數(shù)據(jù)模型(2)網(wǎng)狀模型網(wǎng)狀模型的基本數(shù)據(jù)結(jié)構(gòu)就是網(wǎng)絡(luò)結(jié)構(gòu)。網(wǎng)狀模型中的每個(gè)節(jié)點(diǎn)表示一個(gè)實(shí)體,節(jié)點(diǎn)之間的連線(xiàn)表示實(shí)體與實(shí)體之間的聯(lián)系,從而構(gòu)成一個(gè)復(fù)雜的網(wǎng)狀結(jié)構(gòu)。學(xué)生與課程的網(wǎng)狀模型如圖1-11所示。圖1-11學(xué)生與課程的網(wǎng)狀模型

1.2.2掌握數(shù)據(jù)模型(3)關(guān)系模型關(guān)系模型在邏輯數(shù)據(jù)模型中占據(jù)了最重要的地位。20世紀(jì)80年代以來(lái),計(jì)算機(jī)廠(chǎng)商推出的DBMS幾乎都支持關(guān)系模型,數(shù)據(jù)庫(kù)領(lǐng)域當(dāng)前的研究方向也大都以關(guān)系模型為根基。每個(gè)關(guān)系的數(shù)據(jù)結(jié)構(gòu)都是一張規(guī)范化的二維表,每張二維表都可以稱(chēng)為關(guān)系,表中的每一行對(duì)應(yīng)一個(gè)元組或者一條記錄,表中的每一列對(duì)應(yīng)一個(gè)屬性或者一個(gè)字段。表1-1所示的課程信息表便是以二維表的形式來(lái)表示課程關(guān)系的。表1-1課程信息表

1.2.2掌握數(shù)據(jù)模型3.物理數(shù)據(jù)模型物理數(shù)據(jù)模型(PhysicalDataModel)簡(jiǎn)稱(chēng)物理模型,是面向計(jì)算機(jī)系統(tǒng)的物理表示模型,描述了系統(tǒng)內(nèi)部的表示方法和存取方法,或者在磁盤(pán)或磁帶上的存儲(chǔ)方式和存取方法。它不僅與具體的DBMS有關(guān),還與操作系統(tǒng)和硬件有關(guān)。設(shè)計(jì)人員在實(shí)現(xiàn)邏輯數(shù)據(jù)模型時(shí)都需選擇對(duì)應(yīng)的物理數(shù)據(jù)模型。要將現(xiàn)實(shí)世界中的客觀(guān)對(duì)象轉(zhuǎn)換為機(jī)器世界(計(jì)算機(jī))能處理的數(shù)字信息,需要經(jīng)過(guò)抽象和數(shù)字化:先將現(xiàn)實(shí)世界的事物抽象成某一種信息結(jié)構(gòu),也就是信息世界的概念數(shù)據(jù)模型,這種概念數(shù)據(jù)模型與具體的計(jì)算機(jī)系統(tǒng)無(wú)關(guān),不是某一個(gè)DBMS支持的數(shù)據(jù)模型;接著,將信息世界的概念數(shù)據(jù)模型進(jìn)行數(shù)字化,將其轉(zhuǎn)換為計(jì)算機(jī)上某一個(gè)DBMS支持的數(shù)據(jù)模型。這一過(guò)程如圖1-12所示。圖1-12現(xiàn)實(shí)世界的抽象過(guò)程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)1.3

1.3.1設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)概念數(shù)據(jù)模型概念數(shù)據(jù)模型是在了解用戶(hù)的需求、用戶(hù)的業(yè)務(wù)領(lǐng)域及流程后,經(jīng)過(guò)分析和總結(jié),提煉出來(lái)的用以描述用戶(hù)業(yè)務(wù)需求的一些概念性?xún)?nèi)容?,F(xiàn)以學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)為例,講解概念數(shù)據(jù)模型的設(shè)計(jì)過(guò)程。1.需求分析在進(jìn)行概念數(shù)據(jù)模型設(shè)計(jì)前,需要充分了解與分析用戶(hù)需求。(1)繪制組織結(jié)構(gòu)圖。組織結(jié)構(gòu)是用戶(hù)業(yè)務(wù)流程與信息的載體,能為設(shè)計(jì)人員理解企業(yè)的業(yè)務(wù)、確定系統(tǒng)范圍提供幫助。學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)的組織結(jié)構(gòu)圖如圖1-13所示。圖1-13學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)的組織結(jié)構(gòu)圖

1.3.1設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)概念數(shù)據(jù)模型(2)繪制業(yè)務(wù)用例圖。收集資料,并對(duì)資料進(jìn)行分析、整理,繪制出學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)業(yè)務(wù)用例圖,如圖1-14所示。(3)了解功能需求。對(duì)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)中涉及的各部門(mén)進(jìn)行調(diào)研,得到學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)的功能需求如下。①

學(xué)籍管理功能:用于添加、修改、刪除學(xué)生信息。②教務(wù)管理功能:包含成績(jī)管理和課程管理兩個(gè)子功能,分別用于添加、修改、刪除成績(jī)和課程。圖1-14學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)業(yè)務(wù)用例圖

1.3.1設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)概念數(shù)據(jù)模型(4)生成數(shù)據(jù)字典。針對(duì)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)的功能需求,對(duì)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)中涉及的各部門(mén)業(yè)務(wù)流程和數(shù)據(jù)流程進(jìn)行分析,得到的數(shù)據(jù)項(xiàng)簡(jiǎn)述如下。①學(xué)生信息:學(xué)號(hào)、姓名、專(zhuān)業(yè)、性別、出生日期、總學(xué)分、照片、備注。②課程信息:課程號(hào)、課程名稱(chēng)、開(kāi)課學(xué)期、學(xué)時(shí)、學(xué)分。③選課信息:學(xué)號(hào)、課程號(hào)、成績(jī)。

1.3.1設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)概念數(shù)據(jù)模型2.?dāng)?shù)據(jù)庫(kù)概念設(shè)計(jì)根據(jù)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)的需求分析,進(jìn)行概念設(shè)計(jì)。(1)定義實(shí)體。實(shí)體集合的成員都有一個(gè)共同的特征和屬性集,可以從收集的源材料——基本數(shù)據(jù)資料表中直接或間接標(biāo)識(shí)出大部分實(shí)體。根據(jù)源材料名字表中表示物的術(shù)語(yǔ)及以“代碼”結(jié)尾的術(shù)語(yǔ),如客戶(hù)代碼、代理商代碼、產(chǎn)品代碼等,將其名詞部分代表的實(shí)體標(biāo)識(shí)出來(lái),從而初步找出潛在的實(shí)體,形成實(shí)體表。根據(jù)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)的需求分析,可知學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)中存在學(xué)生、課程兩個(gè)實(shí)體。(2)定義聯(lián)系。根據(jù)實(shí)際的業(yè)務(wù)需求、規(guī)則和實(shí)際情況確定實(shí)體聯(lián)系、聯(lián)系名和說(shuō)明,確定聯(lián)系類(lèi)型,即一對(duì)一、一對(duì)多或者多對(duì)多。根據(jù)需求分析可知,學(xué)生和課程之間存在選課的聯(lián)系。一名學(xué)生可以選修多門(mén)課程,一門(mén)課程可以被多名學(xué)生選修,那么學(xué)生和課程之間的選課聯(lián)系是多對(duì)多聯(lián)系,并且派生出成績(jī)作為聯(lián)系的屬性。

1.3.1設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)概念數(shù)據(jù)模型(3)定義主鍵。為已定義的實(shí)體標(biāo)識(shí)候選鍵,以便唯一識(shí)別每個(gè)實(shí)體的實(shí)例,再?gòu)暮蜻x鍵中確定主鍵。為了確定主鍵和聯(lián)系的有效性,需要利用非空規(guī)則和非多值規(guī)則,即一個(gè)實(shí)體實(shí)例的主鍵不能是空值,也不能在同一個(gè)時(shí)刻有一個(gè)以上的值。根據(jù)需求分析,找出實(shí)體學(xué)生的主鍵為學(xué)號(hào),實(shí)體課程的主鍵為課程號(hào)。(4)定義屬性。從源數(shù)據(jù)表中抽取說(shuō)明性的名詞生成屬性表,確定屬性的所有者,定義非主鍵屬性,檢查屬性的非空及非多值規(guī)則。此外,還要檢查完全依賴(lài)函數(shù)規(guī)則和非傳遞依賴(lài)規(guī)則,保證一個(gè)非主鍵屬性必須依賴(lài)于整個(gè)主鍵且只依賴(lài)于主鍵。根據(jù)需求分析的數(shù)據(jù)字典可以得到實(shí)體學(xué)生有學(xué)號(hào)、姓名、性別、出生日期、專(zhuān)業(yè)等屬性,實(shí)體課程有課程號(hào)、課程名稱(chēng)、學(xué)時(shí)和學(xué)分等屬性。(5)定義其他對(duì)象和規(guī)則。定義屬性的數(shù)據(jù)類(lèi)型、長(zhǎng)度、精度、非空、默認(rèn)值和約束規(guī)則等。定義觸發(fā)器、存儲(chǔ)過(guò)程、視圖、角色、同義詞和序列等對(duì)象信息。(6)E-R模型設(shè)計(jì)。根據(jù)以上分析,學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)的概念設(shè)計(jì)E-R模型如圖1-9所示。

1.3.2設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)關(guān)系模型完成概念數(shù)據(jù)模型設(shè)計(jì)后的關(guān)系模型設(shè)計(jì)的過(guò)程,其本質(zhì)就是E-R模型向關(guān)系模型的轉(zhuǎn)換。要解決的問(wèn)題包括如何將實(shí)體和實(shí)體間的聯(lián)系轉(zhuǎn)換為關(guān)系模型,以及如何確定這些關(guān)系模型的屬性和鍵。下面介紹把E-R模型中實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)換為關(guān)系模型的方法。1.實(shí)體(E)轉(zhuǎn)換為關(guān)系模式的方法實(shí)體轉(zhuǎn)換為關(guān)系模型時(shí),實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的主鍵就是關(guān)系的主鍵,E-R模型中有幾個(gè)實(shí)體就轉(zhuǎn)換為幾個(gè)關(guān)系模型。例如,將學(xué)生實(shí)體轉(zhuǎn)換為關(guān)系模型。實(shí)體學(xué)生:學(xué)生(學(xué)號(hào),姓名,專(zhuān)業(yè),性別,出生日期,總學(xué)分,照片,備注)主鍵:學(xué)號(hào)關(guān)系模型:Student(S_ID,Name,Major,Sex,Birthday,Total_Credit,Photo,Note)PK:S_ID

1.3.2設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)關(guān)系模型2.聯(lián)系(R)轉(zhuǎn)換為關(guān)系模型的方法E-R模型向關(guān)系模型轉(zhuǎn)換時(shí),除了要將實(shí)體轉(zhuǎn)換為關(guān)系模型,還需要將實(shí)體之間的聯(lián)系轉(zhuǎn)換為關(guān)系模型。實(shí)體之間的聯(lián)系類(lèi)型不同,轉(zhuǎn)換規(guī)則也不同。(1)一對(duì)一聯(lián)系將聯(lián)系與任意端實(shí)體對(duì)應(yīng)的關(guān)系模型合并,并加入另一端實(shí)體的主鍵和聯(lián)系本身的屬性。【例1-1】假設(shè)實(shí)體班級(jí)(班級(jí)號(hào),班級(jí)名)與實(shí)體班主任(職工號(hào),姓名,性別,職稱(chēng))之間的任職聯(lián)系是一對(duì)一聯(lián)系。E-R模型如圖1-15所示,試將其轉(zhuǎn)換為關(guān)系模型。圖1-15班主任任職E-R模型(一對(duì)一聯(lián)系)

1.3.2設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)關(guān)系模型實(shí)體班級(jí)(班級(jí)號(hào),班級(jí)名)與實(shí)體班主任(職工號(hào),姓名,性別,職稱(chēng))的聯(lián)系轉(zhuǎn)換后得到的關(guān)系模型如下。(2)一對(duì)多聯(lián)系將聯(lián)系與多端實(shí)體對(duì)應(yīng)的關(guān)系模型合并,并加入另一端實(shí)體的主鍵和聯(lián)系本身的屬性。Class(ClassID,ClassName)PK:ClassIDHead_Teacher(HireID,Name,Sex,Title)PK:HireID

1.3.2設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)關(guān)系模型【例1-2】實(shí)體班級(jí)與實(shí)體學(xué)生的聯(lián)系是一對(duì)多,E-R模型如圖1-16所示,試將其轉(zhuǎn)換為關(guān)系模型。圖1-16學(xué)生與班級(jí)E-R模型(1:n聯(lián)系)

1.3.2設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)關(guān)系模型實(shí)體班級(jí)(班級(jí)號(hào),班級(jí)名)和實(shí)體學(xué)生(學(xué)號(hào),姓名,專(zhuān)業(yè),性別,出生日期,總學(xué)分,照片,備注)的聯(lián)系轉(zhuǎn)換后得到的關(guān)系模型如下。由于班級(jí)與學(xué)生之間的聯(lián)系是一對(duì)多,將聯(lián)系的屬性班干部職位和一端的主鍵放在多端,故此E-R模型轉(zhuǎn)換后得到的關(guān)系模型如下。班級(jí)實(shí)體轉(zhuǎn)換后的關(guān)系模型不變。Class(ClassID,ClassName)PK:ClassIDStudent(S_ID,Name,Major,Sex,Birthday,Total_Credit,Photo,Note)PK:S_IDStudent(S_ID,Name,Major,Sex,Birthday,Total_Credit,Photo,Note,ClassID,Class_Leader)PK:S_ID

1.3.2設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)關(guān)系模型(3)多對(duì)多聯(lián)系將聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模型。將聯(lián)系連接的各實(shí)體的主鍵和聯(lián)系本身的屬性轉(zhuǎn)換為關(guān)系模型的屬性。【例1-3】實(shí)體教師和實(shí)體學(xué)生的聯(lián)系是多對(duì)多,E-R模型如圖1-17所示,試將其轉(zhuǎn)換為關(guān)系模型。圖1-17教師與學(xué)生E-R模型(多對(duì)多聯(lián)系)

1.3.2設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)關(guān)系模型實(shí)體教師(職工號(hào),姓名,性別,職稱(chēng),教授科目)和實(shí)體學(xué)生(學(xué)號(hào),姓名,專(zhuān)業(yè),性別,出生日期,總學(xué)分,照片,備注)之間的聯(lián)系是多對(duì)多,轉(zhuǎn)換后新增一關(guān)系“教授”(職工號(hào),學(xué)號(hào),評(píng)價(jià)),轉(zhuǎn)換后的關(guān)系模型如下。Teacher(HireID,Name,Sex,Title,Subject)PK:HireIDStudent(S_ID,Name,Major,Sex,Birthday,Total_Credit,Photo,Note)PK:S_IDTeach(HireID,S_ID,Evaluation)PK:HireID和S_ID

1.3.2設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)關(guān)系模型根據(jù)以上轉(zhuǎn)換原則,將學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)的E-R模型(圖1-15)轉(zhuǎn)換為關(guān)系模型時(shí),應(yīng)采取多對(duì)多聯(lián)系對(duì)應(yīng)的轉(zhuǎn)換方式。也就是實(shí)體學(xué)生(學(xué)號(hào),姓名,專(zhuān)業(yè),性別,出生日期,總學(xué)分,照片,備注)和實(shí)體課程(課程號(hào),課程名稱(chēng),開(kāi)課學(xué)期,學(xué)時(shí),學(xué)分)之間的聯(lián)系是多對(duì)多,轉(zhuǎn)換后新增一個(gè)關(guān)系“選課”(學(xué)號(hào),課程號(hào),成績(jī)),轉(zhuǎn)換后的關(guān)系模型如下。Student(S_ID,Name,Major,Sex,Birthday,Total_Credit,Photo,Note,ClassID,Class_Leader)PK:S_IDCourse(C_ID,C_Name,Semester,Credit_Hour,Credit)PK:C_IDElective(S_ID,C_ID,Grade) PK:S_ID和C_ID要設(shè)計(jì)出完善、健壯的數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)的分析、設(shè)計(jì)階段必須奠定好基礎(chǔ)。只有遵循規(guī)范化設(shè)計(jì)要求,才能設(shè)計(jì)出結(jié)構(gòu)合理的關(guān)系模型,為之后數(shù)據(jù)庫(kù)的構(gòu)建提供強(qiáng)有力的保障。素養(yǎng)小貼士【知識(shí)拓展】1.?dāng)?shù)據(jù)庫(kù)系統(tǒng)有哪些優(yōu)點(diǎn)?(1)數(shù)據(jù)共享數(shù)據(jù)共享是指多個(gè)用戶(hù)可以同時(shí)存取數(shù)據(jù)而不相互影響。數(shù)據(jù)共享包括3個(gè)方面:所有用戶(hù)可以同時(shí)存取數(shù)據(jù);數(shù)據(jù)庫(kù)不僅可以為當(dāng)前的用戶(hù)服務(wù),還可以為將來(lái)的新用戶(hù)服務(wù);可以使用多種語(yǔ)言實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的交互。(2)減少數(shù)據(jù)冗余數(shù)據(jù)冗余就是數(shù)據(jù)重復(fù)。數(shù)據(jù)冗余既浪費(fèi)存儲(chǔ)空間,又容易造成數(shù)據(jù)不一致。在非數(shù)據(jù)庫(kù)系統(tǒng)中,由于每個(gè)應(yīng)用程序都有自己的數(shù)據(jù)文件,所以存在著大量的重復(fù)數(shù)據(jù)。數(shù)據(jù)庫(kù)從全局來(lái)組織和存儲(chǔ)數(shù)據(jù),數(shù)據(jù)已經(jīng)根據(jù)特定的數(shù)據(jù)模型結(jié)構(gòu)化,在數(shù)據(jù)庫(kù)中,用戶(hù)的邏輯數(shù)據(jù)文件和具體的物理數(shù)據(jù)文件不必一一對(duì)應(yīng),從而有效地節(jié)省了存儲(chǔ)資源,減少了數(shù)據(jù)冗余,增強(qiáng)了數(shù)據(jù)的一致性。(3)具有較高的數(shù)據(jù)獨(dú)立性數(shù)據(jù)獨(dú)立是指數(shù)據(jù)與應(yīng)用程序之間彼此獨(dú)立,它們之間不存在相互依賴(lài)的關(guān)系。應(yīng)用程序不必隨數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的改變而變動(dòng),這是數(shù)據(jù)庫(kù)一個(gè)最明顯的優(yōu)點(diǎn)。在數(shù)據(jù)庫(kù)系統(tǒng)中,DBMS通過(guò)映像使應(yīng)用程序在數(shù)據(jù)的邏輯結(jié)構(gòu)與物理存儲(chǔ)結(jié)構(gòu)之間有較高的獨(dú)立性。數(shù)據(jù)庫(kù)的數(shù)據(jù)獨(dú)立包括兩個(gè)方面?!局R(shí)拓展】①物理獨(dú)立:數(shù)據(jù)的存儲(chǔ)格式和組織方法改變時(shí),不影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),從而不影響應(yīng)用程序。②邏輯獨(dú)立:數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)的變化(如數(shù)據(jù)定義的修改、數(shù)據(jù)間聯(lián)系的變更等)不影響用戶(hù)的應(yīng)用程序。數(shù)據(jù)獨(dú)立提高了數(shù)據(jù)處理系統(tǒng)的穩(wěn)定性,從而提高了程序維護(hù)的效率。(4)增強(qiáng)了數(shù)據(jù)安全性和完整性保護(hù)數(shù)據(jù)庫(kù)加入了安全保密機(jī)制,可以防止對(duì)數(shù)據(jù)的非法存取。實(shí)行集中控制保證了數(shù)據(jù)的完整性。數(shù)據(jù)庫(kù)系統(tǒng)采取了并發(fā)訪(fǎng)問(wèn)控制,保證了數(shù)據(jù)的正確性。另外,數(shù)據(jù)庫(kù)系統(tǒng)還采取了一系列措施,實(shí)現(xiàn)了恢復(fù)被破壞的數(shù)據(jù)庫(kù)的功能?!局R(shí)拓展】2.關(guān)系模型有哪些改進(jìn)方法?(1)合并關(guān)系模型對(duì)于一些使用較頻繁、性能要求較高、涉及多個(gè)關(guān)系連接的查詢(xún),可以對(duì)具有相同主鍵的關(guān)系模型按查詢(xún)使用的頻率進(jìn)行合并,以減少連接操作,提高查詢(xún)效率。(2)分解關(guān)系模型為提高數(shù)據(jù)操作的效率和存儲(chǔ)空間的利用率,可以考慮對(duì)關(guān)系模型進(jìn)行分解。一般有水平分解和垂直分解兩種。例如,可以把一個(gè)學(xué)校的所有學(xué)生信息按照各個(gè)院系進(jìn)行分解,分別建立關(guān)系模型。把關(guān)系的元組分為若干個(gè)子集合,每個(gè)子集合定義為一個(gè)關(guān)系,這就是水平分解。垂直分解即將關(guān)系模型的屬性分解成若干個(gè)子集合,形成若干個(gè)子關(guān)系模型,提高某些操作的效率?!拘〗Y(jié)】

本項(xiàng)目首先介紹了數(shù)據(jù)庫(kù)的3個(gè)發(fā)展階段、數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)、數(shù)據(jù)庫(kù)的二級(jí)映像、數(shù)據(jù)庫(kù)的設(shè)計(jì)方法及步驟,然后介紹了數(shù)據(jù)模型概念,以及常用數(shù)據(jù)模型(包括概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型)。其中,概念數(shù)據(jù)模型和關(guān)系模型的設(shè)計(jì)方法需要重點(diǎn)掌握,在實(shí)際開(kāi)發(fā)中常會(huì)用到?!救蝿?wù)訓(xùn)練1】設(shè)計(jì)圖書(shū)管理系統(tǒng)數(shù)據(jù)庫(kù)1.實(shí)驗(yàn)?zāi)康?/p>

掌握?qǐng)D書(shū)管理系統(tǒng)數(shù)據(jù)庫(kù)bms的E-R模型的設(shè)計(jì)。

?掌握將圖書(shū)管理系統(tǒng)數(shù)據(jù)庫(kù)bms的E-R模型向關(guān)系模型的轉(zhuǎn)換。2.實(shí)驗(yàn)內(nèi)容完成本項(xiàng)目實(shí)例中E-R模型的設(shè)計(jì)。根據(jù)E-R模型

溫馨提示

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

評(píng)論

0/150

提交評(píng)論