當前位置:歷史故事大全網 - 中學學科 - 學籍管理系統的數據庫編程!!

學籍管理系統的數據庫編程!!

壹.應用實例的分析和開發

詳細說明:我們基於Windows DNA的思想,以學籍管理系統為背景,開發了壹個應用系統。在該系統中,有關教務狀態的事務邏輯由定制的COM組件處理,這些組件由動態網頁通過ASP腳本調用。該系統在開發速度和軟件質量上都優於用ASP腳本代替COM組件的方案。為了說明問題,我們通過壹個定制的組件和ASP腳本的主要代碼簡單介紹壹下本地功能的實現過程。

-在displayscore.asp頁面中接受並識別用戶的查詢請求,並做出不同的查詢處理。當客戶的身份是教師或教務時,可以查詢所有學生的成績;當客戶是學生時,只能查詢學生自己的成績。

-為查詢處理自定義COM組件Score.dll。首先設計了組件的接口,為組件設置了四個屬性:Subj(課程)、$ Term(課程的學期)、Class(查詢班級)和Stu_No(查詢學號);定義兩個方法:RequeryScores和RequeryAllScores,分別處理教師、教務部門和學生的請求,並將查詢結果集返回給用戶。

-下面是實現組件Score.dll的壹些關鍵代碼。由此我們可以看到組件的接口是如何實現的:

選項顯式

Private m_StuNo作為變體

Private m_Subj作為字符串

字符串形式的私有m_Term

字符串形式的私有m_Class

將屬性設置為可寫。

公共屬性Let StuNo(ByVal vNewValue作為變量)

m_StuNo = vNewValue

結束屬性

公共屬性Let Subj(ByVal vNewValue作為變量)

m_Subj = vNewValue

結束屬性

......

學生查詢結果請求處理

公共函數RequeryScores()作為對象

Dim objContext作為MTxAS。對象上下文

Set objContext = GetObjectContext()

創建事務性程序集

Dim ObjConn As ADODB。關系

使用ADO訪問數據庫

Dim ObjRecordset As ADODB。記錄集

Set ObjConn = New ADODB。關系

ObjConn。開“夏”、“仨”,”

Set ObjRecordset = New ADODB。記錄集

將查詢Dim為字符串

根據查詢要求(查詢所有課程,查詢特定學期的所有課程、

查詢指定課程,查詢特定學期的某門課程)進行不同的查詢操作。

If (m_Subj = "all "和m _ Term & lt& gt“所有”)然後

query="select客戶端名稱,客戶端。客戶端_否,課程.主題,

stu_score.score,stu_score.term,sub_type "

查詢=查詢& amp"來自客戶,stu_score,課程"

查詢=查詢& amp“其中,客戶端客戶端編號=斯圖客戶端編號

而stu _ score . subject = courses . subject

和課程。term=stu_score.term

和課程。= ' " & ampm _ Term & amp'

和客戶。Client _ no = ' " & ampm _ StuNo & amp"

如果…就會結束

......

ObjRecordset。打開查詢,ObjConn

進行數據庫查詢

ObjContext。setcomplete

如果事務成功完成,提交事務。

RequeryScoresExit:

Set RequeryScores = ObjRecordset

返回查詢結果集

退出功能

RequeryScoresErr:

設置RequeryScores =無

事務處理失敗。

結束功能

教師教務查詢結果請求處理

公共函數RequeryAllScores()作為對象

......

結束功能

-引用ASP頁面的displayscore.asp中的組件。ASP代碼如下(粗體部分是對組件的調用):

& lt% @ LANGUAGE = " VBSCRIPT " % & gt

& ltHTML & gt

& ltHEAD & gt

& ltMETA NAME = " GENERATOR " Content = " Microsoft

Visual InterDev 1.0 " >

& ltMETA HTTP-EQUIV="Content-Type "

content = " text/html;charset=gb_2312-80 " >

& ltTITLE & gt給老師看& lt/TITLE & gt;

& lt/HEAD & gt;

& ltBODY background="images/bk。GIF " & gt

& lt%

dim對象結果

