主頁 > 知識(shí)庫 > 淺談Oracle數(shù)據(jù)庫的建模與設(shè)計(jì)

淺談Oracle數(shù)據(jù)庫的建模與設(shè)計(jì)

熱門標(biāo)簽:服務(wù)外包 鐵路電話系統(tǒng) Linux服務(wù)器 呼叫中心市場(chǎng)需求 地方門戶網(wǎng)站 百度競(jìng)價(jià)排名 網(wǎng)站排名優(yōu)化 AI電銷
正在看的ORACLE教程是:淺談Oracle數(shù)據(jù)庫的建模與設(shè)計(jì)。要開發(fā)一個(gè)基于數(shù)據(jù)庫的應(yīng)用系統(tǒng),其中最關(guān)鍵的一步就是整個(gè)系統(tǒng)所依據(jù)的數(shù)據(jù)庫的建模設(shè)計(jì),從邏輯的到物理的,一個(gè)環(huán)節(jié)疏于設(shè)計(jì),整個(gè)的應(yīng)用系統(tǒng)便似建立在危房之上,隨著開發(fā)過程的不斷深入,它要隨時(shí)面臨著各種難 

  以預(yù)料的風(fēng)險(xiǎn),開發(fā)者要為修改或重新設(shè)計(jì)沒有設(shè)計(jì)好的數(shù)據(jù)庫系統(tǒng)而付出難以預(yù)料的代價(jià)。所以,一個(gè)良好的數(shù)據(jù)庫設(shè)計(jì)是高效率的系統(tǒng)所必須的。 

  一、邏輯建模 

  數(shù)據(jù)庫設(shè)計(jì)的方法因具體數(shù)據(jù)庫而異,但是建模階段的相同的,所以可以用一些通用的工具來進(jìn)行,如Rational rose,PowerDesigner等,這一階段主要是依據(jù)系統(tǒng)的需求,獲取與分析要實(shí)現(xiàn)的應(yīng)用系統(tǒng)信息,進(jìn)行數(shù)據(jù)內(nèi)部以及外在關(guān)系的分析,從而有效地建立整個(gè)系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)(在關(guān)系數(shù)據(jù)庫中通常稱為表結(jié)構(gòu)),在此基礎(chǔ)上對(duì)數(shù)據(jù)庫的數(shù)據(jù)量、數(shù)據(jù)流量、及響應(yīng)速度的估算分析,這樣數(shù)據(jù)模型就產(chǎn)生了。具體的操作準(zhǔn)則是數(shù)據(jù)庫的幾個(gè)范式、用戶的具體需求和分析者的經(jīng)驗(yàn),從數(shù)據(jù)庫的性能、安全、方便管理、易于開發(fā)等方面出發(fā),具體方法因分析員的喜好和習(xí)慣而異,可以不用工具,最好使用工具,能讓分析過程簡(jiǎn)便,最主要是能生成一些圖,如E-R圖,讓分析過程一目了然。 

  二、物理設(shè)計(jì) 

  此步設(shè)計(jì)和系統(tǒng)將具體使用的數(shù)據(jù)庫有關(guān),也和數(shù)據(jù)庫所運(yùn)行的硬、軟件平臺(tái)有關(guān),目的是盡量合理地給數(shù)據(jù)庫分配物理空間,這一步在數(shù)據(jù)庫設(shè)計(jì)中很重要,關(guān)系到數(shù)據(jù)庫數(shù)據(jù)的安全和數(shù)據(jù)庫的性能,具體的來說,這一步包括相應(yīng)表空間的數(shù)據(jù)文件在磁盤上的分配,還要根據(jù)數(shù)據(jù)量的大小確定redolog文件、rollback段的大小,然后進(jìn)行分配,這些文件的分配要遵循一些原則,本著利于備份,利于性能優(yōu)化的原則,原則如下(以O(shè)RACLE數(shù)據(jù)庫為例): 

  1、為表和索引建立不同的表空間,禁止在系統(tǒng)表空間中放入非核心oracle系統(tǒng)成分的對(duì)象,確保數(shù)據(jù)表空間和索引表空間位于不同的磁盤磁盤驅(qū)動(dòng)器上。 

  2、了解終端用戶怎樣訪問數(shù)據(jù),如果可能,將經(jīng)常同時(shí)查詢和頻繁查詢的對(duì)象放在不同的物理磁盤上。 

  3、當(dāng)數(shù)據(jù)庫包含允許用戶并行訪問不同數(shù)據(jù)元素的大對(duì)象時(shí),將對(duì)象分割存放在多個(gè)磁盤上是有好處的??梢圆捎梅謪^(qū)。在某個(gè)操作系統(tǒng)平臺(tái)上定義擁有數(shù)百萬行的表時(shí),則更需小心,因?yàn)閿?shù)據(jù)庫文件的大小受到限止,這種限制是由操作系統(tǒng)而不是由oracle引起的。 

  4、在獨(dú)立的各盤上至少創(chuàng)建兩個(gè)用戶定義的rollback表空間,以存放用戶自己的rollback段。在初始化文件中安排rollback段的次序,使它們?cè)诙鄠€(gè)磁盤之間進(jìn)行切換。 

  5、將redo log文件放在一個(gè)讀寫較少的盤上。對(duì)于每個(gè)oracle 實(shí)例要建立兩個(gè)以上的redo log 組,同組的兩個(gè)成員放在不同的設(shè)備上。 

  6、確立表和索引的大小,這決定了保存它們所需的表空間的尺寸,也決定了哪些表空間物理地裝在哪些盤上和哪些表空間可以結(jié)合在一起。具體的估算方法可以按照oracle 一些公式,這里還要按照各個(gè)表的具體特性,用途,定義它的存貯參數(shù)如(pctfree,pctused)。 

  三、關(guān)于數(shù)據(jù)庫參數(shù)的設(shè)計(jì) 

  每個(gè)數(shù)據(jù)庫在建立時(shí),都有缺省的參數(shù)設(shè)置,但是對(duì)于具體的應(yīng)用要求參數(shù)設(shè)置可能不同,缺省的參數(shù)設(shè)置往往需要根據(jù)應(yīng)用系統(tǒng)的特點(diǎn)而需要改動(dòng),如每個(gè)數(shù)據(jù)庫的操作系統(tǒng)平臺(tái)、instance 數(shù)目、各種內(nèi)存大小的設(shè)置、采取的線程方式、備份方式等不同,具體的參數(shù)就一定要進(jìn)行最為恰當(dāng)?shù)男薷?,這個(gè)步驟對(duì)數(shù)據(jù)庫性能很重要,也是保證應(yīng)用系統(tǒng)所要求的數(shù)據(jù)庫功能得以實(shí)現(xiàn)重要一步。 

  四、與開發(fā)軟件的接口問題 

  數(shù)據(jù)庫設(shè)計(jì)最后要考慮的是與要選擇的開發(fā)軟件之間的接口問題,要準(zhǔn)備好接口程序,有些是第三方軟件已經(jīng)備好的,有些是數(shù)據(jù)庫本身要具備的,如jdbc,bde,ado,等與數(shù)據(jù)庫的接口,主要是考慮接口的可用性、效率問題。這一步主要從經(jīng)驗(yàn)出發(fā),因?yàn)檫@種產(chǎn)品不斷出臺(tái),而且都是經(jīng)過各商家的吹捧,要在實(shí)踐中決定哪個(gè)是最適合。 

  以上是數(shù)據(jù)庫建模設(shè)計(jì)的幾個(gè)重要步驟的大致分析,整個(gè)設(shè)計(jì)過程是不斷地改進(jìn)的,是數(shù)據(jù)庫管理員、設(shè)計(jì)人員、開發(fā)人員共同完成的,只是各有側(cè)重點(diǎn)不同,數(shù)據(jù)庫管理員側(cè)重于是2、3步的設(shè)計(jì),設(shè)計(jì)人員側(cè)重于1步的設(shè)計(jì),而開發(fā)人員側(cè)重于4步的設(shè)計(jì),由于有些應(yīng)用系統(tǒng)的編程環(huán)境和實(shí)際應(yīng)用環(huán)境不同,所以要做兩套設(shè)計(jì),并注意兩套設(shè)計(jì)的兼容性可移植性。 

  下面結(jié)合一個(gè)實(shí)際開發(fā)的勞資管理系統(tǒng)中的數(shù)據(jù)庫設(shè)計(jì),對(duì)以上幾個(gè)步驟做進(jìn)一步解釋。 

  該系統(tǒng)應(yīng)用于大型企業(yè)集團(tuán),包括幾十個(gè)分廠,基本數(shù)據(jù)均來源于各分廠,各分廠有一套access數(shù)據(jù)庫,存貯著自己的人才檔案信息,由各廠自己維護(hù),定期傳到總的數(shù)據(jù)庫里,供勞資處各室查詢、統(tǒng)計(jì)用,。這是一個(gè)分部式的數(shù)據(jù)庫。 

  一、邏輯建模 

  首先是對(duì)數(shù)據(jù)庫的數(shù)據(jù)量、數(shù)據(jù)流量、及響應(yīng)速度的估算分析,這一步對(duì)物理設(shè)計(jì)也是必須的,勞資系統(tǒng)的主要數(shù)據(jù)是人員檔案,大概有100兆左右,還有人員配備等信息加上工種序列、工資等級(jí)、廠礦車間等各種編碼,總的數(shù)據(jù)量大約在某些方面300兆左右。數(shù)據(jù)的輸入、維護(hù)大部分在各廠礦進(jìn)行,然后到處里集中,所以數(shù)據(jù)流量很大,對(duì)響應(yīng)速度要求一般。 

  在邏輯建模上的工具上,采用Rantional rose 2000,根據(jù)用戶的需求,設(shè)計(jì)各種use case view, 在 logic view中生成數(shù)據(jù)庫的實(shí)體,及實(shí)體之間的E-R圖,然后生成Data modeler,確定以后,用Schema generation在建好的數(shù)據(jù)庫中的對(duì)應(yīng)的用戶下生成表。 

  詳細(xì)的圖很繁瑣,在這里就不展示了。 

  二、物理設(shè)計(jì) 

  1、因?yàn)槁毠n案信息庫很大,還有照片,所以把它分成兩個(gè)表,把照片單獨(dú)地放在一個(gè)表中,并且采用分區(qū)技術(shù),在檔案表、照片表上建立分區(qū),不同的分區(qū)分別放在不同的表空間。 

  2、因?yàn)槁毠n案信息庫里有許多編碼,查詢的時(shí)候要和編碼庫一起進(jìn)行read操作,所以不把職工檔案信息表和編碼庫放在一個(gè)表空間。 

  3、建立二個(gè)rollback 表空間,十個(gè)rollback段,分區(qū)放在二個(gè)表空間里,建立一個(gè)比較大的rollback段,因?yàn)槁毠n案信息表經(jīng)常會(huì)有批量的修改與添加。 

  4、將redo log文件放在一個(gè)讀寫較少的盤上。建立三個(gè)redo log 組,同組的兩個(gè)成員放在兩個(gè)盤上。因?yàn)檫x用的是ARCHIVELOG的備份方式。 

  5、根據(jù)每個(gè)表的性質(zhì),確定其存貯的參數(shù),如職工檔案信息表的修改、刪除、插入都比較多,所以把它的Pctfree 10,Pctused 80定大小,估算出它大致需要的block數(shù),算出存放這些表的表空間的數(shù)據(jù)文件的大小。 

  6、根據(jù)用戶的需求,建立一套數(shù)據(jù)庫的安全體系。也就是總結(jié)出幾種權(quán)限級(jí)別的用戶,建立這些用戶,并給這些用戶賦上相應(yīng)的僅限,供開發(fā)人員編程時(shí)使用。 

  三、參數(shù)的設(shè)置 

  缺省的初始化參數(shù)文件中,選擇large。因?yàn)橛脩魯?shù)很多,100個(gè)左右。 

  SHARED_POOL_SIZE, 與數(shù)據(jù)庫大小有關(guān),也與應(yīng)用軟件有關(guān)。這里設(shè)成缺省值的1.5倍。 

  DB_BLOCK_BUFFERS 根據(jù)所用服務(wù)器的內(nèi)存與交易數(shù)的大小,設(shè)為25兆。 

  SORT_AREA_SIZE 根據(jù)所用服務(wù)器的內(nèi)存,設(shè)為10兆 

  LOG_BUFFER 用缺省值的1.5倍。 

  DBWR_IO_SLAVES 設(shè)為1 

  ROLLBACK_SEGMENTS 根據(jù)交易量的大小,定為10個(gè)。分別放在兩個(gè)磁盤上。 

  PROCESS 80 

  MTS_SERVERS 3 

  MTS_DISPATCHERS tcp,3 

  ARCHIVE_LOG_START TRUE 采用ARCHIVE方式備份。 

  這些參數(shù)的確定是暫時(shí)的,沒有一個(gè)系統(tǒng)可以運(yùn)行之前把參數(shù)確定得正好,需要在應(yīng)用程序運(yùn)行之后進(jìn)行調(diào)整。 

  四、與開

[1] [2] 下一頁

正在看的ORACLE教程是:淺談Oracle數(shù)據(jù)庫的建模與設(shè)計(jì)。發(fā)軟件的接口問題 

  因?yàn)槲覀冞@個(gè)系統(tǒng)的開發(fā)軟件用的是Borland c++builder 5,所以采用的是比較成熟的BDE的接口,它是Borland公司提供的,性能比較好。 

  以上是根據(jù)多年數(shù)據(jù)庫管理、開發(fā)的實(shí)踐總結(jié)而出的數(shù)據(jù)庫建模與設(shè)計(jì)的大致思路,希望能對(duì)大家有所幫助。

上一頁  [1] [2] 

標(biāo)簽:衡水 仙桃 崇左 蘭州 銅川 湖南 黃山 湘潭

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺談Oracle數(shù)據(jù)庫的建模與設(shè)計(jì)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266