四級數(shù)據(jù)庫重難點_第1頁
四級數(shù)據(jù)庫重難點_第2頁
四級數(shù)據(jù)庫重難點_第3頁
四級數(shù)據(jù)庫重難點_第4頁
四級數(shù)據(jù)庫重難點_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、四級數(shù)據(jù)庫重難點第6章存儲技術與數(shù)據(jù)庫物理設計6.1物理設計是在具體的硬件環(huán)境、OS、DBMS約束下,基于邏輯設計,設計具體數(shù)據(jù)存儲結構和存取方式。目的:占用空間少、訪問效率高、維護代價低。主要步驟有數(shù)據(jù)庫邏輯模式調整、文件組織與存取設計、數(shù)據(jù)分布設計、安全模式設計、確定系統(tǒng)配置、物理模式評估。6.2索引技術(Indexing)是一種快速文件訪問技術,它將文件記錄在某個或某些域(或稱為屬性)上的取值與該記錄的物理地址直接聯(lián)系起來,提供了一種根據(jù)記錄域的取值快速訪問文件記錄的機制。索引文件是一種利用索引技術支持快速文件訪問的文件組織和存取方法。索引加快了查詢記錄卻減慢了數(shù)據(jù)更新速度,本身還占用一

2、定的存儲空間。6.3文件組織:如何將關系數(shù)據(jù)庫中的關系映射為操作系統(tǒng)中的數(shù)據(jù)庫文件,及管理文件。文件結構:如何將DB文件中的邏輯記錄映射到物理文件的中磁盤塊。文件存取:針對某種結構的DB文件,如何查、添刪改其中的邏輯記錄6.4數(shù)據(jù)字典:數(shù)據(jù)庫各類對象的描述信息、數(shù)據(jù)庫管理系統(tǒng)的控制信息。包括關系模式信息、與視圖描述有關的信息、關系的存儲結構和存取方法信息、完整性約束、安全性有關的信息、數(shù)據(jù)庫運行統(tǒng)計信息。作用:DBA用來監(jiān)視DBMS的使用情況并協(xié)助完成管理工作;一般用戶可用于查閱部分數(shù)據(jù)庫結構信息;DBS運行時各子系統(tǒng)頻繁使用以完成相應的存儲和查詢處理功能。6.5DBMS的三種完整性控制機制:

3、CHECK子句、斷言、觸發(fā)器斷言語句:Createassertion斷言約束名check()6.6堆文件:數(shù)據(jù)量少且操作頻繁;批量加載數(shù)據(jù)(先選為堆文件再調整文件結構)順序文件:查詢條件定義在查找碼上;快速的二分查找散列文件:基于散列域值的等值匹配,特別是訪問順序是隨機的。非精確查詢;非散列域B樹和B+樹:大數(shù)據(jù)量基本表;聚焦文件:多表連接操作6.7有序索引技術利用索引文件實現(xiàn)查找碼取值到記錄物理地址間的映射關系。索引文件由索引記錄組成,每個記錄中的索引項記錄了某個特定的查找碼值和具有該值的數(shù)據(jù)文件記錄的物理地址。當需要訪問數(shù)據(jù)文件中某個數(shù)據(jù)記錄時,先根據(jù)查找碼值查閱索引文件,找到對應的索引項

4、,然后從索引項中找出數(shù)據(jù)記錄在數(shù)據(jù)文件中的物理地址根據(jù)這個地址訪問數(shù)據(jù)記錄。6.8散列技術是一種快速文件訪問技術,它利用散列函數(shù)實現(xiàn)文件記錄域取值到記錄物理地址間的直接映射關系。當需要訪問數(shù)據(jù)文件中查找碼值為si的某個或某些文件記錄時,將si作為散列函數(shù)h的輸入計算得出的散列函數(shù)輸出值h(si)就是文件記錄在數(shù)據(jù)文件中的物理地址。6.9權限:允許用戶對一給定的數(shù)據(jù)庫對象可執(zhí)行的操作(查詢、添刪改、新建、備份等)。第7章數(shù)據(jù)庫應用系統(tǒng)功能設計7.1軟件體系結構:軟件架構構件,連接件,約束7.2軟件設計包括系統(tǒng)的總體結構設計、系統(tǒng)的過程設計、系統(tǒng)的數(shù)據(jù)設計三方面內容(+人機界面設計),從工程管理的

5、角度,分為概要設計、詳細設計7.3應用軟件分為數(shù)據(jù)庫事務和應用程序。后者一方面可以與數(shù)據(jù)庫事務協(xié)調合作,另一方面還可實現(xiàn)與數(shù)據(jù)庫訪問無關的功能,如通信、人機交互。7.4事務:具有邏輯獨立功能的一系列操作的集合,實現(xiàn)了某些特定的業(yè)務規(guī)則。7.5事務概要設計的核心是辨識和設計事務自身的事務處理邏輯,采用面向數(shù)據(jù)流的程序設計方法設計事務內部的數(shù)據(jù)處理流程和結構。7.6C/S結構特點:數(shù)據(jù)管理和數(shù)據(jù)處理被分在客戶端和服務器上;服務器可支持多個客戶端;客戶端也可訪問多個服務器;客戶端人機交互+數(shù)據(jù)處理B/S結構特點:表示層,WEB瀏覽器;功能層,WEB應用服務器;數(shù)據(jù)層,DBMS服務優(yōu)點:實現(xiàn)人面交互、

6、應用業(yè)務邏輯處理、數(shù)據(jù)管理三層分離,提高了系統(tǒng)的可維護性;用WEB瀏覽器可訪問多個異構應用平臺,解決了跨平臺數(shù)據(jù)管理問題。第9章事務高度與并發(fā)控制9.1調度:定義在多個事務上的調度是這些事務的所有操作的一個執(zhí)行序列,代表了這些操作的執(zhí)行順序;沖突操作:事務Ti的操作Ii與事務Tj的操作Ij是沖突的,當且僅當Ii和Ij訪問數(shù)據(jù)庫中同一個數(shù)據(jù)項Q,并且Ii和Ij中至少有一個是寫操作write(Q);沖突可串行:一個并發(fā)調度沖突等價于某個串行調度(判斷一個并行調度是否正確)死鎖是指數(shù)據(jù)庫系統(tǒng)中部分或全部事務由于無法獲得對需要訪問的數(shù)據(jù)項的控制權而處于等待狀態(tài),并且將一直等待下去的一種系統(tǒng)狀態(tài)。9.2

