mysql數(shù)據(jù)庫(kù)范文

時(shí)間:2023-04-07 09:43:54

導(dǎo)語(yǔ):如何才能寫(xiě)好一篇mysql數(shù)據(jù)庫(kù),這就需要搜集整理更多的資料和文獻(xiàn),歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。

mysql數(shù)據(jù)庫(kù)

篇1

1、通過(guò)線(xiàn)程的互斥來(lái)同步操作數(shù)據(jù)庫(kù);

2、數(shù)據(jù)庫(kù)采用事務(wù)處理表中的數(shù)據(jù);

3、采用共享方式打開(kāi)數(shù)據(jù)庫(kù),不能以獨(dú)占方式打開(kāi)數(shù)據(jù)庫(kù)建立一個(gè)mysql連接表加上一個(gè)臨界區(qū),根據(jù)實(shí)際情況定大小。

篇2

網(wǎng)上有關(guān)于eclipse連接mySql數(shù)據(jù)庫(kù)資料,在百度上搜索相關(guān)信息,完全符合標(biāo)題的很多,但闡述的都不詳細(xì),現(xiàn)就eclipse連接mySql問(wèn)題通過(guò)實(shí)例進(jìn)行分析。

一、正確安裝MySQL。

打開(kāi)下載的mysql安裝文件mysql-5.5.32-win32.zip正確安裝,為了數(shù)據(jù)安全,不要把mysql安裝在系統(tǒng)盤(pán),如C:盤(pán)。如果是重新安裝mysql的話(huà),要注意先備份好mysql目錄中的data目錄,這個(gè)目錄是所有用戶(hù)的數(shù)據(jù)目錄,非常重要。重裝時(shí),備份好數(shù)據(jù)后,先卸載掉舊的mysql,并刪除原mysql安裝目錄。注意選擇Custom選項(xiàng),這樣才能修改安裝目錄。

二、創(chuàng)建一個(gè)MySql數(shù)據(jù)庫(kù)結(jié)果如圖1所示。

三、打開(kāi)Eclipse,創(chuàng)建一個(gè)項(xiàng)目(myTest),安裝mysql直連驅(qū)動(dòng)jar包。

步驟:右鍵點(diǎn)擊myTest--->build Path--->add external Archiver...選擇jdbc驅(qū)動(dòng),點(diǎn)擊確定。

四、驅(qū)動(dòng)已經(jīng)導(dǎo)入,下面我們來(lái)寫(xiě)一個(gè)程序驗(yàn)證一下。在myTest工程下建Class文件,名為mySql_1,輸入如下代碼:

import java.sql.*;

public class mySql_1

{

public static void main(String args[])

{ try

{

Class.forName("com.mysql.jdbc.Driver"); //加載MYSQL JDBC驅(qū)動(dòng)程序

//Class.forName("org.gjt.mm.mysql.Driver");

System.out.println("成功安裝Mysql驅(qū)動(dòng)!");

}

catch (Exception e) {

System.out.print("Error loading Mysql Driver!");

e.printStackTrace();

}

try

{

Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/myTest","root","z");

System.out.println("成功 Mysql服務(wù)!");

Statement stmt = connect.createStatement();

ResultSet rs = stmt.executeQuery("select * from test_1"); //z 為你表的名稱(chēng)

while (rs.next())

{

System.out.print(rs.getString("id")+" ");

System.out.print(rs.getString("name"));

System.out.println(rs.getString("age"));

} }

catch (Exception e) {

System.out.print("get data error!");

e.printStackTrace();

} } }

五、我們來(lái)寫(xiě)一個(gè)程序驗(yàn)證一下向MySQL數(shù)據(jù)庫(kù)中插入數(shù)據(jù)。在myTest工程下建Class文件,名為mySql_2,輸入如下代碼,往MySQL的Test_1表中插入10條數(shù)據(jù)。

import java.sql.*;

public class mySql_2

{

public static void main(String args[])

{ try

{

Class.forName("com.mysql.jdbc.Driver"); //加載MYSQL JDBC驅(qū)動(dòng)程序

//Class.forName("org.gjt.mm.mysql.Driver");

System.out.println("成功安裝Mysql驅(qū)動(dòng)!");

}

catch (Exception e)

{ System.out.print("錯(cuò)誤安裝Mysql驅(qū)動(dòng)!");

e.printStackTrace();

} try

{ Connection connect = DriverManager.getConnection( "jdbc:mysql://localhost:3306/mytest","root","z");

int num=10;

PreparedStatement Statement=connect.prepareStatement("insert into test_1 values(?,?,?)");

for(int i=0;i

Statement.setString(1,"No."+i);//給第一個(gè)問(wèn)號(hào)賦值;

Statement.setString(2,"姓名"+i); //給第二個(gè)問(wèn)號(hào)賦值;

Statement.setInt(3,100+i); //給第三個(gè)問(wèn)號(hào)賦;

Statement.executeUpdate();

}

// } catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

// System.out.println("An error has occurred:"+e.toString());

// e.printStackTrace();

}

catch(SQLException e)

{ } } }

篇3

【關(guān)鍵詞】MYSQL;MSSQL;安全分析;漏洞探測(cè)

動(dòng)態(tài)網(wǎng)站的安全是關(guān)系到網(wǎng)站是否正常運(yùn)行的根本,而企業(yè)內(nèi)部客戶(hù)信息等數(shù)據(jù)的安全更是其命脈所在,這些數(shù)據(jù)通常都保存在網(wǎng)站的后臺(tái)數(shù)據(jù)庫(kù)中,那么安全可靠的數(shù)據(jù)庫(kù)是至關(guān)重要的。目前中小型企業(yè)多使用MYSQL和MSSQL作為后臺(tái)數(shù)據(jù)庫(kù)。

本文將從數(shù)據(jù)庫(kù)系統(tǒng)的用戶(hù)權(quán)限、目錄權(quán)限、漏洞探測(cè)和密碼竊聽(tīng)四個(gè)方面對(duì)MYSQL和MSSQL數(shù)據(jù)庫(kù)做安全性分析。

1.測(cè)試環(huán)境

Windows server 2003網(wǎng)絡(luò)操作系統(tǒng),默認(rèn)系統(tǒng)管理員賬戶(hù),在IIS6.0上配置網(wǎng)站和FTP服務(wù)器,系統(tǒng)支持asp,,PHP。安裝有MySql5.1和SQL server2008數(shù)據(jù)庫(kù)系統(tǒng)。

2.數(shù)據(jù)庫(kù)安全性分析

2.1 用戶(hù)權(quán)限

(1)當(dāng)你試圖聯(lián)接一個(gè)MySQL服務(wù)器時(shí),身份檢查使用user表中3個(gè)字段(Host,User和Password)。服務(wù)器在user表?xiàng)l目中匹配你的主機(jī)名和用戶(hù)名,并當(dāng)你提供了正確的口令才接受連接。我們通過(guò)root用戶(hù)和密碼,連接數(shù)據(jù)庫(kù)后,使用select命令查看用戶(hù)和權(quán)限。如圖1所示。

圖1 Mysql初始用戶(hù)及權(quán)限

第一條說(shuō)明可在本機(jī)使用root用密碼登陸,擁有刪除記錄,修改記錄,刪除表等權(quán)限,如果密碼強(qiáng)壯,那么,這是安全的。

第二條表示在任何主機(jī)使用root不需密碼登陸,擁有刪除記錄,修改記錄,刪除表等權(quán)限,’%’在Host列里意味著“任何主機(jī)”并且是不特定的。

第三條表示在本機(jī)(localhost)匿名登陸,擁有刪除記錄,修改記錄,刪除表等權(quán)限,空白User值意味著“任何用戶(hù)”并且是最不特定的。

第四條表示可以在任何主機(jī)匿名登陸,但沒(méi)有任何權(quán)限。

顯然,第二,三,四都是不安全的!

解決方法:如果你不需要遠(yuǎn)程維護(hù),刪除掉第二條,delete from user where host=“%”and user=“root”;或者給它加個(gè)強(qiáng)壯的密碼。刪除第三條和第四條。

(2)MSSQL數(shù)據(jù)庫(kù)的權(quán)限控制是基于master庫(kù)的syslogins表,擁有所有權(quán)限的帳號(hào)是sa,其他還有sysadmin,db_owner等不同權(quán)限帳號(hào)。由于SQL Server不能刪除Sa這個(gè)超級(jí)用戶(hù),所以必須對(duì)這個(gè)帳號(hào)進(jìn)行最強(qiáng)的保護(hù),如使用非常強(qiáng)壯的密碼。新建立一個(gè)擁有與Sa一樣權(quán)限的超級(jí)用戶(hù)來(lái)管理數(shù)據(jù)庫(kù),只有當(dāng)其它系統(tǒng)管理員不可用或忘了密碼時(shí)才使用Sa。定期檢查所有登陸帳號(hào),查看是否有不符合要求的密碼。

如下命令檢查是否有空口令帳號(hào)存在。

Use master

Select name,Password from syslogins where password is null

盡可能的刪除存儲(chǔ)擴(kuò)展,防止本地用戶(hù)利用存儲(chǔ)擴(kuò)展執(zhí)行惡意命令。

如下命令刪除xp_cmdshell擴(kuò)展。

use master

sp_dropextendedproc xp_cmdshell

2.2 目錄權(quán)限

(1)一般不會(huì)讓服務(wù)器主機(jī)上的其它用戶(hù)擁有對(duì)數(shù)據(jù)庫(kù)目錄文件的寫(xiě)訪(fǎng)問(wèn)權(quán),但僅僅是讀訪(fǎng)問(wèn)權(quán)也非常危險(xiǎn)。由于像GRANT和SET PASSWORD這樣的查詢(xún)都被記錄到日志中去了,常規(guī)和更新日志文件包含了有關(guān)密碼的敏感查詢(xún)文本。如果一個(gè)攻擊具有對(duì)這些日志的讀訪(fǎng)問(wèn)權(quán),那么他只要在日志文件中查找GRANT或PASSWORD這樣的敏感單詞,就很容易找到密碼的明文。要消除這些安全漏洞,就要安排數(shù)據(jù)庫(kù)目錄及其中所有文件和目錄的所有權(quán)。

MySQL默認(rèn)安裝到c:\mysql,c盤(pán)默認(rèn)everyone有讀取和運(yùn)行權(quán)限,由于權(quán)限的繼承性,everyone對(duì)c:\mysql也有讀取和運(yùn)行權(quán)限,如圖2所示,顯然這是不安全的。

圖2 windows2003默認(rèn)目錄用戶(hù)及權(quán)限

解決方法:把mysql目錄文件改為只有某個(gè)管理員賬戶(hù)(如windows下的adminis-trator賬戶(hù))可讀寫(xiě)。

(2)MSSQL也是安裝到c盤(pán),由于存取控制問(wèn)題,最好安裝到d盤(pán)等非系統(tǒng)盤(pán)進(jìn)行嚴(yán)格的權(quán)限控制。而且,由于MSSQL數(shù)據(jù)庫(kù)與系統(tǒng)結(jié)合非常緊密,系統(tǒng)管理員在沒(méi)有數(shù)據(jù)庫(kù)密碼的情況下也可以通過(guò)選擇windows驗(yàn)證來(lái)操作數(shù)據(jù)庫(kù)。因此,普通用戶(hù)有可能通過(guò)系統(tǒng)漏洞提升自己的權(quán)限,對(duì)數(shù)據(jù)庫(kù)進(jìn)行破壞。

解決辦法:除了嚴(yán)格的存取限制外,還要定期查看SQL Server日志檢查是否有可疑的登錄事件發(fā)生。

對(duì)于MSSQL的安全是和windows系統(tǒng)安全緊密結(jié)合的,操作系統(tǒng)中帳戶(hù)設(shè)置越多,安全性就越差。因此網(wǎng)絡(luò)服務(wù)器只允許一個(gè)指定系統(tǒng)管理員進(jìn)行管理是至關(guān)重要的。

具體要遵循如下原則:

