數(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頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、I目錄目錄1. 范圍范圍 .12. 總體要求總體要求 .12.1 數(shù)據(jù)庫設(shè)計(jì)總體要求.12.2 數(shù)據(jù)庫對(duì)象命名的總體要求.12.3 數(shù)據(jù)庫程序編碼的總體要求.23. 數(shù)據(jù)庫設(shè)計(jì)規(guī)范數(shù)據(jù)庫設(shè)計(jì)規(guī)范 .23.1 數(shù)據(jù)庫設(shè)計(jì)要求.23.2 數(shù)據(jù)庫概念邏輯設(shè)計(jì).23.2.1 需求調(diào)研.23.2.2 概念設(shè)計(jì).33.2.3 局部設(shè)計(jì).33.2.4 整體設(shè)汁.33.2.5 邏輯設(shè)計(jì).33.3 數(shù)據(jù)庫物理設(shè)計(jì).34. ORACLE 數(shù)據(jù)庫命名規(guī)則數(shù)據(jù)庫命名規(guī)則 .44.1 ORACLE數(shù)據(jù)庫對(duì)象命名規(guī)則.44.1.1 數(shù)據(jù)庫名(Databases) .54.1.2 實(shí)例名(Instances).54.1.3

2、 表空間 (Tablespaces).54.1.4 數(shù)據(jù)文件(Data files).54.1.5 日志文件(Redo log files).54.1.6 參數(shù)文件(Parameter files和Stored Parameter files).64.1.7 控制文件(Control files).64.1.8 回滾段(Rollback segments).64.1.9 表(Tables).64.1.10 字段(Fields).64.1.11 索引(Indexes).74.1.12 約束(Constraints).74.1.13 視圖(Views).74.1.14 同義詞(Synonyms).

3、74.1.15 序列號(hào)(Sequences).84.1.16 存儲(chǔ)過程(Stored Procedures).84.1.17 函數(shù)(Functions).84.1.18 程序包(Packages)和程序包體(Packages Bodies).84.1.19 觸發(fā)器(Triggers).84.1.20 角色(Roles).84.1.21 用戶(Users).84.2 SQL、PL/SQL 源代碼編寫約定.8II4.2.1 變量命名規(guī)則.84.2.2 代碼排版規(guī)則.94.2.3 代碼注釋規(guī)則.94.2.4 其他要求.105. 數(shù)據(jù)字典文檔編寫格式數(shù)據(jù)字典文檔編寫格式 .105.1 數(shù)據(jù)庫表匯總表格

4、式.105.2 數(shù)據(jù)庫表詳述表格式.105.3 編碼數(shù)據(jù)表格式.1111. 范圍范圍本規(guī)范規(guī)定了南京市交通局?jǐn)?shù)據(jù)庫建設(shè)的規(guī)則,是檢驗(yàn)評(píng)定軟件開發(fā)者為南京市交通局開發(fā)的應(yīng)用系統(tǒng)質(zhì)量的標(biāo)準(zhǔn)尺度。本規(guī)范適用于各軟件開發(fā)者和有關(guān)單位為南京市交通局開發(fā)的應(yīng)用系統(tǒng)所使用的數(shù)據(jù)庫,數(shù)據(jù)庫的設(shè)計(jì)、數(shù)據(jù)庫內(nèi)的對(duì)象命名、數(shù)據(jù)字典文檔的編寫必須遵守本規(guī)范。2. 總體要求總體要求數(shù)據(jù)庫建設(shè)規(guī)范主要包括數(shù)據(jù)庫設(shè)計(jì)規(guī)范、數(shù)據(jù)庫對(duì)象命名規(guī)則和數(shù)據(jù)庫程序編碼規(guī)則、數(shù)據(jù)字典文檔編寫格式等內(nèi)容。2.1 數(shù)據(jù)庫設(shè)計(jì)總體要求數(shù)據(jù)庫設(shè)計(jì)總體要求 數(shù)據(jù)庫是交通信息化建設(shè)的重要基礎(chǔ)。數(shù)據(jù)庫設(shè)計(jì)通常是作為應(yīng)用系統(tǒng)開發(fā)的一部分進(jìn)行的,但在應(yīng)用

