下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)
本章學(xué)習(xí)目標(biāo)與要求基本要求:掌握數(shù)據(jù)庫(kù)的基本概念:數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng);掌握數(shù)據(jù)模型、實(shí)體-聯(lián)系模型及E-R圖,從E-R圖導(dǎo)出關(guān)系數(shù)據(jù)模型;掌握關(guān)系代數(shù)運(yùn)算,包括集合運(yùn)算及選擇、投影、連接運(yùn)算、數(shù)據(jù)庫(kù)規(guī)范化理論;了解數(shù)據(jù)庫(kù)設(shè)計(jì)方法和步驟:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)的相關(guān)策略。重點(diǎn):數(shù)據(jù)庫(kù)的基本概念和數(shù)據(jù)模型關(guān)系代數(shù)運(yùn)算難點(diǎn):數(shù)據(jù)模型關(guān)系代數(shù)運(yùn)算數(shù)據(jù)庫(kù)技術(shù)是計(jì)算機(jī)領(lǐng)域的一個(gè)重要分支。在計(jì)算機(jī)應(yīng)用的三大領(lǐng)域(科學(xué)計(jì)算、數(shù)據(jù)處理和過(guò)程控制)中,數(shù)據(jù)處理約占其中的70%,而數(shù)據(jù)庫(kù)技術(shù)就是作為一門(mén)數(shù)據(jù)處理技術(shù)而發(fā)展起來(lái)的。隨著計(jì)算機(jī)應(yīng)用的普及和深入,數(shù)據(jù)庫(kù)技術(shù)變得越來(lái)越重要了,而了解、掌握數(shù)據(jù)庫(kù)系統(tǒng)的基本概念和基本技術(shù)是應(yīng)用數(shù)據(jù)庫(kù)技術(shù)的前提。7.1數(shù)據(jù)庫(kù)系統(tǒng)的基本概念
計(jì)算機(jī)科學(xué)與技術(shù)的發(fā)展,計(jì)算機(jī)應(yīng)用的深入與拓展,使得數(shù)據(jù)庫(kù)在計(jì)算機(jī)應(yīng)用中的地位與作用日益重要,目前它在商業(yè)和事務(wù)處理中占據(jù)主導(dǎo)地位。近年來(lái),數(shù)據(jù)庫(kù)在統(tǒng)計(jì)領(lǐng)域、多媒體領(lǐng)域以及智能化應(yīng)用領(lǐng)域中的地位與作用也變得十分重要。隨著網(wǎng)絡(luò)應(yīng)用的普及,它在網(wǎng)絡(luò)中的應(yīng)用也日漸重要。因此,數(shù)據(jù)庫(kù)已成為構(gòu)成計(jì)算機(jī)應(yīng)用系統(tǒng)一個(gè)非常重要的支持性軟件。7.1.1數(shù)據(jù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)
1、數(shù)據(jù)數(shù)據(jù)是信息的具體表現(xiàn)形式。數(shù)據(jù)(Data):用物理符號(hào)記錄下來(lái)可以鑒別的原始信息,即由客觀世界獲得的未經(jīng)加工和處理的原始信息。數(shù)據(jù)可以是數(shù)值型數(shù)據(jù),也可以是非數(shù)值型數(shù)據(jù),如文字、圖像、聲音、視頻等。數(shù)據(jù)實(shí)際上就是描述事物的符號(hào)記錄。從計(jì)算機(jī)的角度看:數(shù)據(jù)泛指那些可以被計(jì)算機(jī)接受并能夠被計(jì)算機(jī)識(shí)別處理的符號(hào)。數(shù)據(jù)處理:對(duì)各種類(lèi)型的數(shù)據(jù)進(jìn)行收集、存儲(chǔ)、分類(lèi)、計(jì)算、加工、檢索與傳輸?shù)倪^(guò)程。一般包括:收集原始數(shù)據(jù)、編碼轉(zhuǎn)換、數(shù)據(jù)輸入、數(shù)據(jù)處理、數(shù)據(jù)輸出五個(gè)步驟。數(shù)據(jù)處理的核心是數(shù)據(jù)管理。計(jì)算機(jī)中的數(shù)據(jù)一般分為兩個(gè)部分:臨時(shí)性數(shù)據(jù):與程序僅有短時(shí)間的交互關(guān)系,隨著程序的結(jié)束而消亡,這類(lèi)數(shù)據(jù)一般存放于計(jì)算機(jī)內(nèi)存中;持久性數(shù)據(jù):對(duì)系統(tǒng)起著長(zhǎng)期持久的作用。數(shù)據(jù)庫(kù)系統(tǒng)處理的就是這種持久性數(shù)據(jù)。軟件中的數(shù)據(jù)是有一定結(jié)構(gòu)的。數(shù)據(jù)有型(Type)與值(Value)之分,數(shù)據(jù)的型給出了數(shù)據(jù)表示的類(lèi)型,如整型、實(shí)型、字符型等。數(shù)據(jù)的值給出了符合給定型的值,如某個(gè)整型數(shù)的值為15。隨著應(yīng)用需求的擴(kuò)大,數(shù)據(jù)的型有了進(jìn)一步的擴(kuò)大,它包括了將多種相關(guān)數(shù)據(jù)以一定結(jié)構(gòu)方式組合構(gòu)成的特定的數(shù)據(jù)框架,這樣的數(shù)據(jù)框架稱(chēng)為數(shù)據(jù)結(jié)構(gòu)(DataStructure),如果在數(shù)據(jù)庫(kù)的特定條件下就稱(chēng)之為數(shù)據(jù)模式(DataSchema)。在過(guò)去的軟件系統(tǒng)中是以程序?yàn)橹黧w,而數(shù)據(jù)則以私有形式從屬于程序,此時(shí)數(shù)據(jù)在系統(tǒng)中是分散、凌亂的,這也造成了數(shù)據(jù)管理的混亂,如數(shù)據(jù)冗余度高、數(shù)據(jù)一致性差以及數(shù)據(jù)的安全性差等多種弊病。近年來(lái),數(shù)據(jù)在軟件系統(tǒng)中的地位產(chǎn)生了變化,在數(shù)據(jù)庫(kù)系統(tǒng)以及數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中數(shù)據(jù)已占據(jù)主體地位,而程序已退居附屬地位。在數(shù)據(jù)庫(kù)系統(tǒng)中需要對(duì)數(shù)據(jù)進(jìn)行集中、統(tǒng)一的管理,以達(dá)到數(shù)據(jù)被多個(gè)應(yīng)用程序共享的目標(biāo)。2、數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(Database,簡(jiǎn)稱(chēng)DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式,并存放于統(tǒng)一的存儲(chǔ)介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被多個(gè)應(yīng)用程序所共享。在數(shù)據(jù)庫(kù)中存放數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的,它能構(gòu)造復(fù)雜的數(shù)據(jù)結(jié)構(gòu)以建立數(shù)據(jù)間的內(nèi)在聯(lián)系與復(fù)雜關(guān)系,從而構(gòu)成數(shù)據(jù)的全局結(jié)構(gòu)模式。數(shù)據(jù)庫(kù)中的數(shù)據(jù)具有集成、共享的特點(diǎn),即數(shù)據(jù)庫(kù)集中了各種應(yīng)用數(shù)據(jù),對(duì)其進(jìn)行統(tǒng)一地構(gòu)造與存儲(chǔ),而且也可以被不同的應(yīng)用程序所使用。數(shù)據(jù)庫(kù)系統(tǒng)定義和組成數(shù)據(jù)庫(kù)系統(tǒng)(DBS,DataBaseSystem)是指安裝和使用了數(shù)據(jù)庫(kù)技術(shù)的計(jì)算機(jī)系統(tǒng)。數(shù)據(jù)庫(kù)系統(tǒng)是實(shí)現(xiàn)有組織地、動(dòng)態(tài)地存儲(chǔ)大量關(guān)聯(lián)數(shù)據(jù),方便用戶(hù)訪問(wèn)的計(jì)算機(jī)軟硬件資源組成的具有管理數(shù)據(jù)庫(kù)功能的計(jì)算機(jī)系統(tǒng)。數(shù)據(jù)庫(kù)系統(tǒng)由五個(gè)部分組成:硬件系統(tǒng)、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS,DatabaseManagementSystem)、應(yīng)用程序、數(shù)據(jù)庫(kù)管理員(DBA,DatabaseAdministrator)以及人員。一般情況下,將數(shù)據(jù)庫(kù)系統(tǒng)簡(jiǎn)稱(chēng)為數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)DBMSDBA應(yīng)用1應(yīng)用2應(yīng)用n數(shù)據(jù)庫(kù)系統(tǒng)組成(1)數(shù)據(jù)庫(kù)(DB,DataBase)是存放數(shù)據(jù)的“倉(cāng)庫(kù)”,這個(gè)“倉(cāng)庫(kù)”是在計(jì)算機(jī)系統(tǒng)中,并且其中的數(shù)據(jù)是有一定格式的?!M義的數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)是長(zhǎng)期保存在計(jì)算機(jī)系統(tǒng)中的、有組織的、可以被共享的相互關(guān)聯(lián)的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)能為各種用戶(hù)共享,具有較小的數(shù)據(jù)冗余度,數(shù)據(jù)之間互相聯(lián)系而又具有較高的數(shù)據(jù)獨(dú)立性。數(shù)據(jù)之間具有聯(lián)系是數(shù)據(jù)庫(kù)的重要特點(diǎn)。(2)應(yīng)用程序:數(shù)據(jù)庫(kù)中特定用戶(hù)的處理數(shù)據(jù)的程序,是用DBMS支持的程序設(shè)計(jì)語(yǔ)言編寫(xiě)的。(3)人員,包括:數(shù)據(jù)庫(kù)管理員(DBA):具有最高的數(shù)據(jù)庫(kù)用戶(hù)特權(quán),負(fù)責(zé)管理和維護(hù)數(shù)據(jù)庫(kù)系統(tǒng)正常運(yùn)轉(zhuǎn)的專(zhuān)職人員。系統(tǒng)分析員:負(fù)責(zé)應(yīng)用系統(tǒng)的需求分析和規(guī)范說(shuō)明,確定系統(tǒng)的功能、軟硬件配置等。應(yīng)用程序員:負(fù)責(zé)設(shè)計(jì)和編寫(xiě)應(yīng)用系統(tǒng)的程序模塊。用戶(hù):最終使用數(shù)據(jù)庫(kù)系統(tǒng)的人員。DBA主要職責(zé)如下:定義模式、內(nèi)模式、與用戶(hù)交流并定義外模式。提供技術(shù)培訓(xùn)。定義安全性規(guī)則,對(duì)用戶(hù)訪問(wèn)數(shù)據(jù)庫(kù)授權(quán)。定義完整性規(guī)則,監(jiān)督數(shù)據(jù)庫(kù)運(yùn)行。數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)與恢復(fù)工作。3、數(shù)據(jù)庫(kù)管理系統(tǒng)
數(shù)據(jù)庫(kù)中的數(shù)據(jù)是海量級(jí)的,而且結(jié)構(gòu)復(fù)雜,因此需要管理工具。
數(shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagementSystem,簡(jiǎn)稱(chēng)DBMS)是數(shù)據(jù)庫(kù)的管理機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、數(shù)據(jù)控制及保護(hù)和數(shù)據(jù)服務(wù)等。DBMS是用戶(hù)和數(shù)據(jù)庫(kù)的接口。數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心,它主要有以下幾個(gè)方面的功能:(1)數(shù)據(jù)模式定義。數(shù)據(jù)庫(kù)管理系統(tǒng)負(fù)責(zé)為數(shù)據(jù)庫(kù)構(gòu)建模式,即是為數(shù)據(jù)庫(kù)構(gòu)建數(shù)據(jù)框架。(2)數(shù)據(jù)存取的物理構(gòu)建。數(shù)據(jù)庫(kù)管理系統(tǒng)負(fù)責(zé)為數(shù)據(jù)模式的物理構(gòu)建提供有效的存取方法與手段。(3)數(shù)據(jù)操縱。數(shù)據(jù)庫(kù)管理系統(tǒng)為用戶(hù)使用數(shù)據(jù)庫(kù)中的數(shù)據(jù)提供方便,它一般提供查詢(xún)、插入、修改、刪除數(shù)據(jù)的功能。此外,它自身還具有做簡(jiǎn)單算術(shù)運(yùn)算及統(tǒng)計(jì)的能力,而且還可以與某些過(guò)程性語(yǔ)言結(jié)合,使其具有強(qiáng)大的過(guò)程性操作能力。(4)數(shù)據(jù)的完整性、安全性定義與檢查。數(shù)據(jù)庫(kù)中的數(shù)據(jù)具有內(nèi)在語(yǔ)義上的關(guān)聯(lián)性與一致性,它們構(gòu)成了數(shù)據(jù)的完整性,數(shù)據(jù)的完整性是保證數(shù)據(jù)庫(kù)中數(shù)據(jù)正確的必要條件,因此必須經(jīng)常檢查以確保數(shù)據(jù)的正確。數(shù)據(jù)庫(kù)中的數(shù)據(jù)具有共享性,而數(shù)據(jù)共享可能會(huì)引發(fā)數(shù)據(jù)的非法使用,因此必須要對(duì)數(shù)據(jù)正確使用作出必要的規(guī)定,并在使用時(shí)做檢查,這就是數(shù)據(jù)的安全性。數(shù)據(jù)完整性與安全性維護(hù)是數(shù)據(jù)庫(kù)管理系統(tǒng)的基本功能。(5)數(shù)據(jù)庫(kù)的并發(fā)控制與故障恢復(fù)。數(shù)據(jù)庫(kù)是一個(gè)集成、可共享的數(shù)據(jù)集合體,它能為多個(gè)應(yīng)用程序服務(wù),所以就存在著多個(gè)應(yīng)用程序?qū)?shù)據(jù)庫(kù)的并發(fā)操作。在并發(fā)操作中如果不加以控制,多個(gè)應(yīng)用程序間就會(huì)相互干擾,從而對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)造成破壞。因此,數(shù)據(jù)庫(kù)管理系統(tǒng)必須對(duì)多個(gè)應(yīng)用程序的并發(fā)執(zhí)行作必要的控制以保證數(shù)據(jù)不受破壞,這就是數(shù)據(jù)庫(kù)的并發(fā)控制。數(shù)據(jù)庫(kù)中數(shù)據(jù)一旦遭受破壞,數(shù)據(jù)庫(kù)管理系統(tǒng)必須有能力及時(shí)進(jìn)行恢復(fù),這就是數(shù)據(jù)庫(kù)的故障恢復(fù)。(6)數(shù)據(jù)的服務(wù)。數(shù)據(jù)庫(kù)管理系統(tǒng)提供對(duì)數(shù)據(jù)的多種服務(wù)功能,如數(shù)據(jù)拷貝、轉(zhuǎn)存、重組、性能檢測(cè)、分析等。為完成這些功能,數(shù)據(jù)庫(kù)管理系統(tǒng)提供相應(yīng)的數(shù)據(jù)語(yǔ)言(DataLanguage),分別是:數(shù)據(jù)定義語(yǔ)言(DDL):負(fù)責(zé)數(shù)據(jù)模式的定義與數(shù)據(jù)的物理存取構(gòu)建。數(shù)據(jù)操縱語(yǔ)言(DML):負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢(xún)及增、刪、改等操作。數(shù)據(jù)控制語(yǔ)言(DCL):負(fù)責(zé)數(shù)據(jù)完整性、安全性定義與檢查以及并發(fā)控制、故障恢復(fù)等功能,包括系統(tǒng)初啟程序、文件讀寫(xiě)與維護(hù)程序、存取路徑管理程序、緩沖區(qū)管理程序、安全性控制程序、完整性檢查程序、并發(fā)控制程序、事務(wù)管理程序、運(yùn)行日志管理程序、數(shù)據(jù)庫(kù)恢復(fù)程序等。上述數(shù)據(jù)語(yǔ)言按其使用方式具有兩種結(jié)構(gòu)形式:交互式命令語(yǔ)言:語(yǔ)言簡(jiǎn)單,能在終端上即時(shí)操作,它又稱(chēng)為自含型或自主型語(yǔ)言。宿主型語(yǔ)言:可嵌入某些宿主語(yǔ)言(HostLanguage)中,如C、C++、Java和COBOL等程序設(shè)計(jì)語(yǔ)言中。目前流行的DBMS均為關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),如Oracle、Sybase、DB2、SQLServer等,這些均為嚴(yán)格意義上的DBMS。另外一些小型數(shù)據(jù)庫(kù)系統(tǒng),如微軟的FoxPro和Access,只具備數(shù)據(jù)庫(kù)管理系統(tǒng)的一些簡(jiǎn)單功能。4、數(shù)據(jù)庫(kù)管理員由于數(shù)據(jù)庫(kù)的共享性,因此對(duì)數(shù)據(jù)庫(kù)的規(guī)劃、設(shè)計(jì)、維護(hù)、監(jiān)視等需要有專(zhuān)人進(jìn)行管理,稱(chēng)為數(shù)據(jù)庫(kù)管理員(DBA)。DBA主要工作如下:數(shù)據(jù)庫(kù)設(shè)計(jì)。DBA的主要工作之一是做數(shù)據(jù)庫(kù)設(shè)計(jì),具體來(lái)說(shuō)是進(jìn)行數(shù)據(jù)模式的設(shè)計(jì)。由于數(shù)據(jù)庫(kù)的集成和共享性,因此需要有專(zhuān)門(mén)人員(即DBA)對(duì)多個(gè)應(yīng)用的數(shù)據(jù)需求作全面的規(guī)劃、設(shè)計(jì)與集成。數(shù)據(jù)庫(kù)維護(hù)。DBA必須對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的安全性、完整性、并發(fā)控制及系統(tǒng)恢復(fù)、數(shù)據(jù)定期轉(zhuǎn)存等進(jìn)行實(shí)施與維護(hù)。改善系統(tǒng)性能,提高系統(tǒng)效率。DBA必須隨時(shí)監(jiān)視數(shù)據(jù)庫(kù)運(yùn)行狀態(tài),不斷調(diào)整內(nèi)部結(jié)構(gòu),使系統(tǒng)保持最佳狀態(tài)與最高效率。當(dāng)效率下降時(shí),DBA需采取適當(dāng)?shù)拇胧邕M(jìn)行數(shù)據(jù)庫(kù)的重組、重構(gòu)等。5、數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)(DBS)由以下幾部分組成:數(shù)據(jù)庫(kù)(數(shù)據(jù))數(shù)據(jù)庫(kù)管理系統(tǒng)(軟件)數(shù)據(jù)庫(kù)管理人員(人員)硬件系統(tǒng)平臺(tái)(硬件)軟件系統(tǒng)平臺(tái)(軟件)這五個(gè)部分構(gòu)成了一個(gè)以數(shù)據(jù)庫(kù)管理系統(tǒng)為核心的完整的運(yùn)行實(shí)體,稱(chēng)為數(shù)據(jù)庫(kù)系統(tǒng)。
在數(shù)據(jù)庫(kù)系統(tǒng)中,硬件平臺(tái)包括:計(jì)算機(jī):它是系統(tǒng)中硬件的基礎(chǔ)平臺(tái),目前常用的有微型機(jī)、大型機(jī)及服務(wù)器。網(wǎng)絡(luò):過(guò)去數(shù)據(jù)庫(kù)系統(tǒng)一般建立在單機(jī)上,但近年來(lái)它較多地建立在網(wǎng)絡(luò)上。從目前形勢(shì)看,數(shù)據(jù)庫(kù)系統(tǒng)今后將以建立在網(wǎng)絡(luò)上為主,其結(jié)構(gòu)形式以客戶(hù)/服務(wù)器(C/S)方式與瀏覽器/服務(wù)器(B/S)方式為主。在數(shù)據(jù)庫(kù)系統(tǒng)中,軟件平包括:操作系統(tǒng):它是數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)軟件平臺(tái),目前常用的有UNIX、LINUX、WINDOWS系統(tǒng)。數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)工具:為開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序所提供的工具,它包括程序設(shè)計(jì)語(yǔ)言,如C、C++、Java等,也包括可視化開(kāi)發(fā)工具如VS、Eclipse等,還包括與INTERNET有關(guān)的HTML和XML等一系列專(zhuān)用開(kāi)發(fā)工具。接口軟件:在網(wǎng)絡(luò)環(huán)境下數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)庫(kù)與應(yīng)用程序、數(shù)據(jù)庫(kù)與網(wǎng)絡(luò)間存在著多種接口,這需要用接口軟件進(jìn)行連接,否則數(shù)據(jù)庫(kù)整體就無(wú)法運(yùn)作,這些接口軟件包括ODBC、JDBC、OLEDB、CORBA、COM、等。6、數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)(DBAS)利用數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行應(yīng)用開(kāi)發(fā)可構(gòu)成一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)。數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)是由三者組成:數(shù)據(jù)庫(kù)系統(tǒng)+應(yīng)用軟件+應(yīng)用界面。具體包括:數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)據(jù)庫(kù)管理員、硬件平臺(tái)、軟件平臺(tái)、應(yīng)用軟件、應(yīng)用界面。其中:應(yīng)用軟件是由數(shù)據(jù)庫(kù)管理系統(tǒng)(軟件)和數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)工具開(kāi)發(fā)而成的。應(yīng)用界面多數(shù)由相關(guān)的可視化工具開(kāi)發(fā)而成。數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)組成7.1.2數(shù)據(jù)庫(kù)系統(tǒng)的發(fā)展
數(shù)據(jù)管理技術(shù)是指對(duì)數(shù)據(jù)進(jìn)行分類(lèi)、組織、編碼、存儲(chǔ)、檢索和維護(hù)的技術(shù)。計(jì)算機(jī)中的數(shù)據(jù)管理技術(shù)經(jīng)歷了三個(gè)發(fā)展階段:人工管理階段文件系統(tǒng)階段數(shù)據(jù)庫(kù)系統(tǒng)階段1、人工管理階段這一階段數(shù)據(jù)由程序員在程序中進(jìn)行管理,數(shù)據(jù)的組織方式、存儲(chǔ)位置等都要由程序員去考慮。數(shù)據(jù)要通過(guò)物理地址進(jìn)行存取,程序和數(shù)據(jù)緊密聯(lián)系在一起,沒(méi)有實(shí)現(xiàn)數(shù)據(jù)的共享。2、文件系統(tǒng)階段文件系統(tǒng)是數(shù)據(jù)庫(kù)發(fā)展的初級(jí)階段,它提供了簡(jiǎn)單的數(shù)據(jù)共享與數(shù)據(jù)管理能力。數(shù)據(jù)以文件形式存在,長(zhǎng)期保存在外存上,但是它無(wú)法提供完整的、統(tǒng)一的管理和共享數(shù)據(jù)的能力。由于它的功能簡(jiǎn)單,因此它附屬于操作系統(tǒng)而不成為獨(dú)立的軟件,目前一般將其看成是數(shù)據(jù)庫(kù)系統(tǒng)的雛形,而不是真正的數(shù)據(jù)庫(kù)系統(tǒng)。3、數(shù)據(jù)庫(kù)系統(tǒng)管理階段這一階段克服了人工管理階段和文件系統(tǒng)管理階段的缺點(diǎn),實(shí)現(xiàn)了對(duì)數(shù)據(jù)的集中管理和共享,使數(shù)據(jù)與程序?qū)α⒋嬖?。?shí)現(xiàn)了真正意義上的數(shù)據(jù)共享。該階段具有以下特點(diǎn):數(shù)據(jù)結(jié)構(gòu)化,數(shù)據(jù)共享,數(shù)據(jù)冗余小,有較高的數(shù)據(jù)獨(dú)立性,數(shù)據(jù)庫(kù)系統(tǒng)為用戶(hù)提供了使用方便的用戶(hù)接口。應(yīng)用程序與數(shù)據(jù)庫(kù)的關(guān)系
在文件系統(tǒng)階段,人們關(guān)心的中心問(wèn)題是系統(tǒng)功能的設(shè)計(jì),因而程序處于主導(dǎo)地位,數(shù)據(jù)只起著服從程序設(shè)計(jì)需要的地位。在數(shù)據(jù)庫(kù)方式下,數(shù)據(jù)占據(jù)了中心位置,數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)成為信息系統(tǒng)首先關(guān)心的問(wèn)題,而利用這些數(shù)據(jù)的應(yīng)用程序設(shè)計(jì)則退居到以既定的數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ)的外圍地位。
人工管理文件系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)背
景應(yīng)用背景科學(xué)計(jì)算科學(xué)計(jì)算、管理大規(guī)模管理硬件背景無(wú)直接存取設(shè)備磁盤(pán)、磁鼓大容量磁盤(pán)軟件背景沒(méi)有操作系統(tǒng)有文件系統(tǒng)有數(shù)據(jù)庫(kù)管理系統(tǒng)處理方式批處理聯(lián)機(jī)實(shí)時(shí)處理批處理聯(lián)機(jī)實(shí)時(shí)處理分布處理批處理特
點(diǎn)數(shù)據(jù)管理者人文件系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)面向?qū)ο竽硞€(gè)應(yīng)用程序某個(gè)應(yīng)用程序現(xiàn)實(shí)世界數(shù)據(jù)共享程度無(wú)共享冗余度大共享性差冗余度大共享性大冗余度小數(shù)據(jù)獨(dú)立性不獨(dú)立完全依賴(lài)于程序獨(dú)立性差具有高度的物理獨(dú)立性和一定的邏輯獨(dú)立性數(shù)據(jù)結(jié)構(gòu)化無(wú)結(jié)構(gòu)記錄內(nèi)有結(jié)構(gòu)整體無(wú)結(jié)構(gòu)整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述數(shù)據(jù)控制能力應(yīng)用程序自己控制應(yīng)用程序自己控制由DBMS提供數(shù)據(jù)安全性、完整性、并發(fā)控制和恢復(fù)數(shù)據(jù)管理三個(gè)階段的比較目前,數(shù)據(jù)庫(kù)技術(shù)正在迅速發(fā)展中,未來(lái)的數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)該具有面向?qū)ο蟮幕咎卣鳎嬷С謹(jǐn)?shù)據(jù)庫(kù)管理、對(duì)象管理和知識(shí)管理。在諸多的數(shù)據(jù)庫(kù)新技術(shù)中,以下三種是比較重要的:面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng):用面向?qū)ο蟮姆椒?gòu)筑面向?qū)ο髷?shù)據(jù)模型使其具有比關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)更為強(qiáng)大的能力。知識(shí)庫(kù)系統(tǒng):用人工智能方法,特別是用謂詞邏輯知識(shí)表示方法來(lái)構(gòu)筑數(shù)據(jù)模型。關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的擴(kuò)充:利用關(guān)系數(shù)據(jù)庫(kù)作進(jìn)一步擴(kuò)展,使其在模型表達(dá)能力上有進(jìn)一步的加強(qiáng),如與網(wǎng)絡(luò)技術(shù)相結(jié)合的Web數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)及嵌入式數(shù)據(jù)庫(kù)等。7.1.3數(shù)據(jù)庫(kù)系統(tǒng)的基本特點(diǎn)數(shù)據(jù)庫(kù)技術(shù)是在文件系統(tǒng)基礎(chǔ)上發(fā)展起來(lái)的,兩者都以數(shù)據(jù)文件的形式組織數(shù)據(jù),但數(shù)據(jù)庫(kù)系統(tǒng)是在文件系統(tǒng)上加入了DBMS對(duì)數(shù)據(jù)進(jìn)行管理,從而使得數(shù)據(jù)庫(kù)系統(tǒng)具有以下特點(diǎn):(1)數(shù)據(jù)的集成性。數(shù)據(jù)庫(kù)中的數(shù)據(jù)是按照一定的數(shù)據(jù)模型進(jìn)行組織和存儲(chǔ),即數(shù)據(jù)庫(kù)中的數(shù)據(jù)相互之間是有聯(lián)系的,這是數(shù)據(jù)庫(kù)與文件之間最重要的區(qū)別之一。數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)集成性主要表現(xiàn)在以下幾個(gè)方面:在數(shù)據(jù)庫(kù)系統(tǒng)中采用統(tǒng)一的數(shù)據(jù)模式,如在關(guān)系數(shù)據(jù)庫(kù)中采用二維表做為統(tǒng)一結(jié)構(gòu)方式。在數(shù)據(jù)庫(kù)系統(tǒng)中按照多個(gè)應(yīng)用的需要組織全局的統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)(即數(shù)據(jù)模式),數(shù)據(jù)模式不僅可以建立全局的數(shù)據(jù)結(jié)構(gòu),還可以建立數(shù)據(jù)間的語(yǔ)義關(guān)系從而構(gòu)成一個(gè)內(nèi)在緊密聯(lián)系的數(shù)據(jù)整體。數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)模式是多個(gè)應(yīng)用共同的、全局的數(shù)據(jù)結(jié)構(gòu),而每個(gè)應(yīng)用的數(shù)據(jù)則是全局?jǐn)?shù)據(jù)結(jié)構(gòu)中的一部分,稱(chēng)為局部數(shù)據(jù)結(jié)構(gòu)(即視圖),這種全局與局部的結(jié)構(gòu)模式構(gòu)成了數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)集成性的主要特征。(2)數(shù)據(jù)的高共享性與低冗余性。數(shù)據(jù)庫(kù)中的數(shù)據(jù)共享性體現(xiàn)在兩個(gè)方面:數(shù)據(jù)庫(kù)中的數(shù)據(jù)可以被多個(gè)應(yīng)用程序訪問(wèn);數(shù)據(jù)庫(kù)中的數(shù)據(jù)可以被多個(gè)用戶(hù)同時(shí)訪問(wèn)。由于數(shù)據(jù)的集成性使得數(shù)據(jù)可以為多個(gè)應(yīng)用所共享,特別是數(shù)據(jù)庫(kù)與網(wǎng)絡(luò)的結(jié)合擴(kuò)大了數(shù)據(jù)關(guān)系的應(yīng)用范圍。數(shù)據(jù)的共享又可極大地減少數(shù)據(jù)冗余性,這不僅減少了不必要的存儲(chǔ)空間,更重要的是可以避免數(shù)據(jù)的不一致性。(數(shù)據(jù)的一致性是指在系統(tǒng)中的同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值,而數(shù)據(jù)不一致性是指同一數(shù)據(jù)在系統(tǒng)中不同位置有著不同的值。)因此,減少數(shù)據(jù)冗余性是保證數(shù)據(jù)一致性的基礎(chǔ)。(3)數(shù)據(jù)獨(dú)立性。數(shù)據(jù)獨(dú)立性是數(shù)據(jù)與程序間的互不依賴(lài),即數(shù)據(jù)庫(kù)中的數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴(lài)于應(yīng)用程序。也就是說(shuō),數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和存取方式的改變不會(huì)影響應(yīng)用程序。數(shù)據(jù)獨(dú)立性一般分為物理獨(dú)立性和邏輯獨(dú)立性?xún)杉?jí)。物理獨(dú)立性:數(shù)據(jù)的物理結(jié)構(gòu),如存儲(chǔ)結(jié)構(gòu)、存取方式等的改變等都不影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),也不會(huì)引起應(yīng)用程序的變化。邏輯獨(dú)立性:數(shù)據(jù)庫(kù)總體邏輯結(jié)構(gòu)的改變,如修改數(shù)據(jù)模式、增加新的數(shù)據(jù)類(lèi)型、改變數(shù)據(jù)間的關(guān)系等,不需要相應(yīng)修改原來(lái)的應(yīng)用程序。(4)數(shù)據(jù)統(tǒng)一管理與控制。數(shù)據(jù)庫(kù)系統(tǒng)不僅為數(shù)據(jù)提供了高度集成環(huán)境,同時(shí)還為數(shù)據(jù)提供了統(tǒng)一管理的手段,主要包括以下三個(gè)方面:數(shù)據(jù)完整性檢查:檢查數(shù)據(jù)庫(kù)中的數(shù)據(jù)的正確性以保證數(shù)據(jù)的正確。數(shù)據(jù)的安全性保護(hù):檢查數(shù)據(jù)訪問(wèn)者權(quán)限以防止非法訪問(wèn)。并發(fā)控制:控制(多個(gè)應(yīng)用的)并發(fā)訪問(wèn)所產(chǎn)生的相互干擾以保證數(shù)據(jù)正確性。7.1.4數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)部體系結(jié)構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)部具有三級(jí)模式和兩級(jí)映射:三級(jí)模式:外模式、概念模式與內(nèi)模式;兩級(jí)映射:外模式到概念模式的映射,概念模式到內(nèi)模式的映射。這種三級(jí)模式和兩級(jí)映射構(gòu)成了數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)部的抽象體系結(jié)構(gòu)。三級(jí)模式、兩級(jí)映像關(guān)系圖1、數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式
數(shù)據(jù)模式是數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)結(jié)構(gòu)的一種表示形式,它具有不同的層次與結(jié)構(gòu)方式。(1)概念模式
概念模式又叫做邏輯模式或模式,是數(shù)據(jù)庫(kù)系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶(hù)(應(yīng)用)公共數(shù)據(jù)視圖。這種描述是一種抽象的描述,不涉及具體的硬件環(huán)境,也與具體的軟件環(huán)境無(wú)關(guān)。概念模式主要描述數(shù)據(jù)的概念記錄類(lèi)型以及它們之間的關(guān)系,它還包括一些數(shù)據(jù)間的語(yǔ)義約束,對(duì)它的描述用DDL語(yǔ)言定義。一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)概念模式。(2)外模式
外模式也稱(chēng)用戶(hù)模式或子模式,是模式的子集,是數(shù)據(jù)的局部邏輯結(jié)構(gòu)。它是用戶(hù)的數(shù)據(jù)視圖,也就是用戶(hù)所見(jiàn)到的數(shù)據(jù)模式,它由概念模式推導(dǎo)而出。概念模式給出了系統(tǒng)的全局?jǐn)?shù)據(jù)描述,而外模式則給出每個(gè)用戶(hù)的局部數(shù)據(jù)描述。一個(gè)數(shù)據(jù)庫(kù)可以有多個(gè)外模式。一個(gè)概念模式可以有多個(gè)外模式,每個(gè)用戶(hù)只關(guān)心與它有關(guān)的外模式,這樣不僅可以屏蔽大量無(wú)關(guān)信息,而且有利于數(shù)據(jù)保護(hù)。在DBMS中都提供有相關(guān)的外模式描述語(yǔ)言(外模式DDL)。(3)內(nèi)模式
內(nèi)模式又稱(chēng)物理模式或存儲(chǔ)模式,它給出了數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)與存取方法,如數(shù)據(jù)存儲(chǔ)文件結(jié)構(gòu)、索引、集簇等存取方式與存儲(chǔ)路徑,內(nèi)模式的物理特性主要體現(xiàn)在操作系統(tǒng)及文件級(jí)上,并未深入到設(shè)備級(jí)上(如磁盤(pán)及磁盤(pán)操作)。內(nèi)模式對(duì)一般用戶(hù)是透明的,但它的設(shè)計(jì)直接影響數(shù)據(jù)庫(kù)的性能。一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)內(nèi)模式。DBMS提供相關(guān)的內(nèi)模式描述語(yǔ)言(內(nèi)模式DDL)。數(shù)據(jù)模式給出了數(shù)據(jù)庫(kù)的數(shù)據(jù)框架結(jié)構(gòu),數(shù)據(jù)是數(shù)據(jù)庫(kù)中的真正實(shí)體,這些數(shù)據(jù)必須按框架所描述的結(jié)構(gòu)組織:以概念模式為框架所組成的數(shù)據(jù)庫(kù)叫概念數(shù)據(jù)庫(kù)以外模式為框架所組成的數(shù)據(jù)庫(kù)叫用戶(hù)數(shù)據(jù)庫(kù)以?xún)?nèi)模式為框架所組成的數(shù)據(jù)庫(kù)叫物理數(shù)據(jù)庫(kù)這三種數(shù)據(jù)庫(kù)中只有物理數(shù)據(jù)庫(kù)是真實(shí)存在于計(jì)算機(jī)外存中的,其他兩種數(shù)據(jù)庫(kù)并不存在于計(jì)算機(jī)中,而是通過(guò)兩級(jí)映射由物理數(shù)據(jù)庫(kù)映射而成。模式的三個(gè)級(jí)別層次反映了模式的三個(gè)不同環(huán)境以及它們的不同要求:內(nèi)模式處于最底層,它反映了數(shù)據(jù)在計(jì)算機(jī)物理結(jié)構(gòu)中的實(shí)際存儲(chǔ)形式;概念模式處于中層,它反映了數(shù)據(jù)庫(kù)中數(shù)據(jù)的全局邏輯要求;外模式處于最外層,它反映了用戶(hù)對(duì)數(shù)據(jù)的要求。2、數(shù)據(jù)庫(kù)系統(tǒng)的兩級(jí)映射數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式是數(shù)據(jù)的三個(gè)級(jí)別抽象,它把數(shù)據(jù)的具體物理實(shí)現(xiàn)留給物理模式,使用戶(hù)與全局設(shè)計(jì)者不必關(guān)心數(shù)據(jù)庫(kù)的具體實(shí)現(xiàn)與物理背景。同時(shí),它通過(guò)兩級(jí)映射建立了模式間的聯(lián)系與轉(zhuǎn)換,使得概念模式與外模式雖然不具備物理存在,但是也能通過(guò)映射獲得其實(shí)體。此外,兩級(jí)映射也保證了數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)的獨(dú)立性,即數(shù)據(jù)的物理組織改變與邏輯概念級(jí)改變相互獨(dú)立,只要調(diào)整映射方式而不必改變模式或用戶(hù)模式。數(shù)據(jù)庫(kù)系統(tǒng)的兩級(jí)映射結(jié)構(gòu)(1)(概念)模式到內(nèi)模式的映射該映射存在于概念級(jí)和內(nèi)部級(jí)之間;該映射給出了概念模式中數(shù)據(jù)的全局邏輯結(jié)構(gòu)到數(shù)據(jù)的物理存儲(chǔ)結(jié)構(gòu)間的對(duì)應(yīng)關(guān)系。實(shí)現(xiàn)了概念模式到內(nèi)模式之間的相互轉(zhuǎn)換;保證了數(shù)據(jù)具有很高的物理獨(dú)立性。這種映射由DBMS實(shí)現(xiàn)。(2)外模式到(概念)模式的映射概念模式是全局模式,外模式是用戶(hù)的局部模式。一個(gè)概念模式中可以定義多個(gè)外模式,而每個(gè)外模式是概念模式的一個(gè)局部視圖。外模式到(概念)模式間的映射給出了外模式與概念模式的對(duì)應(yīng)關(guān)系。該映射存在于外部級(jí)與概念級(jí)之間;實(shí)現(xiàn)了外模式到概念模式之間的相互轉(zhuǎn)換;保證了數(shù)據(jù)具有較高的邏輯獨(dú)立性。這種映射是由DBMS實(shí)現(xiàn)。7.2數(shù)據(jù)模型7.2.1數(shù)據(jù)模型的基本概念數(shù)據(jù)模型是對(duì)現(xiàn)實(shí)世界中數(shù)據(jù)的模擬和抽象。1、數(shù)據(jù)模型的組成要素?cái)?shù)據(jù)是現(xiàn)實(shí)世界符號(hào)的抽象,數(shù)據(jù)模型則是數(shù)據(jù)特征的抽象,它從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動(dòng)態(tài)行為和約束條件,為數(shù)據(jù)庫(kù)系統(tǒng)的信息表示與操作提供一個(gè)抽象的框架。數(shù)據(jù)模型所描述的內(nèi)容有三個(gè)部分,分別是:數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)模型中的數(shù)據(jù)結(jié)構(gòu)主要描述數(shù)據(jù)的類(lèi)型、內(nèi)容、性質(zhì)以及數(shù)據(jù)間的聯(lián)系等。數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)模型的基礎(chǔ),數(shù)據(jù)操作與數(shù)據(jù)約束均建立在數(shù)據(jù)結(jié)構(gòu)之上。不同數(shù)據(jù)結(jié)構(gòu)有著不同的操作與約束,因此,數(shù)據(jù)模型的分類(lèi)均以數(shù)據(jù)結(jié)構(gòu)的不同而分。數(shù)據(jù)操作:數(shù)據(jù)模型中的數(shù)據(jù)操作主要描述在相應(yīng)數(shù)據(jù)結(jié)構(gòu)上的操作類(lèi)型與操作方式。數(shù)據(jù)約束:數(shù)據(jù)模型中的數(shù)據(jù)約束主要描述數(shù)據(jù)結(jié)構(gòu)內(nèi)數(shù)據(jù)的語(yǔ)法、語(yǔ)義聯(lián)系,它們之間的制約與依存關(guān)系,以及數(shù)據(jù)動(dòng)態(tài)變化的規(guī)則,以保證數(shù)據(jù)的正確、有效與相容。2、數(shù)據(jù)模型的類(lèi)型數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類(lèi)型,它們是概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型。概念數(shù)據(jù)模型簡(jiǎn)稱(chēng)概念模型,它是一種面向客觀世界、面向用戶(hù)的模型;它與具體的數(shù)據(jù)庫(kù)管理系統(tǒng)無(wú)關(guān),與具體的計(jì)算機(jī)平臺(tái)無(wú)關(guān)。概念模型著重于對(duì)客觀世界復(fù)雜事物的結(jié)構(gòu)以及它們之間內(nèi)在聯(lián)系的描述。概念模型是整個(gè)數(shù)據(jù)模型的基礎(chǔ)。目前,使用較多的概念模型有:E-R模型、擴(kuò)充的E-R模型、面向?qū)ο竽P图爸^詞模型等。邏輯數(shù)據(jù)模型又稱(chēng)數(shù)據(jù)模型,它是一種面向數(shù)據(jù)庫(kù)系統(tǒng)的模型,該模型著重于在數(shù)據(jù)庫(kù)系統(tǒng)一級(jí)的實(shí)現(xiàn)。概念模型只有在轉(zhuǎn)換成數(shù)據(jù)模型后才能在數(shù)據(jù)庫(kù)中得以實(shí)現(xiàn)。目前,邏輯數(shù)據(jù)模型也有很多種,先后被人們大量使用過(guò)的有;層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P偷取N锢頂?shù)據(jù)模型又稱(chēng)物理模型,它是一種面向計(jì)算機(jī)物理表示的模型,這個(gè)模型給出了數(shù)據(jù)模型在計(jì)算機(jī)內(nèi)部的物理結(jié)構(gòu)實(shí)現(xiàn)。現(xiàn)實(shí)世界中的事物要在計(jì)算機(jī)中表示出來(lái),首先要建立事物的概念(數(shù)據(jù))模型(按用戶(hù)的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模,主要用于數(shù)據(jù)庫(kù)設(shè)計(jì)),然后再由概念(數(shù)據(jù))模型轉(zhuǎn)化為(邏輯)數(shù)據(jù)模型。即存在下面的轉(zhuǎn)化過(guò)程:
事物→概念模型→數(shù)據(jù)模型
現(xiàn)實(shí)世界概念世界
數(shù)據(jù)世界事物及聯(lián)系概念(實(shí)體)模型
數(shù)據(jù)模型事物(抽象)
實(shí)體集
(數(shù)據(jù)表示)
數(shù)據(jù)對(duì)象性質(zhì)
實(shí)體
屬性
記錄字段7.2.2E-R模型概念模型是面向現(xiàn)實(shí)世界的,它的出發(fā)點(diǎn)是有效地模擬現(xiàn)實(shí)世界,給出數(shù)據(jù)的概念化結(jié)構(gòu),長(zhǎng)期以來(lái)被廣泛使用的概念模型是E-R模型(實(shí)體-聯(lián)系模型),它于1976年P(guān)eterChen首先提出。E-R模型將現(xiàn)實(shí)世界的要求轉(zhuǎn)化成實(shí)體、聯(lián)系、屬性等幾個(gè)基本概念(以及它們間的兩種基本連接關(guān)系),并且可以用E-R圖非常直觀地表示出來(lái)。E-R圖提供了表示實(shí)體、屬性和聯(lián)系的方法。E-R圖的繪制方法:實(shí)體:客觀存在并且可以相互區(qū)別的事物,用矩形框表示,矩形框內(nèi)寫(xiě)實(shí)體名。屬性:描述實(shí)體的特性,用橢圓框表示,并用無(wú)向邊將其與相應(yīng)的實(shí)體連接起來(lái)。聯(lián)系:實(shí)體間的對(duì)應(yīng)關(guān)系,它反映現(xiàn)實(shí)世界事物之間的相互聯(lián)系,用菱形框表示,菱形框內(nèi)寫(xiě)聯(lián)系名。1、E-R模型的基本概念(1)實(shí)體實(shí)體:客觀存在的,可以相互區(qū)別的事物?,F(xiàn)實(shí)世界中的事物可以抽象成為實(shí)體,實(shí)體是概念世界中的基本單位。具有相同屬性的實(shí)體具有共同的特征和性質(zhì),用實(shí)體名及其屬性名集合來(lái)抽象和刻畫(huà)同類(lèi)實(shí)體,稱(chēng)為實(shí)體型。同型實(shí)體的集合稱(chēng)為實(shí)體集。如小趙、小李等都是實(shí)體,他們又均是學(xué)生而組成一個(gè)實(shí)體集。
(2)屬性屬性:實(shí)體所擁有的某一方面的特性。例如,醫(yī)生的編號(hào)、姓名、性別、職稱(chēng)、科室等?,F(xiàn)實(shí)世界中事物均有一些特性,這些特性可以用屬性來(lái)表示,屬性刻畫(huà)了實(shí)體的特征。一個(gè)實(shí)體可以有多個(gè)屬性。屬性可以有值,某個(gè)屬性的取值范圍為該屬性的值域或值集。(3)聯(lián)系現(xiàn)實(shí)世界中事物間的關(guān)聯(lián)稱(chēng)為聯(lián)系。聯(lián)系反映了實(shí)體間的一定關(guān)系,如上、下級(jí)間的領(lǐng)導(dǎo)關(guān)系,生產(chǎn)者與消費(fèi)者之間的供求關(guān)系。實(shí)體集間的聯(lián)系有多種:兩個(gè)實(shí)體集間的聯(lián)系。兩個(gè)實(shí)體集之間的聯(lián)系是一種最常見(jiàn)的聯(lián)系。多個(gè)實(shí)體集間的聯(lián)系。這種聯(lián)系包括三個(gè)實(shí)體集間的聯(lián)系以及三個(gè)以上實(shí)體集間的聯(lián)系。如工廠、產(chǎn)品、用戶(hù)這三個(gè)實(shí)體集間存在著工廠提供產(chǎn)品為用戶(hù)服務(wù)的聯(lián)系。一個(gè)實(shí)體集內(nèi)部的聯(lián)系。一個(gè)實(shí)體集內(nèi)有多個(gè)實(shí)體,它們之間的聯(lián)系稱(chēng)實(shí)體集內(nèi)部聯(lián)系。如某公司職工這個(gè)實(shí)體集內(nèi)部可以有上、下級(jí)聯(lián)系。實(shí)體集之間聯(lián)系的個(gè)數(shù)可以是一個(gè)也可以是多個(gè)。如工人與設(shè)備之間有操作聯(lián)系,另外還可以有維修聯(lián)系。兩個(gè)實(shí)體集間的聯(lián)系就是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有下面幾種:一對(duì)一的聯(lián)系,記為1:1。如學(xué)校與校長(zhǎng)間的聯(lián)系,一個(gè)學(xué)校與一個(gè)校長(zhǎng)一一對(duì)應(yīng)。一對(duì)多或多對(duì)一聯(lián)系,記為1:M或M:1。如學(xué)生與其宿舍房間的聯(lián)系是多對(duì)一的聯(lián)系(反之,則為一對(duì)多聯(lián)系),即多個(gè)學(xué)生對(duì)應(yīng)一間宿舍。多對(duì)多聯(lián)系,記為M:N。如教師與學(xué)生這兩個(gè)實(shí)體集之間的教學(xué)聯(lián)系是多對(duì)多聯(lián)系,因?yàn)橐粋€(gè)教師可以教授多名學(xué)生,一個(gè)學(xué)生又可以受教于多名教師。2、E-R模型三個(gè)基本概念之間的聯(lián)接關(guān)系E-R模型由三個(gè)基本概念組成:實(shí)體、聯(lián)系、屬性,三者結(jié)合起來(lái)才能表示現(xiàn)實(shí)世界。(1)實(shí)體集(聯(lián)系)與屬性間的聯(lián)接關(guān)系實(shí)體是概念世界中的基本單位,屬性附屬于實(shí)體,屬性本身并不構(gòu)成獨(dú)立單位。一個(gè)實(shí)體可以有多個(gè)屬性,實(shí)體以及它的所有屬性構(gòu)成了實(shí)體的一個(gè)完整描述。如在人事檔案中每個(gè)人(實(shí)體)可以有:編號(hào)、姓名、性別、年齡、籍貫、政治面貌等多個(gè)屬性,它們組成了有關(guān)人(實(shí)體)的一個(gè)完整描述。屬性有屬性域,每個(gè)實(shí)體取屬性域內(nèi)的值。一個(gè)實(shí)體的所有屬性取值組成了一個(gè)值集稱(chēng)元組。在概念世界中,可以用元組表示實(shí)體,也可用它區(qū)別不同的實(shí)體。如在人事檔案表中,每一行表示一個(gè)實(shí)體,這個(gè)實(shí)體可以用一組屬性值表示。例如:(101,趙英俊,男,18,浙江,團(tuán)員)、(102,王平,男,21,江蘇,黨員),這兩個(gè)元組分別表示兩個(gè)不同的實(shí)體。實(shí)體有型與值,一個(gè)實(shí)體的所有屬性構(gòu)成了這個(gè)實(shí)體的型。如人事檔案中的實(shí)體,它的型是由編號(hào)、姓名、性別、年齡、籍貫、政治面貌等屬性組成。實(shí)體中屬性值的集合(即元組)則構(gòu)成了這個(gè)實(shí)體的值。相同型的實(shí)體構(gòu)成了實(shí)體集,它們均有相同的型。聯(lián)系也可以有屬性,聯(lián)系和它的所有屬性夠成了聯(lián)系的一個(gè)完整描述。如教師與學(xué)生兩個(gè)實(shí)體集間有教學(xué)的聯(lián)系,這個(gè)聯(lián)系有屬性“教室號(hào)”。(2)實(shí)體(集)與聯(lián)系實(shí)體集間無(wú)法建立直接關(guān)系,它們之間可通過(guò)聯(lián)系建立關(guān)系。如教師與學(xué)生之間無(wú)法直接建立關(guān)系,只有通過(guò)“教學(xué)”的聯(lián)系才能在相互之間建立關(guān)系。在E-R模型中的三個(gè)基本概念以及它們之間的聯(lián)系關(guān)系,將現(xiàn)實(shí)世界中的錯(cuò)綜復(fù)雜的現(xiàn)象抽象成簡(jiǎn)單明了的幾個(gè)概念與關(guān)系,具有極強(qiáng)的概括性和表達(dá)能力。E-R模型目前已成為表示概念世界的有力工具。3、E-R型的圖示法學(xué)生選課E-R圖:一個(gè)學(xué)校的系、教研室、教師、學(xué)生、課程之間的E-R模型N
N
1
N
系代碼
系名
領(lǐng)導(dǎo)
室代碼
室名
開(kāi)課
管理
學(xué)生
學(xué)號(hào)
姓名
性別
所屬
課程
N
選修
M
1
1
教師
教學(xué)
N
姓名性別職工號(hào)分?jǐn)?shù)
課程號(hào)主選教材
大綱
教研室
系
N
實(shí)體聯(lián)系聯(lián)系的類(lèi)型屬性
在E-R圖中,用矩形表示實(shí)體集,在長(zhǎng)方形框內(nèi)寫(xiě)上實(shí)體名。
用菱形表示實(shí)體之間聯(lián)系,菱形框內(nèi)寫(xiě)上聯(lián)系名。
用無(wú)向邊把菱形和有關(guān)實(shí)體相連接,在無(wú)向邊旁標(biāo)上聯(lián)系的類(lèi)型,如1或M或N。
用橢圓形表示實(shí)體或聯(lián)系的屬性,用橢圓形將它與一個(gè)相應(yīng)實(shí)體之間以無(wú)向邊相連。7.2.3層次模型層次模型是數(shù)據(jù)庫(kù)中最早的數(shù)據(jù)模型。層次模型的基本構(gòu)造是樹(shù)形結(jié)構(gòu),這種結(jié)構(gòu)方式在現(xiàn)實(shí)世界中很普遍,如家族結(jié)構(gòu)、行政組織機(jī)構(gòu),它們自頂向下、層次分明。由樹(shù)的性質(zhì)可知,任一樹(shù)結(jié)構(gòu)均有下列特性:每棵樹(shù)有且僅有一個(gè)無(wú)雙親結(jié)點(diǎn),稱(chēng)為根。樹(shù)中除根外所有結(jié)點(diǎn)有且僅有一個(gè)雙親。因此,樹(shù)結(jié)構(gòu)是受到一定限制的,從E-R模型觀點(diǎn)看,它對(duì)于聯(lián)系也加上了許多限制。層次數(shù)據(jù)模型支持的操作主要有查詢(xún)、插入、刪除和更新。在對(duì)層次模型進(jìn)行插入、刪除、更新操作時(shí),要滿足層次模型的完整型約束條件。進(jìn)行插入操作時(shí),如果沒(méi)有相應(yīng)的是雙親結(jié)點(diǎn)值就不能插入子女結(jié)點(diǎn)值;進(jìn)行刪除操作時(shí),如果刪除雙親結(jié)點(diǎn)值,則相應(yīng)的子女結(jié)點(diǎn)值也被同時(shí)刪除;進(jìn)行更新操作時(shí),應(yīng)更新所有相應(yīng)記錄,以保證數(shù)據(jù)的一致性。優(yōu)點(diǎn):層次模型的數(shù)據(jù)結(jié)構(gòu)操作比較簡(jiǎn)單;對(duì)于實(shí)體間聯(lián)系是固定的、且預(yù)先定義好的應(yīng)用系統(tǒng),層次結(jié)構(gòu)有較高的性能;層次模型還可以提供很良好的完整性支持。缺點(diǎn):由于層次模型成型早,受文件系統(tǒng)影響大,模型受限制多,物理成分復(fù)雜,操作與使用均不甚理想,它不適合于表示表示非層次性的聯(lián)系;對(duì)于插入和刪除操作的限制比較多;查詢(xún)子女結(jié)點(diǎn)必須通過(guò)雙親結(jié)點(diǎn)。一個(gè)學(xué)校行政機(jī)構(gòu)圖的E-R圖(略去了其中的屬性)。
7.2.4網(wǎng)狀模型
網(wǎng)狀模型的出現(xiàn)晚于層次模型,網(wǎng)狀模型是一個(gè)不加任何條件限制的無(wú)向圖。網(wǎng)狀模型在結(jié)構(gòu)上較層次模型好,不像層次模型那樣要求滿足嚴(yán)格的條件。下圖是學(xué)校行政機(jī)構(gòu)圖與學(xué)生聯(lián)系的E-R圖。在實(shí)現(xiàn)中,網(wǎng)狀模型將通用的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)分解成一些基本結(jié)構(gòu)。一般采用的分解方法是將一個(gè)網(wǎng)絡(luò)分成若干個(gè)二級(jí)樹(shù),即只有兩個(gè)層次的樹(shù)。這種樹(shù)是由一個(gè)根及若干個(gè)葉子所組成。為實(shí)現(xiàn)方便,一般規(guī)定根結(jié)點(diǎn)與任一葉子結(jié)點(diǎn)間的聯(lián)系均是一對(duì)多的聯(lián)系(包含一對(duì)一聯(lián)系)。在網(wǎng)狀模型的DBTG標(biāo)準(zhǔn)中,基本結(jié)構(gòu)簡(jiǎn)單二級(jí)樹(shù)叫系,系的基本數(shù)據(jù)單位是記錄,它相當(dāng)于E-R模型中的實(shí)體(集);記錄又可由若干數(shù)據(jù)項(xiàng)組成,它相當(dāng)于E-R模型中的屬性。系有一個(gè)首記錄,它相當(dāng)于簡(jiǎn)單二級(jí)樹(shù)的根;系同時(shí)有若干個(gè)成員記錄,它相當(dāng)于簡(jiǎn)單二級(jí)樹(shù)中的葉子。首記錄與成員記錄之間的聯(lián)系用有向線段表示(線段方向僅表示由首記錄至成員記錄的方向,而并不表示搜索方向),在系中首記錄與成員記錄間是一對(duì)多聯(lián)系(包括一對(duì)一聯(lián)系)。網(wǎng)狀模型優(yōu)于層次模型,不管是數(shù)據(jù)表示或數(shù)據(jù)操縱均顯示了更高的效率、更為成熟。但是,網(wǎng)狀模型數(shù)據(jù)庫(kù)系統(tǒng)也有一定的不足,在使用時(shí)涉及到系統(tǒng)內(nèi)部的物理因素較多,用戶(hù)操作使用不方便,其數(shù)據(jù)模式與系統(tǒng)實(shí)現(xiàn)也均不理想。7.2.5關(guān)系模型
關(guān)系數(shù)據(jù)模型:用二維表格數(shù)據(jù)(即集合論中的關(guān)系)來(lái)表示實(shí)體和實(shí)體間聯(lián)系的模型。每張二維表就是一個(gè)關(guān)系,關(guān)系模型是由若干張二維表組成的集合。關(guān)系在磁盤(pán)上以文件形式存儲(chǔ),每個(gè)字段是表中的一列,每個(gè)記錄是表中的一行。1、關(guān)系的數(shù)據(jù)結(jié)構(gòu)
關(guān)系模型用二維表(簡(jiǎn)稱(chēng)表)表示,二維表由表框架及表的元組組成。表框架由n個(gè)不同命名的屬性組成,n稱(chēng)為屬性元數(shù);每個(gè)屬性有一個(gè)取值范圍稱(chēng)為值域;表框架對(duì)應(yīng)關(guān)系模式,即類(lèi)型的概念。元組:表里的一行稱(chēng)為一個(gè)元組,代表一個(gè)實(shí)體,關(guān)系可以看作是元組的集合。屬性:表中的一列稱(chēng)為一個(gè)屬性,對(duì)應(yīng)于實(shí)體的屬性,給每一列起一個(gè)名稱(chēng)即屬性名,屬性又稱(chēng)字段。例如醫(yī)生編號(hào)、姓名、職稱(chēng)等字段。域:屬性的取值范圍,即不同元組對(duì)同一個(gè)屬性的取值所限定的范圍。例如,在“學(xué)生”表中“女”或“男”是性別的取值范圍,是對(duì)應(yīng)“性別”字段的一個(gè)域。關(guān)鍵字:唯一地標(biāo)識(shí)一個(gè)元組的一個(gè)或若干個(gè)屬性的集合,稱(chēng)為關(guān)鍵字,又稱(chēng)為碼或鍵。例如:學(xué)生關(guān)系(學(xué)號(hào),姓名,年齡,性別)中,關(guān)鍵字為“學(xué)號(hào)”;在成績(jī)關(guān)系(學(xué)號(hào),考試科目,考試日期,姓名,性別,成績(jī))中,關(guān)鍵字為(學(xué)號(hào),考試科目)。外部關(guān)鍵字:如果關(guān)系中的某個(gè)屬性,不是該表的主鍵,卻是另外一個(gè)表的主鍵,則稱(chēng)為外鍵。在外鍵關(guān)聯(lián)的表中,外鍵所在的表稱(chēng)為從表,以外鍵作為主鍵的表稱(chēng)為主表。關(guān)系模式:二維表中,行定義稱(chēng)為關(guān)系模式,關(guān)系模式是對(duì)關(guān)系的描述,包含關(guān)系名、組成該關(guān)系的屬性名集合。關(guān)系數(shù)據(jù)庫(kù):使用關(guān)系模型設(shè)計(jì)的數(shù)據(jù)庫(kù)稱(chēng)為關(guān)系數(shù)據(jù)庫(kù)。關(guān)系模型學(xué)生表域(Domain):屬性的取值范圍。分量:元組中的一個(gè)屬性值。關(guān)系模式:對(duì)關(guān)系的描述,一般表示為:
關(guān)系名(屬性1,屬性2,…,屬性n)學(xué)號(hào)姓名性別出生日期系名籍貫200402001李小剛男1980.6.21計(jì)算機(jī)系江蘇200402002章英女1981.1.18計(jì)算機(jī)系山東200404001劉志堅(jiān)男1980.5.8經(jīng)濟(jì)系上?!M主健關(guān)系字段屬性關(guān)系模式二維表滿足下面7個(gè)性質(zhì):二維表中元組個(gè)數(shù)是有限的——元組個(gè)數(shù)有限性。二維表中元組均不相同——元組的唯一性。二維表中元組的次序可以任意交換——元組次序的無(wú)關(guān)性。二維表中元組的分量是不可分割的基本數(shù)據(jù)項(xiàng)——元組分量的原子性。二維表中屬性名各不相同——屬性名唯一性。二維表中屬性與次序無(wú)關(guān),可任意交換——屬性的次序無(wú)關(guān)性。二維表屬性的分量具有與該屬性相同的值域——分量值域的同一性。關(guān)系框架與關(guān)系元組構(gòu)成了一個(gè)關(guān)系,一個(gè)語(yǔ)義相關(guān)的關(guān)系集合構(gòu)成了一個(gè)關(guān)系數(shù)據(jù)庫(kù)。關(guān)系的框架稱(chēng)為關(guān)系模式,而語(yǔ)義相關(guān)的關(guān)系模式集合構(gòu)成了關(guān)系數(shù)據(jù)庫(kù)模式。關(guān)系模式支持子模式,關(guān)系子模式是數(shù)據(jù)庫(kù)模式中用戶(hù)所見(jiàn)到的那部分?jǐn)?shù)據(jù)模式描述。關(guān)系子模式也是二維表結(jié)構(gòu),關(guān)系子模式對(duì)應(yīng)用戶(hù)數(shù)據(jù)庫(kù)視圖。2、關(guān)系操縱關(guān)系模型的數(shù)據(jù)操縱即是建立在關(guān)系上的數(shù)據(jù)操縱,有查詢(xún)、增加、刪除及修改四種操作。(1)數(shù)據(jù)查詢(xún)用戶(hù)可以查詢(xún)關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù),它包括一個(gè)關(guān)系內(nèi)的查詢(xún)及關(guān)系間的查詢(xún)。對(duì)一個(gè)關(guān)系內(nèi)查詢(xún)的基本單位是元組分量,其基本過(guò)程是先定位后操作,定位包括縱向定位與橫向定位兩部分,縱向定位是指定關(guān)系中的一些屬性(列指定),橫向定位是選擇滿足某些邏輯條件的元組(行選擇)。通過(guò)縱向與橫向定位后一個(gè)關(guān)系中的元組分量即可確定了。在定位后即可進(jìn)行定位操作,就是將定位的數(shù)據(jù)從關(guān)系中取出并放入指定的位置。對(duì)多個(gè)關(guān)系間的數(shù)據(jù)查詢(xún)可以分為三步:第一步,將多個(gè)關(guān)系合并成一個(gè)關(guān)系;第二步,對(duì)合并后的一個(gè)關(guān)系做定位;第三步,操作。其中第二步與第三步變?yōu)閷?duì)一個(gè)關(guān)系的查詢(xún)。對(duì)多個(gè)關(guān)系合并可分解成兩個(gè)關(guān)系的逐步合并,如有三個(gè)關(guān)系R1、R2和R3,合并過(guò)程下是將R1和R2合并成R4,然后再將R4和R3最終合并成結(jié)果R5。因此,對(duì)關(guān)系數(shù)據(jù)庫(kù)的查詢(xún)可以分解成一個(gè)關(guān)系內(nèi)的屬性指定、一個(gè)關(guān)系內(nèi)的元組選擇、兩個(gè)關(guān)系的合并三個(gè)基本定位操作以及一個(gè)查詢(xún)操作。(2)數(shù)據(jù)刪除數(shù)據(jù)刪除的基本單位是一個(gè)關(guān)系內(nèi)的元組,它的功能是將指定關(guān)系內(nèi)的指定元組刪除,它也分為定位和操作兩部分,其中定位部分只需要橫向定位而無(wú)需縱向定位,定位后即執(zhí)行刪除操作。因此數(shù)據(jù)刪除可以分解為一個(gè)關(guān)系內(nèi)的元組選擇與關(guān)系中元組刪除兩個(gè)基本操作。(3)數(shù)據(jù)插入數(shù)據(jù)插入僅對(duì)一個(gè)關(guān)系而言,并指定關(guān)系中插入一個(gè)或多個(gè)元組。在數(shù)據(jù)插入中不需定位,僅需做關(guān)系中元組插入操作,因此數(shù)據(jù)插入只有一個(gè)基本操作。(4)數(shù)據(jù)修改數(shù)據(jù)修改是在一個(gè)關(guān)系中修改指定的元組與屬性。數(shù)據(jù)修改不是一個(gè)基本操作,它可以分解為刪除需修改的元組與插入修改后的元組兩個(gè)更基本的操作。以上四種操作的對(duì)象都是關(guān)系,而操作結(jié)果也是關(guān)系,因此都是建立在關(guān)系基礎(chǔ)上操作。這四種操作可以分解成六種基本操作,稱(chēng)為關(guān)系模型的基本操作:關(guān)系的屬性指定關(guān)系的元組選擇兩個(gè)關(guān)系合并一個(gè)或多個(gè)關(guān)系的查詢(xún)關(guān)系中元組的插入關(guān)系中元組的刪除3、關(guān)系中的數(shù)據(jù)約束關(guān)系模型允許定義三類(lèi)數(shù)據(jù)約束,它們是:實(shí)體完整性約束參照完整性約束用戶(hù)自定義完整性約束其中前兩種完整性約束由關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)自動(dòng)支持。用戶(hù)自定義的完整性約束則由關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)提供完整性約束語(yǔ)言,用戶(hù)利用該語(yǔ)言寫(xiě)出約束條件,運(yùn)行時(shí)由系統(tǒng)自動(dòng)檢查。(1)實(shí)體完整性約束該約束要求關(guān)系中的主鍵屬性值不能為空值,這是數(shù)據(jù)庫(kù)完整性的最基本要求,因?yàn)樵M是由主鍵唯一決定的。(2)參照完整性約束該約束是相關(guān)聯(lián)關(guān)系之間的基本約束,一個(gè)關(guān)系上外鍵的取值,只能是空值或外鍵對(duì)應(yīng)關(guān)系的主鍵值。例如,在關(guān)系S(S#,SN,SD,SA)與SC(S#,C#,G)中,SC中的主鍵為(S#,C#),外鍵為S#,SC與S通過(guò)S#相關(guān)聯(lián),參照完整性約束要求SC中的S#的值必在S中有相應(yīng)的元組屬性值,如有SC(S13,C8,70),則必在S中存在S(S13,…..)。(3)用戶(hù)自定義完整性約束這是針對(duì)具體數(shù)據(jù)環(huán)境與應(yīng)用環(huán)境由用戶(hù)具體設(shè)置的約束,它反映了具體應(yīng)用中數(shù)據(jù)的語(yǔ)義要求。例如,性別只能是“男”或“女”兩種可能,年齡的取值只能限制在0~200之間才合乎情理等。實(shí)體完整性約束和參照完整性約束是關(guān)系數(shù)據(jù)庫(kù)所必須遵循的規(guī)則,在任何一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)中均由系統(tǒng)自動(dòng)支持。7.4數(shù)據(jù)庫(kù)設(shè)計(jì)與管理7.4.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述
在數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中一個(gè)核心問(wèn)題就是設(shè)計(jì)一個(gè)能滿足用戶(hù)要求,性能良好的數(shù)據(jù)庫(kù),這就是數(shù)據(jù)庫(kù)設(shè)計(jì)。數(shù)據(jù)庫(kù)設(shè)計(jì)的基本任務(wù)是根據(jù)用戶(hù)對(duì)象的信息需求、處理需求和數(shù)據(jù)庫(kù)的支持環(huán)境(包括硬件、操作系統(tǒng)與DBMS)設(shè)計(jì)出數(shù)據(jù)模式。信息需求主要是指用戶(hù)對(duì)象的數(shù)據(jù)及其結(jié)構(gòu),它反映了數(shù)據(jù)庫(kù)的靜態(tài)要求;處理需求則表示用戶(hù)對(duì)象的行為和動(dòng)作,它反映了數(shù)據(jù)庫(kù)的動(dòng)態(tài)要求。數(shù)據(jù)庫(kù)設(shè)計(jì)中有一定的制約條件,它們是系統(tǒng)設(shè)計(jì)平臺(tái),包括系統(tǒng)軟件、工具軟件以及設(shè)備、網(wǎng)絡(luò)等硬件。因此,數(shù)據(jù)庫(kù)設(shè)計(jì)即是在一定平臺(tái)制約下,根據(jù)信息需求與處理需求設(shè)計(jì)出性能良好的數(shù)據(jù)模式。
在數(shù)據(jù)庫(kù)設(shè)計(jì)中有兩種方法:一種是以信息需求為主,兼顧處理需求,稱(chēng)為面向數(shù)據(jù)的方法;另一種是以處理需求為主,兼顧信息需求,稱(chēng)為面向過(guò)程的方法。這兩種方法目前都有使用,在早期由于應(yīng)用系統(tǒng)中處理多于數(shù)據(jù),因此以面向過(guò)程的方法使用較多,而近期由于大型系統(tǒng)中數(shù)據(jù)結(jié)構(gòu)復(fù)雜的方法較多。由于數(shù)據(jù)在系統(tǒng)中穩(wěn)定性高,數(shù)據(jù)已成為系統(tǒng)的核心,因此面向數(shù)據(jù)的設(shè)計(jì)方法已成為主流方法。數(shù)據(jù)庫(kù)設(shè)計(jì)目前一般采用生命周期法,即將整個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)分解成目標(biāo)獨(dú)立的若干階段。它們是:需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、編碼階段、測(cè)試階段、運(yùn)行階段、進(jìn)一步修改階段。在數(shù)據(jù)庫(kù)設(shè)計(jì)中采用上面幾個(gè)階段中的前四個(gè)階段,并且重點(diǎn)以數(shù)據(jù)結(jié)構(gòu)與模型的設(shè)計(jì)為主線,如圖所示。數(shù)據(jù)庫(kù)設(shè)計(jì)的四個(gè)階段
7.4.2數(shù)據(jù)庫(kù)設(shè)計(jì)的需求分析
需求收集和分析是數(shù)據(jù)庫(kù)設(shè)計(jì)的第一階段,這一階段收集到的基礎(chǔ)數(shù)據(jù)和一組數(shù)據(jù)流圖(DFD)是下一步設(shè)計(jì)概念結(jié)構(gòu)的基礎(chǔ)。概念結(jié)構(gòu)是整個(gè)數(shù)據(jù)庫(kù)中所有用戶(hù)關(guān)心的信息結(jié)構(gòu),對(duì)整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)具有深刻影響。要設(shè)計(jì)好概念結(jié)構(gòu),就必須在需求分析階段用系統(tǒng)的觀點(diǎn)來(lái)考慮問(wèn)題、收集和分析數(shù)據(jù)及其處理。需求分析階段的任務(wù)是通過(guò)詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象,充分了解原系統(tǒng)的工作概況,明確用戶(hù)的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。新系統(tǒng)必須考慮今后可能的擴(kuò)充和改變,不能今按照當(dāng)前應(yīng)用需求來(lái)設(shè)計(jì)數(shù)據(jù)庫(kù)。調(diào)查的重點(diǎn)是“數(shù)據(jù)”和“處理”,通過(guò)調(diào)查要獲取每個(gè)用戶(hù)對(duì)數(shù)據(jù)庫(kù)的下列要求:信息要求用戶(hù)需要從數(shù)據(jù)庫(kù)中獲得信息的內(nèi)容與性質(zhì)。由信息要求可以到出數(shù)據(jù)要求,即在數(shù)據(jù)庫(kù)中需存儲(chǔ)那些數(shù)據(jù)。處理要求用戶(hù)要完成什么處理功能,對(duì)處理的響應(yīng)時(shí)間有何要求,處理的方式是批處理還是連機(jī)處理。安全性和完整性的要求。為了很好地完成調(diào)查的任務(wù),設(shè)計(jì)人員必須不斷地與用戶(hù)交流,與用戶(hù)達(dá)成共識(shí),以便逐步確定用戶(hù)的實(shí)際需求,然后分析和表達(dá)這些需求。需求分析是整個(gè)設(shè)計(jì)活動(dòng)的基礎(chǔ),也是最困難、最花時(shí)間的一步。需求分析人員既要懂得數(shù)據(jù)庫(kù)技術(shù),又要對(duì)應(yīng)用環(huán)境的業(yè)務(wù)比較熟悉。分析和表達(dá)用戶(hù)的需求,經(jīng)常采用的方法有:結(jié)構(gòu)化分析方法:采用自頂向下、逐層分解的方式分析系統(tǒng)。面向?qū)ο蟮姆椒ㄓ脭?shù)據(jù)流圖表達(dá)了數(shù)據(jù)和處理過(guò)程的關(guān)系。數(shù)據(jù)字典對(duì)系統(tǒng)中數(shù)據(jù)進(jìn)行了詳盡的描述,是一個(gè)類(lèi)似數(shù)據(jù)屬性的清單。對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)來(lái)講,數(shù)據(jù)字典是進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果。數(shù)據(jù)字典是各類(lèi)數(shù)據(jù)描述的集合,包括5個(gè)部分:數(shù)據(jù)項(xiàng),是數(shù)據(jù)的最小單位;數(shù)據(jù)結(jié)構(gòu),是若干數(shù)據(jù)項(xiàng)有意義的集合;數(shù)據(jù)流,可以是數(shù)據(jù)項(xiàng),也可以是數(shù)據(jù)結(jié)構(gòu),表示某一處理過(guò)程的輸入或輸出;數(shù)據(jù)存儲(chǔ),處理過(guò)程中存取的數(shù)據(jù),常常是手工憑證、手工文檔或計(jì)算機(jī)文件;處理過(guò)程。在實(shí)際開(kāi)展需求分析工作時(shí)有兩點(diǎn)需要特別注意:第一,在需求分析階段一個(gè)重要而困難的任務(wù)是收集將來(lái)應(yīng)用所涉及的數(shù)據(jù)。若設(shè)計(jì)人員僅僅按當(dāng)前應(yīng)用來(lái)設(shè)計(jì)數(shù)據(jù)庫(kù),新數(shù)據(jù)的加入不僅會(huì)影響數(shù)據(jù)庫(kù)的概念結(jié)構(gòu),而且將影響邏輯結(jié)構(gòu)和物理結(jié)構(gòu),因此設(shè)計(jì)人員應(yīng)充分考慮到可能的擴(kuò)充和改變,使設(shè)計(jì)易于更動(dòng)。第二,必須強(qiáng)調(diào)用戶(hù)的參與,這是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)設(shè)計(jì)的特點(diǎn)。數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)和廣泛的用戶(hù)有密切的聯(lián)系,其設(shè)計(jì)和建立又可能對(duì)更多人的工作環(huán)境產(chǎn)生重要影響。因此,設(shè)計(jì)人員應(yīng)該和用戶(hù)充分合作進(jìn)行設(shè)計(jì),并對(duì)設(shè)計(jì)工作的最后結(jié)果承擔(dān)共同的責(zé)任。7.4.3數(shù)據(jù)庫(kù)概念設(shè)計(jì)1、數(shù)據(jù)庫(kù)概念設(shè)計(jì)概述數(shù)據(jù)庫(kù)概念設(shè)計(jì)的目的分析數(shù)據(jù)間內(nèi)在語(yǔ)義關(guān)聯(lián),在此基礎(chǔ)上建立一個(gè)數(shù)據(jù)的抽象模型。數(shù)據(jù)庫(kù)概念設(shè)計(jì)的方法有以下兩種:(1)集中式模式設(shè)計(jì)法這是一種統(tǒng)一模式設(shè)計(jì)方法,它根據(jù)需求由一個(gè)統(tǒng)一機(jī)構(gòu)或人員設(shè)計(jì)一個(gè)綜合的全局模式。這種方法設(shè)計(jì)簡(jiǎn)單方便,強(qiáng)調(diào)統(tǒng)一與一致,適用于小型的不復(fù)雜的部門(mén)或單位,對(duì)于大型的或語(yǔ)義關(guān)聯(lián)復(fù)雜的單位則并不適合。(2)視圖集成設(shè)計(jì)法這種方法是將一個(gè)單位分解成多個(gè)部分,先對(duì)每個(gè)部分作局部模式設(shè)計(jì),建立各個(gè)部分的視圖,然后以各視圖為基礎(chǔ)進(jìn)行集成。在集成過(guò)程中可能會(huì)出現(xiàn)一些沖突,這是由于視圖設(shè)計(jì)的分散性造成的不一致所導(dǎo)致的,因而需對(duì)視圖作修正,最終形成全局模式。視圖集成設(shè)計(jì)法是一種由分散到集中的方法,它的設(shè)計(jì)過(guò)程復(fù)雜但它能較好地反映需求,適合于大型與復(fù)雜的單位,避免了設(shè)計(jì)的不周到,目前此種方法使用比較多。2、數(shù)據(jù)庫(kù)概念設(shè)計(jì)的過(guò)程使用E-R模型與視圖集成法進(jìn)行設(shè)計(jì)時(shí),按以下步驟進(jìn)行:首先選擇局部應(yīng)用,再進(jìn)行局部視圖設(shè)計(jì),最后對(duì)局部視圖進(jìn)行集成得到概念模式。(1)選擇局部應(yīng)用根據(jù)系統(tǒng)的具體情況,在多層的數(shù)據(jù)流圖中選擇一個(gè)適當(dāng)層次的數(shù)據(jù)流圖,讓這組圖中每一部分對(duì)應(yīng)一個(gè)局部應(yīng)用,以這一層次的數(shù)據(jù)流圖為出發(fā)點(diǎn),設(shè)計(jì)E-R圖。(2)視圖設(shè)計(jì)視圖設(shè)計(jì)有三種設(shè)計(jì)次序:自頂向下這種方法是先從抽象級(jí)別高且普遍性強(qiáng)的對(duì)象開(kāi)始逐步細(xì)化、具體化與特殊化。如學(xué)生視圖可先從一般學(xué)生開(kāi)始,再分成大學(xué)生、研究生,進(jìn)一步再由大學(xué)生細(xì)化為大學(xué)本科與專(zhuān)科,研究生細(xì)化為博士生與碩士生,還可以再細(xì)化成學(xué)生姓名、年齡、專(zhuān)業(yè)等細(xì)節(jié)。自底向上這種設(shè)計(jì)方法是先從具體的對(duì)象開(kāi)始,逐步抽象、普遍化與一般化,最后形成一個(gè)完整的視圖設(shè)計(jì)。由內(nèi)向外這種設(shè)計(jì)方法是先從最基本與最明顯的對(duì)象著手逐步擴(kuò)充至非基本、不明顯的其他對(duì)象,如學(xué)生視圖可以從最基本的學(xué)生開(kāi)始逐步擴(kuò)展至學(xué)生所學(xué)的的課程、上課教室與任課教師等其他對(duì)象。這3種方法為視圖設(shè)計(jì)提供了具體的操作方法,可根據(jù)實(shí)際情況單獨(dú)使用或可混合使用。有些共同特性和行為的對(duì)象可以抽象為一個(gè)實(shí)體。對(duì)象的組成成分可以抽象為實(shí)體的屬性。在進(jìn)行設(shè)計(jì)時(shí),實(shí)體與屬性是相對(duì)而言的。同一事物,在一種應(yīng)用環(huán)境中作為“屬性”,在另一種應(yīng)用環(huán)境中就必須作為“實(shí)體”。但是,在給定的應(yīng)用環(huán)境中,屬性必須是不可分的數(shù)據(jù)項(xiàng),屬性不能與其他實(shí)體發(fā)生聯(lián)系,聯(lián)系只發(fā)生在實(shí)體之間。【例】學(xué)籍管理局部應(yīng)用中主要涉及的實(shí)體包括學(xué)生、宿舍、檔案材料、班級(jí)、班主任。這些實(shí)體之間發(fā)生聯(lián)系有:一個(gè)宿舍可以住多個(gè)學(xué)生,一個(gè)學(xué)生只能住一個(gè)宿舍,因此宿舍與學(xué)生的聯(lián)系是1:N。一個(gè)班有若干名學(xué)生,一個(gè)學(xué)生只能屬于一個(gè)班級(jí),因此班級(jí)與學(xué)生的關(guān)系也是1:N。班主任與學(xué)生的關(guān)系也是1:N。學(xué)生與自己檔案的關(guān)系是1:1。班級(jí)與班主任之間都是1:1的聯(lián)系。學(xué)籍管理的E-R圖(省略了實(shí)體屬性)如圖所示。各實(shí)體及其屬性分別為:學(xué)生(學(xué)號(hào),姓名,出生日期,所在系,何時(shí)入學(xué))檔案材料(檔案號(hào),……)班級(jí)(班級(jí)號(hào),學(xué)生人數(shù))班主任(職工號(hào),姓名,性別,是否為優(yōu)秀班主任)宿舍(宿舍編號(hào),地址,人數(shù))教室(教室編號(hào),地址,容量)有下劃線的屬性為實(shí)體的鍵
【例】課程管理局部視圖的設(shè)計(jì):在這一試圖中共有五個(gè)實(shí)體,分別是學(xué)生、課程、教室、教師及教科書(shū),描述這些實(shí)體的屬性分別為:學(xué)生(學(xué)號(hào),姓名,年齡,性別,入學(xué)時(shí)間)課程(課程號(hào),課程名,學(xué)時(shí)數(shù))選修(學(xué)號(hào),課程名,成績(jī))教科書(shū)(書(shū)號(hào),書(shū)名,ISBN,作者,出版時(shí)間,關(guān)鍵字)教室(教室編號(hào),地址,容量)課程管理E-R圖(省略了實(shí)體屬性)如圖所示。
(3)視圖集成視圖集成的實(shí)質(zhì)是將所有的局部試圖統(tǒng)一與合并成一個(gè)完整的數(shù)據(jù)模式。在進(jìn)行視圖集成時(shí),最重要的工作是解決局部設(shè)計(jì)中的沖突。在集成過(guò)程中由于每個(gè)局部視圖在設(shè)計(jì)時(shí)的不一致性會(huì)產(chǎn)生沖突,常見(jiàn)的沖突有下列幾種:命名沖突命名沖突有同名異議和同和同義異名兩種。如上面的示例中學(xué)生屬性“何時(shí)入學(xué)”與“入學(xué)時(shí)間”屬同義異名。概念沖突同一概念在一處為實(shí)體而在另一處為屬性或聯(lián)系。域沖突相同的屬性在不同視圖中有不同的域,如學(xué)號(hào)在某視圖中的域?yàn)樽址诹硪粋€(gè)視圖中可為整數(shù),有些屬性采用不同度量單位也屬?zèng)_域突。約束沖突不同的視圖可能有不同的約束。視圖經(jīng)過(guò)合并生成的是初步的E-R圖,其中可能存在冗余的數(shù)據(jù)和冗余的實(shí)體間聯(lián)系。冗余的數(shù)據(jù)和聯(lián)系容易破壞數(shù)據(jù)庫(kù)的完整性,給數(shù)據(jù)庫(kù)維護(hù)增加困難。因此,對(duì)于視圖集成后形成的數(shù)據(jù)庫(kù)整體概念結(jié)構(gòu)還須進(jìn)行一步驗(yàn)證,確保它能滿足下列條件:整體概念結(jié)構(gòu)內(nèi)部必須具有一致性,既不能存在相互矛盾的表達(dá);整體概念結(jié)構(gòu)能準(zhǔn)確的反映原來(lái)的每個(gè)視圖結(jié)構(gòu),包括屬性、實(shí)體及實(shí)體間的聯(lián)系;整體概念結(jié)構(gòu)能滿足需求分析階段所確定的所有要求;整體概念結(jié)構(gòu)最終還應(yīng)該提交給用戶(hù),征求用戶(hù)和有關(guān)人員的意見(jiàn),進(jìn)行評(píng)審、修改和優(yōu)化,然后確定下來(lái),作為數(shù)據(jù)庫(kù)的概念結(jié)構(gòu),作為進(jìn)一步設(shè)計(jì)數(shù)據(jù)庫(kù)的依據(jù)。【例】學(xué)籍管理局部視圖與課程管理局部視圖的集成。根據(jù)上面所述的方法,集成過(guò)程可按下面步驟進(jìn)行:消除沖突這兩個(gè)子E-R圖存在著多方面的沖突:班主任也屬于教師,學(xué)籍管理中心的班主任實(shí)體與課程管理中的教師實(shí)體屬于異名同義,可以統(tǒng)一稱(chēng)為教師。將班主任改為教師后,教師與學(xué)生之間的關(guān)系呈現(xiàn)兩種不同類(lèi)型的聯(lián)系:指導(dǎo)聯(lián)系和教學(xué)聯(lián)系。由于指導(dǎo)聯(lián)系實(shí)際上可以包含在教學(xué)聯(lián)系中,因此可以將這兩種聯(lián)系綜合為教學(xué)聯(lián)系。調(diào)整學(xué)生實(shí)體屬性組成及次序,調(diào)整結(jié)果可為:學(xué)生(學(xué)號(hào),姓名,出生日期,年齡,所在系,年級(jí),平均成績(jī))
消除冗余學(xué)生實(shí)體中的年齡可以由出生日期推算出來(lái),屬于冗余數(shù)據(jù)。學(xué)生(學(xué)號(hào),姓名,出生日期,所在系,年級(jí),平均成績(jī))教室實(shí)體與班級(jí)實(shí)體之間的上課聯(lián)系可以由教室和課程之間的開(kāi)設(shè)聯(lián)系、課程與學(xué)生之間的選修聯(lián)系、學(xué)生與班級(jí)之間的組成聯(lián)系三者推導(dǎo)出來(lái),因此屬于冗余聯(lián)系。學(xué)生實(shí)體中的平均成績(jī)可以從選修聯(lián)系中的成績(jī)屬性中推算出來(lái)。如需經(jīng)常查詢(xún)學(xué)生的平均成績(jī),可以保留該冗余數(shù)據(jù),提高效率。但是為了維護(hù)數(shù)據(jù)的一致性,應(yīng)采用一定的機(jī)制以保持?jǐn)?shù)據(jù)的一致性。這樣,集成這兩個(gè)子E-R圖后的學(xué)生管理子系統(tǒng)的E-R圖如圖所示。7.4.4數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)
概念結(jié)構(gòu)設(shè)計(jì)的結(jié)果是E-R模型,它獨(dú)立于任何一種數(shù)據(jù)模型,也獨(dú)立于任何一個(gè)具體的DBMS。為建立用戶(hù)所需的數(shù)據(jù)庫(kù),需要把概念模型轉(zhuǎn)換成為某個(gè)具體的DBMS所支持的數(shù)據(jù)模型。數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)是將概念模型轉(zhuǎn)換成DBMS支持的數(shù)據(jù)模型。邏輯結(jié)構(gòu)設(shè)計(jì)的步驟:將概念模型轉(zhuǎn)換成為一般的關(guān)系、網(wǎng)狀、層次模型;將轉(zhuǎn)換來(lái)的模型向特定的DBMS支持的數(shù)據(jù)模型轉(zhuǎn)換;對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化。1、將E-R圖轉(zhuǎn)換關(guān)系模型將E-R圖轉(zhuǎn)換為關(guān)系模型:將實(shí)體、實(shí)體屬性及實(shí)體之間的聯(lián)系轉(zhuǎn)換成為關(guān)系模式。轉(zhuǎn)換原則:一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。關(guān)系的屬性即實(shí)體型的屬
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年政府公共安全監(jiān)控技術(shù)合同范本3篇
- 2024年版建設(shè)項(xiàng)目招標(biāo)協(xié)調(diào)合同
- 三年級(jí)教學(xué)計(jì)劃3篇
- 員工工作計(jì)劃
- 2024-2030年中國(guó)羥甲煙胺片行業(yè)發(fā)展?jié)摿︻A(yù)測(cè)及投資戰(zhàn)略研究報(bào)告
- 服裝銷(xiāo)售工作計(jì)劃
- 學(xué)習(xí)部工作計(jì)劃4篇
- 去超市實(shí)習(xí)報(bào)告范文集合7篇
- 銀行員工辭職信
- 關(guān)于教師職稱(chēng)述職報(bào)告匯編5篇
- 《特種設(shè)備重大事故隱患判定準(zhǔn)則》知識(shí)培訓(xùn)
- 山東省棗莊市滕州市2023-2024學(xué)年高二上學(xué)期期末考試政治試題 含答案
- 《外盤(pán)期貨介紹》課件
- 2024年07月11396藥事管理與法規(guī)(本)期末試題答案
- 《PMC培訓(xùn)資料》課件
- 2025年初級(jí)社會(huì)工作者綜合能力全國(guó)考試題庫(kù)(含答案)
- 企業(yè)發(fā)展培訓(xùn)
- 江蘇省徐州市2023-2024學(xué)年高一上學(xué)期1月期末抽測(cè)試題 化學(xué) 含答案
- 紅藍(lán)光譜治療儀
- 四川省義務(wù)教育藝術(shù)課程設(shè)置方案
- 2024年我國(guó)人口老齡化問(wèn)題與對(duì)策
評(píng)論
0/150
提交評(píng)論