①將唯一的系統(tǒng)管理員Administrator重命名,改為一個(gè)不易猜出的長(zhǎng)名字,從而為攻擊增加一層障礙。

②將Guest帳號(hào)禁用,同時(shí)重命名為一個(gè)復(fù)雜的名字,增加口令。因?yàn)間uest帳號(hào)不能被刪除只能改名。有的黑客工具可以利用guest賬號(hào)的弱點(diǎn),將帳號(hào)權(quán)限從一般用戶(hù)提升到管理員權(quán)限,從而破壞系統(tǒng)。

③給系統(tǒng)管理員帳號(hào)一個(gè)復(fù)雜的口令,長(zhǎng)度最少在8位以上,且必須同時(shí)包含字母、數(shù)字、特殊字符。其次不要使用熟悉的單詞、熟悉的鍵盤(pán)順序、熟悉的數(shù)字等。因?yàn)榭诹钍呛诳凸舻闹攸c(diǎn),口令一旦被突破也就無(wú)任何系統(tǒng)安全可言了,而這往往是不少網(wǎng)管最易忽視的地方。

④口令必須定期更改,且最好記在心里,除此以外不要在任何地方做記錄。

⑤針對(duì)密碼破譯,采用Windows Server 2003提供的賬號(hào)鎖定功能,設(shè)定登錄最大允許的出錯(cuò)次數(shù),一旦登錄次數(shù)超過(guò)設(shè)定次數(shù),系統(tǒng)會(huì)自動(dòng)鎖定賬號(hào),這樣致使密碼破譯無(wú)法進(jìn)行。另外,如果在日志審核中發(fā)現(xiàn)某個(gè)帳號(hào)被連續(xù)嘗試,則必須立刻更改此帳號(hào)(包括用戶(hù)名和口令)。

2.3 服務(wù)器漏洞探測(cè)

(1)MySQL安全漏洞

例1:MySQL CREATE TABLE調(diào)用繞過(guò)訪(fǎng)問(wèn)限制漏洞。

漏洞描述:CVE ID:CVE-2008-7247

當(dāng)數(shù)據(jù)主目錄包含有到不同文件系統(tǒng)的符號(hào)鏈接時(shí),MySQL的ql/sql_table.cc允許通過(guò)認(rèn)證的遠(yuǎn)程攻擊者通過(guò)以特殊DATA DIRECTORY或INDEX DIRECTORY參數(shù)調(diào)用CREATE TABLE繞過(guò)預(yù)期的訪(fǎng)問(wèn)限制,執(zhí)行各種非授權(quán)操作。

解決方法:下載廠(chǎng)商補(bǔ)丁http:///commits/59711

例2:MySQL SELECT語(yǔ)句(下轉(zhuǎn)第35頁(yè))(上接第24頁(yè))處理拒絕服務(wù)漏洞。

MySQL的mysqld守護(hù)程序沒(méi)有正確地處理在執(zhí)行某些帶有子查詢(xún)的SELECT語(yǔ)句期間所產(chǎn)生的錯(cuò)誤,在執(zhí)行使用GeomFromWKB函數(shù)的語(yǔ)句期間沒(méi)有保留某些null_value標(biāo)記,這允許通過(guò)認(rèn)證的遠(yuǎn)程攻擊者通過(guò)提交特制語(yǔ)句導(dǎo)致守護(hù)程序崩潰。

目前廠(chǎng)商已經(jīng)了升級(jí)補(bǔ)丁以修復(fù)這個(gè)安全問(wèn)題,到廠(chǎng)商的主頁(yè)下載:

http:///commits/88409

http:///commits/87482

(2)默認(rèn)的情況下,MSSQL則會(huì)打開(kāi)TCP的1433端口監(jiān)聽(tīng)

雖然MSSQL可以人為的改變監(jiān)聽(tīng)端口,但是通過(guò)微軟未公開(kāi)的1434端口的UDP探測(cè)可以很容易知道MSSQL使用的是什么TCP/IP端口。往UDP1434端口發(fā)送一個(gè)1個(gè)字節(jié)的內(nèi)容為02的數(shù)據(jù)包,被探測(cè)的系統(tǒng)則會(huì)返回安裝的MSSQL服務(wù)信息,這些信息包括:主機(jī)名稱(chēng)、實(shí)例名稱(chēng)、版本、管道名稱(chēng)以及使用的端口等。這個(gè)端口是微軟自己使用,而且不象默認(rèn)的1433端口那樣可以改變,1434是不能改變的。由于利用了UDP端口,一般的過(guò)濾是很難防范的。

解決辦法:安裝防火墻,或者利用Windows 2003系統(tǒng)的IPSEC對(duì)網(wǎng)絡(luò)連接進(jìn)行IP限制,實(shí)現(xiàn)IP數(shù)據(jù)包的安全性。對(duì)IP連接進(jìn)行限制,只保證自己的IP能夠訪(fǎng)問(wèn),拒絕其他IP進(jìn)行的端口連接,把來(lái)自網(wǎng)絡(luò)上的安全威脅進(jìn)行有效的控制。重要的是,還要對(duì)端口作過(guò)濾,包括大部分的TCP和UDP端口,因?yàn)閮H僅做IP限制的話(huà),有可能惡意攻擊者先攻擊被數(shù)據(jù)庫(kù)服務(wù)器信任的主機(jī),控制之后作為跳板對(duì)數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行攻擊。

2.4 密碼竊聽(tīng)

在單機(jī)環(huán)境下,基于用戶(hù)口令本身的保密性(與口令長(zhǎng)度、復(fù)雜性等有關(guān)),可以在一定程度上防止其他用戶(hù)進(jìn)入系統(tǒng)。但在網(wǎng)絡(luò)環(huán)境下,存在另外一種威脅:攻擊者可通過(guò)竊聽(tīng)通信信道或進(jìn)行網(wǎng)絡(luò)窺探的方法,在口令的明文傳輸過(guò)程中獲得用戶(hù)口令,使得這種身份認(rèn)證方法變得極不安全。

MySQL和MSSQL系統(tǒng)客戶(hù)與服務(wù)器構(gòu)架的一個(gè)重要問(wèn)題就是通過(guò)網(wǎng)絡(luò)傳送數(shù)據(jù)時(shí)的安全問(wèn)題。如果客戶(hù)與服務(wù)器間的交互以純文本形式發(fā)生,黑客就可能“嗅出”被傳送的數(shù)據(jù)包,從而獲得機(jī)密信息。

解決方法:可以通過(guò)激活MySQL和MSSQL系統(tǒng)配置中的SSL,或應(yīng)用一個(gè)OpenSSH這樣的安全應(yīng)用來(lái)為傳送的數(shù)據(jù)建立一個(gè)安全的加密“通道”,以關(guān)閉這一漏洞。以這種形式加密客戶(hù)與服務(wù)器連接可使未授權(quán)用戶(hù)極難查閱往來(lái)的數(shù)據(jù)。另外的辦法就是將口令加密傳輸,現(xiàn)在有多種加密技術(shù),常用的是單向函數(shù)加密技術(shù),如在系統(tǒng)中使用MD5算法來(lái)實(shí)現(xiàn)口令的加密存儲(chǔ)與傳輸。

3.總結(jié)

網(wǎng)站后臺(tái)數(shù)據(jù)庫(kù)的安全分析,目的就是保證企業(yè)內(nèi)部客戶(hù)信息等數(shù)據(jù)的安全和企業(yè)網(wǎng)站的正常運(yùn)行。從上面的安全分析結(jié)果來(lái)看,網(wǎng)站后臺(tái)數(shù)據(jù)庫(kù)的安全依賴(lài)于良好的安全管理和有效的安全策略。實(shí)際上數(shù)據(jù)庫(kù)的安全是一個(gè)十分復(fù)雜的工程,這里只體現(xiàn)了其中的幾個(gè)側(cè)面,更精深的安全管理,有待于我們?cè)趯?shí)踐和應(yīng)用中不斷地深入研究。

參考文獻(xiàn)

篇4

【關(guān)鍵詞】在線(xiàn)監(jiān)測(cè)系統(tǒng);MySQL數(shù)據(jù)庫(kù);C++builder

1.引言

對(duì)于在線(xiàn)監(jiān)測(cè)儀來(lái)說(shuō),通常都是長(zhǎng)時(shí)間連續(xù)運(yùn)行的,數(shù)據(jù)量一般都巨大,并且需要在過(guò)程控制中實(shí)時(shí)修改運(yùn)行參數(shù),如何管理數(shù)據(jù)文件,運(yùn)行條件參數(shù)和相關(guān)信息等就顯得尤為重要。這需要借助專(zhuān)門(mén)的數(shù)據(jù)庫(kù)來(lái)才能有效的管理。

近20年來(lái),數(shù)據(jù)庫(kù)技術(shù)不斷發(fā)展,至今已經(jīng)有很多成熟的商品化的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),例如:SQL Server、Oracle和Access等,它們的應(yīng)用越來(lái)越廣泛,但對(duì)用戶(hù)來(lái)說(shuō)還存在不足之處。(a)SQL Server:SQL驗(yàn)證的登陸只對(duì)特定的服務(wù)器有效,也就是說(shuō),在一個(gè)多服務(wù)器的環(huán)境中管理比較困難;對(duì)于每一個(gè)數(shù)據(jù)庫(kù),必須分別地為其設(shè)定管理權(quán)限;移植性較差,不能跨平臺(tái)移植;價(jià)格也不便宜;(b)Oracle:價(jià)格昂貴,服務(wù)費(fèi)用也比較高;對(duì)硬件要求也比較高,使得整體投入非常高;(c)Access:主要用于單機(jī)桌面小型數(shù)據(jù)庫(kù)管理系統(tǒng),屬于Local DBMS,難以支持大型應(yīng)用;速度比較慢,功能還不夠完善。

目前,采用開(kāi)源數(shù)據(jù)庫(kù)已開(kāi)始成為一種潮流,如許多小型、中型或大型網(wǎng)站數(shù)據(jù)庫(kù)服務(wù)器都選擇MySQL數(shù)據(jù)庫(kù)。MySQL是一個(gè)精巧的SQL數(shù)據(jù)庫(kù)管理系統(tǒng),以操作簡(jiǎn)便著稱(chēng)。由于其強(qiáng)大的功能、豐富的應(yīng)用程序接口及精巧的系統(tǒng)結(jié)構(gòu)設(shè)計(jì),在基于數(shù)據(jù)庫(kù)的應(yīng)用軟件開(kāi)發(fā)中得到了廣泛的應(yīng)用。MySQL具有下述優(yōu)勢(shì);(a)是目前運(yùn)行速度最快的SQL語(yǔ)言數(shù)據(jù)庫(kù);(b)多樣的數(shù)據(jù)類(lèi)型和超大的容量可以方便完整地保存反映設(shè)備狀態(tài)的各種數(shù)據(jù);(c)支持多平臺(tái),可以在不同的操作系統(tǒng)下進(jìn)行數(shù)據(jù)的準(zhǔn)確移植;(d)可以免費(fèi)獲得,可以有效降低成本。

本文中在線(xiàn)監(jiān)測(cè)系統(tǒng)硬件平臺(tái)采用PC/104,具體如下:PC/104嵌入式主板采用SBC-4571(北京集智達(dá)公司),其是嵌入式Vortex86 CPU模塊,帶4串口,2個(gè)USB,支持CRT/LCD/音頻/網(wǎng)絡(luò),板載128MB DRAM內(nèi)存,1個(gè)增強(qiáng)IDE接口,顯示屏采用元太 6.4"LCD顯示屏。PC/104主板外加PC/104的I/O卡,就能方便的實(shí)現(xiàn)在線(xiàn)監(jiān)測(cè)系統(tǒng)的控制中心。在線(xiàn)監(jiān)測(cè)系統(tǒng)的軟件平臺(tái)為當(dāng)前流行的Windows 2000操作系統(tǒng)上,采用MySQL數(shù)據(jù)庫(kù)作為在線(xiàn)監(jiān)測(cè)系統(tǒng)的數(shù)據(jù)庫(kù),應(yīng)用軟件在集成開(kāi)發(fā)環(huán)境C++builder 6.0上開(kāi)發(fā)。在此平臺(tái)上研究在線(xiàn)設(shè)備的應(yīng)用程序與MySQL數(shù)據(jù)庫(kù)的連接、更新、插入,及數(shù)據(jù)庫(kù)中關(guān)鍵字段的動(dòng)態(tài)實(shí)時(shí)顯示技術(shù)。本設(shè)計(jì)采用的MySQL版本為mysql-5.0.37-win32及其在windows下的驅(qū)動(dòng)為mysql-connector-odbc-3.51.14-win32。下面從MySQL在線(xiàn)監(jiān)測(cè)數(shù)據(jù)庫(kù)的設(shè)計(jì)、C++ builder與MySQL數(shù)據(jù)庫(kù)的ODBC連接,應(yīng)用程序的設(shè)計(jì)三方面來(lái)論述。

