數(shù)據(jù)庫課程方案報(bào)告教學(xué)管理系統(tǒng)_第1頁
數(shù)據(jù)庫課程方案報(bào)告教學(xué)管理系統(tǒng)_第2頁
數(shù)據(jù)庫課程方案報(bào)告教學(xué)管理系統(tǒng)_第3頁
數(shù)據(jù)庫課程方案報(bào)告教學(xué)管理系統(tǒng)_第4頁
數(shù)據(jù)庫課程方案報(bào)告教學(xué)管理系統(tǒng)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1、相關(guān)技術(shù)簡(jiǎn)介1.1 RDBM簡(jiǎn)介SQL Server是一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng)它最初是由Microsoft Sybase 和Ashton-Tate 三家公司共同開發(fā)的于1988年推出了第一個(gè) OS/2版本在 Windows NT推出后 Microsoft 與Sybase在SQL Server的開發(fā)上就分道揚(yáng)鑣 了 Microsoft 將SQL Server移植到 Windows NT系統(tǒng)上專注于開發(fā)推廣 SQL Server的 Windows NT版本Sybase則較專注于 SQL Server在UNIX操作系統(tǒng) 上的應(yīng)用在本書中介紹的是 Microsoft SQL Server 以后簡(jiǎn)稱為

2、SQL Server或 MS SQL Server。SQL Server 2000 是 Microsoft 公司推出的 SQL Server數(shù)據(jù)庫管理系統(tǒng)的最 新版本該版本繼承了SQL Server 7.0 版本的優(yōu)點(diǎn)同時(shí)又比它增加了許多更先進(jìn)的功能具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn)可跨越從運(yùn)行 Microsoft Win dows 98的膝上型電腦到運(yùn)行 Microsoft Win dows 2000 的大型多處理器的服務(wù)器等多種平臺(tái)使用。1.2 Eclipse 簡(jiǎn)介Eclipse 是一種可擴(kuò)展的開放源代碼IDE。2001年11月,IBM公司捐出價(jià)值 4,000萬美元的源代碼組

