□文/董 軍
(安徽國防科技職業學院 安徽·六安)
因為各高校學生人數的增多以及學生成績管理工作的復雜性,人工管理學生成績信息的效率越來越低。這種情況下,學生成績管理系統就出現了。
需求分析是整個數據庫設計中重要的一步,在這個階段要充分地與用戶溝通交流,了解與分析用戶的需求。學生信息管理系統中涉及的主要人員有學生、教師、管理人員;主要的部門有教務處、系部。在需求分析時可以通過問卷調查、談話等方式,了解用戶的需求,最終繪制系統的數據流程圖。
關系數據庫中所有的數據都存儲在關系表中,通過需求分析,我們可以在學生成績管理系統中創建以下數據表(此處只列舉主要的數據表)。(表 1、表 2、表 3、表 4、表 5)

表1 Teacher表結構

表2 student表結構

表3 course表結構

表4 grade表結構

表5 class表結構
索引是提高查詢的主要方法,在圖書管理系統中,因為圖書數量的龐大,所以建立索引是必不可少的。在為表中的主鍵建立索引以后,系統會自動地在主鍵上創建聚集索引。除此之外,我們還可以為一些經常查詢的字段上,創建非聚集索引。
索引創建以后會提高查詢效率,但也會引起一些問題,如降低數據更新的速度、索引建后需要維護。所以,在創建索引時,要綜合考慮其優缺點。可以參考以下原則為表中的列創建查詢:(1)經常用于查詢的列;(2)經常用于分組和排序的列;(3)在連接中常用到的列。
按照以上原則,我們可以為以下列創建索引 :Stu_Id、Stu_Name、Tea_Id、Tea_Name、speciality_Id、class_Id等。
存儲過程是T-SQL語句的集合,能夠實現特定的功能。使用存儲過程,可以大大減少網絡傳輸流量,提高應用程序性能,而且由于它只在第一次執行時被優化、編譯。因此使用存儲過程不僅可以極大地降低應用程序的實現難度,而且還可以極大地提高系統的運行速度、效率。SQL Server 2005中存儲過程分為:系統存儲過程、用戶自定義存儲過程、擴展存儲過程三種。例如:在該系統中,我們可以創建存儲過程實現按照學生姓名查詢成績。實現代碼如下:
CREATE PROCEDURE grade_by_name
@name char(10)
AS
BEGIN
SELECT*FROM grade
WHERE Stu_Id=(SELECT Stu_Id FROM STU
DENT WHERE Stu_Name=@name)
END
觸發器是在執行操作語句時自動執行的一種存儲過程。觸發器可以偵測到數據庫內數據的操作,并自動地級聯影響到整個數據庫的操作,從而保證數據庫數據的完整性和一致性。例如:在某一個學生退學刪除學生基本信息以后,那么該學生相應的成績信息也應該被刪除。可以以下代碼完成該功能:
CREATE TRIGGER STUDENT_DELETE
ON Student
FOR Delete
As
BEGIN
Delete from grade
Where stu_id=(Select stu_id from deleted)
END
[1]黃存東.數據庫原理及應用.中國水利水電出版社,2011.1.
[2](美)Peter Rob,Carlos Coronel.張瑜,張繼萍等譯.數據庫系統設計、實現與管理.清華大學出版社,2005.