2.MySQL在線(xiàn)監(jiān)測(cè)數(shù)據(jù)庫(kù)的設(shè)計(jì)

本設(shè)計(jì)是為了研究MySQL數(shù)據(jù)庫(kù)在在線(xiàn)監(jiān)測(cè)系統(tǒng)中應(yīng)用的可行性,及關(guān)鍵技術(shù)的開(kāi)發(fā)與研究。因此設(shè)計(jì)的onlinebase數(shù)據(jù)庫(kù)就相對(duì)簡(jiǎn)單, 只包含一張反映在線(xiàn)設(shè)備運(yùn)行結(jié)果的results的表。表results包括關(guān)鍵字段“id”、反映在線(xiàn)監(jiān)測(cè)指標(biāo)值的int類(lèi)型字段“value”、反映在線(xiàn)監(jiān)測(cè)的實(shí)時(shí)條件的int類(lèi)型字段“conditon” 和在線(xiàn)檢測(cè)指標(biāo)時(shí)的備注字段“remark” 等4各字段。創(chuàng)建數(shù)據(jù)庫(kù)onlinebase、數(shù)據(jù)表results后,可以通過(guò)命令desc results來(lái)查看表的具體描述,如圖1所示。

3.C++ builder與MySQL數(shù)據(jù)庫(kù)的ODBC連接

C++builder不能直接訪(fǎng)問(wèn)MySQL數(shù)據(jù)庫(kù),但可以通過(guò)ODBC來(lái)實(shí)現(xiàn)。因?yàn)镺DBC屏蔽了各種數(shù)據(jù)庫(kù)的差異,安裝了MySQL數(shù)據(jù)庫(kù)的ODBC驅(qū)動(dòng)程序后,就可以通過(guò)ODBC對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行操作。

創(chuàng)建ODBC源實(shí)際上就是一個(gè)寫(xiě)操作系統(tǒng)注冊(cè)表的過(guò)程,可以在應(yīng)用程序中實(shí)現(xiàn),但為了簡(jiǎn)單方便,還是通過(guò)在操作系統(tǒng)中“控制面板\性能和維護(hù)\管理工具\(yùn)數(shù)據(jù)源(ODBC)中創(chuàng)建。選擇添加用戶(hù)DSN,然后選擇MySQL ODBC 3.51 Driver的數(shù)據(jù)源驅(qū)動(dòng),點(diǎn)擊完成,出現(xiàn)圖2的對(duì)話(huà)框。

在圖2所示對(duì)話(huà)框中,在“Data Source Name”編輯框中輸入onlineodbc,設(shè)置了ODBC數(shù)據(jù)源的名;在“description”編輯框中輸入對(duì)DSN的說(shuō)明;數(shù)據(jù)在“server”編輯框中輸入local,設(shè)置為本地服務(wù)器;然后設(shè)置User和Password,這里以root用戶(hù)訪(fǎng)問(wèn),并輸入root用戶(hù)的密碼;最后選擇onlinebase作為數(shù)據(jù)源的數(shù)據(jù)庫(kù)。點(diǎn)擊下面的“Test”按鈕可以測(cè)試通過(guò)ODBC數(shù)據(jù)源連接所選數(shù)據(jù)庫(kù)是否成功。最后點(diǎn)擊“ok”按鈕,返回ODBC源數(shù)據(jù)管理器,如圖3所示,就可以發(fā)現(xiàn)新增加的onlineodbc數(shù)據(jù)源。

圖1 創(chuàng)建results表,

并查看results表的結(jié)構(gòu)

圖 2 創(chuàng)建onlinebase數(shù)據(jù)庫(kù)的ODBC源

圖3 創(chuàng)建onlieodbc數(shù)據(jù)源后

的ODBC數(shù)據(jù)源管理器窗口

4.應(yīng)用程序的設(shè)計(jì)

C++builder6上開(kāi)發(fā)的應(yīng)用演示程序的功能是主要是:與MySQL數(shù)據(jù)庫(kù)onlinebase的連接,并將數(shù)據(jù)表results在人機(jī)界面上動(dòng)態(tài)顯示;在線(xiàn)監(jiān)測(cè)指標(biāo)value字段數(shù)值也在曲線(xiàn)上的實(shí)時(shí)動(dòng)態(tài)顯示;可以在人機(jī)界面上手動(dòng)添加記錄,刪除記錄。最重要的是要模擬在線(xiàn)監(jiān)測(cè)系統(tǒng),每隔一段時(shí)間寫(xiě)一條results表中的記錄,能在相應(yīng)的顯示表中和曲線(xiàn)中實(shí)時(shí)更新,動(dòng)態(tài)顯示。最終的應(yīng)用程序運(yùn)行界面如圖4所示。

圖4 應(yīng)用程序與onlinebase數(shù)據(jù)庫(kù)

連接后,運(yùn)行的界面

(1)手動(dòng)添加記錄的實(shí)現(xiàn)

通過(guò)下列語(yǔ)句,可以在表results最后添加一條編輯框EdtRemark、EdtValue、EdtConditon中輸入正確格式的記錄。

Table1->Append();

Table1->FieldValues["id"] = nRecordID ;

Table1->FieldValues["remark"] = EdtRemark->Text ;

Table1->FieldValues["value"] = EdtValue->Text.ToInt() ;

Table1->FieldValues["conditon"] = EdtConditon->Text.ToInt() ;

添加記錄后,剛增加的value字段內(nèi)容也相應(yīng)顯示在Chart1上,具體實(shí)現(xiàn)語(yǔ)句如下:

double TempD = this->Chart1->Series[0]->XValues->Value[1] -

this->Chart1->Series[0]->XValues->Value[0] ;

this->Chart1->Series[0]->Delete(0) ;

Chart1->Series[0]->AddXY(this->Chart1->Series[0]->XValues->Last()+TempD,

this->Table1->FieldValues["value"],

this->Table1->FieldValues["id"],

clBlue ) ;

(2)動(dòng)態(tài)繪制數(shù)據(jù)圖表

為了模擬在線(xiàn)監(jiān)測(cè),實(shí)現(xiàn)了模擬動(dòng)態(tài)監(jiān)測(cè)的功能。首先從在組件模板的System標(biāo)簽頁(yè)下拖動(dòng)Timer1:TTimer組件到Form1上,在Object inspector中設(shè)置Timer1的Enabled屬性為false,Interval屬性為2000。

然后在Timer1中的OnTimer事件中先產(chǎn)生一個(gè)三角波,產(chǎn)生三角波的代碼如下:

// 產(chǎn)生三角波波形

iCount = iCount % iPeriod ;

if( iCount

iValue = 10 * iCount ;

}else{

iValue = 10 * ( iPeriod - iCount ) ;

}

iCount = iCount + 1 ;

而后添加增加記錄的代碼,如下:

Table1->Append() ;

Table1->FieldValues["id"] = nRecordID ;

Table1->FieldValues[“remark”] = “正?!?;

Table1->FieldValues["value"] = iValue ;

Table1->FieldValues["conditon"] = 20 ;

最后添加實(shí)時(shí)顯示的代碼。這樣只要在A(yíng)uto按鈕OnClick事件中使用一條 Timer1->Enabled = true; 語(yǔ)句就可以開(kāi)始自動(dòng)每隔2s增加一條記錄,并實(shí)時(shí)顯示value字段的值。圖4 Chart1中顯示的前兩個(gè)三角形就是模擬在線(xiàn)監(jiān)測(cè)顯示的結(jié)果。

5.結(jié)論

本文在PC/104系統(tǒng)上的構(gòu)建在線(xiàn)監(jiān)測(cè)系統(tǒng),軟件平臺(tái)采用Windows2000操作系統(tǒng),在C++Build6.0環(huán)境下開(kāi)發(fā)的應(yīng)用軟件借助MySQL數(shù)據(jù)庫(kù)不僅可以在線(xiàn)顯示監(jiān)測(cè)數(shù)據(jù)和也可以從數(shù)據(jù)庫(kù)中顯示先關(guān)歷史數(shù)據(jù),軟件界面友好,操作方便,運(yùn)行穩(wěn)定,性?xún)r(jià)比高。

參考文獻(xiàn)

[1] Russell J.T Dyer.MYSQL 核心技術(shù)手冊(cè)[M].李,李東梅.譯.2 版.北京:機(jī)械工業(yè)出版社,2009:442-470.

[2]王軍.Ian Gilfillan《MySQL4從入門(mén)到精通》[M].北京:電子工業(yè)出版社,2003.

[3]陸衛(wèi)忠等.C++Builder 6程序設(shè)計(jì)教程(第二版)[M].科學(xué)出版社,2011.

作者簡(jiǎn)介:

毛成光(1990—),男,大學(xué)本科,現(xiàn)就讀于溫州醫(yī)學(xué)院信息與工程學(xué)院生物醫(yī)學(xué)工程專(zhuān)業(yè)。

篇5

摘要:Moodle平臺(tái)作為一個(gè)優(yōu)秀的開(kāi)放式網(wǎng)絡(luò)課程管理系統(tǒng),可以方便地用來(lái)構(gòu)建網(wǎng)絡(luò)課程。本文主要論述了Moodle課程遷移到新的服務(wù)器后,由于服務(wù)器IP地址的改變而造成課程資源中部分鏈接失效的問(wèn)題,分析了問(wèn)題產(chǎn)生的原因,并找出了解決方案。

關(guān)鍵詞:Moodle;課程;Mysql;遷移

中圖分類(lèi)號(hào):G642

文獻(xiàn)標(biāo)識(shí)碼:A

Moodle是Modular Object-Oriented Dynamic Learning Environment(模塊化面向?qū)ο蟮膭?dòng)態(tài)學(xué)習(xí)環(huán)境)的縮寫(xiě),是專(zhuān)門(mén)針對(duì)廣大教師在信息化環(huán)境中設(shè)計(jì)、管理、實(shí)施和評(píng)價(jià)自己的課程與教學(xué)而開(kāi)發(fā)的課程管理系統(tǒng)。Moodle自誕生之日起就以自由軟件的形式出現(xiàn),遵循GPL(GNU Public License)協(xié)議,這使它充滿(mǎn)了無(wú)窮的活力,吸引了一大批開(kāi)發(fā)者和使用者,目前主流版本是1.9版。

1Moodle數(shù)據(jù)遷移中存在的問(wèn)題

Moodle可以運(yùn)行在Windows環(huán)境下,首次使用需要安裝,安裝成功后,系統(tǒng)會(huì)生成一個(gè)名為config.php的文件,內(nèi)含服務(wù)器的配置信息。如果要把Moodle整體遷移到另外一臺(tái)服務(wù)器上,只要拷貝整個(gè)Moodle文件夾到新服務(wù)器上,并把config.php文件中wwwroot項(xiàng)對(duì)應(yīng)的IP地址改為新服務(wù)器的IP地址,就可以了。

