04735數(shù)據(jù)庫系統(tǒng)管理
單選題:15題,每題2分,一共30分
填空題:10題,每題1分,一共10分
簡答題:5題,每題6分,一共30分
設(shè)計(jì)題:5題,每題4分,一共20分
綜合題:1題,每題10分,一共10分
?
第一章 數(shù)據(jù)庫系統(tǒng)概述
第一小節(jié) 數(shù)據(jù)庫基本概念
1.?數(shù)據(jù)(Data):數(shù)據(jù)是描述事物的符號記錄,是指利用物理符號記錄下來的、可以鑒別的信息,數(shù)據(jù)是信息存在的一種形式,只有通過解釋或處理的數(shù)據(jù)才能稱為有用的信息
2.?數(shù)據(jù)庫(DB):是長期存儲在計(jì)算機(jī)中的有組織的、可共享的數(shù)據(jù)集合
數(shù)據(jù)庫要按照一定的數(shù)據(jù)模型組織、描述和存儲,具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性,系統(tǒng)易于擴(kuò)展,并可以被多個(gè)用戶分享
3.?數(shù)據(jù)庫中存儲的數(shù)據(jù)的特點(diǎn):永久存儲、有組織的、可共享
4.?數(shù)據(jù)庫管理系統(tǒng)(DBMS):專門用于建立和管理數(shù)據(jù)庫的一套軟件,介于應(yīng)用程序和操作系統(tǒng)之間
5.?數(shù)據(jù)庫管理系統(tǒng)的功能:數(shù)據(jù)定義功能;數(shù)據(jù)操縱功能;數(shù)據(jù)組織、存儲和管理功能;數(shù)據(jù)庫的運(yùn)行管理功能;數(shù)據(jù)庫的建立和維護(hù)功能;其他功能;
6.?數(shù)據(jù)庫系統(tǒng)(DBS):在計(jì)算機(jī)引入數(shù)據(jù)庫之后的系統(tǒng)
7.?數(shù)據(jù)庫系統(tǒng)的構(gòu)成:數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、及相關(guān)的實(shí)用工具、應(yīng)用程序、數(shù)據(jù)庫管理員和用戶
數(shù)據(jù)庫系統(tǒng)最大,包括了所有東西
8.?數(shù)據(jù)庫管理員(DBA):專門負(fù)責(zé)對數(shù)據(jù)庫進(jìn)行維護(hù),并保證數(shù)據(jù)庫正常、高效運(yùn)行的人員

第二小節(jié) 數(shù)據(jù)管理技術(shù)的發(fā)展
9.?數(shù)據(jù)庫發(fā)展三階段:人工管理階段(20世紀(jì)50年代中期以前)、文件系統(tǒng)階段(20世紀(jì)50年代后期到60年代中期)、數(shù)據(jù)庫系統(tǒng)階段(20世紀(jì)60年代后期以來)
10.?人工管理階段的3個(gè)特點(diǎn):數(shù)據(jù)不保存;應(yīng)用程序管理數(shù)據(jù);數(shù)據(jù)面向應(yīng)用程序
11.?文件系統(tǒng)階段的3個(gè)特點(diǎn):文件系統(tǒng)將數(shù)據(jù)的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)分離;文件系統(tǒng)提供了數(shù)據(jù)的物理獨(dú)立性;不能實(shí)現(xiàn)數(shù)據(jù)的普通共享,存在大量的數(shù)據(jù)冗余
12.?數(shù)據(jù)庫系統(tǒng)的7個(gè)特點(diǎn):數(shù)據(jù)集成(主要目的);數(shù)據(jù)共享性高;數(shù)據(jù)冗余小;數(shù)據(jù)一致性;數(shù)據(jù)獨(dú)立性高;實(shí)施統(tǒng)一管理與控制;減少應(yīng)用程序開發(fā)與維護(hù)的工作量;
數(shù)據(jù)一致性:引起數(shù)據(jù)不一致的根源是數(shù)據(jù)冗余,通過消除或控制數(shù)據(jù)冗余,可以在一定范圍內(nèi)避免數(shù)據(jù)的不一致性
數(shù)據(jù)獨(dú)立:數(shù)據(jù)定義與使用數(shù)據(jù)的應(yīng)用程序分離稱為數(shù)據(jù)獨(dú)立;數(shù)據(jù)庫獨(dú)立性包括數(shù)據(jù)的邏輯獨(dú)立和數(shù)據(jù)的物理獨(dú)立
實(shí)施統(tǒng)一管理與控制:數(shù)據(jù)庫管理系統(tǒng)具有對數(shù)據(jù)的統(tǒng)一管理和控制功能,主要包括數(shù)據(jù)的安全性、完整性、并發(fā)控制和故障恢復(fù)等,即數(shù)據(jù)庫保護(hù)
第三小節(jié) 數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)(三層模式兩級映像)

