數(shù)據(jù)庫(kù)建設(shè)的規(guī)則_第1頁(yè)
數(shù)據(jù)庫(kù)建設(shè)的規(guī)則_第2頁(yè)
數(shù)據(jù)庫(kù)建設(shè)的規(guī)則_第3頁(yè)
數(shù)據(jù)庫(kù)建設(shè)的規(guī)則_第4頁(yè)
數(shù)據(jù)庫(kù)建設(shè)的規(guī)則_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、I目錄目錄1. 范圍范圍 .12. 總體要求總體要求 .12.1 數(shù)據(jù)庫(kù)設(shè)計(jì)總體要求.12.2 數(shù)據(jù)庫(kù)對(duì)象命名的總體要求.12.3 數(shù)據(jù)庫(kù)程序編碼的總體要求.23. 數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范 .23.1 數(shù)據(jù)庫(kù)設(shè)計(jì)要求.23.2 數(shù)據(jù)庫(kù)概念邏輯設(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ù)庫(kù)物理設(shè)計(jì).34. ORACLE 數(shù)據(jù)庫(kù)命名規(guī)則數(shù)據(jù)庫(kù)命名規(guī)則 .44.1 ORACLE數(shù)據(jù)庫(kù)對(duì)象命名規(guī)則.44.1.1 數(shù)據(jù)庫(kù)名(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ǔ)過(guò)程(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 源代碼編寫(xiě)約定.8II4.2.1 變量命名規(guī)則.84.2.2 代碼排版規(guī)則.94.2.3 代碼注釋規(guī)則.94.2.4 其他要求.105. 數(shù)據(jù)字典文檔編寫(xiě)格式數(shù)據(jù)字典文檔編寫(xiě)格式 .105.1 數(shù)據(jù)庫(kù)表匯總表格

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

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

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

7、程序編碼的總體要求 通過(guò)對(duì)數(shù)據(jù)庫(kù)程序編碼制定規(guī)則,來(lái)提高程序的可讀性。這其中主要包括變量命名規(guī)則、代碼排版規(guī)則、代碼注釋規(guī)則等。 本部分相對(duì)要求較寬,但開(kāi)發(fā)者應(yīng)參照這部分的要求制定自己的編碼規(guī)范,并嚴(yán)格遵守。本部分的代碼注釋規(guī)則是對(duì)開(kāi)發(fā)者編寫(xiě)注釋的基本要求,開(kāi)發(fā)者自己可以提出對(duì)代碼注釋的更高要求,但不得低于本規(guī)則的要求。3. 數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)要求數(shù)據(jù)庫(kù)設(shè)計(jì)要求為了保證數(shù)據(jù)庫(kù)設(shè)計(jì)的質(zhì)量,提高數(shù)據(jù)庫(kù)的完整性、一致型、安全性、易擴(kuò)展性、性能、減少數(shù)據(jù)的冗余,開(kāi)發(fā)者應(yīng)在需求分析階段對(duì)已有業(yè)務(wù)系統(tǒng)、本期開(kāi)發(fā)的業(yè)務(wù)系統(tǒng)和以后開(kāi)發(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ù)庫(kù)輔助設(shè)計(jì)工具,進(jìn)行反映數(shù)據(jù)庫(kù)中對(duì)象聯(lián)系和依賴(lài)的概念邏輯設(shè)計(jì)和物理設(shè)計(jì)。在進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),除了本規(guī)范以外,還應(yīng)遵守南京市交通局信息化軟件開(kāi)發(fā)實(shí)施指南的要求。 在數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)完成后,開(kāi)發(fā)者應(yīng)向交通局提交數(shù)據(jù)庫(kù)設(shè)計(jì)報(bào)告 ,在數(shù)據(jù)庫(kù)設(shè)計(jì)報(bào)告中必須包括完整的實(shí)體關(guān)系圖(E-R 圖),在得到交通局的評(píng)審認(rèn)可后方可進(jìn)行數(shù)據(jù)庫(kù)的物理設(shè)計(jì)。 在軟件鑒定驗(yàn)收時(shí),開(kāi)發(fā)者應(yīng)向交通局提交最終完稿的數(shù)據(jù)庫(kù)設(shè)計(jì)報(bào)告及其變更記錄,同時(shí)提交所交付軟件完整的數(shù)據(jù)字典 。3.2 數(shù)據(jù)庫(kù)概

