oracle-9i-數(shù)據(jù)庫(kù)設(shè)計(jì)指引全集_第1頁
oracle-9i-數(shù)據(jù)庫(kù)設(shè)計(jì)指引全集_第2頁
oracle-9i-數(shù)據(jù)庫(kù)設(shè)計(jì)指引全集_第3頁
oracle-9i-數(shù)據(jù)庫(kù)設(shè)計(jì)指引全集_第4頁
oracle-9i-數(shù)據(jù)庫(kù)設(shè)計(jì)指引全集_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余14頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Oracle9i 數(shù)據(jù)庫(kù)設(shè)計(jì)指引全集一、數(shù)據(jù)庫(kù)物理設(shè)計(jì)原則1.1 數(shù)據(jù)庫(kù)環(huán)境配置原則1.1.1 操作系統(tǒng)環(huán)境:2 64 個(gè)。系列小型機(jī)系對(duì)于中小型數(shù)據(jù)庫(kù)系統(tǒng),采用 linux 操作系統(tǒng)比較合適,對(duì)于數(shù)據(jù)庫(kù)冗余要求負(fù)載均衡能 力要求較高的系統(tǒng),可以采用 oracle9i rac 的集群數(shù)據(jù)庫(kù)的方法,集群節(jié)點(diǎn)數(shù)范圍在 對(duì)于大型數(shù)據(jù)庫(kù)系統(tǒng),可以采用 sun solaris sparc 64 位小型機(jī)系統(tǒng)或 hp 9000 統(tǒng)。 rad5 適合只讀操作的數(shù)據(jù)庫(kù), rad1 適合 oltp 數(shù)據(jù)庫(kù)1.1.2 內(nèi)存要求能力不超過對(duì)于 linux 操作系統(tǒng)下的數(shù)據(jù)庫(kù) , 由于在正常情況下 oracle 對(duì)

2、sga 的 管理1.7g 。所以總的物理內(nèi)存在 4g 以下。 sga 的大小為物理內(nèi)存的50%75%。對(duì)于 64 位的小型系統(tǒng),oracle 數(shù)據(jù)庫(kù)對(duì) sga 的管理超 過 2g 的限制, sga 設(shè)計(jì)在一個(gè)合適的范圍內(nèi):物理內(nèi)存的 50%70%,當(dāng) sga 過大的時(shí)候會(huì)導(dǎo)致內(nèi)存分頁,影響系統(tǒng)性能。1.1.3 交換區(qū)設(shè)計(jì)當(dāng)物理內(nèi)存在2g以下的情況下,交換分區(qū)swap為物理內(nèi)存的3倍,當(dāng)物理內(nèi)存2g的情況下, swap 大小為物理內(nèi)存的 12倍。1.1.4 其他環(huán)境變量參考 oracle 相關(guān)的安裝文檔和隨機(jī)文檔。1.2 數(shù)據(jù)庫(kù)設(shè)計(jì)原則1.2.1 數(shù)據(jù)庫(kù) sid數(shù)據(jù)庫(kù) sid 是唯一標(biāo)志數(shù)據(jù)庫(kù)的

3、符號(hào),命名長(zhǎng)度不能超過 5 個(gè)字符。對(duì)于單節(jié)點(diǎn)數(shù)據(jù)庫(kù), 以字符開頭的 5 個(gè)長(zhǎng)度以內(nèi)字串作為 sid 的命名。 對(duì)于集群數(shù)據(jù)庫(kù), 當(dāng)命名 sid 后,各節(jié)點(diǎn) sid 自動(dòng)命名為 sidnn,其中nn為節(jié)點(diǎn)號(hào):1 , 2,64。例如 rac1、rac2、rac24。1.2.2 數(shù)據(jù)庫(kù)全局名iD_ M¥ p期幽護(hù)恤刪UB調(diào)川Mif出仙.HU卜w;料I吃!址魁11!'1!哋扯刖甸3Specify the fallowingincrmil-ionn。柑titi引©玄就留甘i,科埠慚紗 佻毗Ilfbd by iCftbsP Dmbftie k-p嫡智耐詢Via f%m'

4、;rtamB-domain*. I曲時(shí)口aghaafc 帕me,卜ac.g站netA databa府 k r創(chuàng) gncid by in 胡匕引 tmlana cn 卅,tiu 皿 r data bust nod* Each instence i% unidi/ cFrriTii d 丁/ an Ora;fe S/stem idenMisr (5®) Fix each cluster 牝臨脇貼 hMtirv泊tbt EID El Mm河iwd *f a氏?訊射罰 蘭斫機(jī)庁汝rhg Matab申汨and a ruFTbf fw ?ach Inslantt that mutemEtigll