數(shù)據(jù)庫的體系結(jié)構(gòu)是三層模式是兩級映像,為什么有數(shù)據(jù)庫的體系結(jié)構(gòu)呢?他保證了數(shù)據(jù)獨(dú)立性
13.?數(shù)據(jù)庫的獨(dú)立性 :應(yīng)用程序與數(shù)據(jù)之間相互獨(dú)立,分為邏輯數(shù)據(jù)獨(dú)立性和物理數(shù)據(jù)獨(dú)立性
14.?邏輯數(shù)據(jù)獨(dú)立性:外模式/模式映像保證了數(shù)據(jù)的邏輯獨(dú)立性(就是外面那層),指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨(dú)立的,數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,應(yīng)用程序也可以不變(就是你的接口邏輯改變了,你的應(yīng)用程序不需要變動,因?yàn)閼?yīng)用程序直接調(diào)用這個(gè)接口就好了)
15.?物理數(shù)據(jù)獨(dú)立性:模式/內(nèi)模式映像保證了數(shù)據(jù)的物理獨(dú)立性(就是底下那層),指用戶的應(yīng)用程序與磁盤上的數(shù)據(jù)庫中數(shù)據(jù)是相互獨(dú)立的,當(dāng)數(shù)據(jù)庫的物理存儲改變了,應(yīng)用程序不用改變
第四小節(jié) 數(shù)據(jù)模型(重點(diǎn))
16.?數(shù)據(jù)模型:是對現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象,描述的是數(shù)據(jù)的共性內(nèi)容,數(shù)據(jù)模型是模型化數(shù)據(jù)和信息的工具,也是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ)
17.?數(shù)據(jù)模型三要素:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)約束
18.?數(shù)據(jù)模型數(shù)據(jù)的特征:靜態(tài)特征(數(shù)據(jù)的基本結(jié)構(gòu)、數(shù)據(jù)間的聯(lián)系、數(shù)據(jù)取值范圍的約束)、動態(tài)特征
19.?數(shù)據(jù)模型的分類:概念模型、物理模型、邏輯模型
20.?概念層數(shù)據(jù)模型:也稱為數(shù)據(jù)的概念模型或信息模型,用于數(shù)據(jù)庫的設(shè)計(jì)階段,是對信息世界的建模(概念模型的表示方法一般使用E-R圖,e-r圖是實(shí)體-聯(lián)系法)
21.?邏輯層數(shù)據(jù)模型:邏輯層是數(shù)據(jù)抽象級別的中間層,邏輯層數(shù)據(jù)模型,也稱邏輯模型,任何DBMS都是基于某種邏輯數(shù)據(jù)模型,邏輯數(shù)據(jù)模型的類型有層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P?/p>
22.?邏輯層數(shù)據(jù)模型的類型-關(guān)系模型:用二維表結(jié)構(gòu)來表示實(shí)體間的聯(lián)系,優(yōu)點(diǎn)是建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上、概念單一、存取路徑對用戶透明,有更高的數(shù)據(jù)獨(dú)立性,更好的安全保密性
23.?物理層數(shù)據(jù)模型:也稱為物理模型,描述數(shù)據(jù)在存儲介質(zhì)上的組織結(jié)構(gòu),是邏輯模型的物理實(shí)現(xiàn),是數(shù)據(jù)庫最底層的抽象
24.?邏輯模型、概念模型、物理模型之間的關(guān)系:三個(gè)數(shù)據(jù)模型之間既相互獨(dú)立,又存在著關(guān)聯(lián)。從現(xiàn)實(shí)世界到概念模型的轉(zhuǎn)換是由數(shù)據(jù)庫設(shè)計(jì)人員完成的;從概念模型到邏輯模型的轉(zhuǎn)換可以由數(shù)據(jù)庫設(shè)計(jì)人員完成,也可以用數(shù)據(jù)庫設(shè)計(jì)工具協(xié)助設(shè)計(jì)人員完成;從邏輯模型到物理模型的轉(zhuǎn)換是由數(shù)據(jù)庫管理系統(tǒng)完成的
第二章?關(guān)系數(shù)據(jù)庫(重點(diǎn))
第一小節(jié) 關(guān)系數(shù)據(jù)庫概述
1.?關(guān)系數(shù)據(jù)庫的基本特征:使用關(guān)系數(shù)據(jù)模型組織數(shù)據(jù),這種思想來源于數(shù)學(xué)
2.?關(guān)系數(shù)據(jù)庫的優(yōu)點(diǎn):高級的,分過程語言接口,較好的數(shù)據(jù)獨(dú)立性,為商品化的關(guān)系數(shù)據(jù)庫管理系統(tǒng)的研制做好了技術(shù)上的準(zhǔn)備
第二小節(jié) 關(guān)系數(shù)據(jù)模型(重點(diǎn),表和表的增刪改查,表的關(guān)系代數(shù)操作)
3.?關(guān)系數(shù)據(jù)模型組成要素:關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合、關(guān)系完整性約束
4.?關(guān)系模型相關(guān)概念:表、關(guān)系、列、行、分量、域、數(shù)據(jù)類型、碼或鍵、候選碼或候選鍵、主屬性或非主屬性、主碼或主鍵、全碼或全鍵、外碼或外鍵、參照關(guān)系和被參照關(guān)系、關(guān)系模式、關(guān)系數(shù)據(jù)庫
5.?表:也稱為關(guān)系,是一個(gè)二維的數(shù)據(jù)結(jié)構(gòu),由表名、列、若干行數(shù)據(jù)組成
6.?關(guān)系:一個(gè)關(guān)系邏輯上對應(yīng)一張二維表,可以為每個(gè)關(guān)系取一個(gè)名稱進(jìn)行表示,基本關(guān)系、查詢表、視圖表(導(dǎo)出的虛表)
7.?列:也稱為字段或?qū)傩?,屬性的個(gè)數(shù)稱為關(guān)系的元或度(id,name,那么就稱為xx關(guān)系有2度/元),列的值稱為屬性值,其取值范圍稱為值域
8.?行:也稱為元組或記錄。表中的數(shù)據(jù)按行存儲
9.?分量:具體的數(shù)據(jù)項(xiàng),元組中的一個(gè)屬性值,稱為分量({1,tom,man},像1,tom,man這種元組的屬性值,就是分量)
10.?域:表示屬性的取值范圍
11.?數(shù)據(jù)類型:每個(gè)列都有對應(yīng)的數(shù)據(jù)類型,它用于限制該列中存儲的數(shù)據(jù)
12.?碼或鍵:屬性的值都能用來唯一標(biāo)識該關(guān)系的元組,則稱這些屬性為該關(guān)系的碼或鍵
13.?候選碼或候選鍵:在碼中不能從中移去任何一個(gè)屬性,否則它將不再是這個(gè)關(guān)系的碼或鍵,候選碼或候選鍵是這個(gè)關(guān)系的最小超碼或超鍵
14.?主屬性或非主屬性:包含或者不包含在任意一個(gè)候選碼中的屬性稱為主屬性或碼屬性
15.?主碼或主鍵:在若干個(gè)候選碼中指定一個(gè)唯一標(biāo)識關(guān)系的元組
16.?全碼或全鍵:一個(gè)關(guān)系模式的所有屬性集合是這個(gè)關(guān)系的主碼或主鍵,這樣的主碼或主鍵稱為全碼或全鍵
17.?外碼或外鍵:某個(gè)屬性不是這個(gè)關(guān)系的主碼或候選碼,而是另外一個(gè)關(guān)系的主碼
18.?參照關(guān)系和被參照關(guān)系:他們是以外碼相關(guān)聯(lián)的兩個(gè)關(guān)系,外鍵為主鍵的關(guān)系是被參照關(guān)系也是從關(guān)系;外鍵所在的關(guān)系稱為參照關(guān)系也是主關(guān)系,通常同在一對多的聯(lián)系上

