考研數據庫系統概論題目整理

數據庫系統概論題目自整理

說複試題目過於牽強,只是自己整理的一些知識點而已,爲了便於理解和背誦,有些部分定義和說明儘量簡明扼要,如有錯誤請多多指教!(不可轉載)

大家覺得有用點點贊啊啊我升到3級就可以自定義標籤了謝謝~

1.試述數據、數據庫、數據庫系統、數據庫管理系統的概念。

( l)數據( Data ) :描述事物的符號記錄稱爲數據。數據的含義稱爲語義,數據與其語義是不可分的。
( 2)數據庫( DataBase,簡稱 DB ) :若干個相互之間有關聯關係的表的集合,表就是關係。數據庫中的數據具有 永久存儲,易擴展,可共享的特點。
( 3)數據庫系統( DataBase Sytem,簡稱 DBS ) :數據庫系統是一個大的環境,是DB+DBMS+DBAP+DBA+計算機基本系統。(DBAP:爲某一個用戶更好的使用數據庫而開發的應用程序)
(4)數據庫管理系統( DataBase Management sytem,簡稱 DBMs ):管理數據庫的一種系統軟件。位於用戶和操作系統之間。DBMS的主要功能包括數據定義功能、數據操縱功能、數據庫的運行管理功能、數據庫的建立和維護功能。

2.數據庫系統的特點

(l)數據結構化 數據庫系統實現整體數據的結構化,這是數據庫的主要特徵之一,也是
數據庫系統與文件系統的本質區別。“整體”的意思是,在數據庫系統中,數據不再針對某一個應用,而是面向全組織,具有整體的結構化。
(2)數據的共享性高,冗餘度低,易擴充 ;數據庫的數據不再面向某個應用而是面向整個
系統,因此可以被多個用戶、多個應用以多種不同的語言共享使用。由於數據面向整個系統,是有結構的數據,不僅可以被多個應用共享使用,而且容易增加新的應用,這就使得數據庫系統彈性大,易於擴充。
數據共享可以大大減少數據冗餘,節約存儲空間,同時還能
夠避免數據之間的不相容性與不一致性。所謂“數據面向某個應用”是指數據結構是針對某
個應用設計的,只被這個應用程序或應用系統使用,可以說數據是某個應用的“私有資源
”。所謂“彈性大”是指系統容易擴充也容易收縮,即應用增加或減少時不必修改整個數據
庫的結構,只需做很少的改動。可以取整體數據的各種子集用於不同的應用系統,當應用需
求改變或增加時,只要重新選取不同的子集或加上一部分數據,便可以滿足新的需求。
( 3)數據獨立性高 數據獨立性包括數據的物理獨立性和數據的邏輯獨立性。數據庫管理系
統的模式結構和二級映像功能保證了數據庫中的數據具有很高的物理獨立性和邏輯獨立性。
(4)數據由 DBMS統一管理和控制 數據庫的共享是併發的共享,即多個用戶可以同時存
取數據庫中的數據甚至可以同時存取數據庫中同一個數據。爲此, DBMS必須提供統一的
數據控制功能,包括數據的安全性保護、數據的完整性檢查、併發控制和數據庫恢復。解析
DBMS數據控制功能包括四個方面:
數據的安全性保護:保護數據以防止不合法的使用造成的數據的泄密和破壞;
數據的完整性檢查:保證數據的正確性和相容性。
併發控制:對多用戶的併發操作加以控制和協調,保證併發操作的正確性;
數據庫恢復:能將數據庫從錯誤狀態恢復到某一已知的正確狀態(亦稱爲完整狀態或一致狀態)。

下面可以得到“什麼是數據庫”的一個定義:
數據庫是長期存儲在計算機內有組織的大量的共享的數據集合,它可以供各種用戶共享,具有最小冗餘度和較高的數據獨立性。 DBMS在數據庫建立、運用和維護時對數據庫進行統一控制,以保證數據的完整性、安全性,並在多用戶同時使用數據庫時進行併發控制,在生故障後對系統進行恢復。數據庫系統的出現使信息系統從以加工數據的程序爲中心轉向圍繞共享的數據庫爲中心的新階段。

3.數據庫管理員的職責

1.決定數據庫中的信息內容和結構;
2.決定數據庫的存儲結構和存取策略;
定義數據庫的安全性要求和完整性約束條件;
3.監控數據庫的使用和運行;
4.數據庫的改進和重組,重構;

4.試述文件系統與數據庫系統的區別和聯繫。

文件系統與數據庫系統的區別是:
文件系統面向某一應用程序,共享性差,冗餘度大,數據獨立性差,記錄內有結構,整體無結構,由應用程序自己控制。
數據庫系統面向現實世界,共享性高,冗餘度小,具有較高的物理獨立性和一定的邏輯獨立性,整體結構化,用數據模型描述,由DBMS統一管理。
文件系統與數據庫系統的聯繫是:文件系統與數據庫系統都是計算機系統中管理數據的軟
件。文件系統是操作系統的重要組成部分;而DBMS是獨立於操作系統的軟件。但是DBMS是在操作系統的基礎上實現的;數據庫中數據的組織和存儲是通過操作系統中的文件系統來實現的。

5.數據模型的層次

數據模型:是對現實世界數據特徵的抽象。可分爲 概念模型,邏輯模型和物理模型
概念模型:用於數據庫設計,是從用戶的角度對數據建模,是現實世界抽象出來的模型。
邏輯模型:用計算機的角度對數據建模,分爲:層次模型,關係模型,網狀模型。
物理模型:描述數據在系統內部的表示方式和存取方法。是對數據最底層的抽象。

6.試述數據模型的概念、數據模型的作用和數據模型的三個要素。

數據模型是對現實世界數據特徵的抽象,是現實世界的模擬。
數據模型是用來描述數據,組織數據和對數據進行操作的。
一般地講,數據模型是嚴格定義的概念的集合。這些概念精確描述了系統的靜態特性、動態特性和完整性約束條件。因此數據模型通常由數據結構、數據操作和完整性約束三部分組成。
( l)數據結構:是描述數據庫組成對象以及對象之間的關係,是對系統靜態特性的描述。
(2)數據操作:是指對數據庫中各種對象的實例允許進行的操作的集合,包括操作及有關的操作規則,是對系統動態特性的描述。
( 3)數據的約束條件:是一組完整性規則的集合。完整性規則是給定的數據模型中數據及
其聯繫所具有的制約和依存規則,用以限定符合數據模型的數據庫狀態以及狀態的變化,
以保證數據的正確、有效、相容。
解析數據模型是數據庫系統中最重要的概念之一。必須通過
《概論》的學習真正掌握數據模型的概念和作用。數據模型是數據庫系統的基礎。任何一個DBMS都以某一個數據模型爲基礎,或者說支持某一個數據模型。數據庫系統中,模型有不同的層次。根據模型應用的不同目的,可以將模型分成兩類或者說兩個層次:一類是概念模型,是按用戶的觀點來對數據和信息建模,用於信息世界的建模,強調語義表達能力,
概念簡單清晰;另一類是數據模型,是按計算機系統的觀點對數據建模,用於機器世界,
人們可以用它定義、操縱數據庫中的數據,一般需要有嚴格的形式化定義和一組嚴格定義了語法和語義的語言,並有一些規定和限制,便於在機器上實現。

