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

淺析數(shù)據(jù)庫設(shè)計實踐

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

淺析數(shù)據(jù)庫設(shè)計實踐

本文作者:仇學敏 單位:貴州廣播電視大學

1數(shù)據(jù)庫設(shè)計概述

在數(shù)據(jù)庫應用系統(tǒng)中,主要面對的核心問題就是設(shè)計出一個能滿足用戶需求,性能良好的數(shù)據(jù)庫,這就是數(shù)據(jù)庫設(shè)計。軟件開發(fā)的數(shù)據(jù)庫設(shè)計主要分為四個階段:需求分析、概念設(shè)計、邏輯設(shè)計和物理設(shè)計。而目前的軟件開發(fā)過程中,一般采用生命周期法,將數(shù)據(jù)庫分解為目標獨立的若干階段:需求分析、概念設(shè)計、邏輯設(shè)計、物理設(shè)計、編碼階段、測試階段、運行階段和進一步修改階段。關(guān)于數(shù)據(jù)庫設(shè)計理念,主要是為了分析數(shù)據(jù)間內(nèi)在語義關(guān)聯(lián),在此基礎(chǔ)上建立一個數(shù)據(jù)的抽象模型。設(shè)計者根據(jù)實際情況,對某些共同特性和行為的對象可以抽象的作為一個實體。所以數(shù)據(jù)庫是由實體和屬性組成的,實體是通過主鍵表示,屬性是通過外鍵表示。在進行設(shè)計時,實體與屬性是相對而言的,同一事物在某一種環(huán)境中作為屬性,在另一種環(huán)境中,就必須作為實體。如圖1所示。

2軟件開發(fā)中數(shù)據(jù)庫設(shè)計的重要性

數(shù)據(jù)庫作為重要的數(shù)據(jù)處理技術(shù),大多數(shù)的軟件開發(fā)都必須運用到數(shù)據(jù)庫技術(shù),數(shù)據(jù)庫管理系統(tǒng)就是軟件開發(fā)的重要成果。它是一種系統(tǒng)軟件,分組數(shù)據(jù)庫中的數(shù)據(jù)組織、操縱、維護、控制及保護和數(shù)據(jù)服務(wù)等功能,特別是它可以定義視圖和進行強大的數(shù)值計算,能夠很好的控制數(shù)據(jù)庫的安全性、完整性以及對數(shù)據(jù)庫的故障進行校正、修復和監(jiān)控功能。所以它被應用到世界各個領(lǐng)域的機械、醫(yī)療、教育等領(lǐng)域中。而且在開發(fā)軟件時,經(jīng)常要對很多數(shù)據(jù)線圖和表格進行查找,簡單的還可以進行人工查找,如果遇到復雜的數(shù)據(jù)查找,則會對設(shè)計人員造成許多的不便,也很容易出現(xiàn)錯誤,影響軟件產(chǎn)品的質(zhì)量。而如果運用數(shù)據(jù)庫管理編程,則可以存儲許多的數(shù)據(jù),當需要時,數(shù)據(jù)庫管理系統(tǒng)則會為用戶使用數(shù)據(jù)中的數(shù)據(jù)提供方便的查詢、插入、修改以及刪除數(shù)據(jù)的功能。

3軟件開發(fā)中數(shù)據(jù)庫設(shè)計應遵循的原則