19.?關(guān)系模式:關(guān)系模式是型,關(guān)系是值,即關(guān)系模式是對關(guān)系的描述,關(guān)系模式是靜態(tài)的,關(guān)系是動態(tài)的,隨著時(shí)間不斷變化的
20.?關(guān)系數(shù)據(jù)庫:所有關(guān)系的集合,構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫,以關(guān)系模型作為數(shù)據(jù)的邏輯模型,采用關(guān)系作為數(shù)據(jù)組織方式的數(shù)據(jù)庫,數(shù)據(jù)庫操作建立在關(guān)系代數(shù)的基礎(chǔ)上
21.?關(guān)系數(shù)據(jù)庫對關(guān)系(表)的要求:每一個(gè)屬性不可再分;每一個(gè)關(guān)系只有一種關(guān)系模式;每一個(gè)關(guān)系模式中的屬性必須命名,屬性名不同;同一個(gè)關(guān)系不允許出現(xiàn)候選碼值完全相同的元組;關(guān)系中行和列的順序可以任意較換
關(guān)系代數(shù)
22.?關(guān)系操作集合—基本的關(guān)系操作:增刪改查(選擇、投影、并、差、笛卡爾積、連接、除、交)
23.?關(guān)系數(shù)據(jù)語言的分類:關(guān)系代數(shù)語言、SQL、關(guān)系演算語言,共同特點(diǎn):具備完備的表達(dá)能力,是非過程化的集合操作語言,功能強(qiáng),能獨(dú)立也可以嵌入高級語言中使用
24.?關(guān)系代數(shù)--傳統(tǒng)的集合運(yùn)算(注意只有表中屬性名稱和個(gè)數(shù)相同才可以進(jìn)行運(yùn)算,除了笛卡爾積):并(∪,就是兩個(gè)表合并,)、交(∩,就是兩個(gè)表找相同的部分,比如a={1,2}b={2,3},a∩b={2})、差(-,就是兩個(gè)表找相同的部分,然后去除比如a={1,2,3}b={1,4,5},a-b={2,3},而b-a={4,5})、笛卡爾積(×,看圖)

25.?關(guān)系代數(shù)--專門的關(guān)系運(yùn)算:選擇?(σ)?、投影(π)、連接(??等值連接和自然連接)、除(÷)
五個(gè)基本的關(guān)系代數(shù)操作是并、差、笛卡爾積、投影和選擇,上面只是按類型分開
?
關(guān)系完整性約束
26.?關(guān)系的完整性約束:數(shù)據(jù)庫中數(shù)據(jù)的正確性、相容性、一致性
27.?關(guān)系的完整性約束分類:實(shí)體完整性約束、參照完整性約束、用戶自定義完整性約束
28.?實(shí)體完整性約束:指關(guān)系的主屬性,即主碼的組成不能為空值null,每個(gè)實(shí)體具有唯一性標(biāo)識
29.?參照完整性約束:定義主鍵和外鍵之間的引用規(guī)則(就是這個(gè)表的外鍵對那個(gè)表的主鍵)
30.?用戶定義完整性:針對某一具體關(guān)系數(shù)據(jù)庫的約束條件
執(zhí)行增刪改對約束的順序
插入:檢查實(shí)體完整性約束-->檢查參照完整性約束-->檢查用戶自定義完整性
刪除:檢查參照完整性
更新:上面兩個(gè)綜合
第三小節(jié) 關(guān)系數(shù)據(jù)庫的規(guī)范化理論(難點(diǎn),就是函數(shù)依賴和范式)
31.?關(guān)系模式中可能存在的冗余和異常問題:
數(shù)據(jù)冗余:只同一數(shù)據(jù)被反復(fù)存儲的情況
更新異常:數(shù)據(jù)冗余造成的,多個(gè)內(nèi)容更改使操作錯(cuò)誤
插入異常:插入數(shù)據(jù)庫中的數(shù)據(jù)庫不能執(zhí)行插入操作
刪除異常:不應(yīng)該刪除的數(shù)據(jù)被刪除的情形
32.?函數(shù)依賴:關(guān)系中屬性間的對應(yīng)關(guān)系,X->Y,意思是X可以決定Y,稱為Y依賴于X,X可能是個(gè)集合,Y的值只有一個(gè),不可能說學(xué)號->(姓名,年齡),只能是學(xué)號->姓名,學(xué)號->年齡

