




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