【正文】
成都信息工程學院 學位論文 面向?qū)ο蟮臄?shù)據(jù)建模 —— 數(shù)據(jù)篩選接口的設(shè)計 論文作者姓名: 申請學位專業(yè): 申請學位類別: 指導教師姓名(職稱): 論文提交日期: 面向?qū)ο蟮臄?shù)據(jù)建模 —— 數(shù)據(jù)篩選接口的設(shè)計 摘 要 《 WISE 系統(tǒng)》是一個功能強大的數(shù)據(jù)處理系統(tǒng)。它應(yīng)用于 某公司,此公司由于行業(yè)的關(guān)系需要它去處理龐大的數(shù)據(jù),這些數(shù)據(jù)每天都在以上百萬條甚至上億條的數(shù)量在增加。因此 它需要處理海量的數(shù)據(jù),它 的其中一個比較重要的功能是根據(jù)復雜并且靈活的條件篩選出適當?shù)臄?shù)據(jù)返回給客戶。本論文主要講述了如何針對數(shù)據(jù)篩選條件比較復雜并且比較靈活這一需求,在做了詳盡的需求分析之后,進行了一系列的設(shè)計,包括解決方案的設(shè)計,數(shù)據(jù)建模, PL/SQL 程序設(shè)計,最終完成整個數(shù)據(jù)篩選接口的設(shè)計。 在整個數(shù)據(jù)篩選接口的設(shè)計中,在傳統(tǒng)的關(guān)系性數(shù)據(jù)庫的基礎(chǔ)上,會嘗試著應(yīng)用一些面向?qū)ο蟮乃枷肴ピO(shè)計。尤其在數(shù)據(jù)建模階段 ,通過傳統(tǒng)的數(shù)據(jù)模型之間的關(guān)系 ,例如主外鍵關(guān)系 ,實現(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 目 錄 論文總頁數(shù): 24頁 1 引 言 .......................................................................................................................... 5 2 開發(fā)概述 ...................................................................................................................... 5 3 需求分析 ...................................................................................................................... 5 3. 1 需求調(diào)研 .............................................................................................................. 5 3. 2 開發(fā)運行環(huán)境 ....................................................................................................... 7 4 解決方案的設(shè)計 ............................................................................................................ 7 5 數(shù)據(jù)建模 .................................................................................................................... 12 數(shù)據(jù)模型的建立 ................................................................................................... 12 數(shù)據(jù)庫表結(jié)構(gòu)的設(shè)計 ............................................................................................ 13 數(shù)據(jù)庫基礎(chǔ)視圖的設(shè)計 ........................................................................................ 15 6 PL/SQL程序設(shè)計 ......................................................................................................... 16 結(jié) 論 ........................................................................................................................ 26 參考文獻 ........................................................................................................................ 26 致 謝 ........................................................................................................................ 27 聲 明 ........................................................................................................................ 28 1 引 言 當今社會,某些行業(yè)的數(shù)據(jù)量越來越龐大,每天都在以上百萬條甚至上億條的數(shù)量在增加,因此對這些行業(yè)的數(shù)據(jù)處理系 統(tǒng)的性能要求也越來越高。這些要求不但包括處理速度盡可能快,系統(tǒng)可維護性盡可能高等傳統(tǒng)需求,而且增加了對數(shù)據(jù)的處理盡可能的靈活等一些新的需求。要滿足這些新的需求,我們需要研究這些新需求的特性,挖掘一些解決辦法。面向?qū)ο蟮?數(shù)據(jù) 建模是我們研究的一個重要方向。 引用言論: Steve Hoberman 所提出的 “ 抽象組件 ” 的概念和面向?qū)ο笤O(shè)計中的 “ 設(shè)計模式 ” 非常類似。即數(shù)據(jù)庫專家在多次的數(shù)據(jù)建模后 , 將各個項目中的類似部分抽象化,提取出特定的建模模型片段,以后只需在新的項目中對這些模型片段細化派生,即可快速構(gòu)建出適合于該 項目的數(shù)據(jù)庫架構(gòu)。 2 開發(fā)概述 《 WISE 系統(tǒng)》是一個功能強大的數(shù)據(jù)處理系統(tǒng)。 由于業(yè)務(wù)的關(guān)系, 它需要處理海量的數(shù)據(jù),它的比較重要的 一個 功能是根據(jù)復雜并且靈活的條件篩選出適當?shù)臄?shù)據(jù)返回給客戶。 針對這一數(shù)據(jù)篩選功能,開發(fā)的目標是設(shè)計一個合理的數(shù)據(jù)篩選接口。接口能做到便于動態(tài)控制,便于動態(tài)修改,以及便于維護。 開發(fā)的過程包括需求分析,解決方案的設(shè)計,數(shù)據(jù)建模, PL/SQL 程序設(shè)計,最終完成整個數(shù)據(jù)篩選接口的設(shè)計。 3 需求分析 3. 1 需求調(diào)研 WISE 系統(tǒng)是某公司的數(shù)據(jù)處理系統(tǒng),它的一個主要功能是每天根據(jù) 復雜并且靈活的條件篩選出適當?shù)臄?shù)據(jù)返回給客戶。所篩選的數(shù)據(jù)都來自于一張表,這張表的字段有 260 個,這些字段中有超過 250 個字段需要作為篩選字段,它們通?;榻M合去篩選出客戶需要的數(shù)據(jù),根據(jù)客戶的需要它們的組合又是多變的。這張表的數(shù)據(jù)量通常在一千萬到一億條記錄之間。值得注意的是,篩選條件需要去匹配的值是具有特定意義的,盡管這些值數(shù)目眾多,但它們的數(shù)量不是隨意增長的。而且這些值是根據(jù)客戶的需求可以去定制的。 表 1 復雜表 Complexity 字段名 數(shù)據(jù)類型 說明 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 日期 /時間 C_U14 日期 /時間 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 個字段 因此對數(shù)據(jù)篩選的需求特點主要有: 數(shù) 據(jù) 篩 選 需 求 特 點數(shù) 據(jù) 量 龐 大來 自 于 一 張 表 , 表 的 字 段 較 多 , 大 多數(shù) 為 篩 選 字 段篩 選 字 段 通 常 組 合 , 組 合 較 為 靈 活篩 選 列 去 需 要 去 匹 配 的 值 , 有 特 定意 義 , 客 戶 可 以 定 制 圖 1 需求特點分析圖 數(shù)據(jù)量龐大在這里不是本次設(shè)計 的研究重點,后三個特點是本次設(shè)計要解決好的需求。 3. 2 開發(fā)運行環(huán)境 開發(fā)所需的基本軟、硬件環(huán)境為: ? Windows 2021 或者 Windows XP。 ? Oracle 10 g R2。 ? CPU ? 1G 以上內(nèi)存。 ? 2G 以上可用硬盤空間。 在 Windows 2021 操作系統(tǒng)下,以 Toad for Oracle Xpert 為開發(fā)工具,用 Oracle 10 g R2 為后臺數(shù)據(jù)庫。 4 解決方案的設(shè)計 在這里 來逐步分析需求應(yīng)該通過怎樣的方式來實現(xiàn),進行一些解決方案的設(shè)計。 方案 1 :直接寫過程來實現(xiàn)。 根據(jù)不同的篩選條件,寫不同的過程來實現(xiàn)數(shù)據(jù)篩選。 問題:很顯然,這種方案是行不通的。由于篩選字段數(shù)量達兩百多個,而且相互之間可以互為組合,所以是不應(yīng)該寫過程來實現(xiàn)的。即便把目前需求要求的篩選條件通過寫過程來實現(xiàn)了(暫不考慮開發(fā)人員的頭疼),如果需要添加一些新的篩選,那將是非常麻煩的。再則, 如果所寫過程中出現(xiàn)一些問題,也是難以維護的。 所以考慮到開發(fā)的質(zhì)量與代碼的可維護性,是不可能采用此方案的。 方案 2: 結(jié)合數(shù)據(jù)建模 與程序設(shè)計來實現(xiàn)。 由于篩選條件數(shù)量眾多,但是條件之間的很多部分相互重合,從面向?qū)ο蟮慕嵌瘸霭l(fā),這些條件間存在繼承的關(guān)系,如果能采用面向?qū)ο蟮姆椒?,或許能做到重用條件。 假設(shè)一共有 250 個獨立的篩選條件,也即表中的 250 個字段單獨作為條件時的情況。這些條件能相互組合,組合后的條件越發(fā)復雜,寫程序時如果按照方案1要想做到很好的代碼重用是不可能