5、y lefteiifeed.沖方訊賞斗曰日 510 prtfin hat tee” firitered f會(huì) ycu -vhich yu an ac<epT orto 直 value Yiu pftfEr.h<數(shù)據(jù)庫(kù)全局名稱:vsid>domain123 數(shù)據(jù)庫(kù)類型選擇對(duì)于海量數(shù)據(jù)庫(kù)系統(tǒng),采用data warehouse的類型。對(duì)于小型數(shù)據(jù)庫(kù)或oltp類型的數(shù)據(jù)庫(kù),采用 transaction processing類型。血 1曰亡1 3 tfiiifrtpUW fr<)nrt th$ hoviTug 業(yè) t 怙 弋1電或華 m d$tab-S4'0CUf.a 一

6、俺 hCi=-B亠-匚t斟三e4 fUij-peseVes.1TranE9<rlffl Pfoc&sslng1 X砂 DaL9bi.s»Q.rK曹常髓£db'inJydes gl汕i|”.訶杠t 陀耐皿八丄恥124 數(shù)據(jù)庫(kù)連接類型選擇oracle數(shù)據(jù)庫(kù)有專用 服務(wù)器連接類型和多線程服務(wù)器mts連接類型。對(duì)于批處理服務(wù),需要專用服務(wù)器連接方式,而對(duì)于 oltp服務(wù)則mts的連接方式比較合適。由于采用mts后,可以通過配置網(wǎng)絡(luò)服務(wù)實(shí)現(xiàn)某些特定批處理服務(wù)采用專用服務(wù)器連接方式,所以數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)一般 采用mts類型。正社牡TLZLSsEe<t thE r

7、nftE iin whikhy 科 wsnt "療 data ba MJ tQcp 吏 “ts by dafay H iFX于>wOedicMtsd、日rvflr Modefof *flch 占施時(shí)th jJfitwJkA詔 will AllTatt 4 rttf6ur» 鬢d*<atd 怙 smj 俑自only th»t clileiiiiil. "LFsi?-s*" i. he ruiriber oi total Tbmt ennBvtl:飾 hffkpected to ti smaJI : f *hen ."&

8、;:.;£ '-hH be- making parsfEtent Bo呼funnTiag ftiuesTs to clw aalabasf' 呂 harsdeli«,fd fMri#ce沽m £hartof. ui, it Mlmc>dt whin rucr* than,a i Eil I iniimb" qF u$*rj nt*cf *4 IGR rWG to 1 InB #*FSibWJjO i-i rr.tiltaneouil' white- pfFiientl)/ uitjlifin syf.-Liarti rBSQ

9、urdf. riit CiFiia fhaz'd 1(-( vti ItJiture y*iH tu cntitjled.Edl* ifi&FtlfP*rarri*tfii5£. I125 數(shù)據(jù)庫(kù)sga配置在數(shù)據(jù)庫(kù)初始設(shè)計(jì)階段采用按比例配數(shù)據(jù)庫(kù)sga可以采用手工配置或按物理內(nèi)存比例配置,置方式,在實(shí)際應(yīng)用中按系統(tǒng)調(diào)優(yōu)方式修改sga。B叵a TyPfrr<ertiLagp <it< 1 HW cm C4a<JeOais best TM-hew-ni u .f Mffimcr,.SwfTer C胡箱;da*4 Pool;Lariyti Pcxili

10、PGA:I'w J 'J" -'!- > *' iocjI Mirm血y 佃 oracia ?ej « Byr&f126 數(shù)據(jù)庫(kù)字符集選擇rizmewv IwludfrG目 B F草曰o 卩fsss* 5It* 立nd t b« a單&uit工農(nóng)*tupJ 卄為了使數(shù)據(jù)庫(kù)能夠正確支持多國(guó)語言,必須配置合適的數(shù)據(jù)庫(kù)字符集,采用utf8字符集。注意:如果沒有大對(duì)象,在使用過程中進(jìn)行語言轉(zhuǎn)換沒有什么影響,具體過程如下(切記設(shè)定的字符集必須是oracle支持,不然不能start):sql> shutdow n i

