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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論