• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Oracle9i 數據庫設計指引全集

    發表于:2008-10-27來源:作者:點擊數: 標簽:數據庫設計全集
    一、數據庫物理設計原則 1.1 數據庫環境配置原則 1.1.1 操作系統環境: 對于中小型數據庫系統,采用 linux 操作系統比較合適,對于數據庫冗余要求負載均衡能力要求較高的系統,可以采用Oracle9i RAC的集群數據庫的方法,集群節點數范圍在2—64個。對于大型數
     一、數據庫物理設計原則

      1.1 數據庫環境配置原則

      1.1.1 操作系統環境:

      對于中小型數據庫系統,采用linux操作系統比較合適,對于數據庫冗余要求負載均衡能力要求較高的系統,可以采用Oracle9i RAC的集群數據庫的方法,集群節點數范圍在2—64個。對于大型數據庫系統,可以采用Sun Solaris SPARC 64位小型機系統或HP 9000 系列小型機系統。RAD5適合只讀操作的數據庫,RAD1 適合OLTP數據庫

      1.1.2 內存要求

      對于linux操作系統下的數據庫,由于在正常情況下Oracle對SGA的管理能力不超過1.7G。所以總的物理內存在4G以下。SGA的大小為物理內存的50%—75%。對于64位的小型系統,Oracle數據庫對SGA的管理超過2G的限制,SGA設計在一個合適的范圍內:物理內存的50%—70%,當SGA過大的時候會導致內存分頁,影響系統性能。

      1.1.3 交換區設計

      當物理內存在2G以下的情況下,交換分區swap為物理內存的3倍,當物理內存>2G的情況下,swap大小為物理內存的1—2倍。

      1.1.4 其他環境變量參考Oracle相關的安裝文檔和隨機文檔。

      1.2 數據庫設計原則

      1.2.1 數據庫SID

      數據庫SID是唯一標志數據庫的符號,命名長度不能超過5個字符。對于單節點數據庫,以字符開頭的5個長度以內字串作為SID的命名。對于集群數據庫,當命名SID后,各節點SID自動命名為SIDnn,其中nn為節點號:1,2,…,64。例如rac1、rac2、rac24。

      1.2.2 數據庫全局名

      數據庫全局名稱:<sid>.domain

      1.2.3 數據庫類型選擇

      對于海量數據庫系統,采用data warehouse的類型。對于小型數據庫或OLTP類型的數據庫,采用Transaction Processing類型。

      1.2.4 數據庫連接類型選擇

      Oracle數據庫有專用服務器連接類型和多線程服務器MTS連接類型。對于批處理服務,需要專用服務器連接方式,而對于OLTP服務則MTS的連接方式比較合適。由于采用MTS后,可以通過配置網絡服務實現某些特定批處理服務采用專用服務器連接方式,所以數據庫設計時一般采用MTS類型。

      1.2.5 數據庫SGA配置

      數據庫SGA可以采用手工配置或按物理內存比例配置,在數據庫初始設計階段采用按比例配置方式,在實際應用中按系統調優方式修改SGA。

      1.2.6 數據庫字符集選擇

      為了使數據庫能夠正確支持多國語言,必須配置合適的數據庫字符集,采用UTF8字符集。

      注意:如果沒有大對象,在使用過程中進行語言轉換沒有什么影響,具體過程如下(切記設定的字符集必須是ORACLE支持,不然不能start):

    SQL> shutdown immediate;

    SQL> startup mount;

    SQL> alter system enable restricted session;

    SQL> alter system set job_queue_processes=0;

    SQL> alter database open;

    SQL> alter database character set internal_use we8iso8859p1;

    SQL> shutdown immediate;

    SQL> startup

      1.2.7 數據庫其他參數配置

      1.2.7.1 DB_FILES

      Db_files是數據庫能夠同時打開的文件數量,默認值是200個。當數據庫規劃時文件數量FILES接近或超過200個時候,按以下估計值配置:

    DB_FILES = FILES * 1.5

      1.2.7.2 Db_block_size

      一個extent要是5個blocks的倍數為好,如:一個blocks是4096字節,那一個extent就是2M、4M或8M為好。Db_block_size是數據庫最小物理單元,一旦數據庫創建完成,該參數無法修改,db_block_size按以下規則調整:

      數據倉庫類型: db_block_size盡可能大,采用8192 或 16384

      OLTP類型: db_block_size 用比較小的取值范圍: 2048 或 4096

      Blocks推薦是系統操作的塊倍數(裸設備塊大小是512字節,NTFS是 4K,使用8K的方式在大部分系統上通用)。

      1.2.8 數據庫控制文件配置

      1.2.8.1 控制文件鏡象

      多個控制文件存放在不同的物理位置。

      1.2.8.2 控制文件配置

      控制文件中參數設置,最大的數據文件數量不能小于數據庫參數db_files。

      1.2.9 數據庫日志文件配置

      1.2.9.1 日志文件大小

      日志文件的大小由數據庫事務處理量決定,在設計過程中,確保每20分鐘切換一個日志文件。所以對于批處理系統,日志文件大小為幾百M 到幾G的大小。對于OLTP系統,日志文件大小為幾百M以內。

      1.2.9.2 日志文件組數量

      對于批處理系統,日志文件組為5—10組;對于OLTP系統,日志文件組為 3—5組,每組日志大小保持一致;對于集群數據庫系統,每節點有各自獨立的日志組。

      1.2.9.3 日志成員數量

      為了確保日志能夠鏡象作用,每日志組的成員為2個。

      1.2.10 數據庫回滾段配置

      在Oracle9i數據庫中,設計Undo表空間取代以前版本的回滾段表空間。

      Undo 表空間大小的設計規范由以下公式計算:

      Undospace = UR * UPS *db_block_size+ 冗余量

      UR: 表示在undo中保持的最長時間數(秒),由數據庫參數UNDO_RETENTION值決定。

      UPS:表示在undo中,每秒產生的數據庫塊數量。

      例如:在數據庫中保留2小時的回退數據,假定每小時產生200個數據庫塊。則Undospace = 2 * 3600 * 200 * 4K = 5.8G

      1.2.11 數據庫臨時段表空間配置

      數據庫臨時段表空間根據實際生產環境情況調整其大小,表空間屬性為自動擴展。

      1.2.12 數據庫系統表空間配置

      系統表空間大小1G左右,除了存放數據庫數據字典的數據外,其他數據不得存儲在系統表空間。

      1.3 數據庫表空間設計原則

      1.3.1 表空間大小定義原則

      當表空間 大小小于操作系統對最大文件限制時,表空間由一個文件組成。如果表空間大小大于操作系統對最大文件限制時,該表空間由多個數據文件組成,表空間的總大小為估算為:

      Tablespace + sum (數據段+索引段)*150%。

      1.3.2 表空間擴展性設計原則

      表空間數據文件采用自動擴展的方式,擴展容量快大小按2的整數倍(1M、2M、4M、8M、16M、32M、64M)進行擴展,創建表空間時盡量采用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 裸設備的使用

      一個scsi設備可以 14個分區,unix操作系統256個分區,性能比文件系統方式高15%左右,空間大于要小于(實際分區大小減兩個ORACLE的數據塊),比如100M,大于為100000K,推薦在unix使用軟連接(ln)方式把裸設備形成文件,用加入表空間時加resue 選項,當然也可只接把設備加入表空間,移動裸設備使用dd命令

      對于windows平臺,oracle提供軟連接工具,實現裸設備的使用,計算一條記錄的長度

      二、 數據庫邏輯設計原則

      2.1 命名規范

      2.1.1 表屬性規范

      2.1.1.1 表名

      前綴為Tbl_ 。數據表名稱必須以有特征含義的單詞或縮寫組成,中間可以用“_”分割,例如:tbl_pstn_detail。表名稱不能用雙引號包含。

      2.1.1.2 表分區名

      前綴為p 。分區名必須有特定含義的單詞或字串。

      例如 :tbl_pstn_detail 的分區p2004100101表示該分區存儲 2004100101時段的數據。

      2.1.1.3 字段名

      字段名稱必須用字母開頭,采用有特征含義的單詞或縮寫,不能用雙引號包含。

      2.1.1.4 主鍵名

      前綴為PK_。主鍵名稱應是 前綴+表名+構成的字段名。如果復合主鍵的構成字段較多,則只包含第一個字段。表名可以去掉前綴。

      2.1.1.5 外鍵名

      前綴為FK_。外鍵名稱應是 前綴+ 外鍵表名 + 主鍵表名 + 外鍵表構成的字段名。表名可以去掉前綴。

      2.1.2 索引

      4.1.2.1 普通索引

      前綴為IDX_。索引名稱應是 前綴+表名+構成的字段名。如果復合索引的構成字段較多,則只包含第一個字段,并添加序號。表名可以去掉前綴。

      2.1.2.2 主鍵索引

      前綴為IDX_PK_。索引名稱應是 前綴+表名+構成的主鍵字段名,在創建表時候用using index指定主鍵索引屬性。

      2.1.2.3 唯一所以

      前綴為IDX_UK_。索引名稱應是 前綴+表名+構成的字段名。

      2.1.2.4 外鍵索引

      前綴為IDX_FK_。索引名稱應是 前綴+表名+構成的外鍵字段名。

      2.1.2.5 函數索引

      前綴為IDX_func_。索引名稱應是 前綴+表名+構成的特征表達字符。

      2.1.2.6 蔟索引

      前綴為IDX_clu_。索引名稱應是 前綴+表名+構成的簇字段。

      2.1.3 視圖

      前綴為V_。按業務操作命名視圖。

      2.1.4 實體化視圖

      前綴為MV_。按業務操作命名實體化視圖。

      2.1.5 存儲過程

      前綴為Proc_ 。按業務操作命名存儲過程

      2.1.6 觸發器

      前綴為Trig_ 。觸發器名應是 前綴 + 表名 + 觸發器名。

      2.1.7 函數

      前綴為Func_ 。按業務操作命名函數

      2.1.8 數據包

      前綴為Pkg_ 。按業務操作集合命名數據包。

      2.1.9 序列

      前綴為Seq_ 。按業務屬性命名。

      2.1.10 表空間

      2.1.10.1 公用表空間

      前綴為Tbs_ 。 根據存儲的特性命名,例如: tbs_parameter 。

      2.1.10.2 專用表空間

      Tbs_<表名稱>_nn。該表空間專門存儲指定的某一個表,或某一表的若干個分區的數據

      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 表類型變量

      前綴為Tab_ 。 存放表類型數據。

      2.1.16 數據庫鏈

      前綴為dbl_ 。 表示分布式數據庫外部鏈接關系。

      2.2 命名

      2.2.1 語言

      命名應該使用英文單詞,避免使用拼音,特別不應該使用拼音簡寫。命名不允許使用中文或者特殊字符。英文單詞用對象本身意義相對或相近的單詞,選擇最簡單或最通用的單詞,不能使用毫不相干的單詞來命名。當一個單詞不能表達對象含義時,用詞組組合,如果組合太長時,采用用簡或縮寫,縮寫要基本能表達原單詞的意義。當出現對象名重名時,是不同類型對象時,加類型前綴或后綴以示區別。

      2.2.2 大小寫

      名稱一律大寫,以方便不同數據庫移植,以及避免程序調用問題。

      

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>