7.試述概念模型的作用(待補充)

概念模型實際上是現實世界到機器世界的一箇中間層次。概念模型用於信息世界的建模,是
現實世界到信息世界的第一層抽象,概念模型是整個數據庫設計的基礎。

8.定義並解釋概念模型中以下術語0:實體,實體型,實體集,屬性,碼,實體聯繫圖(E—R圖)

實體:客觀存在並可以相互區分的事物叫實體。
實體型:具有相同屬性的實體具有相同的特徵和性質,用實體名及其屬性名集合來抽象和刻畫同類實體,稱爲實體型。
實體集:同型實體的集合稱爲實體集。
屬性:實體所具有的某一特性,一個實體可由若干個屬性來刻畫。
碼:惟一標識實體的屬性集稱爲碼。
實體聯繫圖( E一 R圖):提供了表示實體型、屬性和聯繫的方法:
·實體型:用矩形表示,矩形框內寫明實體名;
·屬性:用橢圓形表示,並用無向邊將其與相應的實體連接起來;
·聯繫:用菱形表示,菱形框內寫明聯繫名,並用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯繫的類型( 1: 1,1: n或 m: n)。

9.試述網狀、層次、關係模型的優缺點。

層次模型:數據集合之間的聯繫滿足除根節點以外的所有節點有且只有一個雙親結點的條件稱爲層次模型。
優點主要有:
( l)模型簡單。
(2)查詢效率高。
( 3)層次數據模型提供了良好的完整性支持。
缺點主要有:
( l)現實世界中很多聯繫無法用層次模型來描述,如多對多聯繫。
(2)對插入和刪除操作的限制比較多;
(3)查詢子女結點必須通過雙親結點。
網狀數據模型:數據集合之間的聯繫滿足允許多個節點無雙親或者有多個雙親條件成爲網狀模型。
優點主要有:
(1)能夠更爲直接地描述現實世界,如一個結點可以有多個雙親;
(2)具有良好的性能,存取效率較高。
網狀數據模型的缺點主要有:
(1)結構比較複雜。
(2)其 DDL、 DML語言複雜,用戶不容易使用。
(3)由於記錄之間聯繫是通過存取路徑實現的,加重了編寫應用程序的負擔。

關係數據模型:由一組關係組成,一個關係就是一張表。
具有下列優點:
( l)關係模型與非關係模型不同,它是建立在嚴格的數學概念的基礎上的。
( 2)其數據結構簡單、清晰,用戶易懂易用。關係模型的概念單一,無論實體還是實體之間的聯繫都用關係表示,操作的對象和操作的結果都是關係。
( 3)關係模型的存取路徑對用戶透明,從而具有更高的數據獨立性、更好的安全保密性,也簡化了程序員的工作和數據庫開發建立的工作。
關係數據模型最主要的缺點是,由於存取路徑對用戶透明,查詢效率往往不如非關係數據模型。因此爲了提高性能,必須對用戶的查詢請求進行優化,增加了開發數據庫管理系統的難度。

10.試述關係模型的概念,定義並解釋以下術語:

(l)關係(2)屬性(3)域(4)元組 ( 5)主碼(6)分量(7)關係模式
關係模型中無論是實體還是實體間的聯繫均由單一的結構類型——關係來表示。由關係數據結構、關係操作集合和關係完整性約束三部分組成。在用戶觀點下,關係模型中數據的邏輯結構是一張二維表,它由行和列組成。
( l)關係:一個關係對應通常說的一張表;
( 2)屬性:表中的一列即爲一個屬性;
( 3)域:屬性的取值範圍;
( 4)元組:表中的一行即爲一個元組;
( 5)主碼:表中的某個屬性組,它可以惟一確定一個元組;
(6)分量:元組中的一個屬性值;
(7)關係模式:對關係的描述,一般表示爲關係名(屬性 1,屬性 2,…,屬性 n)

10. 試述數據庫系統三級模式結構,這種結構的優點是什麼?

模式:對數據庫中的數據進行的一種結構化的描述。其實就是對數據的結構的抽象。
數據庫系統的三級模式結構由外模式、模式和內模式組成。
外模式,是數據庫用戶能夠看見和使用的局部數據的邏輯結構和特徵的描述,是數據庫用戶的數據視圖。
特點:一個數據庫可以有多個外模式;外模式就是用戶視圖;外模式是保證安全性的一個有力措施。
模式,是數據庫中全體數據的邏輯結構和特徵的描述,是所有用戶的公共數據視圖。
模式描述的是數據的全局邏輯結構。外模式涉及的是數據的局部邏輯結構,通常是模式的子集。
特點:一個數據庫只能有一個模式,是數據庫數據在邏輯上的視圖,數據庫模式以某一個數據模型爲基礎。
內模式,亦稱存儲模式,是數據在數據庫系統內部的表示,即對數據的物理結構和存儲方式的描述。一個數據庫中只能有一個內模式。
爲了能夠在內部實現這三個抽象層次的聯繫和轉換,數據庫系統在這三級模式之間提供了兩層映像:外模式/模式映像和模式/內模式映像。正是這兩層映像保證了數據庫系統中的數據能夠具有較高的邏輯獨立性和物理獨立性。
三級結構的優點
(1)保證數據的獨立性。將模式和內模式分開,保證了數據的物理獨立性;將外模式和模式分開,保證了數據的邏輯獨立性。
(2)簡化了用戶接口。按照外模式編寫應用程序,而不需瞭解數據庫內部的存儲結構,方便用戶使用系統。
(3)有利於數據共享。在不同的外模式下可有多個用戶共享系統中數據,減少了數據冗餘。
(4)利於數據的安全保密。在外模式下根據要求進行操作,不能對限定的數據操作,保證了其他數據的安全。

11.簡述數據庫的二級映像

外模式/模式映像:一個模式可以有多個外模式。當模式改變時,由數據庫管理員對各個外模式/模式的映像做相應改變,可以使外模式保持不變。應用程序是依據數據的外模式編寫的,從而應用程序不必修改,保證了數據與程序的邏輯獨立性,簡稱數據的邏輯獨立性。

模式/內模式映像:模式與內模式映像是唯一的。當數據庫的存儲結構改變了,由數據庫管理員對模式/內模式映像做相應改變,可以使模式保持不變,從而應用程序也不必改變,保證了數據與程序的物理獨立性,簡稱數據的物理獨立性。
數據庫管理系統在三級模式之間提供的兩層映像保證了數據庫系統中的數據能夠具有較高的邏輯獨立性和物理獨立性。

12.數據庫管理系統的功能