教師在使用Moodle建設(shè)課程資源的時(shí)候,往往用一臺(tái)計(jì)算機(jī)作為服務(wù)器添加教學(xué)活動(dòng)和課程資源,完成網(wǎng)絡(luò)課程的制作。在這些課程資源建設(shè)完成后,若要遷移到另外一臺(tái)服務(wù)器上,課程資源中的有些內(nèi)容可以正常顯示,但是有些圖片或文件可能會(huì)因?yàn)殒溄訜o(wú)效而導(dǎo)致課程資源無(wú)法使用,這些問(wèn)題可用通過(guò)修改Mysql數(shù)據(jù)庫(kù)中的數(shù)據(jù)予以解決。

2原因分析

Moodle中可以添加多種資源,主要包括編寫(xiě)文本頁(yè)、編寫(xiě)網(wǎng)頁(yè)、鏈接到文件或站點(diǎn)、顯示一個(gè)目錄、部署IMS包和插入標(biāo)簽等,不同類(lèi)型的資源在Mysql數(shù)據(jù)庫(kù)對(duì)應(yīng)表中的字段類(lèi)型和長(zhǎng)度等不同。表1中以顯示一個(gè)圖片為例,列出了使用“鏈接到文件”顯示圖片和使用“編寫(xiě)網(wǎng)頁(yè)”顯示一個(gè)嵌入式圖片的區(qū)別,這兩條記錄都是存儲(chǔ)在表mdl_resource中。

由表1可見(jiàn),通過(guò)“鏈接到文件”所鏈接的圖片,保存在reference字段中,保存的僅是文件名,是一種相對(duì)路徑的存儲(chǔ),沒(méi)有固定地和服務(wù)器IP地址對(duì)應(yīng),只要相對(duì)位置的圖片還存在,在整個(gè)Moodle課程拷貝到其他服務(wù)器上時(shí),仍然會(huì)正常顯示;而通過(guò)“編寫(xiě)網(wǎng)頁(yè)”在網(wǎng)頁(yè)中嵌入圖片,是在alltext字段中存儲(chǔ)了該網(wǎng)頁(yè)的html語(yǔ)句,其中的211.87.171.227是創(chuàng)建該網(wǎng)頁(yè)時(shí)所使用服務(wù)器的IP地址,alltext字段中的內(nèi)容不會(huì)因?yàn)榉?wù)器IP地址的改變而改變,該圖片將因找不到IP地址所指向的文件而無(wú)法顯示。

除了圖片文件外,其他類(lèi)型的文件也都存在這種相對(duì)位置引用和使用IP地址進(jìn)行引用的問(wèn)題。而“添加活動(dòng)”在Mysql中的存儲(chǔ)方式和資源的存儲(chǔ)方式類(lèi)似,只不過(guò)不同的活動(dòng)存儲(chǔ)在不同的表中。

3解決方案和步驟

Moodle平臺(tái)后臺(tái)數(shù)據(jù)庫(kù)可用Mysql,在數(shù)據(jù)庫(kù)管理方面,可以使用命令行,但是太多命令不利于記憶;可以借助于Mysql Administrator管理,但是在安裝和使用方面不是很方便。

PhpMyadmin 是一個(gè)以PHP為基礎(chǔ),以Web-Base方式架構(gòu)在網(wǎng)站服務(wù)器上的Mysql的數(shù)據(jù)庫(kù)管理工具,可以管理整個(gè)Mysql服務(wù)器,界面簡(jiǎn)單友好,在Moodle中可以借助于PhpMyadmin進(jìn)行數(shù)據(jù)庫(kù)的管理。

3.1在Moodle中添加PhpMyadmin

Moodle1.9版中不包含PhpMyadmin,可以從官方下載站點(diǎn)/下載,解壓后得到一個(gè)名為PhpMyadmin的文件夾,直接拷貝PhpMyadmin文件夾到..\server\moodle文件夾下。

3.2修改配置文件

進(jìn)入..\PhpMyadmin\libraries目錄,打開(kāi)config.default.php文件,找到以下各項(xiàng),將其后的字符串進(jìn)行修改,如下:

$cfg['PmaAbsoluteUri'] = '211.87.165.136';

//新服務(wù)器的IP地址

$cfg['Servers'][$i]['host'] = 'localhost';

//通常用默認(rèn)

$cfg['Servers'][$i]['user'] = 'root';

// Mysql的默認(rèn)用戶(hù)

$cfg['Servers'][$i]['password'] = '123456';

// 密碼須與設(shè)置Moodle時(shí)相對(duì)應(yīng)

$cfg['DefaultLang'] = 'zh';

//選擇語(yǔ)言,zh代表簡(jiǎn)體中文

3.3Mysql數(shù)據(jù)庫(kù)管理

打開(kāi)IE瀏覽器,輸入 211.87.165.136/PhpMyadmin,211.87.165.136就是新服務(wù)器的IP地址,就可以用PhpMyadmin管理包括Moodle數(shù)據(jù)庫(kù)在內(nèi)的Mysql數(shù)據(jù)庫(kù),如圖1所示。

圖1 用PhpMyadmin管理Moodle數(shù)據(jù)庫(kù)

3.4修改資源的鏈接

為了能夠使課程資源在遷移到新服務(wù)器上之后能正常使用,需要修改相關(guān)表中的內(nèi)容,把用文本形式(VARCHAR或MULTITEXT等類(lèi)型)記錄的鏈接資源修改與新服務(wù)器相對(duì)應(yīng)。Moodle數(shù)據(jù)庫(kù)共有200多張表,在課程資源建設(shè)完成以后,逐個(gè)表進(jìn)行檢查和修改是不可行的,可以使用游標(biāo),用存儲(chǔ)過(guò)程自動(dòng)逐條進(jìn)行修改。

在Moodle數(shù)據(jù)庫(kù)中建立存儲(chǔ)過(guò)程P_ChangeIP,找出含有VARCHAR、MULTITEXT或TEXT類(lèi)型的字段及其表名,定義一個(gè)游標(biāo),每次返回的結(jié)果是表名和其中的字段名,用CONCAT函數(shù)拼接字符串構(gòu)建SQL語(yǔ)句,在Update命令中使用Replace進(jìn)行更新,用新服務(wù)器的IP地址替換原服務(wù)器的IP地址。

存儲(chǔ)過(guò)程的代碼如下:

CREATE PROCEDURE P_ChangeIP( )

BEGIN

DECLARE done INT DEFAULT 0;

DECLARE tname,cname VARCHAR(64);

DECLARE cur1 CURSOR FOR

SELECT table_name,column_name

FROM information_schema.columns

where table_schema = "moodle" and

(data_type like "%varchar%" or data_ type like "%text%");

--information_schema是系統(tǒng)數(shù)據(jù)庫(kù),通過(guò)它可獲取Moodle數(shù)據(jù)庫(kù)的表名、列名等信息

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;

OPEN cur1;

REPEAT

FETCH cur1 INTO tname,cname;

IF NOT done THEN

set @sql_text:=concat("update ",tname, "set ",cname ," = replace(",cname,",

'211.87.171.227','211.87.165.136')");

prepare stmt from @sql_text;

execute stmt;

deallocate prepare stmt;

END IF;

UNTIL done END REPEAT;

CLOSE cur1;

END

存儲(chǔ)過(guò)程定義完成后,使用CALL Moodle.P_ChangeIP( )命令執(zhí)行之,就可以一次性完成對(duì)相關(guān)鏈接數(shù)據(jù)的修改了。

4結(jié)束語(yǔ)

作為一個(gè)正在不斷成長(zhǎng)、日趨成熟的網(wǎng)絡(luò)教學(xué)平臺(tái),Moodle的技術(shù)在不斷改進(jìn)之中, 其技術(shù)改進(jìn)需要使用者共同參與,進(jìn)一步優(yōu)化軟件功能,開(kāi)發(fā)更多適合國(guó)情的教學(xué)模塊,為教學(xué)提供更好的技術(shù)支持。隨著功能的不斷完善,Moodle必將為學(xué)校的網(wǎng)絡(luò)課程資源建設(shè)提供強(qiáng)有力的支持,成為提升教學(xué)質(zhì)量的有力工具。

參考文獻(xiàn):

[1] 劉貫?zāi)?劉榮光,劉曉琴. 基于Moodle網(wǎng)絡(luò)課程的設(shè)計(jì)與實(shí)施探索[J]. 現(xiàn)代教育技術(shù),2008(6).

[2] 曹效英,徐勤岸. 基于Moodle的網(wǎng)絡(luò)課程開(kāi)發(fā)[J]. 軟件導(dǎo)刊,2008(4).

[3] 楊慧玲,張志潔. Moodle平臺(tái)在網(wǎng)絡(luò)教育資源建設(shè)中的應(yīng)用[J]. 教育技術(shù)導(dǎo)刊,2007(8).

[4] 陳恒法,羅兵. 基于Moodle 教學(xué)輔助系統(tǒng)的應(yīng)用實(shí)踐[J]. 中國(guó)教育信息化,2007(5).

Solution to Moodle Course Migration Based on Mysql Database

QIAO Xian-liang

(Qingdao Ocean Shipping Mariners College, Qingdao 266071,China )

篇6

關(guān)鍵詞PHPMySQLODBC

1.引言

在Internet應(yīng)用中,將服務(wù)器端腳本技術(shù)和客戶(hù)端腳本技術(shù)結(jié)合起來(lái)可以制作出豐富多彩的頁(yè)面。CGI和ASP是比較流行的服務(wù)器端腳本技術(shù)。通常CGI在跨平臺(tái)的開(kāi)發(fā)中扮演著主要角色,可以使用VB、C或Perl等來(lái)實(shí)現(xiàn),用它們寫(xiě)的CGI腳本是一個(gè)單獨(dú)的程序,而不是嵌在HTML文檔中再通過(guò)另一個(gè)程序解釋替換的,所以它是一種“非嵌入式”的服務(wù)器端腳本。另外,每一次修改CGI程序都必須重新將其編譯成執(zhí)行文件,因此,這樣的編寫(xiě)方式事實(shí)上是比較困難且沒(méi)有效率。ASP則是嵌入式的服務(wù)器端腳本,每一次修改腳本并不需要重新編譯成執(zhí)行文件就可以直接執(zhí)行,但ASP有一個(gè)致命的缺點(diǎn):不具有跨平臺(tái)開(kāi)發(fā)能力。目前ASP只能在Windows環(huán)境下運(yùn)行,而無(wú)法在Internet上的Unix平臺(tái)下使用。在這種情況下PHP的問(wèn)世,在WelCGI的領(lǐng)域里掀起了一場(chǎng)革命。

2.PHP介紹

PHP(PersonalHomePage)是一種跨平臺(tái)的服務(wù)器端嵌入式腳本語(yǔ)言。它最初是RasmusLerdorf于1994年開(kāi)發(fā)的。早期的版本,提供了訪(fǎng)客留言本、訪(fǎng)客計(jì)數(shù)器等簡(jiǎn)單功能。隨后,在第二版中增加了對(duì)mSQL的支持。自此奠定了PHP在動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)上的影響力,并迅速在Internet上流傳開(kāi)來(lái)。截止1999年,已有超過(guò)十五萬(wàn)個(gè)站點(diǎn)使用PHP。同時(shí),PHP的源代碼完全公開(kāi),在OpenSource意識(shí)抬頭的今天,它更是這方面的中流砥柱,隨著新函數(shù)庫(kù)的不斷加入,使PHP無(wú)論在Unix或是Win32的平臺(tái)上都可以有更多新的功能。如今,PHP已發(fā)展至4.0版。在語(yǔ)法方面,PHP混合了C、Java、Perl以及PHP以前版本的優(yōu)點(diǎn)。它相當(dāng)于Script與CGI的結(jié)合語(yǔ)言,但是其執(zhí)行將效率卻比CGI更好,程序編寫(xiě)也比HTML更便利且更富有彈性,程序的安全性及保密性也比Script好。在函數(shù)支持方面,PHP幾乎覆蓋了Web應(yīng)用的各個(gè)方面,其中最有特色的是數(shù)據(jù)庫(kù)函數(shù),使用PHP完成一個(gè)含有數(shù)據(jù)庫(kù)功能的網(wǎng)頁(yè)非常簡(jiǎn)單,而PHP支持的數(shù)據(jù)庫(kù)也非常豐富,目前包括:Oracle、Sybase、mSQL、MySQL、Informix等。

