【正文】
成都信息工程學(xué)院 學(xué)位論文 面向?qū)ο蟮臄?shù)據(jù)建模 —— 數(shù)據(jù)篩選接口的設(shè)計(jì) 論文作者姓名: 申請(qǐng)學(xué)位專(zhuān)業(yè): 申請(qǐng)學(xué)位類(lèi)別: 指導(dǎo)教師姓名(職稱(chēng)): 論文提交日期: 面向?qū)ο蟮臄?shù)據(jù)建模 —— 數(shù)據(jù)篩選接口的設(shè)計(jì) 摘 要 《 WISE 系統(tǒng)》是一個(gè)功能強(qiáng)大的數(shù)據(jù)處理系統(tǒng)。它應(yīng)用于 某公司,此公司由于行業(yè)的關(guān)系需要它去處理龐大的數(shù)據(jù),這些數(shù)據(jù)每天都在以上百萬(wàn)條甚至上億條的數(shù)量在增加。因此 它需要處理海量的數(shù)據(jù),它 的其中一個(gè)比較重要的功能是根據(jù)復(fù)雜并且靈活的條件篩選出適當(dāng)?shù)臄?shù)據(jù)返回給客戶。本論文主要講述了如何針對(duì)數(shù)據(jù)篩選條件比較復(fù)雜并且比較靈活這一需求,在做了詳盡的需求分析之后,進(jìn)行了一系列的設(shè)計(jì),包括解決方案的設(shè)計(jì),數(shù)據(jù)建模, PL/SQL 程序設(shè)計(jì),最終完成整個(gè)數(shù)據(jù)篩選接口的設(shè)計(jì)。 在整個(gè)數(shù)據(jù)篩選接口的設(shè)計(jì)中,在傳統(tǒng)的關(guān)系性數(shù)據(jù)庫(kù)的基礎(chǔ)上,會(huì)嘗試著應(yīng)用一些面向?qū)ο蟮乃枷肴ピO(shè)計(jì)。尤其在數(shù)據(jù)建模階段 ,通過(guò)傳統(tǒng)的數(shù)據(jù)模型之間的關(guān)系 ,例如主外鍵關(guān)系 ,實(shí)現(xiàn)了一些重要的面向?qū)ο蟮乃枷搿? 關(guān)鍵字 :數(shù)據(jù)篩選;面向?qū)ο螅粩?shù)據(jù)建模; PL/SQL Implement the Object Oriented thinking in the project to data modeling —— the design about the API to filter data Abstract 《 The WISE system》 is a powerful system for data processing .It is applied in a pany which needs to use this system to process huge amount data. And these data will be increased by millions or hundreds millions. So it needs to process the huge amount data .One of its important function is return the right data to client filtered by some plex and flexible conditions. The most content of the paper talks about how to finish the total design for the requirement which is the conditions to filter data can be plex and flexible. The entire design will include the design of project to solve problem, the design about data modeling, and the design about PL/SQL program. Finally the all designs to implement the interface for filtering the data are finished .We will try implementing the object oriented thinking to design on the base of the relational database in the process to finish all the design. Especially in the process to implement data modeling, we will implement some important object oriented thinking by some relations among traditional data models, such as PK or FK relationship. Key words: data filtration; object oriented; data modeling; PL/SQL 目 錄 論文總頁(yè)數(shù): 24頁(yè) 1 引 言 .......................................................................................................................... 5 2 開(kāi)發(fā)概述 ...................................................................................................................... 5 3 需求分析 ...................................................................................................................... 5 3. 1 需求調(diào)研 .............................................................................................................. 5 3. 2 開(kāi)發(fā)運(yùn)行環(huán)境 ....................................................................................................... 7 4 解決方案的設(shè)計(jì) ............................................................................................................ 7 5 數(shù)據(jù)建模 .................................................................................................................... 12 數(shù)據(jù)模型的建立 ................................................................................................... 12 數(shù)據(jù)庫(kù)表結(jié)構(gòu)的設(shè)計(jì) ............................................................................................ 13 數(shù)據(jù)庫(kù)基礎(chǔ)視圖的設(shè)計(jì) ........................................................................................ 15 6 PL/SQL程序設(shè)計(jì) ......................................................................................................... 16 結(jié) 論 ........................................................................................................................ 26 參考文獻(xiàn) ........................................................................................................................ 26 致 謝 ........................................................................................................................ 27 聲 明 ........................................................................................................................ 28 1 引 言 當(dāng)今社會(huì),某些行業(yè)的數(shù)據(jù)量越來(lái)越龐大,每天都在以上百萬(wàn)條甚至上億條的數(shù)量在增加,因此對(duì)這些行業(yè)的數(shù)據(jù)處理系 統(tǒng)的性能要求也越來(lái)越高。這些要求不但包括處理速度盡可能快,系統(tǒng)可維護(hù)性盡可能高等傳統(tǒng)需求,而且增加了對(duì)數(shù)據(jù)的處理盡可能的靈活等一些新的需求。要滿足這些新的需求,我們需要研究這些新需求的特性,挖掘一些解決辦法。面向?qū)ο蟮?數(shù)據(jù) 建模是我們研究的一個(gè)重要方向。 引用言論: Steve Hoberman 所提出的 “ 抽象組件 ” 的概念和面向?qū)ο笤O(shè)計(jì)中的 “ 設(shè)計(jì)模式 ” 非常類(lèi)似。即數(shù)據(jù)庫(kù)專(zhuān)家在多次的數(shù)據(jù)建模后 , 將各個(gè)項(xiàng)目中的類(lèi)似部分抽象化,提取出特定的建模模型片段,以后只需在新的項(xiàng)目中對(duì)這些模型片段細(xì)化派生,即可快速構(gòu)建出適合于該 項(xiàng)目的數(shù)據(jù)庫(kù)架構(gòu)。 2 開(kāi)發(fā)概述 《 WISE 系統(tǒng)》是一個(gè)功能強(qiáng)大的數(shù)據(jù)處理系統(tǒng)。 由于業(yè)務(wù)的關(guān)系, 它需要處理海量的數(shù)據(jù),它的比較重要的 一個(gè) 功能是根據(jù)復(fù)雜并且靈活的條件篩選出適當(dāng)?shù)臄?shù)據(jù)返回給客戶。 針對(duì)這一數(shù)據(jù)篩選功能,開(kāi)發(fā)的目標(biāo)是設(shè)計(jì)一個(gè)合理的數(shù)據(jù)篩選接口。接口能做到便于動(dòng)態(tài)控制,便于動(dòng)態(tài)修改,以及便于維護(hù)。 開(kāi)發(fā)的過(guò)程包括需求分析,解決方案的設(shè)計(jì),數(shù)據(jù)建模, PL/SQL 程序設(shè)計(jì),最終完成整個(gè)數(shù)據(jù)篩選接口的設(shè)計(jì)。 3 需求分析 3. 1 需求調(diào)研 WISE 系統(tǒng)是某公司的數(shù)據(jù)處理系統(tǒng),它的一個(gè)主要功能是每天根據(jù) 復(fù)雜并且靈活的條件篩選出適當(dāng)?shù)臄?shù)據(jù)返回給客戶。所篩選的數(shù)據(jù)都來(lái)自于一張表,這張表的字段有 260 個(gè),這些字段中有超過(guò) 250 個(gè)字段需要作為篩選字段,它們通常互為組合去篩選出客戶需要的數(shù)據(jù),根據(jù)客戶的需要它們的組合又是多變的。這張表的數(shù)據(jù)量通常在一千萬(wàn)到一億條記錄之間。值得注意的是,篩選條件需要去匹配的值是具有特定意義的,盡管這些值數(shù)目眾多,但它們的數(shù)量不是隨意增長(zhǎng)的。而且這些值是根據(jù)客戶的需求可以去定制的。 表 1 復(fù)雜表 Complexity 字段名 數(shù)據(jù)類(lèi)型 說(shuō)明 C_ID 數(shù)字 主鍵 C_U1 文 本 C_U2 文本 C_U13 文本 C_U4 貨幣 C_U5 數(shù)字 C_U6 貨幣 C_U7 文本 C_U8 貨幣 C_U9 文本 C_U10 貨幣 C_U11 文本 C_U12 文本 C_U13 日期 /時(shí)間 C_U14 日期 /時(shí)間 C_U15 數(shù)字 C_U16 數(shù)字 C_U17 文本 C_U18 文本 C_U19 文本 C_U20 貨幣 C_U21 數(shù)字 C_U22 貨幣 C_U23 文本 C_U24 貨幣 C_U25 文本 等等 一共 260 個(gè)字段 因此對(duì)數(shù)據(jù)篩選的需求特點(diǎn)主要有: 數(shù) 據(jù) 篩 選 需 求 特 點(diǎn)數(shù) 據(jù) 量 龐 大來(lái) 自 于 一 張 表 , 表 的 字 段 較 多 , 大 多數(shù) 為 篩 選 字 段篩 選 字 段 通 常 組 合 , 組 合 較 為 靈 活篩 選 列 去 需 要 去 匹 配 的 值 , 有 特 定意 義 , 客 戶 可 以 定 制 圖 1 需求特點(diǎn)分析圖 數(shù)據(jù)量龐大在這里不是本次設(shè)計(jì) 的研究重點(diǎn),后三個(gè)特點(diǎn)是本次設(shè)計(jì)要解決好的需求。 3. 2 開(kāi)發(fā)運(yùn)行環(huán)境 開(kāi)發(fā)所需的基本軟、硬件環(huán)境為: ? Windows 2021 或者 Windows XP。 ? Oracle 10 g R2。 ? CPU ? 1G 以上內(nèi)存。 ? 2G 以上可用硬盤(pán)空間。 在 Windows 2021 操作系統(tǒng)下,以 Toad for Oracle Xpert 為開(kāi)發(fā)工具,用 Oracle 10 g R2 為后臺(tái)數(shù)據(jù)庫(kù)。 4 解決方案的設(shè)計(jì) 在這里 來(lái)逐步分析需求應(yīng)該通過(guò)怎樣的方式來(lái)實(shí)現(xiàn),進(jìn)行一些解決方案的設(shè)計(jì)。 方案 1 :直接寫(xiě)過(guò)程來(lái)實(shí)現(xiàn)。 根據(jù)不同的篩選條件,寫(xiě)不同的過(guò)程來(lái)實(shí)現(xiàn)數(shù)據(jù)篩選。 問(wèn)題:很顯然,這種方案是行不通的。由于篩選字段數(shù)量達(dá)兩百多個(gè),而且相互之間可以互為組合,所以是不應(yīng)該寫(xiě)過(guò)程來(lái)實(shí)現(xiàn)的。即便把目前需求要求的篩選條件通過(guò)寫(xiě)過(guò)程來(lái)實(shí)現(xiàn)了(暫不考慮開(kāi)發(fā)人員的頭疼),如果需要添加一些新的篩選,那將是非常麻煩的。再則, 如果所寫(xiě)過(guò)程中出現(xiàn)一些問(wèn)題,也是難以維護(hù)的。 所以考慮到開(kāi)發(fā)的質(zhì)量與代碼的可維護(hù)性,是不可能采用此方案的。 方案 2: 結(jié)合數(shù)據(jù)建模 與程序設(shè)計(jì)來(lái)實(shí)現(xiàn)。 由于篩選條件數(shù)量眾多,但是條件之間的很多部分相互重合,從面向?qū)ο蟮慕嵌瘸霭l(fā),這些條件間存在繼承的關(guān)系,如果能采用面向?qū)ο蟮姆椒ǎ蛟S能做到重用條件。 假設(shè)一共有 250 個(gè)獨(dú)立的篩選條件,也即表中的 250 個(gè)字段單獨(dú)作為條件時(shí)的情況。這些條件能相互組合,組合后的條件越發(fā)復(fù)雜,寫(xiě)程序時(shí)如果按照方案1要想做到很好的代碼重用是不可能