( l)數據庫定義功能;定義數據庫中表的格式,DBMS提供DDL給用戶,用戶通過DDL來描述表的結構,DBMS按照用戶的定義創建數據庫和表。
( 2)數據庫操作功能;對數據庫中的表進行操作,DBMS提供DML給用戶,用戶通過DML對錶進行操作,DBMS按照用戶的操作,去實際執行這些操作。
( 3)數據庫控制功能;控制數據庫中數據的使用(哪些用戶可以訪問,那些不可以),DBMS提供DCL給用戶,用戶通過DCL來描述對數據庫所要實施的控制,DBMS按照用戶的描述進行控制。
(4)數據庫維護功能。DBMS提供一系列程序給用戶,這些程序提供了數據庫維護的各種功能,用戶通過這些程序來對數據庫進行維護。

13.試述關係模型的三個組成部分。

關係模式:是關係的結構,關係是關係模式在某一時刻的數據。
關係模型:是關係模式的結構。
關係模型由關係數據結構、關係操作集合和關係完整性約束三部分組成。

14.試述關係數據語言的特點和分類。

答:關係數據語言可以分爲三類:
關係代數語言:一組抽象的查詢語言,他對關係的運算表達查詢。
關係演算語言:元組關係演算語言和域關係演算語言。
SQL:具有關係代數和關係演算雙重特點的語言。
這些關係數據語言的共同特點是,語言具有完備的表達能力,是非過程化的集合操作
語言,功能強,能夠嵌入高級語言中使用。

15.試述關係模型的完整性規則。在參照完整性中,爲什麼外部碼屬性的值也可以爲空?什麼情況下纔可以爲空?

關係模型的完整性規則就是對關係的某種約束條件。可分爲實體完整性,參照完整性,用戶定義的完整性。
實體完整性是針對主碼而言的,關係數據庫中的每一個元組應該是唯一的,可區分的。即若屬性爲主碼,則不能空值。()
參照完整性是針對外碼而言的。用來定義外碼於主碼之間的引用規則。
用戶自定義完整性是某一個應用所涉及的數據必須滿足的語義要求
如果一個屬性是某個關係的外碼,若關係中每個元組的屬性值都爲空值時,屬性可以爲空。

16.數據庫中的幾種關鍵碼元

數據庫中的關鍵碼包括超碼、候選碼、主碼、外碼。
超碼和候選碼是唯一地標示關係中元組的屬性或屬性集,但候選碼中不含有多餘的屬性;
主鍵是從候選碼中選出一個坐老大;
外鍵是指一個關係中包含的另一個關係的主碼所對應的屬性

17.基本的關係操作(查詢,修改,插入,刪除)

查詢的關係運算:
基本的關係運算:選擇,投影,並,差,笛卡爾積
特殊的關係運算:交,除,連接。均可以用基本關係運算表達,可以簡化描述語句

18.試述等值連接與自然連接的區別和聯繫。

連接運算符是“=”的連接運算稱爲等值連接。它是從兩組關係的笛卡爾積中選取屬性值相等的那些元組。
自然連接是一種特殊的等值連接,它要求兩個關係中進行比較的分量必須是相同的屬性組,
並且在結果中把重複的屬性列去掉。

19.試述 SQL語言的特點。

(l)綜合統一。SQL語言集數據定義語言
DDL數據定義語言
DML數據操縱語言
DCL數據控制語言
的功能於一體。
(2)高度非過程化。用 SQL語言進行數據操作,只要提出“做什麼”,而無需指明“怎麼
做”,因此無需瞭解存取路徑,存取路徑的選擇以及 SQL語句的操作過程由系統自動完
成。
(3)面向集合的操作方式。SQL語言採用集合操作方式,不僅操作對象、查找結果可以是元
組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。
(4)以同一種語法結構提供多種使用方式。SQL語言既是自含式語言,又是嵌入式語言。作爲自含式語言,它能夠獨立地用於聯機交互的使用方式;作爲嵌入式語言,它能夠嵌入到
高級語言程序中,供程序員設計程序時使用。
(5)語言簡捷,易學易用。

20.SQL的功能

數據查詢;
數據庫模式創建;
數據的插入刪除;
數據庫安全性與完整性的定義與控制;

21.試述 SQL的定義功能。

SQL語言的定義功能包括定義表,定義視圖,定義索引。
SQL語言通過create table來定義表,通過alter table更新表,通過drop table刪除表;
SQL語言通過create index,drop index 建立索引和刪除索引;
通過create view,drop view建立視圖和刪除視圖。

22.SQL的更新操作有哪些?

SQL的數據更新包括數據插入,數據刪除,數據更改,分別用insert,delete和update語句實現

23.什麼是基本表?什麼是視圖?兩者的區別和聯繫是什麼?

基本表就是本身獨立存在的表,一個關係就對應一張表;
視圖是有一個或多個基本表導出的表,是一個虛表,在數據庫中只存放對視圖的定義,不存放視圖對應的數據,視圖對應的數據仍然存放在相應的基本表中,視圖在概念上與基本表等同,用戶可以像使用基本表那樣使用視圖,視圖可以再定義視圖。

24.視圖的優點作用?

1.可以簡化用戶的操作,是用戶把注意力集中在多關注的數據上面;
2.對重建數據庫提供一定程度的邏輯獨立性,有時儘管數據庫的邏輯結構發生變化,而應用程序不需要改變。
3.對機密數據能提供安全保護,通過對不同用戶定義不同的視圖,使得機密數據可以不出現在某些用戶視圖上。
4.使用戶以多種角度看待同一數據,視圖機制能夠使不同用戶以多種方式看同一數據。

25. 所有的視圖是否都可以更新?爲什麼?

視圖是不實際存儲數據的虛表,因此對視圖的更新,最終要轉換爲對基本表的更新。
因爲有些視圖的更新不能惟一有意義地轉換成對相應基本表的更新,所以,並不是所有的
視圖都是可更新的.
基本表的行列子集視圖一般是可更新的。若視圖的屬性來自集函數、表達式,則該視圖
肯定是不可以更新的。

26.簡述索引,索引的作用是什麼?

索引:能夠快速定位到所要查詢的內容,用戶可以根據應用環境的需要在基本表上建立一個或多個索引,以提供多種存取路徑,加快查找速度。

27.Where和having語句的區別

區別在於作用對象不同,where子句作用於基本表和視圖,從中選擇滿足條件的元組,having與group by連用,group by將查詢結果分組,having從中選擇滿足條件的元組。Where子句中不能使用聚合函數作爲條件表達式。

28.聚焦函數有哪些?

Count():返回某列的列數
Avg():返回某列的平均值
Sum():返回某列的總數
max():返回某列的最大值
Min():返回某列的最小值

29.簡述連接查詢

連接查詢:如果一個查詢同時涉及兩個以上的表。
包括:等值連接查詢(使用連接運算符‘=’),自然連接查詢(特殊的等值連接,在結果中把重複的屬性列去掉),非等值連接查詢(不用‘=’),自身連接查詢(一個表與自身連接),外連接查詢(把懸浮元組也保存在查結果中)等。
懸浮元組:自然連接中被捨棄的那些元組被稱爲懸浮元組。(左連接,右連接)

30.Exists謂詞的子查詢

Exists代表存在量詞,帶有exist是謂詞的子查詢不返回任何數據,只產生邏輯真和邏輯假值。

31.集合查詢

