毫無(wú)疑問(wèn),當(dāng)今web程序設(shè)計(jì)中最吸引人而且最復(fù)雜的當(dāng)然就是web數(shù)據(jù)庫(kù)程序了。平心而論,其復(fù)雜高深的程度決不是你們可以想象得到的。我們先來(lái)看看其中涉及到的幾個(gè)方面的問(wèn)題:
1.最基本的html設(shè)計(jì)
2.cgi程序編寫(xiě)調(diào)試
3.網(wǎng)絡(luò)管理和客戶(hù)協(xié)調(diào)
4.數(shù)據(jù)庫(kù)編寫(xiě)
5.客戶(hù)/服務(wù)體系程序編寫(xiě)
另外你還得不時(shí)地同你的客戶(hù)進(jìn)行斗爭(zhēng),以取得他們對(duì)你工作的認(rèn)同。因此編寫(xiě)一個(gè)大型web數(shù)據(jù)庫(kù),是綜合素質(zhì)的考驗(yàn)。
筆者自問(wèn)尚不完全具備以上的能力,但有幸曾參加過(guò)幾個(gè)web數(shù)據(jù)庫(kù)的開(kāi)發(fā),算是具備了初步的經(jīng)驗(yàn)吧。這里給大家分享,也算是感謝各位對(duì)這個(gè)斷斷續(xù)續(xù)的教程的總結(jié)吧。
一 數(shù)據(jù)庫(kù)選擇
從一般情況來(lái)看,使用web數(shù)據(jù)庫(kù)往往是要解決數(shù)據(jù)的歸納、索引和維護(hù)的問(wèn)題。我們一般選擇最流行的關(guān)系型數(shù)據(jù)庫(kù),比如nt下的sql,win95和nt下的access,nt下的sybase,unix下的msql等等。當(dāng)然還有oracle、filemaker pro、paradox等等。這些都是很流行的sql數(shù)據(jù)庫(kù)。sql給數(shù)據(jù)管理提供了一個(gè)標(biāo)準(zhǔn)而堅(jiān)實(shí)的接口,它對(duì)數(shù)據(jù)庫(kù)操作餓所有函數(shù)必需在數(shù)據(jù)庫(kù)語(yǔ)言中實(shí)現(xiàn)。這種函數(shù)包括:數(shù)據(jù)對(duì)象的創(chuàng)建、插入數(shù)據(jù)和數(shù)據(jù)修改等。對(duì)于數(shù)據(jù)量不大的小型數(shù)據(jù)庫(kù),一般使用access。
二 接口程序
雖然我們可以直接編寫(xiě)web的cgi接口,但是那是工作量巨大且麻煩異常的工作。為了減輕開(kāi)發(fā)者的負(fù)擔(dān),數(shù)據(jù)庫(kù)程序員為我們編寫(xiě)了許多可以直接使用的接口程序,配合不同的數(shù)據(jù)庫(kù)。下面就是一些十分常用的接口程序:
1. db2www
http://www.software.ibm.com/data/db2/db2wfac2.html
這是一個(gè)用于和ibm db2數(shù)據(jù)庫(kù)進(jìn)行連接的工具。在http服務(wù)器中,這種工具將html文件和sql命令作為宏文件存儲(chǔ),然后,db2www在接受到瀏覽器請(qǐng)求后就處理這些宏文件。
2. dbcgi
http://www.progress.com/webtools.html
這個(gè)工具通過(guò)在html文件中內(nèi)置sql語(yǔ)句來(lái)實(shí)現(xiàn)和數(shù)據(jù)庫(kù)的連接。適用于progress,sybase,oracle,informix,ingres和odbc。下面是一個(gè)典型的dbcgi程序代碼:
這個(gè)工具通過(guò)<sql>標(biāo)簽和%轉(zhuǎn)意字符來(lái)把sql語(yǔ)句放置在html語(yǔ)句內(nèi)。
3 genera
http://gdbdoc.gdb.org/letovsky/genera/general.html
這個(gè)是sybase數(shù)據(jù)庫(kù)系統(tǒng)的網(wǎng)關(guān)。它通過(guò)在文本文件中加入特定的語(yǔ)句來(lái)和數(shù)據(jù)庫(kù)進(jìn)行連接。
4 webdbc
http://www.ndev.com
以windows nt為平臺(tái),可以訪(fǎng)問(wèn)所有對(duì)odbc兼容的數(shù)據(jù)庫(kù)。
5 a-xorion
http://www.clark.net/infouser/endidc.html
他是一個(gè)cgi網(wǎng)關(guān),它可以訪(fǎng)問(wèn)大多數(shù)的pc機(jī)數(shù)據(jù)庫(kù)。它以windows3.1/95/nt為平臺(tái)。數(shù)據(jù)庫(kù)為ms access2.0。
三 編程語(yǔ)言
上面介紹的是一些常用的接口程序,它們需要server的配合才能正常工作。當(dāng)然如果是很小的數(shù)據(jù)庫(kù)程序,不需要使用如此復(fù)雜的數(shù)據(jù)庫(kù)接口程序。用c,perl,vb等等,寫(xiě)成cgi程序,在cgi程序內(nèi)調(diào)用數(shù)據(jù)庫(kù)。雖然速度方面不是很快,但絕對(duì)是非常簡(jiǎn)單的。
最后的例子:
最后,我準(zhǔn)備以一個(gè)例子來(lái)結(jié)束這個(gè)教程。
環(huán)境:
這是一個(gè)非常簡(jiǎn)單的web應(yīng)用程序。如果你要運(yùn)行這個(gè)程序,也許你得化些時(shí)間來(lái)配置自己的系統(tǒng)。在這個(gè)例子里,cgi程序由perl5來(lái)編寫(xiě),后臺(tái)數(shù)據(jù)庫(kù)使用sybase system 10,sybperl用于建立腳本和數(shù)據(jù)庫(kù)之間的通信,用其他的cgi后臺(tái)數(shù)據(jù)庫(kù)接口程序也可以。
cgi程序:
perl腳本:
print &printheader;
use sybase::dblib;
新聞熱點(diǎn)
疑難解答