freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)-面向?qū)ο蟮臄?shù)據(jù)建?!獢?shù)據(jù)篩選接口的設(shè)計(jì)—論文-在線瀏覽

2025-02-03 17:13本頁(yè)面
  

【正文】 論文作者姓名: 申請(qǐng)學(xué)位專業(yè): 申請(qǐng)學(xué)位類別: 指導(dǎo)教師姓名(職稱): 論文提交日期: 面向?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ù)量在增加。本論文主要講述了如何針對(duì)數(shù)據(jù)篩選條件比較復(fù)雜并且比較靈活這一需求,在做了詳盡的需求分析之后,進(jìn)行了一系列的設(shè)計(jì),包括解決方案的設(shè)計(jì),數(shù)據(jù)建模, PL/SQL 程序設(shè)計(jì),最終完成整個(gè)數(shù)據(jù)篩選接口的設(shè)計(jì)。尤其在數(shù)據(jù)建模階段 ,通過(guò)傳統(tǒng)的數(shù)據(jù)模型之間的關(guān)系 ,例如主外鍵關(guān)系 ,實(shí)現(xiàn)了一些重要的面向?qū)ο蟮乃枷?。這些要求不但包括處理速度盡可能快,系統(tǒng)可維護(hù)性盡可能高等傳統(tǒng)需求,而且增加了對(duì)數(shù)據(jù)的處理盡可能的靈活等一些新的需求。面向?qū)ο蟮?數(shù)據(jù) 建模是我們研究的一個(gè)重要方向。即數(shù)據(jù)庫(kù)專家在多次的數(shù)據(jù)建模后 , 將各個(gè)項(xiàng)目中的類似部分抽象化,提取出特定的建模模型片段,以后只需在新的項(xiàng)目中對(duì)這些模型片段細(xì)化派生,即可快速構(gòu)建出適合于該 項(xiàng)目的數(shù)據(jù)庫(kù)架構(gòu)。 由于業(yè)務(wù)的關(guān)系, 它需要處理海量的數(shù)據(jù),它的比較重要的 一個(gè) 功能是根據(jù)復(fù)雜并且靈活的條件篩選出適當(dāng)?shù)臄?shù)據(jù)返回給客戶。接口能做到便于動(dòng)態(tài)控制,便于動(dòng)態(tài)修改,以及便于維護(hù)。 3 需求分析 3. 1 需求調(diào)研 WISE 系統(tǒng)是某公司的數(shù)據(jù)處理系統(tǒng),它的一個(gè)主要功能是每天根據(jù) 復(fù)雜并且靈活的條件篩選出適當(dāng)?shù)臄?shù)據(jù)返回給客戶。這張表的數(shù)據(jù)量通常在一千萬(wàn)到一億條記錄之間。而且這些值是根據(jù)客戶的需求可以去定制的。 3. 2 開發(fā)運(yùn)行環(huán)境 開發(fā)所需的基本軟、硬件環(huán)境為: ? Windows 2021 或者 Windows XP。 ? CPU ? 1G 以上內(nèi)存。 在 Windows 2021 操作系統(tǒng)下,以 Toad for Oracle Xpert 為開發(fā)工具,用 Oracle 10 g R2 為后臺(tái)數(shù)據(jù)庫(kù)。 方案 1 :直接寫過(guò)程來(lái)實(shí)現(xiàn)。 問(wèn)題:很顯然,這種方案是行不通的。即便把目前需求要求的篩選條件通過(guò)寫過(guò)程來(lái)實(shí)現(xiàn)了(暫不考慮開發(fā)人員的頭疼),如果需要添加一些新的篩選,那將是非常麻煩的。 所以考慮到開發(fā)的質(zhì)量與代碼的可維護(hù)性,是不可能采用此方案的。 由于篩選條件數(shù)量眾多,但是條件之間的很多部分相互重合,從面向?qū)ο蟮慕嵌瘸霭l(fā),這些條件間存在繼承的關(guān)系,如果能采用面向?qū)ο蟮姆椒?,或許能做到重用條件。這些條件能相互組合,組合后的條件越發(fā)復(fù)雜,寫程序時(shí)如果按照方案1要想做到很好的代碼重用是不可能實(shí)現(xiàn)的。作為表中列名出現(xiàn)的字段,是不可能相互組合的。 如果把這些字段轉(zhuǎn)換成表中的記錄值呢?試想一下,似乎看到一線光明,因?yàn)樵?PL/SQL 里,可以用到動(dòng)態(tài) SQL 的方法,這樣可以所需要的條件動(dòng)態(tài)的組合了。 根據(jù) 目前得出的結(jié)論,我們現(xiàn)在需要一個(gè)表,表中的某一列的記錄值為Complexity 表中作為篩選條件的列名,如下 表 2所示: 表 2 FIELD 字段名 數(shù)據(jù)類型 說(shuō)明 ID 數(shù)字 主鍵 NAME 文本 COLUMN_NAME 文本 列名 FIELD 表中的 COLUMN_NAME 列存放 Complexity 表中作為篩選條件的列名。 接著往下分析。 這里 把每個(gè)單獨(dú)的列名作為篩選條件的條件叫做簡(jiǎn)單條件,而多個(gè)簡(jiǎn)單條件組合而成的條件叫做復(fù)雜條件。 假設(shè)現(xiàn)在客戶 Ted需要的數(shù)據(jù)是以 C_U1A和 C_U2B或者 C_U3=C 和 C_U1=D作為篩選條件而獲取的,而另一客戶 Robin 需要的數(shù)據(jù)則是以 C_U1A 和 C_U2B并且 C_U3=C 和 C_U1=D 作為篩選條件而獲取的。也就是說(shuō)不論一個(gè)復(fù)雜條件是由多少個(gè)簡(jiǎn)單條件組合而成,這些簡(jiǎn)單條件間的關(guān)系只有兩種。 現(xiàn)在就可以做到把一個(gè)個(gè)簡(jiǎn)單條件通過(guò)兩種關(guān)系的一種‘拼裝’起來(lái),組合而成一個(gè)個(gè)復(fù)雜條件。 復(fù) 雜 條 件 簡(jiǎn) 單 條 件 簡(jiǎn) 單 序 列 條 件A N D / O R 圖 2 條件間邏輯關(guān)系圖 通過(guò)上圖,很容易想到,這里 只需要在數(shù)據(jù)庫(kù)中創(chuàng)建五個(gè)表來(lái)來(lái)實(shí)現(xiàn)這 一方式,也 就是 可以做到需求里的篩選條件間的自由組合這一功能了。 C O N D I T I O NP K I D N A M E N E G A T E D C O N T A I N E R _ I DC O M P O U N D _ C O N D I T I O NP K I D C O N J U N C T I O N _ I DS I M P L E _ C O N D I T I O NP K I D N A M E V A L U E O P E R A T O R _ I D F I E L D _ I DL I S T _ C O N D I T I O NP K I D F I E L D _ I DC O N J U N C T I O NP K I D N A M E C O D EF I E L D P K I D N A M E C O L U M N _ N A M E 圖 3 條件功能組合圖一 到此 就可以實(shí)現(xiàn)需求里的篩選條件間的自由組合這一功能了。 試想一下, 如果現(xiàn)在不對(duì)這些值不做任何處理,那 可以想 象開發(fā)人員 將會(huì) 固定的把這些有著特定意義的數(shù)值寫在 PL/SQL 程序中,這樣做是不能做到客戶靈活定制的,而且顯而易見的是,從安全的角度出發(fā),這樣做也是不安全的。所以必須要把這些數(shù)值存放到表中去。 對(duì)于序列條件,則不能這樣,因?yàn)樗枰テヅ涞氖牵欠翊嬖谟谀骋环秶臄?shù)值當(dāng)中,例如判斷‘ C_U1 IN (A,B,C,D)’是否成立。 所以為了能把這些數(shù)值‘拼裝’起來(lái),這些數(shù)值就需要獨(dú)立的存放在一張表中。 現(xiàn)在需要?jiǎng)?chuàng)建的表的框架如下: C O N D I T I O NP K I D N A M E N E G A T E D C O N T A I N E R _ I DC O M P O U N D _ C O N D I T I O NP K I D C O N J U N C T I O N _ I DS I M P L E _ C O N D I T I O NP K I D N A M E V A L U E O P E R A T O R _ I D F I E L D _ I DL I S T _ C O N D I T I O NP K I D F I E L D _ I DC O N J U N C T I O NP K I D N A M E C O D EF I E L D P K I D N A M E C O L U M N _ N A M EL I S T _ C O N D I T I O N _ M A T C H _ V A L U E 1P K I D L I S T _ C O N D I T I O N _ I D M A T C H _ V A L U E 圖 4 條件功能組合圖二 到此,對(duì)于復(fù)雜表中作為篩選條件的字段比較多(大約 250 個(gè)),且相互組合,而篩選條件需要去匹配的值是具有特定意義的,且可以根據(jù)客戶的需要進(jìn)行定制這一基本需求,我們也基本做到了動(dòng)態(tài)控制,動(dòng)態(tài)修改,并且便于維護(hù)。 但是有一個(gè)問(wèn)題,假設(shè)通過(guò) 寫程序來(lái)產(chǎn)生了非常多的篩選條件,某一天,客戶需要再增加一系列 數(shù)量眾多的篩選條件,會(huì)發(fā)生什么呢?那就 會(huì)花大量的時(shí)間去寫代碼。換句話說(shuō),這樣的設(shè)計(jì)會(huì)花了大量的時(shí)間 在做類似的事情上。問(wèn)題在哪兒呢?分析一下,對(duì)于簡(jiǎn)單條件,比如‘ C_U1 A’ 或者‘ C_U2=B’,篩選列和匹配的數(shù)值我們都可以在相關(guān)表中取到,而篩選列和匹配的數(shù)值之間的關(guān)系,例如大于,小于,等于,時(shí)間從某時(shí)間開始,這些關(guān)系是我們?cè)趯懘a的時(shí)候一直在重復(fù)的寫的。 要是通過(guò)接口設(shè)計(jì) 能把這些關(guān)系像處理篩選列與匹配的數(shù)值一樣處理,這個(gè)問(wèn)題也就解決了。因?yàn)檫@些關(guān)系也就只有數(shù)種,例如數(shù)字間的比較,時(shí)間數(shù)值之間的比較,諸如此類的關(guān)系是可以得到有效控制的。 通過(guò)以上的分析,現(xiàn)在 只需要再加一個(gè)表就可以了,這張表用來(lái)存放簡(jiǎn)單條件的篩選列與匹配的數(shù)值之間的關(guān)系種類,而對(duì)于序列條件,就不用,在程序里很容易做到動(dòng)態(tài)處理。 5 數(shù)據(jù)建模 數(shù)據(jù)模型的建立 根據(jù)解決方案的設(shè)計(jì),畫出數(shù)據(jù)篩選接口的完整數(shù)據(jù)庫(kù)架構(gòu), 如后頁(yè) 圖所示: C O N D I T I O NP K I D N A M E N E G A T E D C O N T A I N E R _ I DC O M P O U N D _ C O N D I T I O NP K I D C O N J U N C T I O N _ I DS I M P L E _ C O N D I T I O NP K I D N A M E V A L U E O P E R A T O R _ I D F I E L D _ I DL I S T _ C O N D I T I O NP K I D F I E L D _ I DC O N J U N C T I O NP K I D N A M E C O D EC O N D I T I O N _ O P E R A T O RP K I D C O D E N A M EF I E L D P K I D N A M E C O L U M N _ N A M EL I S T _ C O N D I T I O N _ M A T C H _ V A L U EP K I D L I S T _ C O N D I T I O N _ I D M A T C H _ V A L U E圖 5 數(shù)據(jù)庫(kù)架構(gòu) 圖 數(shù)據(jù)庫(kù)表結(jié)構(gòu)的設(shè)計(jì) 根據(jù)前面完成的解決方案的設(shè)計(jì)以 及數(shù)據(jù)模型的 建立, 可以設(shè)計(jì)出完整的數(shù)據(jù)庫(kù)表結(jié)構(gòu)。 需要?jiǎng)?chuàng)建四個(gè)視圖,分別為簡(jiǎn)單條件視圖,序列條件視圖,組合條件視圖,以及條件視圖。為了避免占據(jù)過(guò)多篇幅,這里只以序列條件視圖和組合條件視圖為例。 到此,數(shù)據(jù)建模完成。 從客戶出發(fā),這里 來(lái)整理一下思路。 開發(fā)人員 可以用寫一系列的過(guò)程來(lái)實(shí)現(xiàn),通過(guò)傳入必需的參數(shù)來(lái)調(diào)用相關(guān)的過(guò)程,插入一些數(shù)值。 以簡(jiǎn) 單條件為例: procedure Ins_Simple_Condition ( p_calling_user_id integer, Required p_name varchar2 := null, p_negated number := 0, Required p_container_id integer := null, p_field_id integer, Required p_value varchar2 := null, p_enum_value_id integer := null, p_parison_field_id integer := null, p_operator_id integer, Required p_new_row_id out integer ) is begin 省略部分代碼 Ins_Condition ( p_calling_user_id, p_name, p_negated, p_container_id, p_new_row_id )。 省略部分代碼 end。 l_field_type_code varchar2( 100 )。 l_parison_field_type_code varchar2( 100 )。 l_operator_id integer。 begin 省略部分代碼 select ID, Code into l_operator_id, l_operator_code from Condition_Operator where ( lower( Code ) = lower( p_operator_code ) )。 省略部分代碼 end。為了不占據(jù)篇幅,這里只以 一個(gè)簡(jiǎn)單的復(fù)合條件為例: First pound condition (NO_NOTICE IN(B,C,D) AND MSG_DELINQ_DAYS90 AND DO_NOT_PROCESS=9 AND CLIENT_ID=116) declare l_calling_user_id integer。 l_count integer。 l_item_id integer。 l_inventory_item_id integer。 l_pound_id integer。 l_rule_id integer。 l_state_4_ted1 varchar2( 4000 ) :=
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1