集合查詢包括:並操作union,交操作intersect,差操作except。
參加集合操作的各查詢結構必須列數相同,對應項的數據類型也必須相同。

32.數據庫安全性是什麼?

保護數據庫防止因爲不合法的操作而造成數據庫數據的泄露,更改或破壞。

33.爲什麼需要對數據庫的安全性控制?

存在一些不安全的因素:
非授權用戶對數據庫的惡意存取和破壞,
數據庫中重要或敏感的數據被泄露,
安全環境的脆弱性。

34.數據庫安全性和計算機系統的安全性有什麼關係?

數據庫安全性是計算機系統安全性的一部分,兩者是緊密聯繫,相互支持的。
安全性問題不是數據庫系統所獨有的,所有計算機系統都有這個問題。只是在數據庫系
統中大量數據集中存放,而且爲許多最終用戶直接共享,從而使安全性問題更爲突出。

35.試述實現數據庫安全性控制的常用方法和技術。

1.用戶身份鑑別;系統提供一定的方式讓用戶標識自己的身份,每次用戶要求進入系統時,系統進行覈實用戶的身份,成功才能提供系統的使用權。(靜態口令鑑別,動態口令鑑別,生物特徵鑑別,智能卡鑑別)
2.存取控制;確保只授權給有資格的用戶訪問數據庫的權限,同時令所有未被授權的用戶無法接近數據。包括定義用戶權限和合法權限檢查兩部分。
(1).定義用戶權限,將用戶權限登記到數據字典中。
(2).合法權限檢查,當用戶發出操作請求後,系統根據數據字典的安全性規則對其進行合法權限檢查。
3.視圖機制;爲不同的用戶定義不同的視圖,把數據對象限定在一定範圍內。
4.審計;審計功能是把用戶對數據庫的操作自動記錄下來放到審計日誌中,審計員利用審計日誌來監控數據庫的各種行爲,可以重現導致數據庫現有狀況的一系列操作,找出非法事件。
5. 數據加密;根據一定的算法將數據變爲密文,使不知道解密算法的人不知道數據的內容。

36.什麼是數據庫中的自主存取控制方法和強制存取控制方法?

自主存取控制方法:定義各個用戶對不同數據對象的存取權限,當用戶對數據庫進行訪問時,先檢查用戶的存取權限。
強制存取控制方法:每一個數據對象被強制的標以一定的密級,每一個用戶也被強制的授予某一級別的許可證,系統規定只有某一許可證級的用戶才能訪問某一密級的數據對象。

37.試述TcsEC ( TDI)將系統安全級別劃分爲4組7個等級的基本內容。

TCSEC ( TDI)將系統劃分爲四組(division ) 7個等級,依次是D、C( C1, C2)、B ( B1 , B2 ,B3)、A( A1) ,按系統可靠或可信程度逐漸增高。
D級
D級是最低級別。一切不符合更高標準的系統,統統歸於D組。
Cl級只提供了非常初級的自主安全保護。能夠實現對用戶和數據的分離,進行自主存取控
制( DAC ),保護或限制用戶權限的傳播。
C2級實際是安全產品的最低檔次,提供受控的存取保護,即將Cl級的 DAC進一步細化,
以個人身份註冊負責,並實施審計和資源隔離。
Bl級標記安全保護。對系統的數據加以標記,並對標記的主體和客體實施強制存取控制
( MAC)以及審計等安全機制。
B2級結構化保護。建立形式化的安全策略模型並對系統內的所有主體和客體實施
DAC和MAC。
B3級安全域。該級的TCB必須滿足訪問監控器的要求,審計跟蹤能力更強,並提供系統恢
復過程。
A1級驗證設計,即提供B3級保護的同時給出系統的形式化設計說明和驗證以確信各安全
保護真正實現。

38.數據加密的方式?

數據加密:原始數據——明文變換爲不可直接識別的格式——密文。
存儲加密:基於數據庫內核的數據存儲加密、解密方法性能好,安全完備性高。
透明:採用內核級加密保護方式
非透明:採用加密函數實現

傳輸加密:鏈路加密:對報文和報頭均加密。
端到端加密:只加密報文,不加密報頭

38.自主存取控制

引用某博主的思維導圖,完整導圖鏈接在文章末尾
引用某博主的思維導圖,完整導圖鏈接在文章末尾

40.授權與回收

Grant:grant 權限 on 對象類型 對象名 to 用戶
Revoke:revoke 權限 on 對象類型 對象名 to 用戶

41.簡述數據庫角色,數據庫角色的作用

數據庫角色:數據庫角色就是權限的集合,是被命名的一組與數據庫操作相關的權限。
作用:可以爲一組具有相同權限的用戶創建一個角色,來簡化授權的過程。當某個用戶需要角色的權限時,只需要將用戶添加爲該角色成員,不需要時就從角色中刪除,不用反覆的對某個用戶單獨的授予,廢除權限。權限在用戶成爲角色成員時自動生效。

42.爲什麼強制存取控制提供了更高級別的數據庫安全性?

強制存取控制是對數據本身進行密級標記,無論數據怎麼變化,數據和標記都是一個不可分的整體,只有符合密級標準的用戶才能夠訪問數據,所以提供了更高級別的數據庫安全性保護。

43.理解並解釋強制存取控制機制中主體、客體、敏感度標記的含義。

主體是系統中的活動實體,既包括 DBMS所管理的實際用戶,也包括代表用戶的各進程。
客體是系統中的被動實體,是受主體操縱的,包括文件、基表、索引、視圖等。對於主體和客體,DBMS爲它們每個實例(值)指派一個敏感度標記(Label)。
敏感度標記被分成若干級別,例如絕密(Top Secret)、機密(Secret)、可信
( Confidential)、公開( PubliC)等。主體的敏感度標記稱爲許可證級別,客體的敏感度標記稱爲密級。

44.什麼是數據庫的完整性?

數據庫的完整性是指數據的正確性,完整性和相容性。

45.數據庫的完整性概念與數據庫的安全性概念有什麼區別和聯繫?

數據庫的完整性和數據庫的安全性是兩個不同的概念但是還有一定的聯繫,數據庫的安全性防止因爲不合法的操作而造成數據庫數據的泄露,更改或破壞。數據庫的完整性就是保證數據庫中不出現不合語義的數據,防止錯誤信息的輸入輸出造成無效操作或錯誤後果,也就是說,完整性措施防範的對象是不合語義的數據,安全性措施防範的對象是非法用戶和非法操作。

46.DBMS的完整性控制機制應具有哪些功能?

定義功能:DBMS應該能提供定義完整性約束條件的機制;
檢查功能:能夠檢查一個操作是否違背了完整性約束條件;
違約反應:如果發現用戶的操作使數據違背了完整性約束條件,系統能夠採取一定的動作來保證數據的完整性。

47.關係數據庫管理系統在實現參照完整性時需要考慮哪些方面?

48.關係系統中,當操作違反實體完整性、參照完整性和用戶定義的完整性約束條件時,一般是如何分別進行處理的?

對於違反實體完整性和參照完整性的操作一般會拒絕執行;
當操作違反定義的完整性約束條件時,一般會執行一些相應的操作來保證數據庫的正確性。

