公務(wù)員期刊網(wǎng) 論文中心 正文

數(shù)據(jù)庫內(nèi)容設(shè)計(jì)與優(yōu)化

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了數(shù)據(jù)庫內(nèi)容設(shè)計(jì)與優(yōu)化范文,希望能給你帶來靈感和參考,敬請閱讀。

數(shù)據(jù)庫內(nèi)容設(shè)計(jì)與優(yōu)化

[摘要]數(shù)據(jù)庫系統(tǒng)為管理信息系統(tǒng)整體的根本與中心,它的功能是把許多數(shù)據(jù)根據(jù)有關(guān)的規(guī)則串聯(lián)至一處,便捷精準(zhǔn),及時輸出給使用者。設(shè)計(jì)數(shù)據(jù)庫系統(tǒng)表面觀之極其容易,可是達(dá)到數(shù)據(jù)庫功能優(yōu)化屬于數(shù)據(jù)庫設(shè)計(jì)中十分復(fù)雜困難的一項(xiàng)工作,使用程序組成、研發(fā)工具、界面選取與搜索設(shè)計(jì)皆能夠進(jìn)行改進(jìn)。改善數(shù)據(jù)庫設(shè)計(jì)是一種能夠?qū)崿F(xiàn)優(yōu)化的重要方式。

[關(guān)鍵詞]數(shù)據(jù)庫設(shè)計(jì);SQL數(shù)據(jù)庫;性能優(yōu)化

一、數(shù)據(jù)庫結(jié)構(gòu)及設(shè)計(jì)要點(diǎn)

要優(yōu)化SQLServer數(shù)據(jù)庫的功能,對于數(shù)據(jù)庫設(shè)計(jì)而言,用戶必須對其基本構(gòu)造非常了解,并且亦需對數(shù)據(jù)庫的存儲模式十分熟悉。第一點(diǎn),數(shù)據(jù)庫一般包括一項(xiàng)重點(diǎn)數(shù)據(jù)文件,還包括一項(xiàng)或幾項(xiàng)記事日記資料,有的數(shù)據(jù)庫亦包括幫助資料。數(shù)據(jù)庫會把重點(diǎn)信息資料作為起始,其余模塊數(shù)據(jù)庫文件執(zhí)行監(jiān)管,主信息資料包括數(shù)據(jù)庫開始內(nèi)容,對于整體信息而言,絕對不能夠缺少主數(shù)據(jù)文件。就記事日志資料而言,其包括復(fù)原數(shù)據(jù)庫的全部記載資料。就數(shù)據(jù)庫來說,日記資料亦為不能夠缺少的,一個數(shù)據(jù)庫最少要有一項(xiàng)日記資料。非主要信息資料為剔除主信息資料以后余下的信息資料。對于數(shù)據(jù)庫,若主信息資料含有全部資料,那么不可以設(shè)計(jì)數(shù)據(jù)庫非主要信息資料。針對某些較大數(shù)據(jù)庫,因?yàn)樾枰嵘龜?shù)據(jù)處理的速度,還會設(shè)計(jì)一部分非主要信息資料置于其中。數(shù)據(jù)庫建立之初,將在對應(yīng)的數(shù)據(jù)庫中拷貝系統(tǒng)數(shù)據(jù)庫內(nèi)的模型數(shù)據(jù)庫;SQLServer數(shù)據(jù)庫,制定頁面儲存的規(guī)范信息單位大小是8KB的不間斷的磁盤內(nèi)存,數(shù)據(jù)庫不可以交叉于PageSQLServer2000數(shù)據(jù)庫,如每行至多允許存儲8060字節(jié)內(nèi)容;數(shù)據(jù)庫增大屬于索引、表拆分固定內(nèi)存的標(biāo)準(zhǔn)單位,若表比較小,在擴(kuò)大過程中能夠和別的數(shù)據(jù)庫共用,擴(kuò)大8個鄰近頁面;事務(wù)日志文件中,會存某些關(guān)鍵數(shù)據(jù)用來快捷恢復(fù)數(shù)據(jù),可用于系統(tǒng)故障需要數(shù)據(jù)恢復(fù)的狀況。在設(shè)計(jì)數(shù)據(jù)庫時,首要應(yīng)知曉數(shù)據(jù)庫的架構(gòu),了解數(shù)據(jù)庫組成,對于數(shù)據(jù)庫設(shè)計(jì)的規(guī)范化有益。

二、設(shè)計(jì)思路

在設(shè)計(jì)數(shù)據(jù)庫構(gòu)造時,某些時候總是被要求在多個表中同一時間進(jìn)行各表共同搜索字段的設(shè)計(jì),讓工作過程在一個表中查找需要的資料,以此實(shí)現(xiàn)提升效率,減少運(yùn)行時長的目標(biāo)。

