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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.2.1了解數(shù)據(jù)模型的概念1.?dāng)?shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)用于描述數(shù)據(jù)庫系統(tǒng)的靜態(tài)特征,是數(shù)據(jù)庫研究的對象類型及對象之間聯(lián)系的集合。也就是說,數(shù)據(jù)結(jié)構(gòu)的組成部分有兩類:一類與數(shù)據(jù)對象的內(nèi)容、性質(zhì)、類型相關(guān),例如,學(xué)生成績管理系統(tǒng)數(shù)據(jù)庫中的學(xué)生數(shù)據(jù)項(xiàng)特征,包括學(xué)號、姓名、班級等,以及各項(xiàng)特征的屬性、域、關(guān)系等;一類是數(shù)據(jù)對象之間的聯(lián)系,例如,一個學(xué)生可以選多門課、一門課可以被多個學(xué)生選擇,這種聯(lián)系也存在于數(shù)據(jù)庫系統(tǒng)中。這兩類組成部分概括如下。(1)數(shù)據(jù)對象本身:類型、內(nèi)容、性質(zhì),例如,關(guān)系模型中的域、屬性、關(guān)系等。(2)數(shù)據(jù)對象之間的聯(lián)系:數(shù)據(jù)之間是如何關(guān)聯(lián)的,例如,關(guān)系模型中的主鍵、外鍵等。在數(shù)據(jù)庫系統(tǒng)中,人們通常會按照其數(shù)據(jù)結(jié)構(gòu)的類型來命名數(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ù)庫系統(tǒng)的動態(tài)特征,是允許施加在數(shù)據(jù)對象上的操作的集合。對數(shù)據(jù)執(zhí)行的操作主要有檢索、插入、刪除和修改。數(shù)據(jù)模型必須定義這些操作的確切含義、操作符號、操作規(guī)則(如優(yōu)先級)以及實(shí)現(xiàn)操作的語言。3.?dāng)?shù)據(jù)的完整性約束數(shù)據(jù)的完整性約束是一組完整性規(guī)則的集合,規(guī)定數(shù)據(jù)庫狀態(tài)及狀態(tài)變化所應(yīng)滿足的條件,主要描述數(shù)據(jù)結(jié)構(gòu)內(nèi)數(shù)據(jù)間的語法、詞義聯(lián)系、制約和依存關(guān)系,以及數(shù)據(jù)動態(tài)變化的規(guī)則,以保證數(shù)據(jù)的正確、有效和相容。例如,關(guān)系模型中規(guī)定了一個數(shù)據(jù)記錄中必須有一個確定的關(guān)鍵字,并且不能為空。另外,數(shù)據(jù)模型還應(yīng)提供定義完整性約束條件的機(jī)制,以反映某個應(yīng)用涉及的數(shù)據(jù)必須遵守的特定現(xiàn)實(shí)條件,例如,在學(xué)生選課管理系統(tǒng)中,學(xué)生必須選擇所有必修科目。

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

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

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

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

1.2.2掌握數(shù)據(jù)模型(3)屬性(Attribute)實(shí)體或聯(lián)系所具有的某方面特性被稱為屬性。一個實(shí)體可以由若干個屬性來描述。例如,學(xué)生實(shí)體可能有學(xué)號、姓名、專業(yè)、性別、出生日期等屬性;課程實(shí)體可能有課程號、課程名稱、開課學(xué)期、學(xué)時、學(xué)分等屬性??梢晕ㄒ淮_定一個實(shí)體的屬性(一個或多個)稱之為主鍵。聯(lián)系也可能有屬性。例如,學(xué)生與課程的聯(lián)系是“學(xué)習(xí)”,學(xué)生“學(xué)習(xí)”某門課程所獲取的“成績”同時依賴于某個特定的學(xué)生以及某門特定的課程,所以“成績”是學(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)寫明實(shí)體名。②

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

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

