




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、項(xiàng)目一 掌握數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)項(xiàng)目導(dǎo)入數(shù)據(jù)庫(kù)技術(shù)是信息處理的基礎(chǔ),它不僅反映數(shù)據(jù)本身所代表的基本信息,還反映數(shù)據(jù)之間的聯(lián)系,是相關(guān)數(shù)據(jù)的集合。數(shù)據(jù)庫(kù)技術(shù)是計(jì)算機(jī)領(lǐng)域發(fā)展最快的學(xué)科之一,目前,數(shù)據(jù)庫(kù)技術(shù)已從第一代的網(wǎng)狀、層次數(shù)據(jù)庫(kù)系統(tǒng),第二代的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),發(fā)展到以面向?qū)ο竽P蜑橹饕卣鞯牡谌鷶?shù)據(jù)庫(kù)系統(tǒng)。其中建立在關(guān)系模型基礎(chǔ)上的關(guān)系數(shù)據(jù)庫(kù)是當(dāng)前最流行的、應(yīng)用最廣泛的數(shù)據(jù)庫(kù),當(dāng)前所開(kāi)發(fā)的基于數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)基本上都是關(guān)系數(shù)據(jù)庫(kù)。因此,在本項(xiàng)目中,首先對(duì)數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí)進(jìn)行初步的討論,然后對(duì)數(shù)據(jù)庫(kù)開(kāi)發(fā)所使用的平臺(tái)SQL Server 2005再作概況的介紹。項(xiàng)目分析數(shù)據(jù)庫(kù)技術(shù)是為了解決計(jì)算機(jī)信息處
2、理過(guò)程中大量數(shù)據(jù)有效地組織和存儲(chǔ)的問(wèn)題,在數(shù)據(jù)庫(kù)系統(tǒng)中減少數(shù)據(jù)存儲(chǔ)冗余、實(shí)現(xiàn)數(shù)據(jù)共享、保障數(shù)據(jù)安全以及高效地檢索數(shù)據(jù)和處理數(shù)據(jù)而設(shè)計(jì)的,所以,數(shù)據(jù)庫(kù)是相關(guān)數(shù)據(jù)的集合。本教材中以學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng)為教學(xué)案例,以關(guān)系數(shù)據(jù)庫(kù)技術(shù)作為基礎(chǔ),不但需要對(duì)數(shù)據(jù)庫(kù)的基礎(chǔ)理論有一定的了解,同時(shí)還需要掌握一種數(shù)據(jù)庫(kù)開(kāi)發(fā)平臺(tái),即數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)的使用方法,才能在開(kāi)發(fā)平臺(tái)上有效地開(kāi)發(fā)出一個(gè)實(shí)用的學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng)。因此,本項(xiàng)目將包括數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí)介紹和數(shù)據(jù)庫(kù)開(kāi)發(fā)平臺(tái)SQL Server 2005的使用能力訓(xùn)練兩部分內(nèi)容。能力目標(biāo)1. 了解學(xué)生管理數(shù)據(jù)庫(kù)的基本需求;2. 了解數(shù)據(jù)管理技術(shù)的3個(gè)階段;3. 掌
3、握數(shù)據(jù)庫(kù)、數(shù)據(jù)管理系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)的基本概念;4. 掌握SQL Server數(shù)據(jù)庫(kù)的基本組成和有關(guān)知識(shí)。知識(shí)目標(biāo):1. 能根據(jù)實(shí)際環(huán)境進(jìn)行數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的需求分析和功能設(shè)計(jì);2. 具備使用數(shù)據(jù)庫(kù)理論分析相關(guān)信息抽象數(shù)據(jù)的能力;3. 了解并掌握數(shù)據(jù)庫(kù)開(kāi)發(fā)平臺(tái)SQL Server 2005的概況和基本設(shè)置方法。 任務(wù)1 學(xué)生管理數(shù)據(jù)庫(kù)基本需求任務(wù)要求根據(jù)學(xué)生管理的工作流程,對(duì)學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行整體分析與規(guī)劃。1.分析學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng)的整體需求,掌握需求分析的基本方法;2.規(guī)劃學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)具備的功能模塊。知識(shí)儲(chǔ)備一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)通常要經(jīng)歷多個(gè)環(huán)節(jié),簡(jiǎn)單地說(shuō)可以分為對(duì)應(yīng)用系統(tǒng)
4、前臺(tái)應(yīng)用界面(應(yīng)用層)和后臺(tái)數(shù)據(jù)庫(kù)(數(shù)據(jù)層)設(shè)計(jì)兩個(gè)部分的設(shè)計(jì),每一部分的設(shè)計(jì)都是一個(gè)龐大、復(fù)雜的工程,因此,通常都是結(jié)合軟件工程的原理和方法進(jìn)行數(shù)據(jù)庫(kù)軟件的設(shè)計(jì)。從一個(gè)應(yīng)用軟件開(kāi)發(fā)的角度講,一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的一般設(shè)計(jì)環(huán)節(jié)如圖1-1所示。圖1-1 數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)流程項(xiàng)目準(zhǔn)備需求分析數(shù)據(jù)庫(kù)基本理論數(shù)據(jù)庫(kù)規(guī)劃數(shù)據(jù)庫(kù)實(shí)施系統(tǒng)維護(hù)應(yīng)用開(kāi)發(fā)概念結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)物理設(shè)計(jì)數(shù)據(jù)庫(kù)實(shí)施與維護(hù)創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)表創(chuàng)建索引與視圖ASP.NET應(yīng)用開(kāi)發(fā)案例系統(tǒng)安全數(shù)據(jù)維護(hù)就數(shù)據(jù)庫(kù)系統(tǒng)的規(guī)劃設(shè)計(jì)來(lái)講,一般設(shè)計(jì)過(guò)程包括:需求分析、數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)實(shí)施及數(shù)據(jù)庫(kù)的運(yùn)
5、行維護(hù)6個(gè)環(huán)節(jié)。設(shè)計(jì)一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),首先要對(duì)系統(tǒng)的應(yīng)用環(huán)境進(jìn)行分析,掌握用戶需求要求,這是整個(gè)開(kāi)發(fā)的基礎(chǔ),需求分析的準(zhǔn)確與否,關(guān)系到數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)質(zhì)量,本任務(wù)將主要討論學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng)的需求分析這個(gè)環(huán)節(jié)。1. 需求分析的任務(wù)需求分析是指在開(kāi)發(fā)設(shè)計(jì)開(kāi)始階段,收集用戶的功能要求,了解系統(tǒng)的應(yīng)用環(huán)境,對(duì)需要使用的數(shù)據(jù)進(jìn)行收集整理,建立起一個(gè)完整數(shù)據(jù)集的過(guò)程。比如系統(tǒng)的使用用戶的種類、相關(guān)應(yīng)用的歷史數(shù)據(jù)、有關(guān)表單資料的查閱以及實(shí)際運(yùn)作流程等,從而得出所開(kāi)發(fā)系統(tǒng)的功能運(yùn)行過(guò)程。用戶需求包括數(shù)據(jù)和處理兩部分需求:數(shù)據(jù)需求是指數(shù)據(jù)庫(kù)中存儲(chǔ)哪些數(shù)據(jù)結(jié)構(gòu);處理需求是指用戶要完成什么處理功能,以及對(duì)這
6、些處理的響應(yīng)時(shí)間、處理方法等有什么要求。需求分析階段的任務(wù)主要包括以下幾個(gè)方面:(1) 分析用戶活動(dòng),產(chǎn)生業(yè)務(wù)流程圖了解用戶當(dāng)前的業(yè)務(wù)活動(dòng)和職能,理清其處理流程。把用戶業(yè)務(wù)分成若干個(gè)子處理過(guò)程,使每個(gè)處理功能明確、界面清楚,畫(huà)出業(yè)務(wù)流程圖。(2) 確定系統(tǒng)范圍,產(chǎn)生系統(tǒng)范圍圖在和用戶經(jīng)過(guò)充分討論的基礎(chǔ)上,確定計(jì)算機(jī)所能進(jìn)行數(shù)據(jù)處理的范圍,確定哪些工作由人工完成,哪些工作由計(jì)算機(jī)系統(tǒng)完成,即確定人機(jī)界面。(3) 分析用戶活動(dòng)所涉及的數(shù)據(jù),產(chǎn)生數(shù)據(jù)流圖深入分析用戶的業(yè)務(wù)處理,以數(shù)據(jù)流圖形式表示出數(shù)據(jù)庫(kù)的方向和對(duì)數(shù)據(jù)所進(jìn)行的加工。數(shù)據(jù)流圖有四個(gè)基本成分:數(shù)據(jù)流、加工或處理、文件、外部實(shí)體。(4) 分
7、析系統(tǒng)數(shù)據(jù),產(chǎn)生數(shù)據(jù)字典數(shù)據(jù)字典提供對(duì)數(shù)據(jù)庫(kù)時(shí)間描述的集中,它的功能是存儲(chǔ)和檢索各種數(shù)據(jù)描述,數(shù)據(jù)字典是數(shù)據(jù)收集和數(shù)據(jù)分析的主要成果,在數(shù)據(jù)庫(kù)設(shè)計(jì)中占有很重要地位。2. 需求分析的方法調(diào)查了解了用戶的需求以后,還需要進(jìn)一步分析和表達(dá)用戶的需求,用于需求分析的方法有很多種,主要的方法有自頂向下和自底向上兩種,其中自頂向下的結(jié)構(gòu)化分析方法(Structured Analysis,SA)是一種簡(jiǎn)單實(shí)用的方法。(1) SA方法SA方法是從最上層的系統(tǒng)組織入手,采用自頂向下、逐層分解的方法分析系統(tǒng)。SA方法把每個(gè)系統(tǒng)都抽象成圖1-2所示的數(shù)據(jù)流圖形式。圖1-2 系統(tǒng)最高層的數(shù)據(jù)流圖數(shù)據(jù)存儲(chǔ)數(shù)據(jù)來(lái)源數(shù)據(jù)輸
8、出處理數(shù)據(jù)流數(shù)據(jù)流信息要求處理要求在SA方法中,處理過(guò)程的處理邏輯常常借助判定表和判定樹(shù)來(lái)描述,系統(tǒng)中的數(shù)據(jù)則借助數(shù)據(jù)字典(DD)來(lái)描述。(2) 數(shù)據(jù)流圖數(shù)據(jù)流圖(Data Flow Diagram,DFD)表達(dá)了數(shù)據(jù)與處理的關(guān)系。數(shù)據(jù)流圖中的基本元素如下: 圓圈符:表示處理,輸入數(shù)據(jù)在此進(jìn)行變換產(chǎn)生輸出數(shù)據(jù)。在其中注明處理的名稱。 矩形符:描述一個(gè)輸入源點(diǎn)或輸出匯點(diǎn)。在其中注明源點(diǎn)或匯點(diǎn)的名稱。 箭頭:命名的箭頭描述一個(gè)數(shù)據(jù)流。內(nèi)容包括被加工的數(shù)據(jù)及其流向,流線上要注明數(shù)據(jù)名稱,箭頭代表數(shù)據(jù)流動(dòng)方向。 右開(kāi)口矩形框:向右開(kāi)口的矩形框表示文件和數(shù)據(jù)存儲(chǔ),要在其內(nèi)標(biāo)明相應(yīng)的具體名稱。(3) 數(shù)據(jù)
9、字典數(shù)據(jù)流圖表達(dá)了數(shù)據(jù)和處理的關(guān)系,數(shù)據(jù)字典則是系統(tǒng)中各類數(shù)據(jù)描述的集合,是各類數(shù)據(jù)結(jié)構(gòu)和屬性的清單。它與數(shù)據(jù)流圖互為解釋,數(shù)據(jù)字典貫穿于數(shù)據(jù)庫(kù)需求分析直到數(shù)據(jù)庫(kù)運(yùn)行的全過(guò)程,在不同的階段,其內(nèi)容形式和用途各有區(qū)別,在需求分析階段,它通常包含以下五個(gè)部分的內(nèi)容。 數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)是不可再分的數(shù)據(jù)單位,對(duì)數(shù)據(jù)項(xiàng)的描述,通常包括數(shù)據(jù)項(xiàng)名、含義、別名、類型、長(zhǎng)度、取值范圍以及與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系。 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)之間的組合關(guān)系。一個(gè)數(shù)據(jù)結(jié)構(gòu)可以由若干個(gè)數(shù)據(jù)項(xiàng)組成,也可以由若干個(gè)數(shù)據(jù)結(jié)構(gòu)組成,或有若干個(gè)數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)混合組成。它包括數(shù)據(jù)結(jié)構(gòu)名、含義及組成該數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)項(xiàng)名或數(shù)據(jù)結(jié)構(gòu)名。
10、數(shù)據(jù)流數(shù)據(jù)流可以是數(shù)據(jù)項(xiàng),也可以是數(shù)據(jù)結(jié)構(gòu),表示某一加工處理過(guò)程的輸入或輸出數(shù)據(jù)。對(duì)數(shù)據(jù)流的描述應(yīng)包括數(shù)據(jù)流名、說(shuō)明、流出的加工名,流入的加工名以及組成該數(shù)據(jù)流的數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)項(xiàng)。 數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)是處理過(guò)程中要存儲(chǔ)的數(shù)據(jù),它可以是手工憑證、手工文檔或計(jì)算機(jī)文檔。對(duì)數(shù)據(jù)存儲(chǔ)的描述應(yīng)包括數(shù)據(jù)存儲(chǔ)名、說(shuō)明、輸入數(shù)據(jù)流、輸出數(shù)據(jù)流、數(shù)據(jù)量、存取頻率和存取方式。 處理過(guò)程對(duì)處理過(guò)程的描述包括處理過(guò)程名、說(shuō)明、輸入數(shù)據(jù)流、輸出數(shù)據(jù)流,并簡(jiǎn)要說(shuō)明處理工作、頻度要求、數(shù)據(jù)量及響應(yīng)時(shí)間等。最終形成的數(shù)據(jù)流圖和數(shù)據(jù)字典是“系統(tǒng)需求分析說(shuō)明書(shū)”的主要內(nèi)容,是下一步進(jìn)行概念結(jié)構(gòu)設(shè)計(jì)的基礎(chǔ)。在本任務(wù)中,我們從項(xiàng)目準(zhǔn)備
11、的角度,對(duì)學(xué)生管理數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)先做一個(gè)整體的概括分析,對(duì)學(xué)生管理數(shù)據(jù)庫(kù)中所需要準(zhǔn)備的數(shù)據(jù)及其相關(guān)理論進(jìn)行一個(gè)框架層面上的了解,為后續(xù)進(jìn)行數(shù)據(jù)庫(kù)規(guī)劃和應(yīng)用開(kāi)發(fā)作好充足的知識(shí)和技能上的準(zhǔn)備。任務(wù)實(shí)施學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng),具有不同的用戶群體,不同的用戶群體又對(duì)數(shù)據(jù)有著不同的需求要求,正確地分析相應(yīng)用戶的要求并恰當(dāng)?shù)貙⑵浔磉_(dá)出來(lái),是學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)的起始工作。在本任務(wù)實(shí)施前,首先要對(duì)用戶環(huán)境進(jìn)行準(zhǔn)確的分析。1. 用戶類型分析學(xué)生管理數(shù)據(jù)庫(kù)通常的用戶為學(xué)生、教師和教學(xué)管理人員。不同的用戶有不同的信息查詢和信息管理要求。學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng),要方便應(yīng)用系統(tǒng)的管理員對(duì)數(shù)據(jù)庫(kù)中的基本信息數(shù)據(jù)進(jìn)行管理和維護(hù)
12、,教師用戶能夠?qū)拘畔⑦M(jìn)行查詢并對(duì)部分信息進(jìn)行更新管理,學(xué)生對(duì)與自己相關(guān)的數(shù)據(jù)可以進(jìn)行查詢,對(duì)個(gè)人的基本信息可以進(jìn)行維護(hù)。2. 功能需求分析學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng)其主要功能是實(shí)現(xiàn)了基礎(chǔ)資料、學(xué)生管理、課程管理和成績(jī)管理四大模塊的管理。其中,基礎(chǔ)資料中又包括院系、班級(jí)、宿舍、教師基本資料的管理,包括了對(duì)其的增加、刪除、修改和查詢;學(xué)生管理中,包括學(xué)生檔案和學(xué)生學(xué)籍的管理,包括了對(duì)其中學(xué)生各個(gè)屬性的增加、刪除、修改和查詢;課程管理中,包括了對(duì)新的課程進(jìn)行設(shè)置,以及對(duì)班級(jí)選課的管理;成績(jī)管理中,包括了對(duì)學(xué)生成績(jī)的錄入和對(duì)學(xué)生成績(jī)進(jìn)行分析。任務(wù)實(shí)踐1. 設(shè)計(jì)完成學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)流圖根據(jù)任務(wù)實(shí)施環(huán)
13、節(jié)對(duì)學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用環(huán)境的分析,繪制學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)流程圖,如圖1-3所示。管理人員學(xué)生教師管理教師信息管理學(xué)生成績(jī)管理學(xué)生信息有關(guān)人員選課管理授課信息查詢統(tǒng)計(jì)選課信息教師信息教師授課信息學(xué)生信息查詢統(tǒng)計(jì)要求結(jié)果圖1-3 學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)流圖2. 設(shè)計(jì)相關(guān)功能模塊。根據(jù)功能需求分析的情況,確定學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng)的功能模塊如下:(1) 基本信息管理:包括院系信息管理和專業(yè)信息管理等功能;(2) 班級(jí)信息管理:包括班級(jí)信息管理和班級(jí)信息瀏覽等功能;(3) 教師信息管理:包括教師信息錄入和管理等功能;(4) 學(xué)生基本信息管理:包括學(xué)生信息的錄入、管理、查詢以及導(dǎo)入、導(dǎo)出等功能;(
14、5) 系統(tǒng)維護(hù):主要用于實(shí)現(xiàn)數(shù)據(jù)的備份、還原和清理功能;(6) 用戶管理:主要用于實(shí)現(xiàn)用戶管理、更改密碼等功能。任務(wù)2 了解數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)任務(wù)要求通過(guò)本任務(wù)的學(xué)習(xí)應(yīng)掌握以下內(nèi)容:數(shù)據(jù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)的基本知識(shí)。知識(shí)儲(chǔ)備1. 數(shù)據(jù)庫(kù)管理技術(shù)的產(chǎn)生數(shù)據(jù)庫(kù)技術(shù)產(chǎn)生于20世紀(jì)60年代末70年代初,其主要目的是有效地管理和存取大量的數(shù)據(jù)資源。近年來(lái),數(shù)據(jù)庫(kù)技術(shù)和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展相互滲透,相互促進(jìn),已成為當(dāng)今計(jì)算機(jī)領(lǐng)域發(fā)展迅速,應(yīng)用廣泛的兩大領(lǐng)域,數(shù)據(jù)庫(kù)技術(shù)不僅應(yīng)用于事務(wù)處理,并且進(jìn)一步應(yīng)用到情報(bào)檢索,人工智能,專家系統(tǒng),計(jì)算機(jī)輔助設(shè)計(jì)等數(shù)據(jù)管理領(lǐng)域。談數(shù)據(jù)管理技術(shù),先要講到數(shù)據(jù)處
15、理。所謂數(shù)據(jù)處理,是指對(duì)各種數(shù)據(jù)進(jìn)行收集、存儲(chǔ)、加工和傳播的一系列活動(dòng)的總和。縱觀數(shù)據(jù)處理的歷史,可以認(rèn)為,數(shù)據(jù)庫(kù)技術(shù)萌芽于五十年代后期,形成于六十年代中期,成熟于七十年代,廣泛應(yīng)用于八十年代。2. 數(shù)據(jù)庫(kù)管理技術(shù)的發(fā)展數(shù)據(jù)庫(kù)管理技術(shù)主要研究如何存儲(chǔ)、使用和管理數(shù)據(jù),是計(jì)算機(jī)數(shù)據(jù)管理技術(shù)發(fā)展的新階段,是計(jì)算機(jī)技術(shù)中發(fā)展最快、應(yīng)用最廣的技術(shù)之一。數(shù)據(jù)管理的水平是和計(jì)算機(jī)硬件、軟件的發(fā)展相適應(yīng)的,隨著計(jì)算機(jī)技術(shù)的發(fā)展,數(shù)據(jù)管理技術(shù)經(jīng)歷了三個(gè)階段的發(fā)展:人工管理階段;文件系統(tǒng)階段;數(shù)據(jù)系統(tǒng)階段。(1) 人工管理階段(20世紀(jì)50年代)在這一階段,計(jì)算機(jī)主要用于科學(xué)計(jì)算,硬件設(shè)施方面,外部存儲(chǔ)只有磁帶
16、、卡片和紙帶等,沒(méi)有磁盤(pán)等直接存取設(shè)備。軟件方面,只有匯編語(yǔ)言,沒(méi)有操作系統(tǒng)和數(shù)據(jù)管理軟件,數(shù)據(jù)量小,數(shù)據(jù)無(wú)結(jié)構(gòu),由用戶直接管理,數(shù)據(jù)依賴于特定的應(yīng)用程序,缺乏獨(dú)立性。此階段應(yīng)用程序與數(shù)據(jù)之間的關(guān)系是一一對(duì)應(yīng)的關(guān)系,如圖1-4所示。圖1-4 人工管理階段應(yīng)用程序與數(shù)據(jù)之間的關(guān)系 應(yīng)用程序1 應(yīng)用程序2 應(yīng)用程序n 數(shù)據(jù)組n 數(shù)據(jù)組2 數(shù)據(jù)組1 人工管理階段的數(shù)據(jù)具有以下幾個(gè)特點(diǎn): 數(shù)據(jù)不保存當(dāng)時(shí)的計(jì)算機(jī)主要用于科學(xué)計(jì)算,一般不需要長(zhǎng)期保存數(shù)據(jù)。每處理一批數(shù)據(jù),都要特地為這批數(shù)據(jù)編制相應(yīng)的應(yīng)用程序,計(jì)算任務(wù)完成后,用戶作業(yè)退出計(jì)算機(jī)系統(tǒng),數(shù)據(jù)空間隨著程序空間一起被釋放。 沒(méi)有專門(mén)的軟件對(duì)數(shù)據(jù)進(jìn)行
17、管理每個(gè)應(yīng)用程序都要包括存儲(chǔ)結(jié)構(gòu)、存取方法、輸入/輸出方式等內(nèi)容的設(shè)計(jì)。一旦數(shù)據(jù)發(fā)生改變,就必須修改應(yīng)用程序,因而數(shù)據(jù)與程序不具有獨(dú)立性。 數(shù)據(jù)不共享一組數(shù)據(jù)對(duì)應(yīng)一個(gè)應(yīng)用程序。如果多個(gè)應(yīng)用程序涉及某些相同的數(shù)據(jù),則必須各自進(jìn)行定義,因此程序間有大量的數(shù)據(jù)冗余。 數(shù)據(jù)不具有獨(dú)立性數(shù)據(jù)的獨(dú)立性包括了數(shù)據(jù)的邏輯獨(dú)立性和數(shù)據(jù)的物理獨(dú)立性。當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)發(fā)生變化時(shí),必須對(duì)應(yīng)用程序做相應(yīng)的修改。(2) 文件系統(tǒng)階段(20世紀(jì)50年代后期60年代中期)圖1-5 文件系統(tǒng)階段應(yīng)用程序與數(shù)據(jù)之間的關(guān)系應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n文件1文件2文件n存取方法文件系統(tǒng)在這一階段,計(jì)算機(jī)已大量用于數(shù)據(jù)的管
18、理。硬件方面,有了磁盤(pán)、磁鼓等直接存取存儲(chǔ)設(shè)備。軟件方面,操作系統(tǒng)中已經(jīng)有了專門(mén)的管理軟件,一般稱為文件系統(tǒng)。數(shù)據(jù)處理方式有批處理,也有聯(lián)機(jī)實(shí)時(shí)處理。此階段應(yīng)用程序與數(shù)據(jù)之間的關(guān)系如圖1-5所示。文件系統(tǒng)階段的數(shù)據(jù)具有以下幾個(gè)特點(diǎn): 數(shù)據(jù)長(zhǎng)期保存數(shù)據(jù)以“文件”形式可長(zhǎng)期保存在外部存儲(chǔ)器的磁盤(pán)上。由于計(jì)算機(jī)大量用于數(shù)據(jù)處理,數(shù)據(jù)需要長(zhǎng)期保留在外存上反復(fù)進(jìn)行查詢、修改、插入及刪除等操作。 文件系統(tǒng)管理數(shù)據(jù)所有的文件由文件管理系統(tǒng)統(tǒng)一進(jìn)行管理和維護(hù),數(shù)據(jù)文件可以脫離程序而獨(dú)立存在。文件系統(tǒng)把數(shù)據(jù)組織成相互獨(dú)立的數(shù)據(jù)文件,按文件名訪問(wèn),按記錄進(jìn)行存取,可以對(duì)文件進(jìn)行修改、插入及刪除操作。文件系統(tǒng)實(shí)現(xiàn)了
19、記錄內(nèi)的結(jié)構(gòu)性,但文件之間整體無(wú)結(jié)構(gòu),數(shù)據(jù)之間的聯(lián)系要通過(guò)程序去構(gòu)造。程序和數(shù)據(jù)之間由文件系統(tǒng)提供存取方法進(jìn)行轉(zhuǎn)換,使應(yīng)用程序與數(shù)據(jù)之間有了一定的獨(dú)立性。 數(shù)據(jù)共享性差,冗余度大由于文件之間缺乏聯(lián)系,造成每個(gè)應(yīng)用程序都有對(duì)應(yīng)的文件,而不能共享相同的數(shù)據(jù),因此,數(shù)據(jù)的冗余度大,同樣的數(shù)據(jù)有可能在多個(gè)文件中重復(fù)存儲(chǔ)。這往往在進(jìn)行更新操作時(shí)就可能使同樣的數(shù)據(jù)在不同的文件中不一樣,造成數(shù)據(jù)的不一致性。 數(shù)據(jù)獨(dú)立性差文件系統(tǒng)中的文件是為某一特定應(yīng)用服務(wù)的,文件的邏輯結(jié)構(gòu)對(duì)該應(yīng)用程序來(lái)說(shuō)是優(yōu)化的,因此要想對(duì)現(xiàn)有的數(shù)據(jù)增加一些新的應(yīng)用會(huì)很困難,系統(tǒng)不容易擴(kuò)充。一旦數(shù)據(jù)的邏輯結(jié)構(gòu)改變,必須修改應(yīng)用程序,修改文
20、件結(jié)構(gòu)的定義。因此數(shù)據(jù)與程序之間仍缺乏獨(dú)立性??梢?jiàn),文件系統(tǒng)仍然是一個(gè)不具有彈性的整體無(wú)結(jié)構(gòu)的數(shù)據(jù)集合,即文件之間是孤立的,不能反映現(xiàn)實(shí)世界事物之間的內(nèi)在聯(lián)系。(3) 數(shù)據(jù)庫(kù)系統(tǒng)階段(20世紀(jì)60年代后期至今)在此階段,數(shù)據(jù)管理規(guī)模一再擴(kuò)大,數(shù)據(jù)量急劇增加。硬件已有大容量磁盤(pán),硬件價(jià)格下降,軟件價(jià)格上升。介于這種情況,為了提高系統(tǒng)性能 ,為了解決共享數(shù)據(jù)的需求,從文件系統(tǒng)中分離出了專門(mén)的軟件系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng),用來(lái)統(tǒng)一管理數(shù)據(jù)。數(shù)據(jù)庫(kù)階段應(yīng)用程序與數(shù)據(jù)之間的關(guān)系如圖1-6所示。應(yīng)用程序1應(yīng)用程序1應(yīng)用程序n數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)數(shù)據(jù)1數(shù)據(jù)n數(shù)據(jù)2數(shù)據(jù)庫(kù)DB圖1-6 數(shù)據(jù)庫(kù)階段應(yīng)用程序與數(shù)據(jù)
21、之間的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)階段的數(shù)據(jù)管理具有以下幾個(gè)特點(diǎn): 數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)庫(kù)是存儲(chǔ)在磁盤(pán)等外部存儲(chǔ)設(shè)備上的數(shù)據(jù)集合,是按一定的數(shù)據(jù)結(jié)構(gòu)組織起來(lái)的。與文件系統(tǒng)相比,文件系統(tǒng)中的文件之間不存在聯(lián)系,因而從總體上看數(shù)據(jù)沒(méi)有結(jié)構(gòu)的;而數(shù)據(jù)庫(kù)中文件是相互聯(lián)系的,并在總體上有一定的結(jié)構(gòu)形式。這就是文件系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)的最大區(qū)別。數(shù)據(jù)庫(kù)正是通過(guò)文件之間的聯(lián)系反映現(xiàn)實(shí)世界事物間的自然聯(lián)系。 數(shù)據(jù)的共享性高,冗余度低,易擴(kuò)充數(shù)據(jù)庫(kù)中的數(shù)據(jù)是面向整個(gè)系統(tǒng),是有結(jié)構(gòu)的數(shù)據(jù),不但可以被多個(gè)應(yīng)用共享,而且容易增加新的應(yīng)用,易于修改、易于擴(kuò)充。這樣就大大減少了數(shù)據(jù)冗余,提高了共享性,節(jié)約存儲(chǔ)空間。數(shù)據(jù)共享還能夠避免數(shù)據(jù)之間的不
22、相容性與不一致性。 數(shù)據(jù)獨(dú)立性高數(shù)據(jù)獨(dú)立是數(shù)據(jù)庫(kù)技術(shù)努力追求的目標(biāo),數(shù)據(jù)獨(dú)立性包括數(shù)據(jù)的物理獨(dú)立性和數(shù)據(jù)的邏輯獨(dú)立性兩方面。物理獨(dú)立性是指用戶的應(yīng)用程序與存儲(chǔ)在磁盤(pán)上的數(shù)據(jù)庫(kù)中數(shù)據(jù)是相互獨(dú)立的。數(shù)據(jù)在磁盤(pán)上存儲(chǔ)由DBMS管理,用戶程序不需要了解,應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),這樣當(dāng)數(shù)據(jù)的物理存儲(chǔ)改變了,應(yīng)用程序不用改變。邏輯獨(dú)立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)是相互獨(dú)立的,當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改時(shí),用戶程序也可以不變。在數(shù)據(jù)方式下,用戶不是自建文件,而是取自數(shù)據(jù)庫(kù)中的某個(gè)子集,是數(shù)據(jù)庫(kù)管理系統(tǒng)從數(shù)據(jù)庫(kù)映射出來(lái)的,所以叫做邏輯文件,但實(shí)際上的物理存儲(chǔ)只出現(xiàn)一次。 數(shù)據(jù)由數(shù)據(jù)庫(kù)管理系統(tǒng)統(tǒng)一
23、管理和控制。數(shù)據(jù)庫(kù)系統(tǒng)提供了4個(gè)方面的數(shù)據(jù)控制功能,分別是并發(fā)控制、恢復(fù)、完整性和安全性。數(shù)據(jù)庫(kù)中各個(gè)應(yīng)用程序所使用的數(shù)據(jù)由數(shù)據(jù)庫(kù)系統(tǒng)統(tǒng)一規(guī)定,按照一定的數(shù)據(jù)模型組織和建立,由系統(tǒng)統(tǒng)一管理和集中控制,以保證數(shù)據(jù)的完整性、安全性,并在多用戶同時(shí)使用數(shù)據(jù)庫(kù)時(shí)進(jìn)行并發(fā)控制,在發(fā)生故障后對(duì)系統(tǒng)進(jìn)行恢復(fù)。任務(wù)實(shí)施數(shù)據(jù)庫(kù)理論及其應(yīng)用技術(shù)是在人們運(yùn)用計(jì)算機(jī)進(jìn)行數(shù)據(jù)處理過(guò)程中產(chǎn)生的一門(mén)有關(guān)數(shù)據(jù)采集、整理、存儲(chǔ)、分類、排序、檢索、維護(hù)、加工、統(tǒng)計(jì)和傳輸?shù)纫幌盗胁僮鬟^(guò)程的知識(shí)和技術(shù),其中有很多概念性的知識(shí)需要理解。本任務(wù)作為數(shù)據(jù)庫(kù)概念設(shè)計(jì)的前述知識(shí),通過(guò)任務(wù)實(shí)踐來(lái)介紹數(shù)據(jù)庫(kù)系統(tǒng)的基本概念。任務(wù)實(shí)踐1. 數(shù)據(jù)(Da
24、ta)(1) 數(shù)據(jù)的定義數(shù)據(jù)是描述事物的符號(hào)記錄。數(shù)據(jù)的概念包括兩個(gè)方面:一是存儲(chǔ)在某一種媒體上的數(shù)據(jù)形式;二是描述事物特性的數(shù)據(jù)內(nèi)容。(2) 數(shù)據(jù)的表現(xiàn)形式數(shù)據(jù)是數(shù)據(jù)庫(kù)中存儲(chǔ)的基本對(duì)象。數(shù)據(jù)在大多數(shù)人的第一印象中就是數(shù)字,其實(shí)數(shù)字只是其中一種最簡(jiǎn)單的表現(xiàn)形式,是數(shù)據(jù)的一種傳統(tǒng)和狹義的理解。按廣義的理解來(lái)說(shuō),數(shù)據(jù)的種類有很多,如文字、圖形、圖像、聲音、視頻、語(yǔ)言以及學(xué)校學(xué)生的檔案等,都是數(shù)據(jù),都可以轉(zhuǎn)化為計(jì)算機(jī)可以識(shí)別的標(biāo)識(shí),并以數(shù)字化后的二進(jìn)制形式存入計(jì)算機(jī)。在日常生活中,人們需要描述各種事物,可直接用自然語(yǔ)言描述。在計(jì)算機(jī)中,為了存儲(chǔ)和處理這些事物,就要抽出對(duì)這些事物感興趣的特征組成一個(gè)記
25、錄來(lái)描述。例如:在學(xué)生管理數(shù)據(jù)庫(kù)中,學(xué)生的基本信息情況是學(xué)生的姓名、性別、出生年月,這都說(shuō)明了學(xué)生的基本特征,就可以這樣來(lái)描述一個(gè)學(xué)生:(張三,男,1994/04)。(3) 數(shù)據(jù)與信息的關(guān)系信息與數(shù)據(jù)既有聯(lián)系,又有區(qū)別。信息是對(duì)數(shù)據(jù)加工處理之后所得到的并可以對(duì)決策產(chǎn)生影響的數(shù)據(jù)。數(shù)據(jù)是信息的表現(xiàn)形式;信息是數(shù)據(jù)有意義的表示??梢杂脠D1-7表示出數(shù)據(jù)與信息之間的關(guān)系。數(shù)據(jù)數(shù)據(jù)處理信息圖1-7 數(shù)據(jù)與信息關(guān)系圖(4) 數(shù)據(jù)與其語(yǔ)義學(xué)生記錄就是一個(gè)數(shù)據(jù)。對(duì)于此記錄來(lái)說(shuō),要表示特定的含義,必須對(duì)它給予解釋說(shuō)明,數(shù)據(jù)解釋的含義稱為數(shù)據(jù)的語(yǔ)義,數(shù)據(jù)與其語(yǔ)義是不可分的??梢赃@樣認(rèn)為:數(shù)據(jù)是信息的符號(hào)表示或載
26、體,信息則是數(shù)據(jù)的內(nèi)涵,是對(duì)數(shù)據(jù)的語(yǔ)義解釋。例如:學(xué)生記錄(張三,男,1994/04)可以解釋為張三是名男同學(xué),出生年月為1994年4月,這樣它才具有了表述信息的功能。2. 數(shù)據(jù)庫(kù)(DB,DataBase)數(shù)據(jù)庫(kù)是指長(zhǎng)期存放在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合。從字面意思來(lái)說(shuō)就是存放數(shù)據(jù)的倉(cāng)庫(kù),該倉(cāng)庫(kù)建立在計(jì)算機(jī)存儲(chǔ)設(shè)備上,且數(shù)據(jù)是按一定的格式存放的,可供多用戶共享,具有盡可能小的冗余度和較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性。它不僅描述事物的數(shù)據(jù)本身,還包括相關(guān)事物之間的聯(lián)系。數(shù)據(jù)庫(kù)具有兩個(gè)比較突出的特點(diǎn)。(1) 集成性把在特定的環(huán)境中與某應(yīng)用程序相關(guān)的數(shù)據(jù)及其聯(lián)系集中在一塊并按照一定的結(jié)構(gòu)形式進(jìn)行
27、存儲(chǔ),即集成性。例如,可以將圖書(shū)館的館藏圖書(shū)和圖書(shū)借閱情況保存在數(shù)據(jù)庫(kù)中,以便于對(duì)圖書(shū)信息的管理。(2) 共享性數(shù)據(jù)庫(kù)中的數(shù)據(jù)能被多個(gè)應(yīng)用程序的用戶所使用,即共享性。例如,學(xué)生管理數(shù)據(jù)庫(kù)即可以給教務(wù)處提供學(xué)生信息,又可以給學(xué)工處等其他部門(mén)提供學(xué)生信息。數(shù)據(jù)庫(kù)的用戶分為3種: 數(shù)據(jù)庫(kù)管理員:他們使用數(shù)據(jù)庫(kù)管理系統(tǒng)提供的工具軟件對(duì)數(shù)據(jù)庫(kù)進(jìn)行各種維護(hù)和管理,以便使其更好地為其他用戶服務(wù)。 應(yīng)用程序員:他們使用數(shù)據(jù)庫(kù)語(yǔ)言和程序設(shè)計(jì)語(yǔ)言編寫(xiě)使用和操縱數(shù)據(jù)庫(kù)中數(shù)據(jù)的程序。 非程序員用戶:他們通過(guò)聯(lián)機(jī)終端設(shè)備,使用數(shù)據(jù)庫(kù)查詢語(yǔ)言訪問(wèn)數(shù)據(jù)庫(kù)。3. 數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS,DataBase Managenen
28、t System)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)1數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)n數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS數(shù)據(jù)庫(kù)使用數(shù)據(jù)管理數(shù)據(jù)存儲(chǔ)數(shù)據(jù)圖1-8 數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心組成部分,是一種操縱和管理數(shù)據(jù)庫(kù)的大型軟件,用于建立、使用和維護(hù)數(shù)據(jù)庫(kù)。用戶通過(guò)DBMS訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù),數(shù)據(jù)庫(kù)管理員也通過(guò)DBMS進(jìn)行數(shù)據(jù)庫(kù)的維護(hù)工作。用戶在數(shù)據(jù)庫(kù)系統(tǒng)中的一些操作,如數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)庫(kù)的運(yùn)行管理及數(shù)據(jù)控制等都是數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)實(shí)現(xiàn)的。如圖1-8所示。數(shù)據(jù)庫(kù)管理系統(tǒng)主要包括以下幾個(gè)功能: 數(shù)據(jù)定義DBMS提供數(shù)據(jù)定義語(yǔ)言(DDL,Data Definition Language),定義數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu),兩級(jí)
29、映像以及定義數(shù)據(jù)的完整性和安全控制等約束。用戶可以方便地對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象(包括表、視圖、索引、存儲(chǔ)過(guò)程等)進(jìn)行定義。 數(shù)據(jù)操縱DBMS提供數(shù)據(jù)操縱語(yǔ)言(DML,Data Manipulation Language),用戶可以使用DML操縱數(shù)據(jù)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的基本操作,如查詢、插入、刪除及修改等。 數(shù)據(jù)庫(kù)的運(yùn)行管理數(shù)據(jù)庫(kù)的運(yùn)行管理功能是DBMS的運(yùn)行控制、管理功能,所有數(shù)據(jù)庫(kù)的操作都要在數(shù)據(jù)庫(kù)管理系統(tǒng)的統(tǒng)一管理和控制下進(jìn)行,以保證事務(wù)的正確運(yùn)行和數(shù)據(jù)的安全性、完整性。這也是DBMS運(yùn)行時(shí)的核心部分,它包括如下內(nèi)容: 數(shù)據(jù)的并發(fā)控制 數(shù)據(jù)的安全性保護(hù) 數(shù)據(jù)的完整性控制 數(shù)據(jù)庫(kù)恢復(fù) 數(shù)據(jù)字典數(shù)據(jù)字
30、典是一個(gè)自動(dòng)的或手動(dòng)的存儲(chǔ)數(shù)據(jù)元的定義和屬性的文檔。對(duì)數(shù)據(jù)的數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、處理邏輯、外部實(shí)體等進(jìn)行定義和描述,其目的是對(duì)數(shù)據(jù)流程圖中的各個(gè)元素做出詳細(xì)的說(shuō)明。數(shù)據(jù)字典本身也可以看成是一個(gè)數(shù)據(jù)庫(kù),只不過(guò)它是系統(tǒng)數(shù)據(jù)庫(kù),是一組表和視圖結(jié)構(gòu),存放在SYSTEM表空間中。4. 數(shù)據(jù)庫(kù)系統(tǒng)(DBS,DataBase System)數(shù)據(jù)庫(kù)系統(tǒng)是由數(shù)據(jù)庫(kù)及其管理軟件組成的系統(tǒng),是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng),其構(gòu)成主要有數(shù)據(jù)庫(kù)及相關(guān)硬件、數(shù)據(jù)庫(kù)管理系統(tǒng)及其開(kāi)發(fā)工具、應(yīng)用系統(tǒng)、數(shù)據(jù)庫(kù)管理員和用戶這幾部分,其中,在數(shù)據(jù)庫(kù)的建立、使用和維護(hù)的過(guò)程要有專門(mén)的人員來(lái)完成,這些人就被稱為數(shù)據(jù)
31、庫(kù)管理員(DBA,DataBase Administrator)。用戶用戶用戶應(yīng)用系統(tǒng)應(yīng)用開(kāi)發(fā)工具數(shù)據(jù)庫(kù)管理員(DBA)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)操作系統(tǒng)(OS)數(shù)據(jù)庫(kù)(DB)圖1-9 數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)如圖1-9所示。數(shù)據(jù)庫(kù)系統(tǒng)一般由4個(gè)部分組成: 數(shù)據(jù)庫(kù):是指長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的,有組織,可共享的數(shù)據(jù)的集合。數(shù)據(jù)庫(kù)中的數(shù)據(jù)按一定的數(shù)學(xué)模型組織、描述和存儲(chǔ),具有較小的冗余,較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶共享。 硬件:構(gòu)成計(jì)算機(jī)系統(tǒng)的各種物理設(shè)備,包括存儲(chǔ)所需的外部設(shè)備。硬件的配置應(yīng)滿足整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的需要。 軟件:包括操作系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)及應(yīng)用程序。 人員:主要有4
32、類。第一類為系統(tǒng)分析員和數(shù)據(jù)庫(kù)設(shè)計(jì)人員,系統(tǒng)分析員負(fù)責(zé)應(yīng)用系統(tǒng)的需求分析和規(guī)范說(shuō)明,并參與數(shù)據(jù)庫(kù)系統(tǒng)的概要設(shè)計(jì)。數(shù)據(jù)庫(kù)設(shè)計(jì)人員負(fù)責(zé)數(shù)據(jù)庫(kù)中數(shù)據(jù)的確定、數(shù)據(jù)庫(kù)各級(jí)模式的設(shè)計(jì)。第二類為應(yīng)用程序員,負(fù)責(zé)編寫(xiě)使用數(shù)據(jù)庫(kù)的應(yīng)用程序。第三類為最終用戶,他們利用系統(tǒng)的接口或查詢語(yǔ)言訪問(wèn)數(shù)據(jù)庫(kù)。第四類為數(shù)據(jù)庫(kù)管理員,負(fù)責(zé)數(shù)據(jù)庫(kù)的總體信息控制。數(shù)據(jù)庫(kù)系統(tǒng)在整個(gè)計(jì)算機(jī)系統(tǒng)中的地位如圖1-10所示。應(yīng)用開(kāi)發(fā)工具最終用戶圖1-10 數(shù)據(jù)庫(kù)在計(jì)算機(jī)系統(tǒng)中的地位編譯系統(tǒng)硬件DBMS應(yīng)用系統(tǒng)操作系統(tǒng)任務(wù)3數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)任務(wù)要求1. 了解三級(jí)組織結(jié)構(gòu)描述方法;2. 熟悉模式之間的映射關(guān)系;3. 掌握數(shù)據(jù)模型的概念。知識(shí)儲(chǔ)備
33、數(shù)據(jù)庫(kù)系統(tǒng)有著嚴(yán)謹(jǐn)?shù)捏w系結(jié)構(gòu)。雖然各個(gè)廠家、各個(gè)用戶使用的數(shù)據(jù)庫(kù)管理系統(tǒng)產(chǎn)品類型和規(guī)模可能相差很大,但它們?cè)隗w系結(jié)構(gòu)上通常都具有相同的特征,即采用三級(jí)模式結(jié)構(gòu),并提供兩種映像功能。1. 數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式從數(shù)據(jù)庫(kù)管理角度看,數(shù)據(jù)系統(tǒng)通常采用三級(jí)模式結(jié)構(gòu),這是數(shù)據(jù)庫(kù)管理系統(tǒng)內(nèi)部的系統(tǒng)結(jié)構(gòu);從數(shù)據(jù)庫(kù)最終用戶角度看,數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)分為集中式結(jié)構(gòu)、分布式結(jié)構(gòu)、客戶/服務(wù)器結(jié)構(gòu),這是數(shù)據(jù)庫(kù)系統(tǒng)外部的結(jié)構(gòu)。數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)是指數(shù)據(jù)庫(kù)系統(tǒng)由外模式、概念模式、內(nèi)模式三級(jí)構(gòu)成,如圖1-11所示。應(yīng)用程序1應(yīng)用程序2應(yīng)用程序3外模式1外模式2外模式/模式映射模式模式/內(nèi)模式映射內(nèi)模式物理數(shù)據(jù)庫(kù)外模式(
34、用戶級(jí)數(shù)據(jù)庫(kù))模式(概念級(jí)數(shù)據(jù)庫(kù))內(nèi)模式(物理級(jí)數(shù)據(jù)庫(kù))圖1-11 數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)(1) 內(nèi)模式內(nèi)模式也稱為存儲(chǔ)模式,一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)內(nèi)模式,它是整個(gè)數(shù)據(jù)庫(kù)的最底層表示。內(nèi)模式是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述,是數(shù)據(jù)在數(shù)據(jù)內(nèi)部的表示方式。內(nèi)模式定義的是存儲(chǔ)記錄的類型、存儲(chǔ)記錄的物理順序、索引和存儲(chǔ)路徑等數(shù)據(jù)的存儲(chǔ)組織。DBMS提供了內(nèi)模式描述語(yǔ)言(內(nèi)模式DDL)來(lái)嚴(yán)格定義內(nèi)模式。(2) 模式模式也稱為邏輯模式或概念模式,是數(shù)據(jù)庫(kù)全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶的公共數(shù)據(jù)視圖,它是數(shù)據(jù)庫(kù)模式結(jié)構(gòu)的中間層,既不涉及數(shù)據(jù)的物理存儲(chǔ)細(xì)節(jié)和硬件環(huán)境,也與具體的應(yīng)用程序、所使用的應(yīng)用開(kāi)
35、發(fā)工具及高級(jí)程序設(shè)計(jì)語(yǔ)言無(wú)關(guān)。模式實(shí)際上是數(shù)據(jù)庫(kù)在邏輯上的視圖,一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)模式。定義模式時(shí),不僅要定義數(shù)據(jù)的邏輯結(jié)構(gòu)還要定義數(shù)據(jù)記錄由哪些數(shù)據(jù)項(xiàng)組成,以及數(shù)據(jù)項(xiàng)的名字、類型、取值范圍等,而且要定義數(shù)據(jù)之間的聯(lián)系,定義與數(shù)據(jù)有關(guān)的安全性、完整性要求。DBMS提供了模式描述語(yǔ)言(模式DDL)來(lái)嚴(yán)格地定義模式。(3) 外模式外模式也稱為子模式或用戶模式,它是數(shù)據(jù)庫(kù)用戶(包括應(yīng)用程序員和最終用戶)能夠看見(jiàn)和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式一般是模式的子集。一個(gè)數(shù)據(jù)庫(kù)可以有多個(gè)外模式。這樣,不同的用戶通過(guò)不同的外模式實(shí)現(xiàn)各自的
36、數(shù)據(jù)視圖,也達(dá)到共享數(shù)據(jù)的目的。同一外模式可以被一個(gè)用戶的多個(gè)應(yīng)用程序所使用,但一個(gè)應(yīng)用程序只能使用一個(gè)外模式。外模式是保證數(shù)據(jù)庫(kù)安全性的一個(gè)有力措施。每個(gè)用戶只能看見(jiàn)和訪問(wèn)所對(duì)應(yīng)的外模式中的數(shù)據(jù),數(shù)據(jù)庫(kù)的其余數(shù)據(jù)是不可見(jiàn)的。DBMS提供了外模式描述語(yǔ)言(外模式DDL)來(lái)嚴(yán)格地定義外模式。2. 數(shù)據(jù)庫(kù)的兩級(jí)映射數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式是對(duì)數(shù)據(jù)的三個(gè)抽象級(jí)別,它把數(shù)據(jù)的具體組織留給DBMS管理,使用戶能邏輯地、抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計(jì)算機(jī)中的具體表示方式與存儲(chǔ)方式。為了能夠在內(nèi)部實(shí)現(xiàn)這三個(gè)抽象層次的聯(lián)系和轉(zhuǎn)換,DBMS在這三級(jí)模式之間提供了兩層映射。(1) 外模式/模式映射。對(duì)應(yīng)于同一個(gè)模
37、式,可以有任意多個(gè)外模式。它定義了某一個(gè)外模式和模式之間的對(duì)應(yīng)關(guān)系,這些映射定義通常包含在各自的外模式中,當(dāng)模式改變時(shí),該映射要做相應(yīng)的改變,以保證外模式保持不變,實(shí)現(xiàn)了數(shù)據(jù)與程序的邏輯獨(dú)立性。(2) 模式/內(nèi)模式映射。它定義了數(shù)據(jù)邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系,說(shuō)明邏輯記錄和字段在內(nèi)部是如何表示的。這樣,當(dāng)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),可相應(yīng)地修改該映射,從而使模式保持不變,保證了數(shù)據(jù)與程序的物理獨(dú)立性。正是這兩層映射保證了數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)具有較高的邏輯獨(dú)立性和物理獨(dú)立性。模式是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,它僅僅涉及到型的描述,不涉及到具體的值。模式的一個(gè)具體值稱為一個(gè)實(shí)例,同一個(gè)
38、模式可以有很多實(shí)例。模式是相對(duì)穩(wěn)定的,而實(shí)例是相對(duì)變動(dòng)的,因?yàn)閿?shù)據(jù)庫(kù)中的數(shù)據(jù)是在不斷更新。模式反映的是數(shù)據(jù)的結(jié)構(gòu)及其聯(lián)系,而實(shí)例反映的是數(shù)據(jù)庫(kù)某一時(shí)刻的狀態(tài)。3. 數(shù)據(jù)模型數(shù)據(jù)模型是現(xiàn)實(shí)世界中數(shù)據(jù)特征的抽象。在數(shù)據(jù)庫(kù)中采用數(shù)據(jù)模型來(lái)抽象、表示和處理現(xiàn)實(shí)世界中的數(shù)據(jù)和信息。數(shù)據(jù)模型應(yīng)滿足三方面的要求:(1) 能夠比較真實(shí)地模擬現(xiàn)實(shí)世界;(2) 容易為人所理解;(3) 便于在計(jì)算機(jī)上實(shí)現(xiàn)。4. 數(shù)據(jù)模型的分類在數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)過(guò)程中針對(duì)不同的使用對(duì)象和應(yīng)用目的往往分層次采用不同類型的模型,可以將這些模型分為兩類,一種模型是概念模型;另一種是數(shù)據(jù)模型。(1) 概念模型現(xiàn)實(shí)世界認(rèn)識(shí)抽象信息世界 概念模型
39、機(jī)器世界DBMS的數(shù)據(jù)模型反映現(xiàn)實(shí)世界反映現(xiàn)實(shí)世界轉(zhuǎn)換圖1-12 現(xiàn)實(shí)世界中客觀對(duì)象的抽象過(guò)程也稱信息模型。它從用戶的觀點(diǎn)出發(fā)對(duì)數(shù)據(jù)和信息建模的,主要用于數(shù)據(jù)庫(kù)的概念級(jí)設(shè)計(jì)。通常人們先將現(xiàn)實(shí)世界抽象為概念世界,然后再將概念世界轉(zhuǎn)為機(jī)器世界。換句話說(shuō),就是先將現(xiàn)實(shí)世界中的客觀對(duì)象抽象為實(shí)體和聯(lián)系,它并不依賴于計(jì)算機(jī)系統(tǒng)或某個(gè)DBMS系統(tǒng),這樣的模型就是物理數(shù)據(jù)模型。(2) 數(shù)據(jù)模型是按計(jì)算機(jī)系統(tǒng)對(duì)數(shù)據(jù)建模,主要用于在DBMS中實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、操縱、控制等。數(shù)據(jù)模型是數(shù)據(jù)庫(kù)系統(tǒng)的核心和基礎(chǔ),各種機(jī)器上實(shí)現(xiàn)的DBMS軟件都是基于某種數(shù)據(jù)模型的。為了把現(xiàn)實(shí)世界中的具體事物抽象、組織為某一DBMS支持的
40、數(shù)據(jù)模型,人們常常首先將現(xiàn)實(shí)世界抽象為信息世界,然后將信息世界轉(zhuǎn)換為機(jī)器世界。無(wú)論是概念模型還是數(shù)據(jù)模型都要能較好地刻畫(huà)與反映現(xiàn)實(shí)世界,要與現(xiàn)實(shí)世界保持一致。現(xiàn)實(shí)世界中客觀對(duì)象的抽象過(guò)程如圖1-12所示。任務(wù)實(shí)施1. 數(shù)據(jù)模型的組成要素?cái)?shù)據(jù)模型是模型中的一種,是對(duì)現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象,它描述了系統(tǒng)的三個(gè)方面:靜態(tài)特性、動(dòng)態(tài)特性和完整性約束條件。因此,數(shù)據(jù)模型通常由三部分組成:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)完整性約束。(1) 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是所研究的對(duì)象類型的集合,用于描述系統(tǒng)的靜態(tài)特性,是數(shù)據(jù)模型的基礎(chǔ)。數(shù)據(jù)操作和約束都建立在數(shù)據(jù)結(jié)構(gòu)上,不同的數(shù)據(jù)結(jié)構(gòu)具有不同的操作和約束。數(shù)據(jù)模型中的數(shù)據(jù)結(jié)構(gòu)主
41、要描述數(shù)據(jù)的類型、內(nèi)容、性質(zhì)以及數(shù)據(jù)間的聯(lián)系等。例如,建立一個(gè)學(xué)生管理數(shù)據(jù)庫(kù),學(xué)生(對(duì)象)的基本情況(類型)如學(xué)號(hào)、姓名、性別、出生日期、入學(xué)日期、學(xué)制、班號(hào)、宿舍號(hào)等構(gòu)成了數(shù)據(jù)庫(kù)的基本框架,而每個(gè)學(xué)生的課程信息和成績(jī)信息等對(duì)象與學(xué)生的基本信息存在著數(shù)據(jù)關(guān)聯(lián),這種數(shù)據(jù)關(guān)聯(lián)也必須存儲(chǔ)在數(shù)據(jù)庫(kù)中。數(shù)據(jù)模型按其數(shù)據(jù)結(jié)構(gòu)類型的不同分為層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P汀#?) 數(shù)據(jù)操作數(shù)據(jù)操作是指對(duì)數(shù)據(jù)庫(kù)中各種對(duì)象實(shí)例的操作,用于描述系統(tǒng)的動(dòng)態(tài)特性。例如,根據(jù)用戶的要求對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行增加、刪除、查詢、修改等各種操作。數(shù)據(jù)模型必須定義這些操作的確切含義、操作符號(hào)、操作規(guī)則(如優(yōu)先級(jí))以及實(shí)
42、現(xiàn)操作的語(yǔ)言等。(3) 數(shù)據(jù)的完整性約束數(shù)據(jù)的完整性約束是指在給定的數(shù)據(jù)模型中,數(shù)據(jù)及其數(shù)據(jù)關(guān)聯(lián)所遵守的一組規(guī)則,用以保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性、一致性。例如,學(xué)生管理數(shù)據(jù)庫(kù)中,學(xué)號(hào)作為學(xué)生信息在數(shù)據(jù)庫(kù)中的唯一標(biāo)志,每個(gè)學(xué)生的學(xué)號(hào)都不能為空值,并且不能有重復(fù)值。此外,數(shù)據(jù)模型還應(yīng)該提供自定義完整性約束條件的機(jī)制,以反映具體應(yīng)用所涉及的數(shù)據(jù)必須遵守的特定的語(yǔ)義約束條件。例如,在學(xué)生管理數(shù)據(jù)庫(kù)中規(guī)定學(xué)生的性別只能輸入男或女,輸入的成績(jī)不能超過(guò)100分等,這些系統(tǒng)數(shù)據(jù)的特殊約束要求,用戶能在數(shù)據(jù)模型中自己來(lái)定義并產(chǎn)生制約。2. 概念模型概念模型是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次,是面向數(shù)據(jù)庫(kù)用戶的實(shí)現(xiàn)
43、世界的模型,主要用來(lái)描述世界的概念化結(jié)構(gòu),它使數(shù)據(jù)庫(kù)的設(shè)計(jì)人員在設(shè)計(jì)的初始階段,擺脫計(jì)算機(jī)系統(tǒng)及DBMS的具體技術(shù)問(wèn)題,集中精力分析數(shù)據(jù)以及數(shù)據(jù)之間的聯(lián)系等,與具體的數(shù)據(jù)管理系統(tǒng)無(wú)關(guān)。針對(duì)于抽象的信息世界,建立概念模型涉及的一些基本概念。(1) 實(shí)體(Entity)將現(xiàn)實(shí)世界中客觀存在并可以相互區(qū)別的事物稱為實(shí)體。實(shí)體即可以是具體的事物,例如,一名學(xué)生,一門(mén)課程,也可以是抽象的事件,例如,學(xué)生的選課,老師的授課等都是實(shí)體。(2) 屬性(Attribute)屬性是指實(shí)體所具有的特性,一個(gè)實(shí)體可以由若干個(gè)屬性描述。例如,教師實(shí)體可以由教師號(hào)、教師姓名、教師性別、教師職稱等屬性組成。屬性的具體取值稱
44、為屬性值,用來(lái)描述一個(gè)具體實(shí)體。屬性值(10001,張楊,男,講師)具體代表教師實(shí)體的一位教師。(3) 域(Domain)屬性的取值范圍稱為該屬性的域,例如,學(xué)號(hào)的域?yàn)?2位數(shù)字組成的字符編號(hào)集合。(4) 實(shí)體型(Entity Type)用實(shí)體類型名和所有屬性來(lái)共同表示的同一類實(shí)體,稱為實(shí)體型。例如,教師(教師號(hào)、教師姓名、教師性別、教師職稱)就是一個(gè)教師實(shí)體型。(5) 實(shí)體集(Entity Set)同一類型實(shí)體的集合,例如全體學(xué)生就是一個(gè)實(shí)體集,學(xué)生實(shí)體集=張三,李四,張梅。(6) 鍵(Key)鍵是能夠唯一地標(biāo)識(shí)出一個(gè)實(shí)體集中每一個(gè)實(shí)體的屬性或?qū)傩越M合,鍵也被稱為關(guān)鍵字或碼。例如,教師號(hào)在教
45、師實(shí)體中就是鍵。(7) 聯(lián)系(Relationship)實(shí)體集之間的對(duì)應(yīng)關(guān)系稱為聯(lián)系,它反映了現(xiàn)實(shí)世界事物之間的相互關(guān)聯(lián),主要指實(shí)體內(nèi)部的聯(lián)系(各屬性之間的聯(lián)系)和實(shí)體間的聯(lián)系。實(shí)體之間的聯(lián)系類型比較復(fù)雜,一般分為一對(duì)一、一對(duì)多、多對(duì)多三類。 一對(duì)一聯(lián)系(1:1)如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中至多有一個(gè)與之相對(duì)應(yīng),反之,實(shí)體集B中的每一個(gè)實(shí)體,也至多有一個(gè)實(shí)體集A的實(shí)體與之對(duì)應(yīng),則稱實(shí)體集A與實(shí)體集B具有一對(duì)一聯(lián)系,記作:1:1。例如,每個(gè)班級(jí)只有一個(gè)班長(zhǎng),班長(zhǎng)和班級(jí)之間是一對(duì)一聯(lián)系。 一對(duì)多聯(lián)系(1:n)如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體與之相對(duì)應(yīng),反之,如果實(shí)
46、體集B中的每一個(gè)實(shí)體,實(shí)體集A中至多只有一個(gè)實(shí)體與之相對(duì)應(yīng),則稱實(shí)體集A與實(shí)體集B具有一對(duì)多聯(lián)系,記作:1:n。例如,每個(gè)學(xué)生只能屬于一個(gè)班級(jí),每個(gè)班級(jí)可以有多名學(xué)生,班級(jí)和該班級(jí)中的學(xué)生之間是一對(duì)多聯(lián)系。 多對(duì)多聯(lián)系(m:n)如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n(n0)個(gè)實(shí)體與之相對(duì)應(yīng),反之,如果實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A也有m(m0)個(gè)實(shí)體與之相對(duì)應(yīng),則稱實(shí)體集A與實(shí)體集B具有多對(duì)多的聯(lián)系,記作:。例如,每個(gè)教師可以上多門(mén)課程,每門(mén)課程又可以被多名教師授課,課程與教師之間是多對(duì)多聯(lián)系。圖1-13 兩個(gè)實(shí)體型之間的聯(lián)系示意圖一對(duì)一一對(duì)多多對(duì)多實(shí)體集A實(shí)體集B實(shí)體集A實(shí)體集A實(shí)
47、體集B實(shí)體集B兩個(gè)實(shí)體型之間的三類聯(lián)系如圖1-13來(lái)表示。任務(wù)實(shí)踐1. 概念模型的表示概念模型的表示方法很多,最常用的是實(shí)體聯(lián)系方法,是由美籍華人陳平山于1976年提出的,它通過(guò)簡(jiǎn)單的圖形方式描述現(xiàn)實(shí)世界中的數(shù)據(jù),這種圖稱為實(shí)體聯(lián)系圖,簡(jiǎn)稱E-R圖。E-R圖提供了表示實(shí)體、屬性和聯(lián)系的方法。E-R圖有三個(gè)要素:(1) 實(shí)體用矩形表示實(shí)體,矩形內(nèi)標(biāo)注實(shí)體名稱。(2) 屬性用橢圓表示屬性,橢圓內(nèi)標(biāo)注屬性名稱,并用連線與實(shí)體連接起來(lái)。(3) 實(shí)體之間的聯(lián)系用菱形表示,菱形內(nèi)注明聯(lián)系名稱,并用連線將菱形框分別與相關(guān)實(shí)體相連,并在連線上注明聯(lián)系類型(1:1、1:n或n:m)。屬于學(xué)生學(xué)號(hào)性別姓名出生日期
48、班級(jí)班主任班名班號(hào)1n圖1-15 班級(jí)、學(xué)生的E-R圖班長(zhǎng)班級(jí)學(xué)生班級(jí)教師課程任職所屬授課111nmn(a)1:1聯(lián)系(b)1:n聯(lián)系(c)m:n聯(lián)系圖1-14 兩個(gè)實(shí)體之間的三類聯(lián)系圖1-14所示為兩個(gè)實(shí)體之間的三種聯(lián)系。圖1-15為一個(gè)班級(jí)、學(xué)生的完整E-R圖,班級(jí)實(shí)體型與學(xué)生實(shí)體型之間是一對(duì)多的關(guān)系。2. 層次模型的表示層次模型是數(shù)據(jù)庫(kù)系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型,用樹(shù)形結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為層次模型。現(xiàn)實(shí)世界中很多事物是按層次組織起來(lái)的。層次數(shù)據(jù)模型的提出,首先是為了模擬這種按層次組織起來(lái)的事物,層次數(shù)據(jù)庫(kù)也是按記錄來(lái)存取數(shù)據(jù)的。層次模型數(shù)據(jù)庫(kù)系統(tǒng)的典型代表是IBM公司
49、的IMS(Information Management System)數(shù)據(jù)庫(kù)管理系統(tǒng),這是一個(gè)曾經(jīng)廣泛使用的數(shù)據(jù)庫(kù)管理系統(tǒng)。層次模型的表示方法是:樹(shù)的結(jié)點(diǎn)表示實(shí)體集(記錄的型),結(jié)點(diǎn)之間的連線表示相連兩實(shí)體集之間的關(guān)系,這種關(guān)系只能是“1:M”的。通常把表示1的實(shí)體集放在上方,稱為父結(jié)點(diǎn),表示M的實(shí)體集放在下方,稱為子結(jié)點(diǎn)。(1) 層次模型的數(shù)據(jù)結(jié)構(gòu)層次模型有以下兩個(gè)特點(diǎn): 有且僅有一個(gè)結(jié)點(diǎn)無(wú)父結(jié)點(diǎn),該結(jié)點(diǎn)稱為根節(jié)點(diǎn)。 其他結(jié)點(diǎn)有且僅有一個(gè)父結(jié)點(diǎn)。系教研室教師學(xué)生圖1-16 一個(gè)層次模型的示例在層次模型中,每個(gè)節(jié)點(diǎn)表示一個(gè)記錄類型,記錄之間的聯(lián)系用節(jié)點(diǎn)之間的連線表示這種聯(lián)系是父子之間的一對(duì)多的
50、聯(lián)系。所以層次模型數(shù)據(jù)庫(kù)系統(tǒng)只能處理一對(duì)多的實(shí)體聯(lián)系。每個(gè)記錄類型可包含若干字段,記錄類型描述的是實(shí)體,字段描述的是實(shí)體的屬性。各個(gè)記錄類型及其字段都必須命名,并且名稱要求唯一。若用圖來(lái)表示,層次模型是一棵倒立的樹(shù)。結(jié)點(diǎn)層次從根開(kāi)始定義,根為第一層,根的子女稱為第二層,根稱為其子女的雙親,同一雙親的子女稱為兄弟。圖1-16所示為一個(gè)系的層次模型。層次模型對(duì)具有一對(duì)多層次關(guān)系的描述非常自然、直觀、容易理解,這是層次數(shù)據(jù)庫(kù)的突出優(yōu)點(diǎn)。層次模型中實(shí)體集之間多對(duì)多的聯(lián)系的處理,解決的方法是引入冗余結(jié)點(diǎn)。例如,學(xué)生和課程之間的多對(duì)多的聯(lián)系,引入學(xué)生和課程的冗余結(jié)點(diǎn),轉(zhuǎn)換為兩棵樹(shù):一棵樹(shù)的根是學(xué)生,子結(jié)點(diǎn)
51、是課程,它表現(xiàn)了一個(gè)學(xué)生可以選多門(mén)課程;一棵樹(shù)的根是課程,子結(jié)點(diǎn)是學(xué)生,它反映了一門(mén)課程可以被多個(gè)學(xué)生選。至于冗余結(jié)點(diǎn)可以用虛擬結(jié)點(diǎn)實(shí)現(xiàn):在冗余結(jié)點(diǎn)處僅存放一個(gè)指針,指向?qū)嶋H結(jié)點(diǎn)。(2) 層次模型的數(shù)據(jù)操作與約束條件 層次模型的樹(shù)是有序樹(shù)(層次順序)。對(duì)任一結(jié)點(diǎn)的所有子樹(shù)都規(guī)定了先后次序,這一限制隱含了對(duì)數(shù)據(jù)庫(kù)存取路徑的控制。 樹(shù)中父子結(jié)點(diǎn)之間只存在一種聯(lián)系,因此,對(duì)樹(shù)中的任一結(jié)點(diǎn),只有一條自根結(jié)點(diǎn)到達(dá)它的路徑。 不能直接表示多對(duì)多的聯(lián)系。 樹(shù)結(jié)點(diǎn)中任何記錄的屬性只能是不可再分的簡(jiǎn)單數(shù)據(jù)類型。(3) 層次模型的存儲(chǔ)結(jié)構(gòu)層次數(shù)據(jù)庫(kù)中不僅要存儲(chǔ)數(shù)據(jù)本身,還要存儲(chǔ)數(shù)據(jù)之間的層次聯(lián)系,層次模型的數(shù)據(jù)存
52、儲(chǔ)常常是和數(shù)據(jù)之間聯(lián)系的存儲(chǔ)結(jié)合在一起的,常用的實(shí)現(xiàn)方法有兩種。 順序法按照層次順序把所有的記錄鄰接存放,即通過(guò)物理空間的位置相鄰來(lái)實(shí)現(xiàn)層次順序。 指針?lè)ǜ鱾€(gè)記錄存放時(shí)不是按層次順序,而是用指針按層次順序把它們鏈接起來(lái)。(4) 層次模型的優(yōu)缺點(diǎn)層次模型的優(yōu)點(diǎn)主要如下: 層次模型本身比較簡(jiǎn)單。 對(duì)于實(shí)體間聯(lián)系是固定的,且預(yù)先定義好的應(yīng)用系統(tǒng),采用層次模型來(lái)實(shí)現(xiàn),其性能較優(yōu)。 層次模型提供了良好的完整性支持。層次模型的缺點(diǎn)主要如下: 不能直接實(shí)現(xiàn)多對(duì)多聯(lián)系。 對(duì)插入和刪除限制比較多。 查詢子女節(jié)點(diǎn)必須通過(guò)雙親節(jié)點(diǎn)。 由于結(jié)構(gòu)嚴(yán)密,層次模型的操作命令趨于程序化。3. 網(wǎng)狀模型及其表示教研室系教師宿舍
53、學(xué)生圖1-17 簡(jiǎn)單的網(wǎng)狀模型在現(xiàn)實(shí)世界中事物之間的聯(lián)系更多的是非層次關(guān)系的。用層次模型表示非樹(shù)形結(jié)構(gòu)是很不直接的,網(wǎng)狀模型則可以克服這一弊病。用網(wǎng)絡(luò)結(jié)構(gòu)表示實(shí)體類型及其實(shí)體之間聯(lián)系的模型。顧名思義,一個(gè)事物和另外的幾個(gè)都有聯(lián)系這樣構(gòu)成一張網(wǎng)狀圖。網(wǎng)狀數(shù)據(jù)模型的典型代表是DBTG(Data Base TaskGroup)系統(tǒng),也稱CODASYL(Conference On Data Systems Language)系統(tǒng)。若用圖表示,網(wǎng)狀模型是一個(gè)網(wǎng)絡(luò)。圖1-17所示為一個(gè)抽象的簡(jiǎn)單的網(wǎng)狀模型。(1) 網(wǎng)狀模型的數(shù)據(jù)結(jié)構(gòu)網(wǎng)狀模型的數(shù)據(jù)結(jié)構(gòu)主要有以下兩個(gè)特征: 允許一個(gè)以上的結(jié)點(diǎn)無(wú)雙親 一個(gè)結(jié)點(diǎn)
54、可以有多于一個(gè)的雙親(2) 網(wǎng)狀模型的數(shù)據(jù)操作與約束條件網(wǎng)狀模型一般來(lái)講沒(méi)有層次模型那樣嚴(yán)格的完整性的約束條件,但具體的網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)對(duì)數(shù)據(jù)操作都加了一些限制,提供了一定的完整性約束。DBTG在模式DDL中提供了定義DBTG數(shù)據(jù)庫(kù)完整性的若干概念和語(yǔ)句,主要如下: 支持記錄碼的概念。例如,學(xué)生記錄的學(xué)號(hào)就是碼,因此數(shù)據(jù)庫(kù)中不允許學(xué)生記錄中學(xué)號(hào)出現(xiàn)重復(fù)值。 保證一個(gè)聯(lián)系中雙親記錄和子女記錄之間是一對(duì)多的聯(lián)系。 可以支持雙親記錄和子女記錄之間某些約束。例如,有些子女記錄要求雙親記錄存在才能插入、雙親記錄刪除時(shí)也連同刪除。(3) 網(wǎng)狀模型的存儲(chǔ)結(jié)構(gòu)網(wǎng)狀模型的存儲(chǔ)結(jié)構(gòu)中關(guān)鍵是如何實(shí)現(xiàn)記錄之間的聯(lián)系。具
55、體實(shí)現(xiàn)方法有鏈接法,如:?jiǎn)蜗蜴溄?,雙向鏈接,環(huán)狀鏈接,向首鏈接。(4) 網(wǎng)狀模型的優(yōu)缺點(diǎn)網(wǎng)狀模型的優(yōu)點(diǎn)主要如下: 能夠更為直接地描述現(xiàn)實(shí)世界。 具有良好的性能,存取效率較高。網(wǎng)狀模型的缺點(diǎn)主要如下: 結(jié)構(gòu)復(fù)雜,不利于最終用戶掌握。 其DLL、DML語(yǔ)言復(fù)雜,用戶不容易使用。4. 關(guān)系模型關(guān)系模型是目前最重要的一種模型。關(guān)系模型是由IBM公司的E.F.Codd于1970年首次提出,以后的幾年里陸續(xù)出現(xiàn)了以關(guān)系數(shù)據(jù)模型為基礎(chǔ)的數(shù)據(jù)庫(kù)管理系統(tǒng),稱為關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),數(shù)據(jù)庫(kù)領(lǐng)域當(dāng)前的研究工作都是以關(guān)系方法為基礎(chǔ)的。目前廣泛使用的數(shù)據(jù)庫(kù)管理系統(tǒng)有Oracle、Sybase、Informix、DB2、SQLServer、Access系列數(shù)據(jù)庫(kù)等。關(guān)系模型是在層次模型和網(wǎng)狀模型的基礎(chǔ)上發(fā)展起來(lái)的,如果說(shuō)層次模型和網(wǎng)狀模型是用“圖”表示實(shí)體及其他聯(lián)系的話,那么關(guān)系模型是用“表”來(lái)表示的,關(guān)系就是二維表格。(1) 關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。每一行稱為
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度退股及員工持股計(jì)劃合同
- 個(gè)人股權(quán)轉(zhuǎn)讓合同2025年度含業(yè)績(jī)對(duì)賭條款
- 二零二五年度臨時(shí)項(xiàng)目經(jīng)理職務(wù)聘用與成果轉(zhuǎn)化合同
- 二零二五年度旅游團(tuán)隊(duì)保險(xiǎn)責(zé)任免除聲明
- 電線電纜購(gòu)銷合同
- 管理層勞動(dòng)合同工資
- 個(gè)人數(shù)字資產(chǎn)管理協(xié)議
- 全新池塘出租協(xié)議
- 月餅產(chǎn)品代銷合同
- 鄉(xiāng)村旅游發(fā)展策略與實(shí)施方案
- 2025年中央一號(hào)文件高頻重點(diǎn)考試題庫(kù)150題(含答案解析)
- 接觸隔離標(biāo)準(zhǔn)操作流程
- 港股基礎(chǔ)知識(shí)
- 2025年溫州市甌海旅游投資集團(tuán)有限公司下屬子公司招聘筆試參考題庫(kù)附帶答案詳解
- 2025年天津三源電力集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年上半年浙江嘉興桐鄉(xiāng)市水務(wù)集團(tuán)限公司招聘10人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年腹腔穿刺術(shù)課件 (1)2
- (八省聯(lián)考)2025年高考綜合改革適應(yīng)性演練 物理試卷合集(含答案逐題解析)
- 2024年干式電力電容器項(xiàng)目可行性研究報(bào)告
- 河南12系列建筑設(shè)計(jì)圖集一(12YJ1)
- 2025年度智能倉(cāng)儲(chǔ)管理系統(tǒng)軟件開(kāi)發(fā)合同6篇
評(píng)論
0/150
提交評(píng)論