(一)完整性設(shè)計(jì)

數(shù)據(jù)庫完整性設(shè)計(jì)將對DBMS產(chǎn)生直接影響,真實(shí)反映實(shí)際現(xiàn)狀。采用完整性監(jiān)管體制能夠預(yù)防沒有被授權(quán)的人對數(shù)據(jù)庫進(jìn)行不實(shí)的信息的增加,且實(shí)行操作規(guī)范用來讓應(yīng)用程序變得簡單化,提升系統(tǒng)使用的容易性,且規(guī)避系統(tǒng)功能。此設(shè)計(jì)時期規(guī)則為,按照要求研究的結(jié)論,系統(tǒng)能夠達(dá)到限制的標(biāo)準(zhǔn),詳細(xì)計(jì)劃各式種類的完整性,盡可能去掉碰撞間的限制的完整性。通常而言,數(shù)據(jù)庫完整性限制能夠被劃成為動與靜兩種。靜態(tài)約束應(yīng)囊括于數(shù)據(jù)庫范圍內(nèi)。SQLServer主要支持UNIQUE約束、FOREIGN約束、DEFAULT約束、PRIMARY約束、CHECK約束、動態(tài)限制因素自身的限制一般由程序?qū)崿F(xiàn)。之中,借鑒約束設(shè)計(jì)十分關(guān)鍵,其要求外鍵的值一定要為被借鑒關(guān)系或取自空值。

(二)物理結(jié)構(gòu)設(shè)計(jì)

選取最適宜的物理構(gòu)造、減少操作反饋時間、提升儲存內(nèi)存吞吐量與利用率為物理設(shè)計(jì)的追求。數(shù)據(jù)庫的物理構(gòu)造根本是指數(shù)據(jù)庫的儲存組成與訪問方法。存在三個類型的訪問方式:Cluser方法、HASH方法、Index方法,若Cluser思想與Index思維組合,能夠更快捷地查閱信息。第一點(diǎn)Cluser索引維護(hù)產(chǎn)生更多的系統(tǒng)支出,因此創(chuàng)建Cluser的索引更優(yōu)。用戶采用普遍被用于搜索關(guān)鍵字的本質(zhì)實(shí)施索引,如進(jìn)行索引。各班的所有學(xué)生的成績曾經(jīng)一起變差,搜索的使用會多于更新的使用,類型一樣的學(xué)生數(shù)據(jù)儲存在不間斷的物理區(qū)域里,能夠降低操作次數(shù),提升搜索速度。數(shù)據(jù)庫儲存構(gòu)造,含有物理資料的真實(shí)保存確立途徑;確立物理資料內(nèi)存的最初大小,只大內(nèi)存,增多備份計(jì)策的研發(fā)數(shù),按期對事務(wù)記載與數(shù)據(jù)庫做備份,若數(shù)據(jù)庫出現(xiàn)異常,備份復(fù)原資料與自在被應(yīng)用。備份計(jì)策,去除與備份的時間、位置、負(fù)責(zé)、種類、頻率與應(yīng)具備的硬件快慢與性能。日志資料能夠記載全部的delete、update、insert操作,當(dāng)全部動作皆被記載于記錄資料中時,將造成信息資料增多,因此于每個學(xué)期的期末整理數(shù)據(jù)庫,對其進(jìn)行全部拷貝留存,能夠選擇清空記載資料方式來降低物理資料的量以保障系統(tǒng)功能的正常運(yùn)行。

(三)觸發(fā)器

觸發(fā)器為一種特別的保存形式,與編程中的事件函數(shù)較為相像。SQLServer許可用戶“輸入”建立一項(xiàng)觸發(fā)器為“刪除”“更新”,若圖表之中寫入“UPDATE”與“DELETE”信息錄入(視圖)或一系列T-SQL語句時,SQLServer觸發(fā)器種類可劃分成“刪除”、“更新”及“輸入”三個種類觸發(fā)器。若“輸入”觸發(fā)器被啟動時,系統(tǒng)會建立一項(xiàng)稱為“輸入”的邏輯圖表,且把插入的信息行拷貝至插入。若“刪除”觸發(fā)器被啟動,系統(tǒng)會建立一項(xiàng)稱為“刪除”的邏輯圖表,刪除的信息行會被拷貝至刪除。若“更新”觸發(fā)器被啟動了,系統(tǒng)會建立一項(xiàng)稱作“delete.insert-ed”的邏輯表,把刷新前的數(shù)據(jù)行拷貝至刪除后,刷新的數(shù)據(jù)行會被拷貝至插入。所以,“更新”觸發(fā)器能夠被解釋成第一個“刪除”行信息,之后輸入新寫入信息行。對于寫入觸發(fā)器的環(huán)節(jié)中,能夠運(yùn)用“更新”(column)來判斷是否在“輸入”或“更新”動作上指定列。用戶亦能夠使用COLUMNS_UPDATEDO來判斷是否更新或插入了所指定的列。上述兩項(xiàng)操作僅能在“輸入”或“更新”觸發(fā)器中運(yùn)用,不可在“刪除”觸發(fā)器中運(yùn)用。