11、mmediate;sql> startu p mou nt;sql> alter system en able restricted sessi on;sql> alter system set job_queue_ processes=O;sql> alter database open;sql> alter database character set in ter nal_use we8iso8859p1;sql> shutdow n immediate;sql> startu p127.1 db files1.2.7 數(shù)據(jù)庫(kù)其他參數(shù)配置200

12、個(gè)。當(dāng)數(shù)據(jù)庫(kù)規(guī)劃時(shí)文件數(shù)量db_files 是數(shù)據(jù)庫(kù)能夠同時(shí)打開的文件數(shù)量,默認(rèn)值是 files 接近或超過 200 個(gè)時(shí)候,按以下估計(jì)值配置 : db_files = files * 1.51.2.7.2 db_block_size就是 2m 4m或 8m為好。db block size一個(gè) extent 要是 5 個(gè) blocks 的倍數(shù)為好,如:一個(gè) blocks 是 4096 字節(jié),那一個(gè) extent 是數(shù)據(jù)庫(kù)最小物理單元,一旦數(shù)據(jù)庫(kù)創(chuàng)建完成,該參 數(shù)無法修改, db_block_size 按以下規(guī)則調(diào)整:數(shù)據(jù)倉(cāng)庫(kù)類型:db_block_size 盡可能大,采用8192 或 1638

13、4olt p 類型:dbblock_size 用比較小的取值范圍:2048 或4096blocks 推薦是系統(tǒng)操作的塊倍數(shù)(裸設(shè)備塊大小是 在大部分系統(tǒng)上通用)。512 字節(jié),ntfs 是 4k ,使用 8k 的方式1.2.8 數(shù)據(jù)庫(kù)控制文件配置1.2.8.1 控制文件鏡象多個(gè)控制文件存放在不同的物理位置。1.2.8.2 控制文件配置控制文件中參數(shù)設(shè)置,最大的數(shù)據(jù)文件數(shù)量不能小于數(shù)據(jù)庫(kù)參數(shù)db_files1.2.9 數(shù)據(jù)庫(kù)日志文件配置1.2.9.1 日志文件大小日志文件的大小由數(shù)據(jù)庫(kù)事務(wù)處理量決定,在設(shè)計(jì)過程中,確保每 件。所以對(duì)于批處理系統(tǒng),日志文件大小為幾百 m 到幾 g 的大小。 小為幾

14、百m以內(nèi)。20 分鐘切換一個(gè)日志文對(duì)于 oltp 系統(tǒng),日志文件大1.2.9.2 日志文件組數(shù)量對(duì)于批處理系統(tǒng),日志文件組為 5 1 0組;對(duì)于 oltp 系統(tǒng),日志文件組為 3 5組,每組 日志大小保持一致;對(duì)于集群數(shù)據(jù)庫(kù)系統(tǒng),每節(jié)點(diǎn)有各自獨(dú)立的日志組。為了確保日志能夠鏡象作用,每日志組的成員為2 個(gè)。1.2.9.3 日志成員數(shù)量1.2.10 數(shù)據(jù)庫(kù)回滾段配置在 oracle9i 數(shù)據(jù)庫(kù)中,設(shè)計(jì) undo 表空間取代以前版本的回滾段表空間。undo 表空間大小的設(shè)計(jì)規(guī)范由以下公式計(jì)算:undospace = ur * ups *db_block_size+冗余量ur : 表示在 undo 中

15、保持的最長(zhǎng)時(shí)間數(shù)(秒),由數(shù)據(jù)庫(kù)參數(shù)undo_retention 值決定。ups :表示在 undo 中,每秒產(chǎn)生的數(shù)據(jù)庫(kù)塊數(shù)量。例如:在數(shù)據(jù)庫(kù)中保留 2 小時(shí)的回退數(shù)據(jù),假定每小時(shí)產(chǎn)生 = 2 * 3600 * 200 * 4k = 5.8g200 個(gè)數(shù)據(jù)庫(kù)塊。則 undospace1.2.11 數(shù)據(jù)庫(kù)臨時(shí)段表空間配置數(shù)據(jù)庫(kù)臨時(shí)段表空間根據(jù)實(shí)際生產(chǎn)環(huán)境情況調(diào)整其大小,表空間屬性為自動(dòng)擴(kuò)展。1.2.12 數(shù)據(jù)庫(kù)系統(tǒng)表空間配置系統(tǒng)表空間大小 1g 左右,除了存放數(shù)據(jù)庫(kù)數(shù)據(jù)字典的數(shù)據(jù)外,其他數(shù)據(jù)不得存儲(chǔ)在系統(tǒng)表 空間。1.3 數(shù)據(jù)庫(kù)表空間設(shè)計(jì)原則1.3.1 表空間大小定義原則當(dāng)表空間 大小小于操作

