摘? ? 要:數(shù)據(jù)庫(kù)技術(shù)是當(dāng)今軟件工程領(lǐng)域中必不可少的一部分,而數(shù)據(jù)庫(kù)技術(shù)得以有效實(shí)施,離不開(kāi)在設(shè)計(jì)階段中的對(duì)數(shù)據(jù)庫(kù)的良好設(shè)計(jì)。本文基于該背景,介紹了數(shù)據(jù)庫(kù)技術(shù),并對(duì)實(shí)際應(yīng)用中忽視數(shù)據(jù)庫(kù)設(shè)計(jì)的現(xiàn)象進(jìn)行分析,闡述了數(shù)據(jù)庫(kù)設(shè)計(jì)的重要性,希望能引起業(yè)界人士的重視。
關(guān)鍵詞:數(shù)據(jù)庫(kù)設(shè)計(jì);信息系統(tǒng);重要性
當(dāng)前,數(shù)據(jù)庫(kù)技術(shù)可以說(shuō)與我們的日常生活息息相關(guān),每天使用手機(jī)、移動(dòng)設(shè)備或者電腦上網(wǎng)查閱資料、購(gòu)物、看熱點(diǎn)新聞等,都需通過(guò)網(wǎng)絡(luò)向服務(wù)器發(fā)送網(wǎng)絡(luò)請(qǐng)求,服務(wù)器從數(shù)據(jù)庫(kù)獲取響應(yīng)信息,再發(fā)送回我們的終端設(shè)備。這些操作,如果沒(méi)有數(shù)據(jù)庫(kù)技術(shù),就沒(méi)有今天這樣的便利生活。
一、數(shù)據(jù)庫(kù)技術(shù)簡(jiǎn)介
數(shù)據(jù)庫(kù)技術(shù)管理的對(duì)象是數(shù)據(jù),通過(guò)對(duì)數(shù)據(jù)的統(tǒng)一組織和管理,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行處理、分析和理解。隨著信息時(shí)代的不斷發(fā)展,數(shù)據(jù)庫(kù)技術(shù)已相對(duì)成熟,在各行各業(yè)的系統(tǒng)開(kāi)發(fā)中得到了廣泛應(yīng)用,不僅有局域網(wǎng)內(nèi)的應(yīng)用系統(tǒng),還有部署于互聯(lián)網(wǎng)的應(yīng)用系統(tǒng),隨之而來(lái)的是呈指數(shù)級(jí)的信息資源數(shù)據(jù)的增長(zhǎng)。這便意味著數(shù)據(jù)庫(kù)不僅僅是用于存儲(chǔ)數(shù)據(jù),還涉及應(yīng)用系統(tǒng)的運(yùn)行響應(yīng)效率,還需要滿(mǎn)足各種角色的用戶(hù)對(duì)數(shù)據(jù)管理的需求。而數(shù)據(jù)庫(kù)系統(tǒng)對(duì)數(shù)據(jù)的處理、管理能力是需要運(yùn)用科學(xué)的方法進(jìn)行設(shè)計(jì),只有數(shù)據(jù)庫(kù)的設(shè)計(jì)足夠好,才能保證系統(tǒng)的正常運(yùn)行,滿(mǎn)足用戶(hù)的日常操作需求。
二、忽視數(shù)據(jù)庫(kù)設(shè)計(jì)帶來(lái)的問(wèn)題
1.需求理解不充分
數(shù)據(jù)庫(kù)設(shè)計(jì)是設(shè)計(jì)階段的核心內(nèi)容之一,而設(shè)計(jì)階段又是建立在需求分析基礎(chǔ)上。在項(xiàng)目實(shí)際開(kāi)發(fā)過(guò)程中,項(xiàng)目客戶(hù)往往是沒(méi)有軟件技術(shù)背景的,因此,即使客戶(hù)將需求寫(xiě)成文檔,仍需要技術(shù)人員將客戶(hù)的需求信息進(jìn)行加工、理解再轉(zhuǎn)換成符合要求的需求規(guī)格說(shuō)明書(shū)。技術(shù)人員對(duì)客戶(hù)需求的理解,如果缺乏充分的溝通,很容易造成最終確定的需求是按照技術(shù)人員的理解而成,使得客戶(hù)需求與技術(shù)人員理解的需求之間存在差異。在進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中術(shù)語(yǔ)的表達(dá)、數(shù)據(jù)表之間的關(guān)系等都依賴(lài)于前一階段的需求說(shuō)明,因此,這種差異意味著對(duì)業(yè)務(wù)內(nèi)容的理解不對(duì)稱(chēng),將直接影響數(shù)據(jù)庫(kù)設(shè)計(jì)。再則,由于對(duì)客戶(hù)需求理解不充分,完成設(shè)計(jì)階段、開(kāi)發(fā)測(cè)試階段之后,很有可能面臨著客戶(hù)對(duì)需求提出的變更,如果在設(shè)計(jì)階段沒(méi)有考慮需求變化對(duì)系統(tǒng)的影響,這種需求變更可能意味著從設(shè)計(jì)階段重新開(kāi)始,再次投入人力和財(cái)力,也耽誤了產(chǎn)品交付時(shí)間。
2.數(shù)據(jù)庫(kù)設(shè)計(jì)不合理
在數(shù)據(jù)庫(kù)最初設(shè)計(jì)時(shí),只考慮當(dāng)前需要?jiǎng)?chuàng)建的數(shù)據(jù)表,并且在字段定義時(shí),對(duì)字段數(shù)據(jù)類(lèi)型、長(zhǎng)度的設(shè)置不夠嚴(yán)謹(jǐn),比如,同一個(gè)字段在不同的表中名稱(chēng)不一致[1],甚至數(shù)據(jù)類(lèi)型、長(zhǎng)度也不一致;字段長(zhǎng)度設(shè)置過(guò)短,使后期業(yè)務(wù)數(shù)據(jù)受限,字段長(zhǎng)度設(shè)置過(guò)長(zhǎng),浪費(fèi)空間并且增加了后期數(shù)據(jù)傳送的處理工作。此外,數(shù)據(jù)完整性只通過(guò)業(yè)務(wù)層來(lái)進(jìn)行約束,沒(méi)有在數(shù)據(jù)庫(kù)系統(tǒng)中進(jìn)行約束,而這種約束方式不能確保表與表之間的數(shù)據(jù)完整性,當(dāng)業(yè)務(wù)數(shù)據(jù)足夠多時(shí),難免造成業(yè)務(wù)數(shù)據(jù)不一致。或者由于沒(méi)有在數(shù)據(jù)庫(kù)系統(tǒng)增加約束,需要增加中間層對(duì)數(shù)據(jù)處理的工作來(lái)實(shí)現(xiàn),對(duì)于規(guī)模較大的系統(tǒng),這種方式使得系統(tǒng)響應(yīng)不及時(shí),影響系統(tǒng)性能。
3.設(shè)計(jì)人員不重視
數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)是按照需求分析和系統(tǒng)總體設(shè)計(jì)框架進(jìn)行合理、有效的數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì),滿(mǎn)足系統(tǒng)流程數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)處理需要,使數(shù)據(jù)庫(kù)、系統(tǒng)運(yùn)行流程,數(shù)據(jù)維護(hù)可操作性、可記錄和可回溯等[2]。在不同的公司對(duì)這項(xiàng)任務(wù)的人員定義不同,但很少有單獨(dú)設(shè)立專(zhuān)職人員。設(shè)計(jì)階段的工作往往由開(kāi)發(fā)人員兼任,因此,沒(méi)有對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)有清晰而正確的認(rèn)知以及足夠的重視,或出現(xiàn)“重開(kāi)發(fā)輕設(shè)計(jì)”的現(xiàn)象。
三、數(shù)據(jù)庫(kù)設(shè)計(jì)的重要性
1.提高系統(tǒng)性能
當(dāng)系統(tǒng)規(guī)模小,存儲(chǔ)的數(shù)據(jù)比較少時(shí),即使不進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)對(duì)系統(tǒng)的影響也不會(huì)太大;當(dāng)系統(tǒng)具有一定規(guī)模,隨著業(yè)務(wù)不斷增加,系統(tǒng)存儲(chǔ)、處理的數(shù)據(jù)需求量越來(lái)越大時(shí),數(shù)據(jù)庫(kù)設(shè)計(jì)就是十分重要的環(huán)節(jié),如果數(shù)據(jù)庫(kù)設(shè)計(jì)不當(dāng),會(huì)面臨前文所述的問(wèn)題,造成數(shù)據(jù)冗余、修改處理復(fù)雜化、操作數(shù)據(jù)異常等。而好的數(shù)據(jù)庫(kù)設(shè)計(jì),則可以減少不必要的數(shù)據(jù)冗余,簡(jiǎn)化數(shù)據(jù)處理語(yǔ)句,并在數(shù)據(jù)庫(kù)設(shè)計(jì)中對(duì)數(shù)據(jù)進(jìn)行合理規(guī)劃,減少甚至避免操作數(shù)據(jù)異常,從而提高系統(tǒng)性能。
2.降低后期維護(hù)成本
良好的數(shù)據(jù)庫(kù)設(shè)計(jì)除了按照定義階段的需求分析說(shuō)明內(nèi)容對(duì)系統(tǒng)數(shù)據(jù)庫(kù)進(jìn)行設(shè)計(jì),還應(yīng)具備適應(yīng)后續(xù)需求變更或系統(tǒng)版本升級(jí)的靈活性、擴(kuò)展性,以及具備避免性能瓶頸的條件,從而減少后續(xù)變化帶來(lái)的不必要的人力、財(cái)力和時(shí)間的投入。一個(gè)好的數(shù)據(jù)庫(kù)設(shè)計(jì)是建立信息系統(tǒng)的核心和基礎(chǔ),是對(duì)指定的信息系統(tǒng)構(gòu)造出更優(yōu)的數(shù)據(jù)庫(kù)模式,使系統(tǒng)能更有效地存儲(chǔ)數(shù)據(jù),并滿(mǎn)足用戶(hù)在使用系統(tǒng)過(guò)程中的各種操作需求。這就要求數(shù)據(jù)庫(kù)設(shè)計(jì)中對(duì)表的結(jié)構(gòu)進(jìn)行合理設(shè)計(jì),涉及物理存儲(chǔ)分區(qū)方式的選擇、適當(dāng)增加索引的方式來(lái)提高數(shù)據(jù)讀取速度,保證數(shù)據(jù)有著較高的查詢(xún)效率;表結(jié)構(gòu)中的數(shù)據(jù)項(xiàng)則使用主外鍵、非空、唯一性索引、約束等限制寫(xiě)入數(shù)據(jù)的內(nèi)容,保證數(shù)據(jù)的正確性和健壯性。從各層面優(yōu)化數(shù)據(jù)庫(kù)設(shè)計(jì),最終可實(shí)現(xiàn)降低后期維護(hù)成本的目的。
四、結(jié)語(yǔ)
綜上所述,數(shù)據(jù)庫(kù)設(shè)計(jì)在信息系統(tǒng)建設(shè)中有著不可忽視的作用,特別是當(dāng)信息系統(tǒng)規(guī)模達(dá)到一定程度,其業(yè)務(wù)關(guān)系復(fù)雜、數(shù)據(jù)量越來(lái)越大、涉及數(shù)據(jù)表較多,這種情況下數(shù)據(jù)庫(kù)設(shè)計(jì)的優(yōu)劣,直接影響系統(tǒng)性能和系統(tǒng)質(zhì)量。良好的數(shù)據(jù)庫(kù)設(shè)計(jì)不僅可以提高信息系統(tǒng)的性能和質(zhì)量,同時(shí)還能保障系統(tǒng)的安全可靠運(yùn)行。本文正是對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)從實(shí)際應(yīng)用場(chǎng)景、基本概念介紹開(kāi)始,然后對(duì)忽視數(shù)據(jù)庫(kù)設(shè)計(jì)帶來(lái)的問(wèn)題進(jìn)行分析,最后闡述了數(shù)據(jù)庫(kù)設(shè)計(jì)的重要性。
參考文獻(xiàn):
[1] 時(shí)學(xué)東. 淺談數(shù)據(jù)庫(kù)設(shè)計(jì)在系統(tǒng)設(shè)計(jì)中的重要性[J]. 科教導(dǎo)刊-電子版(上旬), 2017(3).
[2] 傘穎, 高輝. 淺談數(shù)據(jù)庫(kù)設(shè)計(jì)在系統(tǒng)設(shè)計(jì)中的重要性[J]. 中國(guó)校外教育, 2013(24):174.
作者簡(jiǎn)介:張桂英(1990.9—),女,苗族,籍貫:重慶,學(xué)歷:碩士研究生,單位:重慶電子工程職業(yè)學(xué)院,研究方向:軟件設(shè)計(jì)與開(kāi)發(fā)。