set objResult=Server。CreateObject("顯示。分數”)

模糊術語、主題

Term=Cstr(請求。形式(“期限”))

Subject=Cstr(請求。表單(“主題”))

objResult.term =請求。形式(“期限”)

objResult。Subj =請求表單("主題")

objresult.class =請求。表單(“類”)

模糊分數

設置分數=objResult。RequeryAllScores

% & gt

以下代碼是顯示處理的結果。

& ltdiv align="center " >& lt中心& gt

......

& lt表格border="0" cellpadding="0 "

cellspacing = " 1 " width = " 100 " >& lttr & gt

& lt%為I = 0到分數。fields . Count-1% & gt;

& lttd bgcolor="#004080 " >。

& ltstrong & gt& ltfont color = " # FFFFFF " & gt& ltsmall & gt

& lt% =分數(I)。Name % & gt& lt/font & gt;& lt/strong & gt;?& lt/TD & gt;

& lt%下壹個

Do While(不是分數。EOF)% & gt;

& lt/tr & gt;& lttr & gt

& lt%為I = 0到分數。fields . Count-1% & gt;

& lttd bgcolor="#ACE8F9 " >。& ltp align="center " >

& lt%=分數(I)。Value % & gt& lt/TD & gt;

& lt%下壹個

分數。MoveNext % & gt& lt/tr & gt;

& lt% Loop % & gt

& lt%分數。關閉

關閉數據庫連接

設定分數=無

set objResult = Nothing % & gt

釋放對象

& lt/table & gt;& lt/center & gt;& lt/div & gt;

& lt/BODY & gt;

& lt/HTML & gt;

可以想象,如果只使用ASP腳本進行業務處理,ASP頁面中的代碼會非常臃腫晦澀。使用組件的方案也比簡單的ASP腳本更快。並且整個查詢處理可以看作壹個事務,以保證數據庫信息的安全性和完整性。在MTS中註冊該組件還可以避免多個用戶訪問該主頁時可能導致的網絡擁塞。在實際應用中,學生和教師具有不同的訪問權限。在學生查詢成績的頁面中,這個組件是可以重用的,只需要調用它不同的接口就可以了。只使用ASP腳本進行業務處理,需要重新編寫類似displayscore.asp的代碼,也比較繁瑣。在開發過程中,不同的開發人員可以盡最大努力同時設計組件和ASP頁面,縮短了軟件開發周期。

-下面兩張圖是老師(教務)查詢結果和顯示查詢結果的頁面:

第二,開發過程中輔助工具的使用

-傳統的軟件工程需求分析和數據庫設計都是由人“手工”完成,缺乏嚴謹性和標準化。在以構件為中心的系統分析和軟件開發過程中,應努力使用有效的計算機輔助工具來滿足快速建模和構件方法的需要,提高分析的質量和準確性。

-有許多輔助工具可用。因為以組件為中心的系統分析過程還保留著傳統軟件工程方法的痕跡,北大青鳥的CASE工具對於傳統軟件工程方法更有效,所以我們采用了這個工具。在數據庫建模方面,我們選擇了SYBASE公司的S-Designer,它可以自動將數據庫的概念模型轉化為物理模型。

-1.使用青鳥案例工具編寫需求分析文檔。

-長期以來,人們已經習慣於“人工”進行需求分析。在對現有系統和用戶需求進行調查後,開發人員需要設計系統的數據流圖(DFD圖),編寫小指令,設計系統的結構圖(SC圖)。但這種分析方法並不嚴謹,由於各種原因,在處理、數據流、文件中可能存在語法定義錯誤;數據流圖的上下層不壹致;數據流圖分解後數據不平衡、文件名重復、文檔不完整等各種問題,影響了我們對用戶需求的分析和理解,阻礙了我們今後的工作。尤其是組件分析不當,後果不堪設想。

青鳥案例工具提供了壹套工具來支持軟件工程中需求分析和軟件設計的傳統結構化方法。工具生成的每個文件都是壹個項目,每個項目包括兩部分:數據流圖和模塊結構圖:

數據流圖部分協助系統分析師完成軟件系統的需求分析,建立目標系統的需求模型,生成正確完整的目標系統描述文檔;同時提供需求文檔的查詢、列表、分割、影響範圍等分析功能,輔助軟件設計人員深入、詳細地分析和理解需求分析的結果,有利於軟件設計。

模塊結構圖在需求分析階段完成後,幫助程序員設計軟件系統,支持模塊的逐層細化,建立系統的軟件架構,最終得到正確完整的軟件設計文檔。同時提供設計文檔的查詢、列表、切片、影響範圍等分析功能,完成對設計成果文檔深入細致的分析和理解,有利於軟件開發和維護。在SC圖中,已經看到了組件的規劃方案,進壹步細化會得到各組件的總體設計方案。

-以教務系統為例,青鳥案例工具生成的DFD圖和SC圖如下圖所示:

-系統1層DFD圖系統0層SC圖

-2.使用S-Designer設計數據庫。

-當系統的詳細設計完成後,下壹步是數據庫設計。數據庫設計在整個軟件工程中起著重要的作用。不合理的數據庫設計,不合理的數據有效存儲,潛在的數據不壹致、不完整或大量冗余,都會降低系統性能,甚至導致系統崩潰。

手工數據庫設計完全取決於設計者的設計水平。設計者首先要根據實際需要建立幾個邏輯上已經存在的數據庫表,並使其滿足第三範式;然後根據它們之間的關系,建立壹個特定的數據庫表來鏈接它們。這是壹件相當繁瑣的事情。數據庫設計者不僅要設計數據庫的邏輯,還要將邏輯模型轉化為物理模型,設計出來的數據庫不壹定滿足第三範式。合理的數據庫表結構決定了訪問數據庫組件接口的設計質量,因此原有的數據庫設計方法不適合以組件對象為中心的軟件設計。

-以教務管理系統為例,S-Designer讓數據庫設計變得簡單易行。設計人員只需根據實際需要設計數據庫的E-R圖即可。S-Designer會將邏輯模型轉化為物理模型,為數據庫表之間的關系創建壹個新表,指明表的主代碼和外部代碼,並自動檢查數據庫表的壹致性、冗余性和完整性,使數據庫表滿足第三範式。

-例子:首先可以設計數據庫表課程和學生的邏輯模型:

-接下來,在課程和客戶之間建立聯系。S-Designer自動生成的物理模型,如下圖所示,為訪問庫組件的界面設計提供了準確的依據。

相信隨著軟件工程的進壹步成熟,將會有更多的計算機輔助工具來幫助軟件開發者構建更加完善的應用系統。很多輔助軟件工具都可以完成類似的任務,選擇哪種輔助工具取決於這些工具的性能和用戶的習慣。

以組件對象為中心的動態Web方法和DNA思想並非深不可測,開發技術也越來越規範。應該說,這種方法更適合客觀信息結構的實際,更貼近人們的思維方式,其技術如行雲流水般自然,非常適合在中小企業的環境中推廣普及。

  • 上一篇:招生工作自我評價五篇:1000字。
  • 下一篇:2014合肥壽春高級中學
  • copyright 2024歷史故事大全網