數(shù)據(jù)庫建設(shè)規(guī)范_第1頁
數(shù)據(jù)庫建設(shè)規(guī)范_第2頁
數(shù)據(jù)庫建設(shè)規(guī)范_第3頁
數(shù)據(jù)庫建設(shè)規(guī)范_第4頁
數(shù)據(jù)庫建設(shè)規(guī)范_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、. . 數(shù)據(jù)庫建設(shè)規(guī)范數(shù)據(jù)庫建設(shè)規(guī)范 目錄目錄 1. 前言 .2 2. 范圍 .2 3. 術(shù)語和定義.2 3.1 范式 .2 3.2 關(guān)聯(lián) .3 3.3 關(guān)系模型 .3 3.4 視圖 .3 3.5 外鍵 .3 3.6 約束 .3 3.7 主鍵 .3 4. 命名規(guī)范 .4 4.1 規(guī)范約定 .4 4.2 表名 .4 4.3 視圖 .4 4.4 存儲過程 .4 4.5 函數(shù) .4 4.6 觸發(fā)器 .4 4.7 字段 .5 4.8 索引 .5 5. 數(shù)據(jù)庫建設(shè)過程規(guī)范.5 5.1 概述 .5 5.2 需求分析階段.6 5.2.1 需求調(diào)查 .6 5.2.2 內(nèi)容分析 .6 5.3 概念結(jié)構(gòu)設(shè)計階段.

2、7 5.2.1 定義實體 .7 5.3.3 定義關(guān)系 .7 5.3.4 定義屬性 .7 5.3.5 定義鍵 .8 5.3.6 定義索引 .8 5.3.7 定義其他對象和規(guī)則.9 5.4 邏輯結(jié)構(gòu)設(shè)計階段.9 5.5 數(shù)據(jù)庫物理設(shè)計階段.10 5.6 實施、運行、維護規(guī)范.10 6. 數(shù)據(jù)庫建設(shè)安全性規(guī)范.11 6.1 概述 .11 6.2 完整性設(shè)計 .11 . . 6.3 物理安全 .13 6.4 訪問控制 .13 6.5 數(shù)據(jù)備份 .14 1. 前言前言 數(shù)據(jù)庫技術(shù)是信息資源管理最有效的手段。數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境, 構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),有效存儲數(shù)據(jù)

3、,滿足用戶信息要求和 處理要求。 本規(guī)范通過數(shù)據(jù)建庫的命名、結(jié)構(gòu)、建庫過程及安全性措施等幾個技術(shù)方面進行約定, 目的就是提供一套規(guī)范、合理、科學(xué)的建庫技術(shù)體系,應(yīng)用系統(tǒng)提供建庫技術(shù)參考。 2. 范圍范圍 本規(guī)范主要從關(guān)系數(shù)據(jù)庫的命名、關(guān)系和結(jié)構(gòu)以及建設(shè)過程等幾個方面來規(guī)定數(shù)據(jù)庫 設(shè)計應(yīng)遵循的規(guī)范。 3. 術(shù)語和定義術(shù)語和定義 3.1 范式范式 關(guān)系數(shù)據(jù)庫中的關(guān)系是要滿足一定要求的,滿足不同程度要求的為不同范式。滿足最 低要求的叫第一范式,簡稱 1NF。在第一范式中滿足進一步要求的為第二范式,其余以此 類推。一般而言,數(shù)據(jù)庫的設(shè)計應(yīng)至少滿足第三范式。 3.2 關(guān)聯(lián)關(guān)聯(lián) 關(guān)聯(lián)是不同表之間的數(shù)據(jù)彼此

