佳木斯湛栽影视文化发展公司

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

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

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

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

  一、邏輯建模 

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

  二、物理設(shè)計 

  此步設(shè)計和系統(tǒng)將具體使用的數(shù)據(jù)庫有關(guān),也和數(shù)據(jù)庫所運(yùn)行的硬、軟件平臺有關(guān),目的是盡量合理地給數(shù)據(jù)庫分配物理空間,這一步在數(shù)據(jù)庫設(shè)計中很重要,關(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)成分的對象,確保數(shù)據(jù)表空間和索引表空間位于不同的磁盤磁盤驅(qū)動器上。 

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

  3、當(dāng)數(shù)據(jù)庫包含允許用戶并行訪問不同數(shù)據(jù)元素的大對象時,將對象分割存放在多個磁盤上是有好處的。可以采用分區(qū)。在某個操作系統(tǒng)平臺上定義擁有數(shù)百萬行的表時,則更需小心,因為數(shù)據(jù)庫文件的大小受到限止,這種限制是由操作系統(tǒng)而不是由oracle引起的。 

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

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

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

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

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

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

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

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

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

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

  一、邏輯建模 

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

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

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

  二、物理設(shè)計 

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

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

  3、建立二個rollback 表空間,十個rollback段,分區(qū)放在二個表空間里,建立一個比較大的rollback段,因為職工檔案信息表經(jīng)常會有批量的修改與添加。 

  4、將redo log文件放在一個讀寫較少的盤上。建立三個redo log 組,同組的兩個成員放在兩個盤上。因為選用的是ARCHIVELOG的備份方式。 

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

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

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

  缺省的初始化參數(shù)文件中,選擇large。因為用戶數(shù)很多,100個左右。 

  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個。分別放在兩個磁盤上。 

  PROCESS 80 

  MTS_SERVERS 3 

  MTS_DISPATCHERS tcp,3 

  ARCHIVE_LOG_START TRUE 采用ARCHIVE方式備份。 

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

  四、與開

[1] [2] 下一頁

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

  因為我們這個系統(tǒng)的開發(fā)軟件用的是Borland c++builder 5,所以采用的是比較成熟的BDE的接口,它是Borland公司提供的,性能比較好。 

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

上一頁  [1] [2] 

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

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

    • 400-1100-266
    会东县| 龙江县| 永济市| 铁力市| 交口县| 南投县| 沙坪坝区| 田林县| 平阴县| 嵊州市| 台东市| 六枝特区| 永顺县| 林周县| 深泽县| 罗甸县| 沽源县| 利津县| 永顺县| 华安县| 西华县| 清镇市| 凌海市| 朝阳县| 陵川县| 北安市| 包头市| 呼图壁县| 巴南区| 祁阳县| 尉氏县| 元氏县| 错那县| 潢川县| 寻甸| 普兰县| 遂昌县| 安义县| 怀化市| 策勒县| 体育|