




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、word 第一章1.四大根本概念: 數(shù)據(jù):數(shù)據(jù)庫中存儲的根本對象,它是描述事物的符號記錄。種類有:文字、圖形、圖象、聲音等。特點是:數(shù)據(jù)與其語義是不可分的。數(shù)據(jù)庫:(Database,簡稱DB)是長期儲存在計算機內、有組織的、可共享的大量數(shù)據(jù)集合。其特點是:數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存;可為各種用戶共享;冗余度較小;數(shù)據(jù)獨立性較高;易擴展。特點:永久存儲、有組織、可共享數(shù)據(jù)庫管理系統(tǒng):是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。數(shù)據(jù)庫管理系統(tǒng)的主要功能:數(shù)據(jù)定義功能; 數(shù)據(jù)組織、存儲和管理; 數(shù)據(jù)操縱功能;數(shù)據(jù)庫的事物管理和運行管理; 數(shù)據(jù)庫的建立和維護功能; 其他功能。數(shù)據(jù)庫系統(tǒng):是
2、指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)。一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)及其開發(fā)工具、應用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構成。在不引起混淆的情況下常常把數(shù)據(jù)庫系統(tǒng)簡稱為數(shù)據(jù)庫。2. 數(shù)據(jù)管理技術的三個階段及其特點人工管理階段: 特點:1、數(shù)據(jù)不保存。 2、沒有軟件系統(tǒng)對數(shù)據(jù)進行管理。 3、這一時期沒有文件的概念,數(shù)據(jù)的組織方式必須由程序員自行設計。 4、一組數(shù)據(jù)對應一組程序,數(shù)據(jù)是不共享的。 5、數(shù)據(jù)不具有獨立性,當數(shù)據(jù)結構發(fā)生變化時,應用程序要變化。文件系統(tǒng)階段: 特點:1、數(shù)據(jù)可以長期保存。 2、由文件系統(tǒng)管理數(shù)據(jù)。 3、數(shù)據(jù)共享性差, 冗余度大文件是面向應用的。 4、數(shù)據(jù)獨立性差是不具有彈性的無結構的
3、數(shù)據(jù)集合,文件之間是孤立的,不能反映事物間聯(lián)系。數(shù)據(jù)庫系統(tǒng)階段: 特點:數(shù)據(jù)的管理者:DBMS 數(shù)據(jù)面向的對象:現(xiàn)實世界 數(shù)據(jù)的共享程度:共享性高 數(shù)據(jù)的獨立性:高度的物理獨立性和一定的邏輯獨立性 數(shù)據(jù)的結構化:整體結構化 數(shù)據(jù)控制能力:由DBMS統(tǒng)一管理和控制3、 數(shù)據(jù)庫系統(tǒng)的特點:數(shù)據(jù)結構化;數(shù)據(jù)的共享性高,冗余度低,易擴充;數(shù)據(jù)獨立性高;數(shù)據(jù)有DBMS統(tǒng)一管理和控制。4、 數(shù)據(jù)模型的組成要素:數(shù)據(jù)結構、數(shù)據(jù)操作和完整性約束。 數(shù)據(jù)結構是對系統(tǒng)靜態(tài)特性的描述。 數(shù)據(jù)操作是對系統(tǒng)動態(tài)特性的描述。5、 概念模型: 根本概念:實體:客觀存在并可相互區(qū)別的事物稱為實體。 屬性:實體所具有的某一特性
4、稱為屬性。 碼:唯一標識實體的屬性集稱為碼。 域:屬性的取值范圍稱為該屬性的域。 實體型:具有相同屬性的實體具有的共同的特征和性質,即: 用實體名及其屬性名集合來抽象和刻畫同類實體 。 實體集:同型實體的集合稱為實體集。 聯(lián)系:現(xiàn)實世界中事物內部以及事物之間的聯(lián)系在信息世界中反映為實體型內部的聯(lián)系 和實體型之間的聯(lián)系。 概念模型的表示方法:實體聯(lián)系方法,用E-R圖來描述。 E-R圖: 實體型:矩形表示,矩形框內寫明實體名。 屬性:橢圓表示,用無向邊將其與相應實體連接起來。 聯(lián)系:菱形表示,菱形框內寫明聯(lián)系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯(lián)系的類型1:1、1:n或m:n。
5、聯(lián)系可以有屬性。6、關系模型:在用戶觀點下,關系模型中數(shù)據(jù)的邏輯結構是一張二維表,它由行和列組成。關系模型中的根本概念:關系Relation:一個關系通常對應一張表; 元組Tuple:表中的一行即為一個元組; 屬性Attribute:表中的一列即為一個屬性,給每一個屬性起一個名稱即屬性名; 主碼Key:表中的某個屬性組,它可以唯一確定一個元組; 域Domain:屬性的取值范圍; 分量:元組中的一個屬性值; 關系模式:對關系的描述,一般表示為: 關系名屬性1,屬性2,屬性n關系模型中,實體及實體間的聯(lián)系都是用關系來表示。例學生、課程、學生與課程之間的
6、多對多聯(lián)系:學生學號,姓名,年齡,性別,系號,年級課程課程號,課程名,學分選修學號,課程號,成績關系必須是標準化的,滿足一定的標準條件。最根本的標準條件:關系的每一個分量必須是一個不可分的數(shù)據(jù)項。關系模型的優(yōu)缺點:優(yōu)點:建立在嚴格的數(shù)學概念的根底上。概念單一。數(shù)據(jù)結構簡單、清晰,用戶易懂易用關系模型的存取路徑對用戶透明。缺點存取路徑對用戶透明導致查詢效率往往不如非關系數(shù)據(jù)模型7、 數(shù)據(jù)庫系統(tǒng)的三級模式 數(shù)據(jù)庫系統(tǒng)的三級模式結構是指數(shù)據(jù)庫系統(tǒng)是由外模式、模式和內模式三級構成。 模式邏輯模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結構和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。 一個數(shù)據(jù)庫只有一個模式。 定義模式時
7、不僅要定義數(shù)據(jù)的邏輯結構,而且要定義數(shù)據(jù)之間的聯(lián)系,定義與數(shù)據(jù)有關的平安性、完整性要求 外模式子模式 Subschema或用戶模式,是數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結構和特征的表述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應用有關的數(shù)據(jù)的邏輯表示。 外模式通常是模式的子集,一個數(shù)據(jù)庫可以有多個外模式。 外模式是保證數(shù)據(jù)庫平安性的一個有力措施。每個用戶只能看見和訪問所對應的外模式中的數(shù)據(jù),數(shù)據(jù)庫中的其余數(shù)據(jù)是不可見的。 內模式存儲模式Storage Schema,是數(shù)據(jù)物理結構和存儲方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內部的表示方式。 一個數(shù)據(jù)庫只有一個內模式。8、 數(shù)據(jù)庫的二級映像功能:數(shù)據(jù)庫管理系統(tǒng)
8、在三級模式之間提供了兩層映象:外模式/模式映象、模式/內模式映象。 外模式/模式映象 定義外模式與模式之間的對應關系 每一個外模式都對應一個外模式模式映象 映象定義通常包含在各自外模式的描述中 外模式/模式映象如何保證數(shù)據(jù)的邏輯獨立性? 當模式改變時,數(shù)據(jù)庫管理員修改有關的外模式模式映象,使外模式保持不變。應用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨立性,簡稱數(shù)據(jù)的邏輯獨立性。 模式/內模式映象 模式內模式映象定義了數(shù)據(jù)全局邏輯結構與存儲結構之間的對應關系。 數(shù)據(jù)庫中模式內模式映象是唯一的 該映象定義通常包含在模式描述中 模式/內模式映象如何保保證數(shù)據(jù)的物理
9、獨立性?當數(shù)據(jù)庫的存儲結構改變了例如選用了另一種存儲結構,數(shù)據(jù)庫管理員修改模式內模式映象,使模式保持不變。應用程序不受影響。保證了數(shù)據(jù)與程序的物理獨立性,簡稱數(shù)據(jù)的物理獨立性。9、數(shù)據(jù)庫系統(tǒng)一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)及其開發(fā)工具、應用系統(tǒng)和數(shù)據(jù)庫管理員構成。第四章1、 平安性級別 TCSEC將系統(tǒng)劃分為四組ABCD七個等級,依次是D、C1、C2、B1、B2、B3、A1。 D級:是最低級別。將一切不符合更高標準的系統(tǒng)均歸于D組。如DOS實操作系統(tǒng)中平安標準為D級的典型例子。 C1級:非常初級的自主平安保護。能夠實現(xiàn)對用戶和數(shù)據(jù)的別離,進行自主存取控制DAC,保護或限制用戶權限的傳播。 C2級:
10、平安產(chǎn)品的最低檔次。提供受控的存取保護,將C1級的DAC進一步細化,以個人身份注冊負責,并實施審計和資源隔離。到達C2級的產(chǎn)品在其名稱中往往不突出“平安(Security)這一特色。 B1級:標記平安保護?!捌桨?Security)或“可信的(Trusted)產(chǎn)品。對系統(tǒng)的數(shù)據(jù)加以標記,對標記的主體和客體實施強制存取控制MAC、審計等平安機制。 B2級:結構化保護。建立形式化的平安策略模型并對系統(tǒng)內的所有主體和客體實施DAC和MAC。經(jīng)過認證的B2級以上的平安系統(tǒng)非常稀少。 B3級:平安域。 A1級:驗證設計,即提供B3級保護的同時給出系統(tǒng)的形式化設計說明和驗證以確信各平安保護真正實現(xiàn)。2、
11、數(shù)據(jù)庫平安性控制方法:3、用戶標識與鑒別 是系統(tǒng)提供的最外層平安保護措施。 用戶標識:用一個用戶名或用戶標識號來標明用戶身份。 口令:系統(tǒng)核對口令以鑒別用戶身份。 根本方法 系統(tǒng)提供一定的方式讓用戶標識自己的名字或身份; 系統(tǒng)內部記錄著所有合法用戶的標識; 每次用戶要求進入系統(tǒng)時,由系統(tǒng)核對用戶提供的身份標識; 通過鑒定后才提供機器使用權。 用戶標識和鑒定可以重復屢次 該方法簡單易行,但用戶名和口令容易被人竊取。4、 存取控制 存取控制機制的組成: 定義存取用戶權限 檢查存取權限 定義存取權限:指定哪些用戶可以對數(shù)據(jù)對象進行哪些操作。 檢查存取權限:檢查操作請求是否超出了定義的權限。 常用存取
12、控制: 自主存取控制DAC:C2級,非常靈活。 同一用戶對于不同的數(shù)據(jù)對象有不同的存取權限 不同的用戶對同一對象也有不同的權限 用戶還可將其擁有的存取權限轉授給其他用戶 強制存取控制(MAC): B1級,比擬嚴格。 每一個數(shù)據(jù)對象被標以一定的密級 每一個用戶也被授予某一個級別的許可證 對于任意一個對象,只有具有合法許可證的用戶才可以存取5、 用戶權限有數(shù)據(jù)庫對象和操作類型兩個要素組成。6、 自主存取控制DAC方法 主要通過SQL提供的grant語句和revoke語句來實現(xiàn)。 授權:定義存取權限成為授權。 GRANT語句的一般格式: GRANT <權限>,<權限>. ON
13、 <對象類型> <對象名> TO <用戶>,<用戶>. WITH GRANT OPTION;GRANT功能作用:將對指定操作對象的指定操作權限授予指定的用戶。發(fā)出GRANT語句的對象:DBA數(shù)據(jù)庫管理員,數(shù)據(jù)庫對象創(chuàng)立者,已經(jīng)擁有該權限的用戶。DBA擁有對數(shù)據(jù)庫所有對象的所有權限, 用戶對自己建立的根本表和視圖擁有全部的操作權限。接受權限的用戶:一個或多個具體用戶,或PUBLIC,即全體用戶。WITH GRANT OPTION:獲得某種權限的用戶還可以把這種權限再授予別的用戶。假設沒有指定該語句,那么用戶只能使用該權限,不能傳播該權限。 例1 把
14、查詢Student表權限授給用戶U1 GRANT SELECTINSERT/UPDATE(Sno) 或者為 ALL PRIVILEGES(全部操作權限) ON TABLE Student TO U1;或者 TO U1,U2,U3;或者 TO PUBLIC; 例2 把對表SC的insert權限授予U5,并允許將此權限在授予其他用戶。 GRANT INSERT ON SC TO U5 WITH GRANT OPTION;執(zhí)行例2后,U5不僅擁有了對表SC的INSERT權限,還可以傳播此權限:U5 可以將此權限授予U6即有U5發(fā)出以下語句 GRANT INSERT ON SC TO U6 WITH
15、GRANT OPTION; REVOKE(回收) REVOKE語句的一般格式為: REVOKE <權限>,<權限>. ON <對象類型> <對象名> FROM <用戶>,<用戶>.CASCADE|RESTRICT; REVOKE語句功能:從指定用戶那里收回對指定對象的指定權限 CASCADE:聯(lián)級回收 例 把用戶U4修改學生學號的權限收回REVOKE UPDATE(Sno)ON TABLE Student FROM U4;或者為 PUBLIC 例 把用戶U5對SC表的INSERT權限收回REVOKE INSERT ON T
16、ABLE SC FROM U5 CASCADE;/直接或間接從U5得到的insert權限也將被回收 注:系統(tǒng)不同,缺省回收不同,有的是缺省為CASCADE,有的為RESTRICT7、 強制存取控制MAC方法 在MAC中,DBMS所管理的全部實體被分為主體和客體兩大類。 主體是系統(tǒng)中的活動實體,既包括DBMS所管理的實際用戶,也包括代表用戶的各進程。 客體是系統(tǒng)中的被動實體,是受主體操縱的,包括文件、基表、索引、視圖等等。 對于主體和客體,DBMS為它們每個實例值指派一個敏感度標記Label。 敏感度標記被分成假設干級別,通常為:絕密(Top Secret)、機密(Secret)、可信(Conf
17、idential)、公開(Public)等。 主體的敏感度標記被稱為許可證級別,客體的敏感度標記稱為密級。 當某一用戶或一主體以標記label注冊入系統(tǒng)時,系統(tǒng)要求他對任何客體的存取必須遵循如下規(guī)那么: (1)僅當主體的許可證級別大于或等于客體的密級時,該主體才能讀取相應的客體; (2)僅當主體的許可證級別等于客體的密級時,該主體才能寫相應的客體。 第五章1、 數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。2、 完整性控制機制:1提供定義完整性月數(shù)條件的機制 2提供完整性檢查的方法 3違約處理3、 實體完整性定義:PRIMARY KEY定義,表級完整性約束或列級完整性約束。 實體完整性:主屬性不能為
18、空。 例:CREATE TABLE Student (Sno CHAR(5) PRIMARY KEY, /*在列級定義主碼*/ Sname CHAR(20) NOT NULL, Ssex CHAR(1) , Sage INT, Sdept CHAR(15); CREATE TABLE Student (Sno CHAR(5) , Sname CHAR(20) NOT NULL, Ssex CHAR(1) , Sage INT, Sdept CHAR(15), PRIMARY KEY Sno /*在表級定義主碼*/ ); CREATE TABLE SC (Sno CHAR(9) NOT NULL
19、, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY Sno,Cno /*一組屬性為主碼,只能在表級定義主碼*/ ;4、實體完整性檢查和違約處理 按照實體完整性規(guī)那么,系統(tǒng)自動檢查:1主碼值是否唯一。2主碼各屬性是否為空。5、 參照完整性定義:創(chuàng)立表時,FOREIGN KEY定義。 參照完整性:外碼取值為空或者等于相對應的主碼的某個元祖的值。 例: CREATE TABLE SC( Sno CHAR(5) , Cno CHAR(3) , Grade int, Primary key (Sno, Cno) foreign key (Sno) re
20、ferences Student(Sno), foreign key (Cno) references Course(Cno) );6、實現(xiàn)參照完整性要考慮的幾個問題: 1外碼能否接受空值問題2 在被參照關系中刪除元組的問題3在參照關系中插入元組時的問題4修改關系中主碼的問題 1 外碼能否接受空值問題 在實現(xiàn)參照完整性時,系統(tǒng)除了應該提供定義外碼的機制,還應提供定義外碼列是否允許空值的機制。 例1:學生學號,姓名,性別,專業(yè)號,年齡專業(yè)專業(yè)號,專業(yè)名在學生關系中的專業(yè)號列可以取空值。 例2:學生學號,姓名,性別,專業(yè)號,年齡課程課程號,課程名,學分選修學號 ,課程號,成績選修關系中的學號列不能
21、取空值。 2在被參照關系中刪除元組的問題 一般地,當刪除被參照關系的某個元組,而參照關系存在假設干元組,其外碼值與被參照關系刪除元組的主碼值相同,這時可有三種不同的策略: (1) 級聯(lián)刪除CASCADES (2) 受限刪除RESTRICTED 僅當參照關系中沒有任何元組的外碼值與被參照關系中要刪除元組的主碼值相同時,系統(tǒng)才執(zhí)行刪除操作,否那么拒絕此刪除操作。 (3) 置空值刪除NULLIFIES 刪除被參照關系的元組,并將參照關系中相應元組的外碼值置空值。 這三種處理方法,哪一種是正確的,要依應用環(huán)境的語義來定 3在參照關系中插入元組時的問題 一般地,當參照關系插入某個元組,而被參照關系不存在
22、相應的元組,其主碼值與參照關系插入元組的外碼值相同,這時可有以下策略: 1受限插入 僅當被參照關系中存在相應的元組,其主碼值與參照關系插入元組的外碼值相同時,系統(tǒng)才執(zhí)行插入操作,否那么拒絕此操作。 2遞歸插入 首先向被參照關系中插入相應的元組,其主碼值等于參照關系插入元組的外碼值,然后向參照關系插入元組。 4 修改關系中主碼的問題(1) 不允許修改主碼 在有些RDBMS中,修改關系主碼的操作是不允許的。 (2) 允許修改主碼 在有些RDBMS中,允許修改關系主碼,但必須保證主碼的唯一性和非空,否那么拒絕修改。 假設修改的是被參照關系,那么與刪除類似,有三種策略: 級聯(lián)修改:修改被參照關系主碼值
23、的同時,修改參照關系中相應的外碼值。 受限修改:拒絕此修改操作。只當參照關系中沒有任何元組的外碼值等于被參照關系中某個元組的主碼值時,才能被修改。 置空值修改:修改被參照關系主碼值的同時,將參照關系中相應的外碼值置為空值。例: CREATE TABLE SC( Sno CHAR(5) NOT NULL, Cno CHAR(3) NOT NULL, Grade SMALLINT, Primary key (Sno, Cno) foreign key (Sno) references Student(Sno), ON DELETE CASCADE 級連刪除 ON UPDATE CASCADE, 級
24、連更新 foreign key (Cno) references Course(Cno) ON DELETE CASCADE ON UPDATE CASCADE);7、用戶定義的完整性:元組上的約束條件的定義。列值非空NOT NULL 列值唯一(UNIQUE) CHECK短語 例: CREATE TABLE Student (Sno CHAR(5) , Sname CHAR(20) NOT NULL, Ssex CHAR(1) , Sage INT, Sdept CHAR(15), PRIMARY KEY Sno CHECK Ssex=女 OR Sname NOT LIKE Ms.% );8、
25、完整性約束命名子句CREATE TABLE Student (Sno NUMERIC6 CONSTRAINT C1 CHECKSno BETWEEN 90000 AND 99999, Sname CHAR(20) CONSTRAINT C2 NOT NULL, Ssex CHAR(2) CONSTRAINT C3 CHECKSsex IN 男,女, CONSTRAINT C4 PRIMARY KEY Sno ); 注:C1、C2、C3、C4為約束名 constraint為定義約束名的關鍵字 修改表中的完整性限制 ALTER TABLE Student DROP CONSTRAINT C4; A
26、LTER TABLE Student ADD CONSTRAINT C1 CHECKSno BETWEEN 900000 AND 999999;第九章1、 RDBMS查詢處理的4個階段:查詢分析,查詢檢查,查詢優(yōu)化和查詢執(zhí)行。2、 集中式數(shù)據(jù)庫中 查詢總代價=磁盤存取塊數(shù)I/O代價+處理機時間CPU代價+內存代價 在集中式數(shù)據(jù)庫中I/O代價是最主要的。 分布式數(shù)據(jù)庫中 查詢總代價=I/O代價+CPU代價+內存代價+通信代價3、 查詢優(yōu)化的總目標:1選擇有效的策略2求得給定關系表達式的值3使得查詢 代價最小(實際上是較小) 4、 代數(shù)優(yōu)化 常用的等價變換規(guī)那么: 1 連接、笛卡爾積交換律 設E1
27、和E2是關系代數(shù)表達式,F(xiàn)是連接運算的條件,那么有 2連接、笛卡爾積的結合律 設E1,E2,E3是關系代數(shù)表達式,F(xiàn)1和F2是連接運算的條件,那么有 3 投影的串接定律 這里,E是關系代數(shù)表達式,Ai(i=1,2,n),Bj(j=1,2,m)是屬性名且A1,A2,An構成B1,B2,Bm的子集。4) 選擇的串接定律 這里,E是關系代數(shù)表達式,F(xiàn)1、F2是選擇條件。選擇的串接律說明選擇條件可以合并。這樣一次就可檢查全部條件。(5) 選擇與投影操作的交換律 選擇條件F只涉及屬性A1,An。假設F中有不屬于A1,An的屬性B1,Bm那么有更一般的規(guī)那么: (6) 選擇與笛卡爾積的交換律如果F中涉及的
28、屬性都是E1中的屬性,那么 如果F=F1F2,并且F1只涉及E1中的屬性,F(xiàn)2只涉及E2中的屬性,那么由上面的等價變換規(guī)那么1,4,6可推出: 假設F1只涉及E1中的屬性,F(xiàn)2涉及E1和E2兩者的屬性,那么仍有 它使局部選擇在笛卡爾積前先做。 (7) 選擇與并的分配律設E=E1E2,E1,E2有相同的屬性名,那么 F(E1E2)F(E1)F(E2)(8) 選擇與差運算的分配律假設E1與E2有相同的屬性名,那么 F(E1-E2)F(E1)-F(E2)(9) 選擇對自然連接的分配律 F(E1 E2)F(E1) F(E2) F只涉及E1與E2的公共屬性 (10) 投影與笛卡爾積的分配律設E1和E2是
29、兩個關系表達式,A1,An是E1的屬性,B1,Bm是E2的屬性,那么 (11) 投影與并的分配律設E1和E2有相同的屬性名,那么 5、 查詢樹的啟發(fā)式優(yōu)化 1. 選擇運算應盡可能先做。在優(yōu)化策略中這是最重要、最根本的一條 2. 把投影運算和選擇運算同時進行 3. 把投影同其前或其后的雙目運算結合起來 4. 把某些選擇同在它前面要執(zhí)行的笛卡爾積結合起來成為一個連接運算 5. 找出公共子表達式6、 查詢優(yōu)化樹的例如 例3 求選修了2號課程的學生姓名。用SQL表達: SELECT Student.Sname FROM Student,SC WHERE Student.Sno=SC.Sno AND S
30、C.Cno=2; 把SQL語句轉換成查詢樹,如以下圖所示 為了使用關系代數(shù)表達式的優(yōu)化法,假設內部表示是關系代數(shù)語法樹,那么上面的查詢樹如以下圖所示。 對查詢樹進行優(yōu)化如以下圖第十章1、 事務:是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位。2、 事務的四大特點:原子性Atomicity一致性Consistency隔離性Isolation持續(xù)性Durability 。3、 事務是恢復和并發(fā)控制的根本單位。4、 四大類故障:事務內部的故障、系統(tǒng)故障、介質故障、計算機病毒5、 恢復機制涉及的兩個關鍵問題:第一,如何建立冗余數(shù)據(jù);第二,如何利用這些冗余數(shù)據(jù)實施
31、數(shù)據(jù)庫恢復。6、 建立冗余數(shù)據(jù)值常用的技術是:數(shù)據(jù)轉儲和登錄日志文件。7、 數(shù)據(jù)轉儲分類 靜態(tài)轉儲:在系統(tǒng)中無運行事務是進行的轉儲操作。簡單,但會降低數(shù)據(jù)庫的可用性。 動態(tài)轉儲:轉儲期間允許對數(shù)據(jù)庫進行存取或修改。即轉儲和用戶事務可以并發(fā)執(zhí)行。 優(yōu)點:不用等待正在運行的用戶事務結束,不會影響新事務的運行。 缺點:不能保證副本中的數(shù)據(jù)正確有效。 海量轉儲:每次轉儲全部數(shù)據(jù)庫。 增量轉儲:每次只轉儲上一次轉儲后更新過的數(shù)據(jù)。8、 日志文件:用來記錄事務對數(shù)據(jù)庫的更新操作的文件。 登記日志文件時必須遵循的兩條原那么:1登記的次序嚴格按并發(fā)事務執(zhí)行的時間次序。2必須先寫日志文件,在寫數(shù)據(jù)庫。9、 事務
32、故障的回復由系統(tǒng)自動完成 步驟:1反向掃描文件日志即從最后向前掃描日志文件,查找該事務的更新操作。 2對該事務的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值Befor Image, BI寫入數(shù)據(jù)庫。 插入操作, “更新前的值為空,那么相當于做刪除操作 刪除操作,“更新后的值為空,那么相當于做插入操作 假設是修改操作,那么用BIBefore Image 代替 AIAfter Image 3 繼續(xù)反向掃描日志文件,查找該事務的其他更新操作,并做同樣處理。 4如此處理下去,直至讀到此事務的開始標記,事務故障恢復就完成了。10、 系統(tǒng)故障的回復由系統(tǒng)在重新啟動時自動完成 步驟:1正向掃描日志文件即從
33、頭掃描日志文件 Redo隊列: 在故障發(fā)生前已經(jīng)提交的事務 T1, T3, T8. Undo隊列:故障發(fā)生時尚未完成的事務 T2, T4, T5, T6, T7, T9 . 2對Undo隊列事務進行UNDO處理。反向掃描日志文件,對每個UNDO事務的更新操作執(zhí)行逆操作。 T2, T4, T5, T6, T7, T9 3對Redo隊列事務進行REDO處理。正向掃描日志文件,對每個REDO事務重新執(zhí)行登記的操作。 T1, T3, T8.11、 介質故障的回復 步驟:1裝入最新的后備數(shù)據(jù)庫副本,使數(shù)據(jù)庫恢復到最近一次轉儲時的一致性狀態(tài)。對于靜態(tài)轉儲的數(shù)據(jù)庫副本,裝入后數(shù)據(jù)庫即處于一致性狀態(tài)。對于動態(tài)
34、轉儲的數(shù)據(jù)庫副本,還須同時裝入轉儲時刻的日志文件副本,利用與恢復系統(tǒng)故障相同的方法即REDO+UNDO,才能將數(shù)據(jù)庫恢復到一致性狀態(tài)。 2裝入有關的日志文件副本,重做已完成的事務。首先掃描日志文件,找出故障發(fā)生時已提交的事務的標識,將其記入重做隊列。然后正向掃描日志文件,對重做隊列中的所有事務進行重做處理。即將日志記錄中“更新后的值寫入數(shù)據(jù)庫。第十一章1、 多事務執(zhí)行方式 串行執(zhí)行、交叉并發(fā)方式、同時并發(fā)方式2、為什么要進行并發(fā)控制?當多個用戶并發(fā)地存取數(shù)據(jù)庫時就會產(chǎn)生多個事務同時存取同一數(shù)據(jù)的情況。假設對并發(fā)操作不加控制就可能會存取和存儲不正確的數(shù)據(jù),破壞是事務的一致性和數(shù)據(jù)庫的一致性。所以
35、數(shù)據(jù)庫管理系統(tǒng)必須提供并發(fā)控制機制。3、 數(shù)據(jù)庫管理系統(tǒng)中并發(fā)控制機制的責任:保證事務的隔離性和一致性,DBMS需要對并發(fā)操作進行正確調度。4、 并發(fā)操作帶來的數(shù)據(jù)不一致性主要有:喪失修改、不可重復讀、讀“臟數(shù)據(jù)。5、 并發(fā)控制技術:封鎖。 6、 根本的封鎖類型有兩種:排它鎖寫鎖、X鎖,共享鎖讀鎖、S鎖。7、 封鎖類型的相容矩陣:Y=Yes,相容的請求N=No,不相容的請求 T1 T2XS-XNNYSNYY-YYY 8、 三級封鎖協(xié)議: 1級封鎖協(xié)議:事務T在修改數(shù)據(jù)R之前必須先對其加X鎖,直到事務結束才釋放。 正常結束COMMIT 非正常結束ROLLBACK 1級封鎖協(xié)議可防止喪失修改 在1
36、級封鎖協(xié)議中,如果是讀數(shù)據(jù),不需要加鎖的,所以它不能保證可重 復讀和不讀“臟數(shù)據(jù)。 2級封鎖協(xié)議:1級封鎖協(xié)議+事務T在讀取數(shù)據(jù)R前必須先加S鎖,讀完后即可釋放S 鎖。 2級封鎖協(xié)議可以防止喪失修改和讀“臟數(shù)據(jù)。 在2級封鎖協(xié)議中,由于讀完數(shù)據(jù)后即可釋放S鎖,所以它不能保證可重復讀。 3級封鎖協(xié)議:1級封鎖協(xié)議 + 事務T在讀取數(shù)據(jù)R之前必須先對其加S鎖,直到事務 結束才釋放。 3級封鎖協(xié)議可防止喪失修改、讀臟數(shù)據(jù)和不可重復讀。 三級封鎖協(xié)議總結: 9、活鎖:某個事務永遠處于等待狀態(tài)。 防止活鎖的簡單方法是采用先來先效勞的策略。10、死鎖:多個事務同時處于等待狀態(tài)。每個事務都在等待其它事務釋放
37、鎖使其能夠繼續(xù)執(zhí)行,從而出現(xiàn)多個事務互相等待的僵局,每個事務永遠不能結束。11、死鎖的預防:不易實現(xiàn),故DBMS在解決死鎖問題上普遍采用診斷并解除死鎖的方法1一次封鎖法:要求每個事務必須一次將所有要使用的數(shù)據(jù)全部加鎖,否那么就不能繼續(xù)執(zhí)行。一次封鎖法存在的問題:降低并發(fā)度、擴大封鎖范圍。將以后要用到的全部數(shù)據(jù)加鎖,勢必擴大了封鎖的范圍,從而降低了系統(tǒng)的并發(fā)度。2順序封鎖法:順序封鎖法是預先對數(shù)據(jù)對象規(guī)定一個封鎖順序,所有事務都按這個順序實行封鎖。順序封鎖法存在的問題:維護本錢高。數(shù)據(jù)庫系統(tǒng)中可封鎖的數(shù)據(jù)對象極其眾多,并且隨數(shù)據(jù)的插入、刪除等操作而不斷地變化,要維護這樣極多而且變化的資源的封鎖順序非常困難,本錢很高。12、 死鎖診斷與解除 死鎖診斷方法: 1超時法:如果一個事務的等待時間超過了規(guī)定的時限,就認為發(fā)生了死鎖。 優(yōu)點:實現(xiàn)簡單 缺點:有可能誤判死鎖。時限假設設置得太長,死鎖發(fā)生后不能及時發(fā)現(xiàn)。 2等待圖法:用事務等待圖動態(tài)反映所有事務的等待情況。 事務等待圖是一個有向圖G=(T,U) T為結點的集合,每個結點表示正運行的事務 U為邊的集合,每條邊表示事務等待的情況 假設T1等待T2,那么T1,T2之間劃一條有向邊,從T1指向T2 并發(fā)控制子系統(tǒng)周期性地比方每隔1 min檢測事務等待圖,如果發(fā)現(xiàn)圖中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 民事裝修合同糾紛(3篇)
- 生態(tài)文明建設的實施方案(3篇)
- 新電力專業(yè)技術年度總結
- 食品加工廠建筑施工合同
- 2024年公司網(wǎng)管年度工作總結
- 新工會職工工作總結
- 2024-2030年中國左乙拉西坦行業(yè)市場發(fā)展監(jiān)測及投資方向研究報告
- 中國人工智能汽車行業(yè)市場全景分析及投資策略研究報告
- 2024年環(huán)氧丙烷行業(yè)深度研究報告
- 危險化學品包裝(紙桶)產(chǎn)品質量監(jiān)督抽查實施細則
- 部編版三年級下冊語文第一單元教材解讀PPT課件
- 【2022】154號文附件一:《江蘇省建設工程費用定額》(2022年)營改增后調整內容[10頁]
- 二年級剪窗花
- 分子生物學在醫(yī)藥中的研究進展及應用
- 《對折剪紙》)ppt
- 03SG520-1實腹式鋼吊車梁(中輕級工作制A1~A5_Q235鋼_跨度6.0m、7.5m、9.0m)
- 以虛報注冊資本、虛假出資、抽逃出資為由對實行認繳資本登記制的公司進行處罰無法律依據(jù)
- 風電場生產(chǎn)運營準備大綱11.14
- 人教版八年級語文下冊教材研說
- 《機械制造裝備設計》ppt課件
- 中學家訪記錄大全100篇 關于中學家訪隨筆
評論
0/150
提交評論