4、聯(lián)系的方法。關(guān)聯(lián)同時存在于形成不同實體的數(shù)據(jù)項之 間和表實體本身之間,構(gòu)成了數(shù)據(jù)庫規(guī)范化的基本核心問題。它分為一對一、一對多、多 對多三種關(guān)聯(lián)形式。 3.3 關(guān)系模型關(guān)系模型 關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束三部分組成。在 . . 關(guān)系模型中,實體與實體間的聯(lián)系都是用關(guān)系來表示的。 3.4 視圖視圖 視圖是一個定制的虛擬表??梢允潜镜氐?、遠程的或帶參數(shù)的;其數(shù)據(jù)可以 來源于一個或多個表,或者其他視圖;它是可更新的,可以引用遠程表;它可以 更新數(shù)據(jù)源。視圖是基于數(shù)據(jù)庫的,因此,創(chuàng)建視圖的前必須有數(shù)據(jù)庫。 3.5 外鍵外鍵 外鍵是一個關(guān)系中的一組屬性(一個或多個列) ,它同時也

5、是某種(相同的 或其它的)關(guān)系中的主鍵。它是關(guān)系之間的邏輯鏈接。 3.6 約束約束 數(shù)據(jù)庫管理系統(tǒng)必須提供一種機制來檢查數(shù)據(jù)庫中的數(shù)據(jù),看其是否滿足語 義規(guī)定的條件,這些加在數(shù)據(jù)庫數(shù)據(jù)之上的語義規(guī)范,稱為約束。約束又可以分 為完整性約束、唯一性約束等。 3.7 主鍵主鍵 每張表都應(yīng)該包含相同的一個或一組字段,它們都是保存在表中的、每一條 記錄的唯一標識,通常這些字段(即主鍵)需要在建立數(shù)據(jù)表時就設(shè)定并標記。 4. 命名規(guī)范命名規(guī)范 4.1 規(guī)范約定規(guī)范約定 命名采用 26 個英文字母(一律大寫)和 09 這十個自然數(shù),加上下劃線“_” 組成,共 63 個字符,不能出現(xiàn)其他字符(注釋除外) 。

6、數(shù)據(jù)庫對象包括表、視圖、存儲過程、函數(shù)、觸發(fā)器、字段、數(shù)據(jù)庫文檔。 對象名字由前綴和實體名稱組成,長度不超過 30 個字符。前綴描述對象類型, 實體名稱包括系統(tǒng)標識等信息盡量詳盡描述實體的內(nèi)容,不以數(shù)字或下劃線開頭,對象名 稱中的標識用下劃線“_”進行分隔。其中“”內(nèi)的內(nèi)容表示是可選內(nèi)容。 . . 4.2 表名表名 T_ _ 如:T_NPCP_ORDER 4.3 視圖視圖 V_ _ _ 如:V_NPCP_ORDER 4.4 存儲過程存儲過程 P_ _ 如:P_NPCP_ORDER_ADD 4.5 函數(shù)函數(shù) F_ _ _ 如:F_NPCP_ORDER_ADD 4.6 觸發(fā)器觸發(fā)器 TR_ _ _

7、 如:TR_NPCP_ORDER_ADD 4.7 字段字段 _ _ 如:ORDER_ID 4.8 索引索引 IN_ _ 如:IN_NPCP_ORDER_NAME . . 5. 數(shù)據(jù)庫建設(shè)過程規(guī)范數(shù)據(jù)庫建設(shè)過程規(guī)范 5.1 概述概述 建庫過程建議參考以下的建庫流程如圖 1 所示。 需求分析階段綜合各科學(xué)數(shù)據(jù)用戶的應(yīng)用需求,形成規(guī)范的需求調(diào)查表、需求規(guī)格書、 功能需求表。 概念設(shè)計階段形成獨立于機器特點、獨立于各個數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品的概念模式,用 E-R 圖來描述。 邏輯設(shè)計階段將 E-R 圖轉(zhuǎn)換成具體的數(shù)據(jù)庫產(chǎn)品支持的數(shù)據(jù)模型如關(guān)系模型,形成數(shù) 據(jù)庫邏輯模式。然后根據(jù)用戶處理的要求,安全性的考慮