33.?平凡函數(shù)依賴和非平凡函數(shù)依賴:
X決定Y,但Y包含在X內(nèi)部則稱X-->Y是平凡函數(shù)依賴


?

34.?完全函數(shù)依賴和部分函數(shù)依賴:

?

35.?傳遞函數(shù)依賴
?

36.?范式化:一個(gè)低一級范式的關(guān)系模式通過模式分解可以轉(zhuǎn)換成若干個(gè)高一級范式的關(guān)系模式的集合的過程
37.?第一范式(1NF):設(shè)R為任一給定關(guān)系,若R中每個(gè)列與行的交點(diǎn)處的取值都是不可再分的基本元素,則R為第一范式,存在非主屬性對碼的部分函數(shù)依賴
缺點(diǎn):冗余高、插入數(shù)據(jù)異常、更新數(shù)據(jù)異常、刪除數(shù)據(jù)異常(知道1nf最差就好了)
38.?第二范式(2NF):在1NF基礎(chǔ)之上,消除非主屬性對鍵的部分依賴,則稱它為符合2NF(也就是拆表了)
缺點(diǎn):插入數(shù)據(jù)異常、刪除數(shù)據(jù)異常,優(yōu)點(diǎn):消除修改數(shù)據(jù)異常,減少冗余
39.?第三范式(3NF):設(shè)R為任一給定關(guān)系,R的每一個(gè)非主屬性即不部分函數(shù)依賴于候選碼也不傳遞依賴于候選碼
優(yōu)點(diǎn):基本上解決冗余過大、數(shù)據(jù)異常
40.?BC范式(BCNF):設(shè)關(guān)系模式R為1NF,如果對于R的每個(gè)函數(shù)依賴x->y,若y不屬于x,則x必包含有候選碼,那么R為BCNF
?

第三章?數(shù)據(jù)庫設(shè)計(jì)
第一小節(jié) 數(shù)據(jù)庫設(shè)計(jì)概述
1.?數(shù)據(jù)庫的生命周期分為兩個(gè)階段:數(shù)據(jù)庫分析與設(shè)計(jì)階段、數(shù)據(jù)庫實(shí)現(xiàn)與操作階段
2.?數(shù)據(jù)庫分析與設(shè)計(jì)階段:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)
3.?數(shù)據(jù)庫實(shí)現(xiàn)與操作階段:實(shí)現(xiàn)、操作與監(jiān)督、修改與調(diào)整
4.?數(shù)據(jù)庫設(shè)計(jì)的目標(biāo):滿足應(yīng)用功能需求(增刪改查),和良好的數(shù)據(jù)庫性能
5.?數(shù)據(jù)庫設(shè)計(jì)的內(nèi)容:是從用戶對數(shù)據(jù)的需求出發(fā),研究并構(gòu)造數(shù)據(jù)庫的過程,主要包括數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)和數(shù)據(jù)庫行為設(shè)計(jì)
數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)(靜態(tài)的):包括數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)
數(shù)據(jù)庫行為設(shè)計(jì)(動態(tài)的)
6.?數(shù)據(jù)庫設(shè)計(jì)方法:直觀設(shè)計(jì)法、規(guī)范設(shè)計(jì)法(包括新奧爾良設(shè)計(jì)方法、基于第三范式設(shè)計(jì)方法、基于E-R模型設(shè)計(jì)方法)、計(jì)算機(jī)輔助設(shè)計(jì)法(CASE工具)
7.?數(shù)據(jù)庫設(shè)計(jì)過程:
?

