□文/董 軍
(安徽國(guó)防科技職業(yè)學(xué)院 安徽·六安)
因?yàn)楦鞲咝W(xué)生人數(shù)的增多以及學(xué)生成績(jī)管理工作的復(fù)雜性,人工管理學(xué)生成績(jī)信息的效率越來(lái)越低。這種情況下,學(xué)生成績(jī)管理系統(tǒng)就出現(xiàn)了。
需求分析是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)中重要的一步,在這個(gè)階段要充分地與用戶溝通交流,了解與分析用戶的需求。學(xué)生信息管理系統(tǒng)中涉及的主要人員有學(xué)生、教師、管理人員;主要的部門有教務(wù)處、系部。在需求分析時(shí)可以通過(guò)問(wèn)卷調(diào)查、談話等方式,了解用戶的需求,最終繪制系統(tǒng)的數(shù)據(jù)流程圖。
關(guān)系數(shù)據(jù)庫(kù)中所有的數(shù)據(jù)都存儲(chǔ)在關(guān)系表中,通過(guò)需求分析,我們可以在學(xué)生成績(jī)管理系統(tǒng)中創(chuàng)建以下數(shù)據(jù)表(此處只列舉主要的數(shù)據(jù)表)。(表 1、表 2、表 3、表 4、表 5)
表1 Teacher表結(jié)構(gòu)
表2 student表結(jié)構(gòu)
表3 course表結(jié)構(gòu)
表4 grade表結(jié)構(gòu)
表5 class表結(jié)構(gòu)
索引是提高查詢的主要方法,在圖書管理系統(tǒng)中,因?yàn)閳D書數(shù)量的龐大,所以建立索引是必不可少的。在為表中的主鍵建立索引以后,系統(tǒng)會(huì)自動(dòng)地在主鍵上創(chuàng)建聚集索引。除此之外,我們還可以為一些經(jīng)常查詢的字段上,創(chuàng)建非聚集索引。
索引創(chuàng)建以后會(huì)提高查詢效率,但也會(huì)引起一些問(wèn)題,如降低數(shù)據(jù)更新的速度、索引建后需要維護(hù)。所以,在創(chuàng)建索引時(shí),要綜合考慮其優(yōu)缺點(diǎn)??梢詤⒖家韵略瓌t為表中的列創(chuàng)建查詢:(1)經(jīng)常用于查詢的列;(2)經(jīng)常用于分組和排序的列;(3)在連接中常用到的列。
按照以上原則,我們可以為以下列創(chuàng)建索引 :Stu_Id、Stu_Name、Tea_Id、Tea_Name、speciality_Id、class_Id等。
存儲(chǔ)過(guò)程是T-SQL語(yǔ)句的集合,能夠?qū)崿F(xiàn)特定的功能。使用存儲(chǔ)過(guò)程,可以大大減少網(wǎng)絡(luò)傳輸流量,提高應(yīng)用程序性能,而且由于它只在第一次執(zhí)行時(shí)被優(yōu)化、編譯。因此使用存儲(chǔ)過(guò)程不僅可以極大地降低應(yīng)用程序的實(shí)現(xiàn)難度,而且還可以極大地提高系統(tǒng)的運(yùn)行速度、效率。SQL Server 2005中存儲(chǔ)過(guò)程分為:系統(tǒng)存儲(chǔ)過(guò)程、用戶自定義存儲(chǔ)過(guò)程、擴(kuò)展存儲(chǔ)過(guò)程三種。例如:在該系統(tǒng)中,我們可以創(chuàng)建存儲(chǔ)過(guò)程實(shí)現(xiàn)按照學(xué)生姓名查詢成績(jī)。實(shí)現(xiàn)代碼如下:
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
觸發(fā)器是在執(zhí)行操作語(yǔ)句時(shí)自動(dòng)執(zhí)行的一種存儲(chǔ)過(guò)程。觸發(fā)器可以偵測(cè)到數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)的操作,并自動(dòng)地級(jí)聯(lián)影響到整個(gè)數(shù)據(jù)庫(kù)的操作,從而保證數(shù)據(jù)庫(kù)數(shù)據(jù)的完整性和一致性。例如:在某一個(gè)學(xué)生退學(xué)刪除學(xué)生基本信息以后,那么該學(xué)生相應(yīng)的成績(jī)信息也應(yīng)該被刪除??梢砸韵麓a完成該功能:
CREATE TRIGGER STUDENT_DELETE
ON Student
FOR Delete
As
BEGIN
Delete from grade
Where stu_id=(Select stu_id from deleted)
END
[1]黃存東.數(shù)據(jù)庫(kù)原理及應(yīng)用.中國(guó)水利水電出版社,2011.1.
[2](美)Peter Rob,Carlos Coronel.張瑜,張繼萍等譯.數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)與管理.清華大學(xué)出版社,2005.