表空間數據文件采用自動(dòng)擴展的方式,擴展容量快大小按2的整數倍(1M、2M、4M、8M、16M、32M、64M)進(jìn)行擴展,創(chuàng )建表空間時(shí)盡量采用nologing選項。表空間的最大限制一般采用unlimited,除非確切知道表空間數據文件的最大使用范圍。(一般windows 32位系統的文件最大2G,64位的unix系統系統文件最大128G,但也要注意文件格式設定的文件大?。?建議最大為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 裸設備的使用
一個(gè)scsi設備可以 14個(gè)分區,unix操作系統256個(gè)分區,性能比文件系統方式高15%左右,空間大于要小于(實(shí)際分區大小減兩個(gè)ORACLE的數據塊),比如100M,大于為100000K,推薦在unix使用軟連接(ln)方式把裸設備形成文件,用加入表空間時(shí)加resue 選項,當然也可只接把設備加入表空間,移動(dòng)裸設備使用dd命令
對于windows平臺,oracle提供軟連接工具,實(shí)現裸設備的使用,計算一條記錄的長(cháng)度
2 數據庫邏輯設計原則
2.1 命名規范
2.1.1 表屬性規范
2.1.1.1 表名
前綴為T(mén)bl_ 。數據表名稱(chēng)必須以有特征含義的單詞或縮寫(xiě)組成,中間可以用“_”分割,例如:tbl_pstn_detail。表名稱(chēng)不能用雙引號包含。
2.1.1.2 表分區名
前綴為p 。分區名必須有特定含義的單詞或字串。
例如 :tbl_pstn_detail 的分區p2004100101表示該分區存儲 2004100101時(shí)段的數據。
2.1.1.3 字段名
字段名稱(chēng)必須用字母開(kāi)頭,采用有特征含義的單詞或縮寫(xiě),不能用雙引號包含。
2.1.1.4 主鍵名
前綴為PK_。主鍵名稱(chēng)應是 前綴+表名+構成的字段名。如果復合主鍵的構成字段較多,則只包含第一個(gè)字段。表名可以去掉前綴。
2.1.1.5 外鍵名
前綴為FK_。外鍵名稱(chēng)應是 前綴+ 外鍵表名 + 主鍵表名 + 外鍵表構成的字段名。表名可以去掉前綴。
2.1.2 索引
4.1.2.1 普通索引
前綴為IDX_。索引名稱(chēng)應是 前綴+表名+構成的字段名。如果復合索引的構成字段較多,則只包含第一個(gè)字段,并添加序號。表名可以去掉前綴。
2.1.2.2 主鍵索引
前綴為IDX_PK_。索引名稱(chēng)應是 前綴+表名+構成的主鍵字段名,在創(chuàng )建表時(shí)候用using index指定主鍵索引屬性。
2.1.2.3 唯一所以
前綴為IDX_UK_。索引名稱(chēng)應是 前綴+表名+構成的字段名。
2.1.2.4 外鍵索引
前綴為IDX_FK_。索引名稱(chēng)應是 前綴+表名+構成的外鍵字段名。
2.1.2.5 函數索引
前綴為IDX_func_。索引名稱(chēng)應是 前綴+表名+構成的特征表達字符。
2.1.2.6 蔟索引
前綴為IDX_clu_。索引名稱(chēng)應是 前綴+表名+構成的簇字段。
2.1.3 視圖
前綴為V_。按業(yè)務(wù)操作命名視圖。
2.1.4 實(shí)體化視圖
前綴為MV_。按業(yè)務(wù)操作命名實(shí)體化視圖。
2.1.5 存儲過(guò)程
前綴為Proc_ 。按業(yè)務(wù)操作命名存儲過(guò)程
2.1.6 觸發(fā)器
前綴為T(mén)rig_ 。觸發(fā)器名應是 前綴 + 表名 + 觸發(fā)器名。
2.1.7 函數
前綴為Func_ 。按業(yè)務(wù)操作命名函數
2.1.8 數據包
前綴為Pkg_ 。按業(yè)務(wù)操作集合命名數據包。
2.1.9 序列
前綴為Seq_ 。按業(yè)務(wù)屬性命名。
2.1.10 表空間
2.1.10.1 公用表空間
前綴為T(mén)bs_ 。 根據存儲的特性命名,例如: tbs_parameter 。
2.1.10.2 專(zhuān)用表空間
Tbs_<表名稱(chēng)>_nn。該表空間專(zhuān)門(mén)存儲指定的某一個(gè)表,或某一表的若干個(gè)分區的數據
2.1.11 數據文件
<表空間名>nn.dbf 。nn =1,2,3,4,…等。
2.1.12 普通變量
前綴為Var_ 。 存放字符、數字、日期型變量。
2.1.13 游標變量
前綴為Cur_ 。存放游標記錄集。
2.1.14 記錄型變量
前綴為Rec_ 。 存放記錄型數據。
2.1.15 表類(lèi)型變量
前綴為T(mén)ab_ 。 存放表類(lèi)型數據。
2.1.16 數據庫鏈
前綴為dbl_ 。 表示分布式數據庫外部鏈接關(guān)系。
2.2 命名
2.2.1 語(yǔ)言
命名應該使用英文單詞,避免使用拼音,特別不應該使用拼音簡(jiǎn)寫(xiě)。命名不允許使用中文或者特殊字符。
英文單詞使用用對象本身意義相對或相近的單詞。選擇最簡(jiǎn)單或最通用的單詞。不能使用毫不相干的單詞來(lái)命名
當一個(gè)單詞不能表達對象含義時(shí),用詞組組合,如果組合太長(cháng)時(shí),采用用簡(jiǎn)或縮寫(xiě),縮寫(xiě)要基本能表達原單詞的意義。
當出現對象名重名時(shí),是不同類(lèi)型對象時(shí),加類(lèi)型前綴或后綴以示區別。
2.2.2 大小寫(xiě)
名稱(chēng)一律大寫(xiě),以方便不同數據庫移植,以及避免程序調用問(wèn)題。
2.2.3 單詞分隔
命名的各單詞之間可以使用下劃線(xiàn)進(jìn)行分隔。
2.2.4 保留字
命名不允許使用SQL保留字。
2.2.5 命名長(cháng)度
表名、字段名、視圖名長(cháng)度應限制在20個(gè)字符內(含前綴)。
2.2.6 字段名稱(chēng)
同一個(gè)字段名在一個(gè)數據庫中只能代表一個(gè)意思。比如telephone在一個(gè)表中代表“電話(huà)號碼”的意思,在另外一個(gè)表中就不能代表“手機號碼”的意思。
不同的表用于相同內容的字段應該采用同樣的名稱(chēng),字段類(lèi)型定義。
2.3 數據類(lèi)型
2.3.1 字符型
固定長(cháng)度的字串類(lèi)型采用char,長(cháng)度不固定的字串類(lèi)型采用varchar。避免在長(cháng)度不固定的情況下采用char類(lèi)型。如果在數據遷移等出現以上情況,則必須使用trim()函數截去字串后的空格。
2.3.2 數字型
數字型字段盡量采用number類(lèi)型。
2.3.3 日期和時(shí)間
2.3.3.1 系統時(shí)間
由數據庫產(chǎn)生的系統時(shí)間首選數據庫的日期型,如DATE類(lèi)型。
2.3.3.2 外部時(shí)間
由數據導入或外部應用程序產(chǎn)生的日期時(shí)間類(lèi)型采用varchar類(lèi)型,數據格式采用:YYYYMMDDHH24MISS。
2.3.3.3 大字段
如無(wú)特別需要,避免使用大字段(blob,clob,long,text,image等)。
2.3.3.4 唯一鍵
對于數字型唯一鍵值,盡可能用系列sequence產(chǎn)生。
2.4 設計
2.4.1 范式
如無(wú)性能上的必須原因,應該使用關(guān)系數據庫理論,達到較高的范式,避免數據冗余,但是如果在數據量上與性能上無(wú)特別要求,考慮到實(shí)現的方便性可以有適當的數據冗余,但基本上要達到3NF.如非確實(shí)必要,避免一個(gè)字段中存儲多個(gè)標志的做法。如11101表示5個(gè)標志的一種取值。這往往是增加復雜度,降低性能的地方。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。