3.訪(fǎng)問(wèn)MySQL數(shù)據(jù)庫(kù)

MySQL是一個(gè)快速、健壯和易用,且支持多線(xiàn)程、多用戶(hù)的SQL數(shù)據(jù)庫(kù)服務(wù)器。雖然PHP通過(guò)ODBC支持幾乎所有的數(shù)據(jù)庫(kù)。但對(duì)于開(kāi)發(fā)數(shù)據(jù)驅(qū)動(dòng)的網(wǎng)站而言,選擇MySQL應(yīng)該說(shuō)是最佳組合,這不僅因?yàn)镸ySQL是免費(fèi)的,更在于它具有許多同大型數(shù)據(jù)庫(kù)相媲美甚至超過(guò)它們的優(yōu)良性能。PHP實(shí)現(xiàn)對(duì)MySQL數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)有兩種方法:

1)利用PHP的數(shù)據(jù)庫(kù)函數(shù)連接

這里主要用到四個(gè)數(shù)據(jù)庫(kù)函數(shù):

mysql_connect()建立與MySQL服務(wù)器的連接。

mysql_select_db():選擇MySQL服務(wù)器中的數(shù)據(jù)庫(kù)供以后的數(shù)據(jù)查詢(xún)操作query處理。mysql_query():送出query字符串以幫助MySQL做相關(guān)的處理或執(zhí)行。

mysql_fetch_row():用來(lái)將查詢(xún)結(jié)果result單行移到數(shù)組變量中。數(shù)組的索引是數(shù)字

索引,第一個(gè)索引值是0。

2)通過(guò)ODBC連接

PHP通過(guò)ODBC連接MySQL數(shù)據(jù)庫(kù)主要用到四個(gè)函數(shù):

Odbc_connect():用來(lái)同ODBC數(shù)據(jù)源建立連接。

Odbc_do():用來(lái)在建立連接之后執(zhí)行數(shù)據(jù)庫(kù)查詢(xún)。

Odbc_result():用于取得當(dāng)前記錄行中某個(gè)字段的值。

Odbc_fetch_row():用來(lái)把查詢(xún)結(jié)果保存到數(shù)組,每個(gè)數(shù)組元素對(duì)應(yīng)一條記錄。

上述兩種方法在與數(shù)據(jù)庫(kù)建立連接的語(yǔ)法上,并沒(méi)有太大差別。不過(guò)在相比較之下,通過(guò)ODBC方式存取數(shù)據(jù)庫(kù)比PHP直接存取MySQL耗時(shí)間,但通過(guò)ODBC接口存取數(shù)據(jù)庫(kù)不必?fù)?dān)心使用何種數(shù)據(jù)庫(kù),如Oracle,Informix,Sybase等。它們都支持ODBC接口,這樣可減少更換數(shù)據(jù)庫(kù)時(shí)需要更改程序的問(wèn)題。圖1顯了PHP連接數(shù)據(jù)庫(kù)的兩種方法。

PHP

MySQL

MySQL

圖1PHP連接數(shù)據(jù)庫(kù)說(shuō)明圖

4.一個(gè)應(yīng)用實(shí)例

現(xiàn)在很多校園網(wǎng)站都提供成績(jī)查詢(xún)功能。PHP和MySQL數(shù)據(jù)庫(kù)相結(jié)合使用可以方便的實(shí)現(xiàn)此功能。首先建立數(shù)據(jù)庫(kù)Score及數(shù)據(jù)表Score。建表SQL語(yǔ)句如下:

CreattableScore(

Stu_novarchar(10)notnull,

namevarchar(10)notnull,

scoreltinyint(4),

score2tinyint(4),

PrimaryKey(stu_no)

);

1)通過(guò)PHP的數(shù)據(jù)庫(kù)函數(shù)訪(fǎng)問(wèn)MySQL的代碼如下:

〈?php

print(“〈html〉〈head〉\n”);

print(“〈title〉成績(jī)查詢(xún)〈/title〉〈/head〉\n”);

print(“〈body〉〈cennter〉”);

print(“〈fontsize=6color=”ff0000〉您的成績(jī)?nèi)缦隆?font〉”);

$comm=mysql_connect(“l(fā)ocalhost”,“root”,"");

mysql_select_db(“Score”,$comm);

$str=“Select*FromScoreWherestu_no=’$pstu_no''''andname=’$pname''''”;

$reault=mysql_query($str,$comm);

print(“〈tablealign=center〉”);

$sqlrow=mysql_fetch_row($result));

print(“學(xué)號(hào):$sqlrow[0]”);

print(“姓名:$sqlrow[1]”);

print(“成績(jī)1:$sqlrow[2]”);

print(“成績(jī)2:$sqlrow[3]”);

print(“〈/table〉〈body.〈/html〉”);

?〉

2)通過(guò)ODBC訪(fǎng)問(wèn)MySQL數(shù)據(jù)庫(kù)的代碼如下(省略的代碼同上):

〈?php

…

$comm=odbc_connect(“Score”,"system","");

$str="Select*FromScoreWherename=’$pname’andstu_no=’$pstu_no’”;

$result=odbc_do($comm,$str);

…

while(odbc_fetch_row($result))

{

$pstu_no=odbc_result($result,"stu_no");

$pname=odbc_result($result,"name");

$score1=odbc_result($result,"score1");

$score2=odbc_result($result,"score2");

print(“學(xué)號(hào):$pstu-no”);

print(“姓名:$pname”);

print(“成績(jī)1:$score1”);

print(“成績(jī)2:$score2”);

}

…?〉

5.結(jié)束語(yǔ)

對(duì)于Wed服務(wù)器端的開(kāi)發(fā),PHP是一種易開(kāi)發(fā)、高效能的動(dòng)態(tài)腳本編程語(yǔ)言。在未來(lái)的幾年內(nèi),PHP必將成為主流的腳本語(yǔ)言,并被Wed研究和開(kāi)發(fā)人員熟悉和掌握。

參考文獻(xiàn)

篇7

隨著Internet的發(fā)展和普及,越來(lái)越多的單位和個(gè)人都建立了自己的網(wǎng)站,以便更好地進(jìn)行各種信息交流或者宣傳自身,亦或者通過(guò)管理系統(tǒng)提高工作效率,邁入信息化、高效化的快節(jié)奏時(shí)代。Web開(kāi)發(fā)人員比較青睞Wamp的開(kāi)發(fā)環(huán)境,即WAMP(Windows+Apache+MySQL+PHP),是指是基于Windows 操作系統(tǒng)下,Apache作為 Web 服務(wù)器,MySQL 作為數(shù)據(jù)庫(kù)以及PHP(部分網(wǎng)站也使用 Perl 或 Python)作為服務(wù)器端腳本解釋器完美組合,也是目前較為廣泛使用的WEB 應(yīng)用程序平臺(tái)。這其中MySQL數(shù)據(jù)庫(kù)作為網(wǎng)站運(yùn)行更新的橋梁紐帶,起著舉足輕重的作用。

【關(guān)鍵詞】數(shù)據(jù)庫(kù) MySQL 管理系統(tǒng)

那什么叫數(shù)據(jù)庫(kù)呢?可以理解為是存儲(chǔ)數(shù)據(jù)的倉(cāng)庫(kù)。舉例來(lái)說(shuō):比如你的記錄本上有你的學(xué)生的學(xué)號(hào)、姓名、電話(huà)、家庭地址,這些記錄就是數(shù)據(jù)。把這些數(shù)據(jù)按照學(xué)號(hào)、姓名、電話(huà)、家庭住址存放在一個(gè)表里,再把這樣的表放到數(shù)據(jù)庫(kù)里供我們或者人查詢(xún)使用,這就是我們說(shuō)的數(shù)據(jù)庫(kù)。如今:已經(jīng)存在Oracle、SQL Server等諸多優(yōu)秀的數(shù)據(jù)庫(kù)。同時(shí),還有MySQL、PostgreSQL都是很優(yōu)秀的開(kāi)源數(shù)據(jù)庫(kù)。

MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),是一款非常優(yōu)秀的自由軟件。由瑞典 MySQ LAB 公司開(kāi)發(fā),它之所以流行,是因?yàn)樗兄约邯?dú)特的優(yōu)勢(shì):體積小、速度快、總體擁有成本低,最重要的是代碼開(kāi)源,共享。作為商業(yè)運(yùn)行網(wǎng)站,為了降低網(wǎng)站總體成本而選擇這樣的數(shù)據(jù)庫(kù)當(dāng)然是顯而易見(jiàn)的。

1 MySQL支持的語(yǔ)言---SQL

1.1 什么是SQL語(yǔ)言

結(jié)構(gòu)化查詢(xún)語(yǔ)言(Structured Query Language,簡(jiǎn)稱(chēng)SQL)是一種介于關(guān)系代數(shù)與關(guān)系演算之間,并且使用范圍限定的形式化語(yǔ)言。它專(zhuān)門(mén)用于與關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行數(shù)據(jù)交互,并且能夠完成數(shù)據(jù)查詢(xún)、數(shù)據(jù)操作、數(shù)據(jù)定義和數(shù)據(jù)控制四個(gè)方面的功能,是一種通用的、功能性強(qiáng)大的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言。

1.2 SQL語(yǔ)言的特點(diǎn)

(1)統(tǒng)一的語(yǔ)言。SQL語(yǔ)言可用于所有用戶(hù)的數(shù)據(jù)庫(kù)模型,包括系統(tǒng)管理員數(shù)據(jù)庫(kù)管理員應(yīng)用程序開(kāi)發(fā)人員及許多其他類(lèi)型終端用戶(hù)。所有用SQL編寫(xiě)的程序都是可以移植的。

(2)語(yǔ)言簡(jiǎn)潔、易學(xué)易用。SQL語(yǔ)言用了九個(gè)動(dòng)詞完成率數(shù)據(jù)定義(CREATE、DROP、ALTER)、數(shù)據(jù)查詢(xún)(SELECT)、數(shù)據(jù)操作(INSERT、UPDATE、DELETE)、數(shù)據(jù)控制(GTANT、REVOKE)的大部分功能.。

(3)高度非過(guò)程化。降低了數(shù)據(jù)庫(kù)使用的復(fù)雜度,也提高了數(shù)據(jù)的獨(dú)立性。

(4)SQL語(yǔ)言既可以交互式使用,也可以以嵌入形式使用

(5)面向集合的操作方式

(6)SQL語(yǔ)言支持關(guān)系數(shù)據(jù)庫(kù)三級(jí)模式結(jié)構(gòu)。數(shù)據(jù)庫(kù)三級(jí)模式指:內(nèi)模式對(duì)應(yīng)于存儲(chǔ)文件,模式對(duì)應(yīng)于基本表,外模式對(duì)應(yīng)于視圖。

2 MySQL與其他數(shù)據(jù)庫(kù)

2.1 甲骨文的Oracle

Oracle數(shù)據(jù)庫(kù)是世界上第一個(gè)支持SQL語(yǔ)言的數(shù)據(jù)庫(kù)。主要應(yīng)用于大型系統(tǒng)。隨著網(wǎng)格技術(shù)的發(fā)展和應(yīng)用,Oracle公司推出以網(wǎng)格計(jì)算模型的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。盡可能以最低成本和最高的服務(wù)質(zhì)量提供信息,它提供了企業(yè)網(wǎng)格計(jì)算所需的集群、工作負(fù)載管理、數(shù)據(jù)中心自動(dòng)化、易用性。

2.2 IBM的DB2

DB2是IBM公司研制的一種關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)。主要應(yīng)用于OS、Windows等平臺(tái)下。DB2提供了高層次的數(shù)據(jù)利用性,數(shù)據(jù)的完整性好。而且DB2的安全性高,具有很強(qiáng)的可恢復(fù)性。DB2數(shù)據(jù)庫(kù)主要用于大型系統(tǒng)當(dāng)中。

2.3 開(kāi)源的MySQL