7、ACID:Atomicity原子性;Consistency一致性;Isolation隔離性;Durability持久性9.31級加鎖協(xié)議要求事務T在修改數(shù)據(jù)項Q之前必須先對Q加X鎖,直到事務結束才釋放該鎖。事務結束包括正常結束(commit)和非正常結束(rollback)。但事務如果是只讀Q而不對其進行修改,是不需要對Q加鎖的。2級加鎖協(xié)議是在1級加鎖協(xié)議基礎上,要求事務T在讀取數(shù)據(jù)項Q之前必須先對其加S鎖,讀完Q后可以立即釋放S鎖。3級加鎖協(xié)議則是在1級加鎖協(xié)議基礎上,要求事務T在讀取數(shù)據(jù)項Q之前必須先對其加S鎖,但是需要等到事務結束時才釋放該S鎖。9.42階段鎖協(xié)議將每個事務的執(zhí)行過程分

8、為加鎖階段和解鎖階段。在加鎖階段,事務可以申請獲得數(shù)據(jù)項上的任何類型的鎖,但不允許釋放任何鎖。在解鎖階段,事務可以釋放任何數(shù)據(jù)項上的任何類型的鎖,但不能再申請任何鎖。每個事務開始執(zhí)行后就進入了加鎖階段。當?shù)谝淮吾尫沛i后,即轉入解鎖階段。9.5解決死鎖主要采用死鎖預防和死鎖檢測與恢復兩類方法。死鎖預防利用死鎖預防協(xié)議,通過破壞死鎖產(chǎn)生的必要條件來避免系統(tǒng)進入死鎖狀態(tài)。一次性加鎖法;順序加鎖法死鎖檢測與恢復則是允許系統(tǒng)進入死鎖狀態(tài),并且定期檢查系統(tǒng)是否發(fā)生死鎖。當發(fā)現(xiàn)系統(tǒng)發(fā)生死鎖后,采取相應的恢復機制使系統(tǒng)擺脫死鎖狀態(tài)。9.6活鎖產(chǎn)生的原因是在系統(tǒng)非死鎖狀態(tài)下,某些事務由于始終無法獲得對所需訪問的

9、數(shù)據(jù)項的控制權而長期等待下去,無法繼續(xù)執(zhí)行。9.7鎖粒度大:被加鎖數(shù)據(jù)項少、事務并發(fā)執(zhí)行度低、系統(tǒng)開銷??;鎖粒度小則反之9.8基于鎖的并發(fā)控制技術的原理P166第10章數(shù)據(jù)庫的實施、運行和維護10.1試運行:功能測試;性能測試10.2數(shù)據(jù)庫維護:數(shù)據(jù)庫的轉儲和恢復;數(shù)據(jù)庫的安全性、完整性控制;數(shù)據(jù)庫性能的檢測和改善;數(shù)據(jù)庫的重組和重構10.3數(shù)據(jù)庫安全:行政手段制定規(guī)范;權限管理、口令等;維護多個數(shù)據(jù)副本;防及除毒10.4數(shù)據(jù)庫重組:按照系統(tǒng)設計要求對數(shù)據(jù)庫存儲空間進行全面調整;數(shù)據(jù)庫重構:業(yè)務小范圍變化需對數(shù)據(jù)庫邏輯結構作必要改變。10.5數(shù)據(jù)庫監(jiān)控分析:DBA借助相應工具監(jiān)測數(shù)據(jù)庫系統(tǒng)的運

10、行情況,對監(jiān)測數(shù)據(jù)進行分析,評估整個系統(tǒng)的運行狀態(tài),為系統(tǒng)的安全運行和性能優(yōu)化提供依據(jù)。10.6數(shù)據(jù)庫空間管理:數(shù)據(jù)量增加和碎片使性能降低;空間溢出會帶來災難性停機故障。包括:創(chuàng)建修改刪除數(shù)據(jù)庫空間、新建移動關聯(lián)數(shù)據(jù)文件等。10.7數(shù)據(jù)庫參數(shù)調整:外部調整:CPU、網(wǎng)絡;調整內存分配(改善程度大);調整磁盤I/O(I/O時間是響應時間的最大組成部分);調整競爭10.8數(shù)據(jù)庫查詢優(yōu)化:合理使用索引;避免或簡化排序(Orderby、Groupby,磁盤排序比內存排序開銷大速度慢);避免相關子查詢、外連接(左右連接比內連接消耗大);存儲過程10.9屬于Oracle但不屬于SQLServer的邏輯和物

11、理空間結構:表空間、段、區(qū)第11章故障管理11.1故障種類:事務內部故障(事務回滾撤消修改)、系統(tǒng)故障(影響事務不壞數(shù)據(jù))、介質故障(軟件容錯、硬件容錯)、病毒11.2系統(tǒng)故障對策:重啟,撤消(UNDO)未提交的事務,重做(REDO)已提交的事務11.3軟件容錯:備份、日志文件,利用恢復技術;硬件容錯:雙物理存儲設備11.4恢復基本原理:冗余,即所有數(shù)據(jù)均可通過存儲在別處的冗余數(shù)據(jù)來重建。11.5對于經(jīng)常進行數(shù)據(jù)操作的數(shù)據(jù)庫:完全轉儲+差異轉儲11.6以記錄為單位的日志文件:開始標記(TiBEGINTRANSACTION)、結束標記(TiCOMMIT或者TiROLLBACK)、每個事務的所有操