49.引用某博主的思維導圖,完整鏈接在文章末尾

50.什麼是斷言?斷言的作用?(create assertion)

斷言也是一種約束,是對數據庫操作必須滿足的條件,創建斷言之後,任何對數據庫關係的操作都會觸發對斷言的檢查,任何使斷言爲假的操作都會被拒絕執行。

51.什麼是觸發器,觸發器的作用?

觸發器就是用戶定義的一類由事件驅動的特殊過程,也就是說,當對一張表進行操作時,自動觸發了預先定義的若干SQL語句的執行。和約束類似,但是比約束靈活,能夠實施更爲複雜的檢查和操作。

52.觸發器的定義

Create trigger 觸發器名 //創建觸發器名
before/after 觸發事件 on 表名 //觸發時機
Reference new row/old row as 變量 //聲明變量
for each row/each statement //作用範圍
when 觸發條件 觸發動作體
(each row:觸發動作體多次 each statement:觸發動作體一次)

Drop trigger 觸發器名 on 表名

數據庫的規範化理論

規範化的目的:尋求解決某些關係模式存在插入,刪除異常,以及修改複雜,數據冗餘的問題,
規範化的基本思想是 逐步消除數據依賴中不合適的部分,使模式中的各關係模式滿足“一事一地”的模式設計原則。(一項信息只存一次,一項加工只做一次)
1.理解並給出下列術語的定義:
數據依賴,函數依賴、部分函數依賴、完全函數依賴、傳遞依賴、候選碼、主碼、外碼、全碼、1 NF、2NF、3NF、BCNF、多值依賴、4NF。
數據依賴:是一個關係內部屬性與屬性之間的一種約束關係;
函數依賴:設R(U)是屬性集U的關係模式,X,Y是U的子集,如果對於R的任意一個關係中不可能存在兩個元組在X上的屬性值相等,而在Y的屬性值不等,就稱Y依賴於X。
非平凡函數依賴:對於X—>Y,但是Y不是X的子集時,就稱X—>Y爲非平凡的函數依賴;
平凡函數依賴:當關系中屬性集合Y是X的子集時,存在函數依賴X—>Y,就稱X—>Y爲平凡函數依賴;
完全函數依賴:設X,Y是關係R的兩個屬性集合,存在X→Y,但對X的任意一個真子集X’都有X’!→Y,則稱Y完全函數依賴於X;
部分函數依賴:設X,Y是關係R的兩個屬性集合,存在X→Y,若X’是X的真子集,存在X’→Y,則稱Y部分函數依賴於X。
傳遞依賴:設X,Y,Z是關係R中互不相同的屬性集合,存在X→Y(Y !→X),Y→Z,則稱Z傳遞函數依賴於X。
候選碼:表中可以唯一確定一個元組的某個屬性(或者屬性組),如果這樣的碼有不止一個,那麼大家都叫候選碼,我們從候選碼中挑一個出來做老大,它就叫主碼。
全碼:如果一個碼包含了所有的屬性,這個碼就是全碼。
主屬性:一個屬性只要在任何一個候選碼中出現過,這個屬性就是主屬性。
非主屬性:與上面相反,沒有在任何候選碼中出現過,這個屬性就是非主屬性。
外碼:一個屬性(或屬性組),它不是碼,但是它別的表的碼,它就是外碼。
1NF:關係中的每個分量都是不可分的數據項,即屬性不可分,只要是關係數據庫那就是第一範式;1NF要求關係中不能有複合屬性多值屬性及其組合。
2NF:滿足1NF,(並且每一個主屬性完全函數依賴於任何一個候選碼。)消除了非主屬性對候選碼的部分依賴,減少了數據冗餘以及數據庫設計與應用過程中不一致的問題。
比如有兩個主鍵,不能存在這樣的屬性,它只依賴於其中一個主鍵,這就是不符合第二範式 學生表(學生號,學生名,年齡,課程號,課程地址)
3NF:滿足2NF,(沒有傳遞函數依賴。)消除了非主屬性對候選碼的傳遞依賴。
爸爸資料表(爸爸,兒子,女兒,女兒的海綿寶寶,女兒的派大星)
BCNF:滿足3NF,排除了任何屬性對候選碼的傳遞依賴和部分依賴。意味着在關係模式中每一個決定因素都包含候選碼。(若一個關係達到了第三範式,並且它只有一個候選碼,或者它的每個候選碼都是單屬性,則該關係自然達到BC範式。)
多值依賴:在關係模式中,函數依賴不能表示屬性值之間的一對多關係,這些屬性之間有些雖然沒有直接關係,但存在間接關係,把沒有直接關係,但有間接關係的稱爲多值依賴的數據依賴。(多值依賴:Y->->X 且X存在t[X]和u[X]
通俗點講:
"多值依賴"說白了就是"一夫多妻"制 一個男人[Y]可以有老婆[X]但是老婆可以是t[X]和u[X]就是兩個人或者多個
"函數依賴"就是"一夫一妻"制一個男人只能有老婆但是隻能是一個人
由上可理解"一夫一妻"制也是"一夫多妻"的一種,因爲"一夫多妻"你可以只能娶一個老婆
"函數依賴"就是"多值依賴"的特殊情況)
4NF:消除了非主屬性對候選碼以外屬性的多值依賴。(要求把同一表內的多對多關係刪除。)
5NF:從最終結構重新建立原始結構。

數據依賴的公理系統

邏輯蘊涵:設F爲關係模式R的一組函數依賴,X,Y是R的屬性子集,如果從F中的函數依賴能夠推導出X→Y,就稱F邏輯蘊涵X→Y。
函數依賴集閉包:被F邏輯蘊涵的所有函數依賴集合被稱爲F的閉包,記爲F+;
Armstrong公理系統的推理規則:
A1 自反律
A2 增廣律
A3 傳遞律
有這三條推理規則可以得出 合併規則 僞傳遞規則 分解規則
把自反律,增廣律,傳遞律稱爲Armstrong公理系統。Armstrong公理系統是有效的,完備的。 有效性是指從F出發根據公理系統推導出來的每一個函數依賴都一定在F+中;
完備性是指F+中的每一個函數依賴,必定可以用F根據公理系統推導出來。
屬性集閉包:F+中所有X→A的A的集合稱爲X的閉包,記爲X+。可以理解爲X+表示所有X可以決定的屬性。
判定X→Y是否能由F根據公里推導出的問題就轉換爲求X+,判定Y是否爲X+的子集的問題。
最小覆蓋:滿足下列條件的邏輯蘊涵F稱爲最小覆蓋
1.每個函數依賴的右端是單一屬性;
2.每個函數依賴都是不可或缺的;
3.每個函數依賴的左端沒有多餘的屬性;

每個函數依賴集都有等價的最小覆蓋F’。

53.試舉出3個多值依賴的實例。

54.數據庫設計的特點?

(1)三分技術,七分管理,十二分基礎數據:在數據庫開發的過程中,技術固然重要,然而管理更加重要。十二分基礎數據則強調了數據的收集,整理,組織和不斷更新是數據庫建設中的重要環節。
(2)結構設計和行爲設計相結合:在整個設計過程中應該把數據庫結構設計和對數據的處理設計密切結合起來。