三、SQL數(shù)據(jù)庫語言的優(yōu)化方向

(一)SQL數(shù)據(jù)庫的讀取和反饋

在編程人員應(yīng)用SQL數(shù)據(jù)庫執(zhí)行數(shù)據(jù)庫指令編寫時,應(yīng)當(dāng)盡可能簡化SQL數(shù)據(jù)庫中計(jì)算的過程。此項(xiàng)優(yōu)化的作用主要在于可以實(shí)現(xiàn)下列效果:第一項(xiàng)為降低SQL數(shù)據(jù)庫中服務(wù)器的造訪次數(shù)。在應(yīng)用SQL數(shù)據(jù)庫的操作中,若對SQL數(shù)據(jù)庫提出的指令數(shù)量過多,導(dǎo)致SQL數(shù)據(jù)庫需更多的時間進(jìn)行運(yùn)算,繼而需更多的時間進(jìn)行信息的反饋,如此的操作將讓使用者對SQL數(shù)據(jù)庫的體驗(yàn)產(chǎn)生不良作用。SQL數(shù)據(jù)庫中過多的增加指令,亦將導(dǎo)致指令之間產(chǎn)生沖突,嚴(yán)重時將導(dǎo)致SQL數(shù)據(jù)庫中產(chǎn)生大量錯誤運(yùn)行的狀況。因此,當(dāng)SQL數(shù)據(jù)庫中指令很少時,SQL數(shù)據(jù)庫就能夠在少量時間內(nèi)做信息存儲與備份,但是若SQL數(shù)據(jù)庫中指令太多時,將會導(dǎo)致數(shù)據(jù)的外溢,造成SQL數(shù)據(jù)庫的運(yùn)行不穩(wěn)定。

(二)SQL數(shù)據(jù)庫的反應(yīng)時間

一般來說,用戶在工作中應(yīng)用系統(tǒng)軟件時,皆會希望系統(tǒng)軟件可以快速的進(jìn)行反應(yīng),反之用戶將會產(chǎn)生想要放棄使用該系統(tǒng)軟件的想法。所以必須要在SQL數(shù)據(jù)庫中對于數(shù)據(jù)庫的反應(yīng)時間做相關(guān)的改進(jìn)與設(shè)計(jì)。如,設(shè)計(jì)工程師可在SQL數(shù)據(jù)庫中實(shí)行整理及劃分,把數(shù)據(jù)庫的運(yùn)行模塊分成若干個的模塊,如此當(dāng)SQL數(shù)據(jù)庫結(jié)束第一個模塊的查詢后,立刻將內(nèi)容反映給用戶,之后在結(jié)束下一個模塊的查詢之后,再把下一個模塊的數(shù)據(jù)反映給用戶。同時當(dāng)用戶在操作過程中發(fā)生錯誤時,亦可以給用戶一個合理的解決對策。

四、具體的優(yōu)化方式

(一)索引優(yōu)化

索引模塊作為整個SQL數(shù)據(jù)庫中最基本的一項(xiàng)應(yīng)用功能,亦為對整個SQL數(shù)據(jù)庫來說最關(guān)鍵的組成。所以對SQL數(shù)據(jù)庫的優(yōu)化設(shè)計(jì),應(yīng)該對索引的設(shè)計(jì)做出相應(yīng)的改進(jìn),保證SQL數(shù)據(jù)庫的應(yīng)用性能夠充分展現(xiàn)。當(dāng)用戶在某些未創(chuàng)建健全的、有效的索引服務(wù)的數(shù)據(jù)庫中實(shí)施操作時,一般皆為對數(shù)據(jù)庫中的數(shù)據(jù)信息進(jìn)行整體的搜索。但是此種整體的搜索方法即為將數(shù)據(jù)庫中全部的有關(guān)資料信息進(jìn)行整合、加工與分析,繼而得到之中處理完成的信息資料??墒谴朔N資料搜索方法存在顯而易見的缺陷,此種搜索方法對于某些查詢范圍過廣的操作并不合適,并且針對當(dāng)中數(shù)據(jù)查詢方法亦非常消耗資源,所以必須為SQL數(shù)據(jù)庫的索引功能施行優(yōu)化。對于如今的軟件系統(tǒng)設(shè)計(jì)程序,通常能夠?qū)⑵鋭澐殖纱厮饕?、非簇索引與復(fù)合型的索引。三者之中應(yīng)用比較多的是簇索引。此種索引方法能夠?qū)QL數(shù)據(jù)庫中的資料施行分組,同時進(jìn)行整理及分析,讓SQL數(shù)據(jù)庫能夠根據(jù)實(shí)現(xiàn)計(jì)劃好的列值展開排列。

