表空間數(shù)據(jù)文件采用自動(dòng)擴(kuò)展的方式,擴(kuò)展容量快大小按2的整數(shù)倍(1M、2M、4M、8M、16M、32M、64M)進(jìn)行擴(kuò)展,創(chuàng)建表空間時(shí)盡量采用nologing選項(xiàng)。表空間的最大限制一般采用unlimited,除非確切知道表空間數(shù)據(jù)文件的最大使用范圍。(一般windows 32位系統(tǒng)的文件最大2G,64位的unix系統(tǒng)系統(tǒng)文件最大128G,但也要注意文件格式設(shè)定的文件大?。?建議最大為2G。表空間采用local管理方式,例如:
CREATE TABLESPACE TBS_USERINFO
DATAFILE
'/oradata/tbs_userinfo.dbf'
SIZE 8M
REUSE
AUTOEXTEND ON
NEXT 2M
MAXSIZE UNLIMITED
NOLOGGING
EXTENT MANAGEMENT
LOCAL
AUTOALLOCATE
SEGMENT SPACE MANAGEMENT AUTO;
1.4 裸設(shè)備的使用
一個(gè)scsi設(shè)備可以 14個(gè)分區(qū),unix操作系統(tǒng)256個(gè)分區(qū),性能比文件系統(tǒng)方式高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)度
2 數(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 表分區(qū)名
前綴為p 。分區(qū)名必須有特定含義的單詞或字串。
例如 :tbl_pstn_detail 的分區(qū)p2004100101表示該分區(qū)存儲(chǔ) 2004100101時(shí)段的數(shù)據(jù)。
2.1.1.3 字段名
字段名稱必須用字母開(kāi)頭,采用有特征含義的單詞或縮寫,不能用雙引號(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_。索引名稱應(yīng)是 前綴+表名+構(gòu)成的字段名。如果復(fù)合索引的構(gòu)成字段較多,則只包含第一個(gè)字段,并添加序號(hào)。表名可以去掉前綴。
2.1.2.2 主鍵索引
前綴為IDX_PK_。索引名稱應(yīng)是 前綴+表名+構(gòu)成的主鍵字段名,在創(chuàng)建表時(shí)候用using index指定主鍵索引屬性。
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.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ǔ)過(guò)程
前綴為Proc_ 。按業(yè)務(wù)操作命名存儲(chǔ)過(guò)程
2.1.6 觸發(fā)器
前綴為Trig_ 。觸發(fā)器名應(yīng)是 前綴 + 表名 + 觸發(fā)器名。
2.1.7 函數(shù)
前綴為Func_ 。按業(yè)務(wù)操作命名函數(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_parameter 。
2.1.10.2 專用表空間
Tbs_<表名稱>_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 命名
2.2.1 語(yǔ)言
命名應(yīng)該使用英文單詞,避免使用拼音,特別不應(yīng)該使用拼音簡(jiǎn)寫。命名不允許使用中文或者特殊字符。
英文單詞使用用對(duì)象本身意義相對(duì)或相近的單詞。選擇最簡(jiǎn)單或最通用的單詞。不能使用毫不相干的單詞來(lái)命名
當(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)用問(wèn)題。
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ù)中只能代表一個(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 日期和時(shí)間
2.3.3.1 系統(tǒng)時(shí)間
由數(shù)據(jù)庫(kù)產(chǎn)生的系統(tǒng)時(shí)間首選數(shù)據(jù)庫(kù)的日期型,如DATE類型。
2.3.3.2 外部時(shí)間
由數(shù)據(jù)導(dǎo)入或外部應(yīng)用程序產(chǎn)生的日期時(shí)間類型采用varchar類型,數(shù)據(jù)格式采用:YYYYMMDDHH24MISS。
2.3.3.3 大字段
如無(wú)特別需要,避免使用大字段(blob,clob,long,text,image等)。
2.3.3.4 唯一鍵
對(duì)于數(shù)字型唯一鍵值,盡可能用系列sequence產(chǎn)生。
2.4 設(shè)計(jì)
2.4.1 范式
如無(wú)性能上的必須原因,應(yīng)該使用關(guān)系數(shù)據(jù)庫(kù)理論,達(dá)到較高的范式,避免數(shù)據(jù)冗余,但是如果在數(shù)據(jù)量上與性能上無(wú)特別要求,考慮到實(shí)現(xiàn)的方便性可以有適當(dāng)?shù)臄?shù)據(jù)冗余,但基本上要達(dá)到3NF.如非確實(shí)必要,避免一個(gè)字段中存儲(chǔ)多個(gè)標(biāo)志的做法。如11101表示5個(gè)標(biāo)志的一種取值。這往往是增加復(fù)雜度,降低性能的地方。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。