網(wǎng)站建設(shè)請示文件茶葉網(wǎng)絡(luò)營銷策劃方案
前言
今天剛結(jié)束考試,考的范圍基本沒有超過這套重點內(nèi)容,覺得整理的這份資料還算比較有用,遂睡前整理了下分享給大家,希望能幫到要準(zhǔn)備數(shù)據(jù)庫期末又時間緊張的學(xué)弟學(xué)妹~
文章參考:
1.課程老師發(fā)《數(shù)據(jù)庫期末考試復(fù)習(xí)重點(2022)》
2.HNU數(shù)據(jù)庫系統(tǒng)教學(xué)PPT
3.《數(shù)據(jù)庫系統(tǒng)概論》官網(wǎng)考試平臺 http
重點大綱
- 前言
- 文章參考:
- 第一章 緒論
- 1.1 數(shù)據(jù)庫的4個基本概念(數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫系統(tǒng))
- 1.2數(shù)據(jù)庫系統(tǒng)的特點、數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的區(qū)別與聯(lián)系
- 1.3數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)(外模式、模式、內(nèi)模式)
- 數(shù)據(jù)庫的二級映像功能與數(shù)據(jù)獨立性(邏輯獨立性、物理獨立性)
- 第二章 關(guān)系數(shù)據(jù)庫
- 2.1 碼、主屬性、非主屬性、外碼
- 2.2 關(guān)系代數(shù) 并、差、交、笛卡爾積、選擇、投影、連接、除運算。
- 2.3關(guān)系代數(shù)查詢及關(guān)系運算
- 第三章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL
- 3.1 SQL的基本概念,基本表、視圖。
- 3.2基本表及視圖的定義、查詢、更新
- 3.3 數(shù)據(jù)查詢:常用的SQL語句,常用的查詢、修改、刪除、分組、排序等SQL 語句
- 3.4 能熟練使用通配符
- 3.5多表連接查詢、復(fù)合條件連接查詢、嵌套查詢
- 3.6 數(shù)據(jù)更新 插入數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)
- 3.7 空值的處理
- 第四章 數(shù)據(jù)庫安全性
- 4.1 數(shù)據(jù)庫的安全性
- 4.2實現(xiàn)數(shù)據(jù)庫安全性控制常用的方法和技術(shù)
- 4.3能熟練使用SQL語句完成對關(guān)系模式的授權(quán)/回收操作
- 第五章 數(shù)據(jù)庫的完整性
- 5.1數(shù)據(jù)庫的完整性
- 5.2實體完整性、參照完整性、用戶定義完整性
- 第六章 關(guān)系數(shù)據(jù)理論
- 6.1對函數(shù)依賴、碼、主屬性、非主屬性、外碼等有深入的理解
- 多值依賴:
- 6.2掌握規(guī)范化理論,能夠判斷給定關(guān)系模式的規(guī)范化程度
- 6.3掌握模式的分解,能夠按要求對給定關(guān)系模式進(jìn)行分解,修改為符合更高一級的范式
- 6.4 掌握數(shù)據(jù)依賴的公理系統(tǒng),能求解閉包和最小依賴集。
- 求XF+的算法
- 極小函數(shù)依賴集
- 第七章 數(shù)據(jù)庫設(shè)計
- 7.1掌握數(shù)據(jù)庫的設(shè)計方法與設(shè)計的步驟
- 7.2根據(jù)語義設(shè)計系統(tǒng)的E-R圖,并將E-R圖轉(zhuǎn)換為關(guān)系模式(寫出關(guān)系名稱和所有屬性)
- 7.3數(shù)據(jù)庫設(shè)計方面有自己獨到的理解
- 第八章 嵌入式SQL
- 8.1理解主變量
- 8.2理解嵌入式SQL中引入游標(biāo)的作用
- 8.3 理解存儲過程
- 第九章 關(guān)系查詢處理和查詢優(yōu)化
- 9.1關(guān)系代數(shù)表達(dá)式的優(yōu)化策略及步驟
- 9.2代數(shù)優(yōu)化、物理優(yōu)化
- 第十章 數(shù)據(jù)庫恢復(fù)技術(shù)
- 10.1對事務(wù)的基本概念及事務(wù)的ACID特性有一定的理解和掌握
- 10.2 理解數(shù)據(jù)庫系統(tǒng)中故障的種類
- 10.3掌握數(shù)據(jù)庫恢復(fù)技術(shù)(數(shù)據(jù)轉(zhuǎn)儲、登記日志文件),對恢復(fù)子系統(tǒng)及其功能有一定的掌握。
- 10.4掌握并能熟練使用具有檢查點的恢復(fù)技術(shù)。
- 第十一章 并發(fā)控制
- 11.1并發(fā)控制及并發(fā)操作帶來的數(shù)據(jù)不一致性
- 11.2封鎖技術(shù)及基本封鎖類型(排他鎖和共享鎖)、三級封鎖協(xié)議
- 11.3活鎖和死鎖,死鎖的預(yù)防、診斷與解除
- 11.4可串行化調(diào)度及兩段鎖協(xié)議,判斷一個并發(fā)調(diào)度是不是沖突可串行化調(diào)度。
- 11.5理解封鎖粒度及多粒度封鎖。
- 11.6能熟練使用并發(fā)控制進(jìn)行事務(wù)調(diào)度
第一章 緒論
1.1 數(shù)據(jù)庫的4個基本概念(數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫系統(tǒng))
數(shù)據(jù):描述事物的符號記錄,是數(shù)據(jù)庫中存儲的基本對象
數(shù)據(jù)庫:是長期存儲在計算機(jī)內(nèi),有組織的,可共享的大量數(shù)據(jù)的集合
數(shù)據(jù)庫管理系統(tǒng):位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件;是基礎(chǔ)軟件,是一個大型復(fù)雜的軟件系統(tǒng)
數(shù)據(jù)庫系統(tǒng):由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用程序和數(shù)據(jù)庫管理員組成的存儲、管理、處理和維護(hù)數(shù)據(jù)的系統(tǒng)
1.2數(shù)據(jù)庫系統(tǒng)的特點、數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的區(qū)別與聯(lián)系
特點:
-
數(shù)據(jù)結(jié)構(gòu)化
-
數(shù)據(jù)的共享性高,冗余度低且易擴(kuò)充
-
數(shù)據(jù)的獨立性高
-
數(shù)據(jù)由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理和控制
區(qū)別:
文件系統(tǒng)面向某一應(yīng)用程序,共享性差,冗余度大,獨立性差,記錄內(nèi)有結(jié)構(gòu),整體無結(jié)構(gòu),應(yīng)用程序自己控制。
數(shù)據(jù)庫系統(tǒng)面向現(xiàn)實世界,共享度高,冗余度小,具有高度的物理獨立性和一定的邏輯獨立性,整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述,由數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)安全性、完整性、并發(fā)控制和恢復(fù)能力
聯(lián)系:
文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)都是計算機(jī)系統(tǒng)中管理數(shù)據(jù)的軟件。數(shù)據(jù)庫中數(shù)據(jù)的組織和存儲是通過操作系統(tǒng)中文件系統(tǒng)來實現(xiàn)的。
1.3數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)(外模式、模式、內(nèi)模式)
數(shù)據(jù)庫的二級映像功能與數(shù)據(jù)獨立性(邏輯獨立性、物理獨立性)
外模式:亦稱子模式或用戶模式,是數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。
模式:亦稱邏輯模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu)。
內(nèi)模式:亦稱存儲模式,是數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)部的表示,即對數(shù)據(jù)的物理結(jié)構(gòu)和存儲方式的描述。
三級模式結(jié)構(gòu)的優(yōu)點:數(shù)據(jù)庫的三級模式是對數(shù)據(jù)的三個抽象級別,它把數(shù)據(jù)的具體組織留給DBMS管理,使用戶能邏輯抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計算機(jī)中地存儲和表示。
為了能在內(nèi)部實現(xiàn)這三個抽象層次地聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫系統(tǒng)在這三級模式之間提供了兩層映像:外模式/模式映像和模式/內(nèi)模式映像。正是這兩層映像保證了數(shù)據(jù)庫中的數(shù)據(jù)能夠具有較高的邏輯獨立性和物理獨立性。
邏輯獨立性:當(dāng)模式改變時,由數(shù)據(jù)庫管理員對各個外模式/模式的映像作相應(yīng)改變,可以使外模式保持不變。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨立性。
物理獨立性:當(dāng)數(shù)據(jù)庫的存儲結(jié)構(gòu)改變,由數(shù)據(jù)庫管理員對模式/內(nèi)模式映像作相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程序也不必改變,保證了數(shù)據(jù)與程序的物理獨立性。
第二章 關(guān)系數(shù)據(jù)庫
2.1 碼、主屬性、非主屬性、外碼
候選碼:能唯一地標(biāo)示一個元組的某一個屬性組,而其子集不能
全碼:關(guān)系模式的所有屬性組是這個關(guān)系模式的候選碼
主碼:若一個關(guān)系有多個候選碼,則選定其中一個為主碼
主屬性:候選碼的諸屬性稱為主屬性
非主屬性:不包含任何候選碼中的屬性
外碼:設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的碼。如果F與基本關(guān)系S的主碼Ks相對應(yīng),則稱F是R的外碼
2.2 關(guān)系代數(shù) 并、差、交、笛卡爾積、選擇、投影、連接、除運算。
除運算步驟:R÷S
1.找R中和S不重合屬性的取值集合
2.對每個值求在重合屬性上象集
3.求S在重合屬性組上的投影
4.象集包含投影的值為答案
2.3關(guān)系代數(shù)查詢及關(guān)系運算
題目中含有"至少(多個)","全部"的就包含除法,除數(shù)為這個至少/全部的限制
第三章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL
3.1 SQL的基本概念,基本表、視圖。
SQL:結(jié)構(gòu)化查詢語言,是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言
基本表:本身獨立存在的表;SQL中一個關(guān)系就對應(yīng)一個基本表;一個或多個基本表對應(yīng)一個存儲文件;一個表可以帶若干索引
視圖:是從一個或多個基本表中導(dǎo)出的表;數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對應(yīng)的數(shù)據(jù);視圖是一個虛表;用戶可以在視圖上再定義視圖
3.2基本表及視圖的定義、查詢、更新
表
定義
CREATE TABLE Student(Sno CHAR(9) RRIMARY KEY,Sname CHAR(20) UNIQUE,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20)
);CREATE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY (Sno) REFERENCES Student(Sno),FOREIGN KEY (Cno) REFERENCES Course(Cno)
);更新:
ALTER TABLE Student ADD S_en DATE;
ALTER TABLE Student ALTER COLUMN Sage INT;刪除:
DROP TABLE Student CASCADE;
DROP TABLE Student RESTRICT;
視圖
定義
CREATE VIEW IS_Student
AS
SELECT Sno,Sname,Sage
FROM Student
WHERE Sdept='IS'
WITH CHECK OPTION;//刪除
DROP VIEW IS_Student CASCADE;//查詢更新同基本表 更新無法轉(zhuǎn)換為對基本表的更新則不能執(zhí)行
3.3 數(shù)據(jù)查詢:常用的SQL語句,常用的查詢、修改、刪除、分組、排序等SQL 語句
SELECT Sno,Sname FROM Student;
SELECT * FROM Student;//查詢經(jīng)過計算的值并取別名(空格)
SELECT Sname Name,2014-Sage BIRTHDAY,LOWER(Sdept) DEP FROM Student;//去除表中重復(fù)的行
SELECT DISTINCT Sno FROM SC;//簡寫條件
WHERE Sage BETWEEN 20 AND 23; //包括20和23
WHERE Sdept IN ('CS','MA');
WHERE Sdept='CS' AND Sage<20;//ORDER BY
SELECT Sno,Grade
FROM SC
WHERE Cno='3'
ORDER BY Grade DESC; //默認(rèn)為ASC 升序//聚集函數(shù) 除了COUNT,還有AVG MAX MIN SUM
SELECT COUNT(*) FROM Student; //查詢學(xué)生總?cè)藬?shù)
SELECT COUTN(DISTINCT Sno) FROM SC; //查詢選修了課程的學(xué)生人數(shù)//GROUP BY
//求各個課程號及相應(yīng)的選課人數(shù)
SELECT Cno,COUNT(Sno)
FROM SC
GROUP BY Cno;
//使用HAVING選擇滿足條件的組
SELECT Sno
FROM SC
GROUP BY Sno
HAVING COUNT(*)>3;
3.4 能熟練使用通配符
WHERE Sname LIKE '劉%';
WHERE Sname NOT LIKE '歐_';
WHERE Cname LIKE 'DB\_%I__' ESCAPE'\'; \\ ESCAPE'\'表示“\”為換碼字符
3.5多表連接查詢、復(fù)合條件連接查詢、嵌套查詢
多表連接查詢
//1.等值
WHERE Student.Sno=SC.Sno//2.自然連接 顯式指出保留哪個值
SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
FROM Student,SC
WHERE Student.Sno=SC.Sno;//多表
SELECT Student.Sno,Sname,Cname,Grade
FROM Student.Sno=SC.SnoAND SC.Cno=Course.Cno;
復(fù)合條件連接查詢
SELECT Student.Sno,Sname
FROM Student,SC
WHERE Student.Sno=SC.Sno ANDSC.Cno='2' AND SC.Grade>90;
自身連接 需取別名以區(qū)分
SELECT FIRST.Cno,SECOND.Cno
FROM Course FIRST,Course SECOND
WHERE FIRST.Cpno=SECOND.Cno;
嵌套查詢
SELECT Sno
FROM Studen
WHERE Sdept IN(SELECT SdeptFROM StudentWHERE Sname='劉晨');
省EXIST
UNION 并集去重
UNION ALL 并集不去重
INTERSECT 交集
EXCEPT 差集
3.6 數(shù)據(jù)更新 插入數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)
插入
INSERT INTO Student(Sno,Sname,Sage) VALUES('200801','陳東',18);INSERT INTO SC VALUES('200801',1,NULL);INSERT INTO Dept_age(Sdept,Avg_age)SELECT Sdept,AVG(Sage)FROM StudentGROUP BY Sdept;
修改
UPDATE Student SET Sage=22 WHERE Sno='234345';UPDATE SC
SET Grade=0
WHERE Sno IN(SELECT SnoFROM StudentWHERE Sdept='CS');
刪除
DELETE FROM Student WHERE Sno='23456';DELETE FROM Studen;DELETE
FROM SC
WHERE Sno IN(SELECT SnoFROM StudentWHERE Sdept='CS');
3.7 空值的處理
WHERE Grade IS NULL;
WHERE Grade IS NOT NULL;
第四章 數(shù)據(jù)庫安全性
4.1 數(shù)據(jù)庫的安全性
保護(hù)數(shù)據(jù)庫以防止不合法使用所造成的數(shù)據(jù)泄露、更改或破壞
4.2實現(xiàn)數(shù)據(jù)庫安全性控制常用的方法和技術(shù)
1.用戶標(biāo)識和鑒別:該方法由系統(tǒng)提供一定的方法讓用戶標(biāo)識自己的名字或身份。每次用戶要求進(jìn)入系統(tǒng)時,由系統(tǒng)進(jìn)行核對,通過鑒定后才提供系統(tǒng)的使用權(quán)
2.存取控制:通過用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的用戶訪問數(shù)據(jù)庫,所有未被授權(quán)的人員無法存取數(shù)據(jù)。例如C2級別中的自主存取控制,B1級別中的強(qiáng)制存取控制
3.視圖機(jī)制:為不同的用戶定義視圖,通過視圖機(jī)制把要保密的數(shù)據(jù)對無權(quán)存取的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度地安全保護(hù)
4.審計:建立審計日志,把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計日志中,DBA可以利用審計跟蹤信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內(nèi)容等
5.數(shù)據(jù)加密:對存儲和傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容
補(bǔ)充:
自主存取控制方法:定義各個用戶對不同數(shù)據(jù)對象的存取權(quán)限。當(dāng)用戶對數(shù)據(jù)庫訪問時首先檢查用戶的存取權(quán)限。防止不合法用戶對數(shù)據(jù)庫的存取。
強(qiáng)制存取控制方法:每一個數(shù)據(jù)對象被(強(qiáng)制地)標(biāo)以一定的密級,每一個用戶也被(強(qiáng)制地)授予某一個級別的許可證。系統(tǒng)規(guī)定只有具有某一許可證級別的用戶才能存取某一個密級的數(shù)據(jù)對象。
4.3能熟練使用SQL語句完成對關(guān)系模式的授權(quán)/回收操作
授權(quán)
GRANT UPDATE(Sno) SELECT
ON TABLE Student
TO U1
WITH GRANT OPTION;//全部權(quán)限
GRANT ALL PRIVILIGES
ON TABLE Student,Course
TO U2,U3;//全部用戶
GRANT SELECT
ON TABLE Student
TO PUBLIC;
回收
REVOKE UPDATE(Sno)
ON TABLE Student
FROM U4;REVOKE UPDATE(Sno) SELECT
ON TABLE Student
FROM U1 CASCADE; //級聯(lián)收回
角色
CREATE ROLE R1;GRANT SELECT
ON TABLE Student
TO R1;GRANT R1 TO U1;
REVOKE R1 FROM U1;REVOKE SELECT
ON TABLE Student
FROM R1;
第五章 數(shù)據(jù)庫的完整性
5.1數(shù)據(jù)庫的完整性
據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性
5.2實體完整性、參照完整性、用戶定義完整性
實體完整性:主碼 PRIMARY KEY
- 檢查主碼是否唯一,不唯一則拒絕插入或修改
- 檢查主碼的各個屬性是否為空,只要有一個為空將拒絕插入或修改
參照完整性:外碼 FOREIGN KEY
FOREIGN KEY(Sno) REFERENCES Student(Sno)ON DELETE CASCADEON UPDATE CASCADE,
FOREIGN KEY(Cno) REFERENCES Course(Cno)ON DELETE NO ACTIONON UPDATE CASCADE,
用戶定義完整性:
- NOT NULL
- UNIQUE
- CHECK (…) 列級表級皆可
完整性約束命名子句(創(chuàng)建表時)
CONSTRAINT C1 CHECK (Sage<30)CONSTRAINT C1 NOT NULL//刪除
ALTER TABLE Student
DROP CONSTRAINT C1;
第六章 關(guān)系數(shù)據(jù)理論
6.1對函數(shù)依賴、碼、主屬性、非主屬性、外碼等有深入的理解
X—>Y:關(guān)系r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,則稱X函數(shù)確定Y或Y函數(shù)依賴于X
ps:函數(shù)依賴是指R的一切關(guān)系均要滿足的約束條件
非平凡的函數(shù)依賴:X—>Y,但Y?x
平凡的函數(shù)依賴:X—>Y,但Y∈x 對任一關(guān)系模式,平凡函數(shù)依賴必然成立
決定因素:若X—>Y,則稱X為這個函數(shù)依賴的決定屬性組
Y對X完全函數(shù)依賴:在R(U)中,如果X—>Y,并且對于X的任一真子集X’,都有X-\->Y。記作:
部分函數(shù)依賴:X—>Y,但Y不完全函數(shù)依賴于X。記作:
傳遞函數(shù)依賴:
多值依賴:
定義有點繞,其實就是從函數(shù)依賴的一對一關(guān)系,變成了一對多
平凡的多值依賴:X—>—>Y,而Z=?,即Z為空
性質(zhì):
- 對稱性。若X—>—>Y,則X—>—>Z,其中Z=U-X-Y
- 傳遞性。若X—>—>Y,Y—>—>Z,則X—>—>Z-Y
- 函數(shù)依賴可以看做是多值依賴的特殊情況
- 若X—>—>Y,X—>—>Z,則X—>—>YZ
- 若X—>—>Y,X—>—>Z,則X—>—>Y∩Z
- 若X—>—>Y,X—>—>Z,則X—>—>Y-Z,X—>—>Z-Y
多值依賴和函數(shù)依賴的區(qū)別
- 多值依賴的有效性與屬性集的范圍有關(guān)
候選碼:K為R<U,F>中的屬性或?qū)傩越M合,若U完全依賴于K,則K為R的候選碼
超碼:U部分函數(shù)依賴于K。 候選碼是最小的超碼
主碼:候選碼中的一個
主屬性:包含在任何一個候選碼中的屬性
全碼:整個屬性是碼(候選碼/主碼)
外碼:關(guān)系模式R中的屬性X并非R中的碼,但X是另一個關(guān)系模式的碼,則稱X為R的外部碼
6.2掌握規(guī)范化理論,能夠判斷給定關(guān)系模式的規(guī)范化程度
6.3掌握模式的分解,能夠按要求對給定關(guān)系模式進(jìn)行分解,修改為符合更高一級的范式
實行模式分解的三條準(zhǔn)則:
-
分解具有無損連接性(lossless join)
-
分解要保持函數(shù)依賴(preserve functional dependency)
-
分解既要保持函數(shù)依賴,又要具有無損連接性
6.4 掌握數(shù)據(jù)依賴的公理系統(tǒng),能求解閉包和最小依賴集。
Armstrong公理系統(tǒng)
求XF+的算法
極小函數(shù)依賴集
第七章 數(shù)據(jù)庫設(shè)計
7.1掌握數(shù)據(jù)庫的設(shè)計方法與設(shè)計的步驟
-
需求分析:準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理)。
-
概念結(jié)構(gòu)設(shè)計:通過對用戶需求進(jìn)行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型。
-
邏輯結(jié)構(gòu)設(shè)計:將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型,并對其進(jìn)行優(yōu)化。
-
數(shù)據(jù)庫物理設(shè)計:為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方法)。
-
數(shù)據(jù)庫實施:設(shè)計人員運用DBMS提供的數(shù)據(jù)語言、工具及宿主語言,根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進(jìn)行試運行。
-
數(shù)據(jù)庫運行和維護(hù):在數(shù)據(jù)庫系統(tǒng)運行過程中對其進(jìn)行評價、調(diào)整與修改。
7.2根據(jù)語義設(shè)計系統(tǒng)的E-R圖,并將E-R圖轉(zhuǎn)換為關(guān)系模式(寫出關(guān)系名稱和所有屬性)
例子:
7.3數(shù)據(jù)庫設(shè)計方面有自己獨到的理解
第八章 嵌入式SQL
8.1理解主變量
在SQL語句中使用的主語言程序變量簡稱為主變量
8.2理解嵌入式SQL中引入游標(biāo)的作用
游標(biāo)是系統(tǒng)為用戶開設(shè)的一個數(shù)據(jù)緩沖區(qū),存放SQL語句的執(zhí)行結(jié)果
用戶可以用SQL語句逐一從游標(biāo)中獲取記錄,并賦給主變量,交由主語言進(jìn)一步處理
8.3 理解存儲過程
存儲過程:由過程化SQL語句書寫的過程,經(jīng)編譯和優(yōu)化后存儲在數(shù)據(jù)庫服務(wù)器中,使用時只要調(diào)用即可。
第九章 關(guān)系查詢處理和查詢優(yōu)化
9.1關(guān)系代數(shù)表達(dá)式的優(yōu)化策略及步驟
優(yōu)化策略:
- 選擇盡可能先做
- 投影選擇同時進(jìn)行
- 把投影和其前或其后的雙目運算(笛卡爾乘積、自然連接)結(jié)合起來執(zhí)行
- 把某些選擇同在它前面要執(zhí)行的笛卡爾積結(jié)合起來成為一個連接運算
- 找出公共子表達(dá)式
- 選取合適的連接運算
查詢優(yōu)化的一般步驟:
- 把查詢轉(zhuǎn)換成某種內(nèi)部的表示(語法樹)
- 利用優(yōu)化算法,把原始的語法樹轉(zhuǎn)換成優(yōu)化的形式
- 選擇低層的存取路徑
- 生成查詢計劃,選擇代價最小的
9.2代數(shù)優(yōu)化、物理優(yōu)化
代數(shù)優(yōu)化:改變查詢語句中操作的次序和組合,不涉及底層的存取路徑
物理優(yōu)化:就是要選擇高效合理的操作算法或存取路徑,求得優(yōu)化的查詢計劃
第十章 數(shù)據(jù)庫恢復(fù)技術(shù)
10.1對事務(wù)的基本概念及事務(wù)的ACID特性有一定的理解和掌握
事務(wù):是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位
事務(wù)是恢復(fù)和并發(fā)控制的基本單位
事務(wù)的ACID特性:
-
原子性
事務(wù)是數(shù)據(jù)庫的邏輯工作單位
-
一致性
事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)
-
隔離性
一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾
-
持續(xù)性/永久性
事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就是永久的
10.2 理解數(shù)據(jù)庫系統(tǒng)中故障的種類
-
事務(wù)內(nèi)部的故障
-
運算溢出
-
并發(fā)事務(wù)發(fā)生死鎖而被選中撤銷該事務(wù)
-
違反了某些完整性限制而被終止等
恢復(fù):事務(wù)撤銷(UNDO)
-
-
系統(tǒng)故障
-
整個系統(tǒng)的正常運行突然被破壞
-
操作系統(tǒng)故障
-
數(shù)據(jù)庫管理系統(tǒng)代碼錯誤
-
系統(tǒng)斷電
恢復(fù):1.撤銷所有未完成的事務(wù);重做所有已提交的事務(wù)
-
-
介質(zhì)故障/硬故障/外存故障
-
磁盤損壞
-
磁頭碰撞
-
瞬時強(qiáng)磁場干擾
恢復(fù):需要重新裝入發(fā)生介質(zhì)故障前某個時刻的數(shù)據(jù)庫數(shù)據(jù)副本,并重做(REDO)自備份相應(yīng)副本數(shù)據(jù)庫之后的所有成功執(zhí)行事務(wù),將這些事務(wù)已提交的更新結(jié)果重新反應(yīng)到數(shù)據(jù)庫中去。無需UNDO操作
-
-
計算機(jī)病毒
恢復(fù):通過數(shù)據(jù)庫的安全機(jī)制、審計機(jī)制等實現(xiàn)對數(shù)據(jù)庫的授權(quán)訪問和保護(hù)
10.3掌握數(shù)據(jù)庫恢復(fù)技術(shù)(數(shù)據(jù)轉(zhuǎn)儲、登記日志文件),對恢復(fù)子系統(tǒng)及其功能有一定的掌握。
數(shù)據(jù)轉(zhuǎn)儲:數(shù)據(jù)庫管理員定期地將整個數(shù)據(jù)庫復(fù)制到磁盤、磁帶或其他存儲介質(zhì)上保存起來的過程
要想恢復(fù)到故障發(fā)生時的狀態(tài),必須重新運行自轉(zhuǎn)儲以后的所有更新事務(wù)
-
靜態(tài)轉(zhuǎn)儲:在系統(tǒng)中無運行事務(wù)時進(jìn)行的轉(zhuǎn)儲操作(降低了數(shù)據(jù)庫的可用性)
-
動態(tài)轉(zhuǎn)儲:轉(zhuǎn)儲操作與用戶事務(wù)并發(fā)進(jìn)行(不能保證副本中的數(shù)據(jù)正確有效)。需要把動態(tài)轉(zhuǎn)儲期間各事務(wù)對數(shù)據(jù)庫的修改活動登記下來,建立日志文件
-
海量轉(zhuǎn)儲:每次轉(zhuǎn)儲全部數(shù)據(jù)庫
-
增量轉(zhuǎn)儲:只轉(zhuǎn)儲上次轉(zhuǎn)儲后更新過的數(shù)據(jù)
日志文件:用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件
以記錄為單位的日志文件:
作用: 進(jìn)行事務(wù)故障恢復(fù);進(jìn)行系統(tǒng)故障恢復(fù);協(xié)助后備副本進(jìn)行介質(zhì)故障恢復(fù)。
原則:
- 登記的次序嚴(yán)格按并發(fā)事務(wù)執(zhí)行的時間次序
- 必須先寫日志文件,后寫數(shù)據(jù)庫
事故恢復(fù)的基本步驟:
- 反向掃描日志文件,查找該事務(wù)的更新操作
- 對該事務(wù)的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫
- 讀到此事務(wù)的開始標(biāo)志,事務(wù)故障恢復(fù)就完成了
系統(tǒng)故障的恢復(fù):
- 正向掃描日志文件
- 重做隊列
- 撤銷隊列
- Undo故障發(fā)生時未完成的事務(wù):反向掃描日志文件,對每個撤銷事務(wù)的更新操作執(zhí)行逆操作
- Redo已完成的事務(wù):正向掃描日志我文件,對每個重做事務(wù)重新執(zhí)行登記的操作(即將“更新后的值”寫入是數(shù)據(jù)庫)
介質(zhì)故障的恢復(fù)(需要數(shù)據(jù)庫管理員的介入)
- 重裝數(shù)據(jù)庫
- 裝入有關(guān)的日志文件副本,重做已完成的事務(wù)
10.4掌握并能熟練使用具有檢查點的恢復(fù)技術(shù)。
提高恢復(fù)效率
- 在日志文件中增加檢查點記錄
- 增加重新開始文件
- 恢復(fù)子系統(tǒng)在登錄日志文件期間動態(tài)地維護(hù)日志
檢查點記錄:建立檢查點時刻所有正在執(zhí)行的事務(wù)清單;這些事務(wù)最近一個日志記錄的地址
重新開始文件:記錄各個檢查點記錄在日志文件中的地址
動態(tài)維護(hù)日志文件的方法
周期性的執(zhí)行:建立檢查點,保存數(shù)據(jù)庫狀態(tài)
利用檢查點的恢復(fù)步驟:
- 從重新開始文件中找到最后一個檢查點記錄在日志文件中的地址,由該地址在日志文件中找到最后一個檢查點記錄
- 由該檢查點記錄得到檢出點建立時刻所有正在執(zhí)行的事務(wù)清單
- 從檢查點開始正向掃描日志文件,直到日志文件結(jié)束
- 撤銷檢查點后未完成事務(wù)(包括檢查點前,事務(wù)開始后的修改);重做檢查點后已完成事務(wù)(只重做檢查點后的)
第十一章 并發(fā)控制
11.1并發(fā)控制及并發(fā)操作帶來的數(shù)據(jù)不一致性
由于并發(fā)操作破壞了事務(wù)的隔離性
- 丟失修改
- 不可重復(fù)讀
- 讀"臟"數(shù)據(jù)
11.2封鎖技術(shù)及基本封鎖類型(排他鎖和共享鎖)、三級封鎖協(xié)議
封鎖:事務(wù)T在對某個數(shù)據(jù)對象操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務(wù)T就對該數(shù)據(jù)對象有了一定的控制,在事務(wù)T釋放它的鎖之前,其他的事務(wù)不能更新此數(shù)據(jù)對象
排他鎖/寫鎖:若事務(wù)T對數(shù)據(jù)對象A加上X鎖,則其他事務(wù)在T釋放A上的鎖之前不能再讀取和修改A
共享鎖/讀鎖:若事務(wù)T對數(shù)據(jù)對象A加上S鎖,則事務(wù)T可以讀A但不能修改A,其他事務(wù)只能再對A加S鎖,而不能加X鎖,直到T釋放A上的鎖(大家都可以讀)
三級封鎖協(xié)議
一級:在事務(wù)T修改數(shù)據(jù)R之前必須先對其加X鎖,直到事務(wù)結(jié)束才釋放(只讀不鎖,還存在2、3問題)
二級:一級封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對其加S鎖,讀完后即可釋放S鎖(還存在2問題)
三級:一級封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對其加S鎖,直到事務(wù)結(jié)束才釋放
11.3活鎖和死鎖,死鎖的預(yù)防、診斷與解除
活鎖:某事務(wù)T永遠(yuǎn)等待
避免方法:采用先來先服務(wù)
死鎖:你等我,我等你,幾個事務(wù)永遠(yuǎn)不能結(jié)束
預(yù)防:
-
一次封鎖法
要求每個事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則不能繼續(xù)執(zhí)行
問題:過早加鎖,降低系統(tǒng)并發(fā)度;難于事先精確確定封鎖對象
-
順序封鎖法
預(yù)先對數(shù)據(jù)對象規(guī)定一個封鎖順序,所有事務(wù)都按這個順序?qū)嵭蟹怄i
問題:維護(hù)成本高;難于實現(xiàn)
診斷與解除:由DBMS的并發(fā)控制子系統(tǒng)定期檢測系統(tǒng)中是否存在死鎖,一旦檢測到,就要設(shè)法解除
診斷:
-
超時法
如果一個事務(wù)的等待時間超過了規(guī)定的時限,就認(rèn)為發(fā)生了死鎖
-
等待圖法
用事務(wù)等待圖G=(T,U)動態(tài)反映所有事務(wù)的等待情況(生成回路,則表示系統(tǒng)中出現(xiàn)了死鎖)
解除:選擇一個處理死鎖代價最小的事務(wù),將其撤銷,釋放此事務(wù)持有的所有的鎖,使其他事務(wù)能繼續(xù)運行下去
11.4可串行化調(diào)度及兩段鎖協(xié)議,判斷一個并發(fā)調(diào)度是不是沖突可串行化調(diào)度。
可串行化調(diào)度:多個事務(wù)的并發(fā)執(zhí)行是正確的,并且僅當(dāng)其結(jié)果與按某一次序串行地執(zhí)行這些事務(wù)時的結(jié)果相同
沖突操作:讀寫、寫寫
沖突可串行化調(diào)度:一個調(diào)度Sc在保證沖突操作的次序不變的情況下,通過交換兩個事務(wù)不沖突操作的次序得到另一個調(diào)度Sc’,如果Sc’是串行的,稱調(diào)度Sc是沖突可串行化的調(diào)度
兩段鎖協(xié)議:指所有事務(wù)必須分兩個階段對數(shù)據(jù)項加鎖和解鎖(是可串行化調(diào)度的充分條件)
- 在對任何數(shù)據(jù)進(jìn)行讀、寫操作之前,事務(wù)首先要獲得對該數(shù)據(jù)的封鎖
- 在釋放一個封鎖之后,事務(wù)不再申請和獲得任何其他封鎖
遵守三級封鎖協(xié)議(在不同程度上保證數(shù)據(jù)一致性)必然遵守兩段鎖協(xié)議(保證并發(fā)調(diào)度的正確性)
11.5理解封鎖粒度及多粒度封鎖。
封鎖粒度:封鎖對象的大小
封鎖粒度越小,并發(fā)度越高,系統(tǒng)開銷越大
多粒度封鎖:在一個系統(tǒng)中同時支持多種封鎖粒度供不同的事務(wù)選擇
對某個數(shù)據(jù)對象加鎖,系統(tǒng)要檢查:
- 該數(shù)據(jù)對象
- 所有上級結(jié)點
- 所有下級結(jié)點
意向鎖:對任一結(jié)點加基本鎖,必須先對它的上層結(jié)點加意向鎖
無需逐個檢查下一級結(jié)點的顯示封鎖,提高了對某個數(shù)據(jù)對象加鎖時系統(tǒng)的檢查效率
- 意向共享鎖 \ IS鎖
- 意向排他鎖 \ IX鎖
- 共享意向排他鎖 \ SIX鎖
鎖的強(qiáng)度:
11.6能熟練使用并發(fā)控制進(jìn)行事務(wù)調(diào)度
注:標(biāo)“*”號章節(jié)不考,第8章需要復(fù)習(xí)8.1到8.3