(二)視圖優(yōu)化

視圖是SQL數(shù)據(jù)庫中對數(shù)據(jù)庫中的資料采用圖表的方式反映出來的一種樣式。一般在SQL數(shù)據(jù)庫中視圖可分為索引視圖、分區(qū)視圖、標(biāo)準(zhǔn)視圖三種。分區(qū)視圖的主要功用為是提升SQL數(shù)據(jù)庫中分布式的數(shù)據(jù)搜索效率,所以能夠在分區(qū)視圖中實(shí)施SQL數(shù)據(jù)庫的優(yōu)化?,F(xiàn)代的數(shù)據(jù)庫軟件系統(tǒng)已開始朝向多樣化、集成化的目標(biāo)發(fā)展。所以在某些數(shù)據(jù)庫的搜索運(yùn)行中,常常會產(chǎn)生需要查詢多個數(shù)據(jù)庫方可找到信息。對于用戶在SQL數(shù)據(jù)庫中應(yīng)用查詢功能時,能夠首先對各個部分在服務(wù)器中實(shí)施資料備份,而后在本部分中應(yīng)用查詢,運(yùn)用此方式降低來自外界的不良影響。

(三)語句優(yōu)化

語句優(yōu)化屬于整個SQL數(shù)據(jù)庫優(yōu)化操作中的重要步驟,亦為提高SQL數(shù)據(jù)庫應(yīng)用品質(zhì)的重要方法。對于SQL數(shù)據(jù)庫系統(tǒng)而言,實(shí)施語句優(yōu)化主要可分為兩項(xiàng)內(nèi)容:一是對子目錄的資料展開查詢技術(shù)實(shí)施優(yōu)化,二是創(chuàng)建SQL數(shù)據(jù)庫的模糊查詢功能,但第一項(xiàng)為優(yōu)化的關(guān)鍵。在SQL數(shù)據(jù)庫中進(jìn)行子目錄的展開搜索即為一種把子目錄搜索信號轉(zhuǎn)化為一種連接的優(yōu)化策略。如以某一學(xué)校的學(xué)生成績?yōu)槔M(jìn)行SQL數(shù)據(jù)庫語句優(yōu)化,針對此學(xué)校中學(xué)習(xí)成績高于500的同學(xué)實(shí)施查詢,當(dāng)中查詢的子目錄為姓名、學(xué)號、班級、成績,應(yīng)用一般的SQL數(shù)據(jù)庫來實(shí)施查詢操作,將運(yùn)用成績高于500的準(zhǔn)則實(shí)行整體的搜索,盡管此種方法十分精確,可是效率偏低。但是對SQL數(shù)據(jù)庫在語句上實(shí)施優(yōu)化,能夠首先創(chuàng)建一個連接,運(yùn)用對學(xué)號與班級的查找提升搜索的效率。

五、結(jié)語

綜上所述,SQL觸發(fā)器能夠在數(shù)據(jù)庫保障信息一致性中產(chǎn)生關(guān)鍵作用,可以用來提升數(shù)據(jù)庫查找的效率。可是在真正使用時亦應(yīng)注意不可濫用觸發(fā)器,原因是其會造成應(yīng)用軟件與數(shù)據(jù)庫的維護(hù)難度增加。在真實(shí)使用時,用戶應(yīng)該運(yùn)用存儲過程、觸發(fā)器、關(guān)系應(yīng)用程序與其他方法的關(guān)系組合來實(shí)施數(shù)據(jù)庫操作。

參考文獻(xiàn):

[1]董航.基于SQL數(shù)據(jù)庫的安全問題分析[J].通訊世界,2017(14):144.

[2]李韓,孫永杰.SQL數(shù)據(jù)庫的安全管理和性能優(yōu)化[J].科技創(chuàng)新與應(yīng)用,2016(31):108.

[3]于雷.關(guān)于如何優(yōu)化SQL數(shù)據(jù)庫的性能的幾點(diǎn)分析[J].電腦知識與技術(shù),2016,12(26):19-20.

[4]徐茂.淺析面向SQL數(shù)據(jù)庫注入攻擊的JavaWeb防御措施[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2016(10):85-86.

[5]付海麗,鄧倫強(qiáng),王希鋒.SQL數(shù)據(jù)庫的構(gòu)建與管理維護(hù)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2015(4):21,25.

[6]肖念.淺析SQL數(shù)據(jù)庫的設(shè)計(jì)[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2013,16(6):201-202.

作者:胡曉東 高嘉偉 單位:山西經(jīng)濟(jì)管理干部學(xué)院