55.怎麼進行數據庫設計?數據庫設計的方法有哪些?

E-R模型,第三範式,統一建模語言…

56.試述數據庫設計過程以及數據庫設計過程各個階段上的設計描述。

各階段的設計要點如下:
( l)需求分析:準確瞭解與分析用戶需求(包括數據與處理)。
( 2)概念結構設計:通過對用戶需求進行綜合、歸納與抽象,形成一個獨立於具體DBMS的概念模型。
( 3)邏輯結構設計:將概念結構轉換爲某個 DBMS所支持的數據模型,並對其進行優化。
( 4)數據庫物理設計:爲邏輯數據模型選取一個最適合應用環境的物理結構(包括存儲結構和存取方法)。
( 5)數據庫實施:設計人員運用 DBMS提供的數據語言、工具及宿主語言,根據邏輯設計和物理設計的結果建立數據庫,編寫與調試應用程序,組織數據入庫,並進行試運行。
( 6)數據庫運行和維護:在數據庫系統運行過程中對其進行評價、調整與修改。

57.試述數據庫設計過程中結構設計部分形成的數據庫模式。

數據庫結構設計的不同階段形成數據庫的各級模式,即:
(1)在概念設計階段形成獨立於機器特點,獨立於具體DBMS的概念模式,比如E-R圖。
(2)在邏輯設計階段將E-R圖轉換爲具體DBMS所支持的數據模型,就是關係模型。
(3)在物理設計階段,根據DBMS特點和處理的需要,進行物理存儲安排,建立索引,形成數據庫內模式。

58.需求分析階段的設計目標是什麼?調查的內容是什麼?

設計目標就是通過詳細調查現實世界所要處理的對象,充分了解原系統的狀況,明確用戶的各種需求,然後在此基礎上確定新系統的功能。
調查的內容是“數據’和“處理”,即獲得用戶對數據庫的如下要求:
(1)信息要求,即在數據庫中需要存儲哪些數據;
(2)處理要求,指用戶要完成什麼處理功能,對處理的響應時間有什麼要求,處理方式是批處理還是聯機處理;
(3)安全性與完整性要求。

59.簡述數據字典及其作用?

數據字典是對數據的描述,即元數據(描述數據的數據)而不是數據本身,在需求分析階段建立。
作用:作爲分析階段的工具,任何字典最重要的作用就是供人查詢對不瞭解的條目的解釋,在結構化分析中,數據字典的作用是給數據流圖上每個成分加以定義和說明。是概念設計的基礎。

60.什麼是數據庫的概念結構?試述其特點和設計策略。

概念結構是信息世界的結構,也就是概念模型。特點:
能夠真實,充分的反映現實世界。
易於理解。
易於擴展。
易於向層次,網狀,關係模型等轉換。
概念結構的設計策略通常有四種:
(1)自頂向下;先定義全局概念結構的框架,再逐步細化。
(2)自底向上;先定義局部概念結構,然後再將它們集成起來,形成全局概念結構。
(3)逐步擴張;先定義核心的概念結構,然後再逐步向外擴張生成其他概念結構,最後得出總體概念結構。
(4)混合策略;將自頂向下和自底向上相結合。

61.E-R模型

實體:實體性用矩形表示。
屬性:屬性用橢圓形表示。
實體之間的聯繫:聯繫用菱形表示。

62.什麼叫數據抽象?

數據抽象就是對客觀事物進行人爲處理,抽取所關心的共同特性,忽略非本質的細節,並將這些特性用各種概念精確地加以描述,這些概念就組成了某種模型。

63.試述數據庫概念結構設計的重要性和設計步驟。

數據庫概念設計是整個數據庫設計的關鍵,將在需求分析階段得到的用戶需求先抽象爲概念結構,以此作爲各種數據模型的共同基礎,從而能使DBMS更好的實現這一需求。
設計步驟:
概念結構設計方法有很多種,最常用的是自底向上方法
(1)先抽象數據並設計局部視圖
(2)再集成局部視圖形成全局概念結構。

64.ER方法的數據庫概念設計包括以下步驟

設計局部ER模式;設計全局ER模式;全局ER模式的優化

65.爲什麼要視圖集成?視圖集成的方法是什麼?

對數據庫概念設計一般採用自底向上的方法,把大系統分解成子系統,先設計出子系統的局部視圖,然後再把局部視圖有機的融合形成一個系統的總視圖。由於數據庫系統是從整體的角度去看待和描述數據的,因此數據不再面向某一個應用而是面向整個系統,通過視圖集成可以使數據庫能被全系統的多個用戶,多個應用所使用。
視圖集成的兩種方式:
(1)一次集成:將多個分E-R圖一次集成;
(2)逐個集成:採用累加的方式一次集成兩個E-R圖。
無論採用哪種方式,每次集成局部E-R圖都需要分兩步走
(1)合併;解決各分E-R圖之間的衝突,合併成爲初步E-R圖。
(2)修改和重構;消除不必要的冗餘,生成基本的E-R圖。

66.什麼是數據庫的邏輯結構設計?試述其設計步驟。

數據庫的邏輯結構設計就是把概念結構設計階段設計好的基本E-R圖轉換爲與選用的 DBMS產品所支持的數據模型相符合的邏輯結構。
設計步驟爲 :
( l)將概念結構轉換爲一般的關係、網狀、層次模型;
( 2)將轉換來的關係、網狀、層次模型向特定 DBMS支持下的數據模型轉換;
( 3)對數據模型進行優化。

67.規範化理論對數據庫設計有什麼指導意義?

規範化理論爲數據庫設計人員判斷關係模式的優劣提供了理論標準。可用以指導關係
數據模型的優化,使數據庫設計工作有了嚴格的理論基礎。

68.試述數據庫物理設計的內容和步驟。

數據庫在物理設備上的存儲結構與存取方法稱爲數據庫的物理結構,它依賴於給定的
DBMS。爲一個給定的邏輯數據模型選取一個最適合應用要求的物理結構,就是數據庫的
物理設計的主要內容。數據庫的物理設計步驟通常分爲兩步:
( l)確定數據庫的物理結構,在關係數據庫中主要指存取方法和存儲結構;
(2)對物理結構進行評價,評價的重點是時間效率和空間效率。

69.數據輸入在實施階段的重要性是什麼?如何保證輸入數據的正確性?

數據庫的實施階段包括兩個很重要的工作:數據的輸入和應用程序的設計。
數據庫是用來對數據進行存儲,管理和應用的,因此在實施階段必須將原系統中的數據輸入到數據庫中,數據量一般都很大,而且原系統中的數據的組織方式,結構和格式都與新創建的數據庫系統有很大的差距,數據輸入必須將原數據從各個局部應用中抽取出來,分類轉換成符合新數據庫系統格式的數據,輸入數據庫。
保證輸入數據正確性的方法:爲提高數據輸入工作的效率和質量,應該針對具體的應用環境設計一個數據錄入子系統,由計算機來完成數據入庫的任務。在源數據入庫之前要採用多種方法對它們進行檢驗,以防止不正確的數據入庫。
數據庫應用程序的設計應該與數據庫的設計同步進行,在組織數據入庫的同時還要調試應用程序。

