【正文】
如下:數據流:成績考核說明:學生課程進行考核,并對學生成績按類進行記錄數據流來源:成績信息數據流去向:學生5 數據流“成績統(tǒng)計”可描述如下:數據流:成績統(tǒng)計說明:,學生課程進行考核,并把學生成績進行統(tǒng)計數據流來源:成績統(tǒng)計數據流去向:學生6 數據流“成績信息”可描述如下:數據流:成績信息說明:學校根據成績管理對學生進行考核數據流來源:學生管理數據流去向:學生⒎ 數據流“入檔”可描述如下:數據流:入檔說明:學校對學生的所有信息進行存檔,實現(xiàn)統(tǒng)一管理數據流來源:學生管理數據流去向:錄入檔案⒏ 數據流“參加”可描述如下:數據流:參加說明:學校給予學生提供課程考核的管理數據流來源:學生管理數據流去向:成績管理⒐ 數據流“刪除”可描述如下:數據流:刪除說明:對學生的基本信息進行刪除操作數據流來源:學生數據流去向:刪除信息⒑ 數據流“查詢”可描述如下:數據流:查詢說明:對學生的基本信息進行查詢操作數據流來源:學生數據流去向:查詢信息⒒ 數據流“修改”可描述如下:數據流:修改說明:對學生的基本信息進行修改操作數據流來源:學生數據流去向:修改信息⒓ 數據流“學生編號”可描述如下:數據流:學生編號說明:對學生的基本信息進行查詢操作數據流來源:學生信息數據流去向:學生查詢⒔ 數據流“課程編號”可描述如下:數據流:課程編號說明:對學生的基本信息進行查詢操作數據流來源:學生信息數據流去向:學生查詢⒕ 數據流“學生信息”可描述如下:數據流:學生信息說明:將學生結果返回給用戶數據流來源:學生查詢數據流去向:學生四、數據存儲數據存儲是數據結構停留或保存的地方,也是數據流的來源和去向之一。它可以手工文檔或手工憑單,也可以是計算機文檔。本系統(tǒng)中對數據存儲的具體描述如下:1 專業(yè)信息簡述:用來存儲有關學生屬于哪個專業(yè)的信息。輸入數據:專業(yè)信息。輸出數據:專業(yè)信息。2 課程信息簡述:用來存儲學校中所分的各個的基本信息。輸入數據:學校中為每個課程所設置的部門代碼及該代碼對應的名稱。輸出數據:課程信息。3 成績信息簡述:用來存儲學校中每個月各個學校的成績的基本信息。輸入數據:成績信息。輸出數據:成績信息。4系統(tǒng)總體設計本系統(tǒng)在執(zhí)行時,先根據不同的操作人員的需要來進行相應的模塊,然后可以輸入數據或者進行其它的查詢或瀏覽等操作;總體來說,本系統(tǒng)屬于一個權限型管理系統(tǒng)。學生成績管理系統(tǒng)學生信息管理學生成績管理成績錄入成績分布信息錄入信息查詢信息刪除5數據庫設計數據庫技術是信息資源管理最有效的手段,它是指對于一個給定的應用環(huán)境,利用現(xiàn)有的數據庫管理系統(tǒng)構造最優(yōu)的數據庫模式,建立數據庫及其應用系統(tǒng),有效存儲數據,滿足用戶信息要求和處理要求。本系統(tǒng)的數據庫是采用SQL Server 2000設計的。數據庫設計分為6個階段:需求分析階段、概念結構設計階段、邏輯結構設計階段、數據庫物理設計階段、數據庫實施階段、數據庫運行和維護階段。數據庫應用系統(tǒng)經過調試運行后即可投入正式運行。在數據庫系統(tǒng)運行過程中,必須不斷地對其進行評價、調整與修改。設計一個完善的數據庫應用系統(tǒng)不可能一蹴而就,它往往是上述6個階段的不斷反復。將需求分析得到的用戶需求抽象為信息結構即概念模型的過程就是概念結構設計。它是整個數據庫設計的關鍵所在。它是現(xiàn)實世界的一個真實模型,表達自然、直觀,又易于理解。根據學生成績管理的需求分析建立局部和全局ER圖,如下所示。(1)局部E—R設計由在系統(tǒng)中描述學生實體的相關信息有學號,姓名,性別,出生日期,專業(yè),總學分,設計該實體ER圖如圖1所示姓名出生日期總學分學 生學 號性別專業(yè)圖1實體學生局部ER圖由在系統(tǒng)中描述課程實體的相關信息有課程號,課程名,專業(yè)號,開課學期,學時,學分,設計該實體ER圖如圖2所示課程名課程號開課學期學時課程學分圖2實體課程局部ER圖由在系統(tǒng)中描述成績實體的相關信息有學號,學生姓名,課程號,成績,設計該實體ER圖如圖3所示成績課程號成績學號學生姓名圖3實體成績局部ER圖(2)系統(tǒng)全局ER圖如圖8姓名學生專業(yè)總學分出生日期性別選修課程課程號專業(yè)學號學時學分考核成績學號課程號成績專業(yè)學分課程名圖8 全局ER圖根據系統(tǒng)的需要還要全局ER圖向關系模型的轉換,要遵循以下規(guī)則:(1)一個實體轉換為一個關系模型式。實體的屬性就是關系的屬性,實體的鍵就是關系的鍵。如學生實體可以轉換為如下關系模式,其中學號為學生關系鍵。學生(學號,學生姓名,性別,專業(yè),班級,出生日期)(2)一個m:n聯(lián)系轉換為一個關系模式。與該聯(lián)系相連的各實體的鍵以及聯(lián)系本身的屬性均轉換為關系的屬性,而關系的鍵為各實體鍵的組合。如在成績聯(lián)系是一個m:n聯(lián)系,可以將它轉換為如下關系模式,其中學號與課程號為關系的組合鍵。成績(學號,學生姓名,課程號,成績,專業(yè))創(chuàng)建數據庫的過程實際上就是為數據庫設計名稱,設計所占用的存儲空間和存放文件的位置過程等。用戶可以使用企業(yè)管理器創(chuàng)建數據庫,也可以使用TransactSQL語言創(chuàng)建數據庫。分別用兩種方法開發(fā)學生成績管理系統(tǒng)數據庫,其中庫中包含了6個表。1. 使用企業(yè)管理器新建數據庫(1) 啟動SQL Server 企業(yè)管理器,單擊服務器旁的加號(+),其中里邊包含了已有的數據庫。(2) 在“數據庫”文件夾上單擊鼠標的右鍵,選擇“新建數據庫”菜單選項,單擊它,系統(tǒng)會顯示“數據庫屬性”對話框。(3) 選擇“常規(guī)”標簽,在名稱中輸入一個數據庫名為“xscjgl”。(4) 在“數據文件”對話框的數據庫文件部分輸入文件名、位置、初始化大小和信息。(5) 在“事務日志”標簽中的“事務日志文件”對話框部分,輸入文件名、位置及服務日志的初始大小。(6) 單擊“確定”以完成學生成績管理系統(tǒng)(xscjgl)的創(chuàng)建。 2. 使用SQL創(chuàng)建數據庫在SQL中,用于創(chuàng)建數據庫的是CREATE DATABASE語句,要使用大量的選項,并且在查詢分析器中執(zhí)行。其代碼如下:create database xscjglon (name=xscjgl_data,filename = 39。d:\39。,size=10,maxsize=12,filegrowth=10%)log on (name=xscjgl_log,filename = 39。d:\39。,size=1,maxsize=5,filegrowth=1)數據庫表和數據庫創(chuàng)建一樣,也有兩種創(chuàng)建發(fā)法——分別在企業(yè)管理器和查詢分析器里創(chuàng)建。1. 利用企業(yè)管理器創(chuàng)建表。(1) 在新建的“學生成績管理系統(tǒng)”數據庫圖點上單擊鼠標右鍵,選擇“新建”—“表”菜單項。(2) 單擊菜單項便出現(xiàn)表設計器,在表設計器里設置該表的列名、數據類型、長度、是否允許為空、默認值、主鍵。在此系統(tǒng)數據庫中設計了4個表,分別是學生信息表(XSB)、課程表(KCB)、成績表(CJB)、學生成績視圖表tempCJB)具體數據定義和內容設計如下面表1—表12所示。學生信息表(XSB)結構表5 學生信息表(XSB)結構列名數據類型長度是否允許為空默認值說明XHChar6N無主鍵XMChar10N無XBbit N無CSSJdatatime8Y無ZYchar 10Y無ZYFint N無BZvarChar500N無課程表(KCB)結構表7 課程表(KCB)結構列名數據類型長度是否允許為空默認值說明KCHChar6N無主鍵KCMChar10N無KKXQintN無XF intN成績表(CJB)結構表11 成績表(CJ)結構列名數據類型長度是否允許為空默認值說明XHChar10N無主鍵KCMChar10N無主鍵CJChar4N無2. 使用SQL創(chuàng)建表在SQL中,用于創(chuàng)建表的是CREATE DATABASE語句,要使用大量的選項,并且在查詢分析器中執(zhí)行。其代碼如下:創(chuàng)建學生信息表:CREATE TABLE XSB( XH char(6) not null primary key, XM char(10) not null, XB bit, CSSJ datetime, ZY char(10), ZXF int, BZ varchar(500),)Go創(chuàng)建課程表:create table KCB( KCH char(6), KCM char(6), KKXQ int, XF int,)創(chuàng)建成績表:create table CJB( XH char(6), KCM char(6), CJ int,)查詢表:select * from XSBselect * from KCBselect * from CJBselect * from tempCJB3視圖創(chuàng)建學生課程成績表,名字為temCJB,create view temCJBasselect ,from KCBinner join CJB on =inner join XSB on =4存儲過程:CJ_Data,Load_CJ,Write_CJ,TJ_CJ1 xsb單條記錄的insert,update,delete操作 create procedure CJB_Data(@in_xh char(6),@in_kch char(3),@in_cj int)as set nocount on declare @in_count int declare @in_xf tinyint declare @in_cjb_cj int set @in_xf=(select XF from KCB where KCH=@in_kch) set @in_count=( select count(*) from CJB where XH=@in_xh and KCH=@in_kch) set @in_cjb_cj=( select CJ from CJB where XH=@in_xh and KCH=@in_kch) if(@in_count0) /* 學生已選該課程*/ begin delete from CJB where XH=@in_xh and KCH=@in_kch if(@in_cjb_cj60) /* 選課成績及格,增加xsb的總學分*/ begin update XSB set ZXF=ZXF@in_xf where XH=@in_xh end end if (@in_cj!=1) /* 新成績0 ,添加記錄*/ begin insert into CJB values(@in_xh,@in_kch,@in_cj) if(@in_cj60) /* 新成績60 ,改寫總學分*/ begin update XSB set ZXF=ZXF+@in_xf where XH=@in_xh end endgo2 將某專業(yè)所有學生所選某課程的信息添加到tempcjb中 create procedure Load_CJ(@ZY char(12),@KCH varchar(3)) asbegin declare @Stu_XH