第二小節(jié) 數(shù)據(jù)庫設(shè)計(jì)的基本步驟
8.?需求分析:是數(shù)據(jù)庫設(shè)計(jì)的起點(diǎn),目標(biāo)是了解與分析用戶的信息及應(yīng)用處理的要求,并將結(jié)果按一定的個(gè)數(shù)整理而形成需求分析報(bào)告(需求分析報(bào)告是后面數(shù)據(jù)庫建立與維護(hù)的依據(jù))
9.?需求分析四個(gè)步驟:確定數(shù)據(jù)庫范圍、應(yīng)用過程分析、收集與分析數(shù)據(jù)、編寫需求分析報(bào)告
10.?需求分析四個(gè)步驟--確定數(shù)據(jù)庫范圍:有效地利用計(jì)算機(jī)設(shè)備及數(shù)據(jù)庫系統(tǒng)的潛在能力;提高數(shù)據(jù)庫的應(yīng)變能力;避免應(yīng)用過程中對數(shù)據(jù)庫做太多或太大的修改;延長數(shù)據(jù)庫的生命周期;
11.?需求分析四個(gè)步驟--應(yīng)用過程分析:是數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的重要依據(jù)
12.?需求分析四個(gè)步驟--收集與分析數(shù)據(jù):收集與分析的任務(wù)是了解并分析數(shù)據(jù)的組成個(gè)數(shù)及操作特征
13.?需求分析四個(gè)步驟--編寫需求分析報(bào)告:數(shù)據(jù)庫的應(yīng)用功能目標(biāo);標(biāo)明不同用戶視圖范圍;應(yīng)用處理過程需求說明;數(shù)據(jù)字典;數(shù)據(jù)量;數(shù)據(jù)約束;
14.?概念結(jié)構(gòu)設(shè)計(jì):獨(dú)立于任何軟件于硬件,主要目標(biāo)是最大限度滿足用戶有有需求;關(guān)系的規(guī)范化理論主要用于概念設(shè)計(jì)階段,設(shè)計(jì)方法有實(shí)體分析法(自頂向下法)、屬性綜合法(自底向上法)、概念模型(自頂向下)
15.?邏輯結(jié)構(gòu)設(shè)計(jì)(是設(shè)計(jì)關(guān)系模式):目標(biāo)將概念模型轉(zhuǎn)換為等價(jià)的、并為特定DBMS所支持?jǐn)?shù)據(jù)模型結(jié)構(gòu),在基本表的基礎(chǔ)上建立必要的視圖,形成數(shù)據(jù)的外模式,邏輯結(jié)構(gòu)設(shè)計(jì)步驟是模型轉(zhuǎn)換、子模式設(shè)計(jì)、編制應(yīng)用程序設(shè)計(jì)、設(shè)計(jì)評價(jià)
16.?物理設(shè)計(jì):就是設(shè)計(jì)表的屬性、數(shù)據(jù)類型、長度等等
17.?數(shù)據(jù)庫實(shí)施:加載數(shù)據(jù)輸入與校驗(yàn)不是由人工完成、應(yīng)用程序設(shè)計(jì)、數(shù)據(jù)庫試運(yùn)行
18.?數(shù)據(jù)庫運(yùn)行和維護(hù):保證數(shù)據(jù)庫的正常運(yùn)行
第三小節(jié) 關(guān)系數(shù)據(jù)庫設(shè)計(jì)方法(重點(diǎn))
19.?關(guān)系數(shù)據(jù)庫設(shè)計(jì)過程與各級模式:概念模式(E-R圖)、邏輯模式(關(guān)系模型)、內(nèi)模式(物理模型)
20.?概念模式的E-R圖:實(shí)體型(矩形)、屬性(橢圓)、聯(lián)系(菱形,有一對多1:n、多對多n:m、一對一1:1),沖突有屬性沖突、命名沖突、結(jié)構(gòu)沖突
21.?邏輯模式設(shè)計(jì):就是將e-r圖轉(zhuǎn)換為關(guān)系模型,然后對關(guān)系模型優(yōu)化,然后設(shè)計(jì)面向用戶的外模式
22.?物理設(shè)計(jì)方法:建立索引、建立聚集(將相關(guān)數(shù)據(jù)集中存放的物理存儲技術(shù))
第四章?SQL與關(guān)系數(shù)據(jù)庫基本操作(重點(diǎn))
第一小節(jié) SQL概述
1.?SQL語言:結(jié)構(gòu)化查詢語言,是專門用來與數(shù)據(jù)庫通信的語言,他可以幫助用戶操作關(guān)系數(shù)據(jù)庫
2.?SQL3/SQL-99:1999年頒布的SQL標(biāo)準(zhǔn)(目前沒有一個(gè)數(shù)據(jù)庫語言能夠支持SQL標(biāo)準(zhǔn)的全部概念和特性)
3.?SQL的特點(diǎn):SQL不是某個(gè)特定數(shù)據(jù)庫供應(yīng)商專有的語言;SQL簡單易學(xué);SQL強(qiáng)大、靈活,可以進(jìn)行非常復(fù)雜和高級的數(shù)據(jù)庫操作
4.?SQL的組成:數(shù)據(jù)查詢、數(shù)據(jù)定義語言(DDL)、數(shù)據(jù)操縱(DML)、數(shù)據(jù)控制(DCL)
?

5.?數(shù)據(jù)定義語言DDL:就是對數(shù)據(jù)庫和表的操作,create創(chuàng)建數(shù)據(jù)庫/對象、alter修改數(shù)據(jù)庫/對象、drop刪除數(shù)據(jù)庫/對象
6.?數(shù)據(jù)操縱語言(DML):就是對表和視圖的數(shù)據(jù)的操作select、insert、update、delete
7.?數(shù)據(jù)控制語言(DCL):就是對權(quán)限進(jìn)行控制,grant(授予權(quán)限)、revoke(收回權(quán)限)
8.?SQL調(diào)用和會話規(guī)則:包括SQL例題和調(diào)用規(guī)則,以便提高SQL的靈活性、有效性、共享性的特征
第二小節(jié) MYSQL預(yù)備知識
9.?MYSQL:是一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng),他具有客戶、服務(wù)器體系結(jié)構(gòu),其具有體積小、速度快、開放源碼等特性
10.?MYSQL的兩種架構(gòu):LAMP(linux)、WAMP(window)
11.?MYSQL擴(kuò)展語言要素:常量、變量(用戶變量@開頭、系統(tǒng)變量@@開頭,用于臨時(shí)存儲數(shù)據(jù),變量中的數(shù)據(jù)可以隨著程序的運(yùn)行而變化,變量屬性有名字、數(shù)據(jù)類型)
12.?MYSQL常用運(yùn)算符:
?