1)一事一地。建表需描述兩個實體之間的聯(lián)系,避免出現(xiàn)大、雜的設(shè)計。如單個主題信息需獨立保存、分離,通過在表中分散不同的信息,使數(shù)據(jù)的維護、組織工作簡單化。同時,提高了應用程序的性能。2)避免出現(xiàn)重復的字段。應確保表中能切實放映與其他表的聯(lián)系,以及外部關(guān)鍵字。另外,要注意避免出現(xiàn)重復的字段,以減小數(shù)據(jù)冗余,防止刪除、插入、更新等操作時,導致數(shù)據(jù)不一致。3)規(guī)范化的命名。對于不同的數(shù)據(jù)庫產(chǎn)品的命名的要求也就不同,設(shè)計者在對各對象進行命名操作時,利用大小寫字母進行標識,對于編寫后臺程序代碼也要如此,命名長度最好是控制在30字符以下。4)除了個別要求外,禁用游標。如果對大的數(shù)據(jù)集合使用游標,很容易使得程序出現(xiàn)“漫長等待”或“死機”的現(xiàn)象。如果要使用游標,可以建立一個臨時的表,在表中輸入所需要的數(shù)據(jù),然后對臨時表進行游標操作,這在很大程度能夠提高游標的性能。5)對龐大的表使用索引。索引是對數(shù)據(jù)庫表中一列或多列的值進行排序的一種結(jié)構(gòu),使用索引可快速訪問數(shù)據(jù)庫表中的特定信息。索引分為聚簇索引和非聚簇索引兩種,聚簇索引是按照數(shù)據(jù)存放的物理位置為順序的,而非聚簇索引就不一樣了;聚簇索引能提高多行檢索的速度,而非聚簇索引對于單行的檢索很快。6)事務(wù)的使用。指作為單個邏輯工作單元執(zhí)行的一系列操作,它可以為非事物性單元單元內(nèi)之外的所有操作的順利完成提供保障,不斷的更新面向數(shù)據(jù)的資源。7)調(diào)整數(shù)據(jù)庫的性能。許多設(shè)計員會對數(shù)據(jù)庫設(shè)計采用以下兩種方法:其一,邏輯設(shè)計數(shù)據(jù)庫。調(diào)整性能以調(diào)整關(guān)系、減少連接運算,保持每個關(guān)系數(shù)量在合理的水平,從而使存取效率提高。時刻通過快照固定,以使查詢速度提高;其二,物理設(shè)計數(shù)據(jù)庫。主要調(diào)整內(nèi)部物理結(jié)構(gòu),合理選取存取的路徑,以增快訪問速度,提高存儲空間的利用率。8)合理的選擇數(shù)據(jù)類型。在實際的設(shè)計中,必須根據(jù)軟件開發(fā)的產(chǎn)品的規(guī)則和要求對數(shù)據(jù)類型進行選擇,從而提高數(shù)據(jù)庫的性能。

4軟件開發(fā)中的數(shù)據(jù)庫設(shè)計的理論分析

1)數(shù)據(jù)管理系統(tǒng)可在軟件開發(fā)系統(tǒng)中運行。軟件開發(fā)系統(tǒng)主要采用VisualC++系統(tǒng),可直接運行SQL語言。SQL語言是一種可程序設(shè)計、數(shù)據(jù)庫和結(jié)構(gòu)化查詢的語言,用于數(shù)據(jù)的查詢、存取機更新。同時,可作為腳本文件擴展名。開發(fā)應用程序采用VisualC++,不僅進行數(shù)據(jù)庫訪問,還可作為開發(fā)前段的工具。VisualC++系統(tǒng)的程序開發(fā),能使遠程訪問的復雜性大大降低,訪問效率大大提高。2)數(shù)據(jù)庫在軟件開發(fā)中的設(shè)計,對于數(shù)據(jù)模型的選擇應慎重。數(shù)據(jù)庫中的數(shù)據(jù)模型可以將復雜的現(xiàn)實世界要求反映到計算機數(shù)據(jù)庫中的物理世界,而在設(shè)計時主要注意以下四個方面的因素:其一,數(shù)據(jù)模型因素。不同軟件產(chǎn)品的應用需要不同,所以應該根據(jù)實際的情況來選擇數(shù)據(jù)模型,大多數(shù)設(shè)計者一般都會采用關(guān)系模型,因為它是一種非過程性的模型,采用二維表來表示,二維表是由表框架和表的元組組成,當用戶進行查詢信息時,不必對實際的物理存儲路徑進行考慮,就能很快、方便獲得準確的結(jié)果。在大型的數(shù)據(jù)庫管理系統(tǒng)中,必須優(yōu)化查詢、提高關(guān)系模型的查詢效率;其二,數(shù)據(jù)庫結(jié)構(gòu)因素。數(shù)據(jù)模型中的數(shù)據(jù)結(jié)構(gòu)主要的目的是對數(shù)據(jù)的類型、性質(zhì)、內(nèi)容和數(shù)據(jù)間的聯(lián)系進行描述,它是數(shù)據(jù)模型的基礎(chǔ),不同是數(shù)據(jù)結(jié)構(gòu)操作與約束的也建立在數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上,因此必須根據(jù)具體數(shù)據(jù)結(jié)構(gòu)的實際情況分類數(shù)據(jù)模型;其三,數(shù)據(jù)約束因素。它主要是對數(shù)據(jù)結(jié)構(gòu)內(nèi)數(shù)據(jù)間的語法、語義聯(lián)系進行描述,它們之間是制約和依存的關(guān)系,所以在具體設(shè)計中,應該根據(jù)實踐情況和數(shù)據(jù)動態(tài)變化的規(guī)則,來保證適當?shù)恼_、有效與相容;其四,數(shù)據(jù)操作因素。主要是對相應數(shù)據(jù)結(jié)構(gòu)上的操作類型、方式進行描述,所以在對數(shù)據(jù)庫進行操作時,應該整體的處理圖形,根據(jù)實際情況的要求,使接口程序變得簡單、靈活,從而使指針占有的空間減小。

