數(shù)據(jù)倉庫設(shè)計(jì)編碼規(guī)范3.0_第1頁
數(shù)據(jù)倉庫設(shè)計(jì)編碼規(guī)范3.0_第2頁
數(shù)據(jù)倉庫設(shè)計(jì)編碼規(guī)范3.0_第3頁
數(shù)據(jù)倉庫設(shè)計(jì)編碼規(guī)范3.0_第4頁
數(shù)據(jù)倉庫設(shè)計(jì)編碼規(guī)范3.0_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)倉庫設(shè)計(jì)編碼規(guī)范(3.0)上海XX通信有限公司金岡|( HYPERLINK mailto:seniordba seniordba)棗SBtF2011-02培訓(xùn)大綱二、數(shù)據(jù)倉庫體系架構(gòu)三、分級(jí)存儲(chǔ)(數(shù)據(jù)生命周期)四、數(shù)據(jù)庫對(duì)象命名規(guī)范五、SQL編碼規(guī)范六、PL/SQL編碼規(guī)范七、代碼優(yōu)化規(guī)則八、日志 目的和范圍目的:好的命名規(guī)范,可以明顯的增強(qiáng)程序的町讀件和川維護(hù)性:保障程序致性.強(qiáng)程序的町讀性增強(qiáng)程序可維護(hù)性降低程序的BUG概率.提升程序可擴(kuò)展性和性能范圍:本規(guī)范主妥適用于所有基于Oracle數(shù)據(jù)倉庫設(shè)計(jì)開發(fā)的項(xiàng)丨1。培訓(xùn)大綱一、目的和范圍一、三、分級(jí)存儲(chǔ)(數(shù)據(jù)生命周期)四、數(shù)據(jù)庫對(duì)象命名