70.什麼是數據庫的再組織和重構造?爲什麼要進行數據庫的再組織和重構造?

數據庫的再組織是指:按原設計要求重新安排存儲位置、回收垃圾、減少指針鏈等,以
提高系統性能。
數據庫的重構造則是指:部分修改數據庫的模式和內模式,即修改原設計的邏輯和物理結構。數據庫的再組織是不修改數據庫的模式和內模式的。
進行數據庫的再組織和重構造的原因:數據庫運行一段時間後,由於記錄不斷增、刪、改,會使數據庫的物理存儲情況變壞,降低了數據的存取效率,數據庫性能下降,這時DBA就要對數據庫進行重組織。數據庫應用環境常常發生變化,如增加新的應用或新的實體,取消了某些應用,有的實體與實體間的聯繫也發生了變化等,使原有的數據庫設計不能滿足新的需求,需要調整數據庫的模式和內模式。這就要進行數據庫重構造。

71.嵌入式SQL

把SQL語言嵌入到某種高級語言中,SQL語句用來存取數據庫中的數據,主語言用來控制程序流程以及對取出的數據做進一步處理。

72.SQL的執行方式

靜態SQL:提交的SQL語句和查詢條件是事先寫好且固定的。
動態SQL:在執行時才能確定要提交的SQL語句和查詢的條件。在運行過程中臨時“組裝”SQL語句。
本質區別:靜態是固定的,針對的對象和問題是不變的,動態是可變的,是根據具體問題生成字符串解決問題的方法,具有靈活性。

73.如何將SQL檢索的結果傳給宿主語言進行處理?

單行處理:查詢結果爲單行記錄,將結果直接傳送到宿主程序的變量中。
多行處理:查詢結果爲多行記錄,通過遊標將多條記錄一次一條的傳送給主程序處理。

74.什麼是遊標?作用是什麼?

遊標:是系統爲用戶開設的數據緩衝區,用來存放SQL語句的執行結果。
作用:用戶可以通過遊標逐一獲取記錄並交付給主變量進行進一步處理,實現多行處理。

75.過程化SQL

定義:過程化SQL是對SQL的擴充,使其增加了過程化的語句。過程化SQL程序的基本結構是塊,所有的過程化SQL程序都是由塊組成的,這些塊之間可以相互嵌套,每個塊完成一個邏輯操作。
過程化SQL塊的類型:命名塊,匿名塊
命名塊:編譯後保存在數據庫中,可被反覆調用。
匿名塊:每次執行都要進行編譯,不能保存在數據庫中,也不能被調用。

76.什麼是函數?

用戶自己使用過程化SQL設計定義的函數,與存儲過程類似,區別在於,函數必須制定返回的類型。

77.什麼是存儲過程?

存儲過程是由過程化SQL語句書寫的過程,這個過程經過編譯和優化後存儲在數據庫服務器中,使用時調用即可。
優點:運行效率高;降低了客戶與服務器之間的通信量。

78.查詢處理以及查詢處理的步驟

查詢處理:是DBMS執行查詢語句的過程,任務是把用戶提交給DBMS的查詢語句轉換爲高效的查詢執行計劃。
步驟:
(1)查詢分析;對查詢語句進行掃描,判斷查詢語句是否符合SQL語法規則。
(2)查詢檢查;對合法的查詢語句進行語義檢查。
(3)查詢優化;選擇一個高效執行的查詢處理策略。
(4)查詢執行;根據優化器得到的執行策略生成查詢執行計劃。

79.試述查詢優化在關係數據庫系統中的重要性和可能性。

重要性:它減輕了用戶的負擔。用戶只要提出“幹什麼”,不必指出“怎麼幹”。查詢優化的優點不僅在於用戶不必考慮如何最好地表達查詢以獲得較好的效率,而且在於系統可以比用戶程序的“優化’做得更好。

可能性:這是因爲:
(l)優化器可以從數據字典中獲取許多統計信息,優化器可以根據這些信息選擇有效的執行計劃,而用戶程序則難以獲得這些信息。
( 2)優化器可以考慮數十甚至數百種不同的執行計劃,從中選出較優的一個,而程序員一般只能考慮有限的幾種可能性。
( 4)優化器中包括了很多複雜的優化技術,這些優化技術往往只有最好的程序員才能掌握。系統的自動優化相當於使得所有人都擁有這些優化技術。

80.查詢優化的步驟

太長建議看課本理解

81.查詢優化的方法

代數優化:是指關係代數表達式的優化。
物理優化:對存取路徑和底層操作算法的優化。

82.試述事務的概念及事務的ACID4個特性。

事務是用戶定義的一個數據庫操作序列,這些操作要麼全做要麼全不做,是一個不可分割
的工作單位。
事務具有4個特性:
原子性(Atomicity)、一致性(consistency)、隔離性( Isolation)和永久性( Durability)。這 4個特性也簡稱爲 ACID特性。
原子性:事務是數據庫的邏輯工作單位,事務中包括的諸操作要麼都做,要麼都不做。
一致性:事務執行的結果必須是使數據庫從一個一致性狀態變到另一個一致性狀態。
隔離性:一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對其他
併發事務是隔離的,併發執行的各個事務之間不能互相干擾。
永久性:指一個事務一旦提交,它對數據庫中數據的改變就應該是永久性的。接
下來的其他操作或故障不應該對其執行結果有任何影響。

83.事務故障恢復的步驟

1.從頭到尾掃描日誌文件,找出故障發生前已經提交的事務,將其事務標識放入重做隊列;找出故障發生時沒有完成的事務,將事務標識放入撤銷隊列。
2.對撤銷隊列的事務進行撤銷操作
3.對重做隊列的事務進行重做操作

84.數據庫中爲什麼要有恢復子系統?它的功能是什麼?

因爲計算機系統中硬件的故障、軟件的錯誤、操作員的失誤以及惡意的破壞是不可避免的,
這些故障輕則造成運行事務非正常中斷,影響數據庫中數據的正確性,重則破壞數據庫,
使數據庫中全部或部分數據丟失,因此必須要有恢復子系統。
恢復子系統的功能是:把數據庫從錯誤狀態恢復到某一已知的正確狀態(亦稱爲一致狀態
或完整狀態)。

85.數據庫運行中可能產生的故障有哪幾類?哪些故障影響事務的正常執行?哪些故障破壞數據庫數據?

數據庫系統中可能發生各種各樣的故障,大致可以分以下幾類:
( 1)事務內部的故障;
( 2)系統故障;
( 3)介質故障;
( 4)計算機病毒。
事務故障、系統故障和介質故障影響事務的正常執行;介質故障和計算機病毒破壞數據庫數
據。

86.數據庫恢復的基本技術有哪些?

數據轉儲:數據庫管理員定期的將數據庫複製到磁盤等存儲介質保存起來的過程。