5軟件開發(fā)中的數(shù)據(jù)庫設(shè)計的實踐分析

軟件開發(fā)涉及了工業(yè)、醫(yī)療、教育等各個領(lǐng)域,筆者身為教師,也曾經(jīng)涉及過在線測試軟件的開發(fā)設(shè)計,下面就以在線測試軟件開發(fā)為依托,對其數(shù)據(jù)庫設(shè)計進行分析:1)對系統(tǒng)的總體設(shè)計應引以重視。在對軟件進行編制時,系統(tǒng)的總體設(shè)計與軟件產(chǎn)品項目能否順利開展以及是否符合軟件開發(fā)預期的要求有著直接的關(guān)聯(lián),所以在對在線測試系統(tǒng)進行開發(fā)時,應該根據(jù)常規(guī)軟件的開發(fā)流程來進行。2)描述從屬關(guān)系。分析在線測試中教師組卷、學生測試的信息,例如對學科試卷中分為單選題、多選題、填空題、判斷題,對這些對象進行系統(tǒng)數(shù)據(jù)庫的組織,從而使得測試題目和學科試卷之間的建立從屬的關(guān)系,同時,也使得各學科試卷之間建立了復雜的從屬關(guān)系。所以,建立從屬關(guān)系主要是考慮空間從屬關(guān)系和測試的時間順序。3)合理的實現(xiàn)文本框的窗體視圖。主要是利用以單文檔的方式來顯示表中的數(shù)據(jù),它即具有單獨使用的文檔窗體視圖風格,而且當輸入監(jiān)測點數(shù)據(jù)時,可以很好看到該監(jiān)測點的屬性窗口。同時,該軟件具有容錯功能,即當用戶輸入或操作錯誤時,數(shù)據(jù)庫會自動的提示或取消操作。

6數(shù)據(jù)庫設(shè)計過程和實例分析

