**
數據庫基礎知識期末考試總結
**
根據老師出的習題總結的一些知識點,不全面,先存在這里了。
1、 數據庫的三級模式二級映像保證了數據的物理獨立性和邏輯獨立性。
三級模式:模式(邏輯模式)()、外模式(用戶模式)( )、內模式(存儲模式)( )
二級映像:外模式/模式映像、模式/內模式映像
修改外模式/模式映像,保證數據的邏輯獨立性
修改模式/內模式映像,保證數據的物理獨立性
物理獨立性:用戶的應用程序與數據庫中的數據的物理存儲是相互獨立的
邏輯獨立性:用戶的應用程序與數據庫的邏輯結構是相互獨立的
2、 關于修改
是修改字段類型和長度的(修改字段的屬性)
ALTER是修改表的數據結構
ALTER和是一種用法,都是對表結構有所改變
是修改數據庫中現有的數據記錄內容的。
3、 觸發器()
觸發器是用戶定義在關系表上的一類由事件驅動的特殊過程。
又稱為:事件-條件-動作規則
通俗例子何為觸發器:有A,B兩個關系,當對A增、刪、改時,B中特定記錄要求被改變,此時就需要定義觸發器來滿足該要求。
三個要掌握的:定義觸發器、激活觸發器、刪除觸發器
4、 候選碼( key):若關系中,某一屬性組的值能唯一的標識一個元組,而其子集不能,則稱該屬性組為候選碼。
元組(tuple)是關系數據庫中的基本概念,關系是一張表,表中的每行(即數據庫中的每條記錄)就是一個元組,每列就是一個屬性。 在二維表里,元組也稱為行。
若一個關系中有多個候選碼,則選定其中一個為主碼或主鍵( key)。
公共關鍵字( key):在關系數據庫中,關系之間的聯系是通過相容或相同的屬性或屬性組來表示的。如果兩個關系中具有相容或相同的屬性或屬性組,那么這個屬性或屬性組被稱為這兩個關系的公共關鍵字。
如果公共關鍵字在一個關系中是主關鍵字,那么這個公共關鍵字被稱為另一個關系的外鍵。由此可見,外鍵表示了兩個關系之間的相關聯系。以另一個關系的外鍵作主關鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表。外鍵又稱作外關鍵字或外碼( key)。
5、 完整性
關系模型中有三類完整性約束:實體完整性( )、參照完整性( )和用戶定義的完整性(user- )。
實體完整性:用來約束主屬性不能取空值(null value)且不能重復
參照完整性:建立關系之間聯系的主關鍵字與外部關鍵字引用的約束條件
用戶定義的完整性:根據應用環境的要求和實際的需要,對某一具體應用所涉及的數據提出約束性條件。
6、 關系模型中常用的關系操作包括:查詢(query)、插入()、刪除()、修改()
7、 數據庫設計分以下六個階段:需求分析、概念結構設計、邏輯結構設計、物理結構設計、數據庫實施、數據庫運行和維護。
需求分析:通過調查、收集與分析,獲得用戶對數據庫的要求
概念結構設計(E-R模型為有力工具):將用戶需求抽象為信息結構(概念模型)
邏輯結構設計:將概念結構設計好的E-R圖轉換為與所選數據庫管理系統產品所支持的數據模型相符合的邏輯結構
物理結構設計:為一個給定的邏輯數據模型選取一個最合適應用要求的物理結構的過程
數據庫的實施和維護:試運行、調試
8、 數據庫系統的特點:數據結構化、數據的共享性高、冗余度低且易擴充、數據獨立性高、
數據由數據庫管理系統(DBMS)統一管理和控制
9、 數據庫類型是按照數據模型來劃分的
10、 謂詞…AND…和NOT …AND…可以用來查找屬性值在或不在指定范 圍內的元組。(前后均包括)。例:年齡 20 AND 25表示年齡在20至25之間。包括20和25。
11、 With Grant 字句:權限傳遞。若使用了這個權限則允許用戶將其權限分配給他人。
12、 級聯
例:在DBMS中記錄員工和員工工作信息,要求某員工離職后,數據庫需要自動刪除該員工工作信息。在定義工作表時,對外關鍵字的刪除規則定義為:ON
13、DBS包括DB和DBMS
14、空值(NULL)的操作:用IS NULL或IS NOT NULL
15、聚集函數COUNT(*) 統計元組個數 不忽略空值(NULL)
16、在數據庫中,產生數據不一致的根本原因是:數據冗余。 因為如果所有數據只有一個的話,不存在冗余現象。
17、事務:用戶定義的一個數據庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位。
四個特性:原子性()、一致性()、隔離性()、持續性() 又稱為(ACID)
數據庫系統中發生的故障(三類):
事務故障意味著事務沒有達到預期的終點,有的是可以通過事務本身發現的,有的是非預期的,不能由事務程序處理。
系統故障是指造成系統停止運轉的任何事件,使得系統要重新啟動。例如:硬件錯誤(CPU故障)、操作系統故障、DBMS代碼錯誤、系統斷電等。又稱為軟故障(soft crash)
介質故障是指外存故障,又稱為硬故障(hard crash)。例如:磁盤損壞、磁頭碰撞,瞬時強磁場干擾等。這類故障發生可能性小、但會破壞數據庫或部分數據庫,并影響正在存取的這部分數據的所有事務。
四個需要注意的操作: 表示提交,即提交事物的所有操作。
表示回滾,即事務運行的過程中發生了某種故障,事務不能繼續執行,系統將事務中對數據庫的所有已完成操作全部撤銷,回滾到事務開始時的狀態。
UNDO表示事務撤銷,在發生事務故障后,恢復程序要在不影響其他事務運行的情況下,強行回滾該事務,即撤銷該事務已經做出的任何對數據庫的修改,使得該事務好像根本沒有啟動一樣。
REDO 表示重做,指系統重新啟動后,恢復子系統除需要撤銷所有未完成的事務外,還需要重做所有已提交的事務,以將數據庫真正恢復到一致狀態。
18、各類故障對數據庫的影響有兩種可能性:
一是事務本身被破壞
二是數據庫沒有被破壞,但數據可能不正確。(由于事務的運行被非正常終止造成的)
19、恢復的原理:冗余
20、建立冗余數據最常用的技術是數據轉儲和登記日志文件()
21、檢查點()記錄:在日志文件中增加一類新的記錄,即檢查點記錄,增加一個重新開始的文件,并讓恢復子系統在登錄日志文件期間動態地維護日志
22、并發控制
事務是并發控制的基本單位
而并發操作帶來的數據不一致性包括丟失修改、不可重復讀、讀臟數據
丟失修改(lost ):兩個事務T1和T2讀入同一數據并修改,T2提交的結果破壞了T1提交的結果
不可重復讀(non- read):事務T1讀取數據后,事務T2執行更新操作,使T1無法再現前一次讀取的結果。
上述所說的T2執行的更新操作又分為三種:T2對其做了修改,使T1再次讀取時得到與之前不同的值;T2刪除了其中部分記錄,T1再次按相同條件讀取時,數據消失了;T2插入了一些記錄,T1再次按相同條件讀取時,發現多了一些記錄。
讀臟數據(dirty read):是指事務T1修改某一數據并將其寫回磁盤,事務T2讀取同一數據后,T1由于某種原因被撤銷,這時T1修改過的數據恢復原值,T2讀到了數據就與數據庫中的數據不一致。
23、并發控制機制就是要用正確的方式調度并發操作,是一個用戶事務的執行不受其他事務的干擾??刂萍夹g主要有:封鎖()、時間戳()、樂觀控制法( )和多版本并發控制(multi- ,MVCC)
24、封鎖類型:排他鎖( locks)簡稱X鎖、共享鎖(share locks)簡稱S鎖
排他鎖又稱寫鎖,這是一種獨占資源的方式,若事務T對對象A加上了X鎖,則只允許T對A進行讀取和修改。其他事務不可對A加任何類型的鎖。
共享鎖又稱讀鎖,若事務T對數據對象A加上S鎖,則事務T可以讀A但不能修改A,其他事務只能再對A加S鎖,所以其他事務也可以讀A,但是在T釋放A上的S鎖之前不能對A做任何修改。
25、封鎖協議:一級封鎖協議:事務T在修改數據R之前必須先對其加X鎖,直到事務結束才釋放??煞乐箒G失修改。
二級封鎖協議:在一級封鎖協議基礎上增加事務T在讀取數據R之前必須先對其加S鎖,讀完后即可釋放S鎖??煞乐箒G失修改和讀臟數據。
三級封鎖協議:在一級封鎖協議基礎上增加事務T在讀取數據R之前必須先對其加S鎖,直到事務結束才釋放??煞乐箒G失修改和讀臟數據和不可重復讀。
26、死鎖:兩個事務相互等待對方正占有的資源,循環等待。
處理方法:死鎖的預防和死鎖的診斷與解除。
27、可串行調度():多個事務的并發執行是正確的,當且僅當其結果與按某一次序串行地執行這些事務時的結果相同。
可串行性():并發事務正確調度的準則。
沖突可串行調度是可串行調度的充分條件,不是必要條件。
事務遵守兩段鎖協議是可串行化調度的充分條件,不是必要條件。
28、在正常的DBS中,“事務的并發調度是可串行化的”是“所有事務是兩段式的”的必然結果。
29、簡要說明具有檢查點的恢復技術的意義和實現方式
利用日志技術進行數據庫恢復時,恢復子系統必須搜索日志,確定哪些事務需要重做,哪些事務需要撤銷。一般來說,需要檢查所有日志記錄。這樣做有兩個問題:一是搜索整個日志將耗費大量時間關系數據庫的邏輯結構,二是很多需要重做處理的事務實際上已經將他們的更新操作結果寫到了數據庫中,然而恢復子系統又重新執行了這些操作,浪費了大量時間。為了解決這些問題,又發展了具有檢查點的恢復技術。這種技術在日志文件中增加一類新的記錄—檢查點記錄(),增加一個重新開始文件,并讓恢復子系統在登陸日志文件期間動態的維護日志。使用檢查點方法可以改善恢復效率。
恢復子系統定期或不定期的建立檢查點,保存數據庫狀態。
30、簡述死鎖預防優缺點,并說明實際DBMS中一般采用什么措施來應對死鎖。
優點:可以有效地防止死鎖
缺點:資源與數據的動態性使得維護死鎖困難,成本高。限制了系統的并行,降低了效率。
實際的DBMS中一般采用死鎖的診斷與解除,DBMS的并發控制子系統一旦檢測到系統中存在死鎖,通常采用的方法是選擇一個處理死鎖代價最小的事務,將其撤銷,釋放此事務持有的所有的鎖,使其他事務得以繼續運行下去。
31、有關數據模型(data model)
數據模型是對現實世界數據特征的抽象,也就是說,數據模型是用來描述數據、組織數據和對數據進行操作的。是數據庫的核心和基礎。
根據模型應用的不同目的,可將模型分為兩大類,第一類是概念模型,第二類是邏輯模型和物理模型
人們常常首先將現實世界抽象為信息世界,然后將信息世界轉換為機器世界。
最常用概念模型為實體-聯系方法(- )E-R模型
關于E-R圖:
實體之間的聯系:兩個實體型之間的聯系:一對一、一對多、多對多
兩個以上實體型之間:一對一、一對多、多對多
單個實體性內聯系:一對一、一對多、多對多
E-R圖提供了表示實體型、屬性和聯系的方法
實體型用矩形表示、屬性用橢圓形表示、聯系用菱形表示。
先畫實體屬性圖,再畫實體聯系圖,最后畫完整的E-R圖。
先把各個實體之間的聯系列出來,標出是一對一,一對多,還是多對多,再添屬性。
關系模型
關系可以有三種類型:基本關系(基本表或基表)、查詢表、視圖表
關系模型要求關系必須是規范化的(),要求關系必須滿足一定的規范條件。
將ER模型轉換為相應的關系模型時,若實體A與實體B之間的關系為C且為1:1(A:B),則在B的屬性中加入A的主碼和關系C的屬性即可。
若實體A與實體B之間的關系為C且為1:n(A:B),在B的屬性中加入A的主碼和關系C的屬性即可。
若實體A與實體B之間的關系為C且為n:m(A:B),則A,B中分別填入各自屬性之后,寫C的屬性,其中要加入A的主碼與B的主碼。
最基本的一條就是:關系的每個分量必須是不可分的數據項。
規范化的關系簡稱為范式( Form, NF)
關系的描述稱為關系模式( )可以形式化的描述為:
R(U,D,DOM,F)
32、函數依賴
設R(U)是屬性集U上的關系模式,X,Y是U的子集。若對于R(U)的任意一個可能的關系r,r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,則稱X函數確定Y或者Y函數依賴于X,記作X→Y
非平凡函數依賴:X→Y,但Y?X,則稱X→Y是非平凡函數依賴。(就是說Y并非是X的子集,但X可以推出Y)
平凡函數依賴:X→Y,但是Y∈X,則稱X→Y是平凡函數依賴。
完全函數依賴:在R(U)中,如果X→Y,并且對X的任何一個真子集X’,都有X’!→Y,則稱Y對X完全函數依賴。(就是說X必須整體才能推出Y)
部分函數依賴:若X→Y,但Y不完全函數依賴于X,則稱Y對X部分函數依賴。
傳遞函數依賴:在關系模式R(U)中,設X,Y,Z是U的不同的屬性子集,若X→Y(Y?X),Y!→X,Y→Z,Z?Y,則稱Z對X傳遞函數依賴,記為X→Z(傳遞)。
33、規范化
主屬性:包含在任何一個候選碼中的屬性稱為主屬性。
非主屬性:不包含在任何一個候選碼中的屬性稱為非主屬性。
一個低一級范式的關系模式通過模式分解可以轉換為若干個高一級范式的關系模式集合,這種過程叫做規范化()。
第一范式(1NF):符合1NF的關系中的每個屬性都不可再分。(強調數據表的原子性)
第二范式 (2NF):是指每個表必須有一個(而且僅有一個)數據元素為主關鍵字( key),其他數據元素與主關鍵字一一對應。要求數據表里的所有非主屬性都要和該數據表的主鍵有完全依賴關系;如果有哪些非主屬性只和主鍵的一部份有關的話,它就不符合第二范式。同時可以得出:如果一個數據表的主鍵只有單一一個字段的話,它就一定符合第二范式。
第三范式(3NF):表中的所有數據元素不但要能惟一地被主關鍵字所標識,而且它們之間還必須相互獨立,不存在其他的函數關系。3NF在2NF的基礎之上,消除了非主屬性對于碼的傳遞函數依賴。也就是說, 如果存在非主屬性對于碼的傳遞函數依賴,則不符合3NF的要求。
BCNF范式:在第三范式的基礎上,數據庫表中如果不存在任何字段對任一候選關鍵字段的傳遞函數依賴則符BCNF范式。也就是說滿足3NF且主屬性之間沒有依賴就是BCNF
34、基本概念
候選碼( key):若關系中的某一屬性組的值能唯一地標識一個元組,而其子集不能,則稱該屬性組為候選碼。
主碼( key):若一個關系有多個候選碼,則選定其中一個為主碼。
候選碼的諸屬性稱為主屬性(prime )。
不包含在任何候選碼中的屬性稱為非主屬性(non-prime )。
在最簡單情況下,候選碼只包含一個屬性關系數據庫的邏輯結構,在最極端情況下,關系模式的所有屬性是這個關系模式的候選碼,稱為全碼(all-key)
35、關系代數
關系代數是一種抽象的查詢語言,它用于對關系的運算來表示查詢。按運算符不同可分為傳統的集合運算和專門的關系運算兩類。
傳統集合運算是二目運算,包括并(union)、差()、交()、笛卡爾積( )四種運算
專門的關系運算包括選擇()、投影()、連接(join)、除運算()等
選擇:在關系R中選擇滿足給定條件的諸元組。
投影:從R中選擇若干屬性列組成新的關系。
連接:從兩個關系的笛卡爾積中選取屬性間滿足一定條件的元組。
等值連接:從關系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組。
自然連接:特殊的等值連接。要求兩個關系中進行比較的分量必須是同名的屬性組,并且在結果中把重復的屬性列去掉。
除運算:設關系R除以關系S的結果為關系T,則T包含所有在R但不在S中的屬性及其值,且T的元組與S的元組的所有組合都在R中
36、創建存儲過程
存儲過程是SQL語句和控制語句的預編譯集合,保存在數據庫中,可以調用執行,并且允許用戶聲明變量.邏輯控制語句以及其他強大的編程功能。
創建存儲過程語法:
proc[全稱可以簡寫為proc] 存儲過程的名字
@參數 數據類型 [如果需要默認值就在數據類型后面加上 = 值] [加上后表示該參數是返回的參數]
/如果多個參數則用,號隔開/
as
SQL語句
go
示例:
proc
@id int --創建一個參數
@name (50)=‘小白’ --穿件一個帶默認值小白的參數
@cot int --創建一個返回參數
as
* from user wehre id=@id
go
/穿件一個名為的存儲過程,參數為@id,一個帶默認值為小白的參數,還有一個帶返回的參數/
37、需要查詢兩張表中同時存在的數據用內連接
需要查找兩張表中一張表存在,另一張表不存在的時候使用左外鏈接 或 右外鏈接
38、建立視圖
CREAT VIEW 名稱
AS
SQL語句塊
WITH CHECK ;