数据库知识点汇总
數(shù)據(jù)庫簡答題
1、典型數(shù)據(jù)庫模型
層次數(shù)據(jù)模型、網(wǎng)狀數(shù)據(jù)模型、關(guān)系數(shù)據(jù)模型、面向?qū)ο髷?shù)據(jù)模型等
3、簡述數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)
數(shù)據(jù)庫是長期存儲在計算機內(nèi)、有組織的、可共享的大量數(shù)據(jù)的集合。數(shù)據(jù)庫中的數(shù)據(jù)按照一定的數(shù)據(jù)模型組織、描述和存儲,具有較小的冗余度(redundancy)、較高的數(shù)據(jù)獨立性(data independency)和易擴展性(scalability),可為各種用戶共享。
數(shù)據(jù)庫系統(tǒng)是由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用程序和數(shù)據(jù)庫管理員組成的存儲、管理、處理和維護數(shù)據(jù)的系統(tǒng)。
數(shù)據(jù)庫管理系統(tǒng)是位于操作系統(tǒng)和用戶之間的一層數(shù)據(jù)管理軟件。
4、數(shù)據(jù)管理技術(shù)三個階段、數(shù)據(jù)庫系統(tǒng)階段的特點
(1)人工管理階段(2)文件系統(tǒng)階段(3)數(shù)據(jù)庫系統(tǒng)階段
數(shù)據(jù)庫系統(tǒng)階段的特點:
① 數(shù)據(jù)結(jié)構(gòu)化 ②數(shù)據(jù)的共享性高、冗余度低、易擴充
③ 數(shù)據(jù)獨立性高 ④數(shù)據(jù)由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理和控制
文件系統(tǒng)
數(shù)據(jù)庫管理系統(tǒng)
某一應(yīng)用 現(xiàn)實世界
共享性差,冗余度大 共享性高,冗余度小
記錄內(nèi)有結(jié)構(gòu),整體無結(jié)構(gòu) 整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述
應(yīng)用程序控制 由數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)安全性,完整性,并發(fā)控制和恢復(fù)能力
獨立性差 具有高度的物理獨立性和一定的邏輯獨立性
5、DBMS支持那幾種數(shù)據(jù)模型
常用的是層次模型、網(wǎng)狀模型、關(guān)系模型(最重要)。新興的是面向?qū)ο髷?shù)據(jù)模型和對象關(guān)系數(shù)據(jù)模型。
(1)層次模型是指用樹型結(jié)構(gòu)表示實體及其之間的聯(lián)系,樹中每一個節(jié)點代表一個記錄類型,樹狀結(jié)構(gòu)表示實體型之間的聯(lián)系。在一個層次模型中的限制條件是:有且僅有一個節(jié)點,無父節(jié)點,此節(jié)點為樹的根;其他節(jié)點有且僅有一個父節(jié)點。
(2)網(wǎng)狀模型:用有向圖結(jié)構(gòu)表示實體類型及實體間聯(lián)系的數(shù)據(jù)結(jié)構(gòu)模型稱為網(wǎng)狀模型。網(wǎng)狀模型的數(shù)據(jù)結(jié)構(gòu)主要有以下兩個特征: ①允許一個以上的節(jié)點無雙親。 ②一個節(jié)點可以有多于一個的雙親。
(3)關(guān)系模型是數(shù)據(jù)模型中最重要的。關(guān)系實際上就是關(guān)系模式在某一時刻的狀態(tài)或內(nèi)容。關(guān)系模式是型,關(guān)系是它的值。關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動態(tài)的、隨時間不斷變化的,因為關(guān)系操作在不斷地更新著數(shù)據(jù)庫中的數(shù)據(jù)。但在實際當中,常常把關(guān)系模式和關(guān)系統(tǒng)稱為關(guān)系。現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關(guān)系來表示,從用戶角度看,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。
6、數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)階段
(1)需求分析(2)系統(tǒng)設(shè)計(3)系統(tǒng)實現(xiàn)(4)系統(tǒng)測試(5)系統(tǒng)運行與維護
7、典型數(shù)據(jù)庫系統(tǒng)舉例:
Access、DBase(前兩者為桌面型)、SQL Server、Oracle、IBM DB、My SQL、Sybase
8、簡述兩類數(shù)據(jù)模型
(1)概念模型。 E-R模型是用E-R圖來描述現(xiàn)實世界的概念模型。
一種表示方法:實體-聯(lián)系方法(entity-relationship approach),常用E-R圖表示。
實體之間的聯(lián)系:一對一、一對多、多對一、多對多
(2)邏輯模型和物理模型
邏輯結(jié)構(gòu)設(shè)計中,一個實體型轉(zhuǎn)換為一個關(guān)系模式。
9、數(shù)據(jù)庫的三級模式、兩級映射:
(1)三級模式
外模式又稱子模式或用戶模式,對應(yīng)于用戶級。它是某個或某幾個用戶所看到的數(shù)據(jù)庫的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式是從模式導(dǎo)出的一個子集,包含模式中允許特定用戶使用的那部分數(shù)據(jù)。用戶可以通過外模式描述語言來描述、定義對應(yīng)于用戶的數(shù)據(jù)記錄(外模式),也可以利用數(shù)據(jù)操縱語言(Data Manipulation Language,DML)對這些數(shù)據(jù)記錄進行。外模式反映了數(shù)據(jù)庫的用戶觀。
模式又稱邏輯模式,對應(yīng)于概念級。它是由數(shù)據(jù)庫設(shè)計者綜合所有用戶的數(shù)據(jù),按照統(tǒng)一的觀點構(gòu)造的全局邏輯結(jié)構(gòu),是對數(shù)據(jù)庫中全部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的總體描述,是所有用戶的公共數(shù)據(jù)視圖(全局視圖)。它是由數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)描述語言(Data Defination Language,DDL)來描述、定義的,體現(xiàn)了數(shù)據(jù)庫系統(tǒng)的整體觀。
內(nèi)模式又稱存儲模式,對應(yīng)于物理級,它是數(shù)據(jù)庫中全體數(shù)據(jù)的內(nèi)部表示或底層描述,是數(shù)據(jù)庫最低一級的邏輯描述,它描述了數(shù)據(jù)在存儲介質(zhì)上的存儲方式和物理結(jié)構(gòu),對應(yīng)著實際存儲在外存儲介質(zhì)上的數(shù)據(jù)庫。內(nèi)模式由內(nèi)模式描述語言來描述、定義,它是數(shù)據(jù)庫的存儲觀。
在一個數(shù)據(jù)庫系統(tǒng)中,只有唯一的數(shù)據(jù)庫,因而作為定義、描述數(shù)據(jù)庫存儲結(jié)構(gòu)的內(nèi)模式和定義、描述數(shù)據(jù)庫邏輯結(jié)構(gòu)的模式也是唯一的,但建立在數(shù)據(jù)庫系統(tǒng)之上的應(yīng)用則是非常廣泛、多樣的,所以對應(yīng)的外模式不唯一。
(2)兩級映射
①外模式/模式映像。當模式改變時,由數(shù)據(jù)庫管理員對各個外模式/模式映像作相應(yīng)改變,可以使外模式保持不變。應(yīng)用程序是依據(jù)外模式編寫的,從而應(yīng)用程序不用修改,保證了數(shù)據(jù)與程序的邏輯獨立性,簡稱數(shù)據(jù)的邏輯獨立性。②模式/內(nèi)模式映像 。當數(shù)據(jù)的存儲結(jié)構(gòu)改變時,由數(shù)據(jù)庫管理員對模式/內(nèi)模式映像作相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程序也不用改變。保證了數(shù)據(jù)與程序的物理獨立性,簡稱數(shù)據(jù)的物理獨立性。
10、數(shù)據(jù)模型通常都是由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三個要素組成。
1)數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)用于描述數(shù)據(jù)庫系統(tǒng)的靜態(tài)特性。數(shù)據(jù)結(jié)構(gòu)是所研究的對象類型的集合。這些對象是數(shù)據(jù)庫的組成成分,是與數(shù)據(jù)類型、內(nèi)容、性質(zhì)有關(guān)的對象,例如關(guān)系模型中的域、屬性、關(guān)系等。一旦數(shù)據(jù)結(jié)構(gòu)定義好之后,一般不發(fā)生變化。
2)數(shù)據(jù)操作
數(shù)據(jù)操作用于描述數(shù)據(jù)庫系統(tǒng)的動態(tài)特性。數(shù)據(jù)操作是指對數(shù)據(jù)庫中各種對象(型)的實例(值)允許執(zhí)行的操作的集合,包括操作及有關(guān)的操作規(guī)則。數(shù)據(jù)庫主要有查詢和更新(包括插入、刪除、修改)兩大類操作。數(shù)據(jù)模型必須定義這些操作的確切含義、操作符號、操作規(guī)則(如優(yōu)先級)以及實現(xiàn)操作的語言。
3)完整性約束
數(shù)據(jù)的約束條件是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和儲存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效和相容。在關(guān)系模型中,一般關(guān)系必須滿足實體完整性和參照完整性兩個條件。
11、主碼的作用
(1)唯一標識每個元組
(2)與關(guān)聯(lián)表的外碼建立聯(lián)系,鏈接兩個表
(3)使用主碼值來組織關(guān)系的存儲
(4)使用主碼索引快速檢索數(shù)據(jù)
12、數(shù)據(jù)操作:
關(guān)系模型中常用的關(guān)系操作包括查詢和數(shù)據(jù)更新兩大部分:
查詢: 選擇、投影、連接、除、并、差、交、笛卡爾積等,其中選擇、投影、并、差、笛卡爾積是5種基本操作
數(shù)據(jù)更新:插入、刪除、修改
集合運算符:并、交、差、乘
專門運算符:選擇、投影、連接、除
基本運算符:選擇、投影、并、差、笛卡爾積
關(guān)系模型中常用的關(guān)系操作包括:選擇(Select)、投影(Project)、連接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)等查詢(Query)操作,和插入(Insert)、刪除(Delete)、修改(Update)操作兩大部分。查詢是其中最主要的部分。
關(guān)系操作的特點是集合操作方式,即操作的對象和結(jié)果都是集合。這種操作方式也稱為一次一集合(set-at-a-time)的方式。相應(yīng)地,非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式則為一次一記錄(record-at-a-time)的方式。
13、關(guān)系的完整性
關(guān)系的完整性規(guī)則是對關(guān)系的某種約束條件。
(1)實體完整性,指在基本關(guān)系表中主碼取值的約束,以保證每個元組可以被標識。約束規(guī)則:非空、唯一。
(2)參照完整性,指關(guān)系間需要遵循的數(shù)據(jù)約束,以保證關(guān)系間關(guān)聯(lián)列的數(shù)據(jù)一致性。參照完整性是指外碼取值必須與現(xiàn)有主碼值相對應(yīng)。
(3)用戶定義完整性,指用戶根據(jù)具體業(yè)務(wù)對數(shù)據(jù)處理規(guī)則要求所定義的數(shù)據(jù)約束。用戶可定義列的數(shù)據(jù)類型、取值范圍、缺省值、是否允許為空、取值唯一性、數(shù)據(jù)依賴性。
14、外碼
設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的碼,如果F與基本關(guān)系S的主碼 Ks相對應(yīng),則稱F是基本關(guān)系R的外碼(Foreign key),并稱基本關(guān)系R為參照關(guān)系(Referencing relation),基本關(guān)系S為被參照關(guān)系(Referenced relation)或目標關(guān)系(Target relation)。關(guān)系R和S不一定是不同的關(guān)系。
15、簡述 SQL 語言的特點
SQL 語言集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體,充分體現(xiàn)了關(guān)系數(shù)據(jù)庫語言的特點和優(yōu)點。其特點如下:①綜合統(tǒng)一 ②高度非過程化 ③面向集合的操作方式 ④以同一種語法結(jié)構(gòu)提供多種操作方式 ⑤語言簡潔,易學(xué)易用
16、SQL語言類別
(1)數(shù)據(jù)定義語言DDL(data definition language):創(chuàng)建、刪除、修改數(shù)據(jù)庫對象(包括數(shù)據(jù)庫、表、索引) Create/drop/alter database/table/index
(2)數(shù)據(jù)操縱語言DML(data manipulation language):增加、刪除、修改數(shù)據(jù)庫
Insert、update、 delete
(3)數(shù)據(jù)查詢語言DQL(data query language):對數(shù)據(jù)庫進行查詢 select
(4)數(shù)據(jù)控制語言DCL(data control language):對數(shù)據(jù)庫對象訪問權(quán)進行控制
Grant(授權(quán))、 deny(拒絕)、 revoke(撤銷)
17、索引
在數(shù)據(jù)庫中,索引是針對某個表中的一列或者幾列建立的指向表中記錄數(shù)據(jù)頁的邏輯指針清單,可加快對數(shù)據(jù)表的快速信息檢索,快速連接關(guān)聯(lián)表,減少分組和排序時間。
聚集索引與非聚集索引的區(qū)別:在聚集索引中,碼值的邏輯順序決定了表中相應(yīng)行的物理順序;在非聚集索引中,碼值的邏輯順序可以與表中相應(yīng)行的物理順序不同。
18、視圖的作用
(1)簡化復(fù)雜的SQL查詢操作。通過視圖,開發(fā)人員可以將復(fù)雜的查詢語句封裝在視圖內(nèi),使外部程序只需要簡單方式訪問該視圖,便可獲取所需數(shù)據(jù)。
(2)提高數(shù)據(jù)訪問安全性。通過視圖可以將基本數(shù)據(jù)表的部分敏感數(shù)據(jù)隱藏起來,外部用戶無法得知完整數(shù)據(jù),保護隱私,并降低數(shù)據(jù)庫被攻擊的風險。
(3)提供一定程度是數(shù)據(jù)邏輯獨立性。當數(shù)據(jù)表的結(jié)構(gòu)改變,只要視圖的結(jié)構(gòu)不變,應(yīng)用程序可以不做修改。
(4)集中展示用戶所感興趣的特定部分。
(5)使用戶能以多種角度看待同一數(shù)據(jù)。
19、SQL主碼約束和唯一約束有什么區(qū)別呢?
主碼約束:由一列或多列的組合,其值能唯一的標識表中的每一行。
唯一約束:不允許數(shù)據(jù)庫表在指定列上具有相同的值,但允許有空值。
區(qū)別:一個表可以定義多個唯一約束,但只能定義一個主碼約束;空值的列上可以定義唯一約束,不能定義主鍵約束。
20、什么是表?什么是視圖?兩者的區(qū)別和聯(lián)系是什么?
表是實實在在得保存數(shù)據(jù)的實體,寫入的數(shù)據(jù)都保存在表中;
視圖是從一個或幾個基本表導(dǎo)出的表,它與基本表不同,是一個虛表。數(shù)據(jù)庫中只存放視圖的定義,而不存放視圖對應(yīng)的數(shù)據(jù),這些數(shù)據(jù)存放在原來的基本表中。所以基本表中的數(shù)據(jù)發(fā)生變化,從視圖中查詢出的數(shù)據(jù)也就隨之改變了。視圖一經(jīng)定義就可以像基本表一樣被查詢、刪除,也可以在一個視圖之上再定義新的視圖,但是對視圖的更新操作有限制。
聯(lián)系: 視圖是在基本表之上建立的表,它的結(jié)構(gòu)(即所定義的列)和內(nèi)容(即所有數(shù)據(jù)行)都來自基本表,它依據(jù)基本表存在而存在。一個視圖可以對應(yīng)一個基本表,也可以對應(yīng)多個基本表。視圖是基本表的抽象和在邏輯意義上建立的新關(guān)系。
21、說明等值連接與自然連接的區(qū)別與聯(lián)系?
自然連接是除去重復(fù)屬性的等值連接。 兩者之間的區(qū)別和聯(lián)系如下:
(1)自然連接一定是等值連接,但等值連接不一定是自然連接;
(2)等值連接要求相等的分量,不一定是公共屬性;而自然連接要求相等的分量必須是公共屬性;
(3)等值連接不把重復(fù)的屬性除去;而自然連接要把重復(fù)的屬性除去。
22、數(shù)據(jù)字典通常包含五個部分:數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理過程
23、范式:1NF 2NF 3NF BCNF First Normal Form Boycee Codd Normal Form
1NF:每個屬性都不可再分
2NF:在1NF的基礎(chǔ)之上,消除了非主屬性對于碼的部分函數(shù)依賴
3NF:在2NF的基礎(chǔ)之上,消除了非主屬性對于碼的傳遞函數(shù)依賴
BCNF:在3NF的基礎(chǔ)上,消除主屬性對于碼的部分函數(shù)依賴與傳遞函數(shù)依賴
1NF有哪些缺點?
1、數(shù)據(jù)冗余太大(每一個系的系主任名字重復(fù)出現(xiàn))
2、更新異常(某個系更換系主任之后,必須將該系學(xué)生有關(guān)的每一個元組)
3、插入異常(如果一個系剛成立,尚無學(xué)生,就無法將老師存入到數(shù)據(jù)庫中)
4、刪除異常(如果學(xué)生都畢業(yè)了,在刪除學(xué)生時,把這個系的系主任的所有信息都刪除了)
24、E-R模型到關(guān)系模型的轉(zhuǎn)換
(1)將每一個實體轉(zhuǎn)換成關(guān)系表,實體的屬性轉(zhuǎn)換為表的列,實體的標識符轉(zhuǎn)換為表的主碼;
(2)將實體間的關(guān)系轉(zhuǎn)換為表間的參照完整性約束,即通過設(shè)置外碼來參照主碼。
25、數(shù)據(jù)庫管理員DBA的職責:
①決定數(shù)據(jù)庫中的信息內(nèi)容和結(jié)構(gòu):數(shù)據(jù)庫中要存放哪些信息
②決定數(shù)據(jù)庫的存儲結(jié)構(gòu)和存取策略:獲得較高的存取效率和存儲空間利用率
③定義數(shù)據(jù)的安全性要求和完整性約束條件:負責確定各個用戶對數(shù)據(jù)庫的存取權(quán)限、數(shù)
據(jù)的保密級別和完整性約束條件
④監(jiān)控數(shù)據(jù)庫的使用和運行:轉(zhuǎn)儲數(shù)據(jù)、維護日志文件、故障恢復(fù)
① 數(shù)據(jù)庫的改進和重組重構(gòu):對運行情況進行記錄、統(tǒng)計分析,以此來不斷改進數(shù)據(jù)庫設(shè)計
26、事務(wù)管理與事務(wù)
事務(wù)管理:在數(shù)據(jù)庫應(yīng)用系統(tǒng)中,完成一個業(yè)務(wù)處理通常需要多個操作步驟。在每個操作步驟中,都可能遭遇失敗,若沒有一個處理機制,就可能造成操作數(shù)據(jù)混亂,從而破壞數(shù)據(jù)一致性。
事務(wù):指由構(gòu)成單個業(yè)務(wù)處理單元的一組數(shù)據(jù)庫訪問操作,它們要么都正常執(zhí)行,要么都不執(zhí)行,是一個不可分割的工作單位。在關(guān)系數(shù)據(jù)庫中,?個事務(wù)可以是?條SQL語句、?組SQL語句或者整個程序。事務(wù)通常以BEGIN TRANSACTION開始,以COMMIT或ROLLBACK結(jié)束。COMMIT表?提交,即提交事務(wù) 的所有操作。具體的說就是將事務(wù)中所有對數(shù)據(jù)庫的更新寫回到磁盤上的物理數(shù)據(jù)庫中去,事務(wù)正常結(jié)束。 ROLLBACK表?回滾,即在事務(wù)運?的過程中發(fā)?了某種故障,事務(wù)不能繼續(xù)執(zhí)?,系統(tǒng)將事務(wù)中對數(shù)據(jù)庫的所 有已完成的操作全部撤銷,回滾到事務(wù)開始時的狀態(tài)。
事務(wù)ACID特性:
原子性(Atomicity):事務(wù)的所有操作在數(shù)據(jù)庫中要么全部執(zhí)行,要么都不執(zhí)行。
一致性(Consistency):事務(wù)多次執(zhí)行,結(jié)果應(yīng)一致
隔離性(Isolation):事務(wù)與事務(wù)之間隔離,并執(zhí)行透明
持續(xù)性(Durability):事務(wù)完成后,數(shù)據(jù)該改變必須是永久的
27、為什么要進行數(shù)據(jù)庫轉(zhuǎn)儲,比較各種數(shù)據(jù)轉(zhuǎn)儲方法?
所謂轉(zhuǎn)儲即DBA定期地將整個數(shù)據(jù)庫復(fù)制到磁帶或另一個磁盤上保存起來的過程。這些備用的數(shù)據(jù)文本稱為后備副本或后援副本。當數(shù)據(jù)庫遭到破壞后可以將后備副本重新裝入,但重裝后備副本只能將數(shù)據(jù)庫恢復(fù)到轉(zhuǎn)儲時的狀態(tài),要想恢復(fù)到故障發(fā)生時的狀態(tài),必須重新運行自轉(zhuǎn)儲以后的所有更新事務(wù)。轉(zhuǎn)儲可分為靜態(tài)轉(zhuǎn)儲和動態(tài)轉(zhuǎn)儲。轉(zhuǎn)儲還可以分為海量轉(zhuǎn)儲和增量轉(zhuǎn)儲兩種方式。海量轉(zhuǎn)儲是指每次轉(zhuǎn)儲全部數(shù)據(jù)庫。增量轉(zhuǎn)儲則指每次只轉(zhuǎn)儲上一次轉(zhuǎn)儲后更新過的數(shù)據(jù)。從恢復(fù)角度看,使用海量轉(zhuǎn)儲得到的后備副本進行恢復(fù)一般說來會更方便些。但如果數(shù)據(jù)庫很大,事務(wù)處理又十分頻繁,則增量轉(zhuǎn)儲方式更實用更有效。
28、并發(fā)控制可能會產(chǎn)生哪幾類數(shù)據(jù)不一致?用什么方法能避免各種不一致的情況?
并發(fā)操作帶來的數(shù)據(jù)不一致性包括三類:丟失修改、不可重復(fù)讀和讀“臟”數(shù)據(jù)。產(chǎn)生數(shù)據(jù)不一致性的主要原因是并發(fā)操作破壞了事務(wù)的隔離性。并發(fā)控制就是要用正確的方式調(diào)度并發(fā)操作,使一個用戶事務(wù)的執(zhí)行不受其它事務(wù)的干擾,從而避免造成數(shù)據(jù)的不一致性。并發(fā)控制的主要技術(shù)是封鎖(Locking)。
丟失修改:當一個事務(wù)修改了數(shù)據(jù),并且這種修改還沒有提交到數(shù)據(jù)庫中時,另外一個事務(wù)又對同樣的數(shù)據(jù)進行了修改,并且把這種修改提交到了數(shù)據(jù)庫中。這樣,數(shù)據(jù)庫中沒有出現(xiàn)第一個事務(wù)修改數(shù)據(jù)的結(jié)果,好像這種數(shù)據(jù)修改丟失了一樣。
不可重復(fù)讀:在一個事務(wù)內(nèi),多次讀同一數(shù)據(jù)。在這個事務(wù)還沒有結(jié)束時,另一個事務(wù)也訪問該同一數(shù)據(jù),那么,在第一個事務(wù)中的兩次讀數(shù)據(jù)之間,由于第二個事務(wù)的修改,第一個事務(wù)兩次讀到的數(shù)據(jù)可能不一樣。
讀“臟”數(shù)據(jù):當一個事務(wù)正在訪問數(shù)據(jù),并對數(shù)據(jù)進行了修改,而這種修改還沒有提交到數(shù)據(jù)庫中,這時另一個事務(wù)也訪問這個數(shù)據(jù)并使用了這個數(shù)據(jù)。因為這個數(shù)據(jù)是還沒有提交的數(shù)據(jù),那么另一個事務(wù)讀到的這個數(shù)據(jù)是臟數(shù)據(jù),依據(jù)臟數(shù)據(jù)所做的操作可能是不正確的。
29、數(shù)據(jù)庫完整性與安全性的區(qū)別
完整性和安全性是兩個不同的概念。前者是為了防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù),防止錯誤信息的輸入和輸出造成的無效操作和錯誤結(jié)果,而后者是防止數(shù)據(jù)庫被惡意的破壞和非法的存取。當然,完整性和安全性是密切相關(guān)的。特別是從系統(tǒng)實現(xiàn)的方法來看,某一種機制常常既可以用于安全保護亦可用于完整性保證。
30、日志文件的定義與作用。
日志文件是用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件。作用:在數(shù)據(jù)庫恢復(fù)中起著重要的作用,可以用來進行事物故障恢復(fù)和系統(tǒng)故障恢復(fù),并協(xié)助后備副本進行介質(zhì)故障恢復(fù)。
31、數(shù)據(jù)庫恢復(fù)策略有哪幾種?
(1)數(shù)據(jù)轉(zhuǎn)儲(數(shù)據(jù)冗余) (2)日志文件
32、數(shù)據(jù)庫:兩段鎖協(xié)議
兩段鎖協(xié)議是指所有事務(wù)必須分兩個階段對數(shù)據(jù)項加鎖和解鎖。在對任何數(shù)據(jù)進行讀、寫操作之前,首先要申請并獲得對該數(shù)據(jù)的封鎖;在釋放一個封鎖之后,事務(wù)不再申請和獲得任何其他封鎖。
“兩段”的含義是,事務(wù)分為兩個階段:第一階段是獲得封鎖,也稱為擴展階段。在這階段,事務(wù)可以申請獲得任何數(shù)據(jù)項上的任何類型的鎖,但是不能釋放任何鎖。第二階段是釋放封鎖,也稱為收縮階段。在這階段,事務(wù)釋放已經(jīng)獲得的鎖,但是不能再申請任何鎖。
可以證明,若并發(fā)執(zhí)行的所有事務(wù)均遵守兩段鎖協(xié)議,則對這些事務(wù)的任何并發(fā)調(diào)度策 略都是可串行化的。 另外要注意兩段鎖協(xié)議和防止死鎖的一次封鎖法的異同之處。一次封鎖法要求每個事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行,因此一次封鎖法遵守兩段鎖協(xié)議;但是兩段鎖協(xié)議并不要求事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,因此遵守兩段鎖協(xié)議的事務(wù)可能發(fā)生死鎖。
33、數(shù)據(jù)庫故障的種類?
1、事務(wù)內(nèi)部的故障2、系統(tǒng)故障3、介質(zhì)故障4、計算機病毒
34、數(shù)據(jù)庫保護(訪問)的內(nèi)容有哪些?
① 利用權(quán)限機制和完整性約束防止非法數(shù)據(jù)進入數(shù)據(jù)庫;
② 提供故障恢復(fù)能力;
② 提供并發(fā)訪問控制。
35、數(shù)據(jù)庫有哪幾種備份策略
完全備份、事務(wù)日志備份、差異備份、文件備份。
36、DBMS 的控制操作有哪些
①數(shù)據(jù)的安全性保護;②數(shù)據(jù)的完整性檢查;③并發(fā)控制;④數(shù)據(jù)庫恢復(fù)。
37、DBMS的數(shù)據(jù)控制功能有那些
(1)數(shù)據(jù)定義功能。DBMS提供相應(yīng)數(shù)據(jù)語言來定義(DDL)數(shù)據(jù)庫結(jié)構(gòu),它們是刻畫數(shù)據(jù)庫框架,并被保存在數(shù)據(jù)字典中。
(2)數(shù)據(jù)存取功能。DBMS提供數(shù)據(jù)操縱語言(DML),實現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的基本存取操作:檢索,插入,修改和刪除。
(3)數(shù)據(jù)庫運行管理功能。DBMS提供數(shù)據(jù)控制功能,即是數(shù)據(jù)的安全性、完整性和并發(fā)控制等對數(shù)據(jù)庫運行進行有效地控制和管理,以確保數(shù)據(jù)正確有效。
(4)數(shù)據(jù)庫的建立和維護功能。包括數(shù)據(jù)庫初始數(shù)據(jù)的裝入,數(shù)據(jù)庫的轉(zhuǎn)儲、恢復(fù)、重組織,系統(tǒng)性能監(jiān)視、分析等功能。
(5)數(shù)據(jù)庫的傳輸。DBMS提供處理數(shù)據(jù)的傳輸,實現(xiàn)用戶程序與DBMS之間的通信,通常與操作系統(tǒng)協(xié)調(diào)完成。
38、Java語言設(shè)計數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫鏈結(jié)->創(chuàng)建語句對象->執(zhí)行SQL命令->訪問執(zhí)行結(jié)果集->關(guān)閉鏈結(jié)
(1)利用JDBC API建立數(shù)據(jù)庫連接,
(2)在建立的數(shù)據(jù)庫連接上,執(zhí)行SQL語句訪問數(shù)據(jù)庫
(3)在JSP中處理SQL執(zhí)行結(jié)果
(4)在JSP中釋放數(shù)據(jù)庫連接
總結(jié)
- 上一篇: UG软件制图的几个重要技巧,你知道吗?
- 下一篇: 数据库知识点总结