12、作(Ti,A,50,80)11.7以數(shù)據(jù)塊為單位的日志文件:存放更新前和更新后的整個數(shù)據(jù)塊。只有事務標識和被更新的數(shù)據(jù)塊,沒有操作類型和操作對象。11.8日志的作用:用來進行業(yè)務故障和系統(tǒng)故障恢復;協(xié)助后備副本進行介質故障恢復(動態(tài)轉儲必用);記錄操作監(jiān)視行為分析問題登記原則:登記次序嚴格按并行事務執(zhí)行次序;必須先寫日志文件再寫數(shù)據(jù)庫11.9檢查點:最大限度減少數(shù)據(jù)庫完全恢復時所必須執(zhí)行的日志部分(針對系統(tǒng)故障)。11.10數(shù)據(jù)庫鏡像:提高數(shù)據(jù)庫可用性的解決方案(比如介質故障,兩臺服務器相互備份)優(yōu)點:提供完整或幾近完整的數(shù)據(jù)冗余,增強數(shù)據(jù)保護;發(fā)生介質故障時,數(shù)據(jù)不會丟失且服務不會中斷,提高

13、數(shù)據(jù)庫可用性;提高鏡像數(shù)據(jù)庫在升級期間的可用性。雙機互備援模式(均為主);雙機熱備份模式(一主一備份機)。數(shù)據(jù)庫鏡像可用于并發(fā)操作。11.11RAID廉價冗余磁盤陣列:(鏡像冗余、)校驗冗余:對成員磁盤上的數(shù)據(jù)執(zhí)行異或(XOR)操作得到其校驗值并存放在另外的校驗磁盤上。當某個磁盤發(fā)生故障時,只須計算其他磁盤上的校驗數(shù)據(jù)和數(shù)據(jù)的異或便可重新得到該磁盤的值。第12章SQLServer2000數(shù)據(jù)庫管理系統(tǒng)12.1四個服務:SQLServer核心服務;SQLServerAgent:代理服務,代理定期進行的管理工作;DTC:DistributedTransactionCoordinator,分布式事務

14、協(xié)調器,同一事務訪問多個服務器MicrosoftSearch:全文檢索服務12.2四個版本:企業(yè)版(全部功能、大型數(shù)據(jù)庫)、標準版(小部門)、開發(fā)版(同企業(yè)版,作開發(fā)測試系統(tǒng)用,不作生產(chǎn)服務用)個人版(移動環(huán)境、本地數(shù)據(jù))12.3服務帳戶:使用本地系統(tǒng)帳戶:自動取當前登錄到Windows的用戶,沒有Windows的網(wǎng)絡訪問權限,適用于非網(wǎng)絡服務器操作系統(tǒng)(如XP);使用域用戶帳戶:使用Windows身份驗證設置連接到SQLServer,用戶必是Windows系統(tǒng)管理員,適用于網(wǎng)絡服務器OS12.4網(wǎng)絡庫:在SQLS客戶端和服務器間傳遞網(wǎng)絡數(shù)據(jù)包。服務器可一次監(jiān)聽多個網(wǎng)絡庫12.5SQLServ

15、er的兩大類數(shù)據(jù)庫:系統(tǒng)數(shù)據(jù)庫:DBMS自動創(chuàng)建及維護,存放維護系統(tǒng)正常運行的信息,master(系統(tǒng)級信息)、msdb(支持自動執(zhí)行任務)、model(所有用戶數(shù)據(jù)庫的公共信息)、tempdb(臨時數(shù)據(jù)庫),示例Pubs、Northwind;用戶數(shù)據(jù)庫12.6估算存儲空間:SQLServer數(shù)據(jù)存儲單位為頁(Page),一個數(shù)據(jù)頁是一塊8KB的連續(xù)磁盤空間,行不能跨頁存儲,一行數(shù)據(jù)的大小不能超過一頁的大小。一個表10000行數(shù)據(jù),每行3000字節(jié),則需要(10000/2)*8KB=40MB的空間。12.7主數(shù)據(jù)文件:擴展名為.mdf,包含數(shù)據(jù)庫系統(tǒng)信息并可存放用戶數(shù)據(jù)庫數(shù)據(jù),每個數(shù)據(jù)庫只有一

16、個主數(shù)據(jù)文件。輔助數(shù)據(jù)文件:擴展名為.ndf,數(shù)據(jù)量很大時使用,可存放在不同的磁盤驅動器上,以便得利用多個磁盤上的存儲空間并提高數(shù)據(jù)存取的并發(fā)性。12.8每個數(shù)據(jù)文件及日志文件(.ldf)初始大小均不得小于512KB,主數(shù)據(jù)文件大小不得小于model數(shù)據(jù)庫主數(shù)據(jù)文件,日志文件最好不小于1MB12.9創(chuàng)建數(shù)據(jù)庫:CREATDATABASEjessyminON表示數(shù)據(jù)庫按下面參數(shù)創(chuàng)建(NAME=jessymin,邏輯文件名FILENAME=MSSQLDatajessymin_Data.mdf,OS下的物理文件名SIZE10,文件初始大小,單位默認為MB,下同MAXSIZE30,文件最大大小FILE

17、GROWTH5,文件增量,為0表示不自動增長,默認按當前10%增長)LOGON表示該數(shù)據(jù)庫日志文件按下面參數(shù)創(chuàng)建(.同上,只是物理文件名為jessymin.LDF)12.10刪除數(shù)據(jù)庫:DROPDATABASEjessymin。刪除六種數(shù)據(jù)庫對象均用DROP12.11Transact-SQL:非過程化高級語言,全司變量,局部變量,局部變量可以是自定義類型但不能是text或image類型。12.12Transact-SQL示例:計算1+2+3+100的和:DECLAREiint,sumintSETi=1,sum=0-SET可換為SELECTWHILEi<=100BEGINSETsum=su

