版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、四級(jí)數(shù)據(jù)庫(kù)重難點(diǎ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è)或某些域(或稱(chēng)為屬性)上的取值與該記錄的物理地址直接聯(lián)系起來(lái),提供了一種根據(jù)記錄域的取值快速訪問(wèn)文件記錄的機(jī)制。索引文件是一種利用索引技術(shù)支持快速文件訪問(wèn)的文件組織和存取方法。索引加快了查詢(xún)記錄卻減慢了數(shù)據(jù)更新速度,本身還占用一
2、定的存儲(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ù)各類(lèi)對(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的使用情況并協(xié)助完成管理工作;一般用戶(hù)可用于查閱部分?jǐn)?shù)據(jù)庫(kù)結(jié)構(gòu)信息;DBS運(yùn)行時(shí)各子系統(tǒng)頻繁使用以完成相應(yīng)的存儲(chǔ)和查詢(xún)處理功能。6.5DBMS的三種完整性控制機(jī)制:
3、CHECK子句、斷言、觸發(fā)器斷言語(yǔ)句:Createassertion斷言約束名check()6.6堆文件:數(shù)據(jù)量少且操作頻繁;批量加載數(shù)據(jù)(先選為堆文件再調(diào)整文件結(jié)構(gòu))順序文件:查詢(xún)條件定義在查找碼上;快速的二分查找散列文件:基于散列域值的等值匹配,特別是訪問(wèn)順序是隨機(jī)的。非精確查詢(xún);非散列域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)
4、,然后從索引項(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)限:允許用戶(hù)對(duì)一給定的數(shù)據(jù)庫(kù)對(duì)象可執(zhí)行的操作(查詢(xún)、添刪改、新建、備份等)。第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ì)),從工程管理的
5、角度,分為概要設(shè)計(jì)、詳細(xì)設(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ù)處理邏輯,采用面向數(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ù)處理被分在客戶(hù)端和服務(wù)器上;服務(wù)器可支持多個(gè)客戶(hù)端;客戶(hù)端也可訪問(wèn)多個(gè)服務(wù)器;客戶(hù)端人機(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)人面交互、
6、應(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)題。第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.2
7、ACID:Atomicity原子性;Consistency一致性;Isolation隔離性;Durability持久性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ò)程分
8、為加鎖階段和解鎖階段。在加鎖階段,事務(wù)可以申請(qǐng)獲得數(shù)據(jù)項(xiàng)上的任何類(lèi)型的鎖,但不允許釋放任何鎖。在解鎖階段,事務(wù)可以釋放任何數(shù)據(jù)項(xiàng)上的任何類(lèi)型的鎖,但不能再申請(qǐng)任何鎖。每個(gè)事務(wù)開(kāi)始執(zhí)行后就進(jìn)入了加鎖階段。當(dāng)?shù)谝淮吾尫沛i后,即轉(zhuǎn)入解鎖階段。9.5解決死鎖主要采用死鎖預(yù)防和死鎖檢測(cè)與恢復(fù)兩類(lèi)方法。死鎖預(yù)防利用死鎖預(yù)防協(xié)議,通過(guò)破壞死鎖產(chǎn)生的必要條件來(lái)避免系統(tǒng)進(jìn)入死鎖狀態(tài)。一次性加鎖法;順序加鎖法死鎖檢測(cè)與恢復(fù)則是允許系統(tǒng)進(jìn)入死鎖狀態(tài),并且定期檢查系統(tǒng)是否發(fā)生死鎖。當(dāng)發(fā)現(xiàn)系統(tǒng)發(fā)生死鎖后,采取相應(yīng)的恢復(fù)機(jī)制使系統(tǒng)擺脫死鎖狀態(tài)。9.6活鎖產(chǎn)生的原因是在系統(tǒng)非死鎖狀態(tài)下,某些事務(wù)由于始終無(wú)法獲得對(duì)所需訪問(wèn)的
9、數(shù)據(jù)項(xiàng)的控制權(quán)而長(zhǎng)期等待下去,無(wú)法繼續(xù)執(zhí)行。9.7鎖粒度大:被加鎖數(shù)據(jù)項(xiàng)少、事務(wù)并發(fā)執(zhí)行度低、系統(tǒng)開(kāi)銷(xiāo)??;鎖粒度小則反之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ù)重組:按照系統(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)
10、行情況,對(duì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行分析,評(píng)估整個(gè)系統(tǒng)的運(yùn)行狀態(tài),為系統(tǒng)的安全運(yùn)行和性能優(yōu)化提供依據(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ù)查詢(xún)優(yōu)化:合理使用索引;避免或簡(jiǎn)化排序(Orderby、Groupby,磁盤(pán)排序比內(nèi)存排序開(kāi)銷(xiāo)大速度慢);避免相關(guān)子查詢(xún)、外連接(左右連接比內(nèi)連接消耗大);存儲(chǔ)過(guò)程10.9屬于Oracle但不屬于SQLServer的邏輯和物
11、理空間結(jié)構(gòu):表空間、段、區(qū)第11章故障管理11.1故障種類(lèi):事務(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īng)常進(jìn)行數(shù)據(jù)操作的數(shù)據(jù)庫(kù):完全轉(zhuǎn)儲(chǔ)+差異轉(zhuǎn)儲(chǔ)11.6以記錄為單位的日志文件:開(kāi)始標(biāo)記(TiBEGINTRANSACTION)、結(jié)束標(biāo)記(TiCOMMIT或者TiROLLBACK)、每個(gè)事務(wù)的所有操
12、作(Ti,A,50,80)11.7以數(shù)據(jù)塊為單位的日志文件:存放更新前和更新后的整個(gè)數(shù)據(jù)塊。只有事務(wù)標(biāo)識(shí)和被更新的數(shù)據(jù)塊,沒(méi)有操作類(lèi)型和操作對(duì)象。11.8日志的作用:用來(lái)進(jìn)行業(yè)務(wù)故障和系統(tǒng)故障恢復(fù);協(xié)助后備副本進(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):提供完整或幾近完整的數(shù)據(jù)冗余,增強(qiáng)數(shù)據(jù)保護(hù);發(fā)生介質(zhì)故障時(shí),數(shù)據(jù)不會(huì)丟失且服務(wù)不會(huì)中斷,提高
13、數(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ù)
14、協(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ù)帳戶(hù):使用本地系統(tǒng)帳戶(hù):自動(dòng)取當(dāng)前登錄到Windows的用戶(hù),沒(méi)有Windows的網(wǎng)絡(luò)訪問(wèn)權(quán)限,適用于非網(wǎng)絡(luò)服務(wù)器操作系統(tǒng)(如XP);使用域用戶(hù)帳戶(hù):使用Windows身份驗(yàn)證設(shè)置連接到SQLServer,用戶(hù)必是Windows系統(tǒng)管理員,適用于網(wǎng)絡(luò)服務(wù)器OS12.4網(wǎng)絡(luò)庫(kù):在SQLS客戶(hù)端和服務(wù)器間傳遞網(wǎng)絡(luò)數(shù)據(jù)包。服務(wù)器可一次監(jiān)聽(tīng)多個(gè)網(wǎng)絡(luò)庫(kù)12.5SQLServ
15、er的兩大類(lèi)數(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(所有用戶(hù)數(shù)據(jù)庫(kù)的公共信息)、tempdb(臨時(shí)數(shù)據(jù)庫(kù)),示例Pubs、Northwind;用戶(hù)數(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)信息并可存放用戶(hù)數(shù)據(jù)庫(kù)數(shù)據(jù),每個(gè)數(shù)據(jù)庫(kù)只有一
16、個(gè)主數(shù)據(jù)文件。輔助數(shù)據(jù)文件:擴(kuò)展名為.ndf,數(shù)據(jù)量很大時(shí)使用,可存放在不同的磁盤(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=MSSQLDatajessymin_Data.mdf,OS下的物理文件名SIZE10,文件初始大小,單位默認(rèn)為MB,下同MAXSIZE30,文件最大大小FILE
17、GROWTH5,文件增量,為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ǔ)言,全司變量,局部變量,局部變量可以是自定義類(lèi)型但不能是text或image類(lèi)型。12.12Transact-SQL示例:計(jì)算1+2+3+100的和:DECLAREiint,sumintSETi=1,sum=0-SET可換為SELECTWHILEi<=100BEGINSETsum=su
18、m+iSETi=i+1ENDPRINTsum12.13DTS(DataTransformationService)數(shù)據(jù)轉(zhuǎn)換服務(wù)。注意區(qū)別DTC(分布式事務(wù)協(xié)調(diào)器)。導(dǎo)出數(shù)據(jù)時(shí)用戶(hù)必須是要連接的數(shù)據(jù)庫(kù)服務(wù)器的合法用戶(hù),且對(duì)要導(dǎo)出的表具有查詢(xún)權(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ī)制使用13.2帶有多個(gè)參數(shù)并有默認(rèn)值及輸出參數(shù)的存儲(chǔ)過(guò)程示例:CREATEPROCEDUREp_Exampleareavarchar(20)=武漢大學(xué),Pricemoney,Sumintoutput
19、ASSELECT/UPDATE/INSERT/DELETESETSum=.應(yīng)用程序中執(zhí)行的SQL語(yǔ)句:DeclareresintEXECUTEp_Example武漢大學(xué)信息學(xué)部,1000,resoutput或者EXECUTEp_ExamplePrice=1000,resoutput13.3用戶(hù)自定義函數(shù):標(biāo)量函數(shù)(返回單值,非text、Image類(lèi)型,任何允許出現(xiàn)表達(dá)式的地方)、內(nèi)嵌表值函數(shù)(返回一個(gè)表,放在查詢(xún)語(yǔ)句的From子句中)、多語(yǔ)句表值函數(shù)(返回一個(gè)可自定義的表,也放在查詢(xún)語(yǔ)句的From子句中,視圖和存儲(chǔ)過(guò)程的結(jié)合)13.4標(biāo)量函數(shù)救示例:根據(jù)指定的商品類(lèi)別查詢(xún)?cè)擃?lèi)的商品個(gè)數(shù)。CRE
20、ATFUNCTIONdbo.f_GoodsCount(classvarchar(10)RETURNSintASBEGINDECLARExintSELECTx=count(*)FromT_GoodsClassaJIONT_GoodsbONa.GoodClassID=b.GoodClassIDWHEREGoodClassName=classRETURNxEND調(diào)用:SELECTdbo.f_GoodsCount(服裝)或者SELECTGoodsNameAS商品名,dbo.f_GoodsCount(服裝)AS種類(lèi)數(shù)From.13.5內(nèi)嵌表值函數(shù)的不同之處在于RETURNS后只能是table,RETUR
21、N后面只能是單個(gè)的SELECT語(yǔ)句,沒(méi)有相關(guān)聯(lián)的返回變量也沒(méi)有函數(shù)體。調(diào)用時(shí)放在查詢(xún)語(yǔ)句的FROM子句中。13.6觸發(fā)器是一種不需要由用戶(hù)來(lái)調(diào)用的存儲(chǔ)過(guò)程,當(dāng)用戶(hù)對(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)復(fù)雜的處理邏輯和業(yè)務(wù)規(guī)則,增強(qiáng)數(shù)據(jù)完整性約束。13.7觸發(fā)器適用場(chǎng)合:比CHECK語(yǔ)句更復(fù)雜的數(shù)據(jù)約束(可引用其他表中的列);為保證數(shù)據(jù)庫(kù)性能而維護(hù)的非規(guī)范化數(shù)據(jù)(如增加統(tǒng)計(jì)總值的列);實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)規(guī)則13.8AFTER/FOR:后觸發(fā)型觸發(fā)器,可在同一操作上建立多個(gè);INSTEADOF:前觸發(fā)型,在同一操作上只
22、能建立一個(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ā)器示例:銷(xiāo)售量大于庫(kù)存量則撤銷(xiāo)當(dāng)前銷(xiāo)售,小于時(shí)則在插入銷(xiāo)售單據(jù)明細(xì)時(shí)同時(shí)修改庫(kù)存量。CreateTriggerOperatonConONT_SaleDetailFORINSERTASIFEXISTS(Select*FrominsertedaJionT_GoodsbONa.GoodsID=b.GoodsIDWHEREa.
23、Quanity>b.TotalCharge)BEGINROLLBACKPRINT此商品庫(kù)存量小于此次銷(xiāo)售數(shù)量ENDELSEUPDATET_GoodsSETTotalCharge=TotalCharge(SELECTQuanityFrominserted)13.11維護(hù)不同列之間取值完整性的后觸發(fā)器示例:保證商品表中的單價(jià)與價(jià)格變動(dòng)表中一致CREATETRIGGERPriceConstraintONT_PriceHistoryFORINSERT,UPDATEASDECLAREnewpricemoneySELECTnewprice=SalePriceFrominsertedUPDATET_G
24、oodsSETSaleUnitPrice=newpriceWHEREGoodsIDIN(SELECTGoodIDFrominserted)13.12前觸發(fā)器指定執(zhí)行觸發(fā)器而不執(zhí)行引發(fā)觸發(fā)器的SQL語(yǔ)句,因此,如果數(shù)據(jù)操作滿(mǎn)足完整性約束則在觸發(fā)器中必須重新執(zhí)行這些數(shù)據(jù)操作語(yǔ)句。前觸發(fā)器示例:保證銷(xiāo)售單據(jù)中的會(huì)員卡是有效日期內(nèi)的會(huì)員卡:CREATETRIGGERCardValidONT_SaleDetailINSTEADOFINSERT,UPDATEASIFNOTEXISTS(SElETCT*FrominsertedaJOINT_CardbONa.CardID=b.CardIDWHEREa.Sal
25、DateNOTBETWEENb.StartDateANDb.EndDate)INSERTINTOT_SaleDetailSELECT*Frominserted(若滿(mǎn)足條件此語(yǔ)句重新執(zhí)行)13.13用SQL語(yǔ)句修改存儲(chǔ)過(guò)程、用戶(hù)自定義函數(shù)、觸發(fā)器的語(yǔ)法與創(chuàng)建基本一致,只是將CREATE改為了ALTER。(查詢(xún)分析器中實(shí)現(xiàn))第14章安全管理14.1數(shù)據(jù)庫(kù)的安全控制:在DBMS的不同層次提供對(duì)有意和無(wú)意損害行為的安全防范。有意的非法活動(dòng):加密存、取數(shù)據(jù);有意的非法操作:用戶(hù)身份驗(yàn)證、限制操作權(quán);無(wú)意的損壞:提高系統(tǒng)的可靠性和數(shù)據(jù)備份14.2數(shù)據(jù)庫(kù)權(quán)限的種類(lèi):對(duì)DBMS進(jìn)行維護(hù)的權(quán)限;對(duì)數(shù)據(jù)庫(kù)對(duì)象和數(shù)
26、據(jù)進(jìn)行操作的權(quán)限SQLServer權(quán)限種類(lèi)(與數(shù)據(jù)庫(kù)用戶(hù)分類(lèi)對(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ù)用戶(hù)的分類(lèi):數(shù)據(jù)庫(kù)系統(tǒng)管理員(SA,全部權(quán)限);數(shù)據(jù)庫(kù)對(duì)象擁有者(創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象的用戶(hù),對(duì)所擁有的對(duì)象具有一切權(quán)限);普通用戶(hù):只具有對(duì)數(shù)據(jù)的編輯查詢(xún)功能14.4三個(gè)認(rèn)證過(guò)程:身份認(rèn)證,只認(rèn)證用戶(hù)是否有連接到數(shù)據(jù)庫(kù)服務(wù)器的“連接權(quán)”;合法用戶(hù),驗(yàn)證是否是數(shù)據(jù)庫(kù)的合法用戶(hù);權(quán)限認(rèn)證,驗(yàn)證用戶(hù)是否具有要進(jìn)行的操作的操作權(quán)限14.5系統(tǒng)內(nèi)置的登錄賬戶(hù):BUILTINAdministrator;SA;域
27、名Administrator,均DBMS管理員14.6創(chuàng)建SQLServer身份認(rèn)證的登錄賬戶(hù):EXECUTEsp_addloginuser3,123,jessyminUser3為登錄賬戶(hù),123為密碼,jessymin為默認(rèn)數(shù)據(jù)庫(kù);WINDOWS認(rèn)證:sp_grantlogin14.7刪除登錄賬戶(hù)存儲(chǔ)過(guò)程:EXECdroploginuser3(SQLServer身份驗(yàn)證);EXECrevokeloginServer1nt_user(WINDOWS身份驗(yàn)證)14.8登錄賬戶(hù)可以連接到SQLServer服務(wù)器上但并不具有訪問(wèn)任何數(shù)據(jù)庫(kù)的能力,必須再成為數(shù)據(jù)庫(kù)的合法用戶(hù)。一個(gè)登錄賬戶(hù)可以映射為多個(gè)
28、數(shù)據(jù)庫(kù)用戶(hù),管理數(shù)據(jù)庫(kù)用戶(hù)的過(guò)程實(shí)際上就是建立登錄賬戶(hù)與數(shù)據(jù)庫(kù)用戶(hù)之間的映射關(guān)系的過(guò)程。新建的數(shù)據(jù)默認(rèn)只有一個(gè)用戶(hù):dbo,它是數(shù)據(jù)庫(kù)的擁有者。14.9創(chuàng)建數(shù)據(jù)庫(kù)用戶(hù):EXECsp_adduserU2,U2,user_role,用戶(hù)名與登錄賬戶(hù)一致,并讓其成為“user_role”角色的成員。刪除:EXECsp_dropuserU214.10合法用戶(hù)除了對(duì)所屬數(shù)據(jù)庫(kù)系統(tǒng)表具有一些查詢(xún)權(quán)限外并不對(duì)數(shù)據(jù)庫(kù)中的用戶(hù)數(shù)據(jù)和對(duì)象具有任何權(quán)限,還得得到對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)和對(duì)象的操作權(quán)限14.11收回權(quán)限:不允許用戶(hù)或角色具有某種操作權(quán),或者收回曾經(jīng)授予的權(quán)限,置空標(biāo)記;拒絕訪問(wèn):拒絕某用戶(hù)或角色具有某種操作權(quán),
29、即使由于繼承獲得的權(quán)限也無(wú)效,叉叉標(biāo)記14.12用Transact-SQL語(yǔ)句管理對(duì)象權(quán)限入管理語(yǔ)句權(quán)限:P24514.13角色:數(shù)據(jù)庫(kù)中具有相同權(quán)限的一組用戶(hù)。系統(tǒng)預(yù)定義的固定角色;自定義用戶(hù)角色14.14固定的服務(wù)器角色:*amdin+dbcreator,權(quán)限最重要最高的是sysadmin,角色成員源均為系統(tǒng)的登錄賬戶(hù):EXECsp_addsrvrolememberServer1nt_user,sysadmin14.15固定的數(shù)據(jù)庫(kù)角色:db_*+public,權(quán)限最高的是db_owner:EXECsp_addrolememberdb_owner,user3(注意用戶(hù)和用色的順序)14.1
30、6public角色:每個(gè)用戶(hù)均自動(dòng)為其成員,不具任何權(quán)限但可賦予權(quán)限。如果想讓所有數(shù)據(jù)庫(kù)用戶(hù)均具有某個(gè)特定權(quán)限則可將該權(quán)限授予public14.17用戶(hù)自定義的用戶(hù)角色:EXECsp_addrolemyrole14.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_addumpdevicedisk,mydiskdump,.mydump.bak15.3常用備份策略:
31、完全備份加差異備份加日志備份,備份和恢復(fù)速度都比較快,而且當(dāng)系統(tǒng)出現(xiàn)故障時(shí)丟失的數(shù)據(jù)較少。15.4Transact-SQL語(yǔ)句:BACKUPDATABASELOGjessyminTOmydiskdumpWITHINITWITHINIT表示覆蓋掉原有內(nèi)容,相當(dāng)于“重寫(xiě)現(xiàn)有媒體”15.5恢復(fù)的一般順序:先恢復(fù)最近的完全數(shù)據(jù)庫(kù)備份;再恢復(fù)完全備份之后的最近的差異備份;最后按日志備份的先后順序恢復(fù)自最近的完全備份或差異備份之后的所有日志備份。15.6Transact-SQL語(yǔ)句恢復(fù)過(guò)程示例:1)首先恢復(fù)完全備份RESTOREDATABASEjessyminFROMmydiskdumpWITHFILE=
32、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ù)綁定控件:
33、DataCombo、DataList、DataGrid、MSHFGrid等16.2DBMS支持的兩種數(shù)據(jù)接口:專(zhuān)用接口(與特定的DBMS有關(guān));通用接口(屏蔽掉每個(gè)DBMS底層接口的差異,提供一種標(biāo)準(zhǔn)的訪問(wèn)方法)16.3通用接口:ODBC、OLEDB、JDBC,讓?xiě)?yīng)用程序具有很好的適應(yīng)性和可移植性;具備同時(shí)訪問(wèn)多種DBMS系統(tǒng)的能力。16.4ODBC(只訪關(guān)系型DB):開(kāi)放數(shù)據(jù)庫(kù)互連OpenDataBaseConnectivity,ODBC應(yīng)用系統(tǒng)大致工作流程從開(kāi)始配置數(shù)據(jù)源到回收各種句柄為此。句柄是32位整數(shù)值,代表一個(gè)指針。16.5OLEDB:對(duì)象鏈接與嵌入的數(shù)據(jù)庫(kù)ObjectLinked
34、andEmbedDataBase,是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)發(fā)人員直接使用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允許D
35、BMS提供商只實(shí)現(xiàn)他們產(chǎn)品的一部分功能。第17章VB數(shù)據(jù)庫(kù)應(yīng)用編程17.1CommandType屬性:adCmdUnknown,表示RecordSource中的命令類(lèi)型未知;adCmdTable表示RecordSource屬性的內(nèi)容來(lái)自一張表;adCmdText表示RecordSource屬性的內(nèi)容來(lái)自一個(gè)查詢(xún)語(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):EndIf17.3保存緩沖區(qū)中的記錄:Upd
36、ate方法;對(duì)當(dāng)前記錄指針作一個(gè)移動(dòng)操作17.4CancelUpdate方法:應(yīng)在Update方法之前調(diào)用,調(diào)用了Update方法之后的修改是不能撤銷(xiāo)的;如果沒(méi)有添加新記錄也沒(méi)有對(duì)當(dāng)前記錄做任何修改,調(diào)用CancelUpdate會(huì)出錯(cuò)。17.5Find方法:用于在當(dāng)前結(jié)果集中查找滿(mǎn)足條件的記錄myadodc.RecordSet.Find(“查找條件表達(dá)式”)與RecordSet對(duì)象名.Filter“選擇表達(dá)式”相似(.Filter=adFilterNone還原)17.6更新記錄:mydocdc.RecordSet.Fields(“CustomID”)=Trim(txtCID.Text)mydo
37、cdc.RecordSet.Fields(“Age”)=CInt(txtAge.Text)17.7刪除記錄提示窗口:DimresAsIntegerres=MsgBox(“確實(shí)要?jiǎng)h除此行記錄嗎?”,vbExclamation+vbYesNo+vbDefaultButton2)Ifres=vbYesThenEndIf17.8在DataGrid中顯示全部列:DimintColAsIntegerWithmydg1.Columns(intCol).Visible=TrueNextEndWith另一種For循環(huán):ForEachparINadocm.Parameters.Nextpar17.9排序功能實(shí)現(xiàn):
38、(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ù)
39、據(jù)庫(kù);執(zhí)行一個(gè)數(shù)據(jù)庫(kù)操作命令;利用Error對(duì)象檢查數(shù)據(jù)源返回的出錯(cuò)信息。17.12銷(xiāo)毀內(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ù)的各種操作。允許用戶(hù)直接獲取數(shù)據(jù),因此RecordSet對(duì)象與ADO的訪問(wèn)過(guò)程無(wú)關(guān)。17.15CursorType屬性:adOpenDynamic動(dòng)態(tài)游標(biāo):反映所有用戶(hù)對(duì)數(shù)據(jù)的修改,支持向前
40、及向后移動(dòng);adOpenStatic靜態(tài)游標(biāo):不能反映其他用戶(hù)的修改,支持向前及向后,當(dāng)打開(kāi)客戶(hù)端RecordSet對(duì)象時(shí),adOpenStatic為唯一允許的游標(biāo)類(lèi)型。當(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)。只看到其他用戶(hù)更改的看不到添加刪除的17.16CursorLocation屬性:adUseClient:本地客戶(hù)端游標(biāo)。將整個(gè)結(jié)果集傳給客戶(hù)端,網(wǎng)絡(luò)流量大但下載后瀏覽速度快adUseServer:默認(rèn)值,僅傳送客
41、戶(hù)端需要的數(shù)據(jù),網(wǎng)絡(luò)流量小但服務(wù)器資源消耗大。不支持BookMark屬性(書(shū)簽,快速再定位)和AbsolutePosition屬性adUseNone:沒(méi)有使用游標(biāo)服務(wù)。17.17RecordSet.Open方法:myRs.OpenSource,ActiveConnection,CursorType,LockType,Options1)Source支持的類(lèi)別:5)Options的可選項(xiàng)一個(gè)返回記錄的Command對(duì)象/adCmdFileSQL語(yǔ)句adCmdText表名adCmdTable存儲(chǔ)過(guò)程名adComdStoredProc2)ActiveConnection:已打開(kāi)的Connection對(duì)
42、象;一個(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=adUs
43、eClientmyRs.Open,adCmdTalbe17.18創(chuàng)建RecordSet對(duì)象的三種方法:1)使用Connection對(duì)象:SetmyRs=myConn.Execute(“select*fromT_customer”);2)使用Command對(duì)象:SetmyRs=myComm.Execute;3)直接使用Open方法:myRs.Open,17.19Error對(duì)象:如果最后一次的操作成功則這個(gè)集合為空。只有在OLEDB層產(chǎn)生錯(cuò)誤才會(huì)將每個(gè)錯(cuò)誤被翻譯成Error對(duì)象,如果指向一個(gè)不存在的提供者則Errors集合不會(huì)得到任何信息,因?yàn)锳DO不能發(fā)現(xiàn)這個(gè)指定的驅(qū)動(dòng)程序,因此會(huì)將錯(cuò)誤傳遞到V
44、isualBasicErrors中。17.20三對(duì)象結(jié)合使用的典型示例:DimmyCnnAsNewADODB.ConnectionDimmyCmmAsNewADODB.CommandDimmyRsAsNewADODB.RecordSetmyCnn.ConnectionString=“Provider=SQLOLEDB.1;UserID=loginID;”_&“InitialCatalog=jessymin;DataSource=(local)”myCnn.Open別忘了“打開(kāi)”SetmyCmm.ActiveConnection=myCnnmyCmm.CommandText=“selec
45、t*fromT_Customer”SetmyRs=myCmm.Execute17.21VB自定義函數(shù)示例:將字段空值轉(zhuǎn)化為空字符串PrivateFunctionconvertNull(valAsVariant)AsVariantIfIsNull(val)=TrueThenconvertNull=“”ElseconvertNull=valEndIfEndFunction第18章統(tǒng)一建模語(yǔ)言18.1UML視圖分類(lèi):用例視圖:用例圖;結(jié)構(gòu)視圖:類(lèi)圖、對(duì)象圖;行為視圖:順序圖、交互圖、狀態(tài)圖、活動(dòng)圖;實(shí)現(xiàn)視圖:組件圖;環(huán)境視圖:部署圖18.2類(lèi)與類(lèi)之間有關(guān)聯(lián)(聚集,共享聚集+組成)、通用化(繼承)(帶
46、空心三角形的實(shí)線)、依賴(lài)(單向?qū)嵕€)、精化(帶空心三角形的虛線)18.3包(子系統(tǒng))的四種可見(jiàn)性還包括實(shí)現(xiàn)可見(jiàn)性,與私有可見(jiàn)性類(lèi)似。A指向B的單向虛線表示子系統(tǒng)B被子系統(tǒng)A引用。18.4順序圖強(qiáng)調(diào)時(shí)間,協(xié)作圖強(qiáng)調(diào)空間,狀態(tài)圖強(qiáng)調(diào)一個(gè)實(shí)體在不同時(shí)刻的狀態(tài)變化,活動(dòng)圖強(qiáng)調(diào)程序?qū)ο筮壿嬃鞒痰拇袌?zhí)行順序和并行次序第19章分布式數(shù)據(jù)庫(kù)、對(duì)象數(shù)據(jù)庫(kù)和并行數(shù)據(jù)庫(kù)19.1分布式數(shù)據(jù)庫(kù)(物理分散邏輯集中)最基本特征:本地自治、非集中式管理、高可用性;分片透明性(最高級(jí))、位置透明性、局部數(shù)據(jù)模型透明性構(gòu)成了分布式數(shù)據(jù)庫(kù)的分布透明性。19.2分片是對(duì)關(guān)系(表)的操作,分配是對(duì)分片結(jié)果的操作。19.3分布式數(shù)據(jù)庫(kù)
47、的模式結(jié)構(gòu):全局外模式、全局概念模式、分片模式、分配模式、局部概念模式、局部?jī)?nèi)模式;系統(tǒng)組成結(jié)構(gòu):GDBMS全局、GDD、LDBMS局部、CM通信管理19.4分布式事務(wù)管理:恢復(fù)控制(基于兩階段的提交協(xié)議)和并發(fā)控制(基于封鎖協(xié)議)19.5分布查詢(xún)數(shù)據(jù)傳輸量大的主要原因:連接操作和并操作19.6單繼承:一顆樹(shù);多繼承:帶根的有向無(wú)回路圖19.7面向?qū)ο髷?shù)據(jù)庫(kù)(面向?qū)ο笳Z(yǔ)言中引入數(shù)據(jù)庫(kù)):實(shí)現(xiàn)方法主要是擴(kuò)充面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,使之能處理持久數(shù)據(jù)。所謂持久數(shù)據(jù),指創(chuàng)建這些數(shù)據(jù)的程序運(yùn)行終止后,數(shù)據(jù)仍然存在于系統(tǒng)之中。數(shù)據(jù)庫(kù)中的關(guān)系就是持久數(shù)據(jù)。ObjectStore、Ontos、O2等19.8對(duì)
48、象關(guān)系數(shù)據(jù)庫(kù)(關(guān)系數(shù)據(jù)庫(kù)中引入面向?qū)ο螅簲U(kuò)展的數(shù)據(jù)類(lèi)型定義;繼承性;擴(kuò)充的SQL語(yǔ)言.InformixUniversalServer、DB2UDB、AdaptiveServer、Oracle8i、SQLServer19.9并行數(shù)據(jù)庫(kù)體系結(jié)構(gòu):共享內(nèi)存;共享磁盤(pán)(中小型);無(wú)共享(最好的,銀行出納、民航售票等OLTP類(lèi),缺點(diǎn):通信代價(jià)和非本地磁盤(pán)訪問(wèn)代價(jià));層次結(jié)構(gòu)(綜合)19.10一維數(shù)據(jù)劃分方法:輪轉(zhuǎn)法:最適合于掃描整個(gè)關(guān)系;散列劃分法:比轉(zhuǎn)轉(zhuǎn)法更適合點(diǎn)查詢(xún),也適合順序掃描關(guān)系;范圍劃分法:明顯利于范圍查詢(xún)和點(diǎn)查詢(xún)。缺點(diǎn):均不能有效支持非劃分屬性上具有選擇謂詞的查詢(xún)。第20章數(shù)據(jù)他倉(cāng)庫(kù)與數(shù)
49、據(jù)挖掘20.1數(shù)據(jù)倉(cāng)庫(kù)解決的問(wèn)題是如何更合理和理有效的組織企業(yè)的數(shù)據(jù)體系,目的在于根據(jù)決策需求對(duì)數(shù)據(jù)采取適當(dāng)?shù)氖侄芜M(jìn)行集成,形成一個(gè)綜合的面向分析的數(shù)據(jù)環(huán)境;數(shù)據(jù)挖掘解決的問(wèn)題是如何針對(duì)具體的分析對(duì)象和分需求,嘗試智能和自動(dòng)化的手段把數(shù)據(jù)轉(zhuǎn)換為新的有用的信息和知識(shí)。20.2數(shù)據(jù)分類(lèi):操作型數(shù)據(jù)(操作型處理,以業(yè)務(wù)處理為主的聯(lián)機(jī)事務(wù)處理OLTP);分析型數(shù)據(jù)(分析型處理,以分析為主的決策支持系統(tǒng)DDS)20.3數(shù)據(jù)倉(cāng)庫(kù)是一個(gè)面向主題的、集成的(最重要,抽取、轉(zhuǎn)換、清理、裝載)、非易失的、且隨時(shí)間變化的(時(shí)變性)數(shù)據(jù)集合,用來(lái)支持管理人員的決策。20.4數(shù)據(jù)倉(cāng)庫(kù)的體系結(jié)構(gòu):操作型數(shù)據(jù)、操作型數(shù)據(jù)存
50、儲(chǔ)、數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)集市;功能層次:數(shù)據(jù)管理、數(shù)據(jù)處理、數(shù)據(jù)應(yīng)用20.5粒度涉及數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)量和支持的查詢(xún)類(lèi)型。粒度小,細(xì)節(jié)度高,數(shù)據(jù)量大,查詢(xún)多20.6ODS(OperationalDataStore,操作型數(shù)據(jù)存儲(chǔ)):一方面,類(lèi)似于操作型環(huán)境,可進(jìn)行企業(yè)全局性聯(lián)機(jī)操作型處理;另外一方面,是一個(gè)面向主題的、集成的數(shù)據(jù)環(huán)境,但數(shù)據(jù)量小,適合于輔助企業(yè)完成日常決策的數(shù)據(jù)處理分析。(秒級(jí)、小時(shí)級(jí)、天級(jí)、含反饋信息)20.7數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)以數(shù)據(jù)倉(cāng)庫(kù)的主題數(shù)據(jù)模型設(shè)計(jì)和實(shí)現(xiàn)為核心。20.8OLAP(聯(lián)機(jī)分析處理,On-LineAnalyticalProcessing):支持復(fù)雜的分析操作,側(cè)重對(duì)決策人員
51、和高層管理人員的決策支持。20.9多維分析的基本活動(dòng):鉆取Drill-Down與卷起Roll-Up;切片Slice與切塊Dice;旋轉(zhuǎn)20.10OLAP的實(shí)現(xiàn)方式:基于多維數(shù)據(jù)庫(kù)的;基于關(guān)系數(shù)據(jù)庫(kù)的;混合型的20.11數(shù)據(jù)挖掘:數(shù)據(jù)庫(kù)知識(shí)發(fā)現(xiàn)KDD,從存放在數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)或其他信息庫(kù)中的大量數(shù)據(jù)中挖掘有趣知識(shí)的過(guò)程。三階段:數(shù)據(jù)準(zhǔn)備、數(shù)據(jù)挖掘、結(jié)果的解釋評(píng)估20.12數(shù)據(jù)倉(cāng)庫(kù)維護(hù)策略一般分為:實(shí)時(shí)維護(hù)、延時(shí)維護(hù)、快照維護(hù)20.13建立ODS的目的一般是為支持即時(shí)OLAP和全局OLTP兩類(lèi)應(yīng)用SQL精華語(yǔ)句一、簡(jiǎn)單查詢(xún)簡(jiǎn)單的Transact-SQL查詢(xún)只包括選擇列表、FROM子句和WHERE子
52、句。它們分別說(shuō)明所查詢(xún)列、查詢(xún)的表或視圖、以及搜索條件等。例如,下面的語(yǔ)句查詢(xún)testtable表中姓名為“張三”的nickname字段和email字段。SELECTnickname,emailFROMtesttableWHEREname='張三'(一)選擇列表選擇列表(select_list)指出所查詢(xún)列,它可以是一組列名列表、星號(hào)、表達(dá)式、變量(包括局部變量和全局變量)等構(gòu)成。1、選擇所有列例如,下面語(yǔ)句顯示testtable表中所有列的數(shù)據(jù):SELECT*FROMtesttable2、選擇部分列并指定它們的顯示次序查詢(xún)結(jié)果集合中數(shù)據(jù)的排列順序與選擇列表中所指定的列名排列順
53、序相同。例如:SELECTnickname,emailFROMtesttable3、更改列標(biāo)題在選擇列表中,可重新指定列標(biāo)題。定義格式為:列標(biāo)題=列名列名列標(biāo)題如果指定的列標(biāo)題不是標(biāo)準(zhǔn)的標(biāo)識(shí)符格式時(shí),應(yīng)使用引號(hào)定界符,例如,下列語(yǔ)句使用漢字顯示列標(biāo)題:SELECT昵稱(chēng)=nickname,電子郵件=emailFROMtesttable4、刪除重復(fù)行SELECT語(yǔ)句中使用ALL或DISTINCT選項(xiàng)來(lái)顯示表中符合條件的所有行或刪除其中重復(fù)的數(shù)據(jù)行,默認(rèn)為ALL。使用DISTINCT選項(xiàng)時(shí),對(duì)于所有重復(fù)的數(shù)據(jù)行在SELECT返回的結(jié)果集合中只保留一行。5、限制返回的行數(shù)使用TOPnPERCENT選項(xiàng)
54、限制返回的數(shù)據(jù)行數(shù),TOPn說(shuō)明返回n行,而TOPnPERCENT時(shí),說(shuō)明n是表示一百分?jǐn)?shù),指定返回的行數(shù)等于總行數(shù)的百分之幾。例如:SELECTTOP2*FROMtesttableSELECTTOP20PERCENT*FROMtesttable(二)FROM子句FROM子句指定SELECT語(yǔ)句查詢(xún)及與查詢(xún)相關(guān)的表或視圖。在FROM子句中最多可指定256個(gè)表或視圖,它們之間用逗號(hào)分隔。在FROM子句同時(shí)指定多個(gè)表或視圖時(shí),如果選擇列表中存在同名列,這時(shí)應(yīng)使用對(duì)象名限定這些列所屬的表或視圖。例如在usertable和citytable表中同時(shí)存在cityid列,在查詢(xún)兩個(gè)表中的cityid時(shí)應(yīng)使
55、用下面語(yǔ)句格式加以限定:SELECTusername,citytable.cityidFROMusertable,citytableWHEREusertable.cityid=citytable.cityid在FROM子句中可用以下兩種格式為表或視圖指定別名:表名as別名表名別名(二)FROM子句FROM子句指定SELECT語(yǔ)句查詢(xún)及與查詢(xún)相關(guān)的表或視圖。在FROM子句中最多可指定256個(gè)表或視圖,它們之間用逗號(hào)分隔。在FROM子句同時(shí)指定多個(gè)表或視圖時(shí),如果選擇列表中存在同名列,這時(shí)應(yīng)使用對(duì)象名限定這些列所屬的表或視圖。例如在usertable和citytable表中同時(shí)存在cityid列,
56、在查詢(xún)兩個(gè)表中的cityid時(shí)應(yīng)使用下面語(yǔ)句格式加以限定:SELECTusername,citytable.cityidFROMusertable,citytableWHEREusertable.cityid=citytable.cityid在FROM子句中可用以下兩種格式為表或視圖指定別名:表名as別名表名別名例如上面語(yǔ)句可用表的別名格式表示為:SELECTusername,b.cityidFROMusertablea,citytablebWHEREa.cityid=b.cityidSELECT不僅能從表或視圖中檢索數(shù)據(jù),它還能夠從其它查詢(xún)語(yǔ)句所返回的結(jié)果集合中查詢(xún)數(shù)據(jù)。例如:SELECTa.au_fname+a.au_lnameFROMauthorsa,titleauthorta(SELECTtitle_id,titleFROMtitlesWHEREytd_sales>10000)AStWHEREa.au_id=ta.au_idANDta.title_id=t.title_id此例中,將SELECT返回的結(jié)果集合給予一別名t,然后再?gòu)闹袡z索數(shù)據(jù)。(三)使用WHERE子句設(shè)置查詢(xún)條件WHERE子句設(shè)置查詢(xún)條件,過(guò)濾掉不需要的數(shù)據(jù)行。例如下面語(yǔ)句查詢(xún)年齡大于20的數(shù)據(jù):S
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 贛州師范高等專(zhuān)科學(xué)校《房屋建筑學(xué)課程實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛南醫(yī)學(xué)院《語(yǔ)音信息處理》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛南科技學(xué)院《中小學(xué)體能訓(xùn)練與評(píng)價(jià)》2023-2024學(xué)年第一學(xué)期期末試卷
- 《瘧疾防治措施》課件
- 一次函數(shù)練習(xí)課課件
- 七年級(jí)語(yǔ)文上冊(cè)第三單元11論語(yǔ)十二章教案新人教版
- 三年級(jí)數(shù)學(xué)上冊(cè)4萬(wàn)以?xún)?nèi)的加法和減法二1加法練習(xí)課第1-2課時(shí)教學(xué)設(shè)計(jì)新人教版
- 三年級(jí)數(shù)學(xué)上冊(cè)教材梳理統(tǒng)計(jì)與可能性新人教版
- 三年級(jí)科學(xué)下冊(cè)第四單元磁鐵第5課磁力大小會(huì)變化嗎教學(xué)材料教科版
- 《如何制作專(zhuān)業(yè)化》課件
- (八省聯(lián)考)云南省2025年普通高校招生適應(yīng)性測(cè)試 物理試卷(含答案解析)
- 【8地RJ期末】安徽省合肥市肥西縣2023-2024學(xué)年八年級(jí)上學(xué)期期末考試地理試題(含解析)
- 統(tǒng)編版2024-2025學(xué)年第一學(xué)期四年級(jí)語(yǔ)文期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)試卷(含答案)
- 小紅書(shū)食用農(nóng)產(chǎn)品承諾書(shū)示例
- 宣州謝朓樓餞別校書(shū)叔云
- 遼寧盤(pán)錦浩業(yè)化工“1.15”泄漏爆炸著火事故
- 長(zhǎng)輸管道原油輸送基本知識(shí)
- 完美世界的材料
- 藻類(lèi)名稱(chēng)(漢拉對(duì)照)
- 勞資專(zhuān)管員任命書(shū)
- 1百家姓全文帶拼音打印
評(píng)論
0/150
提交評(píng)論