16、系統(tǒng)對(duì)最大文件限制時(shí),表空間由一個(gè)文件組成。如果表空間大小大于操作系統(tǒng)對(duì)最大文件限制時(shí),該表空間由多個(gè)數(shù)據(jù)文件組成,表空間的總大小為估算為:tablespace + sum (數(shù)據(jù)段 +索引段 )*150% 。1.3.2 表空間擴(kuò)展性設(shè)計(jì)原則2 的整數(shù)倍( 1m、2m、 4m、8m、 選項(xiàng)。表空間的最大限制一般采(一般windows 3 2位系統(tǒng)的文表空間數(shù)據(jù)文件采用自動(dòng)擴(kuò)展的方式,擴(kuò)展容量快大小按64m進(jìn)行擴(kuò)展,創(chuàng)建表空間時(shí)盡量采用nologing,除非確切知道表空間數(shù)據(jù)文件的最大使用范圍。6 4位的unix系統(tǒng)系統(tǒng)文件最大128g,但也要注意文件格式設(shè)定的文件大?。?g。表空間采用loca

17、l管理 方式,例如:16m、 32m、用 unlimited 件最大2g, 建議最大為tbs_userinfocreate tablespace datafile'/oradata/tbs_userinfo.dbf' size 8mreuseautoextend on next 2mmaxsize unlimitednologgingextent management localautoallocate segment space management auto;1.4 裸設(shè)備的使用一個(gè) scsi 設(shè)備可以 14 個(gè)分區(qū), unix 操作系統(tǒng) 256 個(gè)分區(qū) , 性能比文件系統(tǒng)

18、方式高15左右,空間大于要小于(實(shí)際分區(qū)大小減兩個(gè)oracle的數(shù)據(jù)塊),比如100m,大于為100000k,推薦在 unix 使用軟連接 (ln) 方式把裸設(shè)備形成文件,用加入表空間時(shí)加 resue 選項(xiàng),當(dāng)然也可只 接把設(shè)備加入表空間,移動(dòng)裸設(shè)備使用 dd 命令對(duì)于windows 平臺(tái), oracle 提供軟連接工具,實(shí)現(xiàn)裸設(shè)備的使用,計(jì)算一條記錄的長(zhǎng)度數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)原則2.1命名規(guī)范2.1.1表屬性規(guī)范2.1.1.1 表名前綴為 tbl_ 。數(shù)據(jù)表名稱必須以有特征含義的單詞或縮寫組成,中間可以用“_”分割,例如: tbl_pstn_detail 。表名稱不能用雙引號(hào)包含。2.1.1.2

19、表分區(qū)名前綴為 p 。分區(qū)名必須有特定含義的單詞或字串。例如 : tbl_pstn_detail的分區(qū) p2004100101 表示該分區(qū)存儲(chǔ) 2004100101 時(shí)段的數(shù)據(jù)。2.1.1.3 字段名字段名稱必須用字母開頭,采用有特征含義的單詞或縮寫,不能用雙引號(hào)包含。2.1.1.4 主鍵名前綴為pk_。主鍵名稱應(yīng)是 前綴+表名+構(gòu)成的字段名。如果復(fù)合主鍵的構(gòu)成字段較多,則 只包含第一個(gè)字段。表名可以去掉前綴。2.1.1.5外鍵名前綴為 以去掉前綴。fk_ 。外鍵名稱應(yīng)是 前綴 + 外鍵表名 + 主鍵表名 + 外鍵表構(gòu)成的字段名。表名可2.1.2 索引4.1.2.1 普通索引前綴為 idx_

20、。索引名稱應(yīng)是 前綴 +表名 +構(gòu)成的字段名。如果復(fù)合索引的構(gòu)成字段較多,則 只包含第一個(gè)字段,并添加序號(hào)。表名可以去掉前綴。2.1.2.2 主鍵索引前綴 +表名 +構(gòu)成的主鍵字段名, 在創(chuàng)建表時(shí)候用 using index前綴為 idx_pk_ 。索引名稱應(yīng)是 指定主鍵索引屬性。前綴為func。按業(yè)務(wù)操作命名函數(shù)2.1.2.3唯一所以前綴為idx_uk_ 。索引名稱應(yīng)是前綴+表名+構(gòu)成的字段名。2.1.2.4外鍵索引前綴為idx_fk_ 。索引名稱應(yīng)是前綴+表名+構(gòu)成的外鍵字段名。2.1.2.5函數(shù)索引前綴為idx_func_ 。索引名稱應(yīng)是前綴 + 表名 +構(gòu)成的特征表達(dá)字符。2.1.2.

21、6蔟索引前綴為idx_clu_ 。索引名稱應(yīng)是前綴+表名+構(gòu)成的簇字段。2.1.3視圖前綴為v_。按業(yè)務(wù)操作命名視圖。2.1.4實(shí)體化視圖前綴為mv_。按業(yè)務(wù)操作命名實(shí)體化視圖。2.1.5存儲(chǔ)過程前綴為proc_ 。按業(yè)務(wù)操作命名存儲(chǔ)過程2.1.6觸發(fā)器前綴為trig_ 。觸發(fā)器名應(yīng)是前綴 + 表名 + 觸發(fā)器名。2.1.7函數(shù)2.1.8數(shù)據(jù)包前綴為pkg_ 。按業(yè)務(wù)操作集合命名數(shù)據(jù)包。2.1.9序列前綴為seq_ 。按業(yè)務(wù)屬性命名。2.1.10表空間2.1.10.1 公用表空間前綴為 tbs_ 。 根據(jù)存儲(chǔ)的特性命名,例如:tbs_parameter2.1.10.2 專用表空間tbs_<

22、; 表名稱 >_nn 。該表空間專門存儲(chǔ)指定的某一個(gè)表,或某一表的若干個(gè)分區(qū)的數(shù)據(jù)2.1.11 數(shù)據(jù)文件<表空間名 >nn.dbf 。nn =1 , 2, 3, 4,等。2.1.12普通變量前綴為var_ 。 存放字符、數(shù)字、日期型變量。2.1.13游標(biāo)變量前綴為cur_ 。存放游標(biāo)記錄集。2.1.14記錄型變量前綴為rec存放記錄型數(shù)據(jù)。2.1.15表類型變量前綴為tab存放表類型數(shù)據(jù)。2.1.16數(shù)據(jù)庫(kù)鏈前綴為dbl表示分布式數(shù)據(jù)庫(kù)外部鏈接關(guān)系。2.2.1 語言2.2 命名命名應(yīng)該使用英文單詞,避免使用拼音,特別不應(yīng)該使用拼音簡(jiǎn)寫。命名不允許使用中文 或者特殊字符。英文單

23、詞用對(duì)象本身意義相對(duì)或相近的單詞,選擇最簡(jiǎn)單 或最通用的單詞,不 能使用毫不相干的單詞來命名。 當(dāng)一個(gè)單詞不能表達(dá)對(duì)象含義時(shí), 用詞組組合, 如果組合太長(zhǎng)時(shí), 采用用簡(jiǎn)或縮寫, 縮寫要基本能表達(dá)原單詞的意義。 當(dāng)出現(xiàn)對(duì)象名重名時(shí), 是不同類型對(duì)象時(shí),加類型前綴或后綴以示區(qū)別。2.2.2 大小寫名稱一律大寫,以方便不同數(shù)據(jù)庫(kù)移植,以及避免程序調(diào)用問題。2.2.3 單詞分隔命名的各單詞之間可以使用下劃線進(jìn)行分隔。2.2.4 保留字命名不允許使用 sql 保留字。2.2.5 命名長(zhǎng)度表名、字段名、視圖名長(zhǎng)度應(yīng)限制在 20 個(gè)字符內(nèi) ( 含前綴 ) 。2.2.6 字段名稱同一個(gè)字段名在一個(gè)數(shù)據(jù)庫(kù)中只能

24、代表一個(gè)意思。 比如 telephone 在一個(gè)表中代表“電話號(hào) 碼”的意思,在另外一個(gè)表中就不能代表“手機(jī)號(hào)碼”的意思。不同的表用于相同內(nèi)容的字段應(yīng)該采用同樣的名稱,字段類型定義。2.3 數(shù)據(jù)類型2.3.1 字符型固定長(zhǎng)度的字串類型采用 char ,長(zhǎng)度不固定的字串類型采用 varchar 。避免在長(zhǎng)度不固定的 情況下采用 char 類型。如果在數(shù)據(jù)遷移等出現(xiàn)以上情況,則必須使用 trim() 函數(shù)截去字串后的 空格。2.3.2 數(shù)字型數(shù)字型字段盡量采用 number 類型。2.3.3.1 系統(tǒng)時(shí)間由數(shù)據(jù)庫(kù)產(chǎn)生的系統(tǒng)時(shí)間首選數(shù)據(jù)庫(kù)的日期型,如date 類型。2.3.3 日期和時(shí)間2.3.3.

25、2 外部時(shí)間2.4.2.3.2 外鍵關(guān)聯(lián)由數(shù)據(jù)導(dǎo)入或外部應(yīng)用程序產(chǎn)生的日期時(shí)間類型采用varchar 類型,數(shù)據(jù)格式采用:yyyymmddhh24miss 。2.3.3.3 大字段如無特別需要,避免使用大字段(blob , clob ,long , text , image 等) 。2.3.3.4 唯一鍵對(duì)于數(shù)字型唯一鍵值,盡可能用系列 sequence產(chǎn)生。2.4 設(shè)計(jì)2.4.1 范式如無性能上的必須原因, 應(yīng)該使用關(guān)系數(shù)據(jù)庫(kù)理論, 如果在數(shù)據(jù)量上與性能上無特別要求,考慮到實(shí)現(xiàn)的方便性可以有適當(dāng) 要達(dá)到 3nf. 如非確實(shí)必要,避免一個(gè)字段中存儲(chǔ)多個(gè)標(biāo)志的做法。如 種取值。這往往是增加復(fù)雜度

26、,降低性 能的地方。達(dá)到較高的范式, 避免數(shù)據(jù)冗余 , 但是 的數(shù)據(jù)冗余,但基本上 11101 表示 5 個(gè)標(biāo)志的一2.4.2 表設(shè)計(jì)2.4.2.1 邏輯段設(shè)計(jì)原則2.4.2.1.1 tablespace每個(gè)表在創(chuàng)建時(shí)候, 必須指定所在的表空間, 不要采用默認(rèn)表空間以防止表建立在系統(tǒng)表空間上導(dǎo)致性能問題。對(duì)于事務(wù)比較繁忙的數(shù)據(jù)表,必須存放在該表的專用表空間中。2.4.2.1.2 pctused默認(rèn) pctused 導(dǎo)致數(shù)據(jù)庫(kù)物理空間利用率非常低40%左右; 對(duì)于 update 比較少或 update 不導(dǎo)致行增大的表, pctused 可設(shè)置在 60 85 之間;對(duì)于 update 能夠?qū)е滦?/p>