18、m+iSETi=i+1ENDPRINTsum12.13DTS(DataTransformationService)數(shù)據(jù)轉換服務。注意區(qū)別DTC(分布式事務協(xié)調器)。導出數(shù)據(jù)時用戶必須是要連接的數(shù)據(jù)庫服務器的合法用戶,且對要導出的表具有查詢權限第13章數(shù)據(jù)庫對象13.1存儲過程的:SQL語句和控制流語句的預編譯集合,應用程序可通過調用方法來執(zhí)行優(yōu)點:模塊化程序設計;提高性能;減少網(wǎng)絡流量;可作為安全機制使用13.2帶有多個參數(shù)并有默認值及輸出參數(shù)的存儲過程示例:CREATEPROCEDUREp_Exampleareavarchar(20)=武漢大學,Pricemoney,Sumintoutput

19、ASSELECT/UPDATE/INSERT/DELETESETSum=.應用程序中執(zhí)行的SQL語句:DeclareresintEXECUTEp_Example武漢大學信息學部,1000,resoutput或者EXECUTEp_ExamplePrice=1000,resoutput13.3用戶自定義函數(shù):標量函數(shù)(返回單值,非text、Image類型,任何允許出現(xiàn)表達式的地方)、內嵌表值函數(shù)(返回一個表,放在查詢語句的From子句中)、多語句表值函數(shù)(返回一個可自定義的表,也放在查詢語句的From子句中,視圖和存儲過程的結合)13.4標量函數(shù)救示例:根據(jù)指定的商品類別查詢該類的商品個數(shù)。CRE