上面介紹了數(shù)據(jù)庫設(shè)計的原則,以“教學管理”數(shù)據(jù)庫為例,來分析數(shù)據(jù)庫設(shè)計的過程。1)需求分析階段。對用戶的需要進行分析主要包括三個方面的內(nèi)容:其一,信息需求。即用戶要從數(shù)據(jù)庫獲得的信息內(nèi)容。信息需求定義了數(shù)據(jù)庫應用系統(tǒng)應該提供的所有信息,注意描述系統(tǒng)中數(shù)據(jù)的數(shù)據(jù)類型;其二,處理要求,即滿足數(shù)據(jù)完成的處理功能、方式的需求,然后定義系統(tǒng)的數(shù)據(jù)處理操作。在操作執(zhí)行時,應該考慮場合、操作、頻率等因素對數(shù)據(jù)的影響;其三,安全性、完整性的要求。在對信息、處理需求進行定義的同時,要保證安全性和完整性的約束。在分析過程中,主要是跟數(shù)據(jù)庫的使用人員進行交流,細心的了解現(xiàn)行業(yè)務(wù)處理流程,熟悉全部數(shù)據(jù)資料。例如可以對學校教學管理工作進行了解和分析,可以確定教學管理數(shù)據(jù)庫建立的目的是為了解決教學信息的組織和管理問題,主要是包括教師、學生信息管理和選課情況管理。2)概念設(shè)計階段。概念設(shè)計的目的是分析數(shù)據(jù)間內(nèi)在語義關(guān)聯(lián),在此基礎(chǔ)上監(jiān)理一個數(shù)據(jù)的抽象模型,主要是有兩種方法:其一,集中式模式設(shè)計法。它根據(jù)需求由一個統(tǒng)一機構(gòu)或人員設(shè)計一個綜合的全局模式,而且設(shè)計比較簡單,非常適用于小型或不復雜的單位和部門;其二,視圖集成設(shè)計法。主要是對一個單位進行分解,然后局部的設(shè)計分解后的每個部分,建立各個部分的視圖,以各視圖為基礎(chǔ)進行集成。例如,在教學管理中,以師生實體為聯(lián)系模型,明確學校各個部門的組成實體和屬性,然后描述學校各個年級的學籍管理和課程管理的局面環(huán)境,再將各個年級教學管理的環(huán)境進行集合,形成一個全局的視圖,從而使得數(shù)據(jù)庫能真實的反映學校的教學的管理。3)邏輯設(shè)計階段。它主要是對外模式關(guān)系視圖進行設(shè)計,主要表現(xiàn)在三個方面:其一,提供數(shù)據(jù)邏輯的獨立性。使應用程序不受邏輯模式變化的影響,關(guān)系視圖則讓邏輯模式與應用程序之間有隔離墻作用;其二,適應用戶對數(shù)據(jù)的不同需求。每個數(shù)據(jù)庫有一個非常龐大的結(jié)構(gòu),它用關(guān)系視圖屏蔽用戶所不需要的模式,而僅將用戶感興趣的部分呈現(xiàn)出來;其三,有一定的保密功能。例如,在教學管理數(shù)據(jù)庫,如果有許多的老師和學生共同登錄,則采用用戶密碼登錄,互不影響,只看到自己所需要的信息數(shù)據(jù)。4)物理設(shè)計階段。它主要是對數(shù)據(jù)庫內(nèi)部物理結(jié)構(gòu)做調(diào)整并選擇合理的存儲路徑,而且一般采用索引設(shè)計、集簇和分區(qū)設(shè)計。例如,在教學管理數(shù)據(jù)庫中,它利用物理設(shè)計能夠很好的修改其中的數(shù)據(jù)和路徑。5)驗證設(shè)計階段。任何一個數(shù)據(jù)庫的設(shè)計和建立都必須經(jīng)過循環(huán)反復的驗證,一旦數(shù)據(jù)庫中的數(shù)據(jù)、步驟遭到破壞和出錯,就必須及時的進行校正恢復。在驗證階段,也為以后的運行和維護提供參考意見。6)軟件運行和維護階段。這是數(shù)據(jù)庫設(shè)計的最后環(huán)節(jié),主要是在軟件開發(fā)的數(shù)據(jù)正式運行后,對其要不斷調(diào)整和維護。

7結(jié)束語

在給定成本、進度的前提下,如何利用數(shù)據(jù)庫設(shè)計理論開發(fā)出具有有效性、可靠性、可互操作性、可維護性等滿足用戶需求的產(chǎn)品是我們需要深思的問題。我們在軟件開發(fā)中,要不斷對數(shù)據(jù)庫設(shè)計理論進行實踐。