27、增大的表, update 設(shè)置在 40 70 之間2.4.2.1.3 initrans對(duì)于需要并行查詢或者在 rac 數(shù)據(jù)庫(kù)中需要并行處理的表, initrans 設(shè)置為 2 的倍數(shù),否 則,不設(shè)該值。2.4.2.1.4 storage2.4.2.1.4.1 initial盡量減少表數(shù)據(jù)段的 extents 數(shù)量, initial 的大小盡量接近數(shù)據(jù)段的大小1m, 2m, 4m, 8m, 16m,等按2的倍數(shù)進(jìn)行圓整。例如表或分區(qū)數(shù)據(jù)段大小為取 32m。64k, 128k ,28m,則 initial2.4.2.1.4.2 next表或分區(qū)擴(kuò)展 extents 的大小 按上述方法進(jìn)行圓整。當(dāng)表

28、或分區(qū)數(shù)據(jù)段無法按 接近值進(jìn)行圓整的情況下 其大小可以按 initial+next 進(jìn)行圓整。此時(shí) 必須設(shè)置 minextents=2 。例如:表或分區(qū)數(shù)據(jù)段大小為 150m 則 initial=128m;next=32m minextents=2 。initial2.4.2.1.4.3 minextents該參數(shù)表示表創(chuàng)建時(shí)候 extents 的初始數(shù)量 一般取12。2.4.2.1.4.4 pctincrease表示每個(gè)擴(kuò)展 extents 的增長(zhǎng)率,設(shè)置 pctincrease=0 能夠獲得較好的存儲(chǔ)性能。2.4.2.2 特殊表設(shè)計(jì)原則2.4.2.2.1 分區(qū)表對(duì)于數(shù)據(jù)量比較大的表 根據(jù)表