20、ATFUNCTIONdbo.f_GoodsCount(classvarchar(10)RETURNSintASBEGINDECLARExintSELECTx=count(*)FromT_GoodsClassaJIONT_GoodsbONa.GoodClassID=b.GoodClassIDWHEREGoodClassName=classRETURNxEND調用:SELECTdbo.f_GoodsCount(服裝)或者SELECTGoodsNameAS商品名,dbo.f_GoodsCount(服裝)AS種類數(shù)From.13.5內嵌表值函數(shù)的不同之處在于RETURNS后只能是table,RETUR

21、N后面只能是單個的SELECT語句,沒有相關聯(lián)的返回變量也沒有函數(shù)體。調用時放在查詢語句的FROM子句中。13.6觸發(fā)器是一種不需要由用戶來調用的存儲過程,當用戶對表進行UPDATE、INSERT或DELETE操作時自動觸發(fā)執(zhí)行。作用:保證業(yè)務規(guī)則和數(shù)據(jù)完整性。優(yōu)點:用編程方法來實現(xiàn)復雜的處理邏輯和業(yè)務規(guī)則,增強數(shù)據(jù)完整性約束。13.7觸發(fā)器適用場合:比CHECK語句更復雜的數(shù)據(jù)約束(可引用其他表中的列);為保證數(shù)據(jù)庫性能而維護的非規(guī)范化數(shù)據(jù)(如增加統(tǒng)計總值的列);實現(xiàn)復雜的業(yè)務規(guī)則13.8AFTER/FOR:后觸發(fā)型觸發(fā)器,可在同一操作上建立多個;INSTEADOF:前觸發(fā)型,在同一操作上只

22、能建立一個。所有的涉及對數(shù)據(jù)庫對象操作的語句均不允許出現(xiàn)在觸發(fā)器中。13.9DELETED表:存儲UPDATE和DELETED操作語句所影響行的更新前的舊數(shù)據(jù);INSERTED表:存儲UPDATE和INSERT操作語句所影響行的更新后的新數(shù)據(jù)。13.10維護數(shù)據(jù)操作完整性的后觸發(fā)器示例:銷售量大于庫存量則撤銷當前銷售,小于時則在插入銷售單據(jù)明細時同時修改庫存量。CreateTriggerOperatonConONT_SaleDetailFORINSERTASIFEXISTS(Select*FrominsertedaJionT_GoodsbONa.GoodsID=b.GoodsIDWHEREa.

23、Quanity>b.TotalCharge)BEGINROLLBACKPRINT此商品庫存量小于此次銷售數(shù)量ENDELSEUPDATET_GoodsSETTotalCharge=TotalCharge(SELECTQuanityFrominserted)13.11維護不同列之間取值完整性的后觸發(fā)器示例:保證商品表中的單價與價格變動表中一致CREATETRIGGERPriceConstraintONT_PriceHistoryFORINSERT,UPDATEASDECLAREnewpricemoneySELECTnewprice=SalePriceFrominsertedUPDATET_G

24、oodsSETSaleUnitPrice=newpriceWHEREGoodsIDIN(SELECTGoodIDFrominserted)13.12前觸發(fā)器指定執(zhí)行觸發(fā)器而不執(zhí)行引發(fā)觸發(fā)器的SQL語句,因此,如果數(shù)據(jù)操作滿足完整性約束則在觸發(fā)器中必須重新執(zhí)行這些數(shù)據(jù)操作語句。前觸發(fā)器示例:保證銷售單據(jù)中的會員卡是有效日期內的會員卡:CREATETRIGGERCardValidONT_SaleDetailINSTEADOFINSERT,UPDATEASIFNOTEXISTS(SElETCT*FrominsertedaJOINT_CardbONa.CardID=b.CardIDWHEREa.Sal

25、DateNOTBETWEENb.StartDateANDb.EndDate)INSERTINTOT_SaleDetailSELECT*Frominserted(若滿足條件此語句重新執(zhí)行)13.13用SQL語句修改存儲過程、用戶自定義函數(shù)、觸發(fā)器的語法與創(chuàng)建基本一致,只是將CREATE改為了ALTER。(查詢分析器中實現(xiàn))第14章安全管理14.1數(shù)據(jù)庫的安全控制:在DBMS的不同層次提供對有意和無意損害行為的安全防范。有意的非法活動:加密存、取數(shù)據(jù);有意的非法操作:用戶身份驗證、限制操作權;無意的損壞:提高系統(tǒng)的可靠性和數(shù)據(jù)備份14.2數(shù)據(jù)庫權限的種類:對DBMS進行維護的權限;對數(shù)據(jù)庫對象和數(shù)

26、據(jù)進行操作的權限SQLServer權限種類(與數(shù)據(jù)庫用戶分類對應):隱含權限(預定義的內置權限);語句權限(DDL語句權限,創(chuàng)建刪除數(shù)據(jù)庫對象);對象權限(DML語句權限,操作數(shù)據(jù)庫對象)14.3數(shù)據(jù)庫用戶的分類:數(shù)據(jù)庫系統(tǒng)管理員(SA,全部權限);數(shù)據(jù)庫對象擁有者(創(chuàng)建數(shù)據(jù)庫對象的用戶,對所擁有的對象具有一切權限);普通用戶:只具有對數(shù)據(jù)的編輯查詢功能14.4三個認證過程:身份認證,只認證用戶是否有連接到數(shù)據(jù)庫服務器的“連接權”;合法用戶,驗證是否是數(shù)據(jù)庫的合法用戶;權限認證,驗證用戶是否具有要進行的操作的操作權限14.5系統(tǒng)內置的登錄賬戶:BUILTINAdministrator;SA;域

27、名Administrator,均DBMS管理員14.6創(chuàng)建SQLServer身份認證的登錄賬戶:EXECUTEsp_addloginuser3,123,jessyminUser3為登錄賬戶,123為密碼,jessymin為默認數(shù)據(jù)庫;WINDOWS認證:sp_grantlogin14.7刪除登錄賬戶存儲過程:EXECdroploginuser3(SQLServer身份驗證);EXECrevokeloginServer1nt_user(WINDOWS身份驗證)14.8登錄賬戶可以連接到SQLServer服務器上但并不具有訪問任何數(shù)據(jù)庫的能力,必須再成為數(shù)據(jù)庫的合法用戶。一個登錄賬戶可以映射為多個

28、數(shù)據(jù)庫用戶,管理數(shù)據(jù)庫用戶的過程實際上就是建立登錄賬戶與數(shù)據(jù)庫用戶之間的映射關系的過程。新建的數(shù)據(jù)默認只有一個用戶:dbo,它是數(shù)據(jù)庫的擁有者。14.9創(chuàng)建數(shù)據(jù)庫用戶:EXECsp_adduserU2,U2,user_role,用戶名與登錄賬戶一致,并讓其成為“user_role”角色的成員。刪除:EXECsp_dropuserU214.10合法用戶除了對所屬數(shù)據(jù)庫系統(tǒng)表具有一些查詢權限外并不對數(shù)據(jù)庫中的用戶數(shù)據(jù)和對象具有任何權限,還得得到對數(shù)據(jù)庫數(shù)據(jù)和對象的操作權限14.11收回權限:不允許用戶或角色具有某種操作權,或者收回曾經(jīng)授予的權限,置空標記;拒絕訪問:拒絕某用戶或角色具有某種操作權,

29、即使由于繼承獲得的權限也無效,叉叉標記14.12用Transact-SQL語句管理對象權限入管理語句權限:P24514.13角色:數(shù)據(jù)庫中具有相同權限的一組用戶。系統(tǒng)預定義的固定角色;自定義用戶角色14.14固定的服務器角色:*amdin+dbcreator,權限最重要最高的是sysadmin,角色成員源均為系統(tǒng)的登錄賬戶:EXECsp_addsrvrolememberServer1nt_user,sysadmin14.15固定的數(shù)據(jù)庫角色:db_*+public,權限最高的是db_owner:EXECsp_addrolememberdb_owner,user3(注意用戶和用色的順序)14.1

30、6public角色:每個用戶均自動為其成員,不具任何權限但可賦予權限。如果想讓所有數(shù)據(jù)庫用戶均具有某個特定權限則可將該權限授予public14.17用戶自定義的用戶角色:EXECsp_addrolemyrole14.18只要權限沒有被拒絕過,角色中成員權限是角色的權限加上成員自己的權限。第15章備份和恢復數(shù)據(jù)庫15.1備份的兩種方式:先創(chuàng)建備份設備(備份數(shù)據(jù)庫的場所),再將數(shù)據(jù)庫備份到備份設備上(永久備份設備);直接將數(shù)據(jù)庫備份到物理文件上(臨時備份設備)15.2創(chuàng)建磁盤備份設備:EXECsp_addumpdevicedisk,mydiskdump,.mydump.bak15.3常用備份策略:

31、完全備份加差異備份加日志備份,備份和恢復速度都比較快,而且當系統(tǒng)出現(xiàn)故障時丟失的數(shù)據(jù)較少。15.4Transact-SQL語句:BACKUPDATABASELOGjessyminTOmydiskdumpWITHINITWITHINIT表示覆蓋掉原有內容,相當于“重寫現(xiàn)有媒體”15.5恢復的一般順序:先恢復最近的完全數(shù)據(jù)庫備份;再恢復完全備份之后的最近的差異備份;最后按日志備份的先后順序恢復自最近的完全備份或差異備份之后的所有日志備份。15.6Transact-SQL語句恢復過程示例:1)首先恢復完全備份RESTOREDATABASEjessyminFROMmydiskdumpWITHFILE=

32、1,NORECOVERY2)然后恢復差異備份(如果有的話)RESTOREDATABASEjessyminFROMmydiskdumpWITHFILE=2,NORECOVERY3)最后恢復日志文件RESTORELOGjessyminFROMmydiskdumpNorecovery表示對數(shù)據(jù)庫的恢復操作尚未完成,相當于“使數(shù)據(jù)不再運行,但能還原其他事務的日志文件”。默認為RECOVERY。第16章VB開發(fā)環(huán)境與數(shù)據(jù)訪問接口(鄙人此前未曾用過VB,疏漏淺薄之處敬請見諒)16.1標準數(shù)據(jù)綁定控件:TextBox、CheckBox、ListBox、ComboxBox等外部(ActiveX)數(shù)據(jù)綁定控件:

33、DataCombo、DataList、DataGrid、MSHFGrid等16.2DBMS支持的兩種數(shù)據(jù)接口:專用接口(與特定的DBMS有關);通用接口(屏蔽掉每個DBMS底層接口的差異,提供一種標準的訪問方法)16.3通用接口:ODBC、OLEDB、JDBC,讓應用程序具有很好的適應性和可移植性;具備同時訪問多種DBMS系統(tǒng)的能力。16.4ODBC(只訪關系型DB):開放數(shù)據(jù)庫互連OpenDataBaseConnectivity,ODBC應用系統(tǒng)大致工作流程從開始配置數(shù)據(jù)源到回收各種句柄為此。句柄是32位整數(shù)值,代表一個指針。16.5OLEDB:對象鏈接與嵌入的數(shù)據(jù)庫ObjectLinked

34、andEmbedDataBase,是MicrosoftOLE對象標準的一個實現(xiàn),是COM對象,是為數(shù)據(jù)訪問而設計的一系列COM接口。16.6ADO:動態(tài)數(shù)據(jù)對象ActiveXDataObject,建在OLEDB之上的高層接口集,是介于OLEDB底層接口和應用程序之間的接口,它避免了開發(fā)人員直接使用OLEDB底層接口的麻煩。16.7ODBC與OLEDB的主要區(qū)別:1)ODBC只能訪問關系型數(shù)據(jù)庫,而OLEDB可以訪問關系和非關系型甚至是無結構的數(shù)據(jù)。2)OLEDB克服了ODBC的一個主要缺點:一個ODBC驅動程序需要支持幾乎所有的DBMS特征和功能,這需要大量的工作和初始投資,而OLEDB允許D

35、BMS提供商只實現(xiàn)他們產(chǎn)品的一部分功能。第17章VB數(shù)據(jù)庫應用編程17.1CommandType屬性:adCmdUnknown,表示RecordSource中的命令類型未知;adCmdTable表示RecordSource屬性的內容來自一張表;adCmdText表示RecordSource屬性的內容來自一個查詢語句;adCmdStoredType表示RecordSource屬性的內容來自一個存儲過程17.2RecordSet的Move方法組中,MovePrevios和MoveNext沒有自動檢測記錄的當前行指針是否移出了結果集邊界的功能,需編碼實現(xiàn):EndIf17.3保存緩沖區(qū)中的記錄:Upd

36、ate方法;對當前記錄指針作一個移動操作17.4CancelUpdate方法:應在Update方法之前調用,調用了Update方法之后的修改是不能撤銷的;如果沒有添加新記錄也沒有對當前記錄做任何修改,調用CancelUpdate會出錯。17.5Find方法:用于在當前結果集中查找滿足條件的記錄myadodc.RecordSet.Find(“查找條件表達式”)與RecordSet對象名.Filter“選擇表達式”相似(.Filter=adFilterNone還原)17.6更新記錄:mydocdc.RecordSet.Fields(“CustomID”)=Trim(txtCID.Text)mydo

37、cdc.RecordSet.Fields(“Age”)=CInt(txtAge.Text)17.7刪除記錄提示窗口:DimresAsIntegerres=MsgBox(“確實要刪除此行記錄嗎?”,vbExclamation+vbYesNo+vbDefaultButton2)Ifres=vbYesThenEndIf17.8在DataGrid中顯示全部列:DimintColAsIntegerWithmydg1.Columns(intCol).Visible=TrueNextEndWith另一種For循環(huán):ForEachparINadocm.Parameters.Nextpar17.9排序功能實現(xiàn):

38、(mydg.DataSource=adodc)Withadodc.RecordSetIfoptAsc.Value=TrueThen.Sort=.Field(intCol).Name&“ASC”Else.Sort=.Field(intCol).Name&“DESC”EndIfEndWithmydg.Refresh17.10ADO對象模型Connection對象-ErrorS集合-Error對象Command對象-Parameters集合-Parameter對象RecordSet對象-Fields集合-Field對象17.11Connection對象可以完成的操作:連接數(shù)據(jù)源打開數(shù)

39、據(jù)庫;執(zhí)行一個數(shù)據(jù)庫操作命令;利用Error對象檢查數(shù)據(jù)源返回的出錯信息。17.12銷毀內存中的對象:Set對象名=Nothing17.13Command對象的CommandText屬性相當于ADO數(shù)據(jù)控件的RecordSource屬性;Command對象的CommandType屬性相當于ADO數(shù)據(jù)控件的CommandType屬性17.14RecordSet對象的主要功能是建立記錄集,并支持對記錄集中各數(shù)據(jù)的各種操作。允許用戶直接獲取數(shù)據(jù),因此RecordSet對象與ADO的訪問過程無關。17.15CursorType屬性:adOpenDynamic動態(tài)游標:反映所有用戶對數(shù)據(jù)的修改,支持向前

40、及向后移動;adOpenStatic靜態(tài)游標:不能反映其他用戶的修改,支持向前及向后,當打開客戶端RecordSet對象時,adOpenStatic為唯一允許的游標類型。當打印報表和其他不需要即時完成更新數(shù)據(jù)的應用程序來說很有用。adOpenFowardOnly僅向前游標:默認值。僅支持向前移動,其他與adOpenStatic一致。adOpenKeyset鍵集游標:介于動態(tài)和靜態(tài)游標。只看到其他用戶更改的看不到添加刪除的17.16CursorLocation屬性:adUseClient:本地客戶端游標。將整個結果集傳給客戶端,網(wǎng)絡流量大但下載后瀏覽速度快adUseServer:默認值,僅傳送客

41、戶端需要的數(shù)據(jù),網(wǎng)絡流量小但服務器資源消耗大。不支持BookMark屬性(書簽,快速再定位)和AbsolutePosition屬性adUseNone:沒有使用游標服務。17.17RecordSet.Open方法:myRs.OpenSource,ActiveConnection,CursorType,LockType,Options1)Source支持的類別:5)Options的可選項一個返回記錄的Command對象/adCmdFileSQL語句adCmdText表名adCmdTable存儲過程名adComdStoredProc2)ActiveConnection:已打開的Connection對

