數(shù)據(jù)庫(kù)管理系統(tǒng)引論課件
,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,第四章 數(shù)據(jù)庫(kù)管理系統(tǒng)引論,4,.1 DBMS,結(jié)構(gòu)簡(jiǎn)介,數(shù)據(jù)庫(kù)管理系統(tǒng)(,DBMS,),是數(shù)據(jù)庫(kù)系統(tǒng)的核心,它對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的功能和性能有決定性影響。,DBMS,最基本的功能,是正確、安全、可靠地執(zhí)行數(shù)據(jù)庫(kù)語言語句。圖4-1表示一個(gè)解釋執(zhí)行的關(guān)系,DBMS,的結(jié)構(gòu),可以從中了解,DBMS,的一般工作原理和主要組成部分。,與高級(jí)程序設(shè)計(jì)語言一樣,,DBMS,有兩種實(shí)現(xiàn)方法,編譯和解釋。,圖4,1,DBMS,結(jié)構(gòu),4,.2,事務(wù)(,transaction),事務(wù)是,DBMS,的執(zhí)行單位,由有限的數(shù)據(jù)庫(kù)操作序列組成,一般要求事務(wù)具備下列性質(zhì):,1.執(zhí)行的原子性(,A,tomic),事務(wù)執(zhí)行時(shí)應(yīng)遵守,“,要么不做,要么全做,”,(,nothing or all,)的原則。,2.,功能上的一致性,(,C,onsistency),,轉(zhuǎn)變到另一個(gè)一致狀態(tài)。,3.彼此的隔離性,(,I,solation),如果多個(gè)事務(wù)并發(fā)執(zhí)行,應(yīng)像各個(gè)事務(wù)獨(dú)立執(zhí)行一樣。,由,“,并發(fā)控制,”,保證。,4.,作用的持久性,(,D,urability),一個(gè)成功執(zhí)行的事務(wù)對(duì),DB,的影響應(yīng)是持久的,即使,DB,因故障受到破壞,也應(yīng)能恢復(fù)。,這四個(gè)性質(zhì)稱為,事務(wù)的,ACID,準(zhǔn)則,。,下面是一個(gè)事務(wù)的例子,它將款項(xiàng)由,A,賬戶撥給,B,賬戶。,示例,BEGIN TRAN,read A,A,A,S,if A 0 then,/*A,款不足,*/,begin,display,“,A,款不足,”,ROLLBACK,/*,出口1*/,end,else,begin,B,B+S,display,“,撥款完成,”,COMMIT,/*,出口2*/,end,ROLLBACK,撤銷事務(wù)的影響,相當(dāng)于,“,do nothing,”,COMMIT,提交,相當(dāng)于,“,do all,”,。,只有在,COMMIT,之后,事務(wù)對(duì)數(shù)據(jù)庫(kù)產(chǎn)生的變化才對(duì)其它事務(wù)開放。,(為什么?),事務(wù)的出口:,commit,或,rollback,只有在執(zhí)行,commit,之后,事務(wù)對(duì)數(shù)據(jù)庫(kù)所產(chǎn)生的變化才對(duì)其他事務(wù)開放。,執(zhí)行,commit,命令時(shí),要封閉中斷,以防處理中斷時(shí)發(fā)生故障,COMMIT,中斷,處理中斷,發(fā)生故障,4,.3 DBMS,的進(jìn)程結(jié)構(gòu),DBMS,進(jìn)程結(jié)構(gòu)的劃分主要著眼于結(jié)構(gòu)合理和性能提高。,應(yīng)用進(jìn)程,系統(tǒng)進(jìn)程(可重入),應(yīng)用1,系統(tǒng),應(yīng)用2,系統(tǒng),不同,重復(fù),不劃分:,目前,多數(shù),DBMS,把主要功能組成一個(gè),DBMS,核心進(jìn)程,,也有些,DBMS,除了核心進(jìn)程外,還把一些可以,“,緩辦,”,的公共操作組成幾個(gè)后臺(tái)服務(wù)進(jìn)程。,例如預(yù)讀取可能用到的物理塊,延遲寫入緩存中的內(nèi)容,網(wǎng)絡(luò)服務(wù)管理,撤銷事務(wù),清除異常結(jié)束的,DBMS,進(jìn)程等。這些進(jìn)程在,DBMS,啟動(dòng)時(shí)就建立,為各個(gè)事務(wù)服務(wù)。,1.,一個(gè)應(yīng)用進(jìn)程對(duì)應(yīng)一個(gè),DBMS,核心進(jìn)程,下面主要考慮,DBMS,核心進(jìn)程的結(jié)構(gòu)方案:,缺點(diǎn):,(1).,進(jìn)程的創(chuàng)建、撤銷、通信和切換的開銷大。,(2).,并發(fā)事務(wù)的增加,進(jìn)程數(shù)激增,內(nèi)存空間有限,性能下降。,(3).,不利于事務(wù)共享內(nèi)存空間。,優(yōu)點(diǎn):實(shí)現(xiàn)容易,2.,單進(jìn)程多線程,DBMS,進(jìn)程結(jié)構(gòu),線程,是現(xiàn)代,OS,引入的概念。,以線程為程,序并發(fā)執(zhí)行的單位;,一個(gè)進(jìn)程中可創(chuàng)建多個(gè)可以相互切換的線程;,這些線程中至少有一個(gè)處于就緒狀態(tài),進(jìn)程才處于就緒狀態(tài);,進(jìn)程運(yùn)行時(shí),其中必有一個(gè)線程運(yùn)行;,同一進(jìn)程所屬的線程共享進(jìn)程占用的資源,屬于線程本身的專用資源很少,描述線程的狀態(tài)也比進(jìn)程要少,因此,線程所需資源,比進(jìn)程少;,線程的切換開銷和線程間的通信開銷小。,單進(jìn)程多線程的,DBMS,中,系統(tǒng),只創(chuàng)建一個(gè),DBMS,進(jìn)程,(用戶接口仍然是進(jìn)程)。該進(jìn)程中有常駐的公共服務(wù)線程和應(yīng)用戶要求而創(chuàng)建的用戶線程。,在多處理機(jī)系統(tǒng)中,引入線程,增強(qiáng)了進(jìn)程的可并發(fā)程度。,DBMS,的并發(fā)執(zhí)行從進(jìn)程級(jí)改為線程級(jí)。,盡管很多現(xiàn)代,OS,的核心具有線程管理的功能,但對(duì),DBMS,來說,還是在,DBMS,進(jìn)程(,相對(duì)于,OS,,是用戶進(jìn)程,)中實(shí)現(xiàn)線程為宜。理由如下:,(,1,),可以按照,DBMS,的需要確定線程調(diào)度策略;,(,2,),線程的切換在用戶態(tài),不必轉(zhuǎn)入操作系統(tǒng)的核心態(tài),切換開銷小;,(,3,)可以在不支持,線程的操作系統(tǒng)上運(yùn)行,減少對(duì)操作系統(tǒng)的依賴,有利于提高操作系統(tǒng)的可移植性。,由,DBMS,管理線程,需要,OS,提供如下支持,:,(1).提供,非阻塞,I/O,(,Nonblocking I/O,)和,異步,I/O,(,asynchronous I/O,)功能;,(2).支持,“,公平,”,調(diào)度,(,fair schedule,);,即不把具有多線程的,DBMS,進(jìn)程,與其它進(jìn)程等同看待,應(yīng)區(qū)分輕重。,4,.4 DBMS,的系統(tǒng)結(jié)構(gòu),1.分時(shí)系統(tǒng)環(huán)境下的,集中式,數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu),應(yīng)用的要求以及軟硬件條件決定了數(shù)據(jù)庫(kù)系統(tǒng)以集中為宜,數(shù)據(jù)庫(kù)建立在本單位的主要計(jì)算機(jī)上,用戶通過終端或遠(yuǎn)距離終端分時(shí)訪問。,數(shù)據(jù)及其管理都是集中的,數(shù)據(jù)庫(kù)系統(tǒng)的所有功能,從用戶接口到,DBMS,核心都集中在,DBMS,所在的計(jì)算機(jī)上。,2.網(wǎng)絡(luò)環(huán)境下的,客戶/服務(wù)器,結(jié)構(gòu),20世紀(jì)70年代:微機(jī)的出現(xiàn)和迅速發(fā)展;計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展和廣泛應(yīng)用,改變了計(jì)算機(jī)應(yīng)用系統(tǒng)的格局。,客戶機(jī),/,服務(wù)器是一種特殊的分布式處理系統(tǒng)。其中,有一至多臺(tái)稱為客戶機(jī)的計(jì)算機(jī)和一至多臺(tái)稱為服務(wù)器的計(jì)算機(jī)通過網(wǎng)絡(luò)聯(lián)接。,可以將,DBMS,的核心部分放在服務(wù)器中,而客戶機(jī)處理數(shù)據(jù)庫(kù)的接口部分。客戶機(jī)也可以,有自己的局部,DBMS。,客戶機(jī)面向用戶,接受任務(wù),并將任務(wù)中需要由服務(wù)器完成的部分委托服務(wù)器執(zhí)行。而服務(wù)器只接受客戶機(jī)的委托,完成特定的任務(wù),例如數(shù)據(jù)庫(kù)服務(wù)。因此,,處理是分布的,,數(shù)據(jù)卻是集中的,仍屬于集中式數(shù)據(jù)庫(kù)系統(tǒng)。,問題1:,網(wǎng)絡(luò)環(huán)境下的打印服務(wù)器、文件服務(wù)器屬于客戶/服務(wù)器結(jié)構(gòu)嗎?,不屬于,打印服務(wù)器、文件服務(wù)器的處理仍然是集中的。,問題2:,如果有多個(gè)數(shù)據(jù)庫(kù)服務(wù)器呢?還屬于集中式數(shù)據(jù)庫(kù)系統(tǒng)嗎?,即使系統(tǒng)中有多個(gè)數(shù)據(jù)庫(kù)服務(wù)器,也只是多個(gè)集中的數(shù)據(jù)庫(kù),這些庫(kù)中的數(shù)據(jù)彼此獨(dú)立,其聯(lián)系只能由應(yīng)用程序自己解決。,客戶器與服務(wù)器劃分界面的一般原則是:,(1)客戶提供用戶接口、執(zhí)行應(yīng)用程序,對(duì)服務(wù)器提出服務(wù)請(qǐng)求;,(2)服務(wù)器只完成客戶器委托的公共服務(wù);,(3)服務(wù)器與客戶器間的數(shù)據(jù)交換量要盡可能的少;,例如,,MS SQL Server,,,Oracle,三層結(jié)構(gòu):,表示層,應(yīng)用層,DB,3.,物理上分布、邏輯上集中的,分布式,數(shù)據(jù)庫(kù)結(jié)構(gòu),數(shù)據(jù)共享和數(shù)據(jù)集中管理是數(shù)據(jù)庫(kù)的主要特征。隨著單位規(guī)模的擴(kuò)大和地理上的分散,集中式數(shù)據(jù)庫(kù)系統(tǒng)有如下缺點(diǎn):,通信開銷大,性能差,瓶頸,可用性差,由于存在這些缺點(diǎn),從20世紀(jì)70年代后期,開始了分布式數(shù)據(jù)庫(kù)系統(tǒng)的研究。,可擴(kuò)充性差,難以管理,物理上分布、邏輯上集中的分布式數(shù)據(jù)庫(kù)結(jié)構(gòu)的思想是:把全局?jǐn)?shù)據(jù)模式按數(shù)據(jù)的來源和用途,合理分布在系統(tǒng)的多個(gè)節(jié)點(diǎn)上,使大部分的數(shù)據(jù)可以,就近存取,。,邏輯上,用戶看到的是一個(gè)數(shù)據(jù)模式為全局?jǐn)?shù)據(jù)模式的集中式數(shù)據(jù)庫(kù)。,缺點(diǎn):,全局?jǐn)?shù)據(jù)模式很難設(shè)計(jì)、管理、擴(kuò)充和修改,(,類似高度集中的計(jì)劃經(jīng)濟(jì)難以管理,)。,4.物理上分布、邏輯上分布的分布式數(shù)據(jù)庫(kù)結(jié)構(gòu),(事實(shí)上,對(duì)大范圍統(tǒng)一的邏輯幾乎不可能),特點(diǎn):,(1)節(jié)點(diǎn)自治,(2)沒有全局?jǐn)?shù)據(jù)模式,每個(gè)節(jié)點(diǎn)看到的數(shù)據(jù)模式:,(1)本節(jié)點(diǎn)的數(shù)據(jù)模式,(2)供本節(jié)點(diǎn)共享的其它節(jié)點(diǎn)上有關(guān)的數(shù)據(jù)模式,沒有全局?jǐn)?shù)據(jù)模式,節(jié)點(diǎn)數(shù)據(jù)模式的修改甚至節(jié)點(diǎn)的加入、撤離,僅僅影響有關(guān)的節(jié)點(diǎn)。,這種分布式數(shù)據(jù)庫(kù)系統(tǒng)又稱為,“,聯(lián)邦式數(shù)據(jù)庫(kù)系統(tǒng),”,(,federated distributed database system)。,4,.5,數(shù)據(jù)目錄,數(shù)據(jù)目錄(,catalog),存放一組關(guān)于數(shù)據(jù)的,數(shù)據(jù)(描述數(shù)據(jù)模式的數(shù)據(jù)),也叫元數(shù)據(jù)(,meta-data)。,DBMS,的任務(wù)是管理大量的、共享的、持久的數(shù)據(jù),有關(guān)這些數(shù)據(jù)的描述需長(zhǎng)期保存,一般把這些元數(shù)據(jù)組成若干表,,即數(shù)據(jù)目錄。,數(shù)據(jù)目錄中一般包含下列表:,SYSTAB、SYSCOL、SYSIDX、SYSVIEW、SYSVWATR,數(shù)據(jù)目錄既是數(shù)據(jù),又不同于一般數(shù)據(jù),,數(shù)據(jù)目錄也是表,可供查詢,主要為,DBMS,服務(wù),數(shù)據(jù)目錄本身的定義和描述也包含在數(shù)據(jù)目錄中。數(shù)據(jù)目錄只能由系統(tǒng)定義,為系統(tǒng)所有。在初始化時(shí),由系統(tǒng)自動(dòng)生成(遞歸初始,類比編譯的符號(hào)表),元數(shù)據(jù)可以分為2類:,(1)相對(duì)穩(wěn)定:基表、視圖和索引的定義;,(2)經(jīng)常變化:數(shù)據(jù)庫(kù)狀態(tài)的統(tǒng)計(jì),例如,元組個(gè)數(shù)、現(xiàn)有不同屬性值的個(gè)數(shù)等,主要用于查詢優(yōu)化,不必太準(zhǔn),可以定期更新。,數(shù)據(jù)目錄是影響系統(tǒng)全局的以讀為主的數(shù)據(jù),對(duì)系統(tǒng)的效率影響很大。,