8、,在基本表的基礎(chǔ)上再建立必要 的視圖形成數(shù)據(jù)的外模式。 數(shù)據(jù)可以分為兩大類:關(guān)系數(shù)據(jù)和非關(guān)系數(shù)據(jù),在物理設(shè)計階段根據(jù)數(shù)據(jù)庫管理系統(tǒng) 的特點和處理的需要,進行物理存儲安排,設(shè)計索引,形成數(shù)據(jù)庫內(nèi)模式。 最后進行數(shù)據(jù)(或元數(shù)據(jù))錄入。建庫過程的每一步都是對其前一步 驟的檢驗,對于發(fā)現(xiàn)的錯誤或偏差需要進行及時的評估,并進行修正完善。對由 于數(shù)據(jù)庫的設(shè)計而在應(yīng)用當(dāng)中的造成的不良影響及出現(xiàn)數(shù)據(jù)誤差等現(xiàn)象進行修 繕、更新、完善。 圖 1 數(shù)據(jù)庫建設(shè)過程 . . 5.2 需求分析階段需求分析階段 需求分析階段可以分為兩個步驟:需求調(diào)查和內(nèi)容分析。數(shù)據(jù)大概分為兩類數(shù)據(jù): 關(guān)系型數(shù)據(jù)和非關(guān)系型數(shù)據(jù)(如文件,文檔

9、) 。在需求分析階段可以對這兩種數(shù)據(jù)進行 不同的處理和分析。 5.2.1 需求調(diào)查需求調(diào)查 數(shù)據(jù)信息來源有以下幾種方法,分析系統(tǒng)需求分析報告書,組織調(diào)查會,咨詢業(yè) 務(wù)專家。 非關(guān)系型數(shù)據(jù)要分析哪幾類類型,如文件的格式。 5.2.2 內(nèi)容分析內(nèi)容分析 需求收集和分析,結(jié)果得到數(shù)據(jù)字典描述的數(shù)據(jù)需求,數(shù)據(jù)流圖描述的處理需求。 表 1 數(shù)據(jù)字典規(guī)范模式 圖 2 數(shù)據(jù)流圖的表達方式 5.3 概念結(jié)構(gòu)設(shè)計階段概念結(jié)構(gòu)設(shè)計階段 這個階段的任務(wù)確定建模目標,開發(fā)建模計劃,組織建模隊伍,收集數(shù)據(jù)資源, 制定約束和規(guī)范。 數(shù)據(jù)項數(shù)據(jù)項含義數(shù)據(jù)類型長度取值范圍可選性注釋 . . 5.2.1 定義實體定義實體 找出

10、潛在的實體,形成初步實體表,然后再進行必要的調(diào)整。滿足下述兩條準則 的事物,一般均可作為屬性對待。 (1)作為“屬性” ,不能再具有需要描述的性質(zhì)。 “屬性”必須是不可分的數(shù)據(jù) 項,不能包含其他屬性。 (2) “屬性”不能與其他實體具有聯(lián)系,即 ER 圖中所表示的聯(lián)系是實體之問 的聯(lián)系。 5.3.3 定義關(guān)系定義關(guān)系 模型中只允許二元聯(lián)系,n 元聯(lián)系必須定義為 n 個二元聯(lián)系。根據(jù)實際的業(yè)務(wù)需求和 規(guī)則,使用實體聯(lián)系矩陣來標識實體間的二元關(guān)系,然后根據(jù)實際情況確定出連接關(guān)系的 勢、關(guān)系名和說明,確定關(guān)系類型,是標識關(guān)系、非標識關(guān)系(強制的或可選的)還是非 確定關(guān)系、分類關(guān)系。如果子實體的每個實

11、例都需要通過和父實體的關(guān)系來標識,則為標 識關(guān)系,否則為非標識關(guān)系。非標識關(guān)系中,如果每個子實體的實例都與而且只與一個父 實體關(guān)聯(lián),則為強制的,否則為非強制的。如果父實體與子實體代表的是同一現(xiàn)實對象, 那么它們?yōu)榉诸愱P(guān)系。即在這一步工作中確定任意有關(guān)聯(lián)的兩個實體之間的關(guān)系類型。 5.3.4 定義屬性定義屬性 從源數(shù)據(jù)表中抽取說明性的名詞開發(fā)出屬性表,確定屬性的所有者。定義非主鍵屬性, 檢查屬性的非空及非多值規(guī)則。此外,還要檢查完全依賴函數(shù)規(guī)則和非傳遞依賴規(guī)則,保 證一個非主鍵屬性必須依賴于主鍵、整個主鍵、僅僅是主鍵。 5.3.5 定義鍵定義鍵 通過引入交叉實體除去上一階段產(chǎn)生的非確定關(guān)系,然后