13.?表達(dá)式:常量、變量、列名、復(fù)雜計(jì)算、運(yùn)算符和函數(shù)的組合
第三小節(jié) 數(shù)據(jù)定義
14.?數(shù)據(jù)庫模式定義:創(chuàng)建數(shù)據(jù)庫(create)、選擇、刪除
?

15.?表定義:
?

16.?索引定義
索引類型:普通索引(index、key)、唯一性索引(unique)、主鍵(primary?key)
?


第四小節(jié) 數(shù)據(jù)更新(重點(diǎn))
?

第五小節(jié) 數(shù)據(jù)查詢
17.?數(shù)據(jù)查詢:是SQL語言的核心功能,是使用最多的操作,查詢結(jié)果是由0行或多行記錄組成的記錄集合
普通查詢:
?

From子句與多表連接查詢
交叉連接:又叫笛卡爾積,使用cross?join 來連接兩個(gè)表
?

內(nèi)連接:通過設(shè)置連接條件的方式,來一出查詢結(jié)果集某些數(shù)據(jù)之后的交叉連接
?

外連接:交叉連接時(shí),有時(shí)會輸出不滿足條件的記錄,有左外連(left join Table_name on)、右外連接(right join Table_name on)
左外右外連接的區(qū)別:左邊以左邊表為條件也就是form的表為條件去查詢另外一張表,如果沒有數(shù)據(jù)就展示null,右外連接以右邊的表也就是join的表為條件去查詢另外一張表,如果沒有數(shù)據(jù)就展示null
WHERE子句與條件查詢
Where子句:指定過濾,從from子句的中間結(jié)果選取適當(dāng)?shù)臄?shù)據(jù)行,實(shí)現(xiàn)數(shù)據(jù)過濾
條件查詢:范圍判定有between和in關(guān)鍵字(有填空題)
?

子查詢(重點(diǎn)):分為幾類:標(biāo)量子查詢、列子查詢、行子查詢、表子查詢
?

?

其他子查詢子句:將結(jié)果集中的數(shù)據(jù)行根據(jù)選擇列的值進(jìn)行邏輯分組,實(shí)現(xiàn)對每個(gè)組的聚集計(jì)算
GROUP?BY分組:
?

Select后面只能是group?by里面的字段
HAVING子句:跟著group?by后面使用的,對分組后的數(shù)據(jù)進(jìn)行篩選,可以使用聚合函數(shù)
?

ORDER?BY子句: 排序,DESC(從大到小) ACS(從小到大)
LIMIT子句:分頁查詢,limit?1,意思是顯示5條,limit?2,10,從第2行開始顯示10條
?

第六小節(jié) 視圖
18.?視圖:視圖不是數(shù)據(jù)庫中真實(shí)的表,而是一張?zhí)摂M表,其自身并不存儲數(shù)據(jù)(就是把查詢的數(shù)據(jù)放在一個(gè)地方)
19.?使用視圖優(yōu)點(diǎn):集中分散數(shù)據(jù)、簡化查詢語句、重用SQL語句、保護(hù)數(shù)據(jù)安全、共享所需數(shù)據(jù)、更改數(shù)據(jù)格式
視圖的操作
?

對視圖數(shù)據(jù)操作就是對表數(shù)據(jù)操作,如果建立視圖給了條件,對視圖進(jìn)行插入數(shù)據(jù),如果數(shù)據(jù)不滿足之前給的條件,那不會展示在視圖里
刪除視圖中的數(shù)據(jù):如果視圖依賴多個(gè)表的數(shù)據(jù),則不可以使用DELETE
第五章?數(shù)據(jù)庫編程(難點(diǎn))
第一小節(jié) 存儲過程
1.?存儲過程:是一組為了完成某項(xiàng)特定功能的sql語句集(就是一段存儲在數(shù)據(jù)庫中的代碼,存儲過程可以由聲明式的sql語句和過程式的sql語句組成)
2.?存儲過程優(yōu)點(diǎn):可增強(qiáng)sql語言的功能和靈活性;良好的封裝性;高性能;可減少網(wǎng)絡(luò)流量;可作為一種安全機(jī)制來確保數(shù)據(jù)庫的安全性和數(shù)據(jù)的完整性
3.?創(chuàng)建存儲過程:
用戶定義的結(jié)束符(DELIMITER $$ end $$)
?

局部變量:聲明不需要@符號,并且只能在begin...end里面聲明和使用
用戶變量:聲明時(shí)在名稱前面使用@符號,聲明后的用戶變量在整個(gè)會話中使用
?

