時間:2023-03-20 16:23:24
引言:易發(fā)表網(wǎng)憑借豐富的文秘實踐,為您精心挑選了九篇數(shù)據(jù)庫管理論文范例。如需獲取更多原創(chuàng)內(nèi)容,可隨時聯(lián)系我們的客服老師。

1.引言:目前動態(tài)網(wǎng)站設(shè)計技術(shù)主要有:利用Perl/C++/Delphi等開發(fā)的CGI,兩種有名的API-ISAPI/NSAPI,還有ColdFusion,以及最近幾年流行起來的3p技術(shù)-ASP,PHP,JSP(據(jù)Internet上有關(guān)網(wǎng)站統(tǒng)計約有近百種);ASP-AtiveServerPage,由微軟公司開發(fā),是一個WEB服務(wù)器端的開發(fā)環(huán)境,主要采用腳本語言VBScript(或javascript/perl等)作為自己的開發(fā)語言,可用ODBC或直接驅(qū)動法訪問Window平臺的數(shù)據(jù)庫。PHP-PersonServerPage,是由Rasmus個人創(chuàng)立的一種跨平臺的服務(wù)器端的嵌入式腳本語言.它大量地借用C,Java和Perl語言的語法,并耦合PHP自己的特性,.是一種很有個性的網(wǎng)站開發(fā)語言,它支持目前絕大多數(shù)數(shù)據(jù)庫。JSP-JavaServerPage,是Sun公司推出的新一代站點開發(fā)語言,Sun公司除Java應(yīng)用程序和JavaApplet之外,又創(chuàng)立了JSP,其可以在Serverlet和JavaBean的支持下,完成功能強(qiáng)大的站點程序開發(fā),特別是有許多訪問數(shù)據(jù)庫的方法。在電子商務(wù)平臺設(shè)計中,主要需要解決"網(wǎng)站結(jié)構(gòu)的設(shè)計","注冊界面","交易界面","后臺數(shù)據(jù)庫",以及"配套模塊"諸如購物/用戶/論壇/反饋/搜索/會話等設(shè)計;考慮篇幅,本文只給出統(tǒng)一的前臺界面及后臺數(shù)據(jù)庫的3p設(shè)計方法;可以說ASP,PHP,JSP與網(wǎng)絡(luò)數(shù)據(jù)庫的操作是電子商務(wù)網(wǎng)站平臺設(shè)計的堅強(qiáng)基石。
2.構(gòu)建三種設(shè)計技術(shù)的運(yùn)行環(huán)境
2.1構(gòu)建ASP的運(yùn)行環(huán)境:NT5.0Server,IIS5.0,ASP3.0。安裝Windows2000Server(NT5.0Server)時選擇IIS5.0有關(guān)選項。安裝完后ASP3.0便內(nèi)嵌于IIS5.0中。測試ASP:啟動瀏覽器,在地址欄處輸入127.0.0.1:80/default.asp,若瀏覽到IIS服務(wù)器的ASP歡迎頁面,說明安裝成功
2.2構(gòu)建PHP4的運(yùn)行環(huán)境:NT5.0Server,Apache1.3.12php4.0安裝支持PHP的web服務(wù)器Apache1.3.12,將Apache服務(wù)器壓縮文件解壓縮,根據(jù)提示進(jìn)行整個安裝過程,自己選擇安裝到目錄d:\apache下。安裝PHP4,將PHP4壓縮文件解壓縮到d:\php4即可,同時將其中的php.ini-dist文件拷貝到winnt目錄中,將文件更名為php.ini,打開該文件將其中extension_dir設(shè)置為:d:/php4,并加載擴(kuò)展模塊:將文件中含有;extention=*.dll的各項前面的";"號去掉即可;修改設(shè)置Aphache服務(wù)器,用文本編輯器編輯目錄d:\aphache目錄下的子目錄conf下名為httpd.conf的文本文件,首先將"#ServerName*"這一行下加入"ServerName127.0.0.1/",其次將"Port80"改為"Port81(或其他與IIS5.0不沖突的端口)",再其次設(shè)置更改Apache虛擬目錄,將"Documentroot"d:/Apache/htdocs""改為Documentroot"d:/trade"(該目錄即是電子商務(wù)網(wǎng)站目錄,可用任意方法建立目錄trade),最后加入支持php4的如下語句:ScriptAlias/php4/"d:/php4/"AddTypeapplication/x-httpd-php.phpAddTypeapplication/x-httpd-php.phtmlActionapplication/x-httpd-php4"/php4/php.exe";測試php:完成上述步驟后,在d:\trade目錄下,用如何文本編輯器,生成擴(kuò)展名為.php(或phtml)的文件test.php,在文件中輸入如下php代碼,存盤后,啟動Apache,接著你在瀏覽器中輸入:127.0.0.1:81/test.php,若看到php的版本和擴(kuò)展模塊等信息,說明環(huán)境安裝設(shè)置成功。
2.3構(gòu)建JSP的運(yùn)行環(huán)境:NT5.0Server,Resin1.13,jdk1.3安裝Java編譯器jdk1.3:運(yùn)行jdk1_3-win.exe,按照提示完成安裝即可,將其安裝在d:\java1.3目錄,也可安裝在其他目錄。設(shè)置系統(tǒng)環(huán)境參數(shù):控制面板/系統(tǒng)/環(huán)境頁中選擇path參數(shù)加入d:\jdk1.3\bin;增加新的環(huán)境參數(shù)classpath=d:\jdk1.3\lib\tools.jar;d:\jdk1.3\lib\dt.jar;,然后重新啟動計算機(jī)即可安裝支持JSP的web服務(wù)器Resin1.1.3,將RESIN-1.1.3.zip釋放為d:\Resin1.1.3即可。配置服務(wù)器端口,打開d:/resin1.1.3/conf/目錄下的resin.conf文件在
8080
標(biāo)簽處將端口設(shè)置為82(在我的NT5.0上裝有三個服務(wù)器,這樣三個服務(wù)器的端口分別為IIS:80;Apache:81;Resin:82其實也可設(shè)置為其他互不沖突的端口號).測試JSP:啟動Resin服務(wù)器,啟動瀏覽器,在地址欄處輸入127.0.0.1:82/,若瀏覽到Resin服務(wù)器的JSP歡迎頁面,說明安裝成功
3生成三種格式的動態(tài)表單頁面為了通用,這里采用可能用到的表單對象為例,至于下面設(shè)計具體數(shù)據(jù)表用到的字段,只要轉(zhuǎn)成給出的表單域相應(yīng)對象即可.
3.1用ASP動態(tài)生成與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交流的操作表單:form.asp:生成表單域頭:生成普通文本:生成密碼文本:生成滾動文本:生成單選:生成復(fù)選:生成列表框:生成提交按鈕生成重填按鈕生成表單域尾
3.2用PHP動態(tài)生成與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交流的操作表單:form.php生成表單域頭:"?>生成普通文本:"?>生成密碼文本:"?>生成滾動文本:"?>生成單選:"?>生成復(fù)選:"?>生成列表框:網(wǎng)絡(luò)數(shù)據(jù)庫Asp技術(shù)Php技術(shù)Jsp技術(shù)網(wǎng)站設(shè)計"?>生成提交按鈕"?>生成重填按鈕"?>生成表單域尾"?>
3.3用JSP動態(tài)生成與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交流的操作表單form.jsp生成表單域頭:生成普通文本:生成密碼文本:生成滾動文本:生成單選:生成復(fù)選:生成列表框:生成提交按鈕生成重填按鈕生成表單域尾
4設(shè)計用于存儲商務(wù)網(wǎng)站交互數(shù)據(jù)的MySql數(shù)據(jù)庫
4.1啟動MySql數(shù)據(jù)庫服務(wù)器(MySql的安裝及ODBC驅(qū)動程序的安裝與設(shè)置請參閱相關(guān)書籍)可在NT5.0下用啟動服務(wù)法/NET命令法/命令窗口鍵入MySqld-shareware法,啟動MySql數(shù)據(jù)庫服務(wù)器,啟動數(shù)據(jù)庫服務(wù)器后,在d:\mysql\bin>提示符下鍵入mysql-h127.0.0.1-uroot即可出現(xiàn)mysql>提示符,從這開始即可進(jìn)行對MySql數(shù)據(jù)庫的各種操作。若要退出可鍵入quit/exit,若要關(guān)閉數(shù)據(jù)庫服務(wù)器,可在d:\mysql\bin>提示符下鍵mysqladmin-urootshutdown4.2建立MySql數(shù)據(jù)庫在MySql數(shù)據(jù)庫的提示符mysql>鍵入Createdatabasetradedb;(或go)
4.2.建立MySql數(shù)據(jù)庫表這里以商務(wù)網(wǎng)站中常用的幾種數(shù)據(jù)表為例,主要用到的數(shù)據(jù)表和生成數(shù)據(jù)表的SQL代碼如下:(這里的數(shù)據(jù)表字段只要分別對應(yīng)上述表單域?qū)ο蠹纯蓪嶋H操作,數(shù)據(jù)表統(tǒng)一用tablename表示)客戶登錄管理數(shù)據(jù)表CREATETABLEusers(IDintnotnullauto_increment,UserNamevarchar(30)notnull,Passwordvarchar(20)notnull)客戶信息數(shù)據(jù)表CREATETABLEusermessage(UserNamevarchar(30)notnull,Emailvarchar(80)notnull,Addressvarchar(120)notnull,Faxvarchar(40)null,Phonevarchar(40)notnull,Cerreycardvarchar(50)notnull)客戶定購商品數(shù)據(jù)表CREATETABLEcatalog(ProductIdintnotnull,Namevarchar(64)notnull,Pricefloat(6,2)notnull,Descriptiontextnull)
5設(shè)計處理表單數(shù)據(jù)的3p程序
5.1設(shè)計處理表單數(shù)據(jù)的ASP程序form_cl.asp建立與數(shù)據(jù)庫的連接:這里采用直接驅(qū)動法Setconn=Server.CreateObject("ADODB.Connection");conn.open"driver={MySQL};server=localhost;uid=user;pwd=xxxxxx;database=tradedb"獲取表單提交的數(shù)據(jù):data1=request("ptwbk");data2=request("mmwbk");data3=request("gdwbk")data4=request("dxk");data5=request("fxk");data6=request("lbk")用SQL語句對數(shù)據(jù)庫進(jìn)行操作查詢數(shù)據(jù)記錄:sql="select*fromtablename";setrs=conn.execute(sql)"增加數(shù)據(jù)記錄:sql="insertintotablename(ptwbk,mmwbk,gdwbk,dxk,fxk,lbk)values(''''data1'''',''''data2'''',''''data3'''',''''data4'''',''''data5'''',''''data5'''')";setrs=conn.execute(sql)更改某條數(shù)據(jù)記錄:sql="updatetablenamesetdata1="request(ptwbk)",whereID="num";setrs=conn.execute(sql)刪除某條數(shù)據(jù)記錄:sql="deletefromtablenamewhereID="num";setrs=conn.execute(sql)將SQL語句處理的數(shù)據(jù)結(jié)果輸出Response.Write"
"Response.Write""Fori=0tors.Fields.Count-1Response.WRITE""&rs.Fields(i).Name&""NextResponse.Write"
"WhileNotrs.EOFResponse.Write""Fori=0tors.Fields.Count-1Response.WRITE""&rs.Fields(i).Value&""NextResponse.Write"
"rs.MoveNextWendResponse.Write"
"關(guān)閉數(shù)據(jù)庫:rs.close;conn.Close
5.2設(shè)計處理表單數(shù)據(jù)的PHP程序form_cl.php建立與數(shù)據(jù)庫的連接:這里采用PHP的MySql函數(shù)法(也可用ODBC函數(shù)法)$conn=odbc_connect("localhost","user","xxxxxx");選擇數(shù)據(jù)庫:mysql_select_db("tradedb","$conn");獲去表單提交的數(shù)據(jù):$data1=$ptwbk;$data2=$mmwbk;$data3=$gdwbk;$data4=$dxk;$data5=$fxk;$data6=$lbk;用SQL語句對數(shù)據(jù)庫進(jìn)行操作查詢數(shù)據(jù)記錄:$sql="select*fromtablename";$result=odbc_do($conn,$sql);增加數(shù)據(jù)記錄:$sql="insertintotablename(ptwbk,mmwbk,gdwbk,dxk,fxk,lbk)values(''''$data1'''',''''$data2'''',''''$data3'''',''''$data4'''',''''$data5'''',''''$data6'''')";$result=odbc_do($conn,$sql);更改某條數(shù)據(jù)記錄:$sql="updatetablenameset$data1=ptwbkwhereID=num"$result=odbc_do($conn,$sql);刪除某條數(shù)據(jù)記錄:$sql="deletefromtablenamewhereID=num";$result=odbc_do($conn,$sql);將SQL語句處理的數(shù)據(jù)結(jié)果輸出odbc_result_all($result,"border=1");關(guān)閉數(shù)據(jù)庫:odbc_close($conn);
5.3設(shè)計處理表單數(shù)據(jù)的JSP程序form_cl.jsp建立與數(shù)據(jù)庫的連接:這里采用JDBC-ODBC橋生成JavaBean法創(chuàng)建一個JavaBean命名為conndb.java,并保存在d:/resin1.1.3/doc/web-inf/classes/trade目錄下,代碼如下:(限于篇幅這里沒按標(biāo)準(zhǔn)書寫,而采用不換行寫法,其他類同)packagetrade;importjava.sql.*;publicclassconndb{Stringurl="jdbc:inetdae:localhost";Stringlogin="user";Stringpassword="xxxxxx";StringsDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";StringsConnStr="jdbc:odbc:Dsnmysql";Connectionconn=null;ResultSetrs=null;publicconndb(){try{Class.forName(sDBDriver);Connectionconn=DriverManager.getConnection(url,login,password);}catch(java.lang.ClassNotFoundExceptione){System.err.println("conndb():"+e.getMessage());}}Public/ResultSet/executeQuery(String/sql)/{rs=null;try{conn=DriverManager.getConnection(sConnStr);Statementstmt=conn.createStatement();rs=stmt.executeQuery(sql);}catch(SQLExceptionex){System.err.println("aq.executeQuery:"+ex.getMessage());}returnrs;}}然后用javac編譯conndb.java生成與其同目錄的conndb.class文件,在form_cl.jsp文件中加入如下標(biāo)簽即可建立與數(shù)據(jù)庫的連接獲去表單提交的數(shù)據(jù):Stringdata1=request.getParameter("ptwbk");Stringdata2=request.getParameter("mmwbk")Stringdata3=request.getParameter("gdwbk")Stringdata4=request.getParameter("dxk")Stringdata5=request.getParameter("fxk")Stringdata5=request.getParameter("lbk")語句對數(shù)據(jù)庫進(jìn)行操作查詢數(shù)據(jù)記錄:Stringsql="select*fromtablename";connbean.executeQuery(sql);增加數(shù)據(jù)記錄:Stringsql="insertintotablenamevalues(''''"+data1+"'''',''''"+data2+"'''',''''"+data3+"'''',''''"+data4+"''''+"'''',''''"+data5+"'''',''''"+data6+''''")";connbean.executeQuery(sql);更改某條數(shù)據(jù)記錄:Stringsql="updatetablenamesetdata1=''''"+ptwbk+"'''',data2=''''"+mmvbk+"'''',data3=''''"+gdwbk+"''''whereID=''''"+num+"''''";connbean.executeQuery(sql)刪除某條數(shù)據(jù)記錄:Stringsql="deletefromtablenamewhereID=''''"+num+"''''";connbean.executeQuery(sql);將SQL語句處理的數(shù)據(jù)結(jié)果輸出ResultSetrs=connbean.executeQuery(sql);While(rs.next()){out.print("
"+rs.getString("ptwbk")+"
");out.print("
"+rs.getString("mmvbk")+"
");out.print("
"+rs.getString("gdwbk")+"
");out.print("
"+rs.getString("dxk")+"
");out.print("
"+rs.getString("fxk")+"
");out.print("
"+rs.getString("lbk")+"
");}關(guān)閉數(shù)據(jù)庫:rs.close();
6三種電子商務(wù)網(wǎng)站設(shè)計技術(shù)綜述
6.1主要特性:可見下表設(shè)計技術(shù)運(yùn)行平臺服務(wù)器開發(fā)程序擴(kuò)展組件ASPWindows系列IISVbscript/Jscript/PerlActiveXPHPUnix系列,Novell,WindowsApache等許多服務(wù)器phpFunctionJSPUnix系列,Novell,WindowsResin等許多服務(wù)器JavaJavaBean
6.2連接數(shù)據(jù)庫的方法:通過上述操作可看出,本文采用了三種操作MySql數(shù)據(jù)庫的方法,Asp采用直接驅(qū)動法,Php采用MySql函數(shù)法,Jsp采用JDBC-ODBC/JavaBean法
6.3網(wǎng)站結(jié)構(gòu)設(shè)計考慮篇幅,本文只給出了Widows平臺上,電子商務(wù)網(wǎng)站設(shè)計中的主要環(huán)節(jié)的代碼設(shè)計,對于Linux平臺、網(wǎng)站結(jié)構(gòu)、各個功能模塊設(shè)計等論題,作者已經(jīng)有兩篇這方面的論文在核心刊物上待發(fā)表,這里不便公開.
本文所說的數(shù)據(jù)庫中,首先是用戶數(shù)據(jù),而用戶數(shù)據(jù)主要包含的是檔案管理部門工作人員的信息,即其用戶名與密碼。相關(guān)工作人員在對文件進(jìn)行管理前應(yīng)當(dāng)先進(jìn)行身份認(rèn)證,通過后方可進(jìn)行操作。為了保證檔案管理系統(tǒng)的安全性,在用戶正常登錄時,session對象中將用一個變量保存對應(yīng)的用戶名,但是非法請求管理頁面時,那么對象中的用戶名變量為空將頁面重定向到登陸頁面強(qiáng)制登陸。接著是文件數(shù)據(jù),文件數(shù)據(jù)記錄的包括一般屬性與幾個重要的附加屬性。一般屬性即是檔案的成文時間、收文時間、文件題目、文件字號與類別等,而附加屬性包括文件類型,就是標(biāo)志該檔案是以何種方式提交的,圖形還是文本,附加屬性還有文件狀態(tài),即檔案是公開還是保密,或是針對哪些級別公開哪些級別保密。一個單位的檔案一般都是繁多而復(fù)雜的,往往有許多歷史類檔案,而這些檔案如果全部以文本的形式加以呈現(xiàn),且完全由人工進(jìn)行管理,那么必將會出現(xiàn)效率低下的問題,同時也很難將檔案的價值完全發(fā)揮出來,所以我們應(yīng)當(dāng)將檔案系統(tǒng)與現(xiàn)今科技發(fā)展相結(jié)合,比如對文件進(jìn)行掃描,然后將其傳入數(shù)據(jù)庫,這樣一來又省事又省時。但是與此同時我們不能忽略的另一個重要問題是兩種格式的文件如何在一個數(shù)據(jù)庫中進(jìn)行統(tǒng)一,針對這樣的問題,我們可以這樣解決,即在文件表中增加一個文件路徑,針對圖片格式的檔案,可以將該檔案中的圖片文件保存成磁盤文件,接著還需要再創(chuàng)立一個磁盤文件按照順序記錄各個圖片的路徑,數(shù)據(jù)庫中記錄該磁盤文件的路徑。而對于文本類的檔案,可以將檔案的主體內(nèi)容存入一個磁盤文件中,數(shù)據(jù)庫中記錄該文本的路徑。
二、檔案管理系統(tǒng)的設(shè)計檔案管理系統(tǒng)
是由不同的動態(tài)網(wǎng)頁所構(gòu)成的,而該系統(tǒng)的各項功能也借助動態(tài)網(wǎng)頁得以實現(xiàn),檔案管理人員、檔案使用人員以及檔案管理系統(tǒng)和后臺數(shù)據(jù)庫之間的交互,從而實現(xiàn)單位管理與文件管理的功能,而檔案管理人員可以在經(jīng)過身份驗證后對這些檔案進(jìn)行管理。對檔案進(jìn)行的管理包括對檔案的添加修改以及刪除。其中添加頁面與修改頁面比較相似,但是修改頁面上的控件已經(jīng)有了初始值,而添加頁面中的數(shù)據(jù)控件默認(rèn)是空值,所以添加、修改頁面可以在同一個頁面中得以實現(xiàn),在引用比較具體的頁面時的區(qū)分方式是利用URL后的查詢字符串。在對這些檔案數(shù)據(jù)進(jìn)行操作管理時,也有需要注意的地方,比如在頁面提交前應(yīng)當(dāng)首先進(jìn)行客戶端的驗證,從而保證提交數(shù)據(jù)的完整性與準(zhǔn)確性,其次為了避免重復(fù)記錄在數(shù)據(jù)提交到服務(wù)器后還要進(jìn)行服務(wù)器端的驗證。在對數(shù)據(jù)庫中的圖形文件進(jìn)行處理時也有許多應(yīng)當(dāng)注意的問題,首先是圖形文件的修改,這是文件管理中一個比較難操作的模塊,在對圖形文件進(jìn)行修改時,我們一定會重新上傳圖片,與此同時也要顯示出原來的圖片,但是此時圖片的大小與數(shù)量尚未確定,可能會是檔案管理系統(tǒng)的頁面出現(xiàn)排序混亂的現(xiàn)象,所以該檔案管理系統(tǒng)中只有刪除圖形文件的功能,沒有修改圖片的功能。而添加圖形文件時也有其比較特殊的部分,即我們無法確定這個文件中具體的圖片數(shù)量,即頁面中無法固定文件上傳控件的數(shù)量,此時我們可以在進(jìn)入添加圖形文件頁面前先向服務(wù)器提交一個數(shù)據(jù)表明這個文件包括多少圖片,而后服務(wù)器根據(jù)這個數(shù)據(jù)去生成相應(yīng)數(shù)量的文件上傳控件,對于文件上傳我們可以利用程序從提交的數(shù)據(jù)中分離出圖片信息,或者是使用特定的文件上傳組。與此同時還有客戶端的驗證問題,針對這種問題我們也有相應(yīng)的解決方案,那就是利用服務(wù)器端腳本去生成客戶端腳本。在對該系統(tǒng)進(jìn)行開發(fā)時,我們可以利用MicrosoftVisualInterDev作為系統(tǒng)的開發(fā)工具。該工具可以對某些對象的屬性方法進(jìn)行自動處理,提高了拼寫的準(zhǔn)確率與編程速度。同時這個工具還能夠?qū)n案中的某些關(guān)鍵詞句進(jìn)行藍(lán)色加粗顯示,極大地方便了我們的閱讀。在系統(tǒng)完成后,必須應(yīng)經(jīng)過相應(yīng)的測試,模擬實際工作進(jìn)行測試,保證無問題后可投入運(yùn)行。
三、檔案管理系統(tǒng)更新的意義
一、開放數(shù)據(jù)庫連接
ODBC(OpenDataBaseConnectivity,開放數(shù)據(jù)庫連接)是微軟開放服務(wù)結(jié)構(gòu)中有關(guān)數(shù)據(jù)庫的一個組成部分。它建立了一組規(guī)范,并提供了一組應(yīng)用程序調(diào)用接口。用這樣一組接口建立的應(yīng)用程序,對數(shù)據(jù)庫的操作不依賴于任何數(shù)據(jù)庫管理系統(tǒng),不直接與任何DBMS打交道,由此可實現(xiàn)應(yīng)用程序?qū)Σ煌珼BMS的共享。數(shù)據(jù)庫操作的“數(shù)據(jù)源”對應(yīng)用程序是透明的,所有的數(shù)據(jù)庫操作由對應(yīng)DBMS的ODBC驅(qū)動程序(ODBCDriver)完成。有了ODBC驅(qū)動程序,數(shù)據(jù)源就變得十分廣泛,它可以是本機(jī)的某種數(shù)據(jù)庫格式的文件(如本機(jī)DOS目錄下的Access文
件*.mdb),也可以是遠(yuǎn)程數(shù)據(jù)庫文件(如MicrosoftSQLServer);它可以是目前已知的某種DBMS格式,也可以是一種全新的數(shù)據(jù)庫格式。總之,它取決于提供了什么數(shù)據(jù)庫類型的驅(qū)動程序。
VisualC++中的ODBC主要是實現(xiàn)基于Windows的關(guān)系數(shù)據(jù)庫的應(yīng)用的共享。
二、ODBC管理器
在ODBC中,數(shù)據(jù)源是一個重要的概念,它是數(shù)據(jù)庫位置和數(shù)據(jù)庫類型等連接信息的總和。數(shù)據(jù)源在使用前必須通過ODBC管理器(Administrator)進(jìn)行登錄。在登錄數(shù)據(jù)源時,要搞清數(shù)據(jù)源名(Datasourcename)、數(shù)據(jù)庫文件名(Databasename)和數(shù)據(jù)表格名(Tablename)這三者的概念和相互關(guān)系:數(shù)據(jù)源實際是一種數(shù)據(jù)連接的抽象,數(shù)據(jù)源名是登錄時賦予的“連接”的名稱,以供應(yīng)用程序使用,至于該數(shù)據(jù)源下連接的是哪一個數(shù)據(jù)庫,則由數(shù)據(jù)庫文件名指出(如Access2.0forMSOffics中的.mdb文件);一個數(shù)據(jù)庫文件中可以包括若干個數(shù)據(jù)表格(table)和其他內(nèi)容。在關(guān)系@@09A05900.GIF;圖1ODBC層次關(guān)系圖數(shù)據(jù)庫中,數(shù)據(jù)是以二維表格的方式存在于數(shù)據(jù)庫@@文件中,應(yīng)用程序最終的操作目標(biāo)即是這些表格中的行(row記錄)和列(columns字段)數(shù)據(jù)。對于foxprow數(shù)據(jù)源,數(shù)據(jù)庫文件名是“路徑名”,而該路徑下的所有數(shù)據(jù)文件(*.dbf)都屬于該“數(shù)據(jù)庫文件”名下的數(shù)據(jù)表格(table)。
ODBC管理器被裝在ControlPanel里(ODBCINST.CPL)。通過該工具可以增添、修改或刪除數(shù)據(jù)源,也用來增添、刪除ODBC驅(qū)動程序,ODBC管理器把數(shù)據(jù)源和它們的連接信息保存在ODBC.INI、ODBCINST.INI和ODBCISAM.INI中。當(dāng)需要共享應(yīng)用程序時,只需按新的數(shù)據(jù)文件的類型和位置重新登錄即可。
三、ODBC應(yīng)用程序接口
ODBCAPI是一組標(biāo)準(zhǔn)的ODBC函數(shù)庫,除了一般的數(shù)據(jù)庫操作函數(shù)外,還包括一組函數(shù)(如SQLExec或SQLExecdirect)能夠內(nèi)嵌標(biāo)準(zhǔn)SQL查詢語句。SQL(StructuredQueryLanguage結(jié)構(gòu)化查詢語言)是一種存取關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)語言,能夠定義、查詢、修改和控制數(shù)據(jù),簡單的語句能夠作用于整個數(shù)據(jù)表格,具有很強(qiáng)的功能。
同Windows3.1SDK中API類似,ODBCAPI也是基于句柄(handle)進(jìn)行操作的。API函數(shù)按功能可分為以下幾類:
·數(shù)據(jù)源連接函數(shù),設(shè)置/獲取有關(guān)信息的函數(shù);
·準(zhǔn)備/提交執(zhí)行SQL查詢語句的函數(shù)和獲得數(shù)據(jù)的函數(shù);
·終止函數(shù)和異常處理函數(shù)。
上述函數(shù)的順序也表示了進(jìn)行數(shù)據(jù)庫操作的一般順序。兩個問題需要特別說明,一是數(shù)據(jù)類型問題:數(shù)據(jù)源中的數(shù)據(jù)所具有的數(shù)據(jù)類型稱為SQL數(shù)據(jù)類型,這些數(shù)據(jù)類型在其數(shù)據(jù)源中可能比較特殊,不一定和ODBCSQL數(shù)據(jù)類型存儲方式一致,驅(qū)動程序把這些數(shù)據(jù)類型同ODBCSQL數(shù)據(jù)類型進(jìn)行相互轉(zhuǎn)換,每一個ODBCSQL數(shù)據(jù)類型都相當(dāng)于一個ODBCC語言數(shù)據(jù)類型;二是函數(shù)的調(diào)用級別問題,并不是每一個ODBC驅(qū)動程序都支持所有的ODBCAPI函數(shù)調(diào)用,在應(yīng)用程序中,可以調(diào)用有關(guān)函數(shù)獲取驅(qū)動程序以支持層次方面的信息。
四、ODBC應(yīng)用編程
在VisualC++中,MFC(MicrosoftFoundationClass基本類庫)是經(jīng)過對Windows應(yīng)用程序中各個部件進(jìn)行類的抽象而建立的一組預(yù)定義的類,如窗口基類(CWnd)、各種窗口派生類等等,這些類在應(yīng)用程序中可直接使用,不需要重新定義。在MFC中,也為ODBC預(yù)定義了幾個類,其中主要的是數(shù)據(jù)庫類(CDatabase)和記錄集合類(CRecoredset)。這兩個類既有聯(lián)系又有區(qū)別,在應(yīng)用程序中,可以分別使用,也可以同時使用,每一類也可以同時存在多個對象。CDatabase的每一個對象代表了一個數(shù)據(jù)源的連接,CRecordset的每一個對象代表了從一
個數(shù)據(jù)表中按預(yù)定的查詢條件獲得的記錄的集合,一般說來,前者適宜于對數(shù)據(jù)源下的某個數(shù)據(jù)表格進(jìn)行整體操作,后者用于對所選的記錄集合進(jìn)行處理。
同Windows類與SDKAPI函數(shù)的關(guān)系一樣,CDatabase類與ODBCAPI函數(shù)也有類似的關(guān)系,但CDatabase類中并不包含所有的ODBCAPI函數(shù),大部分操作功能仍須直接調(diào)用ODBCAPI函數(shù),如目錄功能函數(shù),用于獲得數(shù)據(jù)源下的數(shù)據(jù)表格信息,如表格名,字段名等。
在應(yīng)用編程時,一般使用CDatabase和CRecordset的派生類。假設(shè)派生類分別為CUserdb和CUserset,而在應(yīng)用類CUserClass中,使用了一個CUserdb對象(m-db)和一個Cuserset對象(m-recset),圖2給出了用戶應(yīng)用類與ODBC類的相互關(guān)系示意圖。
@@09A05901.GIF;圖2CDatabaseCRecordset類與應(yīng)用類及數(shù)據(jù)源關(guān)系圖@@
1.m-db連接數(shù)據(jù)源
m-db在完成定義構(gòu)造后,要調(diào)用CDatabase的打開(Open)函數(shù)以進(jìn)行數(shù)據(jù)源的實際連接:
m-db.Open(lpszDSN,bExclusive,bReadOnly,lpszConnect);
打開函數(shù)需要輸入四個參數(shù)。lpszDSN:要連接的數(shù)據(jù)源的名字,如果lpszDSN=NULL且lpszConnect中也沒有指明數(shù)據(jù)源名,則該調(diào)用會自動出現(xiàn)一個對話框列出所有可用的數(shù)據(jù)源(名),讓用戶選擇。bExclusive:只支持“假”(False)值,表示為共享(share)方式連接。因此,應(yīng)用程序在運(yùn)行前,一定要裝入share.exe或在Windows的system.ini中裝入vshare.386。ReadOnly:指明數(shù)據(jù)源操作方式是“只讀”還是可以修改。lpszConnect:指明連接字符串,包括數(shù)據(jù)源名、用戶標(biāo)識碼、口令等信息。該字符串必須以“ODBC;”開頭,表示該連接是與一個ODBC數(shù)據(jù)源的連接(考慮以后版本支持非ODBC數(shù)據(jù)源)。
m-db打開后,其指針可以傳給m-recset作為其數(shù)據(jù)源。m-db關(guān)閉后,將關(guān)閉所有CRecordset對它的連接,m-db也可以重新打開。
2.m-db操作數(shù)據(jù)
數(shù)據(jù)源打開后,即可對數(shù)據(jù)庫文件中的數(shù)據(jù)表格進(jìn)行操作,操作以調(diào)用SQL語句方式進(jìn)行,可直接通過ODBCAPI函數(shù),或者CDatabase類成員函數(shù)ExecuteSQL。數(shù)據(jù)表名在SQL語句中指定,如下語句則在所在的數(shù)據(jù)源中的clerk表中插入一個記錄,記錄的name字段值為"chen"。
m-db.ExecuteSQL("insertintoclerk(name)value(’chen’)");3.m-recset連接數(shù)據(jù)m-recset在構(gòu)造時,可傳入一個CDatabase對象指針,作為m-recset的數(shù)據(jù)源,當(dāng)為NULL時,必須重載CRecordset的函數(shù)GetDefaultConnect,以提供數(shù)據(jù)源連接字符串(相當(dāng)于m-db.Open中的lpszConnect)。如下則表示連接名為COMPANY的數(shù)據(jù)源(當(dāng)傳入了合法的CDatabase對象指針時,該函數(shù)將不被調(diào)用)。
CStringCUserset::GetDefaultConnect()
{
return"ODBC;DSN=COMPANY;";
}4.m-recset選取記錄和字段
m-recset在調(diào)用打開函數(shù)時,即獲得了符合條件的一組記錄,條件語句在Open函數(shù)中的lpszSQL中給出,如果lpszSQL為NULL,則必須重載CRecordset的函數(shù)以提供該語句。該語句是一個SELECT語句,帶或不帶where和orderby子句(如果不帶,where和Orderby的條件也可在CRecordset的兩個預(yù)定義成員變量m-strFilter和m-strSort中給出)。lpszSQL也可以只是一個數(shù)據(jù)表名(table-name),也可以是對內(nèi)嵌在數(shù)據(jù)庫文件中的查詢程序的調(diào)用語句。所選擇的一系列字段名,在成員函數(shù)DoFieldExchange中由一系列RFX-函數(shù)指定。RFX-(RecordFieldExchange)函數(shù),使字段和成員變量一一建立類型對應(yīng)關(guān)系。另外,m-strFilter中也可以帶變量參數(shù)(用"?"表示,如"fieldl>=?ANDfield2<=?"),參數(shù)與成員變量的對應(yīng)關(guān)系也在DoFieldExchange中由RFX-函數(shù)指定(串中的"?"將被參數(shù)變量值逐一替換)。
voidCUserset::DoFieldExchange(CFieldExchange*pFX)
{
pFX->SetFieldType(CFieldExchange::outputColumn);
/*以下為字段連接*/
RFX-???(pFX,"field1",m-var1);
RFX-???(pFX,"field2",m-var2);
...
RFX-???(pFX,"fieldn",m-varn);
pFX->SetFieldType(CFieldExchange::param);
/*以下為參數(shù)連接*/
RFX-???(pFX,field1,m-param1);
RFX-???(pFX,field2,m-param2);
...
}其中,???為ODBCSQL數(shù)據(jù)類型名,如RFX-Double,RFX-Text等。
綜合上述,選取記錄和字段實際是由下列語句完成:
SELECTrfx-field-listFROMtable-name[WHEREm-strFilter][ORDERBYm-strSort]
字段變量和參數(shù)變量的個數(shù)一定要在調(diào)用打開函數(shù)前(如構(gòu)造函數(shù)中)準(zhǔn)確地賦值給成員變量m-nFields和m-nParams。m-recset在打開后的任何時候調(diào)用Requery()函數(shù),將根據(jù)新的查詢條件(例如修改了參數(shù)變量值)重新選取記錄。
5.m-recset操作數(shù)據(jù)
記錄集合生成后,其當(dāng)前記錄的各字段值被保存在前述的各字段變量中,如果調(diào)用CRecordset的滾動(scroll)函數(shù),如MoveFirst(),MoveNext(),MovePrev(),MoveLast()等,字段變量的值將自動跟隨“當(dāng)前”記錄的位置的變化而變化。IsBOF(),IsEOF()用于判別是否移動到記錄的頭或尾。
數(shù)據(jù)操作主要包括刪除(Delete),添加(AddNew)和更改(Edit),一般流程為:
if(m-recset.CanUpdate())/*是否允許修改*/
{
if(m-db.CanTransact())/*是否支持“批”處理*/
{
m-db.BeginTrans();
m-recset.AddNew();
/*修改字段變量值*/
...
m-recset.Update();
m-mitTrans();
if(catcherror)
m-db.RollBack();
}
}
對于AddNew和Edit,修改字段變量后一定要調(diào)用函數(shù)Update(),否則更新將丟失,而Delete操作則不必進(jìn)行字段值修改和調(diào)用Update()。
上述的CDatabase的四個函數(shù)是ODBC為保證數(shù)據(jù)操作的可靠性而提供的“批”處理函數(shù),即在BeginTrans和CommitTrans之間的數(shù)據(jù)修改如果出現(xiàn)任何異常,可通過函數(shù)RoolBack來恢復(fù)所做的修改。
在多用戶系統(tǒng)使用時,每一個數(shù)據(jù)源可以被多個用戶的多個任務(wù)連接,不同的任務(wù)可同時修改相同的數(shù)據(jù)源。ODBC提供了兩種數(shù)據(jù)表更新的同步機(jī)制(在m-recset.Open函數(shù)中指定),“靜態(tài)”的(snapshot)和動態(tài)的(dynaset)。前者是一組靜態(tài)的記錄集合,當(dāng)建立后不會改變,除了反應(yīng)自己的添加/刪除外,不反應(yīng)別的用戶的修改,除非調(diào)用了Requery重新建立。后者是一組動態(tài)的記錄集合,自己或別的用戶所作的修改隨時反應(yīng)到集合中來(當(dāng)然也可用Requery重建),以保持記錄與數(shù)據(jù)源的同步。在應(yīng)用中,應(yīng)根據(jù)需要確定使用哪一種方式。
五、結(jié)束語
科學(xué)技術(shù)的進(jìn)步實現(xiàn)了計算機(jī)技術(shù)的全面升級,計算機(jī)數(shù)據(jù)庫技術(shù)能在滿足信息統(tǒng)籌管理的基礎(chǔ)上,對相關(guān)數(shù)據(jù)進(jìn)行系統(tǒng)化整合。其一,計算機(jī)數(shù)據(jù)庫技術(shù)具有組織性特征。在計算機(jī)數(shù)據(jù)處理過程中,由于數(shù)據(jù)具有一定的連接性特征,因此,要將具有關(guān)聯(lián)結(jié)構(gòu)的數(shù)據(jù)整合在一起,從而形成統(tǒng)籌化的數(shù)據(jù)庫。主要是借助一種特定的關(guān)系進(jìn)行數(shù)據(jù)組織以及匹配,確保組織解構(gòu)特征的實效性,也能強(qiáng)化數(shù)據(jù)之間的關(guān)聯(lián)維度[1]。其二,計算機(jī)數(shù)據(jù)庫技術(shù)具有共享性,在數(shù)據(jù)應(yīng)用過程中,最重要的就是數(shù)據(jù)的共享模式,也是建立計算機(jī)數(shù)據(jù)庫技術(shù)的主要目的,因此,要充分發(fā)揮數(shù)據(jù)的價值,就要結(jié)合數(shù)據(jù)模型和數(shù)據(jù)共享參數(shù)進(jìn)行系統(tǒng)化處理以及信息管控,確保使用效率的完整度,也為信息利用效率優(yōu)化奠定堅實基礎(chǔ)。
二、計算機(jī)數(shù)據(jù)庫在信息管理中的應(yīng)用現(xiàn)狀
就目前技術(shù)的發(fā)展結(jié)構(gòu)而言,在計算機(jī)數(shù)據(jù)庫技術(shù)實際運(yùn)行過程中,整體技術(shù)維度和技術(shù)運(yùn)行機(jī)制也在發(fā)生改變。第一,計算機(jī)數(shù)據(jù)庫技術(shù)的應(yīng)用范圍在逐漸擴(kuò)展。在實際生產(chǎn)生活中,應(yīng)用計算機(jī)數(shù)據(jù)庫技術(shù)的頻率和市場前景越來越大,無論是工業(yè)、農(nóng)業(yè)以及文化產(chǎn)業(yè)等,都將其視為有效的信息處理工具[2]。因此,計算機(jī)數(shù)據(jù)庫技術(shù)的安全性和適配性尤為重要,各行業(yè)也在自身發(fā)展進(jìn)程中不斷摸索和技術(shù)優(yōu)化,真正建立切實有效的管控模型和管理機(jī)制,確保管理維度的實效性,也為信息結(jié)構(gòu)優(yōu)化奠定堅實基礎(chǔ)[3]。第二,計算機(jī)數(shù)據(jù)庫技術(shù)的安全性也在探索中逐漸得到強(qiáng)化,也突顯出計算機(jī)數(shù)據(jù)管理項目的具體要求,只有優(yōu)化其安全價值,才能更好的建構(gòu)高度機(jī)密性以及敏感性數(shù)據(jù)管理維度,保證了信息備份管理以及恢復(fù)功能的有效性,對于數(shù)據(jù)信息的復(fù)制和備份,要在優(yōu)化信息維度的基礎(chǔ)上,真正實現(xiàn)了數(shù)據(jù)庫的安全性升級。
三、計算機(jī)數(shù)據(jù)庫技術(shù)在信息管理中的應(yīng)用優(yōu)化路徑
(一)優(yōu)化計算機(jī)數(shù)據(jù)庫技術(shù)在信息管理中的安全性
要保證數(shù)據(jù)完整性,就要從安全應(yīng)用以及安全管控模型出發(fā),建構(gòu)系統(tǒng)化管理維度和管控要求,保證數(shù)據(jù)在得到共享的同時,相應(yīng)的數(shù)據(jù)信息也是安全準(zhǔn)確的。因此,技術(shù)人員要結(jié)合計算機(jī)數(shù)據(jù)庫技術(shù)的相關(guān)要求,提升信息完整度和安全性[4]。
(二)優(yōu)化計算機(jī)數(shù)據(jù)庫技術(shù)在信息管理中的實踐性
在實際信息管理和信息控制過程中,要積極落實理論和實踐的融合機(jī)制,確保管理維度和管理效果的最優(yōu)化。伴隨著計算機(jī)技術(shù)的高速發(fā)展,將數(shù)據(jù)庫原理和數(shù)據(jù)庫管理技術(shù)模型進(jìn)行深度管控,是提升數(shù)據(jù)科學(xué)性以及合理性的重要路徑,也是研究數(shù)據(jù)分析機(jī)制以及計算機(jī)數(shù)據(jù)庫技術(shù)應(yīng)用模型的重要參數(shù),因此,要保證理論聯(lián)系實踐,建構(gòu)計算機(jī)數(shù)據(jù)庫技術(shù)應(yīng)用整體。
(三)優(yōu)化計算機(jī)數(shù)據(jù)庫技術(shù)在信息管理中的技術(shù)性
對于計算機(jī)數(shù)據(jù)庫技術(shù)來說,最基本的就是技術(shù)參數(shù),因此,要保證計算機(jī)數(shù)據(jù)庫技術(shù)在信息管理中得到推廣,最基本的就是要保證技術(shù)模型的安全性和準(zhǔn)確性,并且積極落實計算機(jī)共享體系。計算機(jī)數(shù)據(jù)庫技術(shù)最根本的要求就是要規(guī)避數(shù)據(jù)庫被非法入侵,確保其技術(shù)安全和信息共享安全。但是,在實際管理機(jī)制中,信息的絕對安全存在風(fēng)險。提升計算機(jī)數(shù)據(jù)庫技術(shù)的技術(shù)安全性,能更好的落實信息應(yīng)用價值,確保信息維度得到有效優(yōu)化。因此,相關(guān)項目技術(shù)人員要利用加密技術(shù)對非共享信息進(jìn)行系統(tǒng)化管控,提高管控效果的同時,積極落實技術(shù)性管理要求,借助權(quán)限管理機(jī)制、數(shù)據(jù)加密技術(shù)以及強(qiáng)制存取控制技術(shù)等措施,進(jìn)一步優(yōu)化計算機(jī)數(shù)據(jù)庫技術(shù)的技術(shù)安全性[5]。
四、結(jié)束語
總而言之,在信息管理過程中積極應(yīng)用計算機(jī)數(shù)據(jù)庫技術(shù),能在滿足共享需求的基礎(chǔ)上,充分發(fā)揮信息的實用性價值,確保信息得到充分利用,也為實踐優(yōu)化提供動力,確保技術(shù)模型以及信息管理維度之間形成有效的控制機(jī)制,也為數(shù)據(jù)應(yīng)用研究奠定堅實基礎(chǔ),保證計算機(jī)數(shù)據(jù)庫技術(shù)和信息管理之間的優(yōu)化契合。
作者:陳文杰 單位:
參考文獻(xiàn):
[1]王瑜.探究計算機(jī)數(shù)據(jù)庫安全管理與實現(xiàn)途徑[J].建筑工程技術(shù)與設(shè)計,2016,15(11):2074-2074.
[2]溫林芝.試析計算機(jī)數(shù)據(jù)庫安全管理技術(shù)與方法[J].數(shù)字技術(shù)與應(yīng)用,2015,15(04):183-183.
[3]趙宏飛,國靜萍.試論計算機(jī)數(shù)據(jù)庫的安全防范技術(shù)及安全管理[J].數(shù)字技術(shù)與應(yīng)用,2014,15(04):190-190.
布-加綜合征實驗室管理系統(tǒng)包括管理系統(tǒng)終端、服務(wù)器和無線通信模塊。管理系統(tǒng)終端基于智能手機(jī)和Android系統(tǒng)實現(xiàn),可以通過攝像頭掃描設(shè)備上的二維碼,對實驗設(shè)備進(jìn)行識別管理。實驗室服務(wù)器和實驗設(shè)備通過近距離無線通信模塊進(jìn)行通信,從而服務(wù)器可以查詢和控制實驗設(shè)備的工作狀態(tài);管理系統(tǒng)終端與安裝在實驗室服務(wù)器上的遠(yuǎn)距離無線模塊之間采取基于TCP/IP的Socket通信方式。系統(tǒng)終端發(fā)送的命令經(jīng)過電信交換網(wǎng)傳送到實驗室服務(wù)器,服務(wù)器根據(jù)命令并通過近距離無線網(wǎng)絡(luò),查詢并記錄實驗設(shè)備的狀態(tài)或控制設(shè)備的運(yùn)行方式,然后給管理系統(tǒng)終端反饋設(shè)備的狀態(tài)信息。系統(tǒng)框圖如圖1所示。
2實驗室管理系統(tǒng)的設(shè)計
2.1系統(tǒng)數(shù)據(jù)庫設(shè)計應(yīng)用
SQLServer2000設(shè)計數(shù)據(jù)表[6-7]。系統(tǒng)數(shù)據(jù)庫主要包括3類數(shù)據(jù)表。(1)設(shè)備信息表。記錄設(shè)備總體信息,包括設(shè)備編號、型號、購置人、購置緣由、購置日期、報廢日期、借用狀態(tài)信息。當(dāng)實驗室購買新設(shè)備時,通過管理系統(tǒng)終端軟件輸入的信息發(fā)送至服務(wù)器軟件,經(jīng)過解析處理后添加到這個表。(2)設(shè)備使用狀況表。用于記錄設(shè)備的借用情況,包含編號、借用日期、歸還日期、借用人姓名、借用人證件號、借用人電話、用途等字段。在設(shè)備借/還的時候,通過管理系統(tǒng)終端記錄的信息將添加到此表。(3)設(shè)備操作信息表。用于記錄設(shè)備控制信息,包含編號、操作指令、操作人、操作時間等字段。實驗室管理人員通過管理系統(tǒng)終端控制設(shè)備的信息將添加到此表。
2.2服務(wù)器端設(shè)計
系統(tǒng)的服務(wù)器分為Web服務(wù)器和數(shù)據(jù)庫服務(wù)器[8]。Web服務(wù)器為此系統(tǒng)增加了以B/S架構(gòu)為基礎(chǔ)的網(wǎng)頁管理系統(tǒng)配置訪問功能以及WebService接口程序。當(dāng)管理員通過管理系統(tǒng)終端軟件查詢數(shù)據(jù)庫時,可以通過WebService接口訪問設(shè)備使用情況、借記狀態(tài)、控制狀況等數(shù)據(jù)庫信息。基于.NET的數(shù)據(jù)庫查詢程序都是用C#語言編寫,其特點是執(zhí)行效率高,安全性好。數(shù)據(jù)庫服務(wù)器主要用于接收智能手持端傳來的數(shù)據(jù),將數(shù)據(jù)解析后存入系統(tǒng)的數(shù)據(jù)庫表中。可以在服務(wù)器軟件界面查看歷史操作信息和數(shù)據(jù)庫信息。對于需要的信息可以選擇導(dǎo)出或打印。
2.3設(shè)備信息記錄以及追溯
系統(tǒng)使用二維碼標(biāo)簽作為實驗室設(shè)備的標(biāo)志,二維碼的信息包括設(shè)備編號、設(shè)備型號等[9-10]。當(dāng)新購入實驗設(shè)備時,以設(shè)備的順序編號和設(shè)備的型號兩個信息生成該設(shè)備的標(biāo)志二維碼并存入數(shù)據(jù)庫。在設(shè)備管理工作中,通過掃描設(shè)備二維碼就能獲取該設(shè)備的相關(guān)信息并可存入數(shù)據(jù)表中。當(dāng)設(shè)備出現(xiàn)故障或者其他意外情況時,可以通過掃描設(shè)備的二維碼調(diào)用系統(tǒng)數(shù)據(jù)庫中該設(shè)備的所有歷史信息,以供追本溯源,快速排除故障或解決問題。
2.4設(shè)備遠(yuǎn)程控制
在布-加綜合征實驗室,原子吸收分光光度計等一些設(shè)備的使用需要提前開啟或者延遲關(guān)閉,以實現(xiàn)預(yù)熱、冷卻等技術(shù)要求。為此,設(shè)計了設(shè)備遠(yuǎn)程控制功能,替代了以往實驗管理員守候設(shè)備等待開關(guān)的情況,使實驗管理員通過管理系統(tǒng)的移動終端即可遠(yuǎn)程控制設(shè)備。實驗管理員將需要的實驗設(shè)備控制命令發(fā)送到實驗室內(nèi)的服務(wù)器,服務(wù)器通過近距離無線網(wǎng)絡(luò)向?qū)?yīng)的實驗設(shè)備發(fā)送開關(guān)機(jī)命令。近距離無線網(wǎng)絡(luò)的無線傳輸芯片采用nRF24L01,通過SPI與單片機(jī)相連,單片機(jī)通過串口與服務(wù)器或者實驗設(shè)備相連。當(dāng)服務(wù)器需要向?qū)嶒炘O(shè)備發(fā)送命令時,先通過串口將命令發(fā)送給單片機(jī),單片機(jī)控制無線芯片通過無線鏈路,由nRF24L01將命令傳送到指定的實驗設(shè)備,實現(xiàn)設(shè)備的開、關(guān)或延時開、關(guān)。這些操作記錄也會存入數(shù)據(jù)庫中以供以后查詢。
2.5語音即時通信
在系統(tǒng)中實現(xiàn)了無線環(huán)境下零消費(fèi)的語音通話功能。該通話基于SIP協(xié)議,采用Asterisk作為虛擬交換機(jī),只要一網(wǎng)的電腦,結(jié)合VOIP技術(shù)[11-12],就能架設(shè)整個實驗室大環(huán)境及實驗室外無線環(huán)境下的通話系統(tǒng)。點擊撥號可以是兩個客戶端之間通話,也可以將座機(jī)連接路由器,并且在語音服務(wù)器注冊一個地址,實現(xiàn)客戶端與座機(jī)的通話。
3系統(tǒng)實現(xiàn)
布-加綜合征實驗室管理系統(tǒng)的終端運(yùn)行于An-droid系統(tǒng)。進(jìn)入系統(tǒng)后需輸入用戶名和密碼登錄。系統(tǒng)主界面共分為6個功能模塊,分別是新進(jìn)設(shè)備、設(shè)備借用、設(shè)備歸還、設(shè)備信息、工作圈子和設(shè)備控制(見圖2)。點擊“新進(jìn)設(shè)備”按鈕,可以對新設(shè)備進(jìn)行添加、登記;點擊“設(shè)備借用”按鈕,可以對設(shè)備進(jìn)行借用登記;點擊“設(shè)備歸還”按鈕,可以對設(shè)備進(jìn)行歸還登記;點擊“設(shè)備信息”按鈕,可以查詢設(shè)備信息;點擊“工作圈子”按鈕,管理員之間、管理員與非管理員之間可以進(jìn)行語音即時通信;點擊“設(shè)備控制”按鈕,可以進(jìn)入設(shè)備控制界面。在設(shè)備控制界面,右上角的“添加設(shè)備”按鈕用來將設(shè)置好的設(shè)備編號添加至軟件中。選擇需要控制的設(shè)備名,點擊需要的操作命令按鈕,即可將操作命令發(fā)送至服務(wù)器軟件。操作命令包括4種簡單操作:開啟、關(guān)閉、延時開啟、延時關(guān)閉(見圖2)。系統(tǒng)實物如圖3所示。當(dāng)服務(wù)器接收到命令并解析后,即將操作命令通過串口A發(fā)送至單片機(jī)B(AT-mega16),單片機(jī)B將數(shù)據(jù)包通過近距離無線模塊上的天線C發(fā)送給近距離無線模塊上的天線D,D由單片機(jī)E控制接收信息,E根據(jù)命令包參數(shù)選擇性控制繼電器F,通過F來控制設(shè)備G(圖中用電機(jī)演示)的啟動與關(guān)閉。
4結(jié)束語
(一)可行性分析
經(jīng)濟(jì)方面的可行性。本系統(tǒng)是房屋銷售管理信息系統(tǒng),所以系統(tǒng)的成本主要集中在開發(fā)軟件的費(fèi)用上,但是系統(tǒng)投入運(yùn)行后,就可以減少大量的人力以及物力。耗時短,資金消耗少,實用性強(qiáng),經(jīng)濟(jì)性良好。具有極高的經(jīng)濟(jì)方面的可行性。操作方面的可行性。由于該系統(tǒng)是分模塊設(shè)立的,所以模塊間既有一定的獨(dú)立性,也有一定的聯(lián)系,適用范圍廣,操作簡單易懂。即便是不精通網(wǎng)絡(luò)以及計算機(jī)的相關(guān)工作人員也可以使用,減少了人力物力的投入,提升了管理效率,可操作性強(qiáng)。
(二)需求分析
由于房地產(chǎn)行業(yè)大多采取跨地域的經(jīng)營方式,承包不同省份、不同城市、不同區(qū)域的房地產(chǎn)工程。有統(tǒng)一的總部進(jìn)行分項管理,但是各個項目并沒有自己的管理平臺,來讓總部及時了解相關(guān)的狀況,因此容易造成資源分配不均衡,不能及時進(jìn)行調(diào)整等狀況。所以,房地產(chǎn)企業(yè)需要一個可以進(jìn)行反饋的系統(tǒng),來及時了解相關(guān)狀況,來調(diào)節(jié)相關(guān)的決策。在財務(wù)方面,各個項目的財務(wù)是獨(dú)立的,因此,為了更好地進(jìn)行管理,避免賬目出現(xiàn)偏差,要將各個項目的財務(wù)數(shù)據(jù)及時反饋,需要一個管理系統(tǒng)來進(jìn)行這樣的工作。也要對客戶資源進(jìn)行很好的管理,并征求客戶的意見和建議并咨詢客戶的滿意度,來提升公司形象,并發(fā)掘潛在客戶以及潛在市場。這需要建立一個系統(tǒng),來管理并反饋客戶的相關(guān)信息。房屋銷售管理信息系統(tǒng)具體要做到對內(nèi)部數(shù)據(jù)信息進(jìn)行管理,來方便操作人員操作以及查詢。由于數(shù)據(jù)十分龐大,輸入的工作量也十分的大,因此系統(tǒng)一定要簡單易懂、方便操作、能實現(xiàn)批量操作等。為了實現(xiàn)房地產(chǎn)銷售信息無紙化,并運(yùn)用計算機(jī)以及網(wǎng)絡(luò)技術(shù)等,就要建立一個綜合性的房屋銷售管理信息系統(tǒng)。在進(jìn)行信息的錄入與輸出的同時,來對相關(guān)的資料進(jìn)行管理。
(三)功能分析
在系統(tǒng)的功能分析方面,我們從四個板塊來研究。房產(chǎn)管理模塊,建立一個房屋銷售管理信息系統(tǒng),其最基本最首要的功能便是房產(chǎn)管理。這要求系統(tǒng)可以支持管理者對房屋信息進(jìn)行修正的一系列操作,如新內(nèi)容的添加、錯誤信息的刪減、錄入以及修改等一系列操作。除此之外,要將查詢功能設(shè)置的相對便利,來使得客戶依照需要對房屋信息進(jìn)行查詢,對所需的房屋進(jìn)行快速定位。客戶管理模塊,可以幫助公司更好的管理客戶信息,來明確業(yè)務(wù)方向,增加自己的競爭力。對客戶進(jìn)行合理的分類,來提高管理效率,并根據(jù)客戶要求以及滿意度等信息將客戶進(jìn)行劃分,來針對不同的客戶提供不同的信息和服務(wù)。收費(fèi)管理板塊,用來記錄客戶的繳費(fèi)狀況等。來方便費(fèi)用的記錄以及催繳,并可以添加物業(yè)費(fèi)等信息,來方便其他有關(guān)的單位的工作。售樓管理板塊,這是房屋銷售管理信息系統(tǒng)的核心部分,在這一板塊中,我們可以實現(xiàn)對樓盤銷售的情況的管理,讓公司統(tǒng)一管理數(shù)據(jù),更加容易的了解樓盤的銷售狀態(tài),更好地進(jìn)行下一步的操作。
二、系統(tǒng)設(shè)計
(一)模塊劃分與功能設(shè)計
房產(chǎn)管理模塊,主要是管理各個樓盤內(nèi)部的相關(guān)數(shù)據(jù)。一定要有添加、修改、查詢、刪除等相關(guān)基礎(chǔ)操作的功能。該模塊有樓盤信息登記管理、戶型信息的登記管理、樓盤、查詢、戶型信息查詢等主要功能。樓盤信息登記管理板塊:對各種樓盤信息進(jìn)行添加、修改、查詢、刪除等相關(guān)基礎(chǔ)操作,要有樓盤編號、樓盤報價以及戶型編號等信息。戶型資料登記管理板塊:對戶型資料進(jìn)行添加、修改、查詢、刪除等相關(guān)基礎(chǔ)操作。要包括,對戶型的基礎(chǔ)介紹、平面圖、編號、價格、內(nèi)部結(jié)構(gòu)、實際面積等。樓盤查詢板塊:實現(xiàn)通過查詢樓盤的關(guān)鍵字來對樓盤全面的信息進(jìn)行查詢。包括樓盤的編號、報價,戶型的編號等信息。戶型查詢板塊:實現(xiàn)通過查詢關(guān)鍵字或關(guān)鍵詞,來查詢戶型的相關(guān)信息。包括,戶型的編號、設(shè)計圖、內(nèi)部結(jié)構(gòu)、面積等信息。客戶管理板塊,一定要有添加、修改、查詢、刪除等相關(guān)基礎(chǔ)操作的功能。還要分為客戶資料登記管理板塊,客戶資料查詢管理等幾個子版塊。客戶資料登記管理板塊:要求能夠?qū)崿F(xiàn)對客戶資料進(jìn)行添加、修改、查詢、刪除等相關(guān)基礎(chǔ)操作的功能的操作。要有相對全面的客戶資料。客戶資料查詢管理板塊:要求能夠通過查詢操作,查詢客戶資料中的某一項內(nèi)容,比如按照客戶的身份證進(jìn)行查詢、按照客戶的姓名進(jìn)行查詢、按照手機(jī)號進(jìn)行查詢等,進(jìn)而出現(xiàn)客戶的相對全方面的信息。收費(fèi)管理模塊,實現(xiàn)對收費(fèi)的數(shù)據(jù)進(jìn)行添加、修改、查詢、刪除等相關(guān)基礎(chǔ)操作。包括登記管理板塊,以及查詢管理板塊兩個子版塊。收費(fèi)登記管理板塊:對相關(guān)的收費(fèi)信息進(jìn)行添加、修改、查詢、刪除等相關(guān)基礎(chǔ)操作。包括收費(fèi)項目編號、樓盤編號、繳費(fèi)時間、繳費(fèi)金額、物業(yè)費(fèi)用、公共基礎(chǔ)費(fèi)用、其他費(fèi)用等。收費(fèi)查詢管理板塊:通過查詢住戶的相關(guān)信息,來查看住戶的相關(guān)繳費(fèi)情況。包括查詢住戶所在的住址、住戶的的身份證號、姓名等信息,來進(jìn)一步查詢住戶的繳費(fèi)信息。售樓管理模塊,這是房地產(chǎn)企業(yè)的基本業(yè)務(wù),所以這個板塊是一個基本版塊。業(yè)績直接影響效益,所以這個版塊十分重要。要對售樓信息進(jìn)行添加、修改、查詢、刪除等相關(guān)基礎(chǔ)操作。主要包括售樓人員登記管理板塊、售樓合同管理板塊。樓盤銷售人員登記管理板塊:對銷售人員的各項信息進(jìn)行添加、修改、查詢、刪除等相關(guān)基礎(chǔ)操作。包括,姓名、性別、身份證號、編號、手機(jī)號碼、電話號碼、所屬區(qū)域等相關(guān)信息。售樓合同管理板塊:對售樓合同的相關(guān)信息進(jìn)行添加、修改、查詢、刪除等相關(guān)基礎(chǔ)操作。包括,合同的狀態(tài)、編號、所屬樓盤的相關(guān)資料、購買人相關(guān)信息、支付狀況等信息。
(二)數(shù)據(jù)庫設(shè)計
自二十世紀(jì)的發(fā)展以來,人類步入了信息時代。計算機(jī)硬件技術(shù)發(fā)展迅速。越來越多的企業(yè)以及公司用計算機(jī)來對數(shù)據(jù)信息進(jìn)行管理,所以計算機(jī)管理的數(shù)據(jù)越來越龐大。為了對數(shù)據(jù)進(jìn)行統(tǒng)一便捷的管理,讓同一數(shù)據(jù)來方便更多的應(yīng)用,便出現(xiàn)了數(shù)據(jù)庫,這一統(tǒng)一管理數(shù)據(jù)的軟件,英文名稱Database。數(shù)據(jù)庫可以滿足,將數(shù)據(jù)進(jìn)行較為合理的存儲,并且同一數(shù)據(jù)可以讓多個用戶共同使用,冗余度較小。數(shù)據(jù)庫里的數(shù)據(jù)具有較小的數(shù)據(jù)冗余度,較高的數(shù)據(jù)獨(dú)立性和擴(kuò)展性,因為數(shù)據(jù)在數(shù)據(jù)庫中是按照一定的數(shù)據(jù)模型組織來進(jìn)行描述和存儲的,他們可以在一定的范圍內(nèi)向用戶提供數(shù)據(jù)的多用戶共享。由于不同的數(shù)據(jù)庫是按照不同的數(shù)據(jù)結(jié)構(gòu)進(jìn)行組織和聯(lián)系的,由這個特點數(shù)據(jù)庫被分為關(guān)系式、層次式、網(wǎng)狀式三種數(shù)據(jù)庫。隨著技術(shù)的不斷發(fā)展,數(shù)據(jù)庫模型也在不斷升級,出現(xiàn)了數(shù)據(jù)庫管理系統(tǒng),可以實現(xiàn)建立、使用、維護(hù)、統(tǒng)一管理、控制數(shù)據(jù)庫等多項功能,并可以保證數(shù)據(jù)的安全性和完整性。只有用數(shù)據(jù)庫進(jìn)行管理才能實現(xiàn)數(shù)據(jù)管理自動化,因此,創(chuàng)建以及設(shè)計系統(tǒng)的第一步便是設(shè)計以及建立數(shù)據(jù)庫。本房屋銷售管理信息系統(tǒng)的數(shù)據(jù)庫是用PowerBuilder9.0本身自帶的數(shù)據(jù)庫創(chuàng)建的。創(chuàng)建這個數(shù)據(jù)庫,在D:\bysheji中存放系統(tǒng)的數(shù)據(jù)庫文件。housysm.db為數(shù)據(jù)庫的名字。建立完相關(guān)數(shù)據(jù)庫后就可以來建立相關(guān)表項了,主要有樓盤、戶型、客戶、銷售員等表項。下表便是表項以及相關(guān)內(nèi)容:1)戶型表:戶型編號,建筑面積,平面設(shè)計圖,套內(nèi)面積,房型,房型簡介;2)樓盤信息表:樓盤編號,樓盤報價,戶型編碼;3)收費(fèi)記錄表:收費(fèi)項目編號,樓盤編號,收費(fèi)日期,電視費(fèi),電話費(fèi),煤氣費(fèi);4)公用基礎(chǔ)設(shè)施費(fèi),其它費(fèi)用,預(yù)收押金,交款人,收款人;5)售樓人員信息表:售樓人員編號,身份證號碼,姓名,性別,聯(lián)系電話,手機(jī)號碼,電子郵箱;6)用戶登錄表:用戶編號,用戶名稱,登錄密碼;7)客戶信息表:客戶編號,客戶姓名,性別,手機(jī)號碼,客戶職業(yè),聯(lián)系電話,電子郵箱,郵政編碼,備注;8)收款登記表:收款單號,樓盤編號,收款日期,收款金額,付款方式,收款人,交款人;9)合同信息表:合同編號,樓盤編號,買房人身份證號碼,銷售人員編號,樓盤單價,樓盤折扣金額,付款方式,貸款銀行,簽訂時間,客戶交款記錄。
(三)數(shù)據(jù)窗口對象的創(chuàng)建
系統(tǒng)其他界面的設(shè)計便不一一介紹了,這里簡單介紹一下數(shù)據(jù)窗口對象的創(chuàng)建。使用PowerBuilder時,其中一個較為重要的工具便是數(shù)據(jù)窗口對象。由于本系統(tǒng)是使用PowerBuilder設(shè)計的,所以一定要注意數(shù)據(jù)窗口對象的建立,這是連接數(shù)據(jù)庫與客戶端的工具。在數(shù)據(jù)窗口對象中可以對數(shù)據(jù)進(jìn)行添加、修改、查詢、刪除等相關(guān)基礎(chǔ)操作。還可以指定數(shù)據(jù)的輸入格式和輸出格式用數(shù)據(jù)窗口對象可以較為方便以及快捷的建立相關(guān)的較為復(fù)雜的數(shù)據(jù)庫應(yīng)用程序,來為數(shù)據(jù)窗口對象選擇不同的顯示風(fēng)格以及選擇不同的數(shù)據(jù)源,并可以增強(qiáng)它的功能,這就要通過添加各種控件來實現(xiàn)了。要保證數(shù)據(jù)庫與窗口對象是相互連接的,這樣才能順利的通過數(shù)據(jù)窗口對象對數(shù)據(jù)進(jìn)行相關(guān)操作,要保證添加、修改、查詢、刪除等相關(guān)基礎(chǔ)操作的順利運(yùn)行。所以,一定要保證數(shù)據(jù)窗口對象成功地與數(shù)據(jù)庫相連接。數(shù)據(jù)窗口對象中數(shù)據(jù)的來源便是其中的數(shù)據(jù)源,在本系統(tǒng)的設(shè)計中,數(shù)據(jù)窗口對象的數(shù)據(jù)源主要有下面兩種:快速選擇數(shù)據(jù)源,QuickSelect。通過建立簡單的Select語句,來進(jìn)行數(shù)據(jù)源的選擇,主要通過一個表或者由外鍵連接的多個表來進(jìn)行數(shù)據(jù)列的選擇,但是這種方法有一點缺陷,那便是在創(chuàng)建數(shù)據(jù)窗口對象時不能生成相應(yīng)的計算列。SQL選擇數(shù)據(jù)源,SQLSelect。SQL選擇數(shù)據(jù)源,SQLSelect數(shù)據(jù)遠(yuǎn)遠(yuǎn)比快速選擇數(shù)據(jù)源,QuickSelect數(shù)據(jù)源要復(fù)雜的多。通過這種方式可以用可視化的方式來建立較為復(fù)雜的SQL選擇數(shù)據(jù)源的語句結(jié)構(gòu)來構(gòu)造數(shù)據(jù)源,并生成相應(yīng)的計算列,這是快速選擇數(shù)據(jù)源所做不到的。還可以對數(shù)據(jù)進(jìn)行相應(yīng)的分組排序,還可以進(jìn)行表的關(guān)聯(lián)等等操作。PowerBuilder中的數(shù)據(jù)源,功能最全的便是SQL選擇數(shù)據(jù)源,SQLSelect。數(shù)據(jù)窗口對象顯示數(shù)據(jù)的方式便是數(shù)據(jù)窗口對象的顯示風(fēng)格。這要求數(shù)據(jù)窗口對象顯示的外觀不一定要多么的華麗,但一定要美觀、大方、變化多,以此來適用于不同的場景以及場合。本系統(tǒng)的數(shù)據(jù)窗口的顯示風(fēng)格設(shè)定為,F(xiàn)reeform風(fēng)格和Grid風(fēng)格這兩種風(fēng)格。創(chuàng)建數(shù)據(jù)窗口對象的步驟如下:在進(jìn)入PowerBuilder后,在系統(tǒng)樹窗口中查找并打開該應(yīng)用,找到“File”/“New”進(jìn)行選擇,或者是通過單擊工具條上的相關(guān)圖標(biāo),來彈出新建對象窗口。在這里要選擇“DataWindow”頁,會出現(xiàn)一個界面,在界面上選擇顯示風(fēng)格。以“客戶信息查詢窗口”為例。先選定Freeform的圖標(biāo),點擊確認(rèn)按鈕或雙擊鼠標(biāo)左鍵。彈出對話框,選擇數(shù)據(jù)庫中的“客戶信息表”,單擊下一步,這樣就可以建立“客戶信息查詢窗口”的數(shù)據(jù)窗口了。然后便可以通過對數(shù)據(jù)窗口對象進(jìn)行操作進(jìn)而對其進(jìn)行相關(guān)操作。
三、總結(jié)
系統(tǒng)采用三層架構(gòu),由數(shù)據(jù)層、業(yè)務(wù)層和表示層組成,分別負(fù)責(zé)數(shù)據(jù)的收集、整理和展示,從而達(dá)到在同一系統(tǒng)內(nèi)管理多臺數(shù)據(jù)庫的目的。數(shù)據(jù)層:充分利用Oracle存儲過程,在后成對11臺數(shù)據(jù)庫的信息收集工作,充分利用夜間服務(wù)器性能空閑時間完成各類信息的采集工作,以減少對服務(wù)器負(fù)載的影響。業(yè)務(wù)層:對數(shù)據(jù)層所提交的基礎(chǔ)數(shù)據(jù)進(jìn)行分類處理,形成涵蓋數(shù)據(jù)和數(shù)據(jù)庫管理方面的六大功能模塊。表示層:根據(jù)數(shù)據(jù)庫管理的實際需要以及廠礦兩級數(shù)據(jù)庫的不同特點,形成多種類分析報表,為管理員提供高效、準(zhǔn)確的數(shù)據(jù)庫管理依據(jù)。
二、重點功能分析
2.1重點生產(chǎn)數(shù)據(jù)加載情況監(jiān)管。建立重點生產(chǎn)數(shù)據(jù)加載情況跟蹤監(jiān)管機(jī)制。對生產(chǎn)運(yùn)行、管理決策等方面影響較大的31個數(shù)據(jù)表確定為重點監(jiān)測對象,并為其指定明確的責(zé)任人,建立持久的“雙負(fù)責(zé)”責(zé)任機(jī)制。
2.2數(shù)據(jù)庫基本概況及運(yùn)行狀況監(jiān)控。對所有數(shù)據(jù)庫的管理要點進(jìn)行集中監(jiān)管。通過對數(shù)據(jù)庫運(yùn)行狀態(tài)、表空間占用情況、參數(shù)配置情況和CPU負(fù)載情況等重要信息的收集、分析、判定,協(xié)助管理員方便快捷的掌控11臺數(shù)據(jù)庫的運(yùn)行狀態(tài),及時對影響數(shù)據(jù)庫正常運(yùn)行的隱患和問題進(jìn)行處理,使數(shù)據(jù)庫系統(tǒng)處于高效、穩(wěn)定的良好運(yùn)行狀態(tài)。(1)系統(tǒng)可自動收集每臺服務(wù)器的基本信息,并自動生成服務(wù)器概要信息報告,供用戶及管理員隨時查閱。(2)系統(tǒng)通過“三表一圖”的專項檢查,即:基本狀況檢測表、表空間檢測表、參數(shù)配置檢測表、CPU負(fù)載檢測圖等,分析運(yùn)行狀態(tài),把握關(guān)鍵參數(shù)。
2.3備份執(zhí)行情況監(jiān)控。數(shù)據(jù)備份任務(wù)完成情況監(jiān)控。根據(jù)備份策略所制定的備份周期,對備份執(zhí)行情況進(jìn)行檢測,異常時紅燈亮起預(yù)警。數(shù)據(jù)備份文件增量異常預(yù)警。對備份文件的容量實施線性跟蹤監(jiān)控,自動分析變化趨勢,變化比率超過士5%后,自動預(yù)警。
三、應(yīng)用效果
《數(shù)據(jù)資源監(jiān)控管理平臺》是一個集數(shù)據(jù)與服務(wù)器雙向管理的網(wǎng)絡(luò)監(jiān)管環(huán)境,實現(xiàn)了多數(shù)據(jù)庫集成化管理的策略,可大幅提升數(shù)據(jù)庫管理效率,降低人為失誤幾率,通過“有監(jiān)測、可預(yù)警、設(shè)制度、清責(zé)任”的數(shù)據(jù)庫管理思路,進(jìn)一步規(guī)范了數(shù)據(jù)庫管理流程,從而確保所有數(shù)據(jù)庫能夠安全可靠、持續(xù)高效的為全廠各應(yīng)用系統(tǒng)和廣大用戶提供高質(zhì)量的數(shù)據(jù)服務(wù)。本項目已正式部署應(yīng)用,可同時對11臺數(shù)據(jù)庫實施定時、定量的監(jiān)測預(yù)警,進(jìn)一步規(guī)范管理流程、大幅提高工作效率。隨著本系統(tǒng)的持續(xù)應(yīng)用,后續(xù)管理效果將顯著提升,具有良好的應(yīng)用前景。
四、結(jié)論
一、實驗情境設(shè)計
某小型企業(yè)已建立采用B/S結(jié)構(gòu)設(shè)計的銷售管理系統(tǒng),其后臺數(shù)據(jù)庫名稱為example,products表和orders表是example數(shù)據(jù)庫中的兩張表。要求用戶a~e能登錄數(shù)據(jù)庫服務(wù)器并按照設(shè)計的訪問控制權(quán)限訪問相應(yīng)的服務(wù)器及數(shù)據(jù)庫資源,訪問用戶及權(quán)限設(shè)置如表1所示:表1用戶及訪問權(quán)限設(shè)置表
二、實驗技術(shù)分析
本實驗主要實現(xiàn)在SQLSERVER中對數(shù)據(jù)庫安全性的管理問題。首先明確SQLServer中身份驗證的種類和實現(xiàn)步驟,然后再熟悉為用戶分配登錄賬號和權(quán)限的操作方法,對于SQLServer安全性的各種管理,尤其是對數(shù)據(jù)庫訪問控制操作有深入要求。要管理數(shù)據(jù)庫安全性,必須了解各種賬號和權(quán)限,因為安全性就是通過它們的分配來實現(xiàn)的。所以掌握它們的區(qū)別和用處非常重要。(一)SQLSERVER身份驗證模式SQLSERVER身份驗證模式指SQLSERVER如何處理用戶名和密碼的問題,SQLSERVER提供兩種身份驗證模式。1、Windows身份驗證模式,在這種方式下,用戶只可以使用Windows身份登陸連接到SQLServer,由Windows操作系統(tǒng)對客戶端進(jìn)行身份驗證。我們知道,SQLServer和Windows同屬于微軟公司的產(chǎn)品。當(dāng)使用Windows身份驗證連接到SQLServer時,SQLServer使用Windows操作系統(tǒng)中的信息驗證賬戶名和密碼,用戶不必重復(fù)提交登錄名和密碼。這種驗證方式的弊端在于若采取B/S結(jié)構(gòu)服務(wù)器,遠(yuǎn)程客戶機(jī)無法連接到服務(wù)器,這時須使用混合驗證模式。2、混合驗證模式,即可以同時使用Windows身份驗證和SQLServer身份驗證。使用具體驗證方式取決于在最初通信時使用的網(wǎng)絡(luò)庫。如果一個用戶使用TCP/IP進(jìn)行登錄驗證,則使用SQLServer身份驗證;如果用戶使用命名管道,則登錄時將使用Windows身份驗證。[1]圖1SQLServer安全性決策樹通過以上兩種身份驗證模式,用戶如果想使用指定的登錄名稱和密碼連接到SQLServer,SQLServer會按照圖1所示的安全性決策樹進(jìn)行安全身份驗證。本實驗中要實現(xiàn)在采用B/S結(jié)構(gòu)設(shè)計的銷售管理系統(tǒng)中讓不同的客戶端用戶能訪問服務(wù)器的數(shù)據(jù)庫資源,所以身份驗證模式可以設(shè)置為“SQLServer和Windows身份驗證模式”。(二)賬號和權(quán)限1、登錄帳戶登錄賬戶是讓用戶登錄到SQLServer服務(wù)器中用的賬號,如果用戶不能登錄SQLServer的服務(wù)器,也就不能訪問該服務(wù)器上的數(shù)據(jù)庫資源。在實驗中,需要創(chuàng)建登錄帳戶logina~logine,讓這些帳戶都能登錄數(shù)據(jù)庫服務(wù)器。2、數(shù)據(jù)庫用戶一個SQLServer服務(wù)器下面可以建多個數(shù)據(jù)庫。能登錄到SQLServer服務(wù)器,不一定能訪問到服務(wù)器中的數(shù)據(jù)庫。在實驗中,需要創(chuàng)建數(shù)據(jù)庫用戶userb~usere,使這些數(shù)據(jù)庫用戶都能訪問sample數(shù)據(jù)庫。3、角色為了便于管理數(shù)據(jù)庫的的權(quán)限,SQLServer提供了若干“角色”,“角色”就是用一種方法來把用戶集中到一個單元中,并在此單元上應(yīng)用權(quán)限。SQLServer提供了預(yù)定義的服務(wù)器角色和數(shù)據(jù)庫角色,也可以在數(shù)據(jù)庫中創(chuàng)建用戶自定義的數(shù)據(jù)庫角色。在實驗中,用到如下兩個固定的服務(wù)器角色和數(shù)據(jù)庫角色:sysadmin固定服務(wù)器角色的成員可以在數(shù)據(jù)庫引擎中執(zhí)行任何活動。db_backupoperator固定數(shù)據(jù)庫角色的成員可以備份數(shù)據(jù)庫。由于本實驗中用戶a需要訪問控制全部服務(wù)器資源,即用戶a要求完全的數(shù)據(jù)庫服務(wù)器訪問權(quán)限,所以用戶a應(yīng)設(shè)置為固定服務(wù)器角色sysadmin的成員之一,使之成為服務(wù)器的超級管理員。用戶a的安全訪問流程如圖2所示。圖2用戶a安全訪問流程用戶b要能備份數(shù)據(jù)庫,可以將其添加到數(shù)據(jù)庫角色db_backupoperator中,用戶b的安全訪問流程如圖3所示。用戶c與用戶d都要訪問數(shù)據(jù)庫中的表,所不同的是具體的訪問對象及訪問權(quán)限,在實驗中可以創(chuàng)建兩個自定義的數(shù)據(jù)庫角色R1和R2,將用戶userc、用戶userd分別添加到R1角色R2角色中。4、權(quán)限在為用戶和角色分配登錄帳戶后,還必須為他們分配權(quán)限以增強(qiáng)數(shù)據(jù)庫的安全性。權(quán)限詳細(xì)地說明了可以讓用戶使用哪些數(shù)據(jù)庫對象,并可以對它們進(jìn)行哪些處理。用戶在數(shù)據(jù)庫內(nèi)的權(quán)限取決于用戶帳戶的權(quán)限和該用戶所屬的角色成員。在實驗中為R1角色授予查詢、修改products表的權(quán)限,為R2角色授予查詢orders表的權(quán)限,為用戶usere添加訪問products表、orders表的權(quán)限。用戶c~用戶d訪問數(shù)據(jù)庫資源的控制方式如圖4所示。圖4用戶c~用戶e安全訪問流程
三、實驗過程
該實驗需要每人PC機(jī)一臺,操作系統(tǒng)為Win-dowsxp或win7,實驗的數(shù)據(jù)庫管理系統(tǒng)軟件為SQLServer2005或SQLServer2008。請學(xué)生務(wù)必用每個用戶的身份進(jìn)行登錄、比較操作以校驗數(shù)據(jù)庫安全訪問控制實驗過程的正確性。
四、實驗總結(jié)
數(shù)據(jù)倉庫的概念最早是由WH.Inmon提出來的,在他的著作《建立數(shù)據(jù)倉庫》中是這樣定義的:數(shù)據(jù)倉庫是一個面向主題的、集成的、想對穩(wěn)定的、隨時間變化的數(shù)據(jù)集合。數(shù)據(jù)倉庫是在傳統(tǒng)數(shù)據(jù)庫基礎(chǔ)上建立起來的,但是與傳統(tǒng)數(shù)據(jù)庫又有所區(qū)別,傳統(tǒng)的數(shù)據(jù)庫是單一的數(shù)據(jù)資源,即以數(shù)據(jù)庫為中心,進(jìn)行聯(lián)機(jī)事務(wù)處理(OLTP,ONLineTransactionProcessing),數(shù)據(jù)庫技術(shù)的主要任務(wù)存儲數(shù)據(jù),對存儲的數(shù)據(jù)進(jìn)行查詢和修改等操作。而數(shù)據(jù)倉庫是將各業(yè)務(wù)系統(tǒng)數(shù)據(jù)抽取出來,按照決策分析型數(shù)據(jù)要求對數(shù)據(jù)進(jìn)行清理轉(zhuǎn)換重新組織,建立分析處理環(huán)境,然后采用聯(lián)機(jī)分析(OLAP)技術(shù)或者數(shù)據(jù)挖掘技術(shù)處理進(jìn)行數(shù)據(jù)分析,挖掘出潛在的有價值的信息,供用戶參考決策。
二、高校教學(xué)管理數(shù)據(jù)倉庫教學(xué)管理系統(tǒng)的設(shè)計
1.體系結(jié)構(gòu)設(shè)計
數(shù)據(jù)倉庫是基于傳統(tǒng)數(shù)據(jù)庫積累的數(shù)據(jù)和其它渠道收集的各種數(shù)據(jù)信息搭建起來的面向聯(lián)機(jī)分析處理(OLAP,ONLineAnalyticalprocessing)的分析型信息集合,總體結(jié)構(gòu)為三個層次:(源數(shù)據(jù))數(shù)據(jù)處理、數(shù)據(jù)存儲、數(shù)據(jù)分析。高校教學(xué)管理系統(tǒng)數(shù)據(jù)倉庫包括數(shù)據(jù)源、數(shù)據(jù)處理,數(shù)據(jù)存儲和數(shù)據(jù)分析四個部分。數(shù)據(jù)源:主要來自數(shù)字化校園管理平臺,涵蓋高校各信息系統(tǒng),教務(wù)管理、學(xué)籍管理、招生就業(yè)管理以及其他信息系統(tǒng)等的數(shù)據(jù)。數(shù)據(jù)處理:包括數(shù)據(jù)抽取、清理、轉(zhuǎn)換和集成。首先從數(shù)據(jù)源中抽取數(shù)據(jù),存儲到臨時數(shù)據(jù)表中,然后對抽取的數(shù)據(jù)進(jìn)行清洗和轉(zhuǎn)換,通過清洗去除決策分析無用的數(shù)據(jù)信息,通過轉(zhuǎn)換使數(shù)據(jù)標(biāo)準(zhǔn)一致,將轉(zhuǎn)換清理后的數(shù)據(jù)集成裝入到數(shù)據(jù)倉庫中。數(shù)據(jù)存儲:各信息系統(tǒng)的數(shù)據(jù)與數(shù)據(jù)倉庫系統(tǒng)的數(shù)據(jù)是相互獨(dú)立的,因此各信息系統(tǒng)數(shù)據(jù)的變化不會自動更新數(shù)據(jù)倉庫的數(shù)據(jù),我們需要在設(shè)定數(shù)據(jù)同步存儲機(jī)制,才能實現(xiàn)更新數(shù)據(jù)融入數(shù)據(jù)倉庫存儲。數(shù)據(jù)分析:數(shù)據(jù)抽取、清理、轉(zhuǎn)換、存儲到數(shù)據(jù)倉庫系統(tǒng)以后,我們需要通過各種技術(shù),如聯(lián)機(jī)分析(OLAP)技術(shù)、數(shù)據(jù)挖掘(DM)技術(shù)、商業(yè)智能(BI)技術(shù)等形成統(tǒng)計分析報表供用戶查看并做出相應(yīng)的決策。
2.主題劃分
數(shù)據(jù)倉庫的重要特點是面向主題。當(dāng)數(shù)據(jù)圍繞主題域來組織時,決策分析者將能很明確地找到自己感興趣的東西。建立數(shù)據(jù)倉庫首先要根據(jù)用戶的需要進(jìn)行主題劃分,然后根據(jù)主題建立數(shù)據(jù)倉庫模型,通過ETL工具從數(shù)據(jù)源抽取數(shù)據(jù)到數(shù)據(jù)倉庫,最后采用聯(lián)機(jī)分析(OLAP)技術(shù)或數(shù)據(jù)挖掘(DM)技術(shù)對數(shù)據(jù)進(jìn)行分析挖掘,根據(jù)分析及挖掘結(jié)果做出相應(yīng)的決策。根據(jù)教學(xué)管理系統(tǒng)的應(yīng)用需求,在高校教學(xué)管理新系統(tǒng)中,組織層領(lǐng)導(dǎo)最關(guān)注的教學(xué)質(zhì)量,所以系統(tǒng)確定的主題主要包括:包含學(xué)生、教師、課程、教學(xué)質(zhì)量等幾個方面。
3.數(shù)據(jù)倉庫模型設(shè)計
數(shù)據(jù)倉庫模型比較常用的有兩種:星型和雪花型兩種。星型是由一個事實表和多個維度表進(jìn)行關(guān)聯(lián),具有統(tǒng)計分析和查詢速度快特點,所以在教學(xué)管理信息系統(tǒng)中采我們采用星型模型。下面以教學(xué)質(zhì)量主題為例說明數(shù)據(jù)倉庫模型的設(shè)計。維表我們設(shè)計為時間表、學(xué)生成績表、學(xué)生就業(yè)情況表、學(xué)生獎懲表、學(xué)生學(xué)習(xí)情況、教師教學(xué)水平表,事實表由就業(yè)率、等級及數(shù)量、學(xué)生獲獎等級及數(shù)量等構(gòu)成。
4.聯(lián)機(jī)分析(OLAP)
聯(lián)機(jī)分析(OLAP)是針對某一個具體主題,采用聯(lián)機(jī)分析術(shù)(OLAP)或數(shù)據(jù)挖掘(DM)技術(shù)對數(shù)據(jù)倉庫中的信息進(jìn)行統(tǒng)計分析。聯(lián)機(jī)分析包括多維數(shù)據(jù)分析方法,大體上可分為切塊、旋轉(zhuǎn)、鉆取。所謂的旋轉(zhuǎn)就是交換維度的位置關(guān)系,以便于決策人員可以不同角度得到多維數(shù)據(jù),獲取有價值的信息。通過聯(lián)機(jī)分析技術(shù)的旋轉(zhuǎn)方法我們可以很容易的發(fā)現(xiàn)教學(xué)管理系統(tǒng)教學(xué)質(zhì)量問題,如教學(xué)計劃不合理、有些教師水平有待提高等,通過鉆取可以更深入的分析出教學(xué)計劃不合理的各種因素。
三、結(jié)束語
預(yù)計1個月內(nèi)審稿 省級期刊
北京市統(tǒng)計局主辦
預(yù)計1個月內(nèi)審稿 統(tǒng)計源期刊
工業(yè)和信息化部主辦
預(yù)計1個月內(nèi)審稿 省級期刊
貴州出版集團(tuán)公司主辦
預(yù)計1個月內(nèi)審稿 部級期刊
中國人民公安大學(xué)法學(xué)院主辦
預(yù)計1-3個月審稿 CSCD期刊
中國科學(xué)院主辦
預(yù)計1個月內(nèi)審稿 部級期刊
信息產(chǎn)業(yè)部主辦