12、從非交叉實體和獨立實 體開始標識侯選鍵屬性,以便唯一識別每個實體的實例,再從侯選鍵中確定主鍵。為 了確定主鍵和關(guān)系的有效性,通過非空規(guī)則和非多值規(guī)則來保證,即一個實體實例的 一個屬性不能是空值,也不能在同一個時刻有一個以上的值。找出誤認的確定關(guān)系, 將實體進一步分解,最后構(gòu)造出 IDEF1X 模型的鍵基視圖,確定關(guān)系中的主鍵和外鍵 等。鍵選擇規(guī)范: 1)鍵設(shè)計原則:為關(guān)聯(lián)字段創(chuàng)建外鍵;所有的鍵都必須唯一;避免使用復(fù)合鍵;外鍵 總是關(guān)聯(lián)唯一的鍵字段。 2)使用系統(tǒng)生成的主鍵,設(shè)計數(shù)據(jù)庫的時候采用系統(tǒng)生成的鍵作為主鍵,那么實際 控制了數(shù)據(jù)庫的索引完整性。這樣,數(shù)據(jù)庫和非人工機制就有效地控制了對存儲

13、數(shù)據(jù) 中每一行的訪問。采用系統(tǒng)生成鍵作為主鍵還有一個優(yōu)點:當(dāng)擁有一致的鍵結(jié)構(gòu)時, 找到邏輯缺陷很容易。 3)不要采用用戶可編輯的字段作鍵(不讓主鍵具有可更新性)在確定采用什么字段作 為表的鍵的時候,可一定要小心用戶將要編輯的字段。通常的情況下不要選擇用戶可 . . 編輯的字段作為鍵。 4)可選鍵有時可做主鍵,把可選鍵進一步用做主鍵,可以擁有建立強大索引的能力。 5.3.6 定義索引定義索引 索引是從數(shù)據(jù)庫中獲取數(shù)據(jù)的最高效方式之一。95%的數(shù)據(jù)庫性能問題都可 以采用索引技術(shù)得到解決。 1)如果一個(或一組)屬性經(jīng)常在查詢條件中出現(xiàn),則考慮在這個(或這 組)屬性上建立索引(或組合索引) ; 2)

14、如果一個屬性經(jīng)常作為最大值和最小值等聚集函數(shù)的參數(shù),則考慮在這個 屬性上建立索引; 3)如果一個(或一組)屬性經(jīng)常在連接操作的連接條件中出現(xiàn),則考慮在這 個(或這組)屬性上建立索引; 4)邏輯主鍵使用唯一的成組索引,對系統(tǒng)鍵(作為存儲過程)采用唯一的 非成組索引,對任何外鍵列采用非成組索引。考慮數(shù)據(jù)庫的空間有多大,表如何 進行訪問,還有這些訪問是否主要用作讀寫。 5)大多數(shù)數(shù)據(jù)庫都索引自動創(chuàng)建的主鍵字段,但是可別忘了索引外鍵,它 們也是經(jīng)常使用的鍵,比如運行查詢顯示主表和所有關(guān)聯(lián)表的某條記錄就用得上。 6)不要索引 MEMO(備注)字段,不要索引大型字段(有很多字符) ,這樣作 會讓索引占用太