3、建了Eclipse聯(lián)盟,并由該聯(lián)盟負(fù)責(zé)這種工具的后續(xù)開發(fā)。集成開發(fā)環(huán)境(IDE經(jīng)常將其應(yīng)用范圍限定在“開發(fā)、構(gòu)建和調(diào)試”的周 期之中。為了幫助集成開發(fā)環(huán)境(IDE克服目前的局限性,業(yè)界廠商合作創(chuàng)建了 Eclipse平臺(tái)。Eclipse允許在同一 IDE中集成來自不同供應(yīng)商的工具,并實(shí)現(xiàn) 了工具之間的互操作性,從而顯著改變了工程工作流程,使開發(fā)者可以專注在 實(shí)際的嵌入式目標(biāo)上。Eclipse框架的這種靈活性來源于其擴(kuò)展點(diǎn)。它們是在XML中定義的已知接口,并充當(dāng)插件的耦合點(diǎn)。擴(kuò)展點(diǎn)的范圍包括從用在常規(guī)表述過濾器中的簡(jiǎn)單 字符串,到一個(gè)Java類的描述。任何Eclipse插件定義的擴(kuò)展點(diǎn)都能夠被其它

4、 插件使用,反之,任何 Eclipse插件也可以遵從其它插件定義的擴(kuò)展點(diǎn)。除了 解由擴(kuò)展點(diǎn)定義的接口外,插件不知道它們通過擴(kuò)展點(diǎn)提供的服務(wù)將如何被使 用。利用Eclipse,我們可以將高級(jí)設(shè)計(jì)(也許是采用UML與低級(jí)開發(fā)工具(如應(yīng)用 調(diào)試器等結(jié)合在一起。如果這些互相補(bǔ)充的獨(dú)立工具采用Eclipse擴(kuò)展點(diǎn)彼此連接,那么當(dāng)我們用調(diào)試器逐一檢查應(yīng)用時(shí),UML對(duì)話框可以突出顯示我們正在關(guān)注的器件。事實(shí)上,由于 Eclipse并不了解開發(fā)語言,所以無論 Java語言 調(diào)試器、C/C+調(diào)試器還是匯編調(diào)試器都是有效的,并可以在相同的框架內(nèi)同時(shí) 瞄準(zhǔn)不同的進(jìn)程或節(jié)點(diǎn)。Eclipse的最大特點(diǎn)是它能接受由Jav

5、a開發(fā)者自己編寫的開放源代碼插件,這 類似于微軟公司的 Visual Studio 和 Sun微系統(tǒng)公司的 NetBeans平臺(tái)。Eclipse為工具開發(fā)商提供了更好的靈活性,使他們能更好地控制自己的軟件 技術(shù)。Eclipse聯(lián)盟已經(jīng)宣布將在2004年中期發(fā)布其3.0版軟件。這是一款非 常受歡迎的java開發(fā)工具,這國內(nèi)的用戶越來越多,實(shí)際上實(shí)用它 java開發(fā) 人員是最多的。缺點(diǎn)就是較復(fù)雜,對(duì)初學(xué)者來說,理解起來比較困難。2、需求分析2.1數(shù)據(jù)流圖說明:1、用戶請(qǐng)求包括:(1學(xué)生基本信息管理新生信息錄入。學(xué)生信息修改:按學(xué)號(hào)查詢出某學(xué)生的信息并做信息修改。(2系基本信息管理:系的基本信息輸入

6、、修改、刪除(3課程信息管理:課程信息的輸入、修改、刪除(4教職工信息管理:教職工信息的輸入、修改、刪除(5選課管理:每學(xué)期所選課程的學(xué)分不能超過15分。學(xué)生可以同時(shí)選修一門或多門課程??梢酝瑫r(shí)為多個(gè)學(xué)生選修某一門或某幾門課程。刪除和修改選課信息。(6成績管理按課程輸入和修改成績。按學(xué)生輸入和修改成績。(7信息查詢按學(xué)號(hào)、姓名、系號(hào)查詢學(xué)生基本信息。按職工號(hào)、姓名、系號(hào)查詢教職工基本信息。按系號(hào)、系名稱查詢系的基本信息。按課程號(hào)、課程名稱、上課教師姓名查詢課程基本信息。按學(xué)號(hào)、學(xué)生姓名、課程號(hào)、課程名稱、上課教師姓名、系號(hào)查詢學(xué)生成 績,內(nèi)容包括課程基本情況。若查詢涉及多門課程,則按課程分組。

7、每門課程 按總評(píng)成績從高分到低分給出選修該門課程的所有學(xué)生的成績平時(shí)成績、考試成績和總評(píng)成績)。(8統(tǒng)計(jì)報(bào)表成績登記表,內(nèi)容包括課程基本信息 課程號(hào)、課程名稱、任課教師號(hào)、學(xué) 時(shí)、學(xué)分、上課時(shí)間、上課地點(diǎn)、考試時(shí)間)、選課學(xué)生名單學(xué)號(hào)、姓名、性別),每個(gè)學(xué)生的平時(shí)成績 空格)、考試成績 空格)和總評(píng)成績 空格), 按學(xué)號(hào)排序:順序輸出所有課程的成績登記表。按課程號(hào)、課程名稱、教師姓名輸出對(duì)應(yīng)課程的成績登記表。2、以上的用戶請(qǐng)求經(jīng)應(yīng)用程序的轉(zhuǎn)化,化為對(duì)數(shù)據(jù)庫中的相應(yīng)的表或視圖的操作,數(shù)據(jù)庫再把處理的結(jié)果 或都是錯(cuò)誤信息)返回結(jié)應(yīng)用程序。3、 應(yīng)用程序把結(jié)果返回給用戶,該結(jié)果可能為一個(gè)對(duì)表操作的結(jié)

8、果 如插入,刪除等),也可能為一個(gè)查詢的結(jié)果,甚至可能為一個(gè)錯(cuò)誤的信息。2.2數(shù)據(jù)字典根據(jù)題目的需求,教案系統(tǒng)主要是對(duì)學(xué)生,教職工,學(xué)院,課程,成績等 的管理。由此分析得到如下數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)庫的表結(jié)構(gòu)的設(shè)計(jì),數(shù)據(jù)項(xiàng)如下,表名分別為:users, score, departme nt.stu i dc id|u score| exarn score131056040580卜3105693757575roitmrroot22dspth name 計(jì)算系 菅理系 建筑系stude nt, teach_job, courses tu i dbirthdayscoredepth id卜310560孫燕姿

9、女1964-11-29E41431056S男19B6-12-1864U17計(jì)篡機(jī)科學(xué)人力資源菅理是強(qiáng)項(xiàng) 本樂是本校的重點(diǎn)學(xué)科t idsexbirthdayjobipeeiilitydirection男1986-2-14計(jì)麹科字M雒2196D-1M14c idt.idcreditperiodcli5s&tincl ass UTfit3人力資源管理Z5452006-2-3就五2006-6-3j帆澀序設(shè)計(jì)13302008-2-15教蚊132WE-A92.3安全性和完整性要求安全性和完整性要求:通過設(shè)置外鍵,建立它們之間的關(guān)系,并使它們級(jí)聯(lián)更新相關(guān)的字段,級(jí)聯(lián) 刪除相關(guān)的記錄。對(duì)于構(gòu)成了環(huán)的級(jí)聯(lián)更新或

10、刪除,而不能建立級(jí)聯(lián)更新或刪 除的,通過建立觸發(fā)器,使得它們保持?jǐn)?shù)據(jù)的完整性。通過不同權(quán)限的人登錄 而設(shè)置其對(duì)數(shù)據(jù)的增刪改的權(quán)限增強(qiáng)數(shù)據(jù)的安全性。本系統(tǒng)的外鍵設(shè)置和級(jí)聯(lián)操作有:外鍵:stuent表的depth_id。 course表的 t_id。score表的stud和c_id等。由于score表的兩個(gè)鍵若都級(jí)聯(lián)操作會(huì)構(gòu)成環(huán),所 以級(jí)聯(lián)不成功。所以在這里建立兩個(gè)觸發(fā)器取代級(jí)聯(lián)操作,從而實(shí)現(xiàn)數(shù)據(jù)庫的 完整性。3、概念結(jié)構(gòu)設(shè)計(jì)3.1 E R 圖性別系名稱系的簡(jiǎn)介姓名職工號(hào)生日系號(hào)系號(hào)1職稱m系屬于1m方向?qū)W號(hào)m姓名選修課程課程名性別職工號(hào)系號(hào)學(xué)時(shí)學(xué)分出生 年月考試 時(shí)間上課 地點(diǎn)入學(xué) 成績上課 時(shí)

