Ⅰ 資料庫邏輯設計~~~急求~~ER圖轉換成關系模型(學生選課系統)
這是用powerDesigner 畫的,蠢核你可慶喊以參考一下譽檔野
Ⅱ 假設學生的選課系統包含如下關系:Students(Sno,Sname,Gender,Enrollyear,SP
Students和SC表做自然連接,其結果再和Courses表做自然連接
然後對自然連接後的結果做選擇操作嫌迅,選擇Speciality欄位值為芹返此"SE"的數據
最後做投影操作,只留下Sname和Cname兩個欄位
SQL如世改下,都快忘了這東西了,回顧不易,望採納
SELECT
Students.Sname,
Courses.Cname
FROM
Students
JOIN SC ON Students.Sno = SC.Sno
JOIN Courses ON SC.Cno = Courses.Cno
WHERE
Students.Speciality = "SE"
Ⅲ 資料庫關系模式有哪些類型
在關系資料庫中有型和值兩種類型結構。關系模式是型,關系是值,關系模式是對關系的描述。
描述一個關系需要從以下兩個方面來定義:第一方面,關系實質上是一個二維表,表的每一行為一個元組,每一列為一個屬性。一個元組就是該關系所涉及的屬性集的笛卡兒積的一個元素。關系是元組的集合,因此關系模式必須指出這個元組集合的結構,即它由哪些屬性構成,這些屬性來自哪些域,以及屬性與域之間的映象關系。
第二方面,一個關系通常是由賦予它的元組語義來確定的。元組語義實質上是一個n目謂詞(n是屬性集中屬性的個數)。凡使該n目謂詞為真的笛卡兒積中的元素(或者說凡符合元組語義的那部分元素)的全體就構成了該關系模式的關系。
1.3.1關系資料庫基本概念關系數據中,關系模式涉及眾多概念、術語,初學者對這方面不容易把握與理解,以下用通俗易懂的語言來對這些概念及術語作簡單的介紹。
1.關系關系(Relation)是指資料庫中實體的信息,也就是資料庫中二維表的數據。一個關系就是一個資料庫表的值,表中的內容是對應關系模式在某個時刻的值,稱為一個關系。例如,關系A表示資料庫有一張名字為A的數據表所記錄的所有數據。關系資料庫中每一個關系都具有以下六方面的性質:((1)列是同質的。即每一列中的分量為同一類型的數據,來自同一個域。
(2)不同的列可出自同一個域,稱其中的每列為一個屬性,不同的屬性要給予不同的屬性名。
(3)列的順序無所謂。即列的次序可以任意交換。
(4)任意兩個元組不能完全相同。
(5)行的順序無所謂。即行的次序可以任意交換。
(6)分量必須取原子值。即每一個分量都必須是不可分的資料庫屬性。
2.模式模式(Schema)是資料庫中全體數據的邏輯結構和特徵的描述,是所有用戶的公共數據視圖,也稱邏輯模式。有以下幾方面性質:((1)一個資料庫只有一個模式。
(2)模式是數據在邏輯級上的視圖。
(3)以某一種數據模型為基礎。
定義模式時不僅要定義數據的邏輯結構,包括數據項的構成、名字、類型、取值范圍等,而且要定義與數據有關的安全性、完整性要求,定義這些數據之間的聯系。
3.關系模式關系模式(RelationSchema)描述的是與關系相對應的二維表的表結構,即關系中包含哪些屬性,屬性來自哪些域,以及與域之間的映象關系。
關系模式與關系的區別:((1)關系模式描述了關系數據結構和語義,是關系的型。而關系是一個數據集合,是關系模式的值,是關系模式的一個實例。
(2)關系實際上就是關系模式在某一時刻的狀態或內容。關系模式是靜態的、穩定的,而關系是動態的、隨時間不斷變化的,因為資料庫操作會不斷地更新資料庫中的數據。
4.元組元組(Tuple)是關系資料庫中的基本概念,一個關系表中的每行就是一個元組。也就是說資料庫表中的每條記錄都是一個元組,表結構的每列就是一個屬性,在二維表裡,元組也稱為記錄。元組可表示一個關系或關系之間的聯系。
一般情況下,一個關系數據表中的每條記錄均有一個唯一的編號(記錄號),這個編號也叫元組號。
5.碼碼(Key)是關系資料庫系統中的基本概念。所謂碼,就是能唯一標識實體的屬性集,是整個屬性集,而不是單個屬性。在關系資料庫中,碼包括多種類型,如超碼、候選碼和主碼。
((1)超碼(SuperKey)。超碼是一個或多個屬性的集合,這些屬性可以在一個實體集中唯一地標識一個實體。如果K是一個超碼,那麼K的任意超集也是超碼,也就是說如果K是超碼,那麼所有包含K的集合也是超碼。例如,學生是一個實體,則學生的集合是一個實體集,而超碼用來在學生的集合中區分不同的學生。假設學生(實體)具有多個屬性:學號,身份證號,姓名,性別。因為通過學號可以找到唯一一個學生,所以{學號}是一個超碼,同理{學號,身份證號}、{學號,身份證號,姓名}、{學號,身份證號,姓名,性別}、{身份證號}、{身份證號,姓名}、{身份證號,姓名,性別}也是超碼。在這里,因為不同的學生可能擁有相同的姓名,所以姓名不可以區別一個學生,即{姓名}不是一個超碼,{性別}、{姓名,性別}也不是。
(2)候選碼(CandidateKey)。候選碼是可以唯一標識一個元組的最少的屬性集合。候選碼是從超碼中選出的,因此候選碼也是一個或多個屬性的集合。因為超碼的范圍太廣,很多是無用的,所以候選碼是最小超碼,它們的任意真子集都不能成為超碼。例如,如果K是超碼,那麼所有包含K的集合都不能是候選碼;如果K,J都不是超碼,那麼K和J組成的集合{K,J}有可能是候選碼。
雖然超碼可以唯一標識一個實體,但是可能大多數超碼中含有多餘的屬性,所以需要候選碼。
例如學生表,學生(學號,姓名,年齡,性別,專業),其中的學號是可以唯一標識一個元組,所以學號可以作為候選碼。既然學號都可以作候選碼,那麼學號和姓名這兩個屬性的組合就可以唯一區別一個元組。此時的學號可以成為碼,學號和姓名的組合也可以成為碼,但是學號和姓名的組合不能成為候選碼,因為即使去掉姓名屬性,剩下的學號屬性也完全可以唯一地標識一個元組。也就是說,候選碼中的所有屬性都是必需的,缺少任何一個屬性,都不能唯一標識一個元組。
(3)主碼(PrimaryKey)。主碼是從多個候選碼中任意選出一個作為主鍵,這個被選中的候選碼就稱為主碼。如果候選碼只有一個,那麼候選碼就是主碼。雖然說主碼的選擇是比較隨意的,但在實際開發中還是需要一定的經驗,不然開發出來的系統會出現問題。一般來說,主碼都應該選擇那些從不或者極少變化的屬性。
例如,在一個職工實體中,職工(職工號,姓名,入職時間,部門,崗位,工資,職級,工齡,電話),職工號可以用來唯一確定實體中的一個元組,所以職工號是一個候選碼。如果實體屬性——姓名、入職時間、部門三者組合也能唯一地確定一個元組,則(姓名,入職時間,部門)也是一個候選碼。在上述兩個候選碼中任選一個均可作為職工實體的主碼,一般來說直接選擇職工號作為實體的主碼是最為簡單方便的。
1.3.2關系模式的定義關系是資料庫二維表中的數據記錄,關系模式是資料庫二維表的表結構,關系是動態的,關系模式是靜態的。
關系模式可由六個元素來描述,分別是R、U、D、dom、I、F。其中,R為關系的名稱;
U為組成該關系的屬性名的集合;D為U集合中屬性的域集合;dom為屬性集U向域集D的映射;I為完整約束集合;F為屬性間數據的依賴關系集合。
一個關系模式通常表示為R(U,D,dom,I,F),也可以忽略其他元素,直接簡化為R(U)或R(A1,A2,A3,…,An),其中A1,A2,A3,…,An為屬性名。
例如,在一個選課模塊中,包含「學生」「課程」「選修」等關系實體。「學生」實體的屬性有SNO(學號)、SNAME(姓名)、AGE(年齡)、SEX(性別)、SDEPT(系部),其中「學號」為主鍵;「課程」實體的屬性有CNO(課程號)、CNAME(課程名稱)、CDEPT(系部)、TNAME(教師),其中「課程號」為主鍵;「選修」實體的屬性有GRADE(成績)、SNO(學號)、CNO(課程號),其中「學號」和「課程號」為聯合主鍵。學生和課程之間是多對多的關聯關系,即一個學生可以同時選修多門課程,一門課程也可以同時被多個學生選修。這種多對多的關聯關系可以通過「選修」關系實體作為中間橋接實體,變成兩個一對多的實體關聯關系,如圖所示。
圖學生選課實體
從圖的實體關系圖中可以得到選課模塊的實體關系模式集——學生關系、課程關系、選修關系,具體關系模式如下:學生關系模式Student(SNO,SNAME,AGE,SEX,SDEPT);
課程關系模式Course(CNO,CNAME,CDEPT,TNAME);
選修關系模式StudentCourse(SNO,CNO,GRADE)。
對以上定義的三個關系模式實例化,插入初始化數據後,可得到學生、課程、選修三個關系的實例,如圖所示。圖中矩形框圈住部分為選課模塊中的關系模式(表結構);橢圓框圈住部分為選課模塊中的關系(數據)。整個選課模塊的表環境由關系模式與關系兩部分共同組成,缺一不可。關系模式的分解標准關系模式的規范化過程實際上就是關系模式的「分解」過程,即把邏輯上獨立的信息放在獨立的關系模式中。分解是解決數據冗餘的主要方法,也是規范化的一條原則——關系模式有冗餘問題就要分解。
資料庫設計者在進行關系資料庫設計時,應參照模式規范化理論,盡可能使資料庫模式保持高的標准。一般盡量把關系資料庫設計成巴斯−科德範式(BCNF)的模式集,如果設計成巴斯−科德範式(BCNF)模式集時達不到保持函數依賴的標准,那麼只能降低要求,設計成第三範式(3NF)的模式集,以達到保持函數依賴和無損分解的基本要求。
學生、課程、選修三個關系的實例
1.分解的定義一個關系模式可以分解成眾多子關系模式,分解方式不同,得到的子關系模式也不同。
關系模式的分解是指把某一個關系模式按照某一種方式進行分解得到的所有子關系模式。
如關系模式R按照某一種方式分解,可以得到一個關系集ρ={R1
函數依賴關系集F=F1∪F2∪…∪Fn,其中F1,F2,…,Fn是F在U1,U2,…,Un上的投影。
2.分解的標准把低級的關系模式分解成高級的關系模式的方法不是唯一的,只要能夠保證分解後的關系模式與原關系模式等價,就是一個完整、標準的分解方法。關系模式的標准分解方法應同時達到以下兩方面的要求:((1)分解具有無損連接性。
(2)分解要保持函數依賴性。
具有無損連接性的分解保證信息不會丟失,但無損連接不一定能解決插入異常、刪除異常、修改復雜、數據冗餘等問題,如要解決這些問題,則要考慮更高的關系數據範式理論原則。
Ⅳ 高校選課系統
1.引言
目前,我國的高等教育事業蓬勃發展,高校的規模不斷擴大,同時,高校的教學改革也在全面推行,學分制在各高校全面啟動[1,2]。學分制——允許學生在計劃的指導下,根據自己的條件、能力、志趣,有選擇地支配自己的學習[3]。因此,學生的選課就成為推行學分制的重要管理任務。以往的選課均是在計劃模式下進行:每位教師將所開的課程名稱,個人簡介,課程限選人數,限選專業等信息交給教務處,教務處再將這些信息統一成冊,分發給各個班級班長,由班長將本班的選課情況統計並返回教務處。這是一個相當長的周期,並且耗費大量的人力、物力,對選擇結果沒有控制。就燕山大學電氣工程學院的情況,經常會出現某一門課程限選人數為200人,而實際選課人數超過300人,像這樣的情況傳統選課模式根本無法解決。針對這些問題,提出一種基於WEB的選課系統,該系統將課程的基本信息錄入之後,即可由學生選課,受限制專業的學生將無法選擇該課程,同樣,選課按照先後順序,超過限制的人數,也不能選擇該課程。該系統在燕山大學電氣工程學院使用之後,取得了良好的效果。
2. 選課系統設計
2.1 選課系統功能設計
選課系統功能包括兩部分,課程管理部分與學生選課部分,其結構功能圖如圖1所示:
圖1 選課系統功能圖
2.2 選課系統結構
圖2 系統結構圖
系統採用B/W/D三層結構[4],即前端客戶機瀏覽器,中間為Web伺服器,後台為SQL資料庫。系統機構如圖2所示:
第一層為終端客戶層,客戶機為校園網上的任何一台計算機,沒有特殊要求,只需具有網路瀏覽器即可。學生通過客戶機上的瀏覽器查看相關的選課信息,並進行選課操作,通過TCP/IP協議將操作要求傳給伺服器,伺服器對操作要求進行處理,並將處理結果通過網頁告知客戶機,完成一次操作交互。
第二層為Web伺服器層,操作系統安裝Windows 2000 server與IIS,利用IIS將選課軟體發布,實際運行時可以選擇校園網內的伺服器,或者教務部門的伺服器,以利於網路流量的分配與系統的維護。Web伺服器利用ASP技術實現伺服器上資料庫中數據信息的動態使用,利用Vbscript、javaScript和ActiveX控制項生成客戶端的動態頁面,起到客戶端跡頌與資料庫的介面作用。
第三層為資料庫伺服器,資料庫可以與安裝在Web伺服器上,也可設立單獨的伺服器存放數據,由具體情況而定。考慮到系統擴展與安全方面的問題,資料庫選擇為SQL 2000資料庫。它支持OLE技術,通過ADO控制項方式,答州猛可以很容易對他進行操作。
資料庫包括四個表,見表1所示。
表1 數據表結構
數據表名 數據內容 字 段 關鍵字
Jwkuser 管理員信息 姓名,密碼 姓名
Xuanxiuke 課程信息 課程編號,課程名稱,授課時間,授課教師,學時,學分,教材,可選專業,限選人數,人數下限,課程簡介,先修課程,當前人數,出版社 課程編號
Studeng_user 學生信息 學號,姓名,密碼,班級,專業 學號
Stu_xuanke 選課結果 學號,課程編號,完成,進行,學分,選課時間, 學號+課程編號
3. 選課系統實現
3.1 系統應用背景
本系統應用在燕山大學校園網上,校園網上共有15個IP段,共計3700多終端,每一屆學生都超過4000人,選課時可能會發生網路流量的劇增,所以將系統放置於學校專門的伺服器上,保證網路帶寬,提高系統的並發處理能力。經實際驗證,選課過程開始就出現了網路流量高峰,選課系統未出現異常情況,圓滿地完成了選課測試。
3.2 選課系統功能設計
本系統採用兩輪選課的方法,選課按照學生提交信息的時間嚴格排序,即asp將用戶信息以表單的方式傳給伺服器的時間排序,清橋超過限選人數時,則返回選課失敗的信息,提示用戶重新選擇其它課程。對於某些課程選課的學生沒有超過人數下限時,將取消本門課程,並公布選這門課程的學生名單,通知其進入二次選課。
本系統採用Dream weaver MX為平台編寫相應的ASP、Html、CSS、Inc等文件,其訪問關系如圖3所示,用戶首先通過校園網上其他頁面的鏈接進入本系統的主界面,主界面上包括學生入口與管理員入口。管理員可以將自己的用戶名、口令輸入並提交表單進行驗證。驗證通過則進入課程信息管理頁,否則進入警告頁面,提示用戶非法。為提高系統的安全性,防止密碼的暴力破解,系統提供5次機會,5次輸入錯誤,則自動鎖定管理員入口,並將該用戶IP、時間等信息記錄。課程信息管理頁可以完成六項功能:
1. 學生管理:可以添加、刪除、修改學生的基本信息。
2. 添加課程:添加一門課程以供選擇
3. 刪除課程:刪除一門淘汰的課程
4. 修改課程:修改課程的基本信息
5. 查詢結果:按照學生的學號查詢該生的選課情況、學分情況。按照課程名稱查詢該課程的選課人數,具體的學生名單,並能完成列印功能。列出所有課程的選課情況。
6. 退出:退出登陸,注銷自己的Session。
學生用戶可以通過主頁面上的學生入口進入,將自己學號、口令輸入並提交表單進行驗證。同樣驗證具有和管理員一樣的保護措施。驗證通過後可以進入學生信息管理頁,可以完成如下工作:
圖3 主要頁面關系圖
1. 基本信息瀏覽:此處信息只供瀏覽,如有錯誤,需要向管理員提出申請,由管理員核實後在管理頁面進行修改。
2. 密碼修改:完成用戶密碼的修改,以保證用戶賬戶的安全性。
3. 網上選課:進行課程的選擇,刪除,查看等操作
4. 學分查詢:查看該用戶已經完成的學分,正在進行的學分,和尚需完成的學分。
5. 退出:退出登陸,注銷用戶的session,保證用戶信息不被他人盜用。
3.3選課系統的安全性設計
由於該系統涉及到學校的管理,數據的安全性尤為重要,本系統設計時對安全性考慮的非常周全。
⑴伺服器只能由專門的網路維護人員操作。
⑵系統採用SQL資料庫由專門的數據管理員管理,而非系統管理員,即網路維護人員將無法查閱資料庫的數據。
⑶系統採用OLE DB的方式調用資料庫,具有更快的數據處理能力,並可方便的進行移植。對關鍵的資料庫操作指令,由vb生成的dll庫實現,並且對asp源代碼進行了加密,使得網路維護人員無法通過查看asp源代碼來獲得資料庫的管理權。
⑷所有用戶,包括學生用戶與管理員用戶,通過Web操作時,都有身份驗證,驗證通過後,都有自己的session,直到退出登陸,並且,驗證出錯的次數有限,防止惡意的密碼破解。
這樣,通過四方面的安全措施,保證了數據的萬無一失。在實際運行的兩年共四次選課過程中,未出現任何數據被破壞或被修改的現象。
4.結論
選課工作將成為高校教務管理的一個主要任務,改變原有的人工選課方式,採用網路選課勢在必行。本文針對燕山大學的具體情況,設計了基於ASP與SQL資料庫的選課系統,在使用的兩年時間里,未出現安全漏洞及網路癱瘓問題,圓滿地完成了選課任務,取得了良好的效果。
Ⅳ 學生課程成績三者關系圖
一 學生知識現狀的分析怎麼寫
學生知識現狀分析
第一單元:圖形的變換
學生能認識軸對稱圖形,理解圖形成軸對稱的特徵和性質,能在方格紙上畫出一個圖形的軸對稱圖形。學生進一步認識了圖形的旋轉,探索圖形旋轉的特徵和性質,能在方格紙上把簡單圖形旋轉90°。初步能運用對稱、平移和旋轉的方法在方格紙上設計圖案。
部分學生在方格紙上畫出連續多次旋轉後圖形,容易出現錯誤。
第二單元:因數與倍數
學生掌握了因數、倍數、質數、合數等基本概念,知道因數與倍數等概念之間的聯系和區別。掌握了2、3、5 的倍數的特徵。
少數學生混淆了因數與倍數、質數與合數等概念;雖然理解並掌握了2、3、5的倍數的特徵,但在綜合運用情況較差。
第三單元:長方體與正方體
學生認識了長方體和正方體的特徵以及它們的展開圖,了解體積(容積)的意義及體積和容積單位,會進行單位間的換算。感受了每個單位的實際意義。掌握了長方體、正方體的棱長和以及表面積、體積的計算方法,能運用所學知識解決一些簡單的實際問題。
少數學生沒有亂運理解表面積、體積等公式的算理,因此實際運用中不能准確使用公式進行計算;還有部分學生對某些實際生活中的特例(如:粉刷教室、游泳池貼瓷磚等)不注意觀察實際生活現象,不能正確解題。
第四單元:分數的意義和性質橘陸
學生理解了分數的意義,明確了分數與除法的關系;認識了真分數和假分數,知道了帶分數是假分數的另一種書寫形式,能把假分數化成帶分數或者整數;理解掌握了分數的基本性質,會比較分數的大小;理解了公因圓陪頃數與最大公因數、公倍數與最小公倍數,能找出兩個數的最大公因數與最小公倍數,能比較熟練的進行通分和約分;會進行分數與小數的互化。
很多學生「量」、「率」不分;通分時找不到最小公倍數,導致在計算分數加減法時增加無謂的約分步驟;部分學生約分時沒有約成最簡分數; 部分學生不能靈活運用分數的基本性質解決實際問題。
第五單元:分數的加法和減法
理解了分數加減法的算理,掌握分數加減法的計算方法,並能正確地計算出結果。理解整數加法的運算定律對分數加法仍然適用,並會運用這些運算定律進行一些分數
二 小數與分數的關系圖
分數肯定可以化成小數,除得盡的可化成有限小數,除不盡的可化成無限循環小數;
小數不一定可轉化為分數,小數包括有限小數和無限小數,而無限小數又可分為無限循環小數和無限不循環小數,有限小數和無限循環小數是有理數,可以轉化為分數,無限不循環小數是無理數,不能轉化為分數。
正常情況下,不會用圖來表示兩者之間的關系,雖然小數比分數包含的范圍廣,但兩者畢竟是數的分類中的不同類別,不會說成小數包含分數。
三 已知成績關系如下圖所示。 查詢結果中包含的元組數目是
B
因為分數大於60的只有:
S1 C1 80
S1 C2 75
S3 C3 90
在DISTINCT 學號後只有S1,S3,執行COUNT 後就是2
四 分別用( ),()和()三個分數表示下圖中的陰影部分,這三個分數之間有什麼關系
4/8 2/4 1/2
~希望對你有幫助,請及時點擊【採納為滿意回答】按鈕~
~手機提問的朋友在客戶端右上角評價點【滿意】即可~
~你的採納是我前進的動力~~
五 求學生選課系統的ER圖
學工部:
學生基本情況(學號、姓名、性別、班級、班主任、照片、入學年份)
教務處:
選課情況(學號、姓名、班級、課程名稱、任課老師、學分、成績、學期)
教師:
成績情況(學號、姓名、班級、課程名稱、成績、班平均分、最高分、最低分、不及格人數)
學生:
綜合信息(學號、姓名、班級、已修課程門數、總學分、平均成績、每門課成績、不及格門數)
六 下列各圖用分數表示圖中陰影部分與整體的關系,正確的個數有() A.1個 B.2個 C.3個 D.4
圖一,此正方形被平均分成4份,陰影部分為1份,則陰影部分佔整個圖形的 1 4 ;
圖二,此長方形被平均分成10份,陰影部分為7份,則陰影部分佔整個圖形的 7 10 ;
圖三,此圓被分成5份,陰影部分為2份,但不是平均分,所以陰影部分佔整個圖形的 2 5 是錯誤的;
圖四,圖中的三個三角形被平均分成6份,陰影部分為3份,則陰影部分佔這三個三角形的 3 6 即 1 2 .
即圖一、圖二用分數表示的陰影部分與整體的關系是正確的.
故選:B.
七 數學6年級填空(根據比和除法、分數的關系完成表格)有圖!
名稱 聯系
分數 分子 分母 分數值
除法專 被除數 除數 商屬
八 試卷與成績表什麼關系 類圖
成績表是對成績的匯總,試卷是成績的載體,所以成績表對試卷是多對一的關系,成績表是」多方「,試卷是「一方」,表的關聯關系就是在多方加外鍵,類的關聯關系在一方的對象中加個多方的對象
九 1要反映出六二班期末考試成績的情況 2要清楚反應全校人數與各年級之間的關系,應繪制什麼統計圖
第一個用條形,第二個用扇形
你們剛剛做啊?
我們課比你們快哦~
十 如下圖,二級access,要怎麼建立關系,怎麼才能讓成績的那欄有內容,我自己打他說重復,項目過多
先說一下,「成績抄」表的主襲鍵應當是:學號和課程號,因為只有這2個欄位做為復合主鍵才能唯一確定某個人某科的成績。「成績單」這個表無存在的必要性,它的內容可以通過「學生」、「課程」、「成績」這3個表通過查詢設計而得出。
它們的關系如下:
您要的結果應當是這樣的吧。
Ⅵ 資料庫database一對多關系中的問題
拆分關系,增加一個表睜櫻則,使之符合範式。
比如做學生選課系統,多個學生選多門課,這是多對多關系。
這樣可以寫成三個表:
學生表(學號,姓名)
課程悉棚表(課頌閉程號,課程名)
選課表(學號,課程號)
通過選課表,將學生和課程聯系起來了
Ⅶ SQL作業,求大神幫忙
過了沒,沒過我幫你寫!
Ⅷ java學生選課系統
學生選課系統的設計與實現摘要本文以一個具體的應用系統—學生選掘枯課信息系統的設計與實現判戚洞來說明如何利用UML和EJB組件來設計和構建分布式軟體系統平台。UML和組件技術結合使用能提高開發效率,增加系統的易維護性。關鍵詞UML;EJB;實例1引言現在信息管理系統軟體的開發,採用組件技術可以提高效率,信息管理系統的仔鎮分析設計也採用UML來進行。兩者的結合可以極大的提高開發效率,保證系統開發的易維護性。本文用UML這種設計方法和EJB這種組件技術來設計和實現一個系統。2系統分析本系統設計為學生通過網頁登陸學校網站,進行選課。下面用用例圖來說明該系統要實現的功能。2.1用例圖2.2系統總體結構圖本系統採用三層體系結構,分為表示層,事務處理層,數據存儲層。三層結構層次清晰,易維護。圖3類圖學生選課系統涉及到三個實體類學生,課程,以及學生和課程之間的一個一對多關系類。對每一個類,映射到一張表。學生類和課程類用Container-ManagedEntityBean實現,學生和課程間的一對多關系類,用Bean-ManagedPersistence的EntityBean實現。再設計一個SessionBean對學生選課過程進行控制。頁面顯示部分用JSP實現。3資料庫設計學生表對應學生實體,詳細內容如下表1學生表關聯表對應學生和課程間的一對多關系,詳細內容如下研究開發4實現4.1SessionBean的設計4.1.1定義HomeInterface4.1.2定義{//-----//這是一個基於SessionBean的Remote介面,這個SessionBean是基於//Stateful的SessionBean,用來對特定學生選課的登記過程進行操作//-----------------------------publicStringgetStudentName()throwsRemoteException;publicvoidenroll(ArrayListcourseItems)throwsRemoteExcep-tion;publicvoinenroll()throwsRemoteException;publicvoiddeleteStudent()throwsFinderException,RemoteEx-ception;publicvoiddeleteCourse(Stringcourse_id)throwsRemoteExcep-tion;}4.1.3Client獲取HomeInterface和RemoteInterface的參考方式,我們使用JNDI機制來獲取Home介面和Remote介面的對象參考。4.1.4定義回調方法4.1.5實現遠程資料庫的連接使用JNDI機制,通過資料庫的JNDI名稱javacomp/env/jdbc/StudentCourseDB來連接後台資料庫。4.1.6SessionBean方法實現//定義變數publicStudentHomesHome;publicEnrollHomeeHome;publicStringstudent_id;publicStringname;//回調方法實現publicvoidejbCreate(Stringstudent_id)throwsCreateException{try{Studentstudent=sHome.findByPrimaryKey(student_id);name=student.getName();}catch(ObjectNotFoundExceptione){thrownewCreateException(Student+student_id+notfoundinStudentTBL!);}catch(Exceptione){thrownewEJBException(e.getMessage());}this.student_id=student_id;}//商業方法實現publicvoidenroll(ArrayListcourseItems){Enrollenroll=null;try{enroll=eHome.findByPrimaryKey(student_id);}catch(Exceptione){}try{if(enroll!=null){enroll.replaceCourseItems(courseItems);}else{eHome.create(student_id,courseItems);}}catch(Exceptione){thrownewEJBException(e.getMessage());}}publicvoinenroll(){try{Enrollenroll=eHome.findByPrimaryKey(student_id);enroll.remove();}catch(Exceptione){thrownewEJBException(e.getMessage());}}//涉及到對兩張表的刪除。publicvoiddeleteStudent()throwsFinderException{try{Enrollenroll=eHome.findByPrimaryKey(student_id);Studentstudent=sHome.findByPrimaryKey(student_id);enroll.remove();student.remove();}catch(Exceptione){thrownewEJBException(e.getMessage());}}publicvoiddeleteCourse(Stringcourse_id){PreparedStatementps=null;try{getConnection();StringdeleteStatement=deletefromEnrollTBL+wherestudent_id=?andcourse_id=?;ps=con.prepareStatement(deleteStatement);ps.setString(1,student_id);ps.setString(2,course_id);ps.executeUpdate();}catch(Exceptione){thrownewEJBException(e.getMessage());}finally{try{ps.close();con.close();}catch(Exceptione){thrownewEJBException(e.getMessage());}}}4.2EntityBean的設計我們以關聯表(EnrollTBL)對應的實體Bean為例進行說明,它涉及到兩個表的一對多關系。4.2.1定義Home介面4.2.2定義{//---------------//這是一個基於EntityBean的Remote介面,這個EntityBean是基於//Bean-ManagedPersistence的EntityBean,用來對EnrollTBL表進行操作//--------------------------publicArrayListgetCourseItems()throwsRemoteException;publicStringgetStudent_id()throwsRemoteException;publicvoidreplaceCourseItems(ArrayListcourseItems)throwsRemoteException;}4.2.3變數定義publicStringstudent_id;publicArrayListcourseItems;4.2.4增加數據記錄實現publicStringejbCreate(Stringstudent_id,ArrayListcourseItems)throwsCreateException{if(courseItems==null||courseItems.size()==0){thrownewCreateException(ejbCreateexception!);}this.student_id=student_id;try{enroll(courseItems);}catch(Exceptione){thrownewEJBException(ejbCreateexception+e.getMessage());}this.courseItems=courseItems;returnstudent_id;}//根據學生ID,插入課程項。privatevoidenroll(ArrayListcourseItems)throwsSQLException{StringinsertStatement=insertintoEnrollTBLvalues(?,?);PreparedStatementps=con.prepareStatement(insertStatement);try{//------------//依次將所有的課程項目插入EnrollTBL表//------------------ps.setString(1,this.student_id);for(inti=0;i<courseItems.size();i++){Stringcourse_id=(String)courseItems.get(i);ps.setString(2,course_id);ps.executeUpdate();}}finally{ps.close();}}//根據學生ID,刪除課程項privatevoinenroll()throwsSQLException{StringdeleteStatement=deletefromEnrollTBL+wherestudent_id=?;PreparedStatementps=con.prepareStatement(deleteStatement);try{ps.setString(1,student_id);ps.executeUpdate();}finally{ps.close();}}5部署和運行5.1部署程序5.1.1部署StudentEntityBean,設置事務屬性,生成部署文件。5.1.2同樣,再部署其他三個EJB組件EnrollSessionBean,CourseEntityBean,EnrollEntityBean。5.1.3部署web組件5.1.4部署整個應用程序5.2運行啟動J2EE伺服器,啟動資料庫伺服器,打開瀏覽器。學生登錄,即可選課。6結論組件技術使得復雜的多層結構應用系統開發變得容易。採用組件技術能提高開發人員的效率,降低軟體的開發和維護成本,提高軟體的質量,控制所構建系統的復雜性。UML設計方法的使用能提高軟體設計的效率和保證設計的規范性。參考文獻[1]CraigLarman.UML和模式應用-面向對象分析與設計導論[M].北京機械工業出版社,2003.10-100.[2]劉特.J2EEEJB應用編程實例[M].北京清華大學出版社,2003.90-150.[3]GeriSchneider.用例分析技術[M].北京機械工業出版社,2003.1-98.
-----------------------------------------------
謝謝請採納:
不能發連接啊,請在網路
搜索『珍惜知識網』點進去就是了[ORDA]