29、數(shù)據(jù)的屬性進(jìn)行分區(qū) 以得到較好的性能。如果表按某些 字段進(jìn)行增長(zhǎng) 則采用按字段值范圍進(jìn)行范圍分區(qū); 如果表按某個(gè)字段的 幾個(gè)關(guān)鍵值進(jìn)行分布 則采用列表分區(qū);對(duì)于靜態(tài)表 則采用 hash 分區(qū)或列表分區(qū);在范圍分區(qū)中 如果數(shù)據(jù)按某關(guān) 鍵字段均衡分布 則采用子分區(qū)的復(fù)合分區(qū) 方法。2.4.2.2.2 聚蔟表如果某幾個(gè)靜態(tài)表關(guān)系比較密切,則可以采用聚蔟表的方法。2.4.2.3 完整性設(shè)計(jì)原則2.4.2.3.1 主鍵約束關(guān)聯(lián)表的父表要求有主健 主健字段或組合字段必須滿足非空屬性和唯一性要求。 量比較大的父表 要求指定索引段。對(duì)于數(shù)據(jù)對(duì)于關(guān)聯(lián)兩個(gè)表的字段 一般應(yīng)該分別建立主鍵、外鍵。實(shí)際是否建立外鍵 根

30、據(jù)對(duì)數(shù)據(jù)完 整性的要求決定。 為了提高性能 對(duì)于數(shù)據(jù)量比較大的標(biāo)要求對(duì)外健建立索引。 對(duì)于有要求級(jí)聯(lián) 刪除屬性的外鍵 必須指定 on delete cascade 。2.4.2.3.3 null 值對(duì)于字段能否 null ,應(yīng)該在 sql 建表腳本中明確指明,不應(yīng)使用缺省。由于 null 值在參加 任何運(yùn)算中,結(jié)果均為 null 。所以在應(yīng)用程序中必須利用 nvl() 函數(shù)把可能為 null 值得字段或 變量轉(zhuǎn)換為非 null 的默認(rèn)值。例如: nvl ( sale,0 )。2.4.2.3.4 check 條件對(duì)于字段有 檢查 性約束,要求指定 check 規(guī)則。2.4.2.3.5 觸發(fā)器觸發(fā)