游標(biāo)(cursor):是一個(gè)被select語句檢索出來的結(jié)果集,相當(dāng)于一個(gè)指針,他指向當(dāng)前的一行數(shù)據(jù)
使用游標(biāo)注意點(diǎn):游標(biāo)只能用于存儲過程或存儲函數(shù)中,不能單獨(dú)在查詢操作中使用;在存儲過程中可以定義多個(gè)游標(biāo),但是在一個(gè)begin..end語句塊中每一個(gè)游標(biāo)的名字必須是唯一;游標(biāo)不是一條select語句,是被select語句
?

循環(huán):需要背誦
?

4.?調(diào)用存儲過程:使用CALL語句在程序或者其他存儲過程中調(diào)用它,語法call?sp_name(參數(shù))
5.?刪除存儲過程:DROP?PROCEDURE [IF exists] sp_name
?

第二小節(jié) 存儲函數(shù)
6.?存儲函數(shù):與存儲過程一樣,都是有sql語句和過程式語句所組成的代碼片段,并且可以被其他應(yīng)用程序和其他sql語句調(diào)用
7.?存儲函數(shù)和存儲過程的區(qū)別:存儲函數(shù)不能擁有輸出參數(shù);可以直接對存儲函數(shù)進(jìn)行調(diào)用,而不使用call;存儲函數(shù)中必須包含一條return語句
8.?定義存儲函數(shù):
?

9.?調(diào)用存儲函數(shù):select?fn_name()
10.?刪除存儲函數(shù):drop?function [if existe] fn_name
?
第六章?數(shù)據(jù)庫安全與保護(hù)
第一小節(jié) 數(shù)據(jù)庫完整性(重點(diǎn))
1.?數(shù)據(jù)庫的安全保護(hù):?
完整性控制:是指數(shù)據(jù)庫中數(shù)據(jù)的正確性和相容性(會考填空題)
安全性控制:數(shù)據(jù)庫防止不合法的操作而造成數(shù)據(jù)泄露、更改或破壞
并發(fā)控制:事務(wù)就是為了保證數(shù)據(jù)一致性而產(chǎn)生的一個(gè)概念和基本手段
數(shù)據(jù)庫的備份與恢復(fù):保證數(shù)據(jù)庫的可靠性和完整性
2.?數(shù)據(jù)庫完整性約束的作用:防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù)
3.?數(shù)據(jù)庫完整性約束條件的作用對象:列級約束(對列的類型、取值范圍、精度等約束)、元組約束(指元組中各個(gè)字段之間的相互約束)、表級約束(指若干元組、關(guān)系之間的聯(lián)系的約束)
完整性約束條件是完整性控制機(jī)制的核心
4.?定義與實(shí)現(xiàn)完整性約束:實(shí)體完整性、參照完整性、用戶自定義完整性
5.?實(shí)體完整性:在mysql中,實(shí)體完整性是通過主鍵約束和候選鍵約束實(shí)現(xiàn)的(會考填空題)
主鍵列必須遵守的規(guī)則:每一個(gè)表只能定義一個(gè)主鍵;主鍵的值必須能夠唯一標(biāo)志表中的每一行記錄,且不能為null;復(fù)合主鍵不能包含不必要的多余列;一個(gè)列名在復(fù)合主鍵的列表中只能出現(xiàn)一次
?

主鍵約束和候選鍵約束的區(qū)別:一個(gè)表只能創(chuàng)建一個(gè)主鍵,可以定義若干個(gè)候選鍵,主鍵約束的關(guān)鍵字是primary?key,候選鍵約束的關(guān)鍵字是unique
6.?參照完整性:通過在創(chuàng)建表或更新表的同時(shí)定義一個(gè)外鍵聲明來實(shí)現(xiàn)的
聲明外鍵方式:在表中某個(gè)列的屬性定義后直接加上“reference?definition”語法項(xiàng);在表中所有列的屬性定義后添加“foreign key(字段名1,字段名2...)”
?

7.?用戶自定義完整性:非空約束、check約束、觸發(fā)器
完整性約束不能直接被修改,實(shí)際上是用alter?table先刪除在新建一個(gè)新的約束,使用alter?table可以獨(dú)立刪除完整性而不會刪除表
?


第二小節(jié) 觸發(fā)器(難點(diǎn))
8.?觸發(fā)器:是用戶定義在關(guān)系表上的一類由事件驅(qū)動的數(shù)據(jù)庫對象,也是一種保證數(shù)據(jù)庫完整性的方法
9.?觸發(fā)器的組成:事件、條件、動作
10.?觸發(fā)器的作用:實(shí)現(xiàn)主鍵和外鍵不能保證的復(fù)雜的參照完整性和數(shù)據(jù)一致性,從而有效保護(hù)表中的數(shù)據(jù)
?

添加一個(gè)觸發(fā)器,在banner表執(zhí)行insert操作時(shí),用戶變量msg為“有新紀(jì)錄添加”
?

每個(gè)事件只允許一個(gè)觸發(fā)器,每個(gè)表最多支持6個(gè)觸發(fā)器
第三小節(jié) 安全性與訪問控制
11.?數(shù)據(jù)安全性:是指保護(hù)數(shù)據(jù)庫以防止不合法的使用而造成數(shù)據(jù)泄露、更改或破壞
12.?安全性與訪問控制:身份驗(yàn)證、數(shù)據(jù)庫用戶權(quán)限確認(rèn)使用create?user語句創(chuàng)建mysql賬號
?

