來(lái)源:一只小杰鴿 發(fā)布時(shí)間:2020-04-28 17:01:45 閱讀量:1426
數(shù)據(jù)庫(kù)系統(tǒng)概論
緒論
數(shù)據(jù)庫(kù)DB
數(shù)據(jù)庫(kù)是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)、有組織的、可共享的大量數(shù)據(jù)的集合。
數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS
數(shù)據(jù)庫(kù)管理系統(tǒng)是位于用戶(hù)與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件(計(jì)算機(jī)的基礎(chǔ)軟件)
(1)數(shù)據(jù)定義功能
(2)數(shù)據(jù)組織、存儲(chǔ)和管理
(3)數(shù)據(jù)操縱功能
(4)數(shù)據(jù)庫(kù)的事務(wù)管理和運(yùn)行管理
(5)數(shù)據(jù)庫(kù)的建立和維護(hù)功能
(6)其他功能
數(shù)據(jù)庫(kù)系統(tǒng)
數(shù)據(jù)庫(kù)系統(tǒng)是由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)(及其應(yīng)用開(kāi)發(fā)工具)、應(yīng)用程序和數(shù)據(jù)庫(kù)管理員(DBA)組成的存儲(chǔ)、管理、處理和維護(hù)數(shù)據(jù)的系統(tǒng)。
數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)
(1)數(shù)據(jù)結(jié)構(gòu)化
數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,這是數(shù)據(jù)庫(kù)系統(tǒng)的主要特征之一,也是數(shù)據(jù)庫(kù)系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。
(2)數(shù)據(jù)獨(dú)立性高
數(shù)據(jù)獨(dú)立性是由數(shù)據(jù)庫(kù)管理系統(tǒng)提供的二級(jí)映像功能來(lái)保證的。
a.物理獨(dú)立性是指用戶(hù)的應(yīng)用程序與數(shù)據(jù)庫(kù)中數(shù)據(jù)的物理存儲(chǔ)是相互獨(dú)立的。
b.邏輯獨(dú)立性是指用戶(hù)的應(yīng)用程序與數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)是相互獨(dú)立的。
概念模型
(1)信息世界中的基本概念
a.實(shí)體
b.屬性
c.碼
d.實(shí)體型
e.實(shí)體集
f.聯(lián)系
(2)概念模型的一種表示方法:實(shí)體-聯(lián)系方法(E-R方法/E-R模型)
數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)
(1)模式
模式也稱(chēng)邏輯模式,是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶(hù)的公共數(shù)據(jù)視圖。
一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)模式。
(2)外模式
外模式也稱(chēng)子模式或用戶(hù)模式,它是數(shù)據(jù)庫(kù)用戶(hù)能夠看見(jiàn)和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫(kù)用戶(hù)的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。
(3)內(nèi)模式
內(nèi)模式也稱(chēng)存儲(chǔ)模式,一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)內(nèi)模式。它是數(shù)據(jù)物理結(jié)構(gòu)的存儲(chǔ)方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的組織方式。
數(shù)據(jù)庫(kù)系統(tǒng)的二級(jí)映像功能與數(shù)據(jù)獨(dú)立性
(1)外模式/模式映像
當(dāng)模式改變時(shí),由數(shù)據(jù)庫(kù)管理員對(duì)各個(gè)外模式/模式的映像作相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程序也不必改變。保證了數(shù)據(jù)與程序的邏輯獨(dú)立性,簡(jiǎn)稱(chēng)數(shù)據(jù)的邏輯獨(dú)立性。
(2)模式/內(nèi)模式映像
當(dāng)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),由數(shù)據(jù)庫(kù)管理員對(duì)模式/內(nèi)模式映像作相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程序也不必改變。保證了數(shù)據(jù)與程序的物理獨(dú)立性,簡(jiǎn)稱(chēng)數(shù)據(jù)的物理獨(dú)立性。
關(guān)系數(shù)據(jù)庫(kù)
關(guān)系
候選碼、主碼、主屬性、非主屬性(非碼屬性)
基本關(guān)系的六條性質(zhì):
(1)列是同質(zhì)的
(2)不同列可出自同一個(gè)域,每一列為一個(gè)屬性,不同屬性(列)給不同屬性名
(3)列的順序可任意交換
(4)任意兩個(gè)元組不能完全相同
(5)行的順序可任意交換
(6)每一分量是不可分的數(shù)據(jù)項(xiàng)
關(guān)系模式:關(guān)系的描述R(U, D, dom, F),簡(jiǎn)記為R(U)或R(A1, A2, …, An)
關(guān)系操作
查詢(xún)操作和插入、刪除、修改操作兩部分
關(guān)系的完整性
(1)實(shí)體完整性
(2)參照完整性
(3)用戶(hù)定義的完整性
關(guān)系代數(shù)
(1)傳統(tǒng)的集合運(yùn)算(前三者都有n個(gè)屬性且相應(yīng)屬性取自同一個(gè)域)
并(合并)
差(去除)
交(共同)
笛卡爾積(元組連接)
(2)專(zhuān)門(mén)的關(guān)系運(yùn)算
選擇(滿(mǎn)足條件的行)
投影(列的組合)
連接(元組連接且滿(mǎn)足條件θ)
a.等值連接(條件θ為相等)
b.自然連接(等值連接去除重復(fù)列,默認(rèn)舍棄懸浮元組)
除(R÷S,R中公共屬性在非公共屬性上的象集包含了S中公共屬性投影集合,R÷S結(jié)果為這些滿(mǎn)足條件的非公共屬性的元組集合)
關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL
數(shù)據(jù)定義
對(duì)模式SCHEMA、基本表TABLE、視圖VIEW、索引INDEX的創(chuàng)建CREATE、刪除DROP和修改ALTER(9種組合,不能修改模式、視圖和索引)(10種組合,不能修改模式和視圖)
數(shù)據(jù)查詢(xún)
單表查詢(xún)
查詢(xún)所有*
消除重復(fù)行DISTINCT,默認(rèn)是全部行ALL
范圍閉區(qū)間(NOT) BETWEEN AND
屬性值的集合(NOT) IN
字符匹配LIKE+通配符(任意長(zhǎng)度% 任意單個(gè)字符_)(+ 轉(zhuǎn)義符ESCAPE)
空值IS (NOT) NULL
按屬性列排序ORDER BY + 升序ASC(默認(rèn),空值最后)/降序DESC(空值最先)
元組個(gè)數(shù)COUNT(*) (遇到空值不影響)
某列中值的:個(gè)數(shù)COUNT(),總和SUM(),平均值A(chǔ)VG(),最大值MAX(),最小值MIN() (遇到空值跳過(guò))
分組GROUP BY (+ HAVING)
連接查詢(xún)
自身連接FIRST,SECOND
外連接LEFT/RIGHR/FULL OUTER JOIN ON()
嵌套查詢(xún)
子查詢(xún)結(jié)果屬性值的集合(NOT) IN
子查詢(xún)結(jié)果的某個(gè)值A(chǔ)NY
子查詢(xún)結(jié)果的所有值A(chǔ)LL
返回查詢(xún)結(jié)果(NOT) EXISTS
多層嵌套
集合查詢(xún)
查詢(xún)結(jié)果是元組的集合,可以進(jìn)行集合操作并UNION、交INTERSECT、差EXCEPT
基于派生表查詢(xún)
子查詢(xún)生成的臨時(shí)派生表作為主查詢(xún)的對(duì)象,AS設(shè)置別名
數(shù)據(jù)更新
插入
INSERT
INTO
VALUES
修改
UPDATE
SET
WHERE
刪除
DELETE
FROM
WHERE
空值
空值與其他值算術(shù)運(yùn)算為空值,比較運(yùn)算為UNKNOWN
視圖的作用
視圖能夠簡(jiǎn)化用戶(hù)的操作
視圖使用戶(hù)能以多種角度看待同一數(shù)據(jù)
視圖對(duì)重構(gòu)數(shù)據(jù)庫(kù)提供了一定程度的邏輯獨(dú)立性
視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)
適當(dāng)利用視圖可以更清晰地表達(dá)查詢(xún)
數(shù)據(jù)庫(kù)安全性
數(shù)據(jù)庫(kù)的安全性
是指保護(hù)數(shù)據(jù)庫(kù)以防止不合法使用所造成的數(shù)據(jù)泄漏、更改或破壞。
TCSEC/TDI(四組七個(gè)等級(jí))
C1級(jí)(自主安全保護(hù)):該級(jí)只提供了非常初級(jí)的自主安全保護(hù),能實(shí)現(xiàn)對(duì)用戶(hù)和數(shù)據(jù)的分離。進(jìn)行自主存取控制(DAC),保護(hù)或限制用戶(hù)權(quán)限的傳播?,F(xiàn)有的商業(yè)系統(tǒng)往往稍作改進(jìn)即可滿(mǎn)足要求。
B1級(jí)(標(biāo)記安全保護(hù)):對(duì)系統(tǒng)的數(shù)據(jù)加以標(biāo)記,并對(duì)標(biāo)記的主體和客體實(shí)施強(qiáng)制存取控制(MAC)以及審計(jì)等安全機(jī)制。B1級(jí)別的產(chǎn)品才被認(rèn)為是真正意義上的安全產(chǎn)品。
自主存取控制
用戶(hù)對(duì)于不同的數(shù)據(jù)庫(kù)對(duì)象有不同的存取權(quán)限,不同的用戶(hù)對(duì)同一對(duì)象也有不同的權(quán)限,而且用戶(hù)還可將其擁有的存取權(quán)限轉(zhuǎn)授給其他用戶(hù)。
因此自主存取控制非常靈活。
強(qiáng)制存取控制
每一個(gè)數(shù)據(jù)庫(kù)對(duì)象被標(biāo)記以一定的密級(jí),每一個(gè)用戶(hù)也被授予某一個(gè)級(jí)別的許可證。對(duì)于任意一個(gè)對(duì)象,只有具有合法許可證的用戶(hù)才可以存取。
因此強(qiáng)制存取控制相對(duì)比較嚴(yán)格。
數(shù)據(jù)庫(kù)完整性
(1)實(shí)體完整性
說(shuō)明方法:在列級(jí)定義(只適合單屬性構(gòu)成的碼)、在表級(jí)定義
檢查:主碼值是否唯一、主碼的各個(gè)屬性是否為空
處理:拒絕插入或修改
(2)參照完整性
檢查:參照表插入、修改;被參照表刪除、修改
處理:拒絕執(zhí)行、級(jí)聯(lián)刪除、設(shè)置為空值
(3)用戶(hù)定義的完整性
a.屬性上約束條件
檢查:列值非空、列值唯一、檢查列值是否滿(mǎn)足一個(gè)條件表達(dá)式(CHECK短語(yǔ))
處理:拒絕執(zhí)行
b.元組上的約束條件(不同屬性之間的約束條件)
檢查:CHECK語(yǔ)句定義約束條件
處理:拒絕執(zhí)行
關(guān)系數(shù)據(jù)庫(kù)理論
函數(shù)依賴(lài)
設(shè)R(U)是屬性集U上的關(guān)系模式。X,Y是U的子集。若對(duì)于R的任何一個(gè)可能的關(guān)系r,r中不可能存在兩個(gè)元組在X屬性值上相等而在Y屬性值上不等,則稱(chēng)X函數(shù)確定Y或Y函數(shù)依賴(lài)于X,記作:X→Y。
完全函數(shù)依賴(lài)
在R(U)中如果X→Y,并且對(duì)X的任何一個(gè)真子集X’,都有X’→Y,則稱(chēng)Y對(duì)X完全函數(shù)依賴(lài),記作:X → Y
部分函數(shù)依賴(lài)
若X → Y,但Y不完全函數(shù)依賴(lài)于X,則稱(chēng)Y對(duì)X部分函數(shù)依賴(lài),記作:X → Y
傳遞函數(shù)依賴(lài)
候選碼
主屬性
包含在任何候選碼中的屬性。
非主屬性(非碼屬性)
不包含在任何候選碼中的屬性。
外碼
關(guān)系模式R中的屬性或?qū)傩越MX并非R的碼,但X是另一個(gè)關(guān)系模式的碼,則稱(chēng)X是R的外部碼,簡(jiǎn)稱(chēng)外碼。
1NF
每一個(gè)分量必須是不可分的數(shù)據(jù)項(xiàng)
2NF
若R∈1NF,對(duì)R的每一個(gè)非平凡的函數(shù)依賴(lài)X→Y,要么Y是主屬性,要么X不是任何碼的真子集,則R∈2NF。
若R∈1NF,且每一個(gè)非主屬性完全函數(shù)依賴(lài)于任何一個(gè)候選碼,則R∈2NF。
2NF在1NF基礎(chǔ)上消除了非主屬性對(duì)碼的部分函數(shù)依賴(lài)。
3NF
若R∈1NF,對(duì)R中的每一個(gè)非平凡的函數(shù)依賴(lài)X→Y,要么Y是主屬性,要么X中含有碼,則R∈3NF。
3NF在2NF的基礎(chǔ)上消除了非主屬性對(duì)碼的傳遞函數(shù)依賴(lài),不存在非主屬性對(duì)非主屬性的函數(shù)依賴(lài)。
BCNF
若R∈1NF,對(duì)R中的每一個(gè)非平凡的函數(shù)依賴(lài)X→Y,X中均含有碼,則R∈BCNF。
不允許主屬性對(duì)碼的部分和傳遞函數(shù)依賴(lài)。
多值依賴(lài)
設(shè)有關(guān)系模式R(U),X, Y, Z是U的非空子集。對(duì)于R的任一關(guān)系r,給定一對(duì)(x, z)值,就有一組Y的值與之對(duì)應(yīng),這組值僅僅決定于x值而與z值無(wú)關(guān),則稱(chēng)“Y多值依賴(lài)于X”或“X多值決定Y”。記作X→→Y。
4NF
若關(guān)系模式R(U,F(xiàn))∈1NF,如果對(duì)于R的每個(gè)非平凡多值依賴(lài)X →→ Y(Y不包含于X),X都含有碼,則稱(chēng)R(U,F(xiàn))∈4NF。
4NF消除了多值依賴(lài)。
模式分解
無(wú)損連接性和函數(shù)依賴(lài)
具有無(wú)損連接性:分解后的(幾個(gè))小模式可自然連接恢復(fù)位原來(lái)的模式
保持函數(shù)依賴(lài):分解前后函數(shù)依賴(lài)集等價(jià)
分解為一組具有無(wú)損連接性,保持函數(shù)依賴(lài),且滿(mǎn)足3NF的關(guān)系范式
數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)設(shè)計(jì)基本步驟
需求分析
概念結(jié)構(gòu)設(shè)計(jì) 構(gòu)造ER模型
邏輯結(jié)構(gòu)設(shè)計(jì) 生成一組關(guān)系模式
物理結(jié)構(gòu)設(shè)計(jì) 設(shè)計(jì)具體DBMS下的表、視圖、索引
數(shù)據(jù)庫(kù)實(shí)施
數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)
ER方法
實(shí)體、聯(lián)系以及它們的屬性,關(guān)系是一對(duì)一,一對(duì)多還是多對(duì)多,是否存在弱實(shí)體型。
如果一個(gè)實(shí)體型的存在依賴(lài)于其他實(shí)體型的存在,則這個(gè)實(shí)體型叫做弱實(shí)體型,否則叫做強(qiáng)實(shí)體型。一般地講,如果不能從一個(gè)實(shí)體型的屬性中找出可以作為碼的屬性,則這個(gè)實(shí)體型是弱實(shí)體型。
ER模型到關(guān)系模型的9步映射算法(前七步)
S1: 每一強(qiáng)實(shí)體用一個(gè)新表表示
對(duì)ER模型中的每一實(shí)體E創(chuàng)建對(duì)應(yīng)的新表T
確定新表T的屬性:
E的所有簡(jiǎn)單屬性轉(zhuǎn)換為對(duì)應(yīng)的表T的屬性
對(duì)于E的復(fù)合屬性,直接從其簡(jiǎn)單成分轉(zhuǎn)換
確定T的主碼和Unique碼
E的碼轉(zhuǎn)換為候選碼,選定一個(gè)(意義最明顯的)為主碼,其余作Unique碼
S2: 處理ER模型中所有參與1:1標(biāo)識(shí)聯(lián)系的弱實(shí)體W
找出W所依賴(lài)的強(qiáng)實(shí)體對(duì)應(yīng)的表T
在T表中加入W的所有簡(jiǎn)單屬性和復(fù)合屬性的簡(jiǎn)單成分
S3: 處理ER模型中所有參與1:N或M:N標(biāo)識(shí)聯(lián)系的弱實(shí)體W
為W創(chuàng)建對(duì)應(yīng)的新表T
確定新表T的屬性:
E的所有簡(jiǎn)單屬性轉(zhuǎn)換為對(duì)應(yīng)的表T的屬性
對(duì)于E的復(fù)合屬性,直接從其簡(jiǎn)單成分轉(zhuǎn)換
確定T的主碼
對(duì)于1:N聯(lián)系,T中增加W所依賴(lài)的強(qiáng)實(shí)體對(duì)應(yīng)表的主碼為外碼,T的主碼為該外碼+W的鑒別器(部分碼)
如果是M:N聯(lián)系,構(gòu)建新列(具有惟一值)為主碼
S4: 處理ER模型中每一二元1:1聯(lián)系R
確定參與該聯(lián)系的實(shí)體型轉(zhuǎn)換的表S和T
選定S(最好是全參與的一方,推廣到參與程度高的一方)
將T的主碼作為外碼加入S
將聯(lián)系R的所有簡(jiǎn)單屬性和復(fù)合屬性成分作為列加入S
S5: 處理ER模型中每一二元1:N聯(lián)系R
確定處于N端的實(shí)體表S和1端的實(shí)體表T
將T的主碼作為外碼加入S
將R的所有簡(jiǎn)單屬性和復(fù)合屬性成分作為列加入S
S6: 處理ER模型中的每一多元聯(lián)系和二元(M:N聯(lián)系)R
為R創(chuàng)建對(duì)應(yīng)的新表T
將R的所有簡(jiǎn)單屬性和復(fù)合屬性成分作為列加入T
將參與聯(lián)系的(強(qiáng)、弱)實(shí)體型的主碼作為外碼加入T
將(上步得到的)所有外碼組合,共同構(gòu)成T的主碼
S7: 處理ER模型中的每一多值屬性A
為A創(chuàng)建對(duì)應(yīng)的新表T
將A的所有簡(jiǎn)單屬性和復(fù)合屬性成分作為列加入T
將A所屬的實(shí)體或聯(lián)系轉(zhuǎn)換得到的表的主碼作為外碼加入T
將(上步得到的)外碼和A對(duì)應(yīng)的全部屬性確定為T(mén)的主碼
關(guān)系查詢(xún)處理和查詢(xún)優(yōu)化
1.選擇變串連
2.盡可能先做選擇
3.盡可能先做投影
4.同時(shí)執(zhí)行多個(gè)選擇和投影
5.分組
數(shù)據(jù)庫(kù)恢復(fù)技術(shù)
事務(wù)
事務(wù)是用戶(hù)定義的一個(gè)數(shù)據(jù)庫(kù)操作序列,這些操作要么全做,要么全不做,是一個(gè)不可分割的工作單位。
事務(wù)是恢復(fù)和并發(fā)控制的基本單位。
保證事務(wù)ACID特性是事務(wù)處理的重要任務(wù)。
事務(wù)的特性(ACID)
原子性(Atomicity) :最小工作單位
一致性(Consistency): 一個(gè)正確狀態(tài)到另一個(gè)正確狀態(tài)
隔離性(Isolation) :事務(wù)不相互干擾
持續(xù)性(Durability) :事務(wù)提交對(duì)數(shù)據(jù)庫(kù)影響是永久性的
事務(wù)ACID特性可能遭到破壞的因素
多個(gè)事務(wù)并行運(yùn)行時(shí),不同事物的操作交叉執(zhí)行
事務(wù)在運(yùn)行過(guò)程中被強(qiáng)制停止
數(shù)據(jù)庫(kù)恢復(fù)
數(shù)據(jù)庫(kù)管理系統(tǒng)必須具有把數(shù)據(jù)庫(kù)從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)的功能
恢復(fù)的基本原理:冗余
建立冗余數(shù)據(jù)最常用的技術(shù)是數(shù)據(jù)轉(zhuǎn)儲(chǔ)和登記日志文件。
數(shù)據(jù)轉(zhuǎn)儲(chǔ)
按照狀態(tài):動(dòng)態(tài)轉(zhuǎn)儲(chǔ)、靜態(tài)轉(zhuǎn)儲(chǔ)
按照方式:海量轉(zhuǎn)儲(chǔ)、增量轉(zhuǎn)儲(chǔ)
登記日志文件
日志文件的作用
事務(wù)故障恢復(fù)和系統(tǒng)恢復(fù)必須用日志文件
在動(dòng)態(tài)轉(zhuǎn)儲(chǔ)方式中必須建立日志文件,后備副本和日志文件結(jié)合起來(lái)才能有效地恢復(fù)數(shù)據(jù)庫(kù)
在靜態(tài)轉(zhuǎn)儲(chǔ)方式中也可以建立日志文件,當(dāng)數(shù)據(jù)庫(kù)毀壞后可重新裝入后援副本把數(shù)據(jù)庫(kù)恢復(fù)到轉(zhuǎn)儲(chǔ)結(jié)束時(shí)刻的正確狀態(tài),然后利用日志文件把已完成的事務(wù)進(jìn)行重做處理,對(duì)故障發(fā)生時(shí)尚未完成的事務(wù)進(jìn)行撤銷(xiāo)處理。這樣不必重新運(yùn)行那些已完成的事務(wù)程序就可把數(shù)據(jù)庫(kù)恢復(fù)到故障前某一時(shí)刻的正確狀態(tài)。
事務(wù)內(nèi)部的故障
事務(wù)故障是指事務(wù)在運(yùn)行至正常終點(diǎn)前被終止,這時(shí)恢復(fù)子系統(tǒng)應(yīng)利用日志文件撤銷(xiāo)(UNDO)此事務(wù)已對(duì)數(shù)據(jù)庫(kù)進(jìn)行的修改。
事務(wù)故障的恢復(fù)是由系統(tǒng)自動(dòng)完成的,對(duì)用戶(hù)是透明的。
恢復(fù)步驟:
反向掃描日志文件,查找未完成事務(wù)的更新操作
對(duì)該事務(wù)的更新操作做逆操作
繼續(xù)反向掃描,查找該事務(wù)的其他更新操作,并做同樣處理
直至該事務(wù)的開(kāi)始標(biāo)記為止
系統(tǒng)故障(軟故障)
系統(tǒng)故障是指造成系統(tǒng)停止運(yùn)轉(zhuǎn)的任何事件,使得系統(tǒng)要重新啟動(dòng)。
系統(tǒng)故障的恢復(fù)是由系統(tǒng)在重新啟動(dòng)時(shí)自動(dòng)完成的,不需要用戶(hù)干預(yù)。
系統(tǒng)故障造成數(shù)據(jù)庫(kù)不一致?tīng)顟B(tài)的原因
未完成事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新可能已寫(xiě)入數(shù)據(jù)庫(kù)
已提交事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新可能還留在緩沖區(qū)沒(méi)來(lái)得及寫(xiě)入數(shù)據(jù)庫(kù)
恢復(fù)步驟
正向掃描日志文件,將已提交事務(wù)(故障發(fā)生前已COMMIT)標(biāo)志記入REDO隊(duì)列,未完成事務(wù),將其事務(wù)標(biāo)志記入U(xiǎn)NDO隊(duì)列
對(duì)UNDO隊(duì)列中的事務(wù)進(jìn)行UNDO處理
對(duì)REDO隊(duì)列中的事務(wù)進(jìn)行REDO處理
介質(zhì)故障(硬故障)
介質(zhì)故障是指外存故障,這類(lèi)故障將破壞數(shù)據(jù)庫(kù)或部分?jǐn)?shù)據(jù)庫(kù),并影響正在存取這部分?jǐn)?shù)據(jù)的所有事務(wù)。
介質(zhì)故障的恢復(fù)需要數(shù)據(jù)庫(kù)管理員介入,具體的恢復(fù)操作仍由數(shù)據(jù)庫(kù)管理系統(tǒng)完成。
恢復(fù)方法
重裝數(shù)據(jù)庫(kù),然后重做已完成的事務(wù)
恢復(fù)步驟
裝入最新的數(shù)據(jù)庫(kù)后備副本,使數(shù)據(jù)庫(kù)恢復(fù)到故障發(fā)生前最近轉(zhuǎn)儲(chǔ)時(shí)的一致性狀態(tài)
裝入日志文件副本,利用日志文件進(jìn)行REDO。
并發(fā)控制
并發(fā)控制
DBMS必須提供并發(fā)控制機(jī)制來(lái)協(xié)調(diào)并發(fā)用戶(hù)的并發(fā)操作以保證并發(fā)事務(wù)的隔離性和一致性
封鎖
事務(wù)T在對(duì)某個(gè)數(shù)據(jù)對(duì)象例如表、記錄等操作之前,先向系統(tǒng)發(fā)出加鎖請(qǐng)求,在獲得封鎖后,事務(wù)T就對(duì)該數(shù)據(jù)對(duì)象有了一定的控制,在事務(wù)T釋放它的鎖之前,其他的事務(wù)不能更新此數(shù)據(jù)對(duì)象。
排它鎖(寫(xiě)鎖,Exclusive Locks,簡(jiǎn)稱(chēng)X鎖)
共享鎖(讀鎖,Share Locks,簡(jiǎn)稱(chēng)S鎖)
封鎖協(xié)議
在線
客服
服務(wù)時(shí)間:周一至周日 08:30-18:00
選擇下列產(chǎn)品馬上在線溝通:
客服
熱線
7*24小時(shí)客服服務(wù)熱線
關(guān)注
微信
關(guān)注官方微信