42、象;一個連接字符串示例:DimmyCnnAsNewADODB.ConnectionDimmyRsAsNewADODB.RecordSetmyCnn.Connection=“Provider=SQLOLEDB.1;UserID=sa;”_&“InitialCatalog=商品經(jīng)營管理數(shù)據(jù)庫;DataSource=(local)”myCnn.Open別忘了“打開”myRs.Source=“select*fromT_Customer”myRs.ActiveConnection=myCnnmyRs.CursorType=adOpenDynamicmyRs.CursorLocation=adUs

43、eClientmyRs.Open,adCmdTalbe17.18創(chuàng)建RecordSet對象的三種方法:1)使用Connection對象:SetmyRs=myConn.Execute(“select*fromT_customer”);2)使用Command對象:SetmyRs=myComm.Execute;3)直接使用Open方法:myRs.Open,17.19Error對象:如果最后一次的操作成功則這個集合為空。只有在OLEDB層產(chǎn)生錯誤才會將每個錯誤被翻譯成Error對象,如果指向一個不存在的提供者則Errors集合不會得到任何信息,因為ADO不能發(fā)現(xiàn)這個指定的驅動程序,因此會將錯誤傳遞到V

44、isualBasicErrors中。17.20三對象結合使用的典型示例:DimmyCnnAsNewADODB.ConnectionDimmyCmmAsNewADODB.CommandDimmyRsAsNewADODB.RecordSetmyCnn.ConnectionString=“Provider=SQLOLEDB.1;UserID=loginID;”_&“InitialCatalog=jessymin;DataSource=(local)”myCnn.Open別忘了“打開”SetmyCmm.ActiveConnection=myCnnmyCmm.CommandText=“selec

45、t*fromT_Customer”SetmyRs=myCmm.Execute17.21VB自定義函數(shù)示例:將字段空值轉化為空字符串PrivateFunctionconvertNull(valAsVariant)AsVariantIfIsNull(val)=TrueThenconvertNull=“”ElseconvertNull=valEndIfEndFunction第18章統(tǒng)一建模語言18.1UML視圖分類:用例視圖:用例圖;結構視圖:類圖、對象圖;行為視圖:順序圖、交互圖、狀態(tài)圖、活動圖;實現(xiàn)視圖:組件圖;環(huán)境視圖:部署圖18.2類與類之間有關聯(lián)(聚集,共享聚集+組成)、通用化(繼承)(帶

46、空心三角形的實線)、依賴(單向實線)、精化(帶空心三角形的虛線)18.3包(子系統(tǒng))的四種可見性還包括實現(xiàn)可見性,與私有可見性類似。A指向B的單向虛線表示子系統(tǒng)B被子系統(tǒng)A引用。18.4順序圖強調時間,協(xié)作圖強調空間,狀態(tài)圖強調一個實體在不同時刻的狀態(tài)變化,活動圖強調程序對象邏輯流程的串行執(zhí)行順序和并行次序第19章分布式數(shù)據(jù)庫、對象數(shù)據(jù)庫和并行數(shù)據(jù)庫19.1分布式數(shù)據(jù)庫(物理分散邏輯集中)最基本特征:本地自治、非集中式管理、高可用性;分片透明性(最高級)、位置透明性、局部數(shù)據(jù)模型透明性構成了分布式數(shù)據(jù)庫的分布透明性。19.2分片是對關系(表)的操作,分配是對分片結果的操作。19.3分布式數(shù)據(jù)庫

47、的模式結構:全局外模式、全局概念模式、分片模式、分配模式、局部概念模式、局部內模式;系統(tǒng)組成結構:GDBMS全局、GDD、LDBMS局部、CM通信管理19.4分布式事務管理:恢復控制(基于兩階段的提交協(xié)議)和并發(fā)控制(基于封鎖協(xié)議)19.5分布查詢數(shù)據(jù)傳輸量大的主要原因:連接操作和并操作19.6單繼承:一顆樹;多繼承:帶根的有向無回路圖19.7面向對象數(shù)據(jù)庫(面向對象語言中引入數(shù)據(jù)庫):實現(xiàn)方法主要是擴充面向對象程序設計語言,使之能處理持久數(shù)據(jù)。所謂持久數(shù)據(jù),指創(chuàng)建這些數(shù)據(jù)的程序運行終止后,數(shù)據(jù)仍然存在于系統(tǒng)之中。數(shù)據(jù)庫中的關系就是持久數(shù)據(jù)。ObjectStore、Ontos、O2等19.8對

48、象關系數(shù)據(jù)庫(關系數(shù)據(jù)庫中引入面向對象):擴展的數(shù)據(jù)類型定義;繼承性;擴充的SQL語言.InformixUniversalServer、DB2UDB、AdaptiveServer、Oracle8i、SQLServer19.9并行數(shù)據(jù)庫體系結構:共享內存;共享磁盤(中小型);無共享(最好的,銀行出納、民航售票等OLTP類,缺點:通信代價和非本地磁盤訪問代價);層次結構(綜合)19.10一維數(shù)據(jù)劃分方法:輪轉法:最適合于掃描整個關系;散列劃分法:比轉轉法更適合點查詢,也適合順序掃描關系;范圍劃分法:明顯利于范圍查詢和點查詢。缺點:均不能有效支持非劃分屬性上具有選擇謂詞的查詢。第20章數(shù)據(jù)他倉庫與數(shù)

49、據(jù)挖掘20.1數(shù)據(jù)倉庫解決的問題是如何更合理和理有效的組織企業(yè)的數(shù)據(jù)體系,目的在于根據(jù)決策需求對數(shù)據(jù)采取適當?shù)氖侄芜M行集成,形成一個綜合的面向分析的數(shù)據(jù)環(huán)境;數(shù)據(jù)挖掘解決的問題是如何針對具體的分析對象和分需求,嘗試智能和自動化的手段把數(shù)據(jù)轉換為新的有用的信息和知識。20.2數(shù)據(jù)分類:操作型數(shù)據(jù)(操作型處理,以業(yè)務處理為主的聯(lián)機事務處理OLTP);分析型數(shù)據(jù)(分析型處理,以分析為主的決策支持系統(tǒng)DDS)20.3數(shù)據(jù)倉庫是一個面向主題的、集成的(最重要,抽取、轉換、清理、裝載)、非易失的、且隨時間變化的(時變性)數(shù)據(jù)集合,用來支持管理人員的決策。20.4數(shù)據(jù)倉庫的體系結構:操作型數(shù)據(jù)、操作型數(shù)據(jù)存