31、器是一種特殊的存儲(chǔ)過程,完整性和一致性不被破壞而創(chuàng)建,通過數(shù)據(jù)表的 dml 操作而觸發(fā)執(zhí)行, 起作用是為確保數(shù)據(jù)的 實(shí)現(xiàn)數(shù)據(jù)的完整約束。觸發(fā)器的 屬性保持一致,before 或 after 以避免死鎖發(fā)生。事務(wù)屬性的選擇時(shí)候,對(duì)表操作的事務(wù)屬性必須與應(yīng)用程序事務(wù)在大型導(dǎo)入表中,盡量避免使用觸發(fā)器。2.4.2.4注釋表、字段等應(yīng)該有中文名稱注釋,以及需要說明的內(nèi)容。2.4.3 索引設(shè)計(jì)對(duì)于查詢中需要作為查詢條件的字段, 可以考慮建立索引。 最終根據(jù)性能的需要決定是否建 立索引。 對(duì)于復(fù)合索引, 索引字段順序比較關(guān)鍵, 把查詢頻率比較高的字段排在索引組合的最前 面。在分區(qū)表中,盡量采用 local

32、 分區(qū)索引以方便分區(qū)維護(hù)。tablespace 、storage除非時(shí)分區(qū) local 索引,否則在創(chuàng)建索引段時(shí)候必須指定指定索引段的 屬性,具體參考 4.4.2.1 內(nèi)容。2.4.4 視圖設(shè)計(jì)視圖是虛擬的數(shù)據(jù)庫(kù)表,在使用時(shí)要遵循以下原則:從一個(gè)或多個(gè)庫(kù)表中查詢部分?jǐn)?shù)據(jù)項(xiàng); 為簡(jiǎn)化查詢,將復(fù)雜的檢索或字查詢通過視圖實(shí)現(xiàn);提高數(shù)據(jù)的 安全 性,只將需要查看的數(shù)據(jù)信息顯示給權(quán)限有限的人員;視圖中如果嵌套使用視圖,級(jí)數(shù)不得超過3 級(jí);庫(kù)表,不宜使用視圖;可以采用實(shí)體化視圖代替。由于視圖中只能固定條件或沒有條件,所以對(duì)于數(shù)據(jù)量較大或隨時(shí)間的推移逐漸增多的 除特殊需要,避免類似select * from