MySQL數(shù)據(jù)庫(kù)是一個(gè)開(kāi)放源代碼的數(shù)據(jù)庫(kù)。是由瑞典MySQLAB公司開(kāi)發(fā)的。MySQL廣泛地應(yīng)用于Internet上的中小型網(wǎng)站,針對(duì)不同客戶(hù)群提供Community Server、Enterprise Server和Embedded Server3種套件,體現(xiàn)了良好的伸縮能力。SQL Server 數(shù)據(jù)庫(kù)也是微軟公司開(kāi)發(fā)的。SQL Server是基于客服機(jī)/服務(wù)器模式的大型數(shù)據(jù)庫(kù)管理系統(tǒng),能夠支持大吞吐量的事務(wù)處理,能在網(wǎng)絡(luò)環(huán)境下進(jìn)行數(shù)據(jù)的存取,能用于開(kāi)發(fā)決策支持系統(tǒng)等軟件。

2.4 微軟的Access和SQL Server

Access 數(shù)據(jù)庫(kù)是微軟公司開(kāi)發(fā)的小型數(shù)據(jù)庫(kù)。Access數(shù)據(jù)庫(kù)是Microsoft公司Office系列軟件之一,在程序設(shè)計(jì)概念上更加接近大型DBMS。

3 MySQL數(shù)據(jù)庫(kù)的價(jià)值

3.1 MySQL是開(kāi)放源代碼

MySQL是源代碼可共享、開(kāi)放的數(shù)據(jù)庫(kù),任何人都可以獲取該數(shù)據(jù)庫(kù)的源代碼,基于此基礎(chǔ)進(jìn)行二次開(kāi)發(fā),修正MYSQL的缺陷,完善數(shù)據(jù)庫(kù)代碼,是一款可自由運(yùn)用的數(shù)據(jù)庫(kù)。

3.2 MySQL的跨平臺(tái)性

MYSQL可以在Windows系列的操作系統(tǒng)上運(yùn)行,還能在MacOS、UNIX、Linux等操作系統(tǒng)上運(yùn)行。

3.3 功能強(qiáng)大

MySQL 是一個(gè)真正的多用戶(hù)、多線(xiàn)程 SQL 數(shù)據(jù)庫(kù)服務(wù)器。MySQL 是以一個(gè)客戶(hù)機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),它由一個(gè)服務(wù)器守護(hù)程序 mysqld 和很多不同的客戶(hù)程序和庫(kù)組成。

總之,與其他的大型數(shù)據(jù)庫(kù)如 Oracle、DB2、SQL Server 等相比,MySQL 雖有不足之處,如規(guī)模小、功能有局限等,但是這并沒(méi)有澆滅Web開(kāi)發(fā)人員對(duì)它的鐘愛(ài)熱情。因?yàn)閷?duì)于一般的個(gè)人使用者和中小型企業(yè)來(lái)說(shuō),MySQL 提供的功能已經(jīng)綽綽有余,目前互聯(lián)網(wǎng)上流行的網(wǎng)站構(gòu)架平臺(tái)是 WAMP開(kāi)發(fā)環(huán)境,MySQL 加 PHP 的結(jié)合在網(wǎng)際網(wǎng)路上的應(yīng)用較常見(jiàn),且獲得了“動(dòng)態(tài)配對(duì)”(Dynamic Duo)的雅號(hào),它的強(qiáng)大功能、靈活性、豐富的應(yīng)用編程接口(API)以及精巧的系統(tǒng)結(jié)構(gòu),受到了廣大自由軟件愛(ài)好者甚至是商業(yè)軟件用戶(hù)的青睞,因而MySQL一躍成為了當(dāng)今最流行的數(shù)據(jù)庫(kù)。

篇8

【關(guān)鍵詞】PHP MySQL B/S

【中圖分類(lèi)號(hào)】 TP311 【文獻(xiàn)標(biāo)識(shí)碼】A

Design of Library Bibliographic Recommendation System Based on PHP

Liu Xinxia

(Library of Nanjing University of Finances and Economics,Nanjing 210046,Jiangsu)

【Abstract】In order to expand the library service, make readers more convenient, more fully use of library resources, using Apache+PHP+MySQL to build a platform which given the current advanced network and mature PHP technology. Through the dynamic webpage making technology, developed a set based on Web and B/S bibliographic recommendation system. This paper mainly introduces that basic structure of the library bibliographic recommendation system, design of database, database on PHP data access and manipulation, and emphatically introduces the data import and Chinese garbled solution method which encountered in the system design.

【Key words】PHP MySQL B/S

1 引言

隨著信息技術(shù)在圖書(shū)館中的廣泛應(yīng)用,通過(guò)互聯(lián)網(wǎng)進(jìn)行信息傳播的數(shù)字化圖書(shū)館已經(jīng)成為未來(lái)圖書(shū)館的發(fā)展方向。將館藏文獻(xiàn)資源書(shū)目數(shù)字化,直接通過(guò)圖書(shū)館網(wǎng)站進(jìn)行書(shū)目信息閱讀是圖書(shū)館展現(xiàn)館藏特色、拓展讀者服務(wù)的一種高效率手段。

目前網(wǎng)站的開(kāi)發(fā)主流平臺(tái)有LAMP(linux操作系統(tǒng)、Apache網(wǎng)絡(luò)服務(wù)器、MySQL數(shù)據(jù)庫(kù)、PHP編程語(yǔ)言),J2EE和“.NET”商業(yè)軟件。由于PHP和MYSQL具有免費(fèi)、開(kāi)源等多方面優(yōu)點(diǎn),因此受到廣大的Web自由軟件愛(ài)好者、特別是系統(tǒng)開(kāi)發(fā)者的青睞。

2 圖書(shū)館書(shū)目推薦系統(tǒng)設(shè)計(jì)

2.1平臺(tái)環(huán)境搭建

PHP和MySQL是當(dāng)今比較流行的開(kāi)源代碼技術(shù),基于PHP和MySQL構(gòu)建的Web系統(tǒng),具有穩(wěn)定性高和可移植性強(qiáng)等優(yōu)點(diǎn)。本系統(tǒng)設(shè)計(jì)采用Apache+PHP+MySQL搭建開(kāi)發(fā)環(huán)境,實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)的。

使用phpMyAdmin管理MySQL。phpMyAdmin圖形化管理工具是一款使用PHP開(kāi)發(fā)的B/S模式的MySQL客戶(hù)端軟件,通過(guò)phpMyAdmin完全可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行各種操作,如創(chuàng)建數(shù)據(jù)庫(kù)、數(shù)據(jù)表和生成MySQL數(shù)據(jù)庫(kù)腳本文件等,不必在命令提示符下通過(guò)命令實(shí)現(xiàn),從而大大提高了程序開(kāi)發(fā)效率。

2.2 圖書(shū)館書(shū)目推薦系統(tǒng)結(jié)構(gòu)

該系統(tǒng)主要包括書(shū)目推薦的前臺(tái)頁(yè)面設(shè)計(jì)和后臺(tái)管理頁(yè)面設(shè)計(jì)。

前臺(tái)頁(yè)面也就是把圖書(shū)信息展現(xiàn)給讀者的頁(yè)面,具體有新書(shū)推薦、精品圖書(shū)推薦、借閱排行榜、冷門(mén)書(shū)推薦四個(gè)模塊,每本圖書(shū)都鏈接到OPAC系統(tǒng),方便讀者檢索和閱讀相應(yīng)圖書(shū)的詳細(xì)信息。后臺(tái)管理是給管理員進(jìn)入添加、修改以及刪除圖書(shū)內(nèi)容,動(dòng)態(tài)、實(shí)時(shí)更新推薦的圖書(shū)信息。

2.2 數(shù)據(jù)庫(kù)設(shè)計(jì)

首先建立數(shù)據(jù)庫(kù),庫(kù)表主要包括管理員信息、新書(shū)推薦、精品圖書(shū)推薦、借閱排行榜、冷門(mén)書(shū)推薦幾個(gè)數(shù)據(jù)表。

管理員信息表如表1所示。該表主要用來(lái)保存管理員登錄名稱(chēng)(管理員ID)、密碼、提升為管理員的時(shí)間等。該表中的用戶(hù)只有在登錄成功后才可以修改自己的會(huì)員信息、查看其他會(huì)員的詳細(xì)信息并進(jìn)行管理,如刪除現(xiàn)有會(huì)員、推薦會(huì)員等。

新書(shū)推薦、精品圖書(shū)推薦、借閱排行榜、冷門(mén)書(shū)推薦的圖書(shū)信息表類(lèi)似,主要包括圖書(shū)的索書(shū)號(hào)、書(shū)名、作者、出版社、ISBN號(hào)等。

2.3 PHP對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)操作

PHP對(duì)MySQL數(shù)據(jù)庫(kù)的數(shù)據(jù)訪(fǎng)問(wèn)和操作比較簡(jiǎn)易,包括連接數(shù)據(jù)庫(kù),選擇數(shù)據(jù)庫(kù),通過(guò)mysql_query()、mysql_fetch_array()等語(yǔ)句可以直接實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的查找和獲取。

例如,下面一段代碼是對(duì)圖書(shū)信息數(shù)據(jù)的獲取顯示:

3 網(wǎng)站設(shè)計(jì)中遇到的問(wèn)題和解決辦法

3.1書(shū)目推薦的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)的問(wèn)題

由于書(shū)目推薦的具體信息是由圖書(shū)館采編部提供的EXCEL表,要將其導(dǎo)入到數(shù)據(jù)庫(kù),而phpMyAdmin不能直接導(dǎo)入xls格式的數(shù)據(jù),需要使用Access轉(zhuǎn)換為.mdb格式,再使用MySQL-Front軟件導(dǎo)入到MySQL。其方法和操作都很簡(jiǎn)單快捷,也方便圖書(shū)館采編部提供數(shù)據(jù)。

3.2中文亂碼問(wèn)題

PHP頁(yè)面編碼必須和數(shù)據(jù)庫(kù)連接編碼一致,否則就會(huì)出現(xiàn)亂碼。

(一)PHP頁(yè)面的編碼

使用 標(biāo)簽設(shè)置頁(yè)面編碼 ,xxx可以為GB2312,GBK,UTF-8等,采用這種方式來(lái)告訴瀏覽器顯示這個(gè)頁(yè)面的時(shí)候采用什么編碼,這樣才不會(huì)造成編碼錯(cuò)誤而產(chǎn)生亂碼。但是有的時(shí)候我們會(huì)發(fā)現(xiàn)有了這句還是不行,不管xxx是哪一種,瀏覽器采用的始終都是一種編碼。

header("content-type:text/html; charset=xxx"); 這個(gè)函數(shù)header()的作用是把括號(hào)里面的信息發(fā)到http標(biāo)頭。https標(biāo)頭是服務(wù)器以HTTP協(xié)議傳送HTML信息到瀏覽器前所送出的字串。meta標(biāo)簽是屬于html信息的,而header()發(fā)送的內(nèi)容先到達(dá)瀏覽器。加入一個(gè)php頁(yè)面既有header("content-type:text/html; charset=xxx"),又有,瀏覽器就只認(rèn)前者h(yuǎn)ttp標(biāo)頭而不認(rèn)meta了。

(二)MySQL數(shù)據(jù)庫(kù)編碼

PHP 程序在查詢(xún)數(shù)據(jù)庫(kù)之前,首先執(zhí)行 mysql_query(“SET NAMES ‘編碼’”); SET NAMES 顯示客戶(hù)端發(fā)送的 SQL 語(yǔ)句中使用什么字符集,不僅告訴服務(wù)器將從客戶(hù)端傳來(lái)的信息采用的字符集,它還為服務(wù)器發(fā)送回客戶(hù)端的結(jié)果指定了字符集。編碼和PHP編碼要一致,如果PHP編碼是GB2312,那么MySQL編碼就是GB2312,如果是UTF-8,那么MySQL編碼就是 UTF8,這樣插入或檢索數(shù)據(jù)時(shí)就不會(huì)出現(xiàn)亂碼了。

4 結(jié)論