5、系統(tǒng)開發(fā)中數(shù)據(jù)庫設(shè)計(jì)具有特殊的重要性和相對(duì)獨(dú)立性,因此在本規(guī)范中專門進(jìn)行規(guī)定。關(guān)于交通局應(yīng)用系統(tǒng)的開發(fā)要求,請(qǐng)參見南京市交通局信息化軟件開發(fā)實(shí)施指南 。 開發(fā)者在系統(tǒng)設(shè)計(jì)階段,應(yīng)采用合理的設(shè)計(jì)方法進(jìn)行數(shù)據(jù)庫設(shè)計(jì),建立數(shù)據(jù)庫的邏輯模型和物理模型,最終設(shè)計(jì)出高性能、易擴(kuò)展、易維護(hù)、少冗余、高安全性、高可靠性、一致性和完整性好的數(shù)據(jù)庫。 在數(shù)據(jù)庫設(shè)計(jì)完成后,開發(fā)者應(yīng)向交通局提交數(shù)據(jù)庫設(shè)計(jì)報(bào)告 。在軟件鑒定驗(yàn)收時(shí),開發(fā)者應(yīng)向交通局提交完整的數(shù)據(jù)庫設(shè)計(jì)報(bào)告 、 數(shù)據(jù)字典和在開發(fā)過程中發(fā)生的變更記錄。2.2 數(shù)據(jù)庫對(duì)象命名的總體要求數(shù)據(jù)庫對(duì)象命名的總體要求 數(shù)據(jù)庫對(duì)象如表、存儲(chǔ)過程等的名稱一般根據(jù)對(duì)象的類

6、別、所在的系統(tǒng)代號(hào)和自定義代號(hào)來確定,但對(duì)各類對(duì)象的命名有其特定要求,具體的各種對(duì)象的命名要求請(qǐng)見本規(guī)范第四部分。 自定義代號(hào)根據(jù)中文名稱來確定,采用中文名稱首字的全拼,后接其它字的中文拼音首字母,如果有兩個(gè)對(duì)象根據(jù)此方法命名出現(xiàn)重復(fù)則對(duì)兩個(gè)對(duì)象都用中文拼音的完整拼音來表示。 數(shù)據(jù)庫對(duì)象不得使用數(shù)據(jù)庫的關(guān)鍵字作為名字。 在本規(guī)則的第四部分對(duì) Oracle 數(shù)據(jù)庫的對(duì)象命名要求和程序編碼要求做了具體規(guī)定,如果需要使用具它數(shù)據(jù)庫如 SQL Server 等,其命名規(guī)則參照 Oracle 數(shù)據(jù)庫的命名規(guī)則來進(jìn)行。本部分的要求具有強(qiáng)制性,開發(fā)者應(yīng)嚴(yán)格遵守此要求。22.3 數(shù)據(jù)庫程序編碼的總體要求數(shù)據(jù)庫

7、程序編碼的總體要求 通過對(duì)數(shù)據(jù)庫程序編碼制定規(guī)則,來提高程序的可讀性。這其中主要包括變量命名規(guī)則、代碼排版規(guī)則、代碼注釋規(guī)則等。 本部分相對(duì)要求較寬,但開發(fā)者應(yīng)參照這部分的要求制定自己的編碼規(guī)范,并嚴(yán)格遵守。本部分的代碼注釋規(guī)則是對(duì)開發(fā)者編寫注釋的基本要求,開發(fā)者自己可以提出對(duì)代碼注釋的更高要求,但不得低于本規(guī)則的要求。3. 數(shù)據(jù)庫設(shè)計(jì)規(guī)范數(shù)據(jù)庫設(shè)計(jì)規(guī)范3.1 數(shù)據(jù)庫設(shè)計(jì)要求數(shù)據(jù)庫設(shè)計(jì)要求為了保證數(shù)據(jù)庫設(shè)計(jì)的質(zhì)量,提高數(shù)據(jù)庫的完整性、一致型、安全性、易擴(kuò)展性、性能、減少數(shù)據(jù)的冗余,開發(fā)者應(yīng)在需求分析階段對(duì)已有業(yè)務(wù)系統(tǒng)、本期開發(fā)的業(yè)務(wù)系統(tǒng)和以后開發(fā)的業(yè)務(wù)系統(tǒng)的數(shù)據(jù)作全面的調(diào)研,在此基礎(chǔ)上采用合理

8、的設(shè)計(jì)方法,分析業(yè)務(wù)系統(tǒng)所涉及的數(shù)據(jù)及數(shù)據(jù)之間的內(nèi)在關(guān)系,利用如 Rational Rose、Together、ER-Win 等軟件作為數(shù)據(jù)庫輔助設(shè)計(jì)工具,進(jìn)行反映數(shù)據(jù)庫中對(duì)象聯(lián)系和依賴的概念邏輯設(shè)計(jì)和物理設(shè)計(jì)。在進(jìn)行數(shù)據(jù)庫設(shè)計(jì)時(shí),除了本規(guī)范以外,還應(yīng)遵守南京市交通局信息化軟件開發(fā)實(shí)施指南的要求。 在數(shù)據(jù)庫邏輯設(shè)計(jì)完成后,開發(fā)者應(yīng)向交通局提交數(shù)據(jù)庫設(shè)計(jì)報(bào)告 ,在數(shù)據(jù)庫設(shè)計(jì)報(bào)告中必須包括完整的實(shí)體關(guān)系圖(E-R 圖),在得到交通局的評(píng)審認(rèn)可后方可進(jìn)行數(shù)據(jù)庫的物理設(shè)計(jì)。 在軟件鑒定驗(yàn)收時(shí),開發(fā)者應(yīng)向交通局提交最終完稿的數(shù)據(jù)庫設(shè)計(jì)報(bào)告及其變更記錄,同時(shí)提交所交付軟件完整的數(shù)據(jù)字典 。3.2 數(shù)據(jù)庫概

9、念邏輯設(shè)計(jì)數(shù)據(jù)庫概念邏輯設(shè)計(jì) 整個(gè)概念邏輯設(shè)計(jì)包括需求調(diào)研、概念設(shè)計(jì)和邏輯設(shè)計(jì)三個(gè)部分,需要與業(yè)務(wù)系統(tǒng)的調(diào)研、分析、設(shè)計(jì)和開發(fā)結(jié)合起來進(jìn)行。3.2.1 需求調(diào)研 在應(yīng)用系統(tǒng)開發(fā)的需求調(diào)研階段,應(yīng)對(duì)本期開發(fā)的業(yè)務(wù)系統(tǒng)的功能數(shù)據(jù)和以后開發(fā)的業(yè)務(wù)系統(tǒng)的數(shù)據(jù)進(jìn)行調(diào)研。對(duì)于本期要求開發(fā)實(shí)現(xiàn)的應(yīng)用系統(tǒng),應(yīng)調(diào)研系統(tǒng)功能和所要處理的數(shù)據(jù),同時(shí)要對(duì)交通局所有已有相關(guān)應(yīng)用系統(tǒng)進(jìn)行調(diào)研,分析這些系統(tǒng)是否已有新系統(tǒng)所需要的數(shù)據(jù),該數(shù)據(jù)能否滿足新系統(tǒng)的所有需求,以決定是否可以直接訪問已有應(yīng)用系統(tǒng)的數(shù)據(jù)庫中的數(shù)據(jù),或采用復(fù)制等方法定期將已有系統(tǒng)的數(shù)據(jù)復(fù)制到本期開發(fā)的應(yīng)用系統(tǒng)后臺(tái)數(shù)據(jù)庫,或直接用新系統(tǒng)來維護(hù)這些數(shù)據(jù)。33.

10、2.2 概念設(shè)計(jì) 概念設(shè)計(jì)應(yīng)采用 E-R 模型進(jìn)行,針對(duì)各個(gè)業(yè)務(wù)系統(tǒng)進(jìn)行局部數(shù)據(jù)視圖設(shè)計(jì),然后進(jìn)行局部數(shù)據(jù)視圖集成,進(jìn)行整體數(shù)據(jù)視圖的設(shè)計(jì)。在整體設(shè)計(jì)中找到最大的共享數(shù)據(jù)集,同時(shí)對(duì)這些共享數(shù)據(jù)進(jìn)行語義上的描述(數(shù)據(jù)產(chǎn)生的業(yè)務(wù)系統(tǒng)、數(shù)據(jù)使用的業(yè)務(wù)系統(tǒng)等)。面向信息服務(wù)的數(shù)據(jù)建模采用 E-R 模型描述,但所有的數(shù)據(jù)模式按照中心主題建立。E-R 圖設(shè)計(jì)、畫法不是唯一的,但在繪 E-R 圖時(shí)應(yīng)注意:結(jié)構(gòu)要清晰、關(guān)聯(lián)要簡潔、實(shí)體個(gè)數(shù)要適中、屬性分配要合理、沒有低級(jí)冗余。3.2.3 局部設(shè)計(jì)根據(jù)各個(gè)業(yè)務(wù)系統(tǒng)的需求調(diào)研,設(shè)計(jì)出業(yè)務(wù)系統(tǒng)中的所有實(shí)體和關(guān)系,形成個(gè)局部的業(yè)務(wù)數(shù)據(jù)視圖。3.2.4 整體設(shè)汁將交通局

11、的各個(gè)業(yè)務(wù)系統(tǒng)對(duì)應(yīng)的局部業(yè)務(wù)視圖進(jìn)行兩兩集成,刪除冗余的實(shí)體和關(guān)系,記錄業(yè)務(wù)系統(tǒng)的共享數(shù)據(jù)模式,最終實(shí)現(xiàn)一個(gè)沒有冗余、一致的全局視圖模式。標(biāo)記所有共享數(shù)據(jù)模式的相關(guān)業(yè)務(wù)系統(tǒng),以及數(shù)據(jù)的來源和數(shù)據(jù)的使用狀況。3.2.5 邏輯設(shè)計(jì)根據(jù)得到的全局概念模式進(jìn)行關(guān)系邏輯設(shè)計(jì),并作規(guī)范化分解,建立一系列的規(guī)范化分解,對(duì)于概念模式中的數(shù)據(jù)集進(jìn)行數(shù)據(jù)表的設(shè)計(jì)。所有的公共共享數(shù)據(jù)集,業(yè)務(wù)數(shù)據(jù)要保證數(shù)據(jù)源唯一。同時(shí)對(duì)本期開發(fā)的業(yè)務(wù)系統(tǒng)中不能維護(hù)但需要使用的共享數(shù)據(jù)集,建立與老業(yè)務(wù)系統(tǒng)之間數(shù)據(jù)抽取的映射關(guān)系。面向信息服務(wù)的數(shù)據(jù)模式根據(jù)概念模式的來源和用途分別建立數(shù)據(jù)表或者跨數(shù)據(jù)庫視圖。能從業(yè)務(wù)數(shù)據(jù)平臺(tái)中直接獲取的數(shù)

12、據(jù)應(yīng)設(shè)計(jì)跨數(shù)據(jù)庫視圖,需要從業(yè)務(wù)數(shù)據(jù)平臺(tái)層捕獲的歷史數(shù)據(jù)應(yīng)設(shè)計(jì)成數(shù)據(jù)表。在邏輯設(shè)計(jì)階段,應(yīng)考慮:為提高程序的執(zhí)行效率適當(dāng)進(jìn)行逆規(guī)范化,減少連接運(yùn)算合理的屬性類型及長度創(chuàng)建視圖 可以建立面向用戶的外模式,提供一定的邏輯數(shù)據(jù)獨(dú)立性。3.3 數(shù)據(jù)庫物理設(shè)計(jì)數(shù)據(jù)庫物理設(shè)計(jì)將設(shè)計(jì)好的關(guān)系邏輯模式按照數(shù)據(jù)產(chǎn)生的來源建立不同的業(yè)務(wù)數(shù)據(jù)集(庫),然后建立一個(gè)公共共享數(shù)據(jù)集(庫),在這個(gè)數(shù)據(jù)庫中建立共享視圖,同時(shí)為各個(gè)數(shù)據(jù)集(庫)進(jìn)行用戶設(shè)置和權(quán)限分配。物理數(shù)據(jù)庫的分布也存在多種模式:所有的物理數(shù)據(jù)庫存在于一臺(tái)數(shù)據(jù)庫服務(wù)器上,而且都由一個(gè) DBMS 實(shí)例管理;4所有的物理數(shù)據(jù)庫存在于一臺(tái)數(shù)據(jù)庫服務(wù)器上,由多個(gè)

13、DBMS 實(shí)例進(jìn)行管理;所有的物理數(shù)據(jù)庫分布在不同的數(shù)據(jù)庫服務(wù)器上,但所有的 DBMS 采用一種類型;因選擇的數(shù)據(jù)庫不同,在具體的物理設(shè)計(jì)上也會(huì)有所不同,但要保證數(shù)據(jù)庫的設(shè)計(jì)和管理符合規(guī)范,并保證制定的規(guī)范是可行的、可擴(kuò)的,同時(shí)必須符合本規(guī)范的要求。在物理設(shè)計(jì)階段,應(yīng)根據(jù)數(shù)據(jù)的訪問需求、頻度、性能要求等設(shè)計(jì)索引和簇集,包括單屬性索引、多屬性索引、簇集索引等。4. Oracle 數(shù)據(jù)庫命名規(guī)則數(shù)據(jù)庫命名規(guī)則4.1 Oracle 數(shù)據(jù)庫對(duì)象命名規(guī)則數(shù)據(jù)庫對(duì)象命名規(guī)則為避免混亂,不得使用 Oracle 的關(guān)鍵字作為數(shù)據(jù)庫對(duì)象的名字,Oracle 數(shù)據(jù)庫的關(guān)鍵字參見下表。除非在定義對(duì)象名稱時(shí)在該對(duì)象前

14、后加雙引號(hào),Oracle 各類對(duì)象都以大寫的形式保存, 且在使用時(shí)不區(qū)分大小寫。表 4-1 Oracle 數(shù)據(jù)庫關(guān)鍵字表ACCESSAUDITCOMPRESSDESCADOBETWEENCONNECTDISTINCTALLBYCREATEDROPALTERCHARCURRENTELSEANDCHECKDATEEXLUSIVEANYCLUSTERDECIMALEXISTSASCOLUMNDEFAULTFILEASCCOMMENTDELETEFLOATFORLONGFCTFREESUCCESSFULFROMMAXEXTENTSPRIORSYNONYMGRANTMUNUSPRIVILEGESSYSD

15、ATEGROUPMODEPUBLICTABLEHAVINGMODIFYRAWTHENIDENTIFIEDNETWORKRENANETOIMMEDIATENOAUDITRESOURCETRIGGERINNOCOMPRESSREVOKEUIDINCREMENTNOTROWUNIONINDEXNOWALTROWIDUNIQUEINITIALNULLROWNUMUPDATEINSERTNUMBERROWSUSERINTEGEROFSELECTVALIDATEINTERSECTOFFLINESESSIONVALUESINTOONSETVARCHARISONLINESHAREVARCHAR2LEVELOP

16、TIONSIZEVIEWLIKEORSMALLINTWHENEVER5LOCKORDERSTARTWHEREWITH各類 Oracle 數(shù)據(jù)庫對(duì)象的具體命名應(yīng)遵守下面的規(guī)則。4.1.1 數(shù)據(jù)庫名(Databases) 數(shù)據(jù)庫名稱由數(shù)據(jù)庫系統(tǒng)的首字母拼音縮寫加數(shù)據(jù)庫編號(hào)組成,在只有一個(gè)數(shù)據(jù)庫的情況下可不加數(shù)據(jù)庫編號(hào)。數(shù)據(jù)庫編號(hào)從 1 開始,并以增量 1 遞增。4.1.2 實(shí)例名(Instances)如果一個(gè)數(shù)據(jù)庫只有一個(gè)實(shí)例,則此實(shí)例與數(shù)據(jù)庫名稱相同,如使用 Oracle 和 Parallel Server 或 Oracle Real Application Clusters 產(chǎn)品,一個(gè)數(shù)據(jù)庫可

17、能有多個(gè)實(shí)例,則采用數(shù)據(jù)庫名加下劃線加實(shí)例首字母拼音來命名。在數(shù)據(jù)庫建設(shè)過程中,各單位應(yīng)認(rèn)真填寫數(shù)據(jù)庫、數(shù)據(jù)庫實(shí)例名及對(duì)應(yīng)用途關(guān)系表,并交數(shù)據(jù)庫管理員妥善保存,此表格如此下。表 4-2 數(shù)據(jù)庫實(shí)例表地點(diǎn)數(shù)據(jù)庫數(shù)據(jù)庫實(shí)例名用途備注實(shí)例 1數(shù)據(jù)庫 1實(shí)例 2實(shí)例 1單位名數(shù)據(jù)庫 2實(shí)例 24.1.3 表空間 (Tablespaces) 表空間分為兩種,用來存儲(chǔ)系統(tǒng)生成的臨時(shí)數(shù)據(jù)的臨時(shí)表空間(Temporary Tablespaces)和儲(chǔ)存用戶數(shù)據(jù)的永久表空間(Permanent Tablespace)。臨時(shí)表空間命名為 TEMP_#,#表示編號(hào)(下同) ,如一個(gè)數(shù)據(jù)庫只有一個(gè)臨時(shí)表空間,則直接用

18、 TEMP 命名即可。永久表空間命名分為三段:TBS_SSSS_ZZZZ;TBS 表示這是一個(gè)表空間,SSSS 為系統(tǒng)代號(hào),ZZZZ 為表空間類型,可以為 DATA 和 IDX,DATA 表示該表空間用來存儲(chǔ)表對(duì)象,IDX 表示該表空間用來存儲(chǔ)索引對(duì)象。系統(tǒng)代號(hào)應(yīng)能反映該表空間中存儲(chǔ)對(duì)象在系統(tǒng)中的總體功能,用功能名的首字母拼音表示。應(yīng)用系統(tǒng)中的表和索引應(yīng)該分別儲(chǔ)存在兩個(gè)表空間中,以達(dá)到提高性能的目的。4.1.4 數(shù)據(jù)文件(Data files)數(shù)據(jù)庫文件的命名根據(jù)該文件所屬表空間的名字進(jìn)行,通過在表空間的名字后加下劃線加編號(hào)實(shí)現(xiàn),如_#.dbf 所示,數(shù)據(jù)庫文件的名字用.dbf 作為后綴。64

19、.1.5 日志文件(Redo log files)采用_REDO_#.log 來命名數(shù)據(jù)庫的日志文件。4.1.6 參數(shù)文件(Parameter files 和 Stored Parameter files)一個(gè)數(shù)據(jù)庫對(duì)應(yīng)一個(gè)參數(shù)文件,其命名用 init_.ora 表示。Oracle 9i 推出了存儲(chǔ)參數(shù)文件的功能,如使用,其命名用 sp_.ora 表示。4.1.7 控制文件(Control files)采用_CRTL_#.ctl 來命名數(shù)據(jù)庫的控制文件;為數(shù)據(jù)庫名稱,#為控制文件序號(hào),控制文件以.ctl 作為后綴。4.1.8 回滾段(Rollback segments)回滾段用 RBS_#表示

20、,如一個(gè)數(shù)據(jù)庫的回滾段為 RBS_01,RBS_02,在 Oracle 9i 版本數(shù)據(jù)庫中推出了 Automatic Undo Management 功能,來實(shí)現(xiàn)對(duì)回滾信息的自動(dòng)管理,此功能具有簡化管理、提高效率的優(yōu)點(diǎn),因此如果使 Oracle 9i 以上版本數(shù)據(jù)庫,則應(yīng)使用此功能。4.1.9 表(Tables)表名為三段:Z_SSSS_XXXX,Z 為性質(zhì)代號(hào),SSSS 為系統(tǒng)代號(hào)(下同) 。XXXX 為自定義代號(hào)(下同) ,表的所有字母統(tǒng)一用大寫表示。(1) 、性質(zhì)代號(hào)包括 B、C、T、A,其含義如下:B 指原始數(shù)據(jù)表C 編碼數(shù)據(jù)表T 工具數(shù)據(jù)表A 統(tǒng)計(jì)數(shù)據(jù)表、臨時(shí)數(shù)據(jù)表或中間數(shù)據(jù)表(2)

21、 、系統(tǒng)代號(hào)應(yīng)能反映該表所在系統(tǒng)的功能。開發(fā)者應(yīng)該在系統(tǒng)設(shè)計(jì)階段根據(jù)軟件功能模塊的劃分來確定系統(tǒng)代號(hào),系統(tǒng)代號(hào)用能表達(dá)模塊功能的關(guān)鍵詞的首字母來表示,應(yīng)控制在 2 到 4 個(gè)字母之內(nèi),為便于理解和記憶,一個(gè)系統(tǒng)不宜有過多的系統(tǒng)代號(hào)。(3) 、自定義代號(hào)根據(jù)中文名稱來確定,采用中文名稱首字的全拼,后接其他字的中文拼音首字母,如果有兩個(gè)表根據(jù)此方法命名出現(xiàn)重復(fù)則對(duì)兩個(gè)表都用中文拼音的完整拼音來表示:自定義代號(hào)的長度應(yīng)保持在 12 位以內(nèi)。4.1.10 字段(Fields)字段名稱字段名分為三段:F_ZZ_XXXX; F 表示這是一個(gè)字段,ZZ 表示字段的數(shù)據(jù)類7型代號(hào),數(shù)據(jù)類型對(duì)應(yīng)的數(shù)據(jù)類型代號(hào)如

22、下表:表 4-3 數(shù)據(jù)類型代號(hào)表代號(hào)數(shù)據(jù)類型CRCHAR,NCHARDTDATELGLONGRARAWLRLONG RAWNBNUMBERVCVARCHAR2,NVARCHAR2FLFLOATLBBLOG,CLOG,NCLOGBFBFILE另外,主表中的主鍵字段和附表中的外部鍵字段的類型和名稱要完全相同。對(duì)于日期類型的數(shù)據(jù),如果只保存日期數(shù)據(jù),采用 yyyy/mm/dd 的格式,如果只保存時(shí)間數(shù)據(jù),采用 hh24:mi:ss 的格式,如果同時(shí)保存日期和時(shí)間格式,采用 yyyy/mm/dd hh24:mi:ss 的格式。4.1.11 索引(Indexes)表主鍵(Primary Key)對(duì)應(yīng)的索

23、引命名為 IDX_PK。如果表的唯一性索引(Unique Index)只有一個(gè),則命名為 IDX_UK,如果表有多個(gè)唯一性索引,則在最后再加上一個(gè)編號(hào),命名為 IDX_UK#,此處的#為一個(gè)數(shù)。如果一個(gè)表有多個(gè)其他的非唯一性索引,則按順序?yàn)槊恳粋€(gè)索引加一個(gè)編號(hào) IDX_#,此處的#為一個(gè)數(shù)。4.1.12 約束(Constraints)應(yīng)對(duì)主鍵(Primary Key) 、唯一性約束(Unique)和引用約束(Referential Key)等約束進(jìn)行命名,而不是使用系統(tǒng)自動(dòng)生成的名字。主鍵約束命名為 PK_。如果一個(gè)表只有唯一性約束,則命名為 UK_。如果一個(gè)表有多個(gè)外鍵,則在名稱的最后再加一

24、個(gè)編號(hào),命名為 UK_#。如果一個(gè)表只有一個(gè)外鍵約束,則命名為 FK_。如果一個(gè)表有多個(gè)外鍵,則在名稱的最后再加一個(gè)編號(hào),命名為 FK_#。4.1.13 視圖(Views)視圖名分為三段:V_SSSS_XXXX。V 表示此對(duì)象為視圖。84.1.14 同義詞(Synonyms)同義詞名分為三段:SYN_SSSS_XXXX。SYN 表示此對(duì)象為同義詞。4.1.15 序列號(hào)(Sequences)序列號(hào)名分為三段:SQ_SSSS_XXXX。SQ 表示此對(duì)象為序列號(hào)。4.1.16 存儲(chǔ)過程(Stored Procedures)存儲(chǔ)過程名分為三段:PRO_SSSS_XXXX。PRO 表示此對(duì)象為存儲(chǔ)過程。

25、4.1.17 函數(shù)(Functions) 函數(shù)分為三段:FUN_SSSS_XXXX。FUN 表示此對(duì)象為函數(shù)。4.1.18 程序包(Packages)和程序包體(Packages Bodies)程序包和相應(yīng)程序包體的名字相同,分為三段:PAK_SSSS_XXXX。PAK 表示此對(duì)象為函數(shù)。包內(nèi)過程和函數(shù)的命名規(guī)則與獨(dú)立的存儲(chǔ)過程和函數(shù)的命名相同,具體過程參見4.1.16 和 4.1.17。4.1.19 觸發(fā)器(Triggers)觸發(fā)器分為三段:TR_A|BI|U|D_。TR 表示這是一個(gè)觸發(fā)器,后面跟著表示觸發(fā)器操作條件的英文字母,A|BI|U|D(A|B 表示 after|before,I|

26、U|D 表示insert|update|delete 無該項(xiàng)操作則去掉相應(yīng)的字母) ,后面再跟使用它的表名或視圖名。4.1.20 角色(Roles)數(shù)據(jù)庫角色分為兩段:ROL_XXXX。ROL 表示這是一個(gè)數(shù)據(jù)庫角色。4.1.21 用戶(Users)數(shù)據(jù)庫用戶分為兩段:USR_XXXX。USR 表示這是一個(gè)數(shù)據(jù)庫用戶。94.2 SQL、PL/SQL 源代碼編寫約定源代碼編寫約定4.2.1 變量命名規(guī)則為了提高 PL/SQL 程序的可讀性,需要對(duì) PL/SQL 程序的變量制定適當(dāng)?shù)拿?guī)則。變量應(yīng)該用中文拼音首字母來表示,應(yīng)防止變量名與 Oracle 表的字段重名,因?yàn)槿绻孛琌racle 會(huì)

27、將此名字解釋為字段名。為了能夠快速區(qū)分變量的作用域和類型,應(yīng)對(duì)變量加上統(tǒng)一的前綴和后綴。在基本類型局部變量名家前綴 v_在全局變量名前加前綴 g_在常量名前加前綴 c_在過程和函數(shù)的參數(shù)函數(shù)變量前加 p_,對(duì) IN OUT 類型和 OUT 類型的參數(shù)變量要分別加后綴 io 和 o。缺省沒有前綴的參數(shù)變量都為 IN 類型。在 record collection 類型變量前加前綴 r_在%rowtype 類型變量前加前綴 rt_在 PL/SQL 類型變量前加前綴 t_在 table type 類型變量前加前綴 tt_在游標(biāo) cursor 類型變量前加前綴 cur_在例外 exception 類型變

28、量前加前綴 e_4.2.2 代碼排版規(guī)則制定代碼排版規(guī)則的目的是使用戶更方便地理解程序的邏輯結(jié)構(gòu)??s進(jìn)縮進(jìn)設(shè)置為 4 個(gè)空格,Tab 設(shè)置為 4 個(gè)空格。通過縮進(jìn)要把程序的條件、循環(huán)的邏輯結(jié)構(gòu)顯示出來。使用大小寫所有的 SQL 和 PL/SQL 關(guān)鍵字用大小寫,而所有的數(shù)據(jù)庫表、字段、變量用小寫。4.2.3 代碼注釋規(guī)則在 PL/SQL 程序段中的注釋需要能說明問題,應(yīng)該比代碼易讀;注釋的長度不能太長,60 字符以內(nèi)為宜;當(dāng)代碼發(fā)生改變時(shí),注釋應(yīng)該及時(shí)更新。每個(gè)數(shù)據(jù)對(duì)象包括表、存儲(chǔ)過程、函數(shù)和字段都必須作相關(guān)的注釋說明。如果數(shù)據(jù)對(duì)象是函數(shù)或存儲(chǔ)過程,還必須說明作者、功能和創(chuàng)立時(shí)間(修改時(shí)間)等

29、信息。格式如下:注釋位置對(duì) Oracle 數(shù)據(jù)庫對(duì)象的整體注釋應(yīng)置于對(duì)象定義語法的下一行,AS 關(guān)鍵字之后(置于頭部時(shí),經(jīng) Oracle 編譯后會(huì)丟失,不能保存到數(shù)據(jù)庫中) ;同理,其他注釋也要置于代碼內(nèi)部。PL/SQL 程序文件頭部注釋文件頭部注釋用于表明該文件的信息及版權(quán)格式,其格式如下:10/Copyright/文件名:/功能描述:/改版履歷:/ 姓名 時(shí)間 描述/過程、函數(shù)、包注釋對(duì)過程、函數(shù)、包必須加注釋描述其主要功能,注釋長度不超過 60 字符為宜,超過則作換行處理。其他需要加注釋的地方: 每一個(gè)分支出,如:if else 處; 曾經(jīng)出現(xiàn) Bug 的地方(加注 Bug 號(hào)) ;聲明變量時(shí); 定義常量時(shí),解釋常量的意義; 其他比較難以理解的地方。4.2.4 其他要求Oracle8i 以上版本是對(duì)象關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS) ,和傳統(tǒng)的關(guān)系型數(shù)據(jù)庫相比,增加了面向?qū)ο蟮墓δ?。但為了提高?shù)據(jù)庫的兼容性,在進(jìn)行數(shù)據(jù)庫設(shè)計(jì)時(shí)應(yīng)避免使用這些面向?qū)ο蟮墓δ?。能夠使?SQL 語句實(shí)現(xiàn)功能時(shí),不使用 PL/SQL。刪除所有無用的變量。如果要用變量來表示一個(gè)字段和多個(gè)字段,盡量使用%TYPE 和%ROWTYP

溫馨提示

  • 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. 人人文庫網(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)論