那勇
(吉林廣播電視大學(xué),吉林 長(zhǎng)春 130022)
淺談數(shù)據(jù)庫(kù)設(shè)計(jì)在網(wǎng)站開(kāi)發(fā)中的應(yīng)用
那勇
(吉林廣播電視大學(xué),吉林 長(zhǎng)春 130022)
隨著信息技術(shù)的快速發(fā)展,數(shù)據(jù)庫(kù)技術(shù)是計(jì)算機(jī)領(lǐng)域發(fā)展最快的技術(shù)之一,它是人們?nèi)粘I钪凶顬閺V泛應(yīng)用的技術(shù),在網(wǎng)站開(kāi)發(fā)過(guò)程中是必不可少的因素。數(shù)據(jù)庫(kù)設(shè)計(jì)的好壞能夠體現(xiàn)程序員的技術(shù)水平,同時(shí)可以直接影響網(wǎng)站運(yùn)行效率。所以,數(shù)據(jù)庫(kù)的科學(xué)優(yōu)化設(shè)計(jì)能夠保證網(wǎng)站的正常運(yùn)行。好的數(shù)據(jù)庫(kù)設(shè)計(jì),能夠提高網(wǎng)站數(shù)據(jù)傳遞效率,更能保證數(shù)據(jù)信息的一致性。本文針對(duì)網(wǎng)站開(kāi)發(fā)過(guò)程中,在數(shù)據(jù)庫(kù)設(shè)計(jì)上容易出現(xiàn)的問(wèn)題,舉例實(shí)際應(yīng)用中的數(shù)據(jù)庫(kù)在網(wǎng)站中的應(yīng)用,并給予可行的改進(jìn)建議。
數(shù)據(jù)庫(kù);網(wǎng)站開(kāi)發(fā);優(yōu)化
當(dāng)前,計(jì)算機(jī)已經(jīng)成為人們?nèi)粘9ぷ髦械闹饕ぞ咧?,網(wǎng)站也已經(jīng)成為各政府機(jī)構(gòu)、企事業(yè)單位、學(xué)校、醫(yī)院等團(tuán)體或者個(gè)人的重要組成部分,成為各個(gè)單位的對(duì)外宣傳窗口,同時(shí)各單位內(nèi)部涌現(xiàn)出各種各樣的信息處理系統(tǒng),基本實(shí)現(xiàn)無(wú)紙化運(yùn)作。而數(shù)據(jù)庫(kù)則成為網(wǎng)站開(kāi)發(fā)中的核心,所有數(shù)據(jù)均保存在數(shù)據(jù)庫(kù)當(dāng)中,數(shù)據(jù)庫(kù)設(shè)計(jì)的優(yōu)劣與否將直接影響網(wǎng)站的運(yùn)行速度和質(zhì)量,合理優(yōu)秀的數(shù)據(jù)庫(kù)設(shè)計(jì)在網(wǎng)站開(kāi)發(fā)中起著決定性的作用。
當(dāng)前,數(shù)據(jù)庫(kù)技術(shù)已經(jīng)成熟,完全能夠?qū)Ξ?dāng)前的大量數(shù)據(jù)進(jìn)行管理,但是隨著社會(huì)的發(fā)展,信息資源的數(shù)據(jù)成幾何量級(jí)的增長(zhǎng),目前的數(shù)據(jù)庫(kù)甚至保存不了這么龐大的數(shù)據(jù),下一代的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)技術(shù)將應(yīng)運(yùn)而生。這種數(shù)據(jù)庫(kù)應(yīng)用范圍更廣,比如12306網(wǎng)站、QQ用戶管理、淘寶網(wǎng)和銀行系統(tǒng)等,都應(yīng)用這種強(qiáng)大的數(shù)據(jù)庫(kù)技術(shù),合理利用數(shù)據(jù)庫(kù)資源,使得用戶在瀏覽器上快速瀏覽到想要的數(shù)據(jù)。
數(shù)據(jù)庫(kù)(Database)是數(shù)據(jù)的倉(cāng)庫(kù),是根據(jù)數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)和管理數(shù)據(jù)的,隨著數(shù)據(jù)庫(kù)技術(shù)快速的發(fā)展,數(shù)據(jù)庫(kù)已經(jīng)不僅僅用來(lái)存儲(chǔ)和管理數(shù)據(jù),轉(zhuǎn)變成用戶所需要的各種數(shù)據(jù)管理的方式。數(shù)據(jù)庫(kù)既能保存我們想要的數(shù)據(jù),還能關(guān)聯(lián)到與之相關(guān)的數(shù)據(jù)。程序開(kāi)發(fā)人員根據(jù)用戶需求,設(shè)計(jì)數(shù)據(jù)庫(kù)并負(fù)責(zé)整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的運(yùn)行、維護(hù)及安全保護(hù),保證數(shù)據(jù)庫(kù)系統(tǒng)的正常運(yùn)行。
關(guān)系數(shù)據(jù)庫(kù)是當(dāng)前數(shù)據(jù)庫(kù)的應(yīng)用主流,企事業(yè)單位網(wǎng)站數(shù)據(jù)庫(kù)中的表獨(dú)立性較強(qiáng),網(wǎng)站都是由不同模塊組成的,各個(gè)模塊之間的關(guān)聯(lián)相對(duì)較弱。數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵是對(duì)用戶需求進(jìn)行最詳細(xì)的分析,設(shè)計(jì)一個(gè)既完整又便于維護(hù)的數(shù)據(jù)庫(kù)系統(tǒng),雖然需求會(huì)發(fā)生變化,但是只要保證數(shù)據(jù)庫(kù)設(shè)計(jì)的健壯,再多的需求變化也能保證網(wǎng)站的正常運(yùn)行。同時(shí),為了便于維護(hù),程序員要將盡量多的數(shù)據(jù)寫(xiě)入到數(shù)據(jù)庫(kù)中,比如網(wǎng)站名稱、版權(quán)信息、模塊名稱、菜單名稱等,而不要單單把這些信息設(shè)計(jì)在頁(yè)面中。
網(wǎng)絡(luò)技術(shù)的興起,使得現(xiàn)在的人們漸漸遠(yuǎn)離平面媒體去了解世界而選擇網(wǎng)絡(luò),就連購(gòu)物都選擇網(wǎng)絡(luò),網(wǎng)上下個(gè)訂單就會(huì)送貨上門,何樂(lè)而不為。購(gòu)物網(wǎng)站幾年來(lái)快速發(fā)展,在網(wǎng)絡(luò)世界占據(jù)重要地位,得到越來(lái)越多的人的青睞;同時(shí),各企事業(yè)單位的工作性質(zhì)的網(wǎng)站也是鋪天蓋地興盛起來(lái),比如公司宣傳、政策宣傳、產(chǎn)品簡(jiǎn)介等。需求分析和實(shí)際調(diào)研是分不開(kāi)的,只有對(duì)實(shí)際情況進(jìn)行不斷地調(diào)查,才能收集所有相關(guān)的資料,并對(duì)信息進(jìn)行匯總,加以分析。
實(shí)際調(diào)研的方式很多,主要包括:
1、收集與用戶單位相關(guān)的所有信息。比如用戶單位組織機(jī)構(gòu)、運(yùn)行機(jī)制、各個(gè)部門的業(yè)務(wù)流程等。而且相關(guān)部門之間的業(yè)務(wù)交集也要收集。
2、專門訪問(wèn)。主要是要有針對(duì)性的對(duì)用戶單位的特定人員進(jìn)行訪問(wèn),以便收集信息。比如企業(yè)高管或者企業(yè)內(nèi)部工齡較長(zhǎng)的工作人員等,這樣可以詳細(xì)了解網(wǎng)站開(kāi)發(fā)的背景資料及將來(lái)的發(fā)展規(guī)劃。
3、進(jìn)行信息反饋。根據(jù)當(dāng)下所收集到的用戶信息與網(wǎng)站的使用者今夕信息調(diào)查,讓使用者直接提出意見(jiàn)以及改進(jìn)的建議,并做好信息調(diào)查報(bào)告。
4、參與整個(gè)系統(tǒng)開(kāi)發(fā)過(guò)程中。對(duì)某一些業(yè)務(wù)環(huán)節(jié)或者處理方式不了解時(shí),可以親自進(jìn)入企業(yè)內(nèi)部進(jìn)行親身體驗(yàn),從而獲得更準(zhǔn)確的信息資源。
5、召開(kāi)程序開(kāi)發(fā)小組討論。程序開(kāi)發(fā)人員要和用戶主要管理人員或者使用者組織開(kāi)展系統(tǒng)可行性調(diào)研討論會(huì),讓程序開(kāi)發(fā)人員及時(shí)了解和掌握最新的用戶需求變化和市場(chǎng)信息需求。
數(shù)據(jù)庫(kù)設(shè)計(jì)的基本流程,主要包括:
1、數(shù)據(jù)庫(kù)的設(shè)計(jì)要與用戶的需求完全統(tǒng)一,數(shù)據(jù)表之間的關(guān)聯(lián)要做到最優(yōu)化。并對(duì)網(wǎng)站設(shè)置等逐一進(jìn)行詳細(xì)分析。
2、數(shù)據(jù)庫(kù)研發(fā)過(guò)程。用戶需求分析;各個(gè)功能模塊設(shè)計(jì);程序員編寫(xiě)程序;內(nèi)部測(cè)試;實(shí)際測(cè)試;驗(yàn)收;成品交付;后期維護(hù)。
3、數(shù)據(jù)庫(kù)開(kāi)發(fā)使用工具有SQL SERVER、ORACLE等,操作系統(tǒng)WINDWOS SERVER、LINUX等。開(kāi)發(fā)語(yǔ)言ASP、ASP.NET、JSP、JAVA等。
4、數(shù)據(jù)庫(kù)維護(hù)。數(shù)據(jù)庫(kù)維護(hù)同樣在整個(gè)網(wǎng)站開(kāi)發(fā)過(guò)程中有著舉足輕重的一個(gè)環(huán)節(jié),很多偶然性的事件的發(fā)生是防不勝防的,比如停電等,網(wǎng)站的管理人員不能做到每時(shí)每刻都在崗位堅(jiān)守,這就需要我們?cè)诰W(wǎng)站設(shè)計(jì)的時(shí)候?qū)?shù)據(jù)庫(kù)留有自我備份的功能,也就大大降低了因?yàn)橐恍┩话l(fā)事件而導(dǎo)致的數(shù)據(jù)丟失,保證網(wǎng)站的正常運(yùn)行。
1、數(shù)據(jù)庫(kù)設(shè)計(jì)的原則及表命名原則
程序員在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),要考慮到方方面面的因素,要有整體性和全局性的意識(shí),從用戶的實(shí)際需求出發(fā),避免浪費(fèi)數(shù)據(jù)庫(kù)本身的資源,也能節(jié)省大量的人力和財(cái)力。數(shù)據(jù)庫(kù)的設(shè)計(jì)要在一個(gè)穩(wěn)定的范圍內(nèi),設(shè)計(jì)一個(gè)最優(yōu)的數(shù)據(jù)存儲(chǔ)系統(tǒng),對(duì)用戶的需求存儲(chǔ)必要的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行處理。數(shù)據(jù)庫(kù)是設(shè)計(jì)之初我們就要熟悉整個(gè)網(wǎng)站已有和未來(lái)可能增加的需求,要有好的擴(kuò)展性。數(shù)據(jù)表是數(shù)據(jù)庫(kù)中各種數(shù)據(jù)的對(duì)象,每個(gè)表中可以有多行和多列,行數(shù)據(jù)代表唯一性,列則代表記錄中的一個(gè)域。表的命名要一目了然,這樣可以方便用戶進(jìn)行信息維護(hù),對(duì)數(shù)據(jù)庫(kù)用戶進(jìn)行權(quán)限分配,只有特定的用戶才能對(duì)數(shù)據(jù)表進(jìn)行數(shù)據(jù)操作。
2、數(shù)據(jù)表字段的類型和大小設(shè)置
數(shù)據(jù)表的字段要按照用戶需求使用字段最小數(shù)據(jù)類型為準(zhǔn),比如性別只有男和女,我們當(dāng)然可以設(shè)置成int型,數(shù)字0代表性別男,數(shù)字1代表性別女,但是這樣就會(huì)浪費(fèi)系統(tǒng)資源,所以我們以最優(yōu)設(shè)計(jì)為準(zhǔn)把字段設(shè)置成bit型,true代表性別女,false代表性別男。雖然現(xiàn)在市場(chǎng)上的硬盤(pán)價(jià)格越來(lái)越低,容量越來(lái)越大,但是如果數(shù)據(jù)庫(kù)設(shè)計(jì)不合理,隨著數(shù)據(jù)量的增加,占用的硬盤(pán)空間也會(huì)逐漸增加,從而影響數(shù)據(jù)庫(kù)的整體效率,增加用戶瀏覽數(shù)據(jù)的響應(yīng)時(shí)間。
3.3數(shù)據(jù)表的設(shè)計(jì)
用戶的需求不同,數(shù)據(jù)庫(kù)的設(shè)計(jì)完全不同,數(shù)據(jù)庫(kù)的設(shè)計(jì)與網(wǎng)站的規(guī)模密不可分。數(shù)據(jù)庫(kù)的設(shè)計(jì)要滿足網(wǎng)站的多樣性和擴(kuò)展性,網(wǎng)站會(huì)劃分為不同的功能模塊,在創(chuàng)建數(shù)據(jù)表時(shí),要盡可能多的將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)的不同表中,并建立數(shù)據(jù)字典。
下面以一個(gè)新聞發(fā)布網(wǎng)站為例,說(shuō)明一下數(shù)據(jù)表的設(shè)計(jì),該網(wǎng)站主要功能包括新聞發(fā)布等。
該網(wǎng)站數(shù)據(jù)庫(kù)主要包括:(1)系統(tǒng)數(shù)據(jù)表,用于存儲(chǔ)網(wǎng)站的基本信息,比如:網(wǎng)站LOGO、網(wǎng)站名稱、版權(quán)信息、聯(lián)系方式等。(2)菜單表,用于存儲(chǔ)網(wǎng)站首頁(yè)各菜單(一級(jí)菜單、二級(jí)菜單等)的名稱、標(biāo)識(shí)位(ID)等。(3)欄目表,用于存儲(chǔ)網(wǎng)站信息發(fā)布各欄目的名稱和標(biāo)識(shí)位(ID),比如:動(dòng)態(tài)新聞、通知公告等。(4)新聞信息表,用于存儲(chǔ)新聞的各項(xiàng)內(nèi)容,比如:標(biāo)題、發(fā)布時(shí)間、信息來(lái)源、新聞內(nèi)容、訪問(wèn)次數(shù)、所屬欄目、錄入人員等。(5)用戶表,用于存儲(chǔ)網(wǎng)站的各類用戶和相應(yīng)的權(quán)限等,比如:管理員、信息錄入員等。
以上各數(shù)據(jù)表是一個(gè)簡(jiǎn)單的新聞發(fā)布網(wǎng)站的基本表設(shè)計(jì),當(dāng)然如果網(wǎng)站還需要其他功能,比如用戶調(diào)查或者評(píng)論等,可以再創(chuàng)建新表。
以下以一個(gè)購(gòu)物網(wǎng)站,進(jìn)行一個(gè)簡(jiǎn)單的設(shè)計(jì)分析,需求如下:
1、訂單購(gòu)物。該模塊主要用于用戶瀏覽商品時(shí)對(duì)喜歡的貨物進(jìn)行網(wǎng)上下單的功能。該功能還可以延伸其他相關(guān)功能,比如網(wǎng)站商品分類,支持用戶在瀏覽網(wǎng)站時(shí),按商品分類檢索商品。還可以根據(jù)用戶的購(gòu)物經(jīng)歷向用戶推送類似商品,或者在網(wǎng)站首頁(yè)列出特價(jià)商品和暢銷產(chǎn)品等。
2、購(gòu)物車功能。該模塊是對(duì)用戶下單的產(chǎn)品,點(diǎn)擊“加入購(gòu)物車”,商品會(huì)自動(dòng)添加到該用戶的購(gòu)物車?yán)铮缓蠼y(tǒng)一進(jìn)行結(jié)算,用戶可任意刪除和增加購(gòu)物車?yán)锏纳唐窋?shù)量,確認(rèn)無(wú)誤后,點(diǎn)擊“結(jié)算”即可,同時(shí)提示用戶選擇快遞方式和付款方式。付款方式應(yīng)該具有多樣性,分為在線支付和貨到付款等,其中在線支付要盡量多的包含現(xiàn)有付款形式,比如:銀行卡、信用卡、支付寶等。付款之后,用戶可以隨時(shí)跟蹤商品的貨運(yùn)信息以便查詢商品貨運(yùn)的行程等。用戶也可以對(duì)買到的商品進(jìn)行評(píng)論和打分,網(wǎng)站管理員會(huì)對(duì)用戶的評(píng)論信息進(jìn)行信息篩選,以免出現(xiàn)違反國(guó)家法律的言論。
3、后臺(tái)管理。管理員管理商品的分類、上傳與下架、各種單據(jù)的處理、資金的流轉(zhuǎn)、用戶的信息管理與各類信息統(tǒng)計(jì)等。
網(wǎng)站的開(kāi)發(fā)是以實(shí)用性為出發(fā)點(diǎn),數(shù)據(jù)庫(kù)的設(shè)計(jì)則是以最優(yōu)化為落腳點(diǎn)。數(shù)據(jù)庫(kù)設(shè)計(jì)在網(wǎng)站開(kāi)發(fā)過(guò)程中占據(jù)重要位置,其設(shè)計(jì)形式在不同的網(wǎng)站開(kāi)發(fā)中差異很大,但其設(shè)計(jì)思想大同小異。數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)要充分對(duì)用戶需求進(jìn)行仔細(xì)分析,做出各種突發(fā)情況發(fā)生時(shí)的預(yù)案,這樣既能保證網(wǎng)站的正常運(yùn)行又能減少網(wǎng)站后期維護(hù)的壓力。優(yōu)秀的數(shù)據(jù)庫(kù)設(shè)計(jì)能夠大大提升網(wǎng)站的運(yùn)行效率。當(dāng)然,影響數(shù)據(jù)庫(kù)性能的因素很多,不能找到一個(gè)通用的優(yōu)化方案,在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),一定要以實(shí)際需求為準(zhǔn),結(jié)合需求不斷對(duì)其進(jìn)行調(diào)整,才能取得最滿意的結(jié)果。
[1]馮玉才.?dāng)?shù)據(jù)庫(kù)基礎(chǔ)(第二版)[M].華中理工大學(xué)出版社.1993.
[2]易向東,陳蓓,萬(wàn)英.程序員開(kāi)發(fā)指南[M].北京希望電子出版社,2006.
[3]薩師煊,王珊.?dāng)?shù)據(jù)庫(kù)系統(tǒng)概論[M].高等教育出版社.2001.
[4]邱睿韞,付曉玲.電子商務(wù)營(yíng)銷網(wǎng)站的設(shè)計(jì)[J].數(shù)字技術(shù)與應(yīng)用,2010,(8).
TP393
A
1008-7508(2015)03-0093-02
2014-10-15
那勇(1983~),吉林通化人,吉林廣播電視大學(xué)遠(yuǎn)程教育技術(shù)中心網(wǎng)絡(luò)管理科講師,研究方向:計(jì)算機(jī)軟件與理論、計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)安全。