15、多的存儲空間。 7)不要索引常用的小型表。不要為小型數(shù)據(jù)表設(shè)置任何鍵,假如它們經(jīng)常 有插入和刪除操作就更別這樣作了。對這些插入和刪除操作的索引維護可能比掃 描表空間消耗更多的時間。 5.3.7 定義其他對象和規(guī)則定義其他對象和規(guī)則 定義屬性的數(shù)據(jù)類型、長度、精度、非空、缺省值、約束規(guī)則等。定義觸發(fā) 器、存儲過程、視圖、角色、同義詞、序列等對象信息。 最后形成的概念模型用 E-R 圖進行表示。 5.4 邏輯結(jié)構(gòu)設(shè)計階段邏輯結(jié)構(gòu)設(shè)計階段 將概念結(jié)構(gòu)轉(zhuǎn)換為某個數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型(例如關(guān)系模 型) ,并對其進行優(yōu)化。設(shè)計邏輯結(jié)構(gòu)應(yīng)該選擇最適于描述與表達相應(yīng)概念結(jié)構(gòu) . . 的數(shù)據(jù)模型,然后

16、選擇最合適的數(shù)據(jù)庫管理系統(tǒng),形成數(shù)據(jù)庫文檔。 將 E-R 圖轉(zhuǎn)換為關(guān)系模型實際上就是要將實體、實體的屬性和實體之間的 聯(lián)系轉(zhuǎn)化為關(guān)系模式。關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合。E-R 圖則 是由實體、實體的屬性和實體之間的聯(lián)系三個要素組成的。所以將 E-R 圖轉(zhuǎn)換 為關(guān)系模型實際上就是要將實體、實體的屬性和實體之間的聯(lián)系轉(zhuǎn)換為關(guān)系模 式,這種轉(zhuǎn)換要遵循如下規(guī)范原則: 1)一個實體型轉(zhuǎn)換為一個關(guān)系模式。實體的屬性就是關(guān)系的屬性。實體的 標識對應(yīng)關(guān)系模型的候選碼。 2)一個 m:n 聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。與該聯(lián)系相連的各實體的碼以及聯(lián) 系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性。而關(guān)系模型的候選碼為各實體

17、標識的組合。 3)一個 1:n 聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與 n 端對應(yīng)的關(guān) 系模式合并。如果轉(zhuǎn)換為一個獨立的關(guān)系模式,則與該聯(lián)系相連的各實體的標識 以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為 n 端實體的碼。 4)一個 1:1 聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與任意一端對應(yīng) 的關(guān)系模式合并。 5)三個或三個以上實體間的一個多元聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。與該多元 聯(lián)系相連的各實體的標識以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性。而關(guān)系模型 的候選碼為各實體碼的組合。 6)同一實體集的實體間的聯(lián)系,即自聯(lián)系,也可按上述 1:1、1:n 和 m:n 三 種情況分別處理。 7)

18、具有相同碼的關(guān)系模式可合并。為了進一步提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能,通常以規(guī) 范化理論為指導(dǎo),還應(yīng)該適當(dāng)?shù)匦薷?、調(diào)整數(shù)據(jù)模型的結(jié)構(gòu),這就是數(shù)據(jù)模型的優(yōu)化。確 定數(shù)據(jù)依賴。消除冗余的聯(lián)系。確定各關(guān)系模式分別屬于第幾范式。確定是否要對它們進 行合并或分解。一般來說將關(guān)系分解為 3NF 的標準,即:表內(nèi)的每一個值都只能被表達一 次。表內(nèi)的每一行都應(yīng)該被唯一的標識(有唯一鍵) 。表內(nèi)不應(yīng)該存儲依賴于其他鍵的非鍵 信息。 對所有的快捷方式、命名規(guī)范、限制和函數(shù)都要編制文檔。采用給表、列、觸發(fā)器等加注 釋的數(shù)據(jù)庫工具。對開發(fā)、支持和跟蹤修改非常有用。對數(shù)據(jù)庫文檔化,或者在數(shù)據(jù)庫自 身的內(nèi)部或者單獨建立文檔。