11、間擁有講授教師學(xué)生課程號(hào)課程號(hào)ER圖1成績丿一Pnmn成績4、邏輯結(jié)構(gòu)設(shè)計(jì)4.1 關(guān)系模型4.1.1關(guān)系模型的設(shè)計(jì)學(xué)生 學(xué)號(hào)、姓名、性別、出生日期、入學(xué)成績、所在系號(hào)、密碼)教師 職工號(hào)、姓名、性別、出生年月、所在系號(hào)、職稱、專業(yè)及教案方向) 系 系號(hào)、系名稱、系的簡(jiǎn)介)課程 課程號(hào)、課程名稱、任課教師號(hào)、學(xué)時(shí)、學(xué)分、上課時(shí)間、上課地點(diǎn)、考 試時(shí)間)成績 學(xué)號(hào)、課程號(hào)、平時(shí)成績、考試成績、總評(píng)成績)擁有 學(xué)號(hào)、系號(hào))屬于 職工號(hào)、系號(hào))講授 職工號(hào)、課程號(hào)、上課時(shí)間)選修 學(xué)號(hào)、課程號(hào)、上課時(shí)間)4.2 用戶子模式成績視圖 學(xué)號(hào)、學(xué)生姓名、教師號(hào)、教師姓名、課程號(hào)、上課時(shí)間、課程名、 平時(shí)成績

12、、考試成績、總評(píng)成績、)選課視圖 學(xué)號(hào)、課程號(hào)、上課時(shí)間、平時(shí)成績、考試成績、總評(píng)成績、課程 名、學(xué)時(shí)、學(xué)分)統(tǒng)計(jì)視圖 課程號(hào)、上課時(shí)間、課程名稱、任課教師號(hào)、學(xué)時(shí)、學(xué)分、上課地 點(diǎn)、考試時(shí)間、學(xué)號(hào)、學(xué)生姓名、學(xué)生性別、平時(shí)成績、考試成 績、總評(píng)成績)4.3 安全性安全性的實(shí)現(xiàn)主要是通過應(yīng)用程序來實(shí)現(xiàn),在程序中設(shè)定一個(gè)檢查用戶名和密 碼的機(jī)構(gòu),用戶要進(jìn)入系統(tǒng)就先要輸入授權(quán)了的用戶名和密碼方能進(jìn)入。5、數(shù)據(jù)庫物理設(shè)計(jì)5.1 建立索引為各個(gè)表的主碼建立索引。學(xué)生 學(xué)號(hào))教師 職工號(hào))系 系號(hào))課程 課程號(hào)、上課時(shí)間)成績 (3) Eclipse 開發(fā)環(huán)境6、數(shù)據(jù)庫實(shí)施6.1 創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)對(duì)象