33、 table name而沒有檢索條件的視圖;視圖中盡量避免岀現(xiàn)數(shù)據(jù)排序的sql語句。package 中實(shí)現(xiàn)。存儲(chǔ)過程、函數(shù)的 具體算法改變時(shí),只需要修 當(dāng)和數(shù)據(jù)庫(kù)頻繁交換數(shù)據(jù)是通過存儲(chǔ)過程 戶才能執(zhí)行存儲(chǔ)過程,所以存儲(chǔ)過程有利于提高系統(tǒng)2.4.5 包設(shè)計(jì)存儲(chǔ)過程、函數(shù)、外部游標(biāo)必須在指定的數(shù)據(jù)包對(duì)象 建立如同其它語言形式的編程過程,適合采用模塊化設(shè)計(jì)方法;當(dāng) 改需要存儲(chǔ)過程即可, 不需要修改其它語言的源程序。 可以提高運(yùn)行速度,由于只有被授權(quán)的用 的 安全 性。存儲(chǔ)過程、 函數(shù)必須檢索數(shù)據(jù)庫(kù)表記錄或數(shù)據(jù)庫(kù)其他對(duì)象, 甚至修改(執(zhí)行 insert 、delete 、 update 、drop 、

34、create 等操作)數(shù)據(jù) 庫(kù)信息。如果某項(xiàng)功能不需要和數(shù)據(jù)庫(kù)打交道,則不得通 過數(shù)據(jù)庫(kù)存儲(chǔ)過程或函數(shù)的方式實(shí)現(xiàn)。在函數(shù)中避免采用 dml 或 ddl 語句。在數(shù)據(jù)包采用存儲(chǔ)過程、函數(shù)重載的方法,簡(jiǎn)化數(shù)據(jù)包設(shè)計(jì),提高代碼效率。存儲(chǔ)過程、函 數(shù)必須有相應(yīng)的出錯(cuò)處理功能。2.4.6 安全性設(shè)計(jì)2.4.4.6.1 管理 默認(rèn)用戶在生產(chǎn)環(huán)境中,必須嚴(yán)格管理 sys 和 system 用戶,必須修改其默認(rèn)密碼,禁止用該用戶建 立數(shù)據(jù)庫(kù)應(yīng)用對(duì)象。刪除或鎖定數(shù)據(jù)庫(kù)測(cè)試用戶 scott 。2.4.6.2 數(shù)據(jù)庫(kù)級(jí)用戶權(quán)限設(shè)計(jì)必須按照應(yīng)用需求,設(shè)計(jì)不同的用戶訪問權(quán)限。業(yè)務(wù)需求建立不同的應(yīng)用角色。包括應(yīng)用系統(tǒng)管理

35、用戶, 普通用戶等, 按照用戶訪問另外的用戶對(duì)象時(shí),應(yīng)該通過創(chuàng)建同義詞對(duì)象synonym 進(jìn)行訪問。2.4.6.3 角色與權(quán)限則每個(gè)用戶的權(quán)限等于他所兼角確定每個(gè)角色對(duì)數(shù)據(jù)庫(kù)表的操作權(quán)限,如創(chuàng)建、檢索、更新、刪除等。每個(gè)角色擁有剛好能 夠完成任務(wù)的權(quán)限, 不多也不少。 在應(yīng)用時(shí)再為用戶分配角色, 色的權(quán)限之和。2.4.6.4 應(yīng)用級(jí)用戶設(shè)計(jì)應(yīng)用級(jí)的用戶帳號(hào)密碼不能與數(shù)據(jù)庫(kù)相同, 防止用戶直接操作數(shù)據(jù)庫(kù)。 用戶只能用帳號(hào)登陸 到應(yīng)用軟件,通過應(yīng)用軟件訪問數(shù)據(jù)庫(kù),而沒有其它途徑操作數(shù)據(jù)庫(kù)。2.4.6.5 用戶密碼管理用戶帳號(hào)的密碼必須進(jìn)行加密處理,確保在任何地方的查詢都不會(huì)岀現(xiàn)密碼的明文。2.5 sql 編寫2.5.1字符類型數(shù)據(jù)sql中的字符類型數(shù)據(jù)應(yīng)該統(tǒng)一使用單引號(hào)。特別對(duì)純數(shù)字的字串,必須用單引號(hào),否則會(huì) 導(dǎo)致內(nèi)部轉(zhuǎn)換而引起性能問題或索引失效問題。利用trim(),lower()等函數(shù)格式化匹配條件。2.5.2 復(fù)雜 sql對(duì)于非

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論