田麗秋
摘 要:隨著信息社會的快速發(fā)展,大多數(shù)管理系統(tǒng)中的數(shù)據(jù)都是非常重要而且又是海量的。如果數(shù)據(jù)的設(shè)計(jì)不合理,不但會影響到數(shù)據(jù)庫的運(yùn)行效率,還會影響到數(shù)據(jù)安全。因此,對于一個電子商務(wù)網(wǎng)站系統(tǒng)來說,數(shù)據(jù)庫的設(shè)計(jì)是非常重要的。
關(guān)鍵詞:電子商務(wù);網(wǎng)站;數(shù)據(jù)庫
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1671-2064(2017)08-0029-02
在網(wǎng)絡(luò)技術(shù)迅猛發(fā)展的今天,電子商務(wù)應(yīng)運(yùn)而生,并很快沖擊了傳統(tǒng)的銷售模式,由此看來電子商務(wù)已經(jīng)成為當(dāng)今世界經(jīng)濟(jì)和社會發(fā)展的大趨勢,電子商務(wù)網(wǎng)站開發(fā)也成為了目前比較熱門的行業(yè),諸如ASP、PHP、JSP等流行的網(wǎng)站開發(fā)語言都提供了很好的電子商務(wù)網(wǎng)站開發(fā)環(huán)境,這些語言和網(wǎng)絡(luò)數(shù)據(jù)庫一起成為開發(fā)電子商務(wù)網(wǎng)站的基礎(chǔ)。那么,要想使得電子商務(wù)能得到有效和廣泛的應(yīng)用,必須合理地設(shè)計(jì)、開發(fā)相關(guān)數(shù)據(jù)庫,并保證網(wǎng)絡(luò)數(shù)據(jù)庫的安全,由此可知,在電子商務(wù)網(wǎng)站系統(tǒng)中數(shù)據(jù)庫的設(shè)計(jì)尤為重要。
數(shù)據(jù)庫設(shè)計(jì)的科學(xué)性和合理性對于提高數(shù)據(jù)庫運(yùn)行效率和數(shù)據(jù)庫安全是至關(guān)重要的。本文從數(shù)據(jù)表中的劃分,表間關(guān)聯(lián),數(shù)據(jù)冗余處理,巧用視圖及數(shù)據(jù)庫安全技術(shù)等方面論述了數(shù)據(jù)庫設(shè)計(jì)中的一些技巧。
1 數(shù)據(jù)表劃分
表是數(shù)據(jù)庫中最重要的對象,是存放用戶數(shù)據(jù)的主要對象,因此,數(shù)據(jù)表的合理劃分應(yīng)該是數(shù)據(jù)庫設(shè)計(jì)首要解決的問題。在劃分?jǐn)?shù)據(jù)表時(shí),首先要根據(jù)用戶需求來整理數(shù)據(jù),隨著用戶需求復(fù)雜度越來越高,數(shù)據(jù)表中的數(shù)據(jù)也越來越多,因此不能把管理系統(tǒng)中的數(shù)據(jù)存放在一張表中,否則在數(shù)據(jù)操作過程中會產(chǎn)生插入異常,刪除異常,修改異常等錯誤。也不能把數(shù)據(jù)分得太細(xì),表數(shù)太多,那么表間的關(guān)聯(lián)必然越多,這樣不但會增加表間關(guān)聯(lián)的成本,而且會影響數(shù)據(jù)庫的運(yùn)行效率,操作代碼也難于編寫。
那么,為了有效地組織表中的數(shù)據(jù),我們可以根據(jù)用戶需求先畫出E-R(實(shí)體-關(guān)系)圖,然后再根據(jù)E-R圖轉(zhuǎn)換為二維表格的形式。例如:
在購物網(wǎng)站上主要涉及到的數(shù)據(jù)信息:管理員信息、注冊用戶、商品、訂單詳細(xì)信息、發(fā)貨單信息等(圖1)。
其中商品信息包括商品編號,商品名稱,分類編號等,如圖2。
對應(yīng)圖2轉(zhuǎn)換成二維關(guān)系表如表1。
訂單詳細(xì)信息包括訂單表ID,產(chǎn)品ID,產(chǎn)品名稱,產(chǎn)品單價(jià),訂購數(shù)量等數(shù)據(jù)項(xiàng)。如圖3。
對應(yīng)圖3轉(zhuǎn)換成二維關(guān)系表如表2。
2 表間關(guān)聯(lián)
由數(shù)據(jù)表的劃分中所舉例子可知網(wǎng)站中數(shù)據(jù)庫中的數(shù)據(jù)通常采用多表存放,而這些數(shù)據(jù)表之間不是孤立的,它們之間要有一定的聯(lián)系,從而使它們在邏輯上形成一個整體。這個能將多個表聯(lián)系在一起的就是鍵,在SQL Server中主要是通過主鍵(Primary Key)和外鍵(Foreign key)來實(shí)現(xiàn)的。例如商品信息表和訂單信息表通過商品編號聯(lián)系,我們在商品信息表中將商品編號字段設(shè)置為主鍵,在訂單詳細(xì)信息表中又包括了商品編號字段,因此我們可以通過在訂單詳細(xì)信息表中商品編號字段上設(shè)置外鍵來實(shí)現(xiàn)兩個表之間的聯(lián)系。
3 數(shù)據(jù)冗余處理
數(shù)據(jù)冗余:在一個數(shù)據(jù)集合中重復(fù)的數(shù)據(jù)稱為數(shù)據(jù)冗余。眾所周知,在數(shù)據(jù)庫設(shè)計(jì)時(shí),為了提高系統(tǒng)的空間效率和運(yùn)行效率,應(yīng)盡可能減少數(shù)據(jù)冗余。那么一般什么情況下的數(shù)據(jù)冗余需要處理呢?一般主鍵和外鍵在表中的重復(fù)出現(xiàn)的現(xiàn)象是不能清除的,從上一例中我們可以看出數(shù)據(jù)表間的聯(lián)系就是由它們來實(shí)現(xiàn)的。在數(shù)據(jù)庫設(shè)計(jì)時(shí),有一種數(shù)據(jù)冗余是絕對不能出現(xiàn)的,那就是非鍵字段的重復(fù)出現(xiàn),它是一種低級冗余,即重復(fù)性的冗余。低級的冗余不但會增加數(shù)據(jù)庫的儲存空間,而且對數(shù)據(jù)庫的優(yōu)化算法沒有任何幫助,因此它只會影響數(shù)據(jù)庫的運(yùn)行效率。
4 巧用視圖
視圖是由一個或多個表或視圖導(dǎo)出的虛表,是由SQL語句查詢得到的數(shù)據(jù)庫對象。它的主要作用有二,一是安全,視圖可以隱藏一些數(shù)據(jù);另外是簡化用戶觀點(diǎn),使得復(fù)雜的查詢易于理解和使用。
定義視圖后,所有的用戶一律只準(zhǔn)在視圖上操作,這樣用戶就無法直接進(jìn)入基表,從而使基表中的數(shù)據(jù)得到了很好的保護(hù)。對于某些與機(jī)密有關(guān)的信息系統(tǒng),視圖的作用更加重要,我們把用戶可以訪問的數(shù)據(jù)提到視圖中讓用戶訪問,而那些需要密碼保護(hù)的數(shù)據(jù)仍留在基表中,只有數(shù)據(jù)庫管理員才能直接在基表中操作。
5 數(shù)據(jù)庫安全技術(shù)
數(shù)據(jù)庫的安全簡單說是指保證數(shù)據(jù)庫的正常運(yùn)作,不被非授權(quán)用戶非法使用、盜取、修改以及破壞數(shù)據(jù)。數(shù)據(jù)庫安全主要包括三個方面:互聯(lián)網(wǎng)系統(tǒng)安全、操作系統(tǒng)安全、數(shù)據(jù)庫管理系統(tǒng)安全等三個方面。
其中保證數(shù)據(jù)庫安全的技術(shù)主要有:用戶身份認(rèn)證、權(quán)限訪問控制、信息流控制、數(shù)據(jù)庫加密、數(shù)據(jù)庫安全審計(jì)、防火墻等。
電子商務(wù)網(wǎng)站系統(tǒng)中數(shù)據(jù)庫設(shè)計(jì)的重要性需要我們在數(shù)據(jù)庫設(shè)計(jì)中不斷體會、比較、分析、總結(jié)。一個設(shè)計(jì)良好的數(shù)據(jù)庫,既能充分滿足電子商務(wù)網(wǎng)站運(yùn)行的需要、保證網(wǎng)站運(yùn)行的安全性,又能提高電子商務(wù)網(wǎng)站的運(yùn)行效率。