13、not n ull,password varchar(15, popedom tinyint not n ull。create table departme nt(depth_id smalli nt primary key,depth _n ame char(14, discription varchar(50。create table teach _jo b(t_id int primary key,t_ name char(8,sex char(2, birthday smalldatetime,depthd small int foreig n key refere nces depa

14、rtme nt(depth_id, job char(10,speciality char(16,direct ion char(16create table course(c_id smalli nt primary key,c_ name char(16 not n ull,t_id in tforeig n key refere nces teach_job(t_id,credit smalli nt, period smallint,class_time smalldatetime,class_area char(10,exam_time smalldatetimecreate tab

15、le stude nt(stud char(6 primary key,s_ name char(8, birthday smalldatetime,score int,depthd small int foreig n key refere nces departme nt(depth_idcreate table score(stud char(6,c_id smalli nt,u_score in t,exam_score int, total in t,primary key(stud,c_id。6.2 數(shù)據(jù)備份和恢復(fù)方案事務(wù)故障的恢復(fù)是由系統(tǒng)自動(dòng)完成的,對(duì)用戶透明。系統(tǒng)故障的恢復(fù)由系

16、統(tǒng) 重新啟動(dòng)時(shí)自動(dòng)完成,不需要用戶干預(yù)。介質(zhì)故障的恢復(fù)則由人干預(yù)完 成,方法為重裝數(shù)據(jù)庫,然后重做已完成的事務(wù)。1、數(shù)據(jù)庫備份方案:每月進(jìn)行一次數(shù)據(jù)庫的完整備份,包括所有的數(shù)據(jù)及數(shù)據(jù)庫對(duì)象。速度較 慢,占用大量磁盤空間。應(yīng)該在整個(gè)數(shù)據(jù)庫不進(jìn)行其他事務(wù)操作的時(shí)候備份 可以提高數(shù)據(jù)備份的速度。每天進(jìn)行事務(wù)日志備份,事務(wù)日志備份是指對(duì)數(shù)據(jù)庫發(fā)生的事務(wù)進(jìn)行備 份,包括上次進(jìn)行事務(wù)日志備份,差異備份和數(shù)據(jù)庫完全備份之后所有已經(jīng) 完成的事務(wù)。所需的時(shí)間和磁盤空間要求較少每小時(shí)進(jìn)行差異備份,是備份一次數(shù)據(jù)備份以來的數(shù)據(jù)變化。a)恢復(fù)解決方案:先恢復(fù)最近一次的數(shù)據(jù)庫備份,接著進(jìn)行差異備份的恢復(fù),最后進(jìn)行事務(wù)日

17、志血仇的恢復(fù)。6.3 用戶界面的設(shè)計(jì)和實(shí)現(xiàn)及相關(guān)應(yīng)用程序編碼本系統(tǒng)的程序代碼結(jié)構(gòu)如下圖所示:主要是四個(gè)包:1其中中frame包中包含一個(gè)layout包。frame包主要是視圖層的代碼,主 界面,登錄界面,各種操作的界面都在其中。此外包含一個(gè)包layout,在其中有一個(gè)類,用于網(wǎng)格組布局的封裝了網(wǎng)格組布局的一些代碼。在 MyAction中圭寸裝的是主窗口里面的所有菜單事件。2在model包中主要處理的是模型層,對(duì)數(shù)據(jù)的操作圭寸裝其中。3query一個(gè)類包含了對(duì)學(xué)生信息的查詢。4此外在util中包含的是對(duì)數(shù)據(jù)庫的所有操作。其中有對(duì)數(shù)據(jù)庫的更改,把數(shù)據(jù)庫的數(shù)據(jù)和表格模型相關(guān)聯(lián)起來的等操作。-Teac

18、hManagerS 5src-右 frame it : JJ Coursejava + ! J | Dapartmeht java + j| EnterFrameJava + : I, Information. 13va + Ijj MainFrame .java + j J J MyAction.java + JJ ScoreManager.java + 1 SelectCourse. java + jJJ Student.jav ii 2 Teacher,java-j+j framemyocit + M GBC.java-Fjj model山卩LLlLHk:LJLr. s-ffi-ffi-

19、ffi-:囲:sCourseDataJavo DepData.java ScoreDataJava SelectC Data, java5tUDataJava Teadata, java-Hj queryi+ : LI StudentQuery.java -.JJ ubil+ConneJdbc.java+SqlTableModel.java+ l| UpdateDatebase .jav+ & JRE System Library jrelXX + msbase.jar - E:ywAworkspaceT + w msscjlserver Jar - E:yv#jwtirkspa + a; r

20、nsutil.Jar - E:ywjorkspaceTe主界面如下所示:5關(guān)鍵代碼如下:由于代碼太多,以下只寫出很少的一部分代碼1對(duì)數(shù)據(jù)庫的操作:public class Conn eJdbc protected static Connection connection = n ullprivate Connection con = n ullprivate ResultSet rs = n ullprivate ResultSetMetaData rsmd = n ullpublic Conn eJdbc( try Class.forName(com.microsoft.jdbc.sqlse

21、rver.SQLServerDriverconnection = DriverMa nager.getC onnection(jdbc:microsoft:sqlserver:/127.0.0.1:1433DatabaseName=teach ing ,sa,。 catch (java .Ian g.ClassNotF oun dExcepti on class notfound class notfoun d.pri ntStackTrace(。 catch (java.sql.SQLExcepti on sql sql.pri ntStackTrace( 。public Connectio

22、n getC on( retur n connectionpublic Vector selectSql(Stri ng sql Vector vdata = new Vector( 。try rs = connection .prepareStateme nt(sql.executeQuery( rsmd = rs.getMetaData( 。while (rs.n ext(vdata.addEleme nt(rs.getObject(1 。 catch (SQLExcepti on e e.pri ntStackTrace( 。return vdata 。public String sel

23、ect On e(Stri ng sql ResultSet rs = null 。ResultSetMetaData rsmd = null 。try rs = connection .prepareStateme nt(sql.executeQuery(rsmd = rs.getMetaData( 。if (rs.n ext(retur n (Stri ngrs.getObject(1 catch (SQLExcepti on e e.pri ntStackTrace( 。return n ull。public boolean inTable(String user, String pa

24、throws SQLException Stateme nt stmt = null 。PreparedStateme nt pstmt = n ull。ResultSet rs = null 。String sql = select password from users +where user_ name= + user + and password+ pa +milrs = connection. prepareStateme nt(sql.executeQuery(if(rs.next(return true else return false 。2表格模型的處理:public cla

25、ss SqlTableModel exte nds DefaultTableModel private Connection con = n ull 。private ResultSet rs = n ull 。private ResultSetMetaData rsmd = n ullpublic SqlTableModel(String sqlStr, String name con = new Conn eJdbc(.getC on(tryrs = con .prepareStateme nt(sqlStr.executeQuery( rsmd = rs.getMetaData(for(

26、i nt i=0。 i。 i+ addColu mn(n amei。while(rs. next(Vector vdata = new Vector(i +for ( int i = 1。 i vdata.addEleme nt(rs.getObject(iaddRow(vdatacatch(java.sql.SQLExcepti on sqlsql.pri ntStackTrace(fin ally try con. close( 。 catch (SQLExcepti on e e.pri ntStackTrace(3) Updatabase 的一部分代碼: publicclass pri

27、vate private private privateUpdateDatebaseStateme ntstmtPreparedStateme nt Stri ngin foStrStringsql 。exte ndsConn eJdbc null 。pstmt null 。null 。public UpdateDatebase( throws SQLExceptio n publicboolea nin sert(DepData dataString sql =in sert into departme nt(depth_name,discription values (III III+ d

28、ata.getDepth_ name( +IIIdata.getDiscripti on( + pstmt = connection pstmt .execute( returntrue 。.prepareStateme nt(sqlthrows SQLExceptio n ,+ data.getS_name( +,+ data.getBirthday( +,+ data.getDepthd( +sql 。publicboolea nin sert(StuData datasql = in sert into stude nt values (+ data.getStud( +III III5

29、+ data.getSex( +III II5+ data.getScore( + 。pstmt = connection.prepareStateme nt(pstmt .execute( 。returntrue 。throwsSQLExceptio n ,+ data.getT_ name( +,+ data.getBirthday( +,+ data.getJob( + +5sql 。publicboolea nin sert(Teadata datasql = in sert into teach_job values (+ data.getT_id( +III III5+ data.

30、getSex( +III II5+ data.getDepth_id( +III III5+data.getSpeciality( + data.getDirectio n( +。pstmt = connection.prepareStateme nt(pstmt .execute( 。returntrue 。publicboolea nin sert(CourseData datathrowsSQLExcepti on sql = in sert into course (c_n ame,t_id,credit,period,class_time,+class_area,exam_time values (+ ”+ data.getC_name( +,+ data.getT_id( +,+ data.getCredit( + data.getPeriod( +,+ data.getClass_time(III III+ data.getClass_area( +III IIIsql 。data.getExam_t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論