摘 要
數(shù)據(jù)倉(cāng)庫(kù)是處理大量數(shù)據(jù)的一種有效模式。面對(duì)高校信息化建設(shè)中日益增長(zhǎng)海量數(shù)據(jù),本文使用了SQL Server 2005數(shù)據(jù)倉(cāng)庫(kù)方案,并在模式表處理、連接池設(shè)置和大文本數(shù)據(jù)操作等方面做出了優(yōu)化說(shuō)明。
【關(guān)鍵詞】數(shù)據(jù)倉(cāng)庫(kù) OLAP SQL Server 2005
1 緒論
伴隨著高校信息化建設(shè)和數(shù)字化校園建設(shè)水平的不斷提高,高校內(nèi)部各方面應(yīng)用已積累了大量的數(shù)據(jù)。如何將海量的數(shù)據(jù)轉(zhuǎn)化為有用的信息使之更好地為學(xué)校日常的教學(xué)、科研、管理以及決策服務(wù);已成為目前各高校日益重視的課題。而利用數(shù)據(jù)倉(cāng)庫(kù)技術(shù)則能很好地解決這一問(wèn)題,建設(shè)數(shù)據(jù)倉(cāng)庫(kù)來(lái)應(yīng)對(duì)海量的數(shù)據(jù)存儲(chǔ)問(wèn)題已成為學(xué)校信息化建設(shè)一種必然趨勢(shì)。
2 數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)組織
數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)組織結(jié)構(gòu)是分層的。為了滿(mǎn)足不同分析的需要和提高決策的效率,先從存儲(chǔ)有事務(wù)數(shù)據(jù)的數(shù)據(jù)庫(kù)中獲取原始數(shù)據(jù),然后按照決策的要求進(jìn)行抽取、集成和存儲(chǔ),從而生成數(shù)據(jù)倉(cāng)庫(kù)。數(shù)據(jù)倉(cāng)庫(kù)是由當(dāng)前細(xì)節(jié)數(shù)據(jù)、歷史細(xì)節(jié)數(shù)據(jù)、輕度綜合數(shù)據(jù)、高度綜合數(shù)據(jù)等四個(gè)級(jí)別的數(shù)據(jù)構(gòu)成,其數(shù)據(jù)組織結(jié)構(gòu)如圖1所示。
3 數(shù)據(jù)倉(cāng)庫(kù)解決方案
3.1 OLAP的體系結(jié)構(gòu)
SQL Server 2005中集成了OLAP(On-Line Analytical Processing,聯(lián)機(jī)分析處理),并提供了擴(kuò)充的基于COM的OLAP接口。通過(guò)一系列的服務(wù)程序支持?jǐn)?shù)據(jù)倉(cāng)庫(kù)的應(yīng)用,如DTS數(shù)據(jù)輸入/輸出和自動(dòng)調(diào)度功能,在數(shù)據(jù)傳輸過(guò)程中完成數(shù)據(jù)的驗(yàn)證、清洗和轉(zhuǎn)換操作,支持在線(xiàn)分析處理,PivotTable Services提供客戶(hù)端OLAP數(shù)據(jù)訪(fǎng)問(wèn)功能,通過(guò)這一服務(wù),開(kāi)發(fā)人員可以用VB或其他語(yǔ)言開(kāi)發(fā)用戶(hù)前端數(shù)據(jù)展現(xiàn)程序,另外還支持第三方數(shù)據(jù)展現(xiàn)工具。它們一起構(gòu)成了一個(gè)基于微軟產(chǎn)品的完整數(shù)據(jù)倉(cāng)庫(kù)工具集。
3.2 微軟數(shù)據(jù)倉(cāng)庫(kù)框架
基于SQL Server 2005的數(shù)據(jù)倉(cāng)庫(kù)框架是一組實(shí)現(xiàn)數(shù)據(jù)倉(cāng)庫(kù)功能的組件和API。該框架集成了數(shù)據(jù)倉(cāng)庫(kù)的許多組件,如業(yè)務(wù)系統(tǒng)數(shù)據(jù)源、設(shè)計(jì)/開(kāi)發(fā)工具、數(shù)據(jù)析取和轉(zhuǎn)換工具、數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)、數(shù)據(jù)存取和分析工具、系統(tǒng)管理工具等。
4 信息管理系統(tǒng)的實(shí)現(xiàn)與優(yōu)化
4.1 模式表的處理
在進(jìn)行OLAP操作前,我們將數(shù)據(jù)庫(kù)中信息讀取到臨時(shí)多維數(shù)據(jù)庫(kù)中。其中起關(guān)鍵作用的就是Mondrian的模式表(scheme)Mondrian引擎根據(jù)模式表中關(guān)于關(guān)系數(shù)據(jù)庫(kù)中數(shù)據(jù)信息的描述來(lái)構(gòu)建多維數(shù)據(jù)庫(kù),并從關(guān)系數(shù)據(jù)庫(kù)中取得數(shù)據(jù)來(lái)填充多維數(shù)據(jù)庫(kù)。以下是具體實(shí)現(xiàn)的代碼片段:
……
在這個(gè)模式表中,定義了一個(gè)立方體(cube)以及三個(gè)共享維度,即"time ", "local", "type",它們的含義分別是時(shí)間、地區(qū)、類(lèi)型。
4.2 連接池的設(shè)置
在Weblogic服務(wù)器上進(jìn)行數(shù)據(jù)庫(kù)連接池的設(shè)計(jì)。在設(shè)置時(shí)要對(duì)工廠(chǎng)類(lèi)(Factory)"org.apache.commons.dbcp.BasicDataSourceFacroty”的最大連接數(shù)(max Active),最大等待時(shí)間(max Wait),最大空閑鏈接數(shù)(max Idle),數(shù)據(jù)庫(kù)名稱(chēng)等進(jìn)行設(shè)定。
在應(yīng)用程序web.xml配置中加入:
< res-type>javax.sql.DataSource
4.3 大文本數(shù)據(jù)操作實(shí)現(xiàn)
由于本系統(tǒng)中有些字段超出了這個(gè)范圍,于是引進(jìn)了CLOB大對(duì)象類(lèi)型,在CLOB列插入一個(gè)空對(duì)象 EMP_ CLOB,而后對(duì)其進(jìn)行插入和更新等操作。更新操作核心代碼片段如下:
//驅(qū)動(dòng)裝載與數(shù)據(jù)交驗(yàn)略
String sql_1="UPATE CA_BBYW SET SIGN_NSR=”+SIGN_ NSR+” WHERE JYLSH=”+JYLSH+""';
System.out.println(sql_l);//運(yùn)行sql_1
客服熱線(xiàn):400-656-5456??客服專(zhuān)線(xiàn):010-56265043??電子郵箱:longyuankf@126.com
電信與信息服務(wù)業(yè)務(wù)經(jīng)營(yíng)許可證:京icp證060024號(hào)
Dragonsource.com Inc. All Rights Reserved
statement.executeUpdate(sql_1);
String sql_2=”SELECT SIGN_DATA, CERT_NSR From CA_BBYW where
JYLSH=”+JYLSH+”FOR UPDATE";
rs=statement. executeQuery(sql_2);//當(dāng)大文本字段不為空時(shí),進(jìn)行更新操作
if (!SIGN_ DATA.equals("")||!CERT_NSR.equals("")){
if (rs.next()){
oracle.sql.CLOB clob2=(oracle.sql.CLOB) rs.getClob(1);/*向CLOB對(duì)象中寫(xiě)入數(shù)據(jù)*/
clobl.putString(1, SIGN_ DATA);
oracle.sql.CLOB clob2=(oracle. sql.CLOB) rs.getClob(2);/*向CLOB對(duì)象中寫(xiě)入數(shù)據(jù)*/
clob2.putString(2, SIGN_ DATA);
}}
conn.commit();
statement.close();
conn.close();
5 結(jié)語(yǔ)
高校信息數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì)與優(yōu)化是一個(gè)實(shí)踐性很強(qiáng)的工作,除了要掌握數(shù)據(jù)倉(cāng)庫(kù)的理論知識(shí)外,更重要的是需要在實(shí)際工作中進(jìn)行摸索、積累,這樣才能充分發(fā)揮數(shù)據(jù)倉(cāng)庫(kù)的功效,為學(xué)校的各種應(yīng)用提供更多幫助和支持。
參考文獻(xiàn)
[1]施伯樂(lè),朱揚(yáng)勇編著.數(shù)據(jù)庫(kù)與智能數(shù)據(jù)分析—技術(shù)、實(shí)踐與應(yīng)用[M].上海:復(fù)旦大學(xué)出版社,2003(05).
[2](美)Eric Sperley著.陳武,袁國(guó)忠譯.企業(yè)數(shù)倉(cāng)庫(kù)規(guī)劃建立與實(shí)現(xiàn)[M].北京:人民郵電出版社,2000(08).
[4]周怡,周衛(wèi)平,李燕茹.用SQLServer 2000構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的嘗試[J].中國(guó)醫(yī)藥衛(wèi)生信息,2002.
[5]WH.Inmon,Ken Budin,Christopher K.Buss,Ryan Sousa.Data Warehouse Performance.Publishing House of Electronics Industry,2000.
作者單位
阿壩師范高等專(zhuān)科學(xué)校 四川省汶川縣 623002endprint
statement.executeUpdate(sql_1);
String sql_2=”SELECT SIGN_DATA, CERT_NSR From CA_BBYW where
JYLSH=”+JYLSH+”FOR UPDATE";
rs=statement. executeQuery(sql_2);//當(dāng)大文本字段不為空時(shí),進(jìn)行更新操作
if (!SIGN_ DATA.equals("")||!CERT_NSR.equals("")){
if (rs.next()){
oracle.sql.CLOB clob2=(oracle.sql.CLOB) rs.getClob(1);/*向CLOB對(duì)象中寫(xiě)入數(shù)據(jù)*/
clobl.putString(1, SIGN_ DATA);
oracle.sql.CLOB clob2=(oracle. sql.CLOB) rs.getClob(2);/*向CLOB對(duì)象中寫(xiě)入數(shù)據(jù)*/
clob2.putString(2, SIGN_ DATA);
}}
conn.commit();
statement.close();
conn.close();
5 結(jié)語(yǔ)
高校信息數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì)與優(yōu)化是一個(gè)實(shí)踐性很強(qiáng)的工作,除了要掌握數(shù)據(jù)倉(cāng)庫(kù)的理論知識(shí)外,更重要的是需要在實(shí)際工作中進(jìn)行摸索、積累,這樣才能充分發(fā)揮數(shù)據(jù)倉(cāng)庫(kù)的功效,為學(xué)校的各種應(yīng)用提供更多幫助和支持。
參考文獻(xiàn)
[1]施伯樂(lè),朱揚(yáng)勇編著.數(shù)據(jù)庫(kù)與智能數(shù)據(jù)分析—技術(shù)、實(shí)踐與應(yīng)用[M].上海:復(fù)旦大學(xué)出版社,2003(05).
[2](美)Eric Sperley著.陳武,袁國(guó)忠譯.企業(yè)數(shù)倉(cāng)庫(kù)規(guī)劃建立與實(shí)現(xiàn)[M].北京:人民郵電出版社,2000(08).
[4]周怡,周衛(wèi)平,李燕茹.用SQLServer 2000構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的嘗試[J].中國(guó)醫(yī)藥衛(wèi)生信息,2002.
[5]WH.Inmon,Ken Budin,Christopher K.Buss,Ryan Sousa.Data Warehouse Performance.Publishing House of Electronics Industry,2000.
作者單位
阿壩師范高等專(zhuān)科學(xué)校 四川省汶川縣 623002endprint
statement.executeUpdate(sql_1);
String sql_2=”SELECT SIGN_DATA, CERT_NSR From CA_BBYW where
JYLSH=”+JYLSH+”FOR UPDATE";
rs=statement. executeQuery(sql_2);//當(dāng)大文本字段不為空時(shí),進(jìn)行更新操作
if (!SIGN_ DATA.equals("")||!CERT_NSR.equals("")){
if (rs.next()){
oracle.sql.CLOB clob2=(oracle.sql.CLOB) rs.getClob(1);/*向CLOB對(duì)象中寫(xiě)入數(shù)據(jù)*/
clobl.putString(1, SIGN_ DATA);
oracle.sql.CLOB clob2=(oracle. sql.CLOB) rs.getClob(2);/*向CLOB對(duì)象中寫(xiě)入數(shù)據(jù)*/
clob2.putString(2, SIGN_ DATA);
}}
conn.commit();
statement.close();
conn.close();
5 結(jié)語(yǔ)
高校信息數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì)與優(yōu)化是一個(gè)實(shí)踐性很強(qiáng)的工作,除了要掌握數(shù)據(jù)倉(cāng)庫(kù)的理論知識(shí)外,更重要的是需要在實(shí)際工作中進(jìn)行摸索、積累,這樣才能充分發(fā)揮數(shù)據(jù)倉(cāng)庫(kù)的功效,為學(xué)校的各種應(yīng)用提供更多幫助和支持。
參考文獻(xiàn)
[1]施伯樂(lè),朱揚(yáng)勇編著.數(shù)據(jù)庫(kù)與智能數(shù)據(jù)分析—技術(shù)、實(shí)踐與應(yīng)用[M].上海:復(fù)旦大學(xué)出版社,2003(05).
[2](美)Eric Sperley著.陳武,袁國(guó)忠譯.企業(yè)數(shù)倉(cāng)庫(kù)規(guī)劃建立與實(shí)現(xiàn)[M].北京:人民郵電出版社,2000(08).
[4]周怡,周衛(wèi)平,李燕茹.用SQLServer 2000構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的嘗試[J].中國(guó)醫(yī)藥衛(wèi)生信息,2002.
[5]WH.Inmon,Ken Budin,Christopher K.Buss,Ryan Sousa.Data Warehouse Performance.Publishing House of Electronics Industry,2000.
作者單位
阿壩師范高等專(zhuān)科學(xué)校 四川省汶川縣 623002endprint