50、儲、數(shù)據(jù)倉庫、數(shù)據(jù)集市;功能層次:數(shù)據(jù)管理、數(shù)據(jù)處理、數(shù)據(jù)應用20.5粒度涉及數(shù)據(jù)倉庫的數(shù)據(jù)量和支持的查詢類型。粒度小,細節(jié)度高,數(shù)據(jù)量大,查詢多20.6ODS(OperationalDataStore,操作型數(shù)據(jù)存儲):一方面,類似于操作型環(huán)境,可進行企業(yè)全局性聯(lián)機操作型處理;另外一方面,是一個面向主題的、集成的數(shù)據(jù)環(huán)境,但數(shù)據(jù)量小,適合于輔助企業(yè)完成日常決策的數(shù)據(jù)處理分析。(秒級、小時級、天級、含反饋信息)20.7數(shù)據(jù)倉庫設計以數(shù)據(jù)倉庫的主題數(shù)據(jù)模型設計和實現(xiàn)為核心。20.8OLAP(聯(lián)機分析處理,On-LineAnalyticalProcessing):支持復雜的分析操作,側重對決策人員

51、和高層管理人員的決策支持。20.9多維分析的基本活動:鉆取Drill-Down與卷起Roll-Up;切片Slice與切塊Dice;旋轉20.10OLAP的實現(xiàn)方式:基于多維數(shù)據(jù)庫的;基于關系數(shù)據(jù)庫的;混合型的20.11數(shù)據(jù)挖掘:數(shù)據(jù)庫知識發(fā)現(xiàn)KDD,從存放在數(shù)據(jù)庫、數(shù)據(jù)倉庫或其他信息庫中的大量數(shù)據(jù)中挖掘有趣知識的過程。三階段:數(shù)據(jù)準備、數(shù)據(jù)挖掘、結果的解釋評估20.12數(shù)據(jù)倉庫維護策略一般分為:實時維護、延時維護、快照維護20.13建立ODS的目的一般是為支持即時OLAP和全局OLTP兩類應用SQL精華語句一、簡單查詢簡單的Transact-SQL查詢只包括選擇列表、FROM子句和WHERE子

52、句。它們分別說明所查詢列、查詢的表或視圖、以及搜索條件等。例如,下面的語句查詢testtable表中姓名為“張三”的nickname字段和email字段。SELECTnickname,emailFROMtesttableWHEREname='張三'(一)選擇列表選擇列表(select_list)指出所查詢列,它可以是一組列名列表、星號、表達式、變量(包括局部變量和全局變量)等構成。1、選擇所有列例如,下面語句顯示testtable表中所有列的數(shù)據(jù):SELECT*FROMtesttable2、選擇部分列并指定它們的顯示次序查詢結果集合中數(shù)據(jù)的排列順序與選擇列表中所指定的列名排列順

53、序相同。例如:SELECTnickname,emailFROMtesttable3、更改列標題在選擇列表中,可重新指定列標題。定義格式為:列標題=列名列名列標題如果指定的列標題不是標準的標識符格式時,應使用引號定界符,例如,下列語句使用漢字顯示列標題:SELECT昵稱=nickname,電子郵件=emailFROMtesttable4、刪除重復行SELECT語句中使用ALL或DISTINCT選項來顯示表中符合條件的所有行或刪除其中重復的數(shù)據(jù)行,默認為ALL。使用DISTINCT選項時,對于所有重復的數(shù)據(jù)行在SELECT返回的結果集合中只保留一行。5、限制返回的行數(shù)使用TOPnPERCENT選項

54、限制返回的數(shù)據(jù)行數(shù),TOPn說明返回n行,而TOPnPERCENT時,說明n是表示一百分數(shù),指定返回的行數(shù)等于總行數(shù)的百分之幾。例如:SELECTTOP2*FROMtesttableSELECTTOP20PERCENT*FROMtesttable(二)FROM子句FROM子句指定SELECT語句查詢及與查詢相關的表或視圖。在FROM子句中最多可指定256個表或視圖,它們之間用逗號分隔。在FROM子句同時指定多個表或視圖時,如果選擇列表中存在同名列,這時應使用對象名限定這些列所屬的表或視圖。例如在usertable和citytable表中同時存在cityid列,在查詢兩個表中的cityid時應使

55、用下面語句格式加以限定:SELECTusername,citytable.cityidFROMusertable,citytableWHEREusertable.cityid=citytable.cityid在FROM子句中可用以下兩種格式為表或視圖指定別名:表名as別名表名別名(二)FROM子句FROM子句指定SELECT語句查詢及與查詢相關的表或視圖。在FROM子句中最多可指定256個表或視圖,它們之間用逗號分隔。在FROM子句同時指定多個表或視圖時,如果選擇列表中存在同名列,這時應使用對象名限定這些列所屬的表或視圖。例如在usertable和citytable表中同時存在cityid列,

56、在查詢兩個表中的cityid時應使用下面語句格式加以限定:SELECTusername,citytable.cityidFROMusertable,citytableWHEREusertable.cityid=citytable.cityid在FROM子句中可用以下兩種格式為表或視圖指定別名:表名as別名表名別名例如上面語句可用表的別名格式表示為:SELECTusername,b.cityidFROMusertablea,citytablebWHEREa.cityid=b.cityidSELECT不僅能從表或視圖中檢索數(shù)據(jù),它還能夠從其它查詢語句所返回的結果集合中查詢數(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返回的結果集合給予一別名t,然后再從中檢索數(shù)據(jù)。(三)使用WHERE子句設置查詢條件WHERE子句設置查詢條件,過濾掉不需要的數(shù)據(jù)行。例如下面語句查詢年齡大于20的數(shù)據(jù):S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論