




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
/第1章引言1.數(shù)據(jù)是描述現(xiàn)實(shí)世界事物的符號(hào)記錄,是用物理符號(hào)記錄下來(lái)的可以識(shí)別的信息。數(shù)據(jù)是信息的符號(hào)表示,是載體;信息是數(shù)據(jù)的語(yǔ)義說(shuō)明,是內(nèi)涵。2.數(shù)據(jù)模型是對(duì)現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象,是數(shù)據(jù)庫(kù)系統(tǒng)的形式框架,用來(lái)描述數(shù)據(jù)的一組概念和定義,包括描述數(shù)據(jù)、數(shù)據(jù)聯(lián)系、數(shù)據(jù)操作、數(shù)據(jù)語(yǔ)義以及數(shù)據(jù)一樣性的概念工具。滿意三條件:比較真實(shí)地模擬現(xiàn)實(shí)世界;易于人們理解;易于計(jì)算機(jī)實(shí)現(xiàn)三個(gè)組成要素:數(shù)據(jù)結(jié)構(gòu)(靜態(tài),數(shù)據(jù)對(duì)象本身結(jié)構(gòu)及之間的聯(lián)系)、數(shù)據(jù)操作(對(duì)數(shù)據(jù)對(duì)象操作及操作規(guī)則的集合)和完整性約束(語(yǔ)義約束:數(shù)據(jù)模型、數(shù)據(jù)內(nèi)部及之間聯(lián)系)3.模式是對(duì)數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是全部用戶的公共數(shù)據(jù)視圖,也稱為邏輯模式或概念模式。
外模式是對(duì)數(shù)據(jù)庫(kù)用戶能夠望見(jiàn)和運(yùn)用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是和某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示,也稱為子模式、用戶模式或用戶視圖。
內(nèi)模式是對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的物理結(jié)構(gòu)和存儲(chǔ)方式的描述,也稱為物理模式或存儲(chǔ)模式。當(dāng)數(shù)據(jù)庫(kù)模式發(fā)生變更時(shí),通過(guò)調(diào)整外模式/模式間的映像關(guān)系,使得應(yīng)用程序不必隨之修改,從而保證數(shù)據(jù)和應(yīng)用程序間的邏輯獨(dú)立性,簡(jiǎn)稱數(shù)據(jù)的邏輯獨(dú)立性。
當(dāng)數(shù)據(jù)庫(kù)數(shù)據(jù)的物理存儲(chǔ)結(jié)構(gòu)變更時(shí),通過(guò)調(diào)整模式/內(nèi)模式映像關(guān)系,保持?jǐn)?shù)據(jù)庫(kù)模式不變,使數(shù)據(jù)庫(kù)系統(tǒng)的外模式和應(yīng)用程序不隨之變更,保證數(shù)據(jù)和應(yīng)用程序間的物理獨(dú)立性,簡(jiǎn)稱數(shù)據(jù)的物理獨(dú)立性。4.數(shù)據(jù)庫(kù)是存儲(chǔ)在計(jì)算機(jī)內(nèi)的共享數(shù)據(jù)集合,數(shù)據(jù)庫(kù)管理系統(tǒng)是一種數(shù)據(jù)管理系統(tǒng)軟件。數(shù)據(jù)庫(kù)系統(tǒng)則是在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的軟硬件系統(tǒng)構(gòu)成,包括了數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)和數(shù)據(jù)庫(kù)應(yīng)用程序。df5.DBMS的主要功能有數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)庫(kù)運(yùn)行管理和限制、數(shù)據(jù)庫(kù)建立和維護(hù)。
DBMS包括查詢處理器和存儲(chǔ)管理器。查詢處理器實(shí)現(xiàn)面對(duì)用戶的查詢分析處理和優(yōu)化功能。存儲(chǔ)管理器為用戶和應(yīng)用程序供應(yīng)了訪問(wèn)存儲(chǔ)在數(shù)據(jù)庫(kù)文件中的應(yīng)用數(shù)據(jù)的接口。6.關(guān)系模型用二維表表示實(shí)體及實(shí)體之間的聯(lián)系,現(xiàn)實(shí)世界中的每個(gè)客觀對(duì)象對(duì)應(yīng)表中的一行叫做一條記錄,表中的每個(gè)列(屬性)描述對(duì)象類的某一特征,列的值(屬性的取值)刻畫(huà)和描述客觀對(duì)象的某一具體的特征。優(yōu)缺點(diǎn):建立在“集合”“關(guān)系”上,嚴(yán)格成熟的理念基礎(chǔ);用關(guān)系表示實(shí)體及之間聯(lián)系,簡(jiǎn)潔易懂;存儲(chǔ)路徑透亮,較好的數(shù)據(jù)獨(dú)立性和平安保密性;查詢效率低于非關(guān)系模型。第2章數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)生命周期2.1
軟件生命周期是指軟件產(chǎn)品從考慮其概念起先,到該產(chǎn)品不再運(yùn)用的整個(gè)時(shí)期。一般包括概念階段、需求階段、設(shè)計(jì)階段、實(shí)現(xiàn)階段、測(cè)試階段、安裝部署及交付階段、運(yùn)行階段和維護(hù)階段。數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)需求是指用戶對(duì)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)在功能、性能、行為、設(shè)計(jì)約束等方面的期望和要求:數(shù)據(jù)及數(shù)據(jù)處理、業(yè)務(wù)、性能、其他存儲(chǔ)平安備份和復(fù)原等。2.2數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)生命周期模型1.瀑布模型原理,項(xiàng)目規(guī)劃、需求分析、系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)和部署、運(yùn)行管理和維護(hù)五部分
2.快速原型模型和增量模型原理,允許漸進(jìn)、迭代地開(kāi)發(fā)DBAS。
3.依據(jù)DBAS的軟件組成和各自功能,細(xì)化DBAS需求分析和設(shè)計(jì)階段,引入了數(shù)據(jù)組織和存儲(chǔ)設(shè)計(jì)、數(shù)據(jù)訪問(wèn)和處理設(shè)計(jì)、應(yīng)用設(shè)計(jì)三條設(shè)計(jì)主線,分別用于設(shè)計(jì)DBAS中的數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)事務(wù)和應(yīng)用程序。
4.設(shè)計(jì)階段細(xì)分為概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)三個(gè)步驟,每一步涵蓋三條設(shè)計(jì)主線。第3章需求分析及功能建模方法3.1數(shù)據(jù)元素(列)是數(shù)據(jù)處理中的最小單位。3.2DFD圖:數(shù)據(jù)流(標(biāo)出名字的箭頭)、處理、數(shù)據(jù)存儲(chǔ)(橫圓柱)、數(shù)據(jù)源/終點(diǎn)(棱形)3.3IDEF0圖:更好地理解需求;ICOM(輸入、限制、輸出、機(jī)制)碼;至少一個(gè)限制和輸出箭頭。A-0;A0(頂層圖);A1;A113.4DFD和IDEF0的比較:結(jié)構(gòu)化分析思想:自頂而下逐級(jí)細(xì)化1.DFD圖用箭頭也叫數(shù)據(jù)流來(lái)描述數(shù)據(jù)移動(dòng)的方向、數(shù)據(jù)處理之間的數(shù)據(jù)依靠關(guān)系,IDEF0圖也用箭頭表示數(shù)據(jù)流,但不強(qiáng)調(diào)流或依次,強(qiáng)調(diào)數(shù)據(jù)約束,箭頭語(yǔ)義更豐富。2.DFD模型有四種元素,IDEF0圖只有兩種:箭頭和活動(dòng)3.IDEF0圖更加規(guī)范。其概念、建模方法、畫(huà)圖規(guī)則等均有說(shuō)明和規(guī)定4.IDEF0模型結(jié)構(gòu)更清晰,便于理解和溝通3.5結(jié)構(gòu)化分析及建模方法的優(yōu)點(diǎn):1)不過(guò)早陷入具體的細(xì)微環(huán)節(jié),從整體或宏觀入手分析問(wèn)題,如業(yè)務(wù)系統(tǒng)的總體結(jié)構(gòu),系統(tǒng)及子系統(tǒng)的關(guān)系。
2)通過(guò)圖形化的模型對(duì)象直觀地表示系統(tǒng)完成什么功能,便利系統(tǒng)分析員理解和描述系統(tǒng)。
3)模型對(duì)象不涉及太多技術(shù)術(shù)語(yǔ),便于用戶理解模型。第4章數(shù)據(jù)庫(kù)概念設(shè)計(jì)和數(shù)據(jù)建模4.1概念設(shè)計(jì)的目的和任務(wù):面對(duì)現(xiàn)實(shí)世界,理解和描述應(yīng)用領(lǐng)域中的數(shù)據(jù)需求,分析確定系統(tǒng)須要存儲(chǔ)和處理什么數(shù)據(jù)。過(guò)程:確定實(shí)體集;確定聯(lián)系和聯(lián)系類型;建立由信息模型表示的業(yè)務(wù)模型;確定實(shí)體集屬性;優(yōu)化信息模型。4.2實(shí)體集描述具有相同屬性特征和性質(zhì)的事物集合;屬性描述實(shí)體集具有的某一特征或性質(zhì)4.3IDEF1X:標(biāo)定型(子依父實(shí)例才標(biāo)定)(確定型);非標(biāo)定型(確定型);分類;不確定第5章關(guān)系數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)5.1關(guān)系數(shù)據(jù)庫(kù):依據(jù)二維表格組織和存儲(chǔ)的相互關(guān)聯(lián)的關(guān)系(表)的集合。
關(guān)系數(shù)據(jù)庫(kù)采納關(guān)系模型在計(jì)算機(jī)中組織、存儲(chǔ)、處理和管理數(shù)據(jù)。5.2主碼約束:惟一性;最小性,不能取空值,并且取值要唯一外碼約束:假如兩個(gè)關(guān)系R和S,X是R的屬性或?qū)傩越M,且X不是R的碼,但X是S的碼,則稱X是R的外碼。或者取空值,或者等于S中某個(gè)元組的主碼的值。5.3邏輯設(shè)計(jì)的內(nèi)容:定義和描述數(shù)據(jù)庫(kù)的全局邏輯結(jié)構(gòu)、數(shù)據(jù)之間的關(guān)系、數(shù)據(jù)的完整性等目的:得到實(shí)際數(shù)據(jù)庫(kù)管理系統(tǒng)可以處理的數(shù)據(jù)庫(kù)模式。步聚:ER圖轉(zhuǎn)化關(guān)系模式;優(yōu)化關(guān)系模式;數(shù)據(jù)完整性設(shè)計(jì);外模式設(shè)計(jì)5.4關(guān)系模式描述關(guān)系的靜態(tài)結(jié)構(gòu),由模式名、屬性、完整性約束組成,關(guān)系是一個(gè)表中記錄的集合,關(guān)注和強(qiáng)調(diào)的是值(模式實(shí)例)的集合,也是關(guān)系模式在某一時(shí)刻狀態(tài)的反映。5.5關(guān)系的完整性(完整性約束):對(duì)關(guān)系所滿意條件的定義。作用:限定和檢查數(shù)據(jù)庫(kù)所含實(shí)例的合法性和正確性。靜態(tài):主碼、外碼、域(用戶定義);動(dòng)態(tài):基于業(yè)務(wù)規(guī)則5.6偽傳遞規(guī)則:X-Y,YW-Z,則XW-Z成立。5.7規(guī)范化設(shè)計(jì)理論的主要內(nèi)容是范式,即關(guān)系模式滿意的條件,它是數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的指南,也是衡量關(guān)系模式設(shè)計(jì)優(yōu)劣的標(biāo)準(zhǔn)。目的:消退數(shù)據(jù)冗余及避開(kāi)操作異樣,基本過(guò)程:對(duì)關(guān)系進(jìn)行分解。一個(gè)低級(jí)范式的關(guān)系模式通過(guò)分解(投影)方法可轉(zhuǎn)換成多個(gè)高一級(jí)范式的關(guān)系模式的集合,這個(gè)過(guò)程叫規(guī)范化。5.81NF:R的每一屬性均不行再分;2NF:是1NF且每個(gè)非主屬性完全依靠于主碼。在1上消退非主屬性對(duì)主碼的部分函數(shù)依靠;3NF:是1NF且每個(gè)非主屬性只依靠于主碼。在2上消退非主屬對(duì)主碼的傳遞函數(shù)依靠。5.9ER模型轉(zhuǎn)換關(guān)系模型:實(shí)體集轉(zhuǎn)為同名關(guān)系;聯(lián)系轉(zhuǎn)為一個(gè)關(guān)系,各實(shí)體集的碼及聯(lián)系的屬性轉(zhuǎn)為關(guān)系的屬性(1:1均可、1:n取n、m:n取集);合并具有相同碼的關(guān)系。第6章存儲(chǔ)技術(shù)和數(shù)據(jù)庫(kù)物理設(shè)計(jì)6.1物理設(shè)計(jì)是在具體的硬件環(huán)境、OS、DBMS約束下,基于邏輯設(shè)計(jì),設(shè)計(jì)具體數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)和存取方式。目的:占用空間少、訪問(wèn)效率高、維護(hù)代價(jià)低。主要步驟有數(shù)據(jù)庫(kù)邏輯模式調(diào)整、文件組織和存取設(shè)計(jì)、數(shù)據(jù)分布設(shè)計(jì)、平安模式設(shè)計(jì)、確定系統(tǒng)配置、物理模式評(píng)估。6.2索引技術(shù)(Indexing)是一種快速文件訪問(wèn)技術(shù),它將文件記錄在某個(gè)或某些域(或稱為屬性)上的取值和該記錄的物理地址干脆聯(lián)系起來(lái),供應(yīng)了一種依據(jù)記錄域的取值快速訪問(wèn)文件記錄的機(jī)制。索引文件是一種利用索引技術(shù)支持快速文件訪問(wèn)的文件組織和存取方法。索引加快了查詢記錄卻減慢了數(shù)據(jù)更新速度,本身還占用肯定的存儲(chǔ)空間。6.3文件組織:如何將關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系映射為操作系統(tǒng)中的數(shù)據(jù)庫(kù)文件,及管理文件。文件結(jié)構(gòu):如何將DB文件中的邏輯記錄映射到物理文件的中磁盤(pán)塊。文件存取:針對(duì)某種結(jié)構(gòu)的DB文件,如何查、添刪改其中的邏輯記錄6.4數(shù)據(jù)字典:數(shù)據(jù)庫(kù)各類對(duì)象的描述信息、數(shù)據(jù)庫(kù)管理系統(tǒng)的限制信息。包括關(guān)系模式信息、和視圖描述有關(guān)的信息、關(guān)系的存儲(chǔ)結(jié)構(gòu)和存取方法信息、完整性約束、平安性有關(guān)的信息、數(shù)據(jù)庫(kù)運(yùn)行統(tǒng)計(jì)信息。作用:DBA用來(lái)監(jiān)視DBMS的運(yùn)用狀況并幫助完成管理工作;一般用戶可用于查閱部分?jǐn)?shù)據(jù)庫(kù)結(jié)構(gòu)信息;DBS運(yùn)行時(shí)各子系統(tǒng)頻繁運(yùn)用以完成相應(yīng)的存儲(chǔ)和查詢處理功能。6.5DBMS的三種完整性限制機(jī)制:CHECK子句、斷言、觸發(fā)器斷言語(yǔ)句:Createassertion斷言約束名check(…)6.6堆文件:數(shù)據(jù)量少且操作頻繁;批量加載數(shù)據(jù)(先選為堆文件再調(diào)整文件結(jié)構(gòu))依次文件:查詢條件定義在查找碼上;快速的二分查找散列文件:基于散列域值的等值匹配,特殊是訪問(wèn)依次是隨機(jī)的。非精確查詢;非散列域B-樹(shù)和B+-樹(shù):大數(shù)據(jù)量基本表;聚焦文件:多表連接操作6.7有序索引技術(shù)利用索引文件實(shí)現(xiàn)查找碼取值到記錄物理地址間的映射關(guān)系。索引文件由索引記錄組成,每個(gè)記錄中的索引項(xiàng)記錄了某個(gè)特定的查找碼值和具有該值的數(shù)據(jù)文件記錄的物理地址。
當(dāng)須要訪問(wèn)數(shù)據(jù)文件中某個(gè)數(shù)據(jù)記錄時(shí),先依據(jù)查找碼值查閱索引文件,找到對(duì)應(yīng)的索引項(xiàng),然后從索引項(xiàng)中找出數(shù)據(jù)記錄在數(shù)據(jù)文件中的物理地址.依據(jù)這個(gè)地址訪問(wèn)數(shù)據(jù)記錄。6.8散列技術(shù)是一種快速文件訪問(wèn)技術(shù),它利用散列函數(shù)實(shí)現(xiàn)文件記錄域取值到記錄物理地址間的干脆映射關(guān)系。當(dāng)須要訪問(wèn)數(shù)據(jù)文件中查找碼值為si的某個(gè)或某些文件記錄時(shí),將si作為散列函數(shù)h的輸入計(jì)算得出的散列函數(shù)輸出值h(si)就是文件記錄在數(shù)據(jù)文件中的物理地址。6.9權(quán)限:允許用戶對(duì)一給定的數(shù)據(jù)庫(kù)對(duì)象可執(zhí)行的操作(查詢、添刪改、新建、備份等)。第7章數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)功能設(shè)計(jì)7.1軟件體系結(jié)構(gòu):軟件架構(gòu)={構(gòu)件,連接件,約束}7.2軟件設(shè)計(jì)包括系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)的過(guò)程設(shè)計(jì)、系統(tǒng)的數(shù)據(jù)設(shè)計(jì)三方面內(nèi)容(+人機(jī)界面設(shè)計(jì)),從工程管理的角度,分為概要設(shè)計(jì)、具體設(shè)計(jì)7.3應(yīng)用軟件分為數(shù)據(jù)庫(kù)事務(wù)和應(yīng)用程序。后者一方面可以和數(shù)據(jù)庫(kù)事務(wù)協(xié)調(diào)合作,另一方面還可實(shí)現(xiàn)和數(shù)據(jù)庫(kù)訪問(wèn)無(wú)關(guān)的功能,如通信、人機(jī)交互。7.4事務(wù):具有邏輯獨(dú)立功能的一系列操作的集合,實(shí)現(xiàn)了某些特定的業(yè)務(wù)規(guī)則。7.5事務(wù)概要設(shè)計(jì)的核心是辨識(shí)和設(shè)計(jì)事務(wù)自身的事務(wù)處理邏輯,采納面對(duì)數(shù)據(jù)流的程序設(shè)計(jì)方法設(shè)計(jì)事務(wù)內(nèi)部的數(shù)據(jù)處理流程和結(jié)構(gòu)。7.6C/S結(jié)構(gòu)特點(diǎn):數(shù)據(jù)管理和數(shù)據(jù)處理被分在客戶端和服務(wù)器上;服務(wù)器可支持多個(gè)客戶端;客戶端也可訪問(wèn)多個(gè)服務(wù)器;客戶端=人機(jī)交互+數(shù)據(jù)處理B/S結(jié)構(gòu)特點(diǎn):表示層,WEB閱讀器;功能層,WEB應(yīng)用服務(wù)器;數(shù)據(jù)層,DBMS服務(wù)優(yōu)點(diǎn):實(shí)現(xiàn)人面交互、應(yīng)用業(yè)務(wù)邏輯處理、數(shù)據(jù)管理三層分別,提高了系統(tǒng)的可維護(hù)性;用WEB閱讀器可訪問(wèn)多個(gè)異構(gòu)應(yīng)用平臺(tái),解決了跨平臺(tái)數(shù)據(jù)管理問(wèn)題。第8章SQL8.1SQL=StructuredQueryLanguage,結(jié)構(gòu)化查詢語(yǔ)言8.2二進(jìn)制字符串是用十六進(jìn)制表示的,0x前綴8.3創(chuàng)建表:CREATETABLETable_Card(CardIDvarchar(8)NOTNULL,StartDatedatetimeNOTNULL,EndDatedatetimeNOTNULL,ScoreintNOTNULLCHECK(Score>=0)DEFAULT0,Statechar(1)NOTNULLCHECK(Statein(0,1,2)),Sexchar(1)CHECK(Sexin(‘男’,’女’)),AgeintCHECK(Agebetween[16,85]),CustomerIDvarchar(8),CHECK(EndDate>StartDate),PRIMARYKEY(CardID),FOREIGNKEY(CustomerID)REFERENCESTable_Customer(CustomerID))刪除表:DROPTABLETable_Card修改表:ALTERTABLETable_CardADDCardTypechar(4)NULLALTERTABLETable_CardALTERCOLUMNCardTypechar(8)ALTERTABLETable_CardDROPCOLUMNCardType8.4SELECTCnameFROMTablb_CustomerWHEREAddressIN(‘海淀區(qū)’,’朝陽(yáng)區(qū)’)ANDageBETWEEN40AND50ANDCnameLIKE‘[王張李]%’(‘王__’)ORDERBYStartDateASC,EndDateDESC8.5除COUNT(*)不忽視空值外,其他函數(shù)COUNT(DISTINCT列名)、SUM()、AVG()、MAX()、MIN()均忽視空值。均返回單值。SELECTSUM(Score),MAX(Age),MIN(Age),AVG(Age),COUNT(DISTINCT..)FROMTable8.6分組(GROUPBY)依據(jù)列不能是text,ntext,image和bit類型的列。先分組后計(jì)算統(tǒng)計(jì)每種類別商品的商品數(shù),只列出商品數(shù)大于4個(gè)的商品類別編號(hào)和商品數(shù):SELECTGoodClassIDas商品類別編號(hào),COUNT(*)as商品數(shù)FROMTable_GoodsGROUPBYGoodClassIDHAVINGCOUNT(*)>48.7自連接:查詢和王曉在同一個(gè)區(qū)的顧客的姓名及地址:SELECTT2.Name,T2.AddressFROMTable_CustomerasT1JIONTable_CustomerasT2ONT1.Address=T2.AddressWHERET1.Name=‘王曉’ANDT2.Name!=’王曉’子查詢:一個(gè)SELECT語(yǔ)句嵌套在一個(gè)SELECT、UPDATE、INSERT或DELETE語(yǔ)句中SELECTName,AddressFROMTable_CustomerWHEREAddressIN(SELECTAddressFROMTable_CustomerWHEREName=’王曉’)ANDName!=’王曉’8.8外連接:LEFTOUTERJOIN左外連接(左表全輸出)RIGHTOUTERJOIN右外連接8.9子查詢:[NOT]IN()集合不相關(guān)子查詢,先內(nèi)后外WHERE列=/</>()比較不相關(guān)子查詢,先內(nèi)后外[NOT]EXIST(SELECT*)存在相關(guān)子查詢,先外后內(nèi)8.10修改數(shù)據(jù):INSERT[INTO]表名[列名表]VALUES(值列表)UPDATE表名SET列名=表達(dá)式[WHERE子句]/DELETE[FROM]表名[WHERE子句]分狀況修改:UPDATETable_GoodsSETSalePrice=CASEGoodsClassNameWHEN‘家用電器’THENSalePrice–SalePrice*0.05WHEN‘服裝’THENSalePrice+SalePrice*0.06ELSESalePriceENDFROMTable_GoodsaJIONTable_GoodsClassbONa.ClassID=b.ClassID8.11創(chuàng)建索引:CREATE[UNIQUE][CLUSTERED][NONCLUSTERED]INDEX索引名ON表名(列名[依次(ASC/DESC)])8.12視圖:由從數(shù)據(jù)庫(kù)基本表中選取出來(lái)的數(shù)據(jù)組成的邏輯窗口,是一個(gè)虛表,數(shù)據(jù)庫(kù)只存放視圖的定義而不存放視圖包括的數(shù)據(jù)。對(duì)視圖的操作最終都會(huì)轉(zhuǎn)換為對(duì)基本表的操作。CREATEVIEW視圖名[視圖列名表]ASSELECT語(yǔ)句[WITHCHECKOPTION]作用:簡(jiǎn)化數(shù)據(jù)查詢語(yǔ)句;運(yùn)用戶從多角度視察同一數(shù)據(jù);提高了數(shù)據(jù)平安性(屏蔽掉敏感數(shù)據(jù));供應(yīng)肯定程度的邏輯獨(dú)立性8.13定點(diǎn)數(shù):numeric(p,q)或decimal(p,q),p為精度(數(shù)字位個(gè)數(shù)),不大于38,q為小數(shù)位個(gè)數(shù);bit類型:只存儲(chǔ)1和0,不多于8個(gè)bit列則只用1個(gè)字節(jié)存儲(chǔ)8.14Char(n)代表的是一般字符編碼按定長(zhǎng)存儲(chǔ)的字符串,“n”的含義是字符的個(gè)數(shù),固定占用n個(gè)字節(jié)的空間。varchar(n)代表的是一般字符編碼按不定長(zhǎng)存儲(chǔ)的字符串,“n”的含義也是字符的個(gè)數(shù),按字符的實(shí)際長(zhǎng)度占用空間。第9章事務(wù)高度和并發(fā)限制9.1調(diào)度:定義在多個(gè)事務(wù)上的調(diào)度是這些事務(wù)的全部操作的一個(gè)執(zhí)行序列,代表了這些操作的執(zhí)行依次;沖突操作:事務(wù)Ti的操作Ii和事務(wù)Tj的操作Ij是沖突的,當(dāng)且僅當(dāng)Ii和Ij訪問(wèn)數(shù)據(jù)庫(kù)中同一個(gè)數(shù)據(jù)項(xiàng)Q,并且Ii和Ij中至少有一個(gè)是寫(xiě)操作write(Q);沖突可串行:一個(gè)并發(fā)調(diào)度沖突等價(jià)于某個(gè)串行調(diào)度(推斷一個(gè)并行調(diào)度是否正確)死鎖是指數(shù)據(jù)庫(kù)系統(tǒng)中部分或全部事務(wù)由于無(wú)法獲得對(duì)須要訪問(wèn)的數(shù)據(jù)項(xiàng)的限制權(quán)而處于等待狀態(tài),并且將始終等待下去的一種系統(tǒng)狀態(tài)。9.2ACID:Atomicity原子性;Consistency一樣性;Isolation隔離性;Durability長(zhǎng)久性9.31級(jí)加鎖協(xié)議要求事務(wù)T在修改數(shù)據(jù)項(xiàng)Q之前必需先對(duì)Q加X(jué)鎖,直到事務(wù)結(jié)束才釋放該鎖。事務(wù)結(jié)束包括正常結(jié)束(commit)和非正常結(jié)束(rollback)。但事務(wù)假如是只讀Q而不對(duì)其進(jìn)行修改,是不須要對(duì)Q加鎖的。
2級(jí)加鎖協(xié)議是在1級(jí)加鎖協(xié)議基礎(chǔ)上,要求事務(wù)T在讀取數(shù)據(jù)項(xiàng)Q之前必需先對(duì)其加S鎖,讀完Q后可以馬上釋放S鎖。
3級(jí)加鎖協(xié)議則是在1級(jí)加鎖協(xié)議基礎(chǔ)上,要求事務(wù)T在讀取數(shù)據(jù)項(xiàng)Q之前必需先對(duì)其加S鎖,但是須要等到事務(wù)結(jié)束時(shí)才釋放該S鎖。9.42階段鎖協(xié)議將每個(gè)事務(wù)的執(zhí)行過(guò)程分為加鎖階段和解鎖階段。在加鎖階段,事務(wù)可以申請(qǐng)獲得數(shù)據(jù)項(xiàng)上的任何類型的鎖,但不允許釋放任何鎖。在解鎖階段,事務(wù)可以釋放任何數(shù)據(jù)項(xiàng)上的任何類型的鎖,但不能再申請(qǐng)任何鎖。每個(gè)事務(wù)起先執(zhí)行后就進(jìn)入了加鎖階段。當(dāng)?shù)谝淮吾尫沛i后,即轉(zhuǎn)入解鎖階段。9.5解決死鎖主要采納死鎖預(yù)防和死鎖檢測(cè)和復(fù)原兩類方法。
死鎖預(yù)防利用死鎖預(yù)防協(xié)議,通過(guò)破壞死鎖產(chǎn)生的必要條件來(lái)避開(kāi)系統(tǒng)進(jìn)入死鎖狀態(tài)。一次性加鎖法;依次加鎖法
死鎖檢測(cè)和復(fù)原則是允許系統(tǒng)進(jìn)入死鎖狀態(tài),并且定期檢查系統(tǒng)是否發(fā)生死鎖。當(dāng)發(fā)覺(jué)系統(tǒng)發(fā)生死鎖后,實(shí)行相應(yīng)的復(fù)原機(jī)制使系統(tǒng)擺脫死鎖狀態(tài)。9.6活鎖產(chǎn)生的緣由是在系統(tǒng)非死鎖狀態(tài)下,某些事務(wù)由于始終無(wú)法獲得對(duì)所需訪問(wèn)的數(shù)據(jù)項(xiàng)的限制權(quán)而長(zhǎng)期等待下去,無(wú)法接著執(zhí)行。9.7鎖粒度大:被加鎖數(shù)據(jù)項(xiàng)少、事務(wù)并發(fā)執(zhí)行度低、系統(tǒng)開(kāi)銷小;鎖粒度小則反之9.8基于鎖的并發(fā)限制技術(shù)的原理P166第10章數(shù)據(jù)庫(kù)的實(shí)施、運(yùn)行和維護(hù)10.1試運(yùn)行:功能測(cè)試;性能測(cè)試10.2數(shù)據(jù)庫(kù)維護(hù):數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)和復(fù)原;數(shù)據(jù)庫(kù)的平安性、完整性限制;數(shù)據(jù)庫(kù)性能的檢測(cè)和改善;數(shù)據(jù)庫(kù)的重組和重構(gòu)10.3數(shù)據(jù)庫(kù)平安:行政手段制定規(guī)范;權(quán)限管理、口令等;維護(hù)多個(gè)數(shù)據(jù)副本;防及除毒10.4數(shù)據(jù)庫(kù)重組:依據(jù)系統(tǒng)設(shè)計(jì)要求對(duì)數(shù)據(jù)庫(kù)存儲(chǔ)空間進(jìn)行全面調(diào)整;數(shù)據(jù)庫(kù)重構(gòu):業(yè)務(wù)小范圍變更需對(duì)數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)作必要變更。10.5數(shù)據(jù)庫(kù)監(jiān)控分析:DBA借助相應(yīng)工具監(jiān)測(cè)數(shù)據(jù)庫(kù)系統(tǒng)的運(yùn)行狀況,對(duì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行分析,評(píng)估整個(gè)系統(tǒng)的運(yùn)行狀態(tài),為系統(tǒng)的平安運(yùn)行和性能優(yōu)化供應(yīng)依據(jù)。10.6數(shù)據(jù)庫(kù)空間管理:數(shù)據(jù)量增加和碎片使性能降低;空間溢出會(huì)帶來(lái)災(zāi)難性停機(jī)故障。包括:創(chuàng)建修改刪除數(shù)據(jù)庫(kù)空間、新建移動(dòng)關(guān)聯(lián)數(shù)據(jù)文件等。10.7數(shù)據(jù)庫(kù)參數(shù)調(diào)整:外部調(diào)整:CPU、網(wǎng)絡(luò);調(diào)整內(nèi)存安排(改善程度大);調(diào)整磁盤(pán)I/O(I/O時(shí)間是響應(yīng)時(shí)間的最大組成部分);調(diào)整競(jìng)爭(zhēng)10.8數(shù)據(jù)庫(kù)查詢優(yōu)化:合理運(yùn)用索引;避開(kāi)或簡(jiǎn)化排序(Orderby、Groupby,磁盤(pán)排序比內(nèi)存排序開(kāi)銷大速度慢);避開(kāi)相關(guān)子查詢、外連接(左右連接比內(nèi)連接消耗大);存儲(chǔ)過(guò)程10.9屬于Oracle但不屬于SQLServer的邏輯和物理空間結(jié)構(gòu):表空間、段、區(qū)第11章故障管理11.1故障種類:事務(wù)內(nèi)部故障(事務(wù)回滾撤消修改)、系統(tǒng)故障(影響事務(wù)不壞數(shù)據(jù))、介質(zhì)故障(軟件容錯(cuò)、硬件容錯(cuò))、病毒11.2系統(tǒng)故障對(duì)策:重啟,撤消(UNDO)未提交的事務(wù),重做(REDO)已提交的事務(wù)11.3軟件容錯(cuò):備份、日志文件,利用復(fù)原技術(shù);硬件容錯(cuò):雙物理存儲(chǔ)設(shè)備11.4復(fù)原基本原理:冗余,即全部數(shù)據(jù)均可通過(guò)存儲(chǔ)在別處的冗余數(shù)據(jù)來(lái)重建。11.5對(duì)于常常進(jìn)行數(shù)據(jù)操作的數(shù)據(jù)庫(kù):完全轉(zhuǎn)儲(chǔ)+差異轉(zhuǎn)儲(chǔ)11.6以記錄為單位的日志文件:起先標(biāo)記(TiBEGINTRANSACTION)、結(jié)束標(biāo)記(TiCOMMIT或者TiROLLBACK)、每個(gè)事務(wù)的全部操作(Ti,A,50,80)11.7以數(shù)據(jù)塊為單位的日志文件:存放更新前和更新后的整個(gè)數(shù)據(jù)塊。只有事務(wù)標(biāo)識(shí)和被更新的數(shù)據(jù)塊,沒(méi)有操作類型和操作對(duì)象。11.8日志的作用:用來(lái)進(jìn)行業(yè)務(wù)故障和系統(tǒng)故障復(fù)原;幫助后備副本進(jìn)行介質(zhì)故障復(fù)原(動(dòng)態(tài)轉(zhuǎn)儲(chǔ)必用);記錄操作監(jiān)視行為分析問(wèn)題登記原則:登記次序嚴(yán)格按并行事務(wù)執(zhí)行次序;必需先寫(xiě)日志文件再寫(xiě)數(shù)據(jù)庫(kù)11.9檢查點(diǎn):最大限度削減數(shù)據(jù)庫(kù)完全復(fù)原時(shí)所必需執(zhí)行的日志部分(針對(duì)系統(tǒng)故障)。11.10數(shù)據(jù)庫(kù)鏡像:提高數(shù)據(jù)庫(kù)可用性的解決方案(比如介質(zhì)故障,兩臺(tái)服務(wù)器相互備份)優(yōu)點(diǎn):供應(yīng)完整或幾近完整的數(shù)據(jù)冗余,增加數(shù)據(jù)愛(ài)護(hù);發(fā)生介質(zhì)故障時(shí),數(shù)據(jù)不會(huì)丟失且服務(wù)不會(huì)中斷,提高數(shù)據(jù)庫(kù)可用性;提高鏡像數(shù)據(jù)庫(kù)在升級(jí)期間的可用性。雙機(jī)互備援模式(均為主);雙機(jī)熱備份模式(一主一備份機(jī))。數(shù)據(jù)庫(kù)鏡像可用于并發(fā)操作。11.11RAID廉價(jià)冗余磁盤(pán)陣列:(鏡像冗余、)校驗(yàn)冗余:對(duì)成員磁盤(pán)上的數(shù)據(jù)執(zhí)行異或(XOR)操作得到其校驗(yàn)值并存放在另外的校驗(yàn)磁盤(pán)上。當(dāng)某個(gè)磁盤(pán)發(fā)生故障時(shí),只須計(jì)算其他磁盤(pán)上的校驗(yàn)數(shù)據(jù)和數(shù)據(jù)的異或便可重新得到該磁盤(pán)的值。第12章SQLServer2000數(shù)據(jù)庫(kù)管理系統(tǒng)12.1四個(gè)服務(wù):SQLServer核心服務(wù);SQLServerAgent:代理服務(wù),代理定期進(jìn)行的管理工作;DTC:DistributedTransactionCoordinator,分布式事務(wù)協(xié)調(diào)器,同一事務(wù)訪問(wèn)多個(gè)服務(wù)器MicrosoftSearch:全文檢索服務(wù)12.2四個(gè)版本:企業(yè)版(全部功能、大型數(shù)據(jù)庫(kù))、標(biāo)準(zhǔn)版(小部門(mén))、開(kāi)發(fā)版(同企業(yè)版,作開(kāi)發(fā)測(cè)試系統(tǒng)用,不作生產(chǎn)服務(wù)用)個(gè)人版(移動(dòng)環(huán)境、本地?cái)?shù)據(jù))12.3服務(wù)帳戶:運(yùn)用本地系統(tǒng)帳戶:自動(dòng)取當(dāng)前登錄到Windows的用戶,沒(méi)有Windows的網(wǎng)絡(luò)訪問(wèn)權(quán)限,適用于非網(wǎng)絡(luò)服務(wù)器操作系統(tǒng)(如XP);運(yùn)用域用戶帳戶:運(yùn)用Windows身份驗(yàn)證設(shè)置連接到SQLServer,用戶必是Windows系統(tǒng)管理員,適用于網(wǎng)絡(luò)服務(wù)器OS12.4網(wǎng)絡(luò)庫(kù):在SQLS客戶端和服務(wù)器間傳遞網(wǎng)絡(luò)數(shù)據(jù)包。服務(wù)器可一次監(jiān)聽(tīng)多個(gè)網(wǎng)絡(luò)庫(kù)12.5SQLServer的兩大類數(shù)據(jù)庫(kù):系統(tǒng)數(shù)據(jù)庫(kù):DBMS自動(dòng)創(chuàng)建及維護(hù),存放維護(hù)系統(tǒng)正常運(yùn)行的信息,master(系統(tǒng)級(jí)信息)、msdb(支持自動(dòng)執(zhí)行任務(wù))、model(全部用戶數(shù)據(jù)庫(kù)的公共信息)、tempdb(臨時(shí)數(shù)據(jù)庫(kù)),示例Pubs、Northwind;用戶數(shù)據(jù)庫(kù)12.6估算存儲(chǔ)空間:SQLServer數(shù)據(jù)存儲(chǔ)單位為頁(yè)(Page),一個(gè)數(shù)據(jù)頁(yè)是一塊8KB的連續(xù)磁盤(pán)空間,行不能跨頁(yè)存儲(chǔ),一行數(shù)據(jù)的大小不能超過(guò)一頁(yè)的大小。一個(gè)表10000行數(shù)據(jù),每行3000字節(jié),則須要(10000/2)*8KB=40MB的空間。12.7主數(shù)據(jù)文件:擴(kuò)展名為.mdf,包含數(shù)據(jù)庫(kù)系統(tǒng)信息并可存放用戶數(shù)據(jù)庫(kù)數(shù)據(jù),每個(gè)數(shù)據(jù)庫(kù)只有一個(gè)主數(shù)據(jù)文件。協(xié)助數(shù)據(jù)文件:擴(kuò)展名為.ndf,數(shù)據(jù)量很大時(shí)運(yùn)用,可存放在不同的磁盤(pán)驅(qū)動(dòng)器上,以便得利用多個(gè)磁盤(pán)上的存儲(chǔ)空間并提高數(shù)據(jù)存取的并發(fā)性。12.8每個(gè)數(shù)據(jù)文件及日志文件(.ldf)初始大小均不得小于512KB,主數(shù)據(jù)文件大小不得小于model數(shù)據(jù)庫(kù)主數(shù)據(jù)文件,日志文件最好不小于1MB12.9創(chuàng)建數(shù)據(jù)庫(kù):CREATDATABASEjessyminON――表示數(shù)據(jù)庫(kù)按下面參數(shù)創(chuàng)建(NAME=jessymin,――邏輯文件名FILENAME=‘…\MSSQL\Data\jessymin_Data.mdf’,――OS下的物理文件名SIZE=10,――文件初始大小,單位默認(rèn)為MB,下同MAXSIZE=30,――文件最大大小FILEGROWTH=5,――文件增量,為0表示不自動(dòng)增長(zhǎng),默認(rèn)按當(dāng)前10%增長(zhǎng))LOGON――表示該數(shù)據(jù)庫(kù)日志文件按下面參數(shù)創(chuàng)建(……..同上,只是物理文件名為jessymin.LDF)12.10刪除數(shù)據(jù)庫(kù):DROPDATABASEjessymin。刪除六種數(shù)據(jù)庫(kù)對(duì)象均用DROP12.11Transact-SQL:非過(guò)程化高級(jí)語(yǔ)言,全司變量@@,局部變量@,局部變量可以是自定義類型但不能是text或image類型。12.12Transact-SQL示例:計(jì)算1+2+3+…+100的和:DECLARE@iint,@sumintSET@i=1,@sum=0--SET可換為SELECTWHILE@i<=100BEGINSET@sum=@sum+@iSET@i=@i+1ENDPRINT@sum12.13DTS(DataTransformationService)數(shù)據(jù)轉(zhuǎn)換服務(wù)。留意區(qū)分DTC(分布式事務(wù)協(xié)調(diào)器)。導(dǎo)出數(shù)據(jù)時(shí)用戶必需是要連接的數(shù)據(jù)庫(kù)服務(wù)器的合法用戶,且對(duì)要導(dǎo)出的表具有查詢權(quán)限第13章數(shù)據(jù)庫(kù)對(duì)象13.1存儲(chǔ)過(guò)程的:SQL語(yǔ)句和限制流語(yǔ)句的預(yù)編譯集合,應(yīng)用程序可通過(guò)調(diào)用方法來(lái)執(zhí)行優(yōu)點(diǎn):模塊化程序設(shè)計(jì);提高性能;削減網(wǎng)絡(luò)流量;可作為平安機(jī)制運(yùn)用13.2帶有多個(gè)參數(shù)并有默認(rèn)值及輸出參數(shù)的存儲(chǔ)過(guò)程示例:CREATEPROCEDUREp_Example@areavarchar(20)=‘武漢高校’,@Pricemoney,@SumintoutputASSELECT/UPDATE/INSERT/DELETE……SET@Sum=…..應(yīng)用程序中執(zhí)行的SQL語(yǔ)句:Declare@resintEXECUTEp_Example‘武漢高校信息學(xué)部’,1000,@resoutput或者EXECUTEp_Example@Price=1000,@resoutput13.3用戶自定義函數(shù):標(biāo)量函數(shù)(返回單值,非text、Image類型,任何允許出現(xiàn)表達(dá)式的地方)、內(nèi)嵌表值函數(shù)(返回一個(gè)表,放在查詢語(yǔ)句的From子句中)、多語(yǔ)句表值函數(shù)(返回一個(gè)可自定義的表,也放在查詢語(yǔ)句的From子句中,視圖和存儲(chǔ)過(guò)程的結(jié)合)13.4標(biāo)量函數(shù)救示例:依據(jù)指定的商品類別查詢?cè)擃惖纳唐穫€(gè)數(shù)。CREATFUNCTIONdbo.f_GoodsCount(@classvarchar(10))RETURNSintASBEGINDECLARE@xintSELECT@x=count(*)FromT_GoodsClassaJIONT_GoodsbONa.GoodClassID=b.GoodClassIDWHEREGoodClassName=@classRETURN@xEND調(diào)用:SELECTdbo.f_GoodsCount(‘服裝’)或者SELECTGoodsNameAS商品名,dbo.f_GoodsCount(‘服裝’)AS種類數(shù)From….13.5內(nèi)嵌表值函數(shù)的不同之處在于RETURNS后只能是table,RETURN后面只能是單個(gè)的SELECT語(yǔ)句,沒(méi)有相關(guān)聯(lián)的返回變量也沒(méi)有函數(shù)體。調(diào)用時(shí)放在查詢語(yǔ)句的FROM子句中。13.6觸發(fā)器是一種不須要由用戶來(lái)調(diào)用的存儲(chǔ)過(guò)程,當(dāng)用戶對(duì)表進(jìn)行UPDATE、INSERT或DELETE操作時(shí)自動(dòng)觸發(fā)執(zhí)行。作用:保證業(yè)務(wù)規(guī)則和數(shù)據(jù)完整性。優(yōu)點(diǎn):用編程方法來(lái)實(shí)現(xiàn)困難的處理邏輯和業(yè)務(wù)規(guī)則,增加數(shù)據(jù)完整性約束。13.7觸發(fā)器適用場(chǎng)合:比CHECK語(yǔ)句更困難的數(shù)據(jù)約束(可引用其他表中的列);為保證數(shù)據(jù)庫(kù)性能而維護(hù)的非規(guī)范化數(shù)據(jù)(如增加統(tǒng)計(jì)總值的列);實(shí)現(xiàn)困難的業(yè)務(wù)規(guī)則13.8AFTER/FOR:后觸發(fā)型觸發(fā)器,可在同一操作上建立多個(gè);INSTEADOF:前觸發(fā)型,在同一操作上只能建立一個(gè)。全部的涉及對(duì)數(shù)據(jù)庫(kù)對(duì)象操作的語(yǔ)句均不允許出現(xiàn)在觸發(fā)器中。13.9DELETED表:存儲(chǔ)UPDATE和DELETED操作語(yǔ)句所影響行的更新前的舊數(shù)據(jù);INSERTED表:存儲(chǔ)UPDATE和INSERT操作語(yǔ)句所影響行的更新后的新數(shù)據(jù)。13.10維護(hù)數(shù)據(jù)操作完整性的后觸發(fā)器示例:銷售量大于庫(kù)存量則撤銷當(dāng)前銷售,小于時(shí)則在插入銷售單據(jù)明細(xì)時(shí)同時(shí)修改庫(kù)存量。CreateTriggerOperatonConONT_SaleDetailFORINSERTASIFEXISTS(Select*FrominsertedaJionT_GoodsbONa.GoodsID=b.GoodsIDWHEREa.Quanity>b.TotalCharge)BEGINROLLBACKPRINT‘此商品庫(kù)存量小于此次銷售數(shù)量’ENDELSEUPDATET_GoodsSETTotalCharge=TotalCharge–(SELECTQuanityFrominserted)13.11維護(hù)不同列之間取值完整性的后觸發(fā)器示例:保證商品表中的單價(jià)和價(jià)格變動(dòng)表中一樣CREATETRIGGERPriceConstraintONT_PriceHistoryFORINSERT,UPDATEASDECLARE@newpricemoneySELECT@newprice=SalePriceFrominsertedUPDATET_GoodsSETSaleUnitPrice=@newpriceWHEREGoodsIDIN(SELECTGoodIDFrominserted)13.12前觸發(fā)器指定執(zhí)行觸發(fā)器而不執(zhí)行引發(fā)觸發(fā)器的SQL語(yǔ)句,因此,假如數(shù)據(jù)操作滿意完整性約束則在觸發(fā)器中必需重新執(zhí)行這些數(shù)據(jù)操作語(yǔ)句。前觸發(fā)器示例:保證銷售單據(jù)中的會(huì)員卡是有效日期內(nèi)的會(huì)員卡:CREATETRIGGERCardValidONT_SaleDetailINSTEADOFINSERT,UPDATEASIFNOTEXISTS(SElETCT*FrominsertedaJOINT_CardbONa.CardID=b.CardIDWHEREa.SalDateNOTBETWEENb.StartDateANDb.EndDate)INSERTINTOT_SaleDetailSELECT*Frominserted(若滿意條件此語(yǔ)句重新執(zhí)行)13.13用SQL語(yǔ)句修改存儲(chǔ)過(guò)程、用戶自定義函數(shù)、觸發(fā)器的語(yǔ)法和創(chuàng)建基本一樣,只是將CREATE改為了ALTER。(查詢分析器中實(shí)現(xiàn))第14章平安管理14.1數(shù)據(jù)庫(kù)的平安限制:在DBMS的不同層次供應(yīng)對(duì)有意和無(wú)意損害行為的平安防范。有意的非法活動(dòng):加密存、取數(shù)據(jù);有意的非法操作:用戶身份驗(yàn)證、限制操作權(quán);無(wú)意的損壞:提高系統(tǒng)的牢靠性和數(shù)據(jù)備份14.2數(shù)據(jù)庫(kù)權(quán)限的種類:對(duì)DBMS進(jìn)行維護(hù)的權(quán)限;對(duì)數(shù)據(jù)庫(kù)對(duì)象和數(shù)據(jù)進(jìn)行操作的權(quán)限SQLServer權(quán)限種類(和數(shù)據(jù)庫(kù)用戶分類對(duì)應(yīng)):隱含權(quán)限(預(yù)定義的內(nèi)置權(quán)限);語(yǔ)句權(quán)限(DDL語(yǔ)句權(quán)限,創(chuàng)建刪除數(shù)據(jù)庫(kù)對(duì)象);對(duì)象權(quán)限(DML語(yǔ)句權(quán)限,操作數(shù)據(jù)庫(kù)對(duì)象)14.3數(shù)據(jù)庫(kù)用戶的分類:數(shù)據(jù)庫(kù)系統(tǒng)管理員(SA,全部權(quán)限);數(shù)據(jù)庫(kù)對(duì)象擁有者(創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象的用戶,對(duì)所擁有的對(duì)象具有一切權(quán)限);一般用戶:只具有對(duì)數(shù)據(jù)的編輯查詢功能14.4三個(gè)認(rèn)證過(guò)程:身份認(rèn)證,只認(rèn)證用戶是否有連接到數(shù)據(jù)庫(kù)服務(wù)器的“連接權(quán)”;合法用戶,驗(yàn)證是否是數(shù)據(jù)庫(kù)的合法用戶;權(quán)限認(rèn)證,驗(yàn)證用戶是否具有要進(jìn)行的操作的操作權(quán)限14.5系統(tǒng)內(nèi)置的登錄賬戶:BUILTIN\Administrator;SA;域名\Administrator,均DBMS管理員14.6創(chuàng)建SQLServer身份認(rèn)證的登錄賬戶:EXECUTEsp_addlogin‘user3’,’123’,’User3為登錄賬戶,123為密碼,jessymin為默認(rèn)數(shù)據(jù)庫(kù);WINDOWS認(rèn)證:sp_grantlogin14.7刪除登錄賬戶存儲(chǔ)過(guò)程:EXECdroplogin‘user3’(SQLServer身份驗(yàn)證);EXECrevokelogin‘Server1\nt_user’14.8登錄賬戶可以連接到SQLServer服務(wù)器上但并不具有訪問(wèn)任何數(shù)據(jù)庫(kù)的實(shí)力,必需再成為數(shù)據(jù)庫(kù)的合法用戶。一個(gè)登錄賬戶可以映射為多個(gè)數(shù)據(jù)庫(kù)用戶,管理數(shù)據(jù)庫(kù)用戶的過(guò)程事實(shí)上就是建立登錄賬戶和數(shù)據(jù)庫(kù)用戶之間的映射關(guān)系的過(guò)程。新建的數(shù)據(jù)默認(rèn)只有一個(gè)用戶:dbo,它是數(shù)據(jù)庫(kù)的擁有者。14.9創(chuàng)建數(shù)據(jù)庫(kù)用戶:EXECsp_adduser‘U2’,’U2’,’user_role’,用戶名和登錄賬戶一樣,并讓其成為“user_role”角色的成員。刪除:EXECsp_dropuser‘14.10合法用戶除了對(duì)所屬數(shù)據(jù)庫(kù)系統(tǒng)表具有一些查詢權(quán)限外并不對(duì)數(shù)據(jù)庫(kù)中的用戶數(shù)據(jù)和對(duì)象具有任何權(quán)限,還得得到對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)和對(duì)象的操作權(quán)限14.11收回權(quán)限:不允許用戶或角色具有某種操作權(quán),或者收回曾經(jīng)授予的權(quán)限,置空標(biāo)記;拒絕訪問(wèn):拒絕某用戶或角色具有某種操作權(quán),即使由于繼承獲得的權(quán)限也無(wú)效,叉叉標(biāo)記14.12用Transact-SQL語(yǔ)句管理對(duì)象權(quán)限入管理語(yǔ)句權(quán)限:P24514.13角色:數(shù)據(jù)庫(kù)中具有相同權(quán)限的一組用戶。系統(tǒng)預(yù)定義的固定角色;自定義用戶角色14.14固定的服務(wù)器角色:*amdin+dbcreator,權(quán)限最重要最高的是sysadmin,角色成員源均為系統(tǒng)的登錄賬戶:EXECsp_addsrvrolemember‘Server1\nt_user’,‘sysadmin’14.15固定的數(shù)據(jù)庫(kù)角色:db_*+public,權(quán)限最高的是db_owner:EXECsp_addrolemember‘db_owner’,’user3’(留意用戶和用色的依次14.16public角色:每個(gè)用戶均自動(dòng)為其成員,不具任何權(quán)限但可給予權(quán)限。假如想讓全部數(shù)據(jù)庫(kù)用戶均具有某個(gè)特定權(quán)限則可將該權(quán)限授予public14.17用戶自定義的用戶角色:EXECsp_addrole‘myrole’14.18只要權(quán)限沒(méi)有被拒絕過(guò),角色中成員權(quán)限是角色的權(quán)限加上成員自己的權(quán)限。第15章備份和復(fù)原數(shù)據(jù)庫(kù)15.1備份的兩種方式:先創(chuàng)建備份設(shè)備(備份數(shù)據(jù)庫(kù)的場(chǎng)所),再將數(shù)據(jù)庫(kù)備份到備份設(shè)備上(永久備份設(shè)備);干脆將數(shù)據(jù)庫(kù)備份到物理文件上(臨時(shí)備份設(shè)備)15.2創(chuàng)建磁盤(pán)備份設(shè)備:EXECsp_addumpdevice‘disk’,’mydiskdump’,’..\mydump.bak’15.3常用備份策略:完全備份加差異備份加日志備份,備份和復(fù)原速度都比較快,而且當(dāng)系統(tǒng)出現(xiàn)故障時(shí)丟失的數(shù)據(jù)較少。15.4Transact-SQL語(yǔ)句:BACKUPDATABASE\LOGjessyminTOmydiskdumpWITHINITWITHINIT表示覆蓋掉原有內(nèi)容,相當(dāng)于“重寫(xiě)現(xiàn)有媒體”15.5復(fù)原的一般依次:先復(fù)原最近的完全數(shù)據(jù)庫(kù)備份;再?gòu)?fù)原完全備份之后的最近的差異備份;最終按日志備份的先后依次復(fù)原自最近的完全備份或差異備份之后的全部日志備份。15.6Transact-SQL語(yǔ)句復(fù)原過(guò)程示例:1)首先復(fù)原完全備份RESTOREDATABASEjessyminFROMmydiskdumpWITHFILE=1,NORECOVERY2)然后復(fù)原差異備份(假如有的話)RESTOREDATABASEjessyminFROMmydiskdumpWITHFILE=2,NORECOVERY3)最終復(fù)原日志文件RESTORELOGjessyminFROMmydiskdumpNorecovery表示對(duì)數(shù)據(jù)庫(kù)的復(fù)原操作尚未完成,相當(dāng)于“使數(shù)據(jù)不再運(yùn)行,但能還原其他事務(wù)的日志文件”。默認(rèn)為RECOVERY。第16章VB開(kāi)發(fā)環(huán)境和數(shù)據(jù)訪問(wèn)接口(鄙人此前未曾用過(guò)VB,疏漏淺薄之處敬請(qǐng)見(jiàn)諒…)16.1標(biāo)準(zhǔn)數(shù)據(jù)綁定控件:TextBox、CheckBox、ListBox、ComboxBox等外部(ActiveX)數(shù)據(jù)綁定控件:DataCombo、DataList、DataGrid、MSHFGrid等16.2DBMS支持的兩種數(shù)據(jù)接口:專用接口(和特定的DBMS有關(guān));通用接口(屏蔽掉每個(gè)DBMS底層接口的差異,供應(yīng)一種標(biāo)準(zhǔn)的訪問(wèn)方法)16.3通用接口:ODBC、OLEDB、JDBC,讓?xiě)?yīng)用程序具有很好的適應(yīng)性和可移植性;具備同時(shí)訪問(wèn)多種DBMS系統(tǒng)的實(shí)力。16.4ODBC(只訪關(guān)系型DB):開(kāi)放數(shù)據(jù)庫(kù)互連OpenDataBaseConnectivity,ODBC應(yīng)用系統(tǒng)大致工作流程從起先配置數(shù)據(jù)源到回收各種句柄為此。句柄是32位整數(shù)值,代表一個(gè)指針。16.5OLEDB:對(duì)象鏈接和嵌入的數(shù)據(jù)庫(kù)ObjectLinkedandEmbedDataBase,是MicrosoftOLE對(duì)象標(biāo)準(zhǔn)的一個(gè)實(shí)現(xiàn),是COM對(duì)象,是為數(shù)據(jù)訪問(wèn)而設(shè)計(jì)的一系列COM接口。16.6ADO:動(dòng)態(tài)數(shù)據(jù)對(duì)象ActiveXDataObject,建在OLEDB之上的高層接口集,是介于OLEDB底層接口和應(yīng)用程序之間的接口,它避開(kāi)了開(kāi)發(fā)人員干脆運(yùn)用OLEDB底層接口的麻煩。16.7ODBC和OLEDB的主要區(qū)分:1)ODBC只能訪問(wèn)關(guān)系型數(shù)據(jù)庫(kù),而OLEDB可以訪問(wèn)關(guān)系和非關(guān)系型甚至是無(wú)結(jié)構(gòu)的數(shù)據(jù)。2)OLEDB克服了ODBC的一個(gè)主要缺點(diǎn):一個(gè)ODBC驅(qū)動(dòng)程序須要支持幾乎全部的DBMS特征和功能,這須要大量的工作和初始投資,而OLEDB允許DBMS供應(yīng)商只實(shí)現(xiàn)他們產(chǎn)品的一部分功能。第17章VB數(shù)據(jù)庫(kù)應(yīng)用編程17.1CommandType屬性:adCmdUnknown,表示RecordSource中的吩咐類型未知;adCmdTable表示RecordSource屬性的內(nèi)容來(lái)自一張表;adCmdText表示RecordSource屬性的內(nèi)容來(lái)自一個(gè)查詢語(yǔ)句;adCmdStoredType表示RecordSource屬性的內(nèi)容來(lái)自一個(gè)存儲(chǔ)過(guò)程17.2RecordSet的Move方法組中,MovePrevios和MoveNext沒(méi)有自動(dòng)檢測(cè)記錄的當(dāng)前行指針是否移出了結(jié)果集邊界的功能,需編碼實(shí)現(xiàn):mmEndIf17.3保存緩沖區(qū)中的記錄:Update方法;對(duì)當(dāng)前記錄指針作一個(gè)移動(dòng)操作17.4CancelUpdate方法:應(yīng)在Update方法之前調(diào)用,調(diào)用了Update方法之后的修改是不能撤銷的;假如沒(méi)有添加新記錄也沒(méi)有對(duì)當(dāng)前記錄做任何修改,調(diào)用CancelUpdate會(huì)出錯(cuò)。17.5Find方法:用于在當(dāng)前結(jié)果集中查找滿意條件的記錄myadodc.RecordSet.Find(“查找條件表達(dá)式”)和RecordSet對(duì)象名.Filter“選擇表達(dá)式”相像(.Filter=adFilterNone還原)17.6更新記錄:mydocdc.RecordSet.Fields(“CustomID”)=Trim(txtCID.Text)mydocdc.RecordSet.Fields(“Age”)=CInt(txtAge.Text)17.7刪除記錄提示窗口:DimresAsIntegerres=MsgBox(“的確要?jiǎng)h除此行記錄嗎?”,vbExclamation+vbYesNo+vbDefaultButton2)Ifres=vbYesThenMEndIf17.8在DataGrid中顯示全部列:DimintColAsIntegerWithmydgForintCol=0To.Columns.Count–1.Columns(intCol).Visible=TrueNextEndWith另一種For循環(huán):ForEachparINadocm.Parameters……….Nextpar17.9排序功能實(shí)現(xiàn):(mydg.DataSource=adodc)Withadodc.RecordSetIfoptAsc.Value=TrueThen.Sort=.Field(intCol).Name&“ASC”Else.Sort=.Field(intCol).Name&“DESC”EndIfEndWithmydg.Refresh17.10ADO對(duì)象模型Connection對(duì)象ErrorS集合Error對(duì)象Command對(duì)象Parameters集合Parameter對(duì)象RecordSet對(duì)象Fields集合Field對(duì)象17.11Connection對(duì)象可以完成的操作:連接數(shù)據(jù)源打開(kāi)數(shù)據(jù)庫(kù);執(zhí)行一個(gè)數(shù)據(jù)庫(kù)操作吩咐;利用Error對(duì)象檢查數(shù)據(jù)源返回的出錯(cuò)信息。17.12銷毀內(nèi)存中的對(duì)象:Set對(duì)象名=Nothing17.13Command對(duì)象的CommandText屬性相當(dāng)于ADO數(shù)據(jù)控件的RecordSource屬性;Command對(duì)象的CommandType屬性相當(dāng)于ADO數(shù)據(jù)控件的CommandType屬性17.14RecordSet對(duì)象的主要功能是建立記錄集,并支持對(duì)記錄集中各數(shù)據(jù)的各種操作。允許用戶干脆獲得數(shù)據(jù),因此RecordSet對(duì)象和ADO的訪問(wèn)過(guò)程無(wú)關(guān)。17.15CursorType屬性:adOpenDynamic動(dòng)態(tài)游標(biāo):反映全部用戶對(duì)數(shù)據(jù)的修改,支持向前及向后移動(dòng);adOpenStatic靜態(tài)游標(biāo):不能反映其他用戶的修改,支持向前及向后,當(dāng)打開(kāi)客戶端RecordSet對(duì)象時(shí),adOpenStatic為唯一允許的游標(biāo)類型。當(dāng)打印報(bào)表和其他不須要即時(shí)完成更新數(shù)據(jù)的應(yīng)用程序來(lái)說(shuō)很有用。adOpenFowardOnly僅向前游標(biāo):默認(rèn)值。僅支持向前移動(dòng),其他和adOpenStatic一樣。adOpenKeyset鍵集游標(biāo):介于動(dòng)態(tài)和靜態(tài)游標(biāo)。只看到其他用戶更改的看不到添加刪除的17.16CursorLocation屬性:adUseClient:本地客戶端游標(biāo)。將整個(gè)結(jié)果集傳給客戶端,網(wǎng)絡(luò)流量大但下載后閱讀速度快adUseServer:默認(rèn)值,僅傳送客戶端須要的數(shù)據(jù),網(wǎng)絡(luò)流量小但服務(wù)器資源消耗大。不支持BookMark屬性(書(shū)簽,快速再定位)和AbsolutePosition屬性adUseNone:沒(méi)有運(yùn)用游標(biāo)服務(wù)。17.17RecordSet.Open方法:myRs.OpenSource,ActiveConnection,CursorType,LockType,Options1)Source支持的類別:5)Options的可選項(xiàng)一個(gè)返回記錄的Command對(duì)象///adCmdFileSQL語(yǔ)句――adCmdText表名――adCmdTable存儲(chǔ)過(guò)程名――adComdStoredProc2)ActiveConnection:已打開(kāi)的Connection對(duì)象;一個(gè)連接字符串示例:DimmyCnnAsNewADODB.ConnectionDimmyRsAsNewADODB.RecordSetmyCnn.Connection=“Provider=SQLOLEDB.1;UserID=sa;”_&“InitialCatalog=商品經(jīng)營(yíng)管理數(shù)據(jù)庫(kù);DataSource=(local)”myCnn.Open‘別忘了“打開(kāi)”myRs.Source=“select*fromT_Customer”myRs.ActiveConnection=myCnnmyRs.CursorType=adOpenDynamicmyRs.CursorLocation=adUseClientmyRs.Open,,,,adCmdTalbe17.18創(chuàng)建RecordSet對(duì)象的三種方法:1)運(yùn)用Connection對(duì)象:SetmyRs=myConn.Execute(“select*fromT_customer”);2)運(yùn)用Command對(duì)象:SetmyRs=myComm.Execute;3)干脆運(yùn)用Open方法:myRs.Open,,,,17.19Error對(duì)象:假如最終一次的操作勝利則這個(gè)集合為空。只有在OLEDB層產(chǎn)生錯(cuò)誤才會(huì)將每個(gè)錯(cuò)誤被翻譯成Error對(duì)象,假如指向一個(gè)不存在的供應(yīng)者則Errors集合不會(huì)得到任何信息,因?yàn)锳DO不能發(fā)覺(jué)這個(gè)指定的驅(qū)動(dòng)程序,因此會(huì)將錯(cuò)誤傳遞到VisualBasicErrors中。17.20三對(duì)象結(jié)合運(yùn)用的典型示例:DimmyCnnAsNewADODB.ConnectionDimmyCmmAsNewADODB.CommandDimmyRsAsNewADODB.RecordSetmyCnn.ConnectionString=“Provider=SQLOLEDB.1;UserID=loginID;”_&“InitialCatalog=jessymin;DataSource=(local)”myCnn.Open
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 25年公司安全管理人員安全培訓(xùn)考試試題【培優(yōu)】
- 2024-2025企業(yè)員工安全培訓(xùn)考試試題(一套)
- 2024-2025公司安全培訓(xùn)考試試題答案4A
- 2025家居裝修合同示范文本
- 2025家具采購(gòu)合同范本
- 2025員工違反保密合同泄露商業(yè)機(jī)密詐騙賠償金法律途徑維權(quán)被判刑
- 2025心理咨詢師合同協(xié)議書(shū)范本
- 2025年燒結(jié)釹鐵硼永磁材料合作協(xié)議書(shū)
- 2025技術(shù)合作開(kāi)發(fā)合同模板樣本
- 2025企業(yè)貸款合同簡(jiǎn)化版
- GB∕T 16895.7-2021 低壓電氣裝置 第7-704部分:特殊裝置或場(chǎng)所的要求 施工和拆除場(chǎng)所的電氣裝置
- 中國(guó)房地產(chǎn)指數(shù)系統(tǒng)百城價(jià)格指數(shù)報(bào)告(2022年6月)
- 寧波市建設(shè)工程資料統(tǒng)一用表(2022版)1 通用分冊(cè)
- 口腔科診斷證明書(shū)模板
- 禮贊白衣天使512國(guó)際護(hù)士節(jié)護(hù)士表彰大會(huì)PPT課件(帶內(nèi)容)
- 競(jìng)爭(zhēng)性談判相關(guān)表格模板
- 中考物理“極值”與“取值范圍”問(wèn)題專題訓(xùn)練
- 2009年安徽省中考化學(xué)試卷【含答案可編輯】
- 越南工業(yè)到2025年發(fā)展戰(zhàn)略及到2035發(fā)展展望(提到鋼鐵)
- 電梯曳引機(jī)減速箱的設(shè)計(jì)、建模與運(yùn)動(dòng)仿真分析機(jī)械
- PV-1200-(中文版)氣候交變穩(wěn)定性試驗(yàn)(共4頁(yè))
評(píng)論
0/150
提交評(píng)論