19、為加快數(shù)據(jù)庫設(shè)計速度,目前有很多數(shù)據(jù)庫輔助工具(CASE 工具) ,如 Rational 公司的 Rational Rose,CA 公司 Erwin 和 Bpwin,Sybase 公司的 owerDesigner 以及 Oracle 公司的 Oracle Designer 等。設(shè)計人員可根據(jù)需要選用相應(yīng)的數(shù)據(jù)庫設(shè)計建模工具。 . . 5.5 數(shù)據(jù)庫物理設(shè)計階段數(shù)據(jù)庫物理設(shè)計階段 數(shù)據(jù)庫物理設(shè)計過程中需要對時間效率、空間效率、維護代價和各種用戶要 求進行權(quán)衡,其結(jié)果可以產(chǎn)生多種方案,數(shù)據(jù)庫設(shè)計人員必須對這些方案進行細 致的評價,從中選擇一個較優(yōu)的方案作為數(shù)據(jù)庫的物理結(jié)構(gòu)。 評價物理數(shù)據(jù)庫的方法完

20、全依賴于所選用的數(shù)據(jù)庫管理系統(tǒng),主要是從定量 估算各種方案的存儲空間、存取時間和維護代價入手,對估算結(jié)果進行權(quán)衡、比 較,選擇出一個較優(yōu)的合理的物理結(jié)構(gòu)。如果該結(jié)構(gòu)不符合用戶需求,則需要修 改設(shè)計。 規(guī)范規(guī)定,物理設(shè)計當(dāng)中在遵循數(shù)據(jù)庫設(shè)計范式的基礎(chǔ)之上,規(guī)定科學(xué)數(shù)據(jù) 庫建庫時除數(shù)據(jù)庫設(shè)計所遵循的范式外的一些適用規(guī)范: 1)所有數(shù)據(jù)記錄都要有 ID 序列字段,ID 號由數(shù)據(jù)庫自動生成,以標識記錄。 2)所有記錄都要有“更新時間”字段,記錄標識數(shù)據(jù)更新情況。 3)對于主-明細表結(jié)構(gòu),設(shè)計對應(yīng)的視圖將兩表連接用于查詢。 4)可以取消主外鍵關(guān)聯(lián),通過對應(yīng)的程序來維護數(shù)據(jù)一致性。 5)類別和狀態(tài)的多選:

21、多選分為必選(1.n)和可選(0.n) 。如是必選,在設(shè) 計時要有說明,在程序?qū)崿F(xiàn)中應(yīng)有控制和檢查。兩個可選的類別或狀態(tài)表可以合并為 一個表,再與引用此表的主表形成多對多的關(guān)系。 5.6 實施、運行、維護規(guī)范實施、運行、維護規(guī)范 運用數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言(例如 SQL)及其宿主語言(例如 JAVA) ,根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果建科學(xué)數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序, 組織科學(xué)數(shù)據(jù)入庫,并進行試運行。規(guī)范規(guī)定:SQL 關(guān)鍵詞全部大寫,比如 SELECT,UPDATE,FROM,ORDER,BY 等。 數(shù)據(jù)庫實施主要包括以下工作:用 DDL 定義數(shù)據(jù)庫結(jié)構(gòu)、組織數(shù)據(jù)入庫、 編制與調(diào)試應(yīng)用程序

22、、數(shù)據(jù)庫試運行。建立或者修訂數(shù)據(jù)庫之后,必須用用戶新 輸入的數(shù)據(jù)測試數(shù)據(jù)字段。 所有的 sql 語句要最進性能分析,和壓力測試。并且需要提交測試報告。 數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)過試運行后即可投入正式運行。在數(shù)據(jù)庫系統(tǒng)運行過程中 必須不斷地對其進行評價、調(diào)整與修改,定期提交運行監(jiān)測報告。包括:數(shù)據(jù)庫 的轉(zhuǎn)儲和恢復(fù)、數(shù)據(jù)庫的安全性、完整性控制、數(shù)據(jù)庫性能的監(jiān)督、分析和改進、 數(shù)據(jù)庫的重組織和重構(gòu)造。 . . 6. 數(shù)據(jù)庫建設(shè)安全性規(guī)范數(shù)據(jù)庫建設(shè)安全性規(guī)范 6.1 概述概述 隨著數(shù)據(jù)庫技術(shù)的不斷進步,信息安全問題也日益突出,數(shù)據(jù)庫的安全性也更加受到 重視。建設(shè)科學(xué)數(shù)據(jù)庫中,很多科學(xué)數(shù)據(jù)都是不可再現(xiàn)的,甚至是

