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