《數(shù)據(jù)庫系統(tǒng)原理教程》復(fù)習(xí)重點(diǎn).doc_第1頁
《數(shù)據(jù)庫系統(tǒng)原理教程》復(fù)習(xí)重點(diǎn).doc_第2頁
《數(shù)據(jù)庫系統(tǒng)原理教程》復(fù)習(xí)重點(diǎn).doc_第3頁
《數(shù)據(jù)庫系統(tǒng)原理教程》復(fù)習(xí)重點(diǎn).doc_第4頁
《數(shù)據(jù)庫系統(tǒng)原理教程》復(fù)習(xí)重點(diǎn).doc_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫系統(tǒng)原理教程第1章 緒論1.1、引言1、數(shù)據(jù):數(shù)據(jù)是描述事物的符號(hào)記錄。數(shù)據(jù)與其語義是不可分的。數(shù)據(jù)的形式本身并不能完全表達(dá)其內(nèi)容,需要經(jīng)過語義解釋。2、數(shù)據(jù)庫(database,簡(jiǎn)稱DB):長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲(chǔ),具有較小的冗余度,較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶共享。3、數(shù)據(jù)庫管理系統(tǒng)(database management system,簡(jiǎn)稱DBMS):是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。數(shù)據(jù)庫在建立、運(yùn)用和維護(hù)時(shí)由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理、統(tǒng)一控制。數(shù)據(jù)庫管理系統(tǒng)使用戶能方便地定義數(shù)據(jù)和操縱數(shù)據(jù),并能夠保證數(shù)據(jù)的安全性、完整性、多用戶對(duì)數(shù)據(jù)的并發(fā)使用及發(fā)生故障后的系統(tǒng)恢復(fù)。4、數(shù)據(jù)庫系統(tǒng)(database system,簡(jiǎn)稱DBS):指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成,一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構(gòu)成。5、數(shù)據(jù)庫管理員(database administrator,簡(jiǎn)稱DBA):完成數(shù)據(jù)庫的建立、使用和維護(hù)等工作的專業(yè)人員。6、數(shù)據(jù)管理:指如何對(duì)數(shù)據(jù)進(jìn)行分類、組織、編碼、存儲(chǔ)、檢索和維護(hù),它是數(shù)據(jù)處理的中心問題。隨著計(jì)算機(jī)硬件和軟件的發(fā)展,數(shù)據(jù)管理經(jīng)歷了人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)三個(gè)發(fā)展階段。7、人工管理數(shù)據(jù)的特點(diǎn):(1)數(shù)據(jù)不保存。(2)數(shù)據(jù)需要由應(yīng)用程序自己管理,沒有相應(yīng)的軟件系統(tǒng)負(fù)責(zé)數(shù)據(jù)的管理工作。(3)數(shù)據(jù)不共享。(4)數(shù)據(jù)不具有獨(dú)立性,數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)發(fā)生變化后,必須對(duì)應(yīng)用程序做相應(yīng)的修改。8、文件系統(tǒng)管理數(shù)據(jù)的特點(diǎn):(1)數(shù)據(jù)可以長(zhǎng)期保存。(2)由專門的軟件即文件系統(tǒng)進(jìn)行數(shù)據(jù)管理,程序和數(shù)據(jù)之間由軟件提供的存取方法進(jìn)行轉(zhuǎn)換,應(yīng)用程序與數(shù)據(jù)之間有了一定的獨(dú)立性。(3)數(shù)據(jù)共享性差。(4)數(shù)據(jù)獨(dú)立性低。不具有彈性的無結(jié)構(gòu)的數(shù)據(jù)集。文件記錄之間沒有聯(lián)系。9、數(shù)據(jù)庫系統(tǒng)管理數(shù)據(jù)的特點(diǎn):(1)數(shù)據(jù)結(jié)構(gòu)化。(2)數(shù)據(jù)的共享性好,冗余度低。(3)數(shù)據(jù)獨(dú)立性高。(4)數(shù)據(jù)由DBMS統(tǒng)一管理和控制。10、數(shù)據(jù)的不一致性:指同一數(shù)據(jù)不同拷貝的值不一樣。11、數(shù)據(jù)的邏輯獨(dú)立性:數(shù)據(jù)庫系統(tǒng)的一個(gè)映像功能是數(shù)據(jù)的總體邏輯結(jié)構(gòu)與某類應(yīng)用所涉及的局部邏輯結(jié)構(gòu)之間的映像功能。這一映像功能保證了當(dāng)數(shù)據(jù)的總體邏輯結(jié)構(gòu)改變時(shí),通過對(duì)映像的相應(yīng)改變可以保持?jǐn)?shù)據(jù)的局部邏輯結(jié)構(gòu)不變,由于應(yīng)用程序是依賴數(shù)據(jù)的局部邏輯結(jié)構(gòu)編寫的,所以應(yīng)用程序不必修改。12、數(shù)據(jù)的物理獨(dú)立性:數(shù)據(jù)庫系統(tǒng)的另一個(gè)映像功能是數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與邏輯結(jié)構(gòu)之間的映像或轉(zhuǎn)換功能。這一映像功能保證了當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),通過對(duì)映像的相應(yīng)改變可以保持?jǐn)?shù)據(jù)的邏輯結(jié)構(gòu)不變,從而應(yīng)用程序也不必改變。13、除了管理功能外,DBMS還提供以下功能:(1)數(shù)據(jù)的安全性。(2)數(shù)據(jù)的完整性。(3)并發(fā)控制。(4)數(shù)據(jù)庫恢復(fù)。14、數(shù)據(jù)庫技術(shù)的研究領(lǐng)域:(1)數(shù)據(jù)庫管理系統(tǒng)軟件的研制。(2)數(shù)據(jù)庫設(shè)計(jì)。(3)數(shù)據(jù)庫理論。1.2、數(shù)據(jù)模型1、數(shù)據(jù)模型:是嚴(yán)格定義的概念的集合。這些概念必須能夠精確地描述系統(tǒng)的靜態(tài)特性、動(dòng)態(tài)特性和完整性約束條件。通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三個(gè)要素組成。2、數(shù)據(jù)結(jié)構(gòu):所研究的對(duì)象類型的集合。這些對(duì)象是數(shù)據(jù)庫的組成成分,包括與數(shù)據(jù)類型、內(nèi)容、性質(zhì)有關(guān)的對(duì)象和與數(shù)據(jù)之間聯(lián)系有關(guān)的對(duì)象。3、數(shù)據(jù)操作:指對(duì)數(shù)據(jù)庫中各種對(duì)象的實(shí)例允許執(zhí)行的操作的集合,包括操作及有關(guān)的操作規(guī)則。4、數(shù)據(jù)的約束條件:是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保障數(shù)據(jù)的正確、有效和相容。5、信息世界涉及的概念:實(shí)體、屬性、碼、域、實(shí)體型、實(shí)體集、聯(lián)系。6、兩個(gè)實(shí)體型之間的聯(lián)系分為:1:1聯(lián)系、1:n聯(lián)系、m:n聯(lián)系。7、ER圖:提供了表示實(shí)體型、屬性和聯(lián)系的方法。8、常用數(shù)據(jù)模型:層次模型、網(wǎng)狀模型、關(guān)系模型。層次模型和網(wǎng)狀模型統(tǒng)稱為非關(guān)系模型。9、基本層次聯(lián)系:指兩個(gè)記錄以及它們之間的一對(duì)多(包括一對(duì)一)的聯(lián)系。10、層次模型:用樹形結(jié)構(gòu)表示各類實(shí)體以及實(shí)體間的聯(lián)系。優(yōu)點(diǎn):模型簡(jiǎn)單、實(shí)體間聯(lián)系固定、提供良好的完整性支持。缺點(diǎn):表示多對(duì)多聯(lián)系時(shí)很笨拙、對(duì)插入刪除操作限制較多、查詢子節(jié)點(diǎn)必須通過父節(jié)點(diǎn)、層次命令趨于程序化。11、鄰接法:按照層次樹前序遍歷的順序把所有記錄值依次鄰接存放,即通過物理空間的位置相鄰來實(shí)現(xiàn)層次順序。12、鏈接法:用指引元反映數(shù)據(jù)之間的層次聯(lián)系,每個(gè)記錄設(shè)兩類指引元,分別指向最左邊的子節(jié)點(diǎn)和最近的兄弟節(jié)點(diǎn),這種鏈接方法稱為子女兄弟鏈接法;按樹的前序穿越順序鏈接各記錄值,這種鏈接方法稱為層次序列鏈接法。13、網(wǎng)狀數(shù)據(jù)模型:是一種比層次模型更具普遍性的結(jié)構(gòu),去掉了層次模型的兩個(gè)限制,允許多個(gè)結(jié)點(diǎn)沒有雙親結(jié)點(diǎn),允許結(jié)點(diǎn)有多個(gè)雙親結(jié)點(diǎn),允許兩個(gè)結(jié)點(diǎn)之間有多種關(guān)系,允許插入雙親不明確的子女結(jié)點(diǎn),允許只刪除雙親結(jié)點(diǎn)值,更新只需更新指定記錄。優(yōu)點(diǎn):能更為直接的描述現(xiàn)實(shí)世界、具有良好的性能和存取效率。缺點(diǎn):其DDL語言極其復(fù)雜、數(shù)據(jù)獨(dú)立性較差。14、一個(gè)關(guān)系模型涉及以下概念:關(guān)系、元組、屬性、主碼、域、分量、關(guān)系模式、關(guān)系名。15、關(guān)系數(shù)據(jù)模型:實(shí)體及實(shí)體間的聯(lián)系都用關(guān)系表示,它的操縱主要包括查詢、插入、刪除和更新數(shù)據(jù)。關(guān)系的完整性約束條件包括:實(shí)體完整性、參照完整性和用戶定義完整性。關(guān)系模型優(yōu)點(diǎn):建立在嚴(yán)格的數(shù)學(xué)基礎(chǔ)上、概念單一、存取路徑對(duì)用戶透明,具有較好的數(shù)據(jù)獨(dú)立性,安全保密性。缺點(diǎn):由于存取路徑對(duì)用戶透明,查詢效率往往不如非關(guān)系數(shù)據(jù)模型。16、網(wǎng)狀數(shù)據(jù)模型的典型代表是DBTG系統(tǒng)。1.3、數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)1、模式:也稱邏輯模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。它是數(shù)據(jù)庫系統(tǒng)模式結(jié)構(gòu)的中間層,是數(shù)據(jù)庫數(shù)據(jù)在邏輯級(jí)上的視圖。一個(gè)數(shù)據(jù)庫只有一個(gè)模式。2、外模式:也稱子模式或用戶模式,它是數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式通常是模式的子集。一個(gè)數(shù)據(jù)庫可以有多個(gè)外模式。一個(gè)應(yīng)用程序只能使用一個(gè)外模式。同一外模式可以被多個(gè)應(yīng)用系統(tǒng)使用。3、內(nèi)模式:也稱存儲(chǔ)模式,它是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式。一個(gè)數(shù)據(jù)庫只有內(nèi)模式。4、數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu):是指數(shù)據(jù)庫系統(tǒng)是由外模式、模式和內(nèi)模式三級(jí)構(gòu)成。5、二級(jí)映像功能:外模式/模式映像和模式/內(nèi)模式映像。正是這兩層映像保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。6、三級(jí)模式和兩級(jí)映像的作用:(1)對(duì)于每個(gè)外模式,數(shù)據(jù)庫系統(tǒng)都有一個(gè)外模式/模式映像,它定義了該外模式和模式之間的對(duì)應(yīng)關(guān)系。當(dāng)模式改變時(shí),只需對(duì)各個(gè)外模式/模式的映像作出相應(yīng)的改變,可以保持外模式不變,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)的邏輯獨(dú)立性。(2)數(shù)據(jù)庫中只有一個(gè)模式和內(nèi)模式,所以模式/內(nèi)模式映像是唯一的,它定義了數(shù)據(jù)全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系。當(dāng)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)改變了,只需對(duì)模式/內(nèi)模式映像作出相應(yīng)的改變,可以使模式保持不變,從而保證了數(shù)據(jù)的物理獨(dú)立性。7、數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)包括:(1)單用戶數(shù)據(jù)庫系統(tǒng):是一種早期的最簡(jiǎn)單的數(shù)據(jù)庫系統(tǒng)。在單用戶系統(tǒng)中,整個(gè)數(shù)據(jù)庫系統(tǒng),包括應(yīng)用程序、DBMS、數(shù)據(jù),都裝在一臺(tái)計(jì)算機(jī)上,由一個(gè)用戶獨(dú)占,不同機(jī)器之間不能共享數(shù)據(jù)。(2)主從式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng):是指一個(gè)主機(jī)帶多個(gè)終端的多用戶結(jié)構(gòu)。在這種結(jié)構(gòu)中,數(shù)據(jù)庫系統(tǒng),包括應(yīng)用程序、DBMS、數(shù)據(jù),都集中存放在主機(jī)上,所有處理任務(wù)都由主機(jī)來完成,各個(gè)用戶通過主機(jī)的終端并發(fā)地存取數(shù)據(jù)庫,共享數(shù)據(jù)資源。(3)分布式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng):指數(shù)據(jù)庫中的數(shù)據(jù)在邏輯上是一個(gè)整體,但物理地分布在計(jì)算機(jī)網(wǎng)絡(luò)的不同結(jié)點(diǎn)上。數(shù)據(jù)存放、管理、維護(hù)困難。(4)客戶/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng):將DBMS和應(yīng)用功能分開,網(wǎng)絡(luò)中某些結(jié)點(diǎn)上的計(jì)算機(jī)專門用于執(zhí)行DBMS功能,稱為數(shù)據(jù)庫服務(wù)器,其他結(jié)點(diǎn)上的計(jì)算機(jī)安裝DBMS的外圍應(yīng)用開發(fā)工具,支持用戶的應(yīng)用,稱為客戶機(jī)。分為集中和分布兩種。1.4、數(shù)據(jù)庫管理系統(tǒng)1、DBMS的功能主要包括:(1)數(shù)據(jù)定義,數(shù)據(jù)定義包括定義各種模式、映射、約束條件。(2)數(shù)據(jù)操縱,數(shù)據(jù)操縱包括對(duì)數(shù)據(jù)庫數(shù)據(jù)的檢索、插入、修改和刪除等基本操作。(3)數(shù)據(jù)庫運(yùn)行管理,包括對(duì)數(shù)據(jù)庫進(jìn)行并發(fā)控制、安全性檢查、完整性約束條件檢查、數(shù)據(jù)庫內(nèi)部維護(hù)等等。(4)數(shù)據(jù)組織、存儲(chǔ)和管理,DBMS負(fù)責(zé)分門別類地組織、存儲(chǔ)和管理各種數(shù)據(jù),確定文件結(jié)構(gòu)。(5)數(shù)據(jù)庫的建立和維護(hù),建立數(shù)據(jù)庫包括數(shù)據(jù)庫初始數(shù)據(jù)的輸入和數(shù)據(jù)轉(zhuǎn)換等,數(shù)據(jù)庫維護(hù)包括數(shù)據(jù)庫的轉(zhuǎn)儲(chǔ)、恢復(fù)、重構(gòu)、監(jiān)視等。(6)數(shù)據(jù)通信接口,DBMS提供與其他軟件系統(tǒng)進(jìn)行通信的功能。2、DBMS通常由4部分組成:(1)數(shù)據(jù)定義語言及其翻譯處理程序,DDL供用戶定義數(shù)據(jù)庫的模式、存儲(chǔ)模式、外模式、各級(jí)模式之間的映射、有關(guān)的約束條件等。(2)數(shù)據(jù)操縱語言及其編譯程序,DML實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的檢索、插入、修改、刪除等基本操作。(3)數(shù)據(jù)庫運(yùn)行控制程序,DBMS提供一些系統(tǒng)運(yùn)行控制程序負(fù)責(zé)數(shù)據(jù)庫運(yùn)行過程中的控制與管理。(4)實(shí)用程序,DBMS提供一些實(shí)用程序,包括數(shù)據(jù)初始裝入程序、數(shù)據(jù)轉(zhuǎn)儲(chǔ)程序等。3、實(shí)現(xiàn)DBMS的方法:(1)N方案:DBMS模塊被用戶進(jìn)程按子程序調(diào)用,DBMS與應(yīng)用程序融合在一起,N個(gè)用戶的系統(tǒng)中只有N個(gè)進(jìn)程。(2)2N方案:每個(gè)用戶進(jìn)程均有一個(gè)影子進(jìn)程為之服務(wù),系統(tǒng)中還有若干后臺(tái)進(jìn)程。由于系統(tǒng)中進(jìn)程總數(shù)接近于用戶數(shù)的2倍,所以稱為2N方案。(3)M+N方案:是2N方案的一種改進(jìn),在N個(gè)用戶進(jìn)程的系統(tǒng)中,有M個(gè)DBMS進(jìn)程為之服務(wù)(My,其中x是碼的真子集,y是非主屬性。2NF存在的問題包括:插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜。3、3NF:如果關(guān)系模式R中不存在候選碼X、屬性組Y以及非主屬性Z使得X決定Y,Y決定Z和Y不決定X成立,則R滿足3NF。3NF存在的問題包括:插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜。4、BCNF:在關(guān)系模式R中,如果每一個(gè)決定屬性集都包含候選碼,則R為BCNF。BCNF是修正的3NF。BCNF關(guān)系模式具有如下性質(zhì):(1)所有非主屬性都完全函數(shù)依賴于每個(gè)候選碼。(2)所有主屬性都完全函數(shù)依賴于每個(gè)不包含它的候選碼。(3)沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性。5、多值依賴:設(shè)R(U)是一個(gè)屬性集U上的關(guān)系模式,X,Y和Z是U的子集,并且Z=U-X-Y,多值依賴X-Y成立當(dāng)且僅當(dāng)對(duì)R的任一關(guān)系r,r在(X,Z)上的每個(gè)值對(duì)應(yīng)一組Y的值,這組值僅僅決定于X值而與Z無關(guān)。多值依賴具有下列性質(zhì):對(duì)稱性、傳遞性、函數(shù)依賴是多值依賴的特殊情況、多值依賴的有效性與屬性集的范圍有關(guān)等等。6、4NF:關(guān)系模式R滿足1NF,如果對(duì)于R的每個(gè)非平凡多值依賴X-Y,X都含有候選碼,則R滿足4NF。4NF就是限制關(guān)系模式的屬性之間不允許有非平凡函數(shù)依賴的多值依賴。4.3、關(guān)系模式的規(guī)范化1、關(guān)系模式的規(guī)范化:一個(gè)低一級(jí)范式的關(guān)系模式,通過模式分解可以轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式集合,這種過程就叫關(guān)系模式的規(guī)范化。2、關(guān)系模式規(guī)范化的步驟:(1)對(duì)1NF關(guān)系進(jìn)行投影,消除原關(guān)系中非主屬性對(duì)碼的部分函數(shù)依賴,得到一組2NF關(guān)系。(2)對(duì)2NF關(guān)系進(jìn)行投影,消除原關(guān)系中非主屬性對(duì)碼的傳遞函數(shù)依賴,得到一組3NF關(guān)系。(3)對(duì)3NF關(guān)系進(jìn)行投影,消除原關(guān)系中主屬性對(duì)碼的部分函數(shù)依賴和傳遞函數(shù)依賴,得到一組BCNF關(guān)系。(4)對(duì)BCNF關(guān)系進(jìn)行投影,消除原關(guān)系中非平凡且非函數(shù)依賴的多值依賴,得到一組4NF關(guān)系。(5)對(duì)4NF關(guān)系進(jìn)行投影,消除原關(guān)系中不是由候選碼所蘊(yùn)含的連接依賴,得到一組5NF關(guān)系。3、無損連接性:關(guān)系模式R被分解為若干個(gè)關(guān)系模式R1、R2、R3等等,若由分解所得的關(guān)系模式自然連接的結(jié)果與R相等,則稱關(guān)系模式R的這個(gè)分解是具有無損連接性的。只有具有無損連接性的分解才能夠保證不丟失信息。4、保持函數(shù)依賴:對(duì)R,若F所邏輯蘊(yùn)含的函數(shù)依賴一定也由分解得到的某個(gè)關(guān)系模式中的函數(shù)依賴F1所邏輯蘊(yùn)涵,則稱關(guān)系模式R的這個(gè)分解是保持函數(shù)依賴的。第5章 數(shù)據(jù)庫保護(hù)5.1、安全性1、數(shù)據(jù)庫的安全性:指保護(hù)數(shù)據(jù)庫,防止因用戶非法使用數(shù)據(jù)庫造成數(shù)據(jù)泄露、更改或破壞。數(shù)據(jù)庫安全性控制的一般方法:(1)用戶標(biāo)識(shí)和鑒定,由系統(tǒng)提供一定的方式讓用戶標(biāo)識(shí)自己的名字或身份。系統(tǒng)內(nèi)部記錄所有合法用戶的標(biāo)識(shí),每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)將用戶提供的身份標(biāo)識(shí)與系統(tǒng)內(nèi)部記錄的合法用戶標(biāo)識(shí)進(jìn)行核對(duì),通過鑒定后提供機(jī)器使用權(quán)。(2)存取控制,為了保證用戶只能訪問他有權(quán)存取的數(shù)據(jù),必須預(yù)先對(duì)每個(gè)用戶定義存取權(quán)限。對(duì)于通過鑒定獲得上機(jī)權(quán)的用戶,系統(tǒng)根據(jù)他的存取權(quán)限定義他的各種操作請(qǐng)求進(jìn)行控制,確保他只執(zhí)行合法操作。(3)定義視圖,在關(guān)系系統(tǒng)中,為不同的用戶定義不同的視圖,通過視圖機(jī)制把要保密的數(shù)據(jù)對(duì)無權(quán)存取這些數(shù)據(jù)的用戶隱藏起來,從而自動(dòng)地對(duì)數(shù)據(jù)提供一定程度的安全保護(hù)。(4)審計(jì),使用一個(gè)專用文件或數(shù)據(jù)庫,系統(tǒng)自動(dòng)將用戶對(duì)數(shù)據(jù)庫的所有操作記錄在上面,利用審計(jì)追蹤的信息,就能重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,以找出非法存取數(shù)據(jù)的人。(5)數(shù)據(jù)加密,對(duì)于高度敏感的數(shù)據(jù),可以利用數(shù)據(jù)加密技術(shù),以密碼形式存儲(chǔ)和傳輸數(shù)據(jù)。5.2、完整性1、完整性:指數(shù)據(jù)的正確性和相容性。完整性是防止合法用戶使用數(shù)據(jù)庫時(shí)向數(shù)據(jù)庫中加入不合語義的數(shù)據(jù)。2、完整性約束條件:完整性約束條件是完整性控制機(jī)制的核心。完整性約束條件作用的對(duì)象可以有列級(jí)、元組級(jí)和關(guān)系級(jí)三種粒度。完整性約束條件涉及的這三類對(duì)象,其狀態(tài)可以是靜態(tài)的,也可以是動(dòng)態(tài)的。完整性約束條件可以分為六類:(1)靜態(tài)列級(jí)約束,就是對(duì)一個(gè)列的取值域的說明。(2)靜態(tài)元組約束,就是規(guī)定組成一個(gè)元組的各個(gè)列之間的約束關(guān)系。(3)靜態(tài)關(guān)系約束,常見靜態(tài)關(guān)系約束有實(shí)體完整性、參照完整性、用戶定義完整性、統(tǒng)計(jì)約束。(4)動(dòng)態(tài)列級(jí)約束,是修改列定義或列值時(shí)應(yīng)滿足的約束條件。(5)動(dòng)態(tài)元組約束,是指修改某個(gè)元組的值時(shí)需要參照其舊值,并且新舊值之間需要滿足某種約束條件。(6)動(dòng)態(tài)關(guān)系約束,就是加在關(guān)系變化前后狀態(tài)上的限制條件。3、DBMS的完整性控制機(jī)制的三個(gè)方面的功能:(1)定義功能,即提供定義完整性約束條件的機(jī)制。(2)檢查功能,即檢查用戶發(fā)出的操作請(qǐng)求是否違背了完整性約束條件。(3)如果發(fā)現(xiàn)用戶的操作請(qǐng)求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動(dòng)作來保證數(shù)據(jù)的完整性。檢查是否違背完整性約束的時(shí)機(jī)通常是一條語句執(zhí)行完后立即檢查,這類約束為立即執(zhí)行的約束。在某些情況下,完整性檢查需要延遲到整個(gè)事務(wù)執(zhí)行結(jié)束后再進(jìn)行,這類約束稱為延遲執(zhí)行的約束。4、實(shí)現(xiàn)DBMS參照完整性時(shí)需要考慮:(1)外碼是否可以接受空值,外碼是否能夠取空值是依賴于應(yīng)用環(huán)境的語義的。(2)刪除被參照關(guān)系的元組時(shí)的考慮,有時(shí)需要?jiǎng)h除被參照關(guān)系的某個(gè)元組,而參照關(guān)系又有若干元組的外碼值與被刪除的被參照關(guān)系的主碼值相對(duì)應(yīng)。這時(shí)可能采取的操作包括級(jí)聯(lián)刪除、受限刪除、置空值刪除。(3)修改被參照關(guān)系中主碼的考慮,有時(shí)要修改被參照關(guān)系中某些元組的主碼值,而參照關(guān)系中有些元組的外碼值正好等于被參照關(guān)系要修改的主碼值。這時(shí)可能采取的操作包括:級(jí)聯(lián)修改、受限修改、置空值修改。5、觸發(fā)器:一類靠事件驅(qū)動(dòng)的特殊過程,一旦由某個(gè)用戶定義,任何用戶對(duì)該數(shù)據(jù)庫的增刪改操作均由服務(wù)器自動(dòng)激活相應(yīng)的觸發(fā)子,在核心層進(jìn)行集中的完整性控制。定義數(shù)據(jù)庫觸發(fā)器的語句是CREATE TRIGGER。5.3、并發(fā)控制1、回滾:即在事務(wù)運(yùn)行的過程中發(fā)生了某種故障,事務(wù)不能繼續(xù)執(zhí)行,系統(tǒng)將事務(wù)中對(duì)數(shù)據(jù)庫的所有已完成的更新操作全部撤銷,回滾到事務(wù)開始時(shí)的狀態(tài)。2、事務(wù):是數(shù)據(jù)庫的邏輯工作單位,它是用戶定義的一組操作序列。事務(wù)具有4個(gè)屬性:原子性、一致性、隔離性和持續(xù)性。原子性是指一個(gè)事務(wù)是一個(gè)不可分割的工作單位,事務(wù)中的操作要么都做要么都不做。一致性是指事務(wù)必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。隔離性是指一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。持續(xù)性是指一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。2、并發(fā)操作帶來的數(shù)據(jù)不一致性:并發(fā)操作帶來的數(shù)據(jù)不一致性包括三類:丟失修改、不可重復(fù)讀、讀臟數(shù)據(jù)。(1)丟失修改,指事務(wù)1與事務(wù)2從數(shù)據(jù)庫中讀入同一數(shù)據(jù)并修改,事務(wù)2的提交結(jié)果破壞了事務(wù)1提交的結(jié)果,導(dǎo)致事務(wù)1的修改被丟失。(2)不可重復(fù)讀,指事務(wù)1讀取數(shù)據(jù)后,事務(wù)2執(zhí)行更新(修改、刪除、插入)操作,使事務(wù)1無法再現(xiàn)前一次讀取結(jié)果,分別導(dǎo)致事務(wù)1發(fā)現(xiàn)數(shù)據(jù)(改變、消失、新增)。(3)讀“臟”數(shù)據(jù),是指事務(wù)1修改某一數(shù)據(jù),并將其寫回磁盤,事務(wù)2讀取同一數(shù)據(jù)后,事務(wù)1由于某種原因被撤銷,這時(shí)事務(wù)1已修改過的數(shù)據(jù)恢復(fù)原值,事務(wù)2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的不一致,不是正確的數(shù)據(jù),又稱為臟數(shù)據(jù)。產(chǎn)生上述三類數(shù)據(jù)不一致性的主要原因是并發(fā)操作破壞了事務(wù)的隔離性。3、可串行化:幾個(gè)事務(wù)的并行執(zhí)行是正確的,當(dāng)且僅當(dāng)其結(jié)果與按某一次序串行地執(zhí)行它們時(shí)的結(jié)果相同,我們稱這種并行調(diào)度策略為可串行化的調(diào)度。可串行是并行事務(wù)正確性的唯一準(zhǔn)則。4、封鎖:事務(wù)T在對(duì)某個(gè)數(shù)據(jù)對(duì)象操作之前,先向系統(tǒng)發(fā)出請(qǐng)求,對(duì)其加鎖。加鎖后事務(wù)T就對(duì)該數(shù)據(jù)對(duì)象有了一定的控制,在事務(wù)T釋放它的鎖之前,其他的事務(wù)不能更新此數(shù)據(jù)對(duì)象?;镜姆怄i類型有排它鎖(X鎖)和共享鎖(S鎖)。排它鎖又稱為寫鎖。若事務(wù)T對(duì)數(shù)據(jù)對(duì)象加上X鎖,則只允許T讀取和修改A,其他任何事務(wù)都不能再對(duì)A加任何類型的鎖,直到T釋放A上的鎖。共享鎖又稱為讀鎖。若事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加上S鎖,則其他事務(wù)只能再對(duì)A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。5、封鎖的粒度:封鎖對(duì)象的大小。封鎖粒度與系統(tǒng)的并發(fā)度和并發(fā)控制的開銷密切相關(guān)。封鎖的粒度越大,系統(tǒng)中能夠被封鎖的對(duì)象就越少,并發(fā)度也就越小,但同時(shí)系統(tǒng)開銷也越?。幌喾?,封鎖的粒度越小,并發(fā)度越高,但系統(tǒng)開銷也就越大。6、封鎖協(xié)議:在運(yùn)用X鎖和S鎖這兩種基本封鎖,對(duì)一定粒度的數(shù)據(jù)對(duì)象加鎖時(shí),還需要約定一些規(guī)則,例如何時(shí)申請(qǐng)X鎖或S鎖、持鎖時(shí)間、何時(shí)釋放等,我們稱這些規(guī)則為封鎖協(xié)議。7、三級(jí)封鎖協(xié)議:(1)一級(jí)封鎖協(xié)議,事務(wù)T在修改數(shù)據(jù)R之前必須先對(duì)其加X鎖,直到事務(wù)結(jié)束才釋放。事務(wù)結(jié)束包括正常結(jié)束和非正常結(jié)束。一級(jí)封鎖協(xié)議可以防止丟失修改,并保證事務(wù)T是可恢復(fù)的。(2)二級(jí)封鎖協(xié)議,在一級(jí)封鎖協(xié)議的基礎(chǔ)上,事務(wù)T在讀取數(shù)據(jù)R之前必須先對(duì)其加S鎖,讀完后即可釋放S鎖。二級(jí)封鎖協(xié)議除了防止修改丟失,還可以進(jìn)一步防止讀“臟”數(shù)據(jù)。(3)三級(jí)封鎖協(xié)議,在一級(jí)封鎖協(xié)議的基礎(chǔ)上,加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對(duì)其加S鎖,直到事務(wù)結(jié)束才釋放。三級(jí)封鎖協(xié)議防止丟失修改、讀“臟”數(shù)據(jù)、不可重復(fù)讀。8、兩段鎖協(xié)議:它是為了保證并行調(diào)度可串行性而提供的封鎖協(xié)議。兩段鎖協(xié)議規(guī)定,在對(duì)任何數(shù)據(jù)進(jìn)行讀、寫操作之前,事務(wù)首先要獲得對(duì)該數(shù)據(jù)的封鎖,而且在釋放一個(gè)封鎖之后,事務(wù)不再獲得任何其他封鎖。所謂“兩段”鎖的含義是,事務(wù)分為兩個(gè)階段,第一階段是獲得封鎖,也稱為擴(kuò)展階段,第二階段是釋放封鎖,也稱為收縮階段。9、死鎖的預(yù)防:防止死鎖的發(fā)生,其實(shí)就是要破壞死鎖產(chǎn)生的條件,預(yù)防死鎖通常有兩種辦法。(1)一次封鎖法一次封鎖法要求每個(gè)事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行。一次封鎖發(fā)雖然能有效地防止死鎖的發(fā)生,但也存在問題。第一,一次就將以后要用到的全部數(shù)據(jù)加鎖,勢(shì)必?cái)U(kuò)大了封鎖的范圍,從而降低了系統(tǒng)的并發(fā)度。第二,數(shù)據(jù)庫中數(shù)據(jù)是不斷變化的,原來不要求封鎖的數(shù)據(jù),在執(zhí)行過程中可能會(huì)變成封鎖對(duì)象,所以很難事先確定每個(gè)事務(wù)所要封鎖的數(shù)據(jù)對(duì)象,只能采取擴(kuò)大封鎖范圍,將事務(wù)在執(zhí)行過程中可能要封鎖的數(shù)據(jù)對(duì)象全部加鎖,這就進(jìn)一步降低了并發(fā)度。(2)順序封鎖法順序封鎖法是預(yù)先對(duì)數(shù)據(jù)對(duì)象規(guī)定一個(gè)封鎖順序,所有事務(wù)都按這個(gè)順序?qū)嵭蟹怄i。順序封鎖法同樣可以有效地防止死鎖,但也同樣存在問題。第一,數(shù)據(jù)庫系統(tǒng)中可封鎖的數(shù)據(jù)對(duì)象及其眾多,并且隨數(shù)據(jù)庫的插入、刪除等操作而不斷變化,要維護(hù)這樣極多而且變化的資源的封鎖順序非常困難,成本很高。第二,事務(wù)的封鎖請(qǐng)求可以隨著事務(wù)的執(zhí)行而動(dòng)態(tài)地決定,很難事先確定每一個(gè)事務(wù)要封鎖的對(duì)象,因此也就很難按規(guī)定的順序去施加封鎖??梢?,在操作系統(tǒng)中廣為采用的預(yù)防死鎖的策略并不很適合數(shù)據(jù)庫的特點(diǎn)。5.4、恢復(fù)1、數(shù)據(jù)庫故障:數(shù)據(jù)庫運(yùn)行過程中可能發(fā)生的故障主要有三類:事務(wù)故障、系統(tǒng)故障和介質(zhì)故障。不同的故障其恢復(fù)方法也不一樣。事務(wù)故障,指事務(wù)在運(yùn)行過程中由于輸入數(shù)據(jù)的錯(cuò)誤、運(yùn)算溢出、違反了某些完整性限制、某些應(yīng)用程序的錯(cuò)誤以及并行事務(wù)發(fā)生死鎖等原因,使得事務(wù)未運(yùn)行至正常終點(diǎn)就夭折了。事務(wù)故障的恢復(fù)需要強(qiáng)行回滾該事務(wù),清除該事務(wù)對(duì)數(shù)據(jù)庫的所有修改,使得這個(gè)事務(wù)像根本沒有啟動(dòng)過一樣,即事務(wù)撤銷(UNDO)。系統(tǒng)故障,是指系統(tǒng)在運(yùn)行過程中,由于某種原因,如操作系統(tǒng)或DBMS代碼錯(cuò)誤、操作員操作失誤、特定類型的硬件錯(cuò)誤、停電等造成系統(tǒng)停止運(yùn)行,致使所有正在運(yùn)行的事務(wù)都以非正常方式終止。內(nèi)存中數(shù)據(jù)庫緩沖區(qū)的信息全部丟失,但外存數(shù)據(jù)不受影響。由于無法確定哪些事務(wù)已經(jīng)更新過數(shù)據(jù)庫,所以在系統(tǒng)重啟后,恢復(fù)程序要強(qiáng)行撤銷所有未完成的事務(wù)。另外,有些已完成的事務(wù)可能沒有寫回到磁盤的物理數(shù)據(jù)庫中,因此要重做所有已經(jīng)提交的事務(wù),將數(shù)據(jù)庫恢復(fù)到一致狀態(tài)。介質(zhì)故障,指在系統(tǒng)運(yùn)行過程中,由于某種硬件故障,如磁盤損壞、磁頭碰撞,或操作系統(tǒng)的某種潛在錯(cuò)誤,瞬時(shí)強(qiáng)磁場(chǎng)干擾等,使存儲(chǔ)在外存中的數(shù)據(jù)丟失。這種故障可能性小,但破壞性大。故障發(fā)生后,需要裝入數(shù)據(jù)庫發(fā)生介質(zhì)故障前的某個(gè)時(shí)刻的數(shù)據(jù)副本,并重做自此時(shí)始的所有成功事務(wù),將這些事務(wù)已提交的結(jié)果重新記入數(shù)據(jù)庫。5、恢復(fù):利用存儲(chǔ)在系統(tǒng)其他地方的冗余數(shù)據(jù)來修復(fù)數(shù)據(jù)庫中被破壞的或不正確的數(shù)據(jù)。建立冗余數(shù)據(jù)的常用技術(shù)是數(shù)據(jù)轉(zhuǎn)儲(chǔ)和登錄日志文件。6、轉(zhuǎn)儲(chǔ):指DBA將整個(gè)數(shù)據(jù)庫復(fù)制到磁帶或另一個(gè)磁盤上保存起來的過程。數(shù)據(jù)轉(zhuǎn)儲(chǔ)操作可以動(dòng)態(tài)進(jìn)行,也可以靜態(tài)進(jìn)行。靜態(tài)轉(zhuǎn)儲(chǔ)是在系統(tǒng)中無運(yùn)行事務(wù)時(shí)進(jìn)行的轉(zhuǎn)儲(chǔ)操作。動(dòng)態(tài)轉(zhuǎn)儲(chǔ)是指轉(zhuǎn)儲(chǔ)操作與用戶事務(wù)并發(fā)進(jìn)行,轉(zhuǎn)儲(chǔ)期間允許對(duì)數(shù)據(jù)庫進(jìn)行存取或修改。數(shù)據(jù)轉(zhuǎn)儲(chǔ)分為兩種方式,海量轉(zhuǎn)儲(chǔ)和增量轉(zhuǎn)儲(chǔ)。海量轉(zhuǎn)儲(chǔ)是指每次轉(zhuǎn)儲(chǔ)全部數(shù)據(jù)庫。增量轉(zhuǎn)儲(chǔ)是指只轉(zhuǎn)儲(chǔ)上次轉(zhuǎn)儲(chǔ)后更新過的數(shù)據(jù)。7、日志文件:是用來記錄事務(wù)對(duì)數(shù)據(jù)庫的更新操作的文件。日志文件主要有兩種,以記錄為單位的日志文件和以數(shù)據(jù)塊為單位的日志文件。日志文件在數(shù)據(jù)庫恢復(fù)中起著非常重要的作用。可以用來進(jìn)行事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù),并協(xié)助后備副本進(jìn)行介質(zhì)故障恢復(fù)。登記日志文件必須遵循(1)登記的次序嚴(yán)格按并行事務(wù)執(zhí)行的時(shí)間次序。(2)必須先寫日志文件,后寫數(shù)據(jù)庫。5.5、數(shù)據(jù)庫復(fù)制與數(shù)據(jù)庫鏡像1、數(shù)據(jù)庫復(fù)制:復(fù)制是使數(shù)據(jù)庫更具容錯(cuò)性的方法,主要用于分布式結(jié)構(gòu)的數(shù)據(jù)庫中。它在多個(gè)場(chǎng)地保留多個(gè)數(shù)據(jù)庫備份,這些備份可以是整個(gè)數(shù)據(jù)庫的副本,也可以是部分?jǐn)?shù)據(jù)庫的副本。各個(gè)場(chǎng)地的用戶可以并發(fā)地存取不同的數(shù)據(jù)庫副本。通常有三種方式:對(duì)等復(fù)制、主/從復(fù)制和級(jí)聯(lián)復(fù)制。對(duì)等復(fù)制,各個(gè)場(chǎng)地的數(shù)據(jù)庫地位平等,可以相互復(fù)制數(shù)據(jù)。用戶可以在任何場(chǎng)地讀取和更新公共數(shù)據(jù)集,在某一場(chǎng)地更新公共數(shù)據(jù)集時(shí),DBMS會(huì)立即將數(shù)據(jù)傳送到所有其他副本。主/從復(fù)制,數(shù)據(jù)庫只能從主數(shù)據(jù)庫中復(fù)制到從數(shù)據(jù)庫中。更新數(shù)據(jù)只能在主場(chǎng)地上進(jìn)行,從場(chǎng)地供用戶讀取數(shù)據(jù)。級(jí)聯(lián)復(fù)制,指從主場(chǎng)地復(fù)制過來的數(shù)據(jù)又從該場(chǎng)地再次復(fù)制到其他場(chǎng)地。級(jí)聯(lián)復(fù)制平衡了當(dāng)前各種數(shù)據(jù)需求對(duì)網(wǎng)絡(luò)交通的壓力。2、DBMS在使用復(fù)制技術(shù)時(shí)必須做到以下幾點(diǎn):(1)數(shù)據(jù)庫復(fù)制必須對(duì)用戶透明。(2)主數(shù)據(jù)庫和各個(gè)復(fù)制數(shù)據(jù)庫在任何時(shí)候都必須保持事務(wù)的完整性。(3)對(duì)于對(duì)異步的可在任何地方更新的復(fù)制方式,當(dāng)兩個(gè)應(yīng)用在兩個(gè)場(chǎng)地同時(shí)更新同一記錄,一個(gè)場(chǎng)地的更新事務(wù)尚未復(fù)制到另一個(gè)場(chǎng)地時(shí),第二個(gè)場(chǎng)地已開始更新,這時(shí)就可能引起沖突。DBMS必須提供控制沖突的方法,包括各種形式的自動(dòng)解決方法及人工干預(yù)方法。3、鏡像:即根據(jù)DBA的要求,自動(dòng)把整個(gè)數(shù)據(jù)庫或其中的關(guān)鍵數(shù)據(jù)復(fù)制到另一個(gè)磁盤上,每當(dāng)主數(shù)據(jù)庫更新時(shí),DBMS會(huì)自動(dòng)把更新后的數(shù)據(jù)復(fù)制過去,即DBMS自動(dòng)保證鏡像數(shù)據(jù)與主數(shù)據(jù)的一致性。一旦介質(zhì)出現(xiàn)故障,可由鏡像磁盤繼續(xù)提供數(shù)據(jù)庫的可用性,同時(shí)DBMS自動(dòng)利用鏡像磁盤進(jìn)行數(shù)據(jù)庫的恢復(fù),不需要關(guān)閉系統(tǒng)和重裝數(shù)據(jù)庫副本。在沒有故障時(shí),數(shù)據(jù)庫鏡像還可以用于并發(fā)操作。第6章 數(shù)據(jù)庫設(shè)計(jì)6.1、數(shù)據(jù)庫設(shè)計(jì)的步驟1、邏輯數(shù)據(jù)庫設(shè)計(jì):是根據(jù)用戶要求和特定數(shù)據(jù)庫管理系統(tǒng)的具體特點(diǎn),以數(shù)據(jù)庫設(shè)計(jì)理論為依據(jù),設(shè)計(jì)數(shù)據(jù)庫的全局邏輯結(jié)構(gòu)和每個(gè)用戶的局部邏輯結(jié)構(gòu)。2、物理數(shù)據(jù)庫設(shè)計(jì):是在邏輯結(jié)構(gòu)確定之后,設(shè)計(jì)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)及其他實(shí)現(xiàn)細(xì)節(jié)。3、數(shù)據(jù)庫設(shè)計(jì)步驟:(1)需求分析階段,進(jìn)行數(shù)據(jù)庫設(shè)計(jì)首先必須準(zhǔn)確了解與分析用戶需求,包括數(shù)據(jù)與處理。(2)概念結(jié)構(gòu)設(shè)計(jì)階段,通過對(duì)用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型。(3)邏輯結(jié)構(gòu)設(shè)計(jì)階段,將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)DBMS所支持的數(shù)據(jù)模型,并對(duì)其進(jìn)行優(yōu)化。(4)數(shù)據(jù)庫物理設(shè)計(jì)階段,為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)。(5)數(shù)據(jù)庫實(shí)施階段,建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進(jìn)行試運(yùn)行。(6)數(shù)據(jù)庫運(yùn)行和維護(hù)階段,不斷地對(duì)數(shù)據(jù)庫進(jìn)行評(píng)價(jià)、調(diào)整和修改。4、需求分析:分析用戶的需求與要求。需求分析是數(shù)據(jù)庫設(shè)計(jì)的起點(diǎn),需求分析的結(jié)果是否準(zhǔn)確地反映了用戶的實(shí)際要求,將直接影響到后面各個(gè)階段的設(shè)計(jì),并影響到設(shè)計(jì)結(jié)果是否合理和實(shí)用。需求分析的重點(diǎn)是調(diào)查、收集與分析用戶在數(shù)據(jù)管理中的信息要求、處理要求、安全性與完整性要求。信息要求是指用戶需要從數(shù)據(jù)庫中獲得信息的內(nèi)容與性質(zhì)。處理要求是指用戶要求完成什么處理功能,對(duì)處理的響應(yīng)時(shí)間有什么要求,處理方式是批處理還是聯(lián)機(jī)處理。5、調(diào)查與初步分析用戶需求通常需要四步:調(diào)查與初步分析用戶需求通常需要四步:(1)首先調(diào)查組織機(jī)構(gòu)情況。包括了解該組織的部門組成情況,各部門的職責(zé)等等。(2)調(diào)查各部門的業(yè)務(wù)活動(dòng)情況。包括了解各部門輸入和使用什么數(shù)據(jù),輸出什么信息,輸出到什么部門等等。(3)協(xié)助用戶明確對(duì)新系統(tǒng)的各種要求,包括信息要求、處理要求、安全性與完整性要求等等。(4)對(duì)前面的調(diào)查結(jié)果進(jìn)行初步分析,確定新系統(tǒng)的邊界,確定哪些功能由計(jì)算機(jī)完成,哪些活動(dòng)由人工完成等等。在調(diào)查過程中,可以根據(jù)不同的問題和條件,使用不同的調(diào)查方法。常用的調(diào)查方法有以下幾種:跟班作業(yè)、開調(diào)查會(huì)、請(qǐng)專人介紹、詢問、設(shè)計(jì)調(diào)查表請(qǐng)用戶填寫、查閱記錄。需求調(diào)查時(shí),往往需要同時(shí)采用上述多種方法。6.2、需求分析1、數(shù)據(jù)字典:是各類數(shù)據(jù)描述的集合。對(duì)數(shù)據(jù)庫設(shè)計(jì)來講,數(shù)據(jù)字典是進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果。數(shù)據(jù)字典通常包括數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、處理過程5個(gè)部分。數(shù)據(jù)項(xiàng)是不可再分的數(shù)據(jù)單位。數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)之間的組合關(guān)系。數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)穆窂?。?shù)據(jù)存儲(chǔ)是數(shù)據(jù)結(jié)構(gòu)停留或保存的地方,也是數(shù)據(jù)流的來源和去向之一。處理過程的具體處理邏輯一般用判定表或判定樹來描述。6.3、概念結(jié)構(gòu)設(shè)計(jì)1、概念結(jié)構(gòu)設(shè)計(jì):將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)即概念模型的過程就是概念結(jié)構(gòu)設(shè)計(jì)。設(shè)計(jì)概念結(jié)構(gòu)通常有四類方法:(1)自頂向下,首先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化。(2)自底向上,首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu)。(3)逐步擴(kuò)張,首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu)。(4)混合策略,將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計(jì)一個(gè)全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計(jì)的各局部概念結(jié)構(gòu)。2、ER圖之間的沖突:屬性沖突、命名沖突、結(jié)構(gòu)沖突。屬性沖突:屬性域沖突,即屬性值的類型、取值范圍或取值集合不同;屬性取值單位沖突。命名沖突:同名異義、異名同義。結(jié)構(gòu)沖突,同一對(duì)象在不同應(yīng)用中具有不同的抽象;同一實(shí)體在不同局部視圖中所包含的屬性不完全相同;實(shí)體之間的聯(lián)系在不同局部視圖中呈現(xiàn)不同的類型。3、概念結(jié)構(gòu):是對(duì)現(xiàn)實(shí)世界的一種抽象,即對(duì)實(shí)際的人、物、事和概念進(jìn)行人為處理,抽取人們關(guān)心的共同特性,忽略非本質(zhì)的細(xì)節(jié),并把這些特性用各種概念精確地加以描述。4、ER圖的設(shè)計(jì)步驟:(1)選擇局部應(yīng)用。根據(jù)系統(tǒng)的具體情況,在多層的數(shù)據(jù)流圖中選擇一個(gè)適當(dāng)層次的數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論