23、長期積累獲得的成果, 失不可得,因此科學(xué)數(shù)據(jù)的安全性顯得尤為重要。 安全策略主要是維護科學(xué)數(shù)據(jù)信息的完整性、保密性和可用性??茖W(xué)數(shù)據(jù)庫的安全建 設(shè)規(guī)范主要是物理安全、訪問控制、數(shù)據(jù)備份等。同其它數(shù)據(jù)資源相同,科學(xué)數(shù)據(jù)庫數(shù)據(jù) 的安全威脅主要來自三個方面:非人為破壞,比如地震等;人為的非主動破壞,比如誤操 作;人為主動破壞,比如黑客入侵。對于非人為破壞,主要只能依靠定期備份或者熱備份 等,并在相隔物理距離外保護備份。本規(guī)范主要討論對于人為破壞的安全性規(guī)范。 6.2 完整性設(shè)計完整性設(shè)計 1)完整性實現(xiàn)機制: 實體完整性:每個數(shù)據(jù)實體都要有主鍵,即每條數(shù)據(jù)記錄都要有唯一標識以 區(qū)分不同記錄。 父表中

24、插入數(shù)據(jù):父表中插入數(shù)據(jù),要看有哪些受限條件,以及注意插入父 表數(shù)據(jù)時還有沒有其他的輔助數(shù)據(jù)輸入。如添加化學(xué)品數(shù)據(jù)基本信息時,要注意 其成分信息的添加和關(guān)聯(lián)。 父表中更新數(shù)據(jù):同樣需要注意級聯(lián)更新和受限條件的更新。 用戶定義完整性:數(shù)據(jù)字段的可選性(是否非空)以及數(shù)據(jù)檢查等。 2)用約束強制數(shù)據(jù)完整性 完整性約束條件作用的對象可以是關(guān)系、元組、列三種。其中列約束主要是 列的類型、取值范圍、精度、排序等約束條件。元組的約束是元組中各個字段間 的聯(lián)系的約束。關(guān)系的約束是若干元組間、關(guān)系集合上以及關(guān)系之間的聯(lián)系的約 束。完整性約束條件涉及的這三類對象,其狀態(tài)可以是靜態(tài)的,也可以是動態(tài)的。 (1)靜態(tài)

25、列級約束 靜態(tài)列級約束是對一個列的取值域的說明,這是最常用也最容易實現(xiàn)的一類 . . 完整性約束,包括以下幾方面: 對數(shù)據(jù)類型的約束(包括數(shù)據(jù)的類型、長度、單位、精度等) 。 對數(shù)據(jù)格式的約束。 對取值范圍或取值集合的約束。 對空值的約束,空值表示未定義或未知的值,它與零值和空格不同。有的列允許空值, 有的則不允許。 其他約束,例如關(guān)于列的排序說明,組合列等。 (2)靜態(tài)元組約束 一個元組是由若干個列值組成的,靜態(tài)元組約束就是規(guī)定元組的各個列之間 的約束關(guān)系。例如訂貨關(guān)系中包含發(fā)貨量、訂貨量等列,規(guī)定發(fā)貨量不得超過訂 貨量;又如教師關(guān)系中包含職稱、工資等列,規(guī)定教授的工資不低于 1000 元