2、規(guī)范五、SQL編碼規(guī)范六、PL/SQL編碼規(guī)范七、代碼優(yōu)化規(guī)則八、日志數(shù)據(jù)倉庫基本概念(一) 數(shù)振確的.的.的和的數(shù)據(jù)集合.支持管:數(shù)據(jù)倉庫圍繞些主題如顧客、供應(yīng)商、產(chǎn)品和銷您來紐織。ntm機(jī)會(huì)雜綽辭篇“制麹;翻歸瓣條劇瀟I玄壽疊乂編關(guān)鍵結(jié)構(gòu)牆費(fèi)魏編翻繼凜如過去3年)捉供信息。縱倉御啲:數(shù)據(jù)倉庫總是物理的分別存放數(shù)擁:這些數(shù)據(jù)源操作環(huán)競(jìng)卜J瞬熱懈瞬濾伽鍬戳為瞬怦制機(jī)制趣數(shù)據(jù)倉庫基木概念(J()、企業(yè)數(shù)據(jù)倉庫(EDW):數(shù)據(jù)倉庫收集了整個(gè)紐.織關(guān)丁丄題的所仃佇息,它捉供企業(yè)范皿內(nèi)的數(shù)據(jù)集成,通常來門個(gè)我7;個(gè)操作數(shù)據(jù)墮系統(tǒng)或外部信息提像者,并且是跨輕能的。通常,它包杳細(xì)節(jié)數(shù)據(jù)和匯騒據(jù),它需要廣泛

3、必嵩業(yè)建粧可能需要多年設(shè)計(jì)和建設(shè)。(二)、數(shù)據(jù)集市數(shù)據(jù)集市包含企業(yè)范I韋I的個(gè)了集,針對(duì)特定的用廣群和特定的主題。例嘰鋤數(shù)據(jù)薩(W能限定其匸題為顧客、商品和銷售。包括在數(shù)拯集市中的數(shù)(三)、虛擬倉庫服務(wù)憾I鋼攥tr據(jù)庫視圖濟(jì)合。虛擬倉庫易于建立但需要操作數(shù)據(jù)庫數(shù)據(jù)倉庫基本概念(三)ODS:ODS是企業(yè)數(shù)據(jù)架構(gòu)中最為復(fù)雜的種形態(tài),既要滿足數(shù)據(jù)X務(wù)操作要求,難度相當(dāng)Z大。苴匸要功能是ODSU數(shù)期倉庫的車耍區(qū)別如下:(一八ODS只存儲(chǔ)明細(xì)數(shù)據(jù)。(二)、ODS中存儲(chǔ)的數(shù)據(jù)一般不超過一個(gè)月。(三)、ODS支持事務(wù)更新操作。(四)、ODS是應(yīng)用系統(tǒng)數(shù)據(jù)庫的一個(gè)延遲快照。根據(jù)延遲時(shí)間的長度,分為:I類ODS

4、,實(shí)時(shí)或近似實(shí)時(shí),與聞?dòng)孟到y(tǒng)的數(shù)據(jù)延遲為12秒。II類ODS,與應(yīng)用系統(tǒng)的數(shù)據(jù)延遲為24小時(shí)。III類ODS,與應(yīng)用系統(tǒng)的數(shù)據(jù)延遲為12-24小時(shí)。數(shù)據(jù)倉庫體系架構(gòu)圖數(shù)據(jù)倉庫基本層次結(jié)構(gòu)(一) (一)、STAGE接口信息模型(二)、ODS/DWD信息模型(三)、MID信息模型(四)、DM(DataMart)信息模型(五)、元數(shù)據(jù)信息模型數(shù)據(jù)倉庫基本層次結(jié)構(gòu)(二)在各個(gè)信息模型中存儲(chǔ)的內(nèi)容如下描述:提供業(yè)務(wù)系統(tǒng)數(shù)據(jù)文件的臨時(shí)存儲(chǔ),數(shù)據(jù)稽核,數(shù)據(jù)質(zhì)量保證,屏蔽對(duì)業(yè)務(wù)系統(tǒng)的T擾,対于主動(dòng)數(shù)據(jù)杲集方發(fā),以文件的方式描逵系統(tǒng)為各個(gè)寺業(yè)了系統(tǒng)N間癒據(jù)接口的內(nèi)容、格式尊信息。與該模型對(duì)應(yīng)的數(shù)據(jù)是各個(gè)專業(yè)系統(tǒng)

5、按照該模型的定義伎送來的數(shù)據(jù)文件。STAGE是生產(chǎn)系統(tǒng)數(shù)據(jù)源的直接拷貝,由ETL過程對(duì)數(shù)堀源進(jìn)行直接抽取,在格式和數(shù)據(jù)怎義上不作任何改斐。 數(shù)捌倉庫基本層次結(jié)構(gòu)(三)(1)對(duì)數(shù)據(jù)源做統(tǒng)一的一次獲取,數(shù)據(jù)倉庫中其它部分都依賴STAGE層的數(shù)據(jù).不再取復(fù)進(jìn)彳円山取,也不在生產(chǎn)系統(tǒng)上做運(yùn)算,減少生產(chǎn)系統(tǒng)的圧力。(2)在生產(chǎn)系統(tǒng)數(shù)據(jù)己經(jīng)刷新的情況下,保存一定量的生產(chǎn)系統(tǒng)的歷史數(shù)據(jù),以便在運(yùn)算出錯(cuò)的情況F可以進(jìn)行回溯;11數(shù)據(jù)倉庫基本層次結(jié)構(gòu)(四)是數(shù)據(jù)倉庫的細(xì)節(jié)數(shù)據(jù)層,是對(duì)STAGE層數(shù)據(jù)進(jìn)行沉淀,減少了抽取的復(fù)雜性,同時(shí)ODS/DWD的信息模型組織主要道循企業(yè)業(yè)務(wù)游務(wù)處理的形式,將各個(gè)專業(yè)數(shù)抑進(jìn)行集

6、中。為企業(yè)進(jìn)行經(jīng)營數(shù)據(jù)的分析,系統(tǒng)將數(shù)據(jù)按分析的主題的形式存放,跟STAGE層的粒度致,屬于分析的公共資源。數(shù)據(jù)倉庫基本層次結(jié)構(gòu)(五) 輕度綜合層是新模型増加的數(shù)據(jù)倉咋中DWD丿z:和DMW2間的-個(gè)過渡層次,是對(duì)DWD層的牛產(chǎn)數(shù)據(jù)進(jìn)行輕度綜介和匯總統(tǒng)ilo輕度綜合層與DWD的主要區(qū)別在于二者的應(yīng)用領(lǐng)域不同,DWD的數(shù)據(jù)來源于生產(chǎn)型系統(tǒng).并為滿足些不町預(yù)見的需求而進(jìn)行沉淀:輕度綜介層則Ifil向分析型川用進(jìn)行細(xì)粒度的統(tǒng)計(jì)和沉淀。數(shù)據(jù)倉庫基本層次結(jié)構(gòu)(六)為&題經(jīng)營分析服務(wù),系統(tǒng)將數(shù)據(jù)按分析的專題組織成多維庫表的形式存放,展丁分析冃標(biāo)范疇的數(shù)抑:勿織和匯總,屈于分析的專勺資源。其信息主要來源于D

7、WD利MID層匯總,反映實(shí)時(shí)的經(jīng)營狀況,時(shí)訶維度為天。而歷史經(jīng)營狀況的分析,時(shí)間維度一般為周,月,同時(shí)也具有季度,年這樣的維度。數(shù)據(jù)倉庫基本層次結(jié)構(gòu)(七) 描述數(shù)據(jù)及其環(huán)境的數(shù)據(jù),即是對(duì)數(shù)據(jù)資瀝!的描述,是信息共步和交換的基礎(chǔ)和前提,用于描述數(shù)據(jù)集的內(nèi)容、質(zhì)屋、衣丕方工:、空間參考、管理方式以及數(shù)據(jù)集的萇它特征。-般來說,它右叨方血的用途。首先,元數(shù)埠能捉供丿丁用戶的信息,如記錄數(shù)據(jù)項(xiàng)的業(yè)務(wù)描述信息的元數(shù)據(jù)能S助用戶便用數(shù)據(jù)O英次,元數(shù)據(jù)做支持系統(tǒng)對(duì)數(shù)據(jù)的管理和維護(hù),元數(shù)據(jù)機(jī)制主耍支持以F五類系舉臂理功能:(1).描述哪些數(shù)據(jù)在數(shù)據(jù)倉庫中(2).定義耍進(jìn)入數(shù)據(jù)倉耶中的數(shù)據(jù)和從數(shù)據(jù)倉庫中產(chǎn)生的數(shù)

8、據(jù)(3)記錄根據(jù)業(yè)務(wù)甘件發(fā)/而隨之進(jìn)行的數(shù)據(jù)抽取匚作時(shí)間安排(4).記錄并檢測(cè)系統(tǒng)數(shù)拯致性的耍求和執(zhí)行情況(5)衡呈數(shù)據(jù)質(zhì)雖培訓(xùn)人綱一、目的和范圍二、數(shù)據(jù)倉庫休系架構(gòu)三、事酸莓隣四、數(shù)據(jù)庫對(duì)象命名規(guī)范五、SQL編碼規(guī)范六、PL/SQL編碼規(guī)范七、代碼優(yōu)化規(guī)則八、日志 分級(jí)存儲(chǔ)(一)概念:分級(jí)存儲(chǔ)是根據(jù)數(shù)據(jù)的、等指標(biāo),將數(shù)據(jù)采取不同的存儲(chǔ)方式存儲(chǔ)在不同件能的存儲(chǔ)設(shè)備上,通過分級(jí)存儲(chǔ)管理實(shí)現(xiàn)數(shù)據(jù)客體在存儲(chǔ)設(shè)備Z間的自動(dòng)遷移。數(shù)摞分級(jí)存儲(chǔ)的工作原理是。通過將不經(jīng)常訪問的數(shù)據(jù)自動(dòng)移到存儲(chǔ)層次中較低的層次,釋放出較高成本的存儲(chǔ)空間給更頻繁訪問的數(shù)據(jù),町以獲得史好的性價(jià)比。這樣,方面町人人減少非重要性數(shù)據(jù)

9、在級(jí)木地磁盤所占用的空間,還可加快整個(gè)系統(tǒng)的存儲(chǔ)性能。17分級(jí)存儲(chǔ)(二)(核心存儲(chǔ))在線存儲(chǔ)匸=(二級(jí)存儲(chǔ))離線存儲(chǔ)(三級(jí)存他)在分級(jí)存儲(chǔ)體系架構(gòu)中,一般分為:三級(jí)存儲(chǔ)方式。按照數(shù)據(jù)的不同生命周期制定相應(yīng)存儲(chǔ)機(jī)制,降低成本分級(jí)存儲(chǔ)(三)在線存儲(chǔ)是指將數(shù)抓存放在高速的磁盤系統(tǒng)(如閃存存儲(chǔ)介質(zhì)、FC磁盤或SCSI磁盤陣歹|J)等存儲(chǔ)設(shè)備上,適合存儲(chǔ)那吃需耍經(jīng)常和快速訪問的程序和文件,苴存取速度快,性能好,存儲(chǔ)價(jià)格相對(duì)昂貴在線存儲(chǔ)是丄作級(jí)存儲(chǔ),其最人特征是存儲(chǔ)設(shè)備和所存儲(chǔ)的數(shù)據(jù)時(shí)刻侏持“在線”狀態(tài),可以隨時(shí)讀取和修改,以滿足前端應(yīng)用服務(wù)器和數(shù)據(jù)庫對(duì)數(shù)據(jù)訪問的速度要求。19分級(jí)存儲(chǔ)(四)近線存儲(chǔ)兄指將

10、數(shù)據(jù)存放在低速的磁盤系統(tǒng)11,般是一些存取速度和價(jià)格介于島速磁盤與磁帶Z間的低端磁盤設(shè)近線存儲(chǔ)外延相對(duì)比較廣泛,匸要定位于客戶在線存儲(chǔ)和離線存儲(chǔ)之間的應(yīng)用。就是指將那些并不是經(jīng)常用到(例如些長期保存的不常用的文件歸檔),或者說力問呈并不人的數(shù)據(jù)存放在性能較低的存儲(chǔ)設(shè)備llo但對(duì)這些設(shè)備的要求是尋址迅速、傳輸率離。因此,近線存儲(chǔ)對(duì)性能要求相對(duì)來說并不高,但乂妥求相對(duì)較好的訪問性能。同時(shí)多數(shù)情況TF由于不常用的數(shù)據(jù)要占總數(shù)據(jù)啟的較人比這也就耍求近線存儲(chǔ)設(shè)備存需要容晴I相對(duì)較人:近線設(shè)備上姜仃SATA藏盤陣列、DVD-RAM光盤塔和光盤殊等設(shè)備。 分級(jí)存儲(chǔ)(五)離線存儲(chǔ)則指將數(shù)據(jù)備份到磁帶或磁帯庫上

11、。大多數(shù)情況下主要用于對(duì)在線存儲(chǔ)或近線存儲(chǔ)的數(shù)據(jù)進(jìn)行備份,以防范可能發(fā)牛的數(shù)據(jù)災(zāi)難,因此乂稱備份級(jí)存儲(chǔ)。離線存儲(chǔ)通常采用磁帶作為存儲(chǔ)介質(zhì),其訪問速度低,但價(jià)格低廉的海量存儲(chǔ)。21培訓(xùn)人綱一、目的和范圍二、數(shù)據(jù)倉庫休系架構(gòu)三、分級(jí)存儲(chǔ)(數(shù)據(jù)主命周期)四、潮1五、SQL編碼規(guī)范六、PL/SQL編碼規(guī)范七、代碼優(yōu)化規(guī)則八、日志數(shù)據(jù)庫對(duì)象命名規(guī)范(總綱) 命名;不能使用無息義最好可讀,遵循”23()、所有名稱的字符范闌為:AZaz,09和_(卜劃線),不允許使川H它字符作為名稱。一(-).采用英文單詞或英文知語(包括縮寫)作為名稱.的丫符或漢語拼咅。(三)、名稱應(yīng)該淸晰明了,能夠準(zhǔn)確表達(dá)半務(wù)的含義,顧

12、名思義”的原則。(PM)所有標(biāo)識(shí)符(包括表名,字段名,存儲(chǔ)過程名,等)要求簡潔,不耍用特殊字符,更不要使用保留字。(任)、所有標(biāo)識(shí)符必須以字母開頭,而不要以數(shù)字開頭“(八)、所有數(shù)據(jù)庫對(duì)象標(biāo)識(shí)符不要用雙引號(hào)擴(kuò)起來。數(shù)據(jù)庫對(duì)象命名規(guī)范(表)()、不便川TABJBLJ作為前綴,本來就是一個(gè)表,為什么還要說明()、農(nóng)名以代表表內(nèi)內(nèi)容的個(gè)或多個(gè)名同組成,以卜劃線分隔XXX代衣層次域.YYY代衣內(nèi)容域,ZZZ代農(nóng)功能模塊域(=)衣命名包括三部分XXX_YYY_ZZZ,總長度不超過26個(gè)字符??椘跒o舲齡隔瞬鸚齡化關(guān)隸麟縮使嗚同功能模瑛使用相同的后綴一(五卜一些表作為多對(duì)多連接的表,町以使用兩個(gè)表的內(nèi)容做為

13、表幺,后綴W_REL結(jié)尾,I:要應(yīng)用于OLTP數(shù)據(jù)庫。(Abqi系統(tǒng)中仔些少蛍的,RMlH現(xiàn)的伯時(shí),便用字典衣來卩約儲(chǔ)空仙和優(yōu)化怕航如地【系統(tǒng)中的用八知呼險(xiǎn)4OLTP中.以DIC_幵頭,在數(shù)據(jù)倉庫屮以DMS_丿頭.一 數(shù)據(jù)庫表分區(qū)設(shè)計(jì)規(guī)范:二)、關(guān)十時(shí)何范I目的分區(qū)一律使用NUMBER數(shù)據(jù)啖吃,4、茨便川VARCHAR2或DATE數(shù)據(jù)先吃、分區(qū)類型迭擇范闌分區(qū)。之所冇不選擇VARCHAR2或DATE,方面圧卑M僦和運(yùn)口效率考慮,另方而是是在分區(qū)列同時(shí)存儲(chǔ)F1和月維度敎期時(shí),廉以分離,(三八關(guān)于時(shí)何分區(qū)的命名,統(tǒng)-咚求H分區(qū):PART_YYYYMMDD分區(qū)于段名稱為DAY_ID月分區(qū):PART.

14、YYYfMM,分區(qū)字段名稱為MONOID周分區(qū):PART_YYYYW,分區(qū)字段&稱為WEEK.ID.(&).盡駅少使用復(fù)合分區(qū).)、fhr-uflij絕夫部分存儲(chǔ)都足采用raid或集中儲(chǔ).耍求同個(gè)農(nóng)放ew個(gè)中,減少維護(hù)和方便符理.表名代表了一個(gè)名稱空間,字段前數(shù)據(jù)丿車對(duì)象命名規(guī)范(字段名)字段名命名.()、字段不使用任何詢緩,而再加前綴顯得羅嗦。(二)、字段無也避免采用過簡單的名稱:例如,用戶衣中,用戶名的字段名為user_name耍比name更好。(三)、布爾型的字段,以-些助動(dòng)詞開頭,更加直接生動(dòng):如,用戶是否留言has_message|j戶基杏通過檢查is_checked等(四)、入庫接

15、口緩沖表,如果接口文件是采用固處列寬分隔的,特別注意?段類型及長度同接口保持致。(/l)如果接II文件某字段足H期時(shí)間類型,數(shù)據(jù)庫也采用相應(yīng)的數(shù)據(jù)類型,不熨使用字符或數(shù)字?jǐn)?shù)據(jù)類型。我們要把臟數(shù)據(jù)護(hù)絕在系統(tǒng)Z外,同時(shí)也可以發(fā)現(xiàn)肌數(shù)據(jù).作為數(shù)抓質(zhì)量的部分丿乂饋出來數(shù)據(jù)庫對(duì)象命名前/后綴(一) 前/后綴說明DMSIF維表接口表DW明細(xì)數(shù)據(jù)表DWM輕量匯總數(shù)據(jù)(匯總中間層)FC匚事實(shí)表LOGBUF日志表中間計(jì)算緩沖表HISUSR歷史數(shù)據(jù)表用戶信息及權(quán)限相關(guān)信息表EXP數(shù)據(jù)導(dǎo)出DM挖掘相關(guān)結(jié)果表27數(shù)據(jù)庫對(duì)象命名前/后綴(二)PK_主鍵FK_外鍵IXU_唯一索引CK_IX_檢査約束索引IXBMPSEQ_

16、位圖索引序列vw_視圖MV_FUN_物化視圖函數(shù)數(shù)據(jù)庫表空間設(shè)計(jì)規(guī)范數(shù)據(jù)庫帳戶管理管理PERFDB管理數(shù)據(jù)庫管理和監(jiān)控(取代SYS用戶)應(yīng)用BackGroundUser后臺(tái)處理ETL處理ForeGroundUser前臺(tái)應(yīng)用應(yīng)用訪問,存放維表和事實(shí)表DataMiningTempREQUIREPROCESSMetaData數(shù)據(jù)挖掘臨時(shí)需求元數(shù)據(jù)數(shù)據(jù)挖掘相關(guān)對(duì)彖及過程處理臨時(shí)工單,非正式發(fā)版工單需求ETL調(diào)度,數(shù)據(jù)質(zhì)量等().每個(gè)應(yīng)川用戶對(duì)應(yīng)獨(dú)立的表空間。每個(gè)用戶町以使川g個(gè)表空間但每個(gè)麥空何只能被個(gè)用戶使用。(.).毎個(gè)應(yīng)用用八對(duì)應(yīng)獨(dú)立的臨時(shí)衣空間,必耍時(shí)可以使用臨時(shí)表空間組。(三)、在數(shù)據(jù)倉庫中

17、,按層次劃分表空何。比方說:DW層,DWM層,FCT層,DMS層,BUF層,入庫接口緩沖表IF層-(四).在趨人型數(shù)據(jù)倉斥中,在層次劃分表空間的堆礎(chǔ)上,按功能劃分表它間。30(五八按數(shù)擱規(guī)模劃分R空間.將個(gè)別超人型衣劃分到4獨(dú)的農(nóng)空間屮,便J細(xì)護(hù)和管理。(A)、單個(gè)友空間最大空間限制在200G500Go 培訓(xùn)大綱一、口的和范圍二、數(shù)據(jù)倉庫體系架構(gòu)三、分級(jí)存儲(chǔ)(數(shù)據(jù)生命周期)卩q、數(shù)據(jù)庫對(duì)象命名規(guī)范五、六、PL/SQL編碼規(guī)范七、代碼優(yōu)化規(guī)則八、日志SQL編碼規(guī)范(一)(一)、SQL語句應(yīng)正確、規(guī)范、高效和最優(yōu)。(二)、同-項(xiàng)目的SQL書寫格式應(yīng)該統(tǒng)一。(三)、應(yīng)避免寫非常復(fù)雜的SQL語句。SQ

18、L語句盡可能避免多表聯(lián)合復(fù)雜查詢。(四)、SQL語句不應(yīng)在客戶端紐織,而應(yīng)在服務(wù)器端組織。(/、SQL語句的語法應(yīng)與所使用的數(shù)據(jù)庫相適應(yīng)(六)、應(yīng)確保變量和參數(shù)的類型和人小與數(shù)據(jù)庫中農(nóng)數(shù)據(jù)岸列相匹內(nèi)I。(七)、使用SELECT語句時(shí),應(yīng)指出列名,不應(yīng)使用列的序號(hào)或者用”*”替代所有列名。(八)、使用INSERT語句時(shí),應(yīng)指定插入的字段名,不應(yīng)不指定字段名,而直接插入values.SQL編碼規(guī)范(二) SQL編碼規(guī)范:(九)、如果SQL語句連接多表時(shí),應(yīng)使丿IJ表的別名來弓I用列。示例:SELECTlist.manifest_no,list,bi1l_no,stat,liststatFROMmf

19、t1istlist,liststatstatWHERElistmanifest_no=statinanifst_noANDlist.billno=statlist_no:(卜)、SQL語句應(yīng)避免對(duì)大表做全表扌I描操作,對(duì)大表的操作應(yīng)盡雖使用索引或建立分區(qū)表。(H-一)、SQL;語句應(yīng)避免不必要的排序操作。(I二)、SQL語句應(yīng)避免刪除全表的操作,例如:DELETEFROMEMP;SQL編碼規(guī)范(三)SQL編碼規(guī)范:(十二)、應(yīng)使用綁定變屋實(shí)現(xiàn)SQL語句共亨,避免便用硬編碼。示例:餌:益鋰?。后w表示朽寫正確正爾編碼:SELECTemp_nameFROMempWHEREemp_.no=:Bl,/B

20、indvalue:123JSELECTetnp_nameFROMempWHEREenp_no= SQL編碼規(guī)范(四)(十四)、SQL語句的人小靂.SQL語句中出現(xiàn)的所許表名,農(nóng)別名,7段名,庁列等數(shù)據(jù)庫対彖都應(yīng)小耳。示例:/藍(lán)色字體衣示書丐1卜:確SELECTlist.ma】iFest_no,listbill_.no,list_statFROMlist,list_statWHERElist,inanifest.no二.manifest_noANDlist.二list.no;ALTERSEQUENCECACHE200.35SELECTmanifest_no.nextvalFROMSQL編碼規(guī)范(

21、五)(十四人SQL語(2).SQL語句中出現(xiàn)的系統(tǒng)保附字.SQL保昭字都應(yīng)2j/:藍(lán)色字體衣示1外,1確SELECTlist,manifest_no,list.list_no,stat.list_statmftlistlist,liststatstatlistman1fest_no=stat,manifest_noANDlistbill_no=statlis仁no:INSERTINTOemployees(employeename,date,employeeage)VALUES(employees_seq.nextval,John*,30); SQL編碼規(guī)范(六)(2).SELECTrJ內(nèi)容如果

22、只有-項(xiàng).應(yīng)與SELECT同占-行(3).SELECTf句內(nèi)容如果多于一項(xiàng),若一行可以全部顯示,則同占一行,否則后續(xù)的項(xiàng)同I:一行的第項(xiàng)對(duì)齊。行總長度在100到130內(nèi)為宜(包扌舌縮進(jìn)字符在內(nèi))示例:/SELECT語句書寫的正確示例SELECTbill.noFROMmft_listWHEREmanifest。=4000000000000000007f.SELECTlistmanicst_no.list1ist_no.statlist_statFROMmft_listlist,1iststatstatWHERElist,manifest_.no=stat.manifest_noANDstat,s

23、tat1=2.37SQL編碼規(guī)范(七)、;:嚴(yán)少雙數(shù)據(jù)陣的訪何次數(shù),減少交降低骯務(wù)器矗游丿I銷,HDECODE函數(shù)迥I描相同記永成占敢復(fù)連按和同的&II激惰況廠敕率較低.SELECTCOUNT(町,SUHIsalaxy)FROMe(npWHERE=*0020*SELECTCOUNT(NULL)d0030_count,d0020.sal,d0030_5alFR兇cdpHp:x技小仕何;:花或了:符申炎似的,decoi還叩uFaoupby利ordbrbyriijq*.SQL編碼規(guī)范(八) (十八)、SQL語句中變蛍的命名。.SQL語句中出現(xiàn)的變蚩參數(shù)命名應(yīng)反映變駅的實(shí)際恿義。Q)SQb語句中的表別

24、名應(yīng)簡矩明了,應(yīng)反映衣名的實(shí)際意義。特別是在衣比佼多的SQL語句中。但單個(gè)SQL語句中喪數(shù)125,則使用a,b,c,d,e別名簡化命名(十九八SQL語句的縮進(jìn)(1)如果一行有多列并超過120個(gè)字符,基于對(duì)齊規(guī)則,應(yīng)釆用下行縮進(jìn)。(2縮進(jìn)應(yīng)為3個(gè)字符。(3)同層次的SQL語句縮進(jìn)應(yīng)保持一致(縱向?qū)R)示例:SELECTfirst_name,lastname,salary,birthday,hire_date,depart_meni,job,sexFROMemployeesWHEREempid=12:SQL編碼規(guī)范(九)SQL編碼規(guī)(:I).INSERT/VALUES縮進(jìn)規(guī)范。示例&INSERTI

25、NTOliststat(list.no,list_stat.parent,man1fest_no,d1v_f1ag)VALUESbi11020/f/O*.?000000000000007807,-(二一)、單條SQL文中不應(yīng)出現(xiàn)空行或注稈SELECTDMS.TIM5DAYJiAME.DM5_AREAALLJfAMESUM(FCT_ACCES$.LOSIN.COUNT,SUM(FCT.ACCESS.ACCESSCOUNT),SUM(PC7_ACCBSS.ACCESS_TICS)FROMrS.TIMEDM5JRE扎FCT_ACCE55,DM5_SERVICE_TYPe_VWHERE(D於_T1MS

26、.DAY_ID=FCT.ACCESS.DMS_11NE_ID)AHI)iFCT-XCESS.DMS_ARgA_ID SQL編碼規(guī)范(十)SQL編碼規(guī)范;(二十二).在SQL中.對(duì)表的訪問次數(shù)越多,帶來的性能成本越高,產(chǎn)生的磁盤TO越大因此,減少10訪問是提升數(shù)據(jù)庫性能的關(guān)鍵手段之一。如下例:UPDATEEMPSETEMP_CAT=(SARANGE=(WHEREEMP_DEFT=0020烏效SQL:UPDATEEMPSET(EMP_CAT,SAL_RANGE)=(SELECTMAX(CATEGORY).MAX(SAL_RANGE)FROMEMP_CATEGORIES)WHEREEMP_DEPT=

27、0020;41SQL編碼規(guī)范(-一)、Having的使用規(guī)范在SQL中,會(huì)祐要使用havi隔來做足否刊斷,但應(yīng)該逐免使用HAVING子句,HAVING只會(huì)在檢索出所月記錄之后才對(duì)結(jié)果集進(jìn)行過濬.這個(gè)處理稱要排呼,總計(jì)零操作.如采繼通過IHERE子句垠制記錄的數(shù)目,那就能減心這方面的開惴相關(guān)規(guī)則如下IHaving的語旬只應(yīng)用杏需要刊斷count匯總的俄足檸潢圮*件。不能JU來代甘論件作為網(wǎng)斯例如SELECTREGION.A兀(LOCLSIZE)FROMLCCATIONGROUPBYREGIONHAVINGREGION仁4SYDNEY*ANDREGIONUPERTH,島效SQL:SELECTREG

28、ION.AVG(U3GI2B)FROMLOCATIONWHEREREGIONREGION=SYDNEY*ANDREGION!=4PERTH*GROUPBYREGIONSQL編碼規(guī)范(十二) SQL編碼規(guī)范(:I川)、truncate/de1ete對(duì)數(shù)拯庫表數(shù)拯進(jìn)行刪除操作.如果沒冇任何條件的全部刪除便用delete的話,數(shù)據(jù)庫會(huì)把被刪除的數(shù)據(jù)庫放入rollbacksegmentl1,這樣既占川Rollback空間.也降低了性能。而Truncatetable的操作,不韜要對(duì)數(shù)抑進(jìn)行丟失保護(hù),從而貝冇更好的性能,因此:在刪除全部表數(shù)據(jù)的怙況卜便用truncate來代替delate如來這種操作在個(gè)人

29、的流程筋要確保其他的流稅處理都lE常結(jié)束Z后再做這個(gè)操作.lVvtruncated不需翌commit的種門動(dòng)捉交操作.同祥也無法rollback:因此要把握好使用的時(shí)機(jī)。43SQL編碼規(guī)范(十三)SQL編碼規(guī)范:“.fWMili刪刪HMM應(yīng)該修改為:whereexists(selctpphemployeeidfromps_payment_historypphwherepphemployee_id=emp.employeeidandpph.payment_month=*200912*);hdIf的原理使ftlnotexists代替notin的操作SQL編碼規(guī)范(十四) (I六卜肉將SQL語句中的

30、數(shù)據(jù)庫函數(shù)、計(jì)弼衣込式等放世等號(hào)右邊。(二十七)、咐按照業(yè)務(wù)需耍使用事務(wù),同時(shí)丿“保持事務(wù)簡短避免人事務(wù)。(hA)x*事務(wù)完整性的基礎(chǔ)上,SQL語句應(yīng)在程序中顯示使用COMMIT.ROLLBACK.盡快提交屮務(wù),釋放系統(tǒng)資源。(二十九)、SQL語句應(yīng)避免頻繁引起數(shù)據(jù)庫孕務(wù)回滾。(三十)、SQL語句內(nèi)的第術(shù)運(yùn)算符、邏輯運(yùn)算符(AND、OR、NOT).比鐵運(yùn)算符(二、=.、BETWEENAND).IN、LIKE等運(yùn)算符前后都應(yīng)加一空格。(三-一)不等于應(yīng)統(tǒng)一使用符號(hào)”,不契使用”!=(:F亠如果業(yè)務(wù)規(guī)則允許結(jié)果集不需耍唯確定,應(yīng)使用UNIONALLH代17I0N培訓(xùn)大綱一、目的和范圍二、數(shù)據(jù)倉庫休系架構(gòu)三、分級(jí)存儲(chǔ)(數(shù)據(jù)主命周期)四、數(shù)據(jù)庫對(duì)象命名規(guī)范五、SQL編碼規(guī)范六、七、代碼優(yōu)化規(guī)則八、日志 PL/SQU&SfflBi_()、石倫過秤名稱標(biāo)識(shí):前綴_名稱_脂綴前綴農(nóng)示功能模塊名稱偏向輸出后綴表明動(dòng)作:INS(插入),UPD(更新).EXP(導(dǎo)出),PROC(處理)()、所冇外部ETL調(diào)度接口以PROC接尾.其它過程不得使用一PROC結(jié)尾。(二)、”儲(chǔ)過稗的參數(shù)命名.形參統(tǒng)-以p_開頭.過程內(nèi)變用:以v_開頭、參數(shù)類型請(qǐng)盡港不嗖便用引用類樂,減少不必吹的偽依賴。比方說emp,emp.deptid、帶默認(rèn)值的參瓶要求放在參數(shù)列農(nóng)敲

溫馨提示

  • 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)論