《北京郵電大學軟件工程生的課程---數(shù)據(jù)庫設計開發(fā)-3》由會員分享,可在線閱讀,更多相關《北京郵電大學軟件工程生的課程---數(shù)據(jù)庫設計開發(fā)-3(48頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,北京郵電大學軟件學院 郭文明 2003.06,郭文明 2003.06.05,*,4.4,ORACLE,數(shù)據(jù)庫規(guī)劃與實施,ORACLE為信息系統(tǒng)提供了一個開放、綜合、集成的方法。使用ORACLE數(shù)據(jù)庫進行信息系統(tǒng)開發(fā)的步驟可以歸納為如下過程:,建ORACLE,數(shù)據(jù)庫,建表空間,建回滾段,建用戶,建數(shù)據(jù)庫對象,開發(fā),本節(jié)介紹ORACLE數(shù)據(jù)庫的規(guī)劃與實施:,4.4.1 數(shù)據(jù)庫應用程序類型 4.4.4 ORACLE對象設計,4.4.2 ORACLE空間設計 4.4.5 DBA工具,4.4.3 ORACLE安全設計,北
2、京郵電大學軟件學院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 數(shù)據(jù)庫應用程序類型,規(guī)劃和配置數(shù)據(jù)庫,需要知道將要操作數(shù)據(jù)庫的事務有什么,這些事務訪問數(shù)據(jù)庫的頻率有多大。針對不同的事務訪問情形,對內存的要求不同,磁盤I/O操作的情形也不同。,只有設置合適的ORACLE實例,才能使數(shù)據(jù)庫應用系統(tǒng)獲得快速、準確、可靠的事務響應。,ORACLE既可以設置成處理長的密集型事務的系統(tǒng),也可以設置成處理大量的小型快速事務的系統(tǒng)。有三種通用的數(shù)據(jù)庫設置類型:,聯(lián)機事務處理(OLTP),決策支持系統(tǒng)(DSS),批量作業(yè)系統(tǒng),混合系統(tǒng),北京郵電大學軟件學院 郭文明 2003.06,郭文明
3、2003.06.05,4.4.1 數(shù)據(jù)庫應用程序類型,聯(lián)機事務處理(OLTP),OLTP系統(tǒng)是一個包含繁重DML的應用,其面向事務的活動主要包括更新,但也包括一些插入和刪除。典型的例子是用于航空公司和旅館的預定系統(tǒng)。OLTP系統(tǒng)可以允許有很高的并發(fā)性。,OLTP的特點是有大量短的事務高頻率地訪問數(shù)據(jù)庫,每一個事務操作的數(shù)據(jù)量不是很多,但事務比較頻繁,而且要求數(shù)據(jù)庫響應事務的速度快。,一般來說OLTP系統(tǒng)需要24*7地響應對數(shù)據(jù)庫的請求。根據(jù)這些要求,我們應該從以下幾方面考慮:,1)大量的小回滾段。因為事務都不太大,對回滾段空間的需求不可能很大,但事務數(shù)量多,引發(fā)回滾段數(shù)量的增大。應該創(chuàng)建大量小
4、的回滾段,把事務對回滾段的爭用減到最小。標準的配置可以考慮每四個活動事務用一個回滾段,每個事務接受一個區(qū)間。,北京郵電大學軟件學院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 數(shù)據(jù)庫應用程序類型,聯(lián)機事務處理(OLTP),2)OLTP應用的表可能插入或者刪除記錄,所以存放易變表和索引的表空間應被分配到它們最大的期望容量。,3)適當?shù)墓烙嬛貙懭罩揪彌_區(qū)和日志文件大小,減少日志寫和日志切換的頻率,盡可能降低對響應事務請求的影響,另外頻繁的檢查點也可能影響事務響應速度。,4)擁有大型共享池。不同客戶可能執(zhí)行同樣的SQL語句,SQL在共享池中緩沖,性能可提高(應用程序的SQL語句
5、應當統(tǒng)一,另外WHERE中使用綁定變量查詢而不是直接的值查詢,使不同值的查詢共享SQL的執(zhí)行計劃)。,5)數(shù)據(jù)擁有單獨的索引。OLTP的事務請求基本在規(guī)劃設計范圍之內,建立單獨有效的索引,并在獨立的表空間中創(chuàng)建主鍵和其他索引,且存放在獨立的存儲器上。,6)使用小型臨時段。需要小的排序應在內存中完成,盡量避免OLTP系統(tǒng)對臨時段的請求進入磁盤。,北京郵電大學軟件學院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 數(shù)據(jù)庫應用程序類型,決策支持系統(tǒng)(DSS),DSS系統(tǒng)通常是一個大型的、包含歷史性內容的只讀數(shù)據(jù)庫,通常用于簡單的固定查詢或特別查詢。夜間處理任務被認為是DSS,,查
6、詢(選擇)是DSS的主要活動,。,根據(jù)這些要求,我們應該從以下幾方面考慮:,1)擁有少量的較大的回滾段。大型工作要創(chuàng)建大型的回滾段,使用SET TRANSACTION USER ROLLBACK SEGMENT語句使事務強制使用專用回滾段。,2)為分類排序創(chuàng)建大型臨時表空間,DSS經(jīng)常超出內存的使用空間而從內存轉入磁盤(臨時表空間)。,3)使用較小的共享SQL區(qū)域而采用較大的數(shù)據(jù)緩沖區(qū)高速緩沖。DSS中SQL的執(zhí)行頻率并不大,無需考慮SQL語句的共享,但應增加數(shù)據(jù)庫緩沖區(qū)高速緩沖的容量,使得更多的數(shù)據(jù)塊和回滾段在內存中高速緩沖。,北京郵電大學軟件學院 郭文明 2003.06,郭文明 2003.
7、06.05,4.4.1 數(shù)據(jù)庫應用程序類型,決策支持系統(tǒng)(DSS),4)如前所述,DSS希望Oracle塊一次讀取盡可能多的行。因為DSS查詢一般觸發(fā)整個表掃描,所以希望通過讀取多個連續(xù)的塊使系統(tǒng)讀取的塊達到最大值。把DB_BLOCK_SIZE和DB_FILE_MULTIBLOCK_READ_COUNT參數(shù)設置得盡可能高些。,5)運行的SQL應當刪除不必要的排序并充分利用索引,以減少對臨時表空間和回滾段的壓力。2種方法:在沒有可以選擇的良好索引時不使用任何索引或屏蔽使用某些索引(參見4.3);使用位圖索引。,6)不要在DSS應用代碼中使用綁定變量。在OLTP下,希望最小化應用進程開銷(語法分析
8、)。然而,DSS的查詢,語法分析占用整個查詢時間的比例會更小。假如使用綁定變量,優(yōu)化程序不能調用它所存儲的統(tǒng)計信息(通過ANALYZE命令)以選出存取數(shù)據(jù)的最好方法。,北京郵電大學軟件學院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 數(shù)據(jù)庫應用程序類型,批量作業(yè)系統(tǒng),批作業(yè)處理系統(tǒng)是作用于數(shù)據(jù)庫的非交互性的自動應用。它通常含有繁忙DML語句并有較低的并發(fā)性。,另外還有一些其他的應用類型:,OLAP(聯(lián)機分析處理)系統(tǒng)可提供分析服務,。該系統(tǒng)在數(shù)學、統(tǒng)計學、集合以及大量的計算方面區(qū)別于OLTP或DSS模型??梢园袿LAP看作是在OLTP系統(tǒng)或DSS之上的一個擴展或一個附加的
9、功能層次。地理信息系統(tǒng)(Geographic Information Systems,GIS)或有關空間的數(shù)據(jù)庫和OLAP數(shù)據(jù)庫相集成,提供圖表的映射能力。例如用于社會統(tǒng)計的人口統(tǒng)計數(shù)據(jù)庫。,VCDB(可變基數(shù)數(shù)據(jù)庫),這類數(shù)據(jù)庫通常被用作一個處理系統(tǒng)的數(shù)據(jù)庫后端,這樣就會導致在數(shù)據(jù)處理期間,數(shù)據(jù)庫中的表顯著地增長或收縮。基數(shù)是指在一個給定時間里一個表中行的數(shù)目。,北京郵電大學軟件學院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 數(shù)據(jù)庫應用程序類型,混合系統(tǒng),混合系統(tǒng)混合了前面介紹的幾種類型。許多實際應用系統(tǒng)往往是OLTP和DSS甚至其他模型的集成。,從前面OLTP和DS
10、S的需求對比來看,OLTP和DSS的基本特征似乎相反,如何協(xié)調這兩種需求的矛盾?一般有三種解決方法:,1),在一個系統(tǒng)中的OLTP和DSS之間節(jié)流,,白天運行OLTP,而夜間進行批量處理。即白天運行OLTP配置的數(shù)據(jù)庫,夜間跳回DSS配置的實例。,這種方法的實際操作模式可以是以下兩種:OLTP不支持24*7工作方式,DSS時不支持OLTP;DSS操作的系統(tǒng)反跳之后,OLTP可以使用,但系統(tǒng)性能將受影響。DBA需要測試DSS和服務器反跳對Web用戶的影響,必要時選擇其他解決辦法來調整系統(tǒng)服務模式。,北京郵電大學軟件學院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 數(shù)據(jù)庫應用
11、程序類型,混合系統(tǒng),2),同時運行兩個數(shù)據(jù)庫,一個服務于OLTP,一個服務于DSS。,OLTP數(shù)據(jù)庫進行實時更新,在有規(guī)則的時間間隔內,將變化傳遞給DSS數(shù)據(jù)庫。,這種方法的實際操作模式可以多種。DBA可以夜間執(zhí)行部分或全部OLTP系統(tǒng)的輸出,并輸入到DSS系統(tǒng)。較好的解決方法是對實時方式下傳遞變化的連接數(shù)據(jù)庫使用復制技術,將變化的數(shù)據(jù)復制記錄下來,OLTP數(shù)據(jù)庫只傳遞變化的數(shù)據(jù)給DSS數(shù)據(jù)庫。第三種方法是使ORACLE中OLTP數(shù)據(jù)庫的歸檔日志自動應用于DSS數(shù)據(jù)庫,保證DSS系統(tǒng)緊跟在OLTP系統(tǒng)之后,DSS數(shù)據(jù)庫不僅作為OLTP的備用數(shù)據(jù)庫,而且自己又獨立地服務于決策支持。盡管這種方式可
12、能不能保證OLTP和DSS數(shù)據(jù)庫的絕對同步,但在DSS的實時性要求不是很強時,是一種很好的方法。,北京郵電大學軟件學院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 數(shù)據(jù)庫應用程序類型,混合系統(tǒng),3),在一個系統(tǒng)中同時運行OLTP和DSS,。這是最普遍的解決方法。系統(tǒng)經(jīng)常作為OLTP開始活動,逐漸加入DSS需求使系統(tǒng)漸漸成為混合系統(tǒng)。,在這種情況下,DBA必須在OLTP和批量處理之間尋找平衡,并且應該偏向于OLTP用戶,創(chuàng)建與OLTP同樣多的回滾段,而且要創(chuàng)建少量專門為大型事務指定的大型回滾段,同時將高速緩沖和共享池保持合理的容量,使系統(tǒng)既支持OLTP對共享池的需求又支持D
13、SS對數(shù)據(jù)庫緩沖區(qū)高速緩沖的需求。還要確保臨時表空間夠批量排序使用,同時將OLTP排序控制在內存中。,推薦在這種情況下使用專用服務器,并且配置ORACLE并行服務器(Oracle Parallel Server,OPS),因為OPS允許多個實例訪問同一個物理數(shù)據(jù)庫,一個實例為OLTP配置,另一些為批量處理配置。,北京郵電大學軟件學院 郭文明 2003.06,郭文明 2003.06.05,4.4.2ORACLE空間設,計,計,ORACLE數(shù)據(jù)庫的,結,結構包括邏,輯,輯結構和物,理,理結構。在,進,進行應用系,統(tǒng),統(tǒng)數(shù)據(jù)庫設,計,計時,空間,設,設計是非常,重,重要的,它,與,與今后運行,系,系
14、統(tǒng)的性能,、,、可用、維,護,護、管理等,有,有密切的關,系,系。物理結,構,構與邏輯結,構,構之間的關,系,系如下圖:,Tablespace,Segment,Extent,Oracle block,Datafile,OS block,Database,Logical,Physical,北京郵電大,學,學軟件學院,郭,郭,文,文明2003.06,郭文明2003.06.05,4.4.2.1 ORACLE表,空,空間設計,ORACLE表空間分,為,為兩大類:,系,系統(tǒng)表空間,和,和非系統(tǒng)表,空,空間。系統(tǒng),表,表空間是建,庫,庫時自動創(chuàng),建,建的主要用,于,于存儲數(shù)據(jù),字,字典、系統(tǒng),回,回滾段;
15、非,系,系統(tǒng)表空間,是,是由用戶創(chuàng),建,建的表空間,,,,主要用于,分,分離段,方,便,便用戶的數(shù),據(jù),據(jù)管理。ORACLE,推,推薦一種最,佳,佳靈活結構OFA(Optimal FlexibleArchitecture)可,以,以用于表空,間,間的設計。,OFA是ORACLE,軟,軟件安裝和,數(shù),數(shù)據(jù)文件的,推,推薦目錄結,構,構,。OFA只,是,是一組建議,,,,并不是絕,對,對原則。下,面,面介紹基本OFA和擴,展,展OFA。,基本OFA,1)系統(tǒng)表,空,空間(SYSTEM),:,:系統(tǒng)表空,間,間不具有重,建,建性,只用,于,于存放數(shù)據(jù),字,字典,其他,內,內容如數(shù)據(jù),段,段信息等都,
16、應,應從系統(tǒng)表,空,空間中移出,。,。,北京郵電大,學,學軟件學院,郭,郭,文,文明2003.06,郭文明2003.06.05,4.4.2.1 ORACLE表,空,空間設計,基本OFA,2)分離應,用,用程序數(shù)據(jù),段,段(DATA):應用,程,程序數(shù)據(jù)段,應,應是一個獨,立,立的表空間,,,,即數(shù)據(jù)表,空,空間。建立,單,單獨數(shù)據(jù)表,空,空間的理由,是,是:應用程,序,序與數(shù)據(jù)文,件,件分離有利,于,于減少資源,爭,爭用,簡化,文,文件管理;,另,另外,當數(shù),據(jù),據(jù)段產(chǎn)生碎,片,片時利于管,理,理。,3)分離應,用,用程序索引,段,段(INDEX):索,引,引段不應與,相,相關的數(shù)據(jù),段,段存儲在一,個,個表空間,,以,以免產(chǎn)生資,源,源爭用。由,于,于表增長和,不,不正確的尺,寸,寸設置可能,產(chǎn),產(chǎn)生索引段,的,的碎片,分,離,離應用程序,索,索引段,可,以,以減少整理,數(shù),數(shù)據(jù)表或索,引,引碎片所需,的,的管理代價,。,。從數(shù)據(jù)表,分,分離相應的,索,索引也可以,通,通過ALTER INDEX命令,來,來實現(xiàn)。,4)分離工,具,具段(TOOLS):,許,許多第三方,工,工具會將數(shù),