登錄日誌文件:用來記錄用戶對數據庫更新操作的文件。
當系統運行過程中發生故障,利用轉儲的數據庫後備副本和日誌文件就可以將數據庫恢復
到故障前的某個一致性狀態。

87.什麼是日誌文件?爲什麼要設立日誌文件?

日誌文件:是用來記錄用戶對數據庫更新操作的文件。
作用:可以將數據庫恢復到故障前的某一個一致性狀態。
登記日誌文件必須遵循的原則:
(1)登記的次序嚴格按照併發事務執行的次序。
(2)必須先寫日誌文件再寫數據庫。

88.什麼是檢查點記錄?檢查點記錄包括哪些內容?

在日誌文件中增加一種新的記錄,增加一個重新開始文件,並讓恢復子系統在登陸日誌文件期間動態的維護日誌。
它的內容包括:
①建立檢查點時刻所有正在執行的事務清單
②這些事務的最近一個日誌記錄的地址。

89.具有檢查點的恢復技術有什麼優點?

利用日誌技術進行數據庫恢復時,一般來說,需要檢查所有日誌記錄。這樣做有兩個問題:一是搜索整個日誌將耗費大量的時間;二是很多需要重做處理的事務實際上已經將它們的更新操作結果寫到數據庫中了,恢復子系統又重新執行了這些操作,浪費了大量時間。檢查點技術就是爲了解決這些問題。提高恢復效率。

90.什麼是數據庫鏡像?它有什麼用途?

數據庫鏡像即根據DBA的要求,自動把整個數據庫或者其中的部分關鍵數據複製到另一個
磁盤上。每當主數據庫更新時,DBMS自動把更新後的數據複製過去,即
DBMS自動保證鏡像數據與主數據的一致性。
數據庫鏡像的用途有:
一是用於數據庫恢復。當出現介質故障時,可由鏡像磁盤繼續提供使用,同時
DBMS自動利用鏡像磁盤數據進行數據庫的恢復,不需要關閉系統和重裝數據庫副本。
二是提高數據庫的可用性。在沒有出現故障時,當一個用戶對某個數據加排它鎖進行修改時,
其他用戶可以讀鏡像數據庫上的數據,而不必等待該用戶釋放鎖。

91.什麼是封鎖?基本的封鎖類型有幾種?試述它們的含義

封鎖就是事務T在對某個數據對象例如表、記錄等操作之前,先向系統發出請求,對其加鎖。加鎖後事務T就對該數據對象有了一定的控制,在事務T釋放它的鎖之前,其他的事務不能更新此數據對象。封鎖是實現併發控制的一個非常重要的技術。
基本的封鎖類型有兩種:排它鎖( Exclusive Locks,簡稱 x鎖)和共享鎖( ShareLocks,簡稱 S鎖)。
排它鎖又稱爲寫鎖。若事務T對數據對象 A加上 X鎖,則只允許T讀取和修改A,其他任何事務都不能再對 A加任何類型的鎖,直到T釋放A上的鎖。這就保證了其他事務在 T釋放A上的鎖之前不能再讀取和修改A。
共享鎖又稱爲讀鎖。若事務T對數據對象 A加上 S鎖,則事務T可以讀 A但不能修改A其他事務只能再對A加 S鎖,而不能加 X鎖,直到T釋放A上的 S鎖。這就保證了其他事務可以讀 A,但在 T釋放A上的 S鎖之前不能對 A做任何修改。

92.意向鎖

意向鎖:如果對一個結點加意向鎖,則說明該結點的下層節點正在被加鎖;對任意一個結點加鎖時,必須對它的上層結點加意向鎖。

93.併發控制

併發操作會帶來數據的不一致性:
丟失修改:兩個事務對同一數據進行修改,一個事務可能會對另一個事務的修改覆蓋。
不可重複讀:一個事務讀取數據之後,另一個事務對數據進行更新,那個事務無法重現原來的數據。
讀“髒”數據:事務讀到的數據與數據庫中的數據不一致。
產生的原因:事務的操作破壞了事務之間的隔離性。
併發控制的主要技術:
封鎖,時間戳,樂觀控制法等等

94.死鎖的診斷和解除

死鎖的診斷與解除
  超時法:如果一個事務等待時間超過了規定的時限,就認爲該事務發生了死鎖。解除死鎖的辦法: 將其撤銷
  等待圖法:用事務等待圖動態反映所有事務的等待情況。 解除死鎖:選擇一個處理代價最小的事務,將其撤銷,並釋放該事務所持有的所有鎖,使其它事務能繼續運行下去

95.兩段鎖協議是:

兩段鎖協議是指所有事務必須分兩個階段對數據項加鎖和解鎖:

  1. 在對任何數據進行讀、寫操作之前,要申請並獲得對該數據的封鎖。
  2. 每個事務中,所有的封鎖請求先於所有的解鎖請求。
    作用: 若併發執行的所有事務均遵循兩段鎖協議,則對這些事務的任何併發調度策略都是可串行化的。可串行化是事務正確調度的準則。

96.什麼是可串行化?作用是啥?

多個事務的併發執行是正確的,當且僅當其結果與按某一次序串行執行這些事務的結果相同,稱這種調度策略爲可串行化調度。可串行化是事務正確調度的準則。

97.三級封鎖協議

簡述三級封鎖協議的內容以及不同級別的封鎖協議能解決哪些數據不一致性問題

一級封鎖協議是: 事務T在修改數據R之前必須先對其加X鎖,直到事務結束才釋放/一級封鎖協議能夠解決“丟失修改”問題

二級封鎖協議是:在一級封鎖協議的基礎上增加上事務T在讀取數據R之前必須先對其加S鎖,讀完即可釋放S鎖。二級封鎖協議不僅可以解決“丟失修改”問題,而且可以解決讀“髒”數據問題

三級封鎖協議是: 在一級封鎖協議的基礎上增加上事務T在讀取數據R之前必須先對其加S鎖,直到事務結束才釋放。三級封鎖協議不僅解決了“丟失修改”、讀“髒”數據問題,而且進一步解決了“不可重複讀”問題

98.什麼是死鎖?請給出預防死鎖的若干方法

如果事務T1封鎖了數據R1,事務T2封鎖了數據R2。T1又申請封鎖數據R2,因爲數據R2已被事務T2封鎖,所以事務T1需要等待。T2又申請封鎖數據數據R1,因爲數據R1已被數據T1封鎖,所以事務T2需要等待。事務T1和T2相互等待而永不能結束,形成死鎖
預防死鎖發生通常可以有兩種方法
一次封鎖法:要求每個事務必須一次將所用到的所有數據全部加鎖,否則就不能執行
順序封鎖法: 預先對數據對象規定一個封鎖順序,所有事務都按照這個順序實行封鎖

99.相關子查詢

如果子查詢的查詢條件依賴於父查詢,這類子查詢稱爲相關子查詢。

數據庫系統概論可能是我大學學過的最難的一門課,建議大家去看大學生MOOC戰德臣教授講的數據庫,通俗易懂非常有用!

同樣數據庫和思維導圖一起食用口味更佳

整理不易拜託大家多點點關注和收藏吧謝謝啦!

思維導圖鏈接在這

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章