26、(3)靜態(tài)關(guān)系約束 在一個關(guān)系的各個元組之間或者若干關(guān)系之間常常存在各種聯(lián)系或約束。常 見的靜態(tài)關(guān)系約束有: 實體完整性約束和參照完整性約束:實體完整性約束和參照完整性約束是關(guān)系模型的 兩個極其重要的約束,稱為關(guān)系的兩個不變性。 函數(shù)依賴約束。大部分函數(shù)依賴約束都在關(guān)系模式中定義。 統(tǒng)計約束。即字段值與關(guān)系中多個元組的統(tǒng)計值之間的約束關(guān)系。例如規(guī)定部門經(jīng)理 的工資不得高于本部門職工平均工資的 5 倍,不得低于本部門職工平均工資的 2 倍。這里, 本部門職工的平均工資是一個統(tǒng)計值。 (4)動態(tài)列級約束 動態(tài)列級約束是修改列定義或列值時應(yīng)滿足的約束條件;包括下面兩方面: 修改列定義時的約束,例如,

27、將允許空值的列改為不允許空值時,如果該列目前已存 在空值,則拒絕這種修改。 修改列值時的約束,修改列值有時需要參照其舊值,并且新舊值之間需要滿足某種約束 條件。例如,職工工資調(diào)整不得低于其原來工資,學(xué)生年齡只能增長等。 (5)動態(tài)元組約束 動態(tài)元組約束是指修改元組的值時元組中各個字段間需要滿足某種約束條件。例如職 工工資調(diào)整時新工資不得低于原工資工齡*1.5 等。 (6)動態(tài)關(guān)系約束 動態(tài)關(guān)系約束是加在關(guān)系變化前后狀態(tài)上的限制條件,例如事務(wù)一致性、原 子性等約束條件。 3)強制指示完整性 在有害數(shù)據(jù)進入數(shù)據(jù)庫之前將其剔除。激活數(shù)據(jù)庫系統(tǒng)的指示完整性特性。這樣可以 . . 保持數(shù)據(jù)的清潔而能迫使

28、開發(fā)人員投入更多的時間處理錯誤條件。 4)使用查找控制數(shù)據(jù)完整性 控制數(shù)據(jù)完整性的最佳方式就是限制用戶的選擇。只要有可能都應(yīng)該提供給用戶一個清晰 的價值列表供其選擇。這樣將減少鍵入代碼的錯誤和誤解同時提供數(shù)據(jù)的一致性。某些公 共數(shù)據(jù)特別適合查找:國家代碼、狀態(tài)代碼等。 5)采用視圖 在數(shù)據(jù)庫和應(yīng)用程序代碼之間提供另一層抽象,可以為應(yīng)用程序建立專門的 視圖而不必非要應(yīng)用程序直接訪問數(shù)據(jù)表。這樣做會在處理數(shù)據(jù)庫變更時提供了 更多的自由。 6.3 物理安全物理安全 保證物理安全是安全防范的基本。這主要是指保證數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫所 在環(huán)境、相關(guān)網(wǎng)絡(luò)的物理安全性。比如:是否能夠保證服務(wù)器所在網(wǎng)絡(luò)的網(wǎng)線

29、、 交換機性能環(huán)境的物理安全;是否只有數(shù)據(jù)庫管理員能夠在物理上接觸數(shù)據(jù)庫服 務(wù)器;是否能夠確保避免通過社會工程學(xué)的手段來欺騙或者誘導(dǎo)從而能獲得物理 上的訪問能力等等。 6.4 訪問控制訪問控制 訪問控制是基本安全性的核心。數(shù)據(jù)庫系統(tǒng)的訪問控制也包括了帳號管 理、密碼策略、權(quán)限控制、用戶認證等方面,主要是從與帳號相關(guān)的方面來維護 數(shù)據(jù)庫的安全性。 訪問控制策略主要包括: 避免帳號被人列舉。比如,非管理員獲得所有數(shù)據(jù)庫用戶帳號列表。 最小化權(quán)限原則。數(shù)據(jù)庫管理員僅僅分配帳號的足夠使用權(quán)限。比如,如果一個用戶 只需要進行數(shù)據(jù)庫的查詢工作,那么這個用戶使用的權(quán)限就只能局限于 SELECT 語句,而 不能有 DELETE、UPDATE 等語句的使

溫馨提示

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

評論

0/150

提交評論