使用grant為用戶授權(quán):grant后面是權(quán)限名稱 ?on后面是權(quán)限級別
?

使用revoke:和grant語法一樣,但是to要改為from
?

第四小節(jié) 事務(wù)與并發(fā)控制
13.?事務(wù):用戶定義的一個(gè)數(shù)據(jù)操作序列,這些操作可作為一個(gè)完整的工作單元,要么全部執(zhí)行,要么全部不執(zhí),是一個(gè)不可分割的工作單位,事務(wù)中的操作一般是對數(shù)據(jù)的更新操作,包括增刪改
14.?事務(wù)的特征(ACID)(簡答題會考):原子性、一致性、隔離性(數(shù)據(jù)不一致是破壞了隔離性)、持續(xù)性(永久性)
?

15.?并發(fā)操作問題:丟失更新、不可重復(fù)讀、讀“臟”數(shù)據(jù)
16.?控制并發(fā)的技術(shù):封鎖
17.?封鎖的基本思想:需要時(shí),食物通過向系統(tǒng)請求對它所希望的數(shù)據(jù)對象加鎖,以確保他不被非預(yù)期改變
18.?鎖(會有填空題):一個(gè)鎖實(shí)質(zhì)上就是允許或阻止一個(gè)事務(wù)對一個(gè)數(shù)據(jù)庫對象的存取特權(quán)
19.?基本的封鎖類型:排它鎖(X鎖,用于備份) ?、共享鎖(S鎖,用于恢復(fù)數(shù)據(jù))
20.?封鎖的工作原理:
21.?封鎖的粒度(考簡答題):用來描述封鎖的數(shù)據(jù)單元大小,鎖的粒度越細(xì),并發(fā)性就越大但軟件復(fù)雜性和開銷也越大
22.?封鎖的級別:又稱一致性級別或隔離度,有0級封鎖,1級封鎖,2級封鎖,3級封鎖
23.?活鎖的處理方案(有填空題):先來先服務(wù)
24.?死鎖的預(yù)防方案:一次性封鎖請求、鎖請求排序、序列化處理、資源剝奪
25.?死鎖檢測:圖論的方法檢測死鎖,并以正在執(zhí)行的事務(wù)為節(jié)點(diǎn)
26.?可串行性:一組事務(wù)的一個(gè)調(diào)度就是他們的基本操作的一種排序,在數(shù)據(jù)系統(tǒng)中,可串行性就是并發(fā)執(zhí)行的正確性準(zhǔn)則,即當(dāng)一組事務(wù)的并發(fā)執(zhí)行調(diào)度室可串行化的,才認(rèn)為他們是正確的
27.?兩段封鎖法:發(fā)展或加鎖階段、收縮或釋放鎖階段
第五小節(jié) 備份與恢復(fù)
28.?數(shù)據(jù)庫備份與恢復(fù)的概念:數(shù)據(jù)備份是指通過導(dǎo)出數(shù)據(jù)或復(fù)制表文件的方式來制作數(shù)據(jù)庫的副本,數(shù)據(jù)恢復(fù)是指遭到破壞時(shí),將備份的數(shù)據(jù)庫加載到系統(tǒng),從而使數(shù)據(jù)庫錯(cuò)誤狀態(tài)恢復(fù)到備份時(shí)的正確狀態(tài),數(shù)據(jù)庫的恢復(fù)是以備份為基礎(chǔ)的,他是與備份相對應(yīng)的系統(tǒng)維護(hù)和管理操作(考填空題)
29.?備份數(shù)據(jù):select * into?...outfile?’備份的文件名’ export_options
30.?恢復(fù)數(shù)據(jù):load?data ... infile
備份是需要在指定的表上使用lock?tables 表名 read,做一個(gè)讀鎖定,防止備份過程中被其他用戶更新,恢復(fù)數(shù)據(jù)時(shí),則需要使用lock?table write 語句做一個(gè)寫鎖定,以避免發(fā)生數(shù)據(jù)沖突,在操作完后,使用unlock table進(jìn)行解鎖
第七章?數(shù)據(jù)庫應(yīng)用設(shè)計(jì)與開發(fā)實(shí)例
第一小節(jié) 需求描述與分析
1.?功能需求:有具體的完成內(nèi)容的需求
2.?非功能性需求:指軟件產(chǎn)品為滿足用戶業(yè)務(wù)需求而必須具有除功能需求以外的特征,包括系統(tǒng)的性能、可靠性、可維護(hù)性、可擴(kuò)展性和對技術(shù)的業(yè)務(wù)適應(yīng)性等
數(shù)據(jù)庫的并發(fā)操作帶來的問題:丟失更新問題、讀臟數(shù)據(jù)、不可重復(fù)讀問題
DBMS提供子模式描述語言嚴(yán)格地定義子模式
數(shù)據(jù)聚集結(jié)構(gòu)的一種有效方式是塊結(jié)構(gòu)方式
物理獨(dú)立性:指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中數(shù)據(jù)是相互獨(dú)立的。即,數(shù)據(jù)在磁盤中如何存儲應(yīng)用程序不需要了解,應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),這樣當(dāng)數(shù)據(jù)的物理存儲改變了,應(yīng)用程序不用改變。
邏輯獨(dú)立性:指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨(dú)立的,即,當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),用戶程序也可以不變。