本文利用現(xiàn)在發(fā)達(dá)的網(wǎng)絡(luò)和成熟的PHP技術(shù),將圖書(shū)館最新訂購(gòu)的圖書(shū)和館藏文獻(xiàn)資源經(jīng)過(guò)精心篩選,通過(guò)圖書(shū)館網(wǎng)站將書(shū)目信息展現(xiàn)給讀者,是當(dāng)前信息時(shí)代下宣傳圖書(shū)館的又一種方式,不僅有利于讀者更快捷、更方便地使用館藏資源,而且有利于促進(jìn)館藏資源的開(kāi)發(fā)和利用。

參考文獻(xiàn):

[1]鄒天思,孫鵬.PHP從入門(mén)到精通[M].北京:清華大學(xué)出版社,2008.

[2]黃桂金,于永軍,唐有明.PHP+MySQL完全學(xué)習(xí)手冊(cè)[M].北京:清華大學(xué)出版社,2008.

[3]張旭東,陳華智,黃炳強(qiáng).Dreamweaver8+PHP動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)從入門(mén)到精通[M].北京:人民郵電出版社,2007.

[4]張軍偉.基于PHP的高校教學(xué)管理系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)與現(xiàn)代化,2011(1):63-65.

[5]唐寶福,黃建敬.基于PHP的圖書(shū)館信息數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)[J].龍巖學(xué)院學(xué)報(bào),2007(3):133-135.

[6]孫星.淺談PHP技術(shù)[J].信息技術(shù),2011(10):31-32.

[7]賈素來(lái).使用PHP和MySQL開(kāi)發(fā)動(dòng)態(tài)網(wǎng)站[J].大眾科技,2011(3):14-15.

[8]朱海巖.PHP與MySQL Web應(yīng)用平臺(tái)中文亂碼問(wèn)題的研究[J].赤峰學(xué)院學(xué)報(bào)(自然科學(xué)版),2011(8):36-37.

[9]杜闖.PHP在動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)中的優(yōu)勢(shì)[J].電腦知識(shí)與技術(shù),2010(13):3342-3344.

[10]余肖生,易.基于PHP的開(kāi)發(fā)環(huán)境搭建與網(wǎng)站設(shè)計(jì)實(shí)現(xiàn)[J].重慶理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2011(3):74-77.

劉新霞(1985-),女,碩士,南京財(cái)經(jīng)大學(xué)圖書(shū)館

篇9

1.引言:目前動(dòng)態(tài)網(wǎng)站設(shè)計(jì)技術(shù)主要有:利用Perl/C++/Delphi等開(kāi)發(fā)的CGI,兩種有名的API-ISAPI/NSAPI,還有ColdFusion,以及最近幾年流行起來(lái)的3p技術(shù)-ASP,PHP,JSP(據(jù)Internet上有關(guān)網(wǎng)站統(tǒng)計(jì)約有近百種);ASP-AtiveServerPage,由微軟公司開(kāi)發(fā),是一個(gè)WEB服務(wù)器端的開(kāi)發(fā)環(huán)境,主要采用腳本語(yǔ)言VBScript(或javascript/perl等)作為自己的開(kāi)發(fā)語(yǔ)言,可用ODBC或直接驅(qū)動(dòng)法訪(fǎng)問(wèn)Window平臺(tái)的數(shù)據(jù)庫(kù)。PHP-PersonServerPage,是由Rasmus個(gè)人創(chuàng)立的一種跨平臺(tái)的服務(wù)器端的嵌入式腳本語(yǔ)言.它大量地借用C,Java和Perl語(yǔ)言的語(yǔ)法,并耦合PHP自己的特性,.是一種很有個(gè)性的網(wǎng)站開(kāi)發(fā)語(yǔ)言,它支持目前絕大多數(shù)數(shù)據(jù)庫(kù)。JSP-JavaServerPage,是Sun公司推出的新一代站點(diǎn)開(kāi)發(fā)語(yǔ)言,Sun公司除Java應(yīng)用程序和JavaApplet之外,又創(chuàng)立了JSP,其可以在Serverlet和JavaBean的支持下,完成功能強(qiáng)大的站點(diǎn)程序開(kāi)發(fā),特別是有許多訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的方法。在電子商務(wù)平臺(tái)設(shè)計(jì)中,主要需要解決"網(wǎng)站結(jié)構(gòu)的設(shè)計(jì)","注冊(cè)界面","交易界面","后臺(tái)數(shù)據(jù)庫(kù)",以及"配套模塊"諸如購(gòu)物/用戶(hù)/論壇/反饋/搜索/會(huì)話(huà)等設(shè)計(jì);考慮篇幅,本文只給出統(tǒng)一的前臺(tái)界面及后臺(tái)數(shù)據(jù)庫(kù)的3p設(shè)計(jì)方法;可以說(shuō)ASP,PHP,JSP與網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的操作是電子商務(wù)網(wǎng)站平臺(tái)設(shè)計(jì)的堅(jiān)強(qiáng)基石。

2.構(gòu)建三種設(shè)計(jì)技術(shù)的運(yùn)行環(huán)境

2.1構(gòu)建ASP的運(yùn)行環(huán)境:NT5.0Server,IIS5.0,ASP3.0。安裝Windows2000Server(NT5.0Server)時(shí)選擇IIS5.0有關(guān)選項(xiàng)。安裝完后ASP3.0便內(nèi)嵌于IIS5.0中。測(cè)試ASP:啟動(dòng)瀏覽器,在地址欄處輸入127.0.0.1:80/default.asp,若瀏覽到IIS服務(wù)器的ASP歡迎頁(yè)面,說(shuō)明安裝成功

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)行整個(gè)安裝過(guò)程,自己選擇安裝到目錄d:\apache下。安裝PHP4,將PHP4壓縮文件解壓縮到d:\php4即可,同時(shí)將其中的php.ini-dist文件拷貝到winnt目錄中,將文件更名為php.ini,打開(kāi)該文件將其中extension_dir設(shè)置為:d:/php4,并加載擴(kuò)展模塊:將文件中含有;extention=*.dll的各項(xiàng)前面的";"號(hào)去掉即可;修改設(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的如下語(yǔ)句:ScriptAlias/php4/"d:/php4/"AddTypeapplication/x-httpd-php.phpAddTypeapplication/x-httpd-php.phtmlActionapplication/x-httpd-php4"/php4/php.exe";測(cè)試php:完成上述步驟后,在d:\trade目錄下,用如何文本編輯器,生成擴(kuò)展名為.php(或phtml)的文件test.php,在文件中輸入如下php代碼,存盤(pán)后,啟動(dòng)Apache,接著你在瀏覽器中輸入:127.0.0.1:81/test.php,若看到php的版本和擴(kuò)展模塊等信息,說(shuō)明環(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)境頁(yè)中選擇path參數(shù)加入d:\jdk1.3\bin;增加新的環(huán)境參數(shù)classpath=d:\jdk1.3\lib\tools.jar;d:\jdk1.3\lib\dt.jar;,然后重新啟動(dòng)計(jì)算機(jī)即可安裝支持JSP的web服務(wù)器Resin1.1.3,將RESIN-1.1.3.zip釋放為d:\Resin1.1.3即可。配置服務(wù)器端口,打開(kāi)d:/resin1.1.3/conf/目錄下的resin.conf文件在

8080

標(biāo)簽處將端口設(shè)置為82(在我的NT5.0上裝有三個(gè)服務(wù)器,這樣三個(gè)服務(wù)器的端口分別為IIS:80;Apache:81;Resin:82其實(shí)也可設(shè)置為其他互不沖突的端口號(hào)).測(cè)試JSP:?jiǎn)?dòng)Resin服務(wù)器,啟動(dòng)瀏覽器,在地址欄處輸入127.0.0.1:82/,若瀏覽到Resin服務(wù)器的JSP歡迎頁(yè)面,說(shuō)明安裝成功

3生成三種格式的動(dòng)態(tài)表單頁(yè)面為了通用,這里采用可能用到的表單對(duì)象為例,至于下面設(shè)計(jì)具體數(shù)據(jù)表用到的字段,只要轉(zhuǎn)成給出的表單域相應(yīng)對(duì)象即可.

3.1用ASP動(dòng)態(tài)生成與數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交流的操作表單:form.asp:生成表單域頭:生成普通文本:生成密碼文本:生成滾動(dòng)文本:生成單選:生成復(fù)選:生成列表框:生成提交按鈕生成重填按鈕生成表單域尾

3.2用PHP動(dòng)態(tài)生成與數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交流的操作表單:form.php生成表單域頭:"?>生成普通文本:"?>生成密碼文本:"?>生成滾動(dòng)文本:"?>生成單選:"?>生成復(fù)選:"?>生成列表框:網(wǎng)絡(luò)數(shù)據(jù)庫(kù)Asp技術(shù)Php技術(shù)Jsp技術(shù)網(wǎng)站設(shè)計(jì)"?>生成提交按鈕"?>生成重填按鈕"?>生成表單域尾"?>

3.3用JSP動(dòng)態(tài)生成與數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交流的操作表單form.jsp生成表單域頭:生成普通文本:生成密碼文本:生成滾動(dòng)文本:生成單選:生成復(fù)選:生成列表框:生成提交按鈕生成重填按鈕生成表單域尾

4設(shè)計(jì)用于存儲(chǔ)商務(wù)網(wǎng)站交互數(shù)據(jù)的MySql數(shù)據(jù)庫(kù)

4.1啟動(dòng)MySql數(shù)據(jù)庫(kù)服務(wù)器(MySql的安裝及ODBC驅(qū)動(dòng)程序的安裝與設(shè)置請(qǐng)參閱相關(guān)書(shū)籍)可在NT5.0下用啟動(dòng)服務(wù)法/NET命令法/命令窗口鍵入MySqld-shareware法,啟動(dòng)MySql數(shù)據(jù)庫(kù)服務(wù)器,啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器后,在d:\mysql\bin>提示符下鍵入mysql-h127.0.0.1-uroot即可出現(xiàn)mysql>提示符,從這開(kāi)始即可進(jìn)行對(duì)MySql數(shù)據(jù)庫(kù)的各種操作。若要退出可鍵入quit/exit,若要關(guān)閉數(shù)據(jù)庫(kù)服務(wù)器,可在d:\mysql\bin>提示符下鍵mysqladmin-urootshutdown4.2建立MySql數(shù)據(jù)庫(kù)在MySql數(shù)據(jù)庫(kù)的提示符mysql>鍵入Createdatabasetradedb;(或go)

4.2.建立MySql數(shù)據(jù)庫(kù)表這里以商務(wù)網(wǎng)站中常用的幾種數(shù)據(jù)表為例,主要用到的數(shù)據(jù)表和生成數(shù)據(jù)表的SQL代碼如下:(這里的數(shù)據(jù)表字段只要分別對(duì)應(yīng)上述表單域?qū)ο蠹纯蓪?shí)際操作,數(shù)據(jù)表統(tǒng)一用tablename表示)客戶(hù)登錄管理數(shù)據(jù)表CREATETABLEusers(IDintnotnullauto_increment,UserNamevarchar(30)notnull,Passwordvarchar(20)notnull)客戶(hù)信息數(shù)據(jù)表CREATETABLEusermessage(UserNamevarchar(30)notnull,Emailvarchar(80)notnull,Addressvarchar(120)notnull,Faxvarchar(40)null,Phonevarchar(40)notnull,Cerreycardvarchar(50)notnull)客戶(hù)定購(gòu)商品數(shù)據(jù)表CREATETABLEcatalog(ProductIdintnotnull,Namevarchar(64)notnull,Pricefloat(6,2)notnull,Descriptiontextnull)

5設(shè)計(jì)處理表單數(shù)據(jù)的3p程序

