◆黃 旭 圣文順 李 會
(南京工業(yè)大學浦江學院 江蘇 211222)
在計算機軟件開發(fā)過程中,數(shù)據(jù)庫的設計起著尤為重要的作用。以一座高樓大廈為例,一個不夠堅實可靠地基,絕不能撐起高聳入云的大廈。數(shù)據(jù)庫設計亦是如此。不良的數(shù)據(jù)庫也不能支撐完美的計算機軟件。在數(shù)據(jù)庫設計中往往會引發(fā)以下幾種問題:
(1)與要求不符;
(2)喪失數(shù)據(jù)的完整性;(3)數(shù)據(jù)冗余;
(4)可擴展性差;
(5)表與表之間耦合性大。
在計算機軟件技術的支持下數(shù)據(jù)庫運行具備較高的可行性,我們可以著手對數(shù)據(jù)庫軟件進行開發(fā)計劃的設計,例如對數(shù)據(jù)庫所需的字段,表結構以及數(shù)據(jù)庫系統(tǒng)的開發(fā)員對及人員構成、任務分配和整個項目的進度、驗收標準、驗收時間等進行全面的、系統(tǒng)的計劃。在這個過程中,我們一定要基于客戶的數(shù)據(jù)庫體驗為標準,進而提升數(shù)據(jù)庫的簡易度。
數(shù)據(jù)庫設計是計算機軟件設計的核心部分。在設計數(shù)據(jù)庫時,由于開發(fā)人員的不同,因此對軟件的定義也不同,理解的角度也不同,再加上工程師的知識水平不同等因素,會導致數(shù)據(jù)庫設計不能滿足計算機軟件的需求。在開發(fā)軟件的過程中,有的設計師注重計算機軟件的前端設計和功能模塊設計,在一定程度上忽視了數(shù)據(jù)庫設計的重要性,沒有對數(shù)據(jù)庫設計進行綜合行分析。這一疏忽,日后會導致數(shù)據(jù)庫使用性能不高,容易出現(xiàn)故障,擴展性差等問題。這些問題的出現(xiàn)無疑是對計算機軟件應用程序致命性的打擊,甚至會造成整個軟件系統(tǒng)的崩潰。同時增加了后期的維護頻率,浪費了人力、物力、財力。
例如,在《學生學籍信息管理系統(tǒng)》中,使用存儲過程來編碼刪除操作,不僅提高了數(shù)據(jù)庫的執(zhí)行速度,還減少開發(fā)時的工作量。刪除代碼如下:
create procedure tbAcademy_delete
@AcademyId int, --學院編號
@Flag int output --設置輸出參數(shù)flag
as
begin
declare @RowCount int --定義變量 數(shù)據(jù)庫中行數(shù)的總數(shù)
set @RowCount = 0 --設初始值為0
select @RowCount = @RowCount + COUNT(*)
from tbCourseInfo
where AcademyId = @AcademyId
select @RowCount = @RowCount + COUNT(*)
from tbTeacherInfo
where AcademyId = @AcademyId
if @RowCount = 0
begin
delete dbo.tbAcademyInfo
where AcademyId = @AcademyId
set @Flag = 0
end
else
begin
set @Flag = 1
end
end
良好的數(shù)據(jù)庫對計算機軟件的穩(wěn)定運行起著極為重要的作用,因此數(shù)據(jù)庫設計人員在對某一軟件進行設計之前,要制定出詳細且周密的計劃??梢詮囊韵聨讉€方面入手:
(1)對市場上的客戶需求進行調查確保軟件能滿足客戶的需求;
(2)進行問卷調查,站在客戶的角度思考,多與其溝通,確保軟件的設計不走歪路;
(3)預留一定的可擴展空間,為日后的業(yè)務提供擴展功能,也防止意外事件的發(fā)生。
為了避免不必要的錯誤發(fā)生,在實際開發(fā)過程中,需要與既定的計劃保持一致??梢詮囊韵聨讉€方面考慮:
(1)在數(shù)據(jù)庫設計過程中,明確每一個設計的用途,因為每一張表,每一條字段在軟件設計中都有著不可獲缺的作用;
(2)將數(shù)據(jù)庫設計中的對應的某項功能,實現(xiàn)與計算機軟件的功能的對接;
(3)在建立表的關系時,要考慮到與應用程序一致,把握好整體與局部的關系,為減少將來程序出現(xiàn)意外。
立足于整體的角度,全局統(tǒng)觀計算機軟件,考慮其使用效率,可以有效地防止軟件使用過程中的冗余和不足。由于計算機的空間是有限的,因此我們在考察使用效率后才可以針對不同的軟件給予相應的存儲空間,在進行相應的設計。另外設計表時還要追求高內聚,低耦合。例如在設計表時,有多張有著復雜關系的表,我們可以使用第三張表來關聯(lián)和維護兩張表之間的關系,降低表之間的耦合度。
為了確保計算機軟件的正常使用,我們在設計數(shù)據(jù)庫時要遵守一定的設計原則。在數(shù)據(jù)庫設計過程中要綜合考慮業(yè)務需求,明確每一功能的用途。此外,我們還應該樹立長遠的意識,預留一定的空間,為以后擴展業(yè)務所用。