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

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

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

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

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

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

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

要優(yōu)化SQLServer數(shù)據(jù)庫的功能,對于數(shù)據(jù)庫設(shè)計而言,用戶必須對其基本構(gòu)造非常了解,并且亦需對數(shù)據(jù)庫的存儲模式十分熟悉。第一點,數(shù)據(jù)庫一般包括一項重點數(shù)據(jù)文件,還包括一項或幾項記事日記資料,有的數(shù)據(jù)庫亦包括幫助資料。數(shù)據(jù)庫會把重點信息資料作為起始,其余模塊數(shù)據(jù)庫文件執(zhí)行監(jiān)管,主信息資料包括數(shù)據(jù)庫開始內(nèi)容,對于整體信息而言,絕對不能夠缺少主數(shù)據(jù)文件。就記事日志資料而言,其包括復(fù)原數(shù)據(jù)庫的全部記載資料。就數(shù)據(jù)庫來說,日記資料亦為不能夠缺少的,一個數(shù)據(jù)庫最少要有一項日記資料。非主要信息資料為剔除主信息資料以后余下的信息資料。對于數(shù)據(jù)庫,若主信息資料含有全部資料,那么不可以設(shè)計數(shù)據(jù)庫非主要信息資料。針對某些較大數(shù)據(jù)庫,因為需要提升數(shù)據(jù)處理的速度,還會設(shè)計一部分非主要信息資料置于其中。數(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)單位,若表比較小,在擴大過程中能夠和別的數(shù)據(jù)庫共用,擴大8個鄰近頁面;事務(wù)日志文件中,會存某些關(guān)鍵數(shù)據(jù)用來快捷恢復(fù)數(shù)據(jù),可用于系統(tǒng)故障需要數(shù)據(jù)恢復(fù)的狀況。在設(shè)計數(shù)據(jù)庫時,首要應(yīng)知曉數(shù)據(jù)庫的架構(gòu),了解數(shù)據(jù)庫組成,對于數(shù)據(jù)庫設(shè)計的規(guī)范化有益。

二、設(shè)計思路

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

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

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

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

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

(三)觸發(fā)器

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

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

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

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

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

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

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

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

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

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

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

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

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

五、結(jié)語

綜上所述,SQL觸發(fā)器能夠在數(shù)據(jù)庫保障信息一致性中產(chǎn)生關(guān)鍵作用,可以用來提升數(shù)據(jù)庫查找的效率??墒窃谡嬲褂脮r亦應(yīng)注意不可濫用觸發(fā)器,原因是其會造成應(yīng)用軟件與數(shù)據(jù)庫的維護難度增加。在真實使用時,用戶應(yīng)該運用存儲過程、觸發(fā)器、關(guān)系應(yīng)用程序與其他方法的關(guān)系組合來實施數(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ù)庫的性能的幾點分析[J].電腦知識與技術(shù),2016,12(26):19-20.

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

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

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

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