5.1設(shè)計(jì)處理表單數(shù)據(jù)的ASP程序form_cl.asp建立與數(shù)據(jù)庫(kù)的連接:這里采用直接驅(qū)動(dòng)法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語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作查詢(xú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語(yǔ)句處理的數(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ù)庫(kù):rs.close;conn.Close

5.2設(shè)計(jì)處理表單數(shù)據(jù)的PHP程序form_cl.php建立與數(shù)據(jù)庫(kù)的連接:這里采用PHP的MySql函數(shù)法(也可用ODBC函數(shù)法)$conn=odbc_connect("localhost","user","xxxxxx");選擇數(shù)據(jù)庫(kù):mysql_select_db("tradedb","$conn");獲去表單提交的數(shù)據(jù):$data1=$ptwbk;$data2=$mmwbk;$data3=$gdwbk;$data4=$dxk;$data5=$fxk;$data6=$lbk;用SQL語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作查詢(xú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語(yǔ)句處理的數(shù)據(jù)結(jié)果輸出odbc_result_all($result,"border=1");關(guān)閉數(shù)據(jù)庫(kù):odbc_close($conn);

5.3設(shè)計(jì)處理表單數(shù)據(jù)的JSP程序form_cl.jsp建立與數(shù)據(jù)庫(kù)的連接:這里采用JDBC-ODBC橋生成JavaBean法創(chuàng)建一個(gè)JavaBean命名為conndb.java,并保存在d:/resin1.1.3/doc/web-inf/classes/trade目錄下,代碼如下:(限于篇幅這里沒(méi)按標(biāo)準(zhǔn)書(shū)寫(xiě),而采用不換行寫(xiě)法,其他類(lèi)同)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ù)庫(kù)的連接獲去表單提交的數(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")語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作查詢(xú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語(yǔ)句處理的數(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ù)庫(kù):rs.close();

6三種電子商務(wù)網(wǎng)站設(shè)計(jì)技術(shù)綜述

6.1主要特性:可見(jiàn)下表設(shè)計(jì)技術(shù)運(yùn)行平臺(tái)服務(wù)器開(kāi)發(fā)程序擴(kuò)展組件ASPWindows系列IISVbscript/Jscript/PerlActiveXPHPUnix系列,Novell,WindowsApache等許多服務(wù)器phpFunctionJSPUnix系列,Novell,WindowsResin等許多服務(wù)器JavaJavaBean

6.2連接數(shù)據(jù)庫(kù)的方法:通過(guò)上述操作可看出,本文采用了三種操作MySql數(shù)據(jù)庫(kù)的方法,Asp采用直接驅(qū)動(dòng)法,Php采用MySql函數(shù)法,Jsp采用JDBC-ODBC/JavaBean法

6.3網(wǎng)站結(jié)構(gòu)設(shè)計(jì)考慮篇幅,本文只給出了Widows平臺(tái)上,電子商務(wù)網(wǎng)站設(shè)計(jì)中的主要環(huán)節(jié)的代碼設(shè)計(jì),對(duì)于Linux平臺(tái)、網(wǎng)站結(jié)構(gòu)、各個(gè)功能模塊設(shè)計(jì)等論題,作者已經(jīng)有兩篇這方面的論文在核心刊物上待發(fā)表,這里不便公開(kāi).

篇10

關(guān)鍵詞:信息技術(shù);安全性;高可用性;數(shù)據(jù)庫(kù)

0引言

面金融市場(chǎng)的激烈競(jìng)爭(zhēng)和信息技術(shù)的飛速發(fā)展,銀行的科技體系建設(shè)呈現(xiàn)了“數(shù)據(jù)集中化、業(yè)務(wù)綜合化、管理扁平化、決策科學(xué)化”的發(fā)展趨勢(shì)。與業(yè)務(wù)相關(guān)的后臺(tái)數(shù)據(jù)庫(kù)中的業(yè)務(wù)數(shù)據(jù)量也在成幾何量級(jí)增長(zhǎng)。由于大型商業(yè)銀行內(nèi)部業(yè)務(wù)模式種類(lèi)繁多,交易流程復(fù)雜,需要根據(jù)不同的業(yè)務(wù)規(guī)則和數(shù)據(jù)特點(diǎn),選取不同的數(shù)據(jù)庫(kù)。目前,在商業(yè)銀行信息系統(tǒng)體系中,涉及到的數(shù)據(jù)庫(kù)主要包括DB2、Oracle、SQL Server,部分系統(tǒng)還用到了MySql等開(kāi)源數(shù)據(jù)庫(kù)。

1DB2數(shù)據(jù)庫(kù)

1.1DB2簡(jiǎn)介

DB2全稱(chēng)為IBM DB2,是美國(guó)IBM公司開(kāi)發(fā)的一套關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它主要的運(yùn)行環(huán)境為UNIX、Linux、z/OS,以及Windows服務(wù)器。DB2主要應(yīng)用于大型應(yīng)用系統(tǒng),具有較好的可伸縮性,可支持從大型機(jī)到單用戶(hù)環(huán)境。DB2提供了高層次的數(shù)據(jù)利用性、完整性、安全性、可恢復(fù)性,以及小規(guī)模到大規(guī)模應(yīng)用程序的執(zhí)行能力,具有與平臺(tái)無(wú)關(guān)的基本功能和SQL命令。

1.2 DB2在銀行的應(yīng)用

雖然銀行業(yè)中后臺(tái)信息系統(tǒng)數(shù)量眾多,但其主要工作是進(jìn)行各種賬務(wù)交易管理,對(duì)于需要進(jìn)行大量賬務(wù)處理和計(jì)算的銀行信息系統(tǒng)普遍采用DB2數(shù)據(jù)庫(kù)。銀行系統(tǒng)要求高穩(wěn)定性、高可靠性和高安全性,Unix+DB2的組合對(duì)銀行的系統(tǒng)高要求滿(mǎn)足的較好。IBM提供的主機(jī)和數(shù)據(jù)庫(kù)的解決方案,在很多銀行都有成熟的案例。

對(duì)于大型的商業(yè)銀行,銀行系統(tǒng)每天處理的請(qǐng)求可能要上億次,DB2數(shù)據(jù)庫(kù)對(duì)海量數(shù)據(jù)的管理更是十分出色。作為世界上最快的數(shù)據(jù)庫(kù)之一,它可以在一天內(nèi)完成9000多萬(wàn)次文本搜索,且每次的響應(yīng)時(shí)間都小于半秒。銀行信息系統(tǒng)中的服務(wù)器有很大一部分都是IBM的大型機(jī)和小型機(jī),在數(shù)據(jù)庫(kù)層面,選擇IBM的DB2數(shù)據(jù)可以更好的發(fā)揮服務(wù)器和數(shù)據(jù)庫(kù)的優(yōu)勢(shì)。

2 ORACLE數(shù)據(jù)庫(kù)

2.1 ORACLE簡(jiǎn)介

Oracle是美國(guó)Oracle公司提供的以分布式數(shù)據(jù)庫(kù)為核心的一組軟件產(chǎn)品,是目前最流行的C/S或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)之一。它具有完整的數(shù)據(jù)管理功能;作為一個(gè)關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫(kù),它實(shí)現(xiàn)了分布式處理功能。系統(tǒng)可移植性好、使用方便、功能強(qiáng),適用于各類(lèi)大、中、小、微機(jī)環(huán)境。它是一種高效率、可靠性好的適應(yīng)高吞吐量的數(shù)據(jù)庫(kù)解決方案。

2.2 ORACLE在銀行的應(yīng)用

Oracle可以支持Unix、Linux和Windows等主流操作系統(tǒng),而且做為專(zhuān)業(yè)做數(shù)據(jù)庫(kù)起家的Oracle,配套開(kāi)發(fā)了許多高可用組件,為大型的應(yīng)用系統(tǒng)提供了成熟完備的數(shù)據(jù)庫(kù)高可用解決方案,如:Oracle RAC、GodenGate、Data Guard等。這些組件在銀行的信息系統(tǒng)中使用相當(dāng)廣泛,比如網(wǎng)上銀行系統(tǒng)、手機(jī)銀行和各類(lèi)臺(tái)帳管理系統(tǒng)等。

完善災(zāi)備系統(tǒng)是銀行建設(shè)中至關(guān)重要的一項(xiàng)工作,Oracle公司提供數(shù)據(jù)庫(kù)級(jí)別的異地災(zāi)備技術(shù),這為銀行信息系統(tǒng)的異地多活提供了可行性。并且Oracle在數(shù)據(jù)庫(kù)的技術(shù)服務(wù)支持方面也相當(dāng)完備,很多銀行并沒(méi)有技術(shù)能力很強(qiáng)的數(shù)據(jù)庫(kù)維護(hù)人員,Oracle可以提供多種層次的數(shù)據(jù)庫(kù)維保服務(wù),為銀行系統(tǒng)的高效可靠的運(yùn)行保駕護(hù)航。

隨著Oracle 12C的,Oracle在云計(jì)算和大數(shù)據(jù)方面的優(yōu)勢(shì)也逐漸顯現(xiàn),各大銀行都有海量的業(yè)務(wù)和客戶(hù)數(shù)據(jù),如何利用其進(jìn)行精準(zhǔn)營(yíng)銷(xiāo)已經(jīng)成為各大銀行業(yè)務(wù)的新訴求。使用Oracle的最新產(chǎn)品,可以對(duì)客戶(hù)數(shù)據(jù)進(jìn)行數(shù)據(jù)挖掘和大數(shù)據(jù)分析,為銀行業(yè)務(wù)部門(mén)提供強(qiáng)有力的支持。

3 SOL SERVER數(shù)據(jù)庫(kù)

SQL Server微軟公司推出的一種關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)。它是一個(gè)可擴(kuò)展的、高性能的、為分布式客戶(hù)機(jī)/服務(wù)器計(jì)算所設(shè)計(jì)的數(shù)據(jù)庫(kù)管理系統(tǒng),實(shí)現(xiàn)了與WindowsNT的有機(jī)結(jié)合,提供了基于事務(wù)的企業(yè)級(jí)信息管理系統(tǒng)方案。

SQL Server以其內(nèi)置的數(shù)據(jù)復(fù)制功能、強(qiáng)大的管理工具、與Internet的緊密集成和開(kāi)放的系統(tǒng)結(jié)構(gòu)為廣大的用戶(hù)、開(kāi)發(fā)人員和系統(tǒng)集成商提供了一個(gè)出眾的數(shù)據(jù)庫(kù)平臺(tái)。由于SQL Server只能在Windows平臺(tái)上運(yùn)行,沒(méi)有絲毫的開(kāi)放性,這就限制了它的應(yīng)用范圍。Windows操作系統(tǒng)由于其自身的限制,每運(yùn)行一段時(shí)間就需要重啟,這對(duì)需要提供7*24小時(shí)不停服務(wù)的銀行系統(tǒng)帶來(lái)極大的問(wèn)題。SQL Server在銀行內(nèi)部系統(tǒng)中應(yīng)用較少,主要在一些由微軟公司提供的應(yīng)用系統(tǒng)。

4 MYSQL數(shù)據(jù)庫(kù)

MySql是一種開(kāi)放源代碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),MySql是一個(gè)真正的多用戶(hù)、多線(xiàn)程數(shù)據(jù)庫(kù)服務(wù)器。MySql雖然是免費(fèi)的,但同Oracle,DB2等商業(yè)數(shù)據(jù)庫(kù)一樣,具有數(shù)據(jù)庫(kù)系統(tǒng)的通用性。

相較于DB2、Oracle和SQL Server數(shù)據(jù)庫(kù),MySql數(shù)據(jù)庫(kù)更輕量級(jí),對(duì)服務(wù)器資源要求低,但又能提供高并發(fā)和大事務(wù)處理能力。但是MySql官方并不能提供成熟的高可用解決方案,對(duì)于銀行端來(lái)說(shuō),更希望使用成熟的高可用產(chǎn)品,而且沒(méi)有很多的技術(shù)實(shí)力和精力去做二次開(kāi)發(fā)和改進(jìn),所以MySql在銀行信息系統(tǒng)中使用的并不多。

現(xiàn)在有一些銀行在國(guó)家去IOE的號(hào)召下,開(kāi)始嘗試在一些新興的互聯(lián)網(wǎng)金融產(chǎn)品中引用MySql數(shù)據(jù)庫(kù),配合成熟的第三方高可用組件,也取得了不錯(cuò)的效果。