1.2.2掌握數(shù)據(jù)模型2.邏輯數(shù)據(jù)模型(1)層次模型層次模型的基本數(shù)據(jù)結(jié)構(gòu)就是層次結(jié)構(gòu)。由于在層次模型中,各類實(shí)體及實(shí)體間的聯(lián)系是用“有向樹”的數(shù)據(jù)結(jié)構(gòu)來表示的,所以也稱其為樹形結(jié)構(gòu)。大學(xué)系部的層次模型如圖1-10所示,系部就是“樹根”(根節(jié)點(diǎn)),系部下面的各辦公室就是“樹枝”(樹節(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)狀模型中的每個節(jié)點(diǎn)表示一個實(shí)體,節(jié)點(diǎn)之間的連線表示實(shí)體與實(shí)體之間的聯(lián)系,從而構(gòu)成一個復(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年代以來,計(jì)算機(jī)廠商推出的DBMS幾乎都支持關(guān)系模型,數(shù)據(jù)庫領(lǐng)域當(dāng)前的研究方向也大都以關(guān)系模型為根基。每個關(guān)系的數(shù)據(jù)結(jié)構(gòu)都是一張規(guī)范化的二維表,每張二維表都可以稱為關(guān)系,表中的每一行對應(yīng)一個元組或者一條記錄,表中的每一列對應(yīng)一個屬性或者一個字段。表1-1所示的課程信息表便是以二維表的形式來表示課程關(guān)系的。表1-1課程信息表

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

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

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

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

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

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

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

1.3.2設(shè)計(jì)學(xué)生成績管理系統(tǒng)數(shù)據(jù)庫關(guān)系模型完成概念數(shù)據(jù)模型設(shè)計(jì)后的關(guān)系模型設(shè)計(jì)的過程,其本質(zhì)就是E-R模型向關(guān)系模型的轉(zhuǎ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í)體的屬性就是關(guān)系的屬性,實(shí)體的主鍵就是關(guān)系的主鍵,E-R模型中有幾個實(shí)體就轉(zhuǎn)換為幾個關(guān)系模型。例如,將學(xué)生實(shí)體轉(zhuǎn)換為關(guān)系模型。實(shí)體學(xué)生:學(xué)生(學(xué)號,姓名,專業(yè),性別,出生日期,總學(xué)分,照片,備注)主鍵:學(xué)號關(guān)系模型:Student(S_ID,Name,Major,Sex,Birthday,Total_Credit,Photo,Note)PK:S_ID

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

1.3.2設(shè)計(jì)學(xué)生成績管理系統(tǒng)數(shù)據(jù)庫關(guān)系模型實(shí)體班級(班級號,班級名)與實(shí)體班主任(職工號,姓名,性別,職稱)的聯(lián)系轉(zhuǎn)換后得到的關(guān)系模型如下。(2)一對多聯(lián)系將聯(lián)系與多端實(shí)體對應(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é)生成績管理系統(tǒng)數(shù)據(jù)庫關(guān)系模型【例1-2】實(shí)體班級與實(shí)體學(xué)生的聯(lián)系是一對多,E-R模型如圖1-16所示,試將其轉(zhuǎn)換為關(guān)系模型。圖1-16學(xué)生與班級E-R模型(1:n聯(lián)系)

1.3.2設(shè)計(jì)學(xué)生成績管理系統(tǒng)數(shù)據(jù)庫關(guān)系模型實(shí)體班級(班級號,班級名)和實(shí)體學(xué)生(學(xué)號,姓名,專業(yè),性別,出生日期,總學(xué)分,照片,備注)的聯(lián)系轉(zhuǎn)換后得到的關(guān)系模型如下。由于班級與學(xué)生之間的聯(lián)系是一對多,將聯(lián)系的屬性班干部職位和一端的主鍵放在多端,故此E-R模型轉(zhuǎn)換后得到的關(guān)系模型如下。班級實(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é)生成績管理系統(tǒng)數(shù)據(jù)庫關(guān)系模型(3)多對多聯(lián)系將聯(lián)系轉(zhuǎn)換為一個關(guān)系模型。將聯(lián)系連接的各實(shí)體的主鍵和聯(lián)系本身的屬性轉(zhuǎn)換為關(guān)系模型的屬性?!纠?-3】實(shí)體教師和實(shí)體學(xué)生的聯(lián)系是多對多,E-R模型如圖1-17所示,試將其轉(zhuǎn)換為關(guān)系模型。圖1-17教師與學(xué)生E-R模型(多對多聯(lián)系)

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

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

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

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

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論