9、念邏輯設(shè)計(jì)數(shù)據(jù)庫(kù)概念邏輯設(shè)計(jì) 整個(gè)概念邏輯設(shè)計(jì)包括需求調(diào)研、概念設(shè)計(jì)和邏輯設(shè)計(jì)三個(gè)部分,需要與業(yè)務(wù)系統(tǒng)的調(diào)研、分析、設(shè)計(jì)和開(kāi)發(fā)結(jié)合起來(lái)進(jìn)行。3.2.1 需求調(diào)研 在應(yīng)用系統(tǒng)開(kāi)發(fā)的需求調(diào)研階段,應(yīng)對(duì)本期開(kāi)發(fā)的業(yè)務(wù)系統(tǒng)的功能數(shù)據(jù)和以后開(kāi)發(fā)的業(yè)務(wù)系統(tǒng)的數(shù)據(jù)進(jìn)行調(diào)研。對(duì)于本期要求開(kāi)發(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)的所有需求,以決定是否可以直接訪問(wèn)已有應(yīng)用系統(tǒng)的數(shù)據(jù)庫(kù)中的數(shù)據(jù),或采用復(fù)制等方法定期將已有系統(tǒng)的數(shù)據(jù)復(fù)制到本期開(kāi)發(fā)的應(yīng)用系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù),或直接用新系統(tǒng)來(lái)維護(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)行語(yǔ)義上的描述(數(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ì)、畫(huà)法不是唯一的,但在繪 E-R 圖時(shí)應(yīng)注意:結(jié)構(gòu)要清晰、關(guān)聯(lián)要簡(jiǎn)潔、實(shí)體個(gè)數(shù)要適中、屬性分配要合理、沒(méi)有低級(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è)沒(méi)有冗余、一致的全局視圖模式。標(biāo)記所有共享數(shù)據(jù)模式的相關(guān)業(yè)務(wù)系統(tǒng),以及數(shù)據(jù)的來(lái)源和數(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ì)本期開(kāi)發(fā)的業(yè)務(wù)系統(tǒng)中不能維護(hù)但需要使用的共享數(shù)據(jù)集,建立與老業(yè)務(wù)系統(tǒng)之間數(shù)據(jù)抽取的映射關(guān)系。面向信息服務(wù)的數(shù)據(jù)模式根據(jù)概念模式的來(lái)源和用途分別建立數(shù)據(jù)表或者跨數(shù)據(jù)庫(kù)視圖。能從業(yè)務(wù)數(shù)據(jù)平臺(tái)中直接獲取的數(shù)

12、據(jù)應(yīng)設(shè)計(jì)跨數(shù)據(jù)庫(kù)視圖,需要從業(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)算合理的屬性類(lèi)型及長(zhǎng)度創(chuàng)建視圖 可以建立面向用戶的外模式,提供一定的邏輯數(shù)據(jù)獨(dú)立性。3.3 數(shù)據(jù)庫(kù)物理設(shè)計(jì)數(shù)據(jù)庫(kù)物理設(shè)計(jì)將設(shè)計(jì)好的關(guān)系邏輯模式按照數(shù)據(jù)產(chǎn)生的來(lái)源建立不同的業(yè)務(wù)數(shù)據(jù)集(庫(kù)),然后建立一個(gè)公共共享數(shù)據(jù)集(庫(kù)),在這個(gè)數(shù)據(jù)庫(kù)中建立共享視圖,同時(shí)為各個(gè)數(shù)據(jù)集(庫(kù))進(jìn)行用戶設(shè)置和權(quán)限分配。物理數(shù)據(jù)庫(kù)的分布也存在多種模式:所有的物理數(shù)據(jù)庫(kù)存在于一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器上,而且都由一個(gè) DBMS 實(shí)例管理;4所有的物理數(shù)據(jù)庫(kù)存在于一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器上,由多個(gè)

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

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

15、ATEGROUPMODEPUBLICTABLEHAVINGMODIFYRAWTHENIDENTIFIEDNETWORKRENANETOIMMEDIATENOAUDITRESOURCETRIGGERINNOCOMPRESSREVOKEUIDINCREMENTNOTROWUNIONINDEXNOWALTROWIDUNIQUEINITIALNULLROWNUMUPDATEINSERTNUMBERROWSUSERINTEGEROFSELECTVALIDATEINTERSECTOFFLINESESSIONVALUESINTOONSETVARCHARISONLINESHAREVARCHAR2LEVELOP

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

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

18、 TEMP 命名即可。永久表空間命名分為三段:TBS_SSSS_ZZZZ;TBS 表示這是一個(gè)表空間,SSSS 為系統(tǒng)代號(hào),ZZZZ 為表空間類(lèi)型,可以為 DATA 和 IDX,DATA 表示該表空間用來(lái)存儲(chǔ)表對(duì)象,IDX 表示該表空間用來(lái)存儲(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ù)庫(kù)文件的命名根據(jù)該文件所屬表空間的名字進(jìn)行,通過(guò)在表空間的名字后加下劃線加編號(hào)實(shí)現(xiàn),如_#.dbf 所示,數(shù)據(jù)庫(kù)文件的名字用.dbf 作為后綴。64

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

20、,如一個(gè)數(shù)據(jù)庫(kù)的回滾段為 RBS_01,RBS_02,在 Oracle 9i 版本數(shù)據(jù)庫(kù)中推出了 Automatic Undo Management 功能,來(lái)實(shí)現(xiàn)對(duì)回滾信息的自動(dòng)管理,此功能具有簡(jiǎn)化管理、提高效率的優(yōu)點(diǎn),因此如果使 Oracle 9i 以上版本數(shù)據(jù)庫(kù),則應(yīng)使用此功能。4.1.9 表(Tables)表名為三段:Z_SSSS_XXXX,Z 為性質(zhì)代號(hào),SSSS 為系統(tǒng)代號(hào)(下同) 。XXXX 為自定義代號(hào)(下同) ,表的所有字母統(tǒng)一用大寫(xiě)表示。(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)的功能。開(kāi)發(fā)者應(yīng)該在系統(tǒng)設(shè)計(jì)階段根據(jù)軟件功能模塊的劃分來(lái)確定系統(tǒng)代號(hào),系統(tǒng)代號(hào)用能表達(dá)模塊功能的關(guān)鍵詞的首字母來(lái)表示,應(yīng)控制在 2 到 4 個(gè)字母之內(nèi),為便于理解和記憶,一個(gè)系統(tǒng)不宜有過(guò)多的系統(tǒng)代號(hào)。(3) 、自定義代號(hào)根據(jù)中文名稱(chēng)來(lái)確定,采用中文名稱(chēng)首字的全拼,后接其他字的中文拼音首字母,如果有兩個(gè)表根據(jù)此方法命名出現(xiàn)重復(fù)則對(duì)兩個(gè)表都用中文拼音的完整拼音來(lái)表示:自定義代號(hào)的長(zhǎng)度應(yīng)保持在 12 位以?xún)?nèi)。4.1.10 字段(Fields)字段名稱(chēng)字段名分為三段:F_ZZ_XXXX; F 表示這是一個(gè)字段,ZZ 表示字段的數(shù)據(jù)類(lèi)7型代號(hào),數(shù)據(jù)類(lèi)型對(duì)應(yīng)的數(shù)據(jù)類(lèi)型代號(hào)如

22、下表:表 4-3 數(shù)據(jù)類(lèi)型代號(hào)表代號(hào)數(shù)據(jù)類(lèi)型CRCHAR,NCHARDTDATELGLONGRARAWLRLONG RAWNBNUMBERVCVARCHAR2,NVARCHAR2FLFLOATLBBLOG,CLOG,NCLOGBFBFILE另外,主表中的主鍵字段和附表中的外部鍵字段的類(lèi)型和名稱(chēng)要完全相同。對(duì)于日期類(lèi)型的數(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è)外鍵,則在名稱(chēng)的最后再加一

24、個(gè)編號(hào),命名為 UK_#。如果一個(gè)表只有一個(gè)外鍵約束,則命名為 FK_。如果一個(gè)表有多個(gè)外鍵,則在名稱(chēng)的最后再加一個(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ǔ)過(guò)程(Stored Procedures)存儲(chǔ)過(guò)程名分為三段:PRO_SSSS_XXXX。PRO 表示此對(duì)象為存儲(chǔ)過(guò)程。

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)過(guò)程和函數(shù)的命名規(guī)則與獨(dú)立的存儲(chǔ)過(guò)程和函數(shù)的命名相同,具體過(guò)程參見(jiàn)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 無(wú)該項(xiàng)操作則去掉相應(yīng)的字母) ,后面再跟使用它的表名或視圖名。4.1.20 角色(Roles)數(shù)據(jù)庫(kù)角色分為兩段:ROL_XXXX。ROL 表示這是一個(gè)數(shù)據(jù)庫(kù)角色。4.1.21 用戶(Users)數(shù)據(jù)庫(kù)用戶分為兩段:USR_XXXX。USR 表示這是一個(gè)數(shù)據(jù)庫(kù)用戶。94.2 SQL、PL/SQL 源代碼編寫(xiě)約定源代碼編寫(xiě)約定4.2.1 變量命名規(guī)則為了提高 PL/SQL 程序的可讀性,需要對(duì) PL/SQL 程序的變量制定適當(dāng)?shù)拿?guī)則。變量應(yīng)該用中文拼音首字母來(lái)表示,應(yīng)防止變量名與 Oracle 表的字段重名,因?yàn)槿绻孛琌racle 會(huì)

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

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論