數(shù)據(jù)庫課程設(shè)計報告_第1頁
數(shù)據(jù)庫課程設(shè)計報告_第2頁
數(shù)據(jù)庫課程設(shè)計報告_第3頁
數(shù)據(jù)庫課程設(shè)計報告_第4頁
數(shù)據(jù)庫課程設(shè)計報告_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、相關(guān)技術(shù)簡介RDBMS簡介SQLServer是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)它最初是由MicrosoftSybase和Ashton—Tate三家公司共同開發(fā)的于1988年推出了第一個OS/2版本在WindowsNT推出后Microsoft與Sybase在SQLServer的開發(fā)上就分道揚(yáng)鑣了Microsoft將SQLServer移植到WindowsNT系統(tǒng)上專注于開發(fā)推廣SQLServer的WindowsNT版本Sybase則較專注于SQLServer在UNIX操作系統(tǒng)上的應(yīng)用在本書中介紹的是MicrosoftSQLServer以后簡稱為SQLServer或MSSQLServer。SQLServer2000是Microsoft公司推出的SQLServer數(shù)據(jù)庫管理系統(tǒng)的最新版本該版本繼承了SQLServer7.0版本的優(yōu)點(diǎn)同時又比它增加了許多更先進(jìn)的功能具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn)可跨越從運(yùn)行MicrosoftWindows98的膝上型電腦到運(yùn)行MicrosoftWindows2000的大型多處理器的服務(wù)器等多種平臺使用。Eclipse簡介Eclipse是一種可擴(kuò)展的開放源代碼IDE。2001年11月,IBM公司捐出價值4,000萬美元的源代碼組建了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平臺。Eclipse允許在同一IDE中集成來自不同供應(yīng)商的工具,并實(shí)現(xiàn)了工具之間的互操作性,從而顯著改變了項(xiàng)目工作流程,使開發(fā)者可以專注在實(shí)際的嵌入式目標(biāo)上。Eclipse框架的這種靈活性來源于其擴(kuò)展點(diǎn)。它們是在XML中定義的已知接口,并充當(dāng)插件的耦合點(diǎn)。擴(kuò)展點(diǎn)的范圍包括從用在常規(guī)表述過濾器中的簡單字符串,到一個Java類的描述?任何Eclipse插件定義的擴(kuò)展點(diǎn)都能夠被其它插件使用,反之,任何Eclipse插件也可以遵從其它插件定義的擴(kuò)展點(diǎn)。除了解由擴(kuò)展點(diǎn)定義的接口外,插件不知道它們通過擴(kuò)展點(diǎn)提供的服務(wù)將如何被使用。利用Eclipse,我們可以將高級設(shè)計(也許是采用UML)與低級開發(fā)工具(如應(yīng)用調(diào)試器等)結(jié)合在一起。如果這些互相補(bǔ)充的獨(dú)立工具采用Eclipse擴(kuò)展點(diǎn)彼此連接,那么當(dāng)我們用調(diào)試器逐一檢查應(yīng)用時,UML對話框可以突出顯示我們正在關(guān)注的器件。事實(shí)上,由于Eclipse并不了解開發(fā)語言,所以無論Java語言調(diào)試器、C/C++調(diào)試器還是匯編調(diào)試器都是有效的,并可以在相同的框架內(nèi)同時瞄準(zhǔn)不同的進(jìn)程或節(jié)點(diǎn)。Eclipse的最大特點(diǎn)是它能接受由Java開發(fā)者自己編寫的開放源代碼插件,這類似于微軟公司的VisualStudio和Sun微系統(tǒng)公司的NetBeans平臺。Eclipse為工具開發(fā)商提供了更好的靈活性,使他們能更好地控制自己的軟件技術(shù).Eclipse聯(lián)盟已經(jīng)宣布將在2004年中期發(fā)布其3。0版軟件。這是一款非常受歡迎的java開發(fā)工具,這國內(nèi)的用戶越來越多,實(shí)際上實(shí)用它java開發(fā)人員是最多的。缺點(diǎn)就是較復(fù)雜,對初學(xué)者來說,理解起來比較困難.2、需求分析2。1數(shù)據(jù)流圖說明:1、用戶請求包括:學(xué)生基本信息管理新生信息錄入。學(xué)生信息修改:按學(xué)號查詢出某學(xué)生的信息并做信息修改系基本信息管理:系的基本信息輸入、修改、刪除課程信息管理:課程信息的輸入、修改、刪除教職工信息管理:教職工信息的輸入、修改、刪除選課管理:每學(xué)期所選課程的學(xué)分不能超過15分.學(xué)生可以同時選修一門或多門課程.可以同時為多個學(xué)生選修某一門或某幾門課程。刪除和修改選課信息.成績管理按課程輸入和修改成績。按學(xué)生輸入和修改成績。信息查詢按學(xué)號、姓名、系號查詢學(xué)生基本信息。按職工號、姓名、系號查詢教職工基本信息。按系號、系名稱查詢系的基本信息。按課程號、課程名稱、上課教師姓名查詢課程基本信息。按學(xué)號、學(xué)生姓名、課程號、課程名稱、上課教師姓名、系號查詢學(xué)生成績,內(nèi)容包括課程基本情況。若查詢涉及多門課程,則按課程分組。每門課程按總評成績從高分到低分給出選修該門課程的所有學(xué)生的成績(平時成績、考試成績和總評成績).(8) 統(tǒng)計報表成績登記表,內(nèi)容包括課程基本信息(課程號、課程名稱、任課教師號、學(xué)時、學(xué)分、上課時間、上課地點(diǎn)、考試時間)、選課學(xué)生名單(學(xué)號、姓名、性別),每個學(xué)生的平時成績(空格)、考試成績(空格)和總評成績(空格),按學(xué)號排序:順序輸出所有課程的成績登記表.按課程號、課程名稱、教師姓名輸出對應(yīng)課程的成績登記表。2、以上的用戶請求經(jīng)應(yīng)用程序的轉(zhuǎn)化,化為對數(shù)據(jù)庫中的相應(yīng)的表或視圖的操作,數(shù)據(jù)庫再把處理的結(jié)果(或都是錯誤信息)返回結(jié)應(yīng)用程序。3、應(yīng)用程序把結(jié)果返回給用戶,該結(jié)果可能為一個對表操作的結(jié)果(如插入,刪除等),也可能為一個查詢的結(jié)果,甚至可能為一個錯誤的信息。2。2數(shù)據(jù)字典根據(jù)題目的需求,教學(xué)系統(tǒng)主要是對學(xué)生,教職工,學(xué)院,課程,成績等的管理。由此分析得到如下數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)庫的表結(jié)構(gòu)的設(shè)計,數(shù)據(jù)項(xiàng)如下,表名分別為:users,score,department,student,teach_job, course:2。3安全性和完整性要求安全性和完整性要求:通過設(shè)置外鍵,建立它們之間的關(guān)系,并使它們級聯(lián)更新相關(guān)的字段,級聯(lián)刪除相關(guān)的記錄。對于構(gòu)成了環(huán)的級聯(lián)更新或刪除,而不能建立級聯(lián)更新或刪除的,通過建立觸發(fā)器,使得它們保持?jǐn)?shù)據(jù)的完整性.通過不同權(quán)限的人登錄而設(shè)置其對數(shù)據(jù)的增刪改的權(quán)限增強(qiáng)數(shù)據(jù)的安全性。本系統(tǒng)的外鍵設(shè)置和級聯(lián)操作有:外鍵:stuent表的depth_id。course表的t_id。score表的stu_id和c_id等。由于score表的兩個鍵若都級聯(lián)操作會構(gòu)成環(huán),所以級聯(lián)不成功.所以在這里建立兩個觸發(fā)器取代級聯(lián)操作,從而實(shí)現(xiàn)數(shù)據(jù)庫的完整性。3、概念結(jié)構(gòu)設(shè)計E-R圖

4、邏輯結(jié)構(gòu)設(shè)計關(guān)系模型關(guān)系模型的設(shè)計學(xué)生(學(xué)號、姓名、性別、出生日期、入學(xué)成績、所在系號、密碼)教師(職工號、姓名、性別、出生年月、所在系號、職稱、專業(yè)及教學(xué)方向)系(系號、系名稱、系的簡介)課程(課程號、課程名稱、任課教師號、學(xué)時、學(xué)分、上課時間、上課地點(diǎn)、考試時間)成績(學(xué)號、課程號、平時成績、考試成績、總評成績)擁有(學(xué)號、系號)屬于(職工號、系號)講授(職工號、課程號、上課時間)選修(學(xué)號、課程號、上課時間)用戶子模式成績視圖(學(xué)號、學(xué)生姓名、教師號、教師姓名、課程號、上課時間、課程名、平時成績、考試成績、總評成績、)選課視圖(學(xué)號、課程號、上課時間、平時成績、考試成績、總評成績、課程名、學(xué)時、學(xué)分)統(tǒng)計視圖(課程號、上課時間、課程名稱、任課教師號、學(xué)時、學(xué)分、上課地點(diǎn)、考試時間、學(xué)號、學(xué)生姓名、學(xué)生性別、平時成績、考試成績、總評安全性的實(shí)現(xiàn)主要是通過應(yīng)用程序來實(shí)現(xiàn),在程序中設(shè)定一個檢查用戶名和密碼的機(jī)構(gòu),用戶要進(jìn)入系統(tǒng)就先要輸入授權(quán)了的用戶名和密碼方能進(jìn)入。5、數(shù)據(jù)庫物理設(shè)計建立索引為各個表的主碼建立索引。學(xué)生(學(xué)號)教師(職工號)系(系號)課程(課程號、上課時間)成績(學(xué)號、課程號)數(shù)據(jù)庫存放位置數(shù)據(jù)的存儲和數(shù)據(jù)處理在綜合考慮存取時間,存儲空間的利用率,維護(hù)的代價3個方面的因素,進(jìn)行權(quán)衡,選擇折中的方案。將易變部分與穩(wěn)定部分、經(jīng)常存取部分和存取頻率較低部分分開存放。系統(tǒng)配置WindowsXPMicorSoftSQLServer2000(必需升級到SP3)EcLipse開發(fā)環(huán)境6、數(shù)據(jù)庫實(shí)施創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)對象(括號中為對應(yīng)的SQL腳本文件)1、 創(chuàng)建數(shù)據(jù)庫的對象:createdatabaseteach;2、 創(chuàng)建表的過程如下:createtableusers(user_namevarchar(15)notnull,passwordvarchar(15),popedomtinyintnotnull);createtabledepartment(depth_idsmallintprimarykey,depth_namechar(14),discriptionvarchar(50));createtableteach_job(t_idintprimarykey,t_namechar(8),sexchar(2),birthdaysmalldatetime,depth_idsmallintforeignkeyreferencesdepartment(depth_id),jobchar(10),specialitychar(16),directionchar(16));createtablecourse(c_idsmallintprimarykey,c_namechar(16)notnull,t_idintforeignkeyreferencesteach_job(t_id),creditsmallint,periodsmallint,class_timesmalldatetime,class_areachar(10),exam_timesmalldatetime);createtablestudent(stu_idchar(6)primarykey,s_namechar(8),birthdaysmalldatetime,scoreint,depth_idsmallintforeignkeyreferencesdepartment(depth_id));createtablescore(stu_idchar(6),c_idsmallint,u_scoreint,exam_scoreint,totalint, primarykey(stu_id,c_id));數(shù)據(jù)備份和恢復(fù)方案事務(wù)故障的恢復(fù)是由系統(tǒng)自動完成的,對用戶透明.系統(tǒng)故障的恢復(fù)由系統(tǒng)重新啟動時自動完成,不需要用戶干預(yù)。介質(zhì)故障的恢復(fù)則由人干預(yù)完成,方法為重裝數(shù)據(jù)庫,然后重做已完成的事務(wù)。1、數(shù)據(jù)庫備份方案:〈1>每月進(jìn)行一次數(shù)據(jù)庫的完整備份,包括所有的數(shù)據(jù)及數(shù)據(jù)庫對象.速度較慢,占用大量磁盤空間。應(yīng)該在整個數(shù)據(jù)庫不進(jìn)行其他事務(wù)操作的時候備份可以提高數(shù)據(jù)備份的速度。<2〉每天進(jìn)行事務(wù)日志備份,事務(wù)日志備份是指對數(shù)據(jù)庫發(fā)生的事務(wù)進(jìn)行備份,包括上次進(jìn)行事務(wù)日志備份,差異備份和數(shù)據(jù)庫完全備份之后所有已經(jīng)完成的事務(wù).所需的時間和磁盤空間要求較少<3〉每小時進(jìn)行差異備份,是備份一次數(shù)據(jù)備份以來的數(shù)據(jù)變化。a)恢復(fù)解決方案:先恢復(fù)最近一次的數(shù)據(jù)庫備份,接著進(jìn)行差異備份的恢復(fù),最后進(jìn)行事務(wù)日志血仇的恢復(fù)。用戶界面的設(shè)計和實(shí)現(xiàn)及相關(guān)應(yīng)用程序編碼本系統(tǒng)的程序代碼結(jié)構(gòu)如下圖所示:主要是四個包:1〉其中中frame包中包含一個layout包。frame包主要是視圖層的代碼,主界面,登錄界面,各種操作的界面都在其中。此外包含一個包layout,在其中有一個類,用于網(wǎng)格組布局的封裝了網(wǎng)格組布局的一些代碼。在MyAction中封裝的是主窗口里面的所有菜單事件。2〉在model包中主要處理的是模型層,對數(shù)據(jù)的操作封裝其中.3〉query一個類包含了對學(xué)生信息的查詢。4>此外在util中包含的是對數(shù)據(jù)庫的所有操作。其中有對數(shù)據(jù)庫的更改,把數(shù)據(jù)庫的數(shù)據(jù)和表格模型相關(guān)聯(lián)起來的等操作。主界面如下所示:5〉關(guān)鍵代碼如下:由于代碼太多,以下只寫出很少的一部分代碼1》對數(shù)據(jù)庫的操作:publicclassConneJdbc{protectedstaticConnectionconnection=null;privateConnectioncon=null;privateResultSetrs=null;privateResultSetMetaDatarsmd=null;publicConneJdbc(){try{Class.forName("com。microsoft。jdbc.sqlserver.SQLServerDriver”);connection=DriverManager.getConnection(”jdbc:microsoft:sqlserver://127。 0。 0.11433;DatabaseName=teaching”,”sa”,”");}catch(java。lang。ClassNotFoundExceptionclassnotfound){classnotfound.printStackTrace();}catch(java.sql。SQLExceptionsql){sql。printStackTraceO;}}publicConnectiongetCon(){returnconnection;}publicVectorselectSql(Stringsql){Vectorvdata=newVector();try{rs=connection。prepareStatement(sql).executeQuery();rsmd=rs。getMetaData();while(rs。next())vdata.addElement(rs.getObject(1));}catch(SQLExceptione){e.printStackTrace();}returnvdata;}publicStringselectOne(Stringsql){ResultSetrs=null;ResultSetMetaDatarsmd=null;try{rs=connection。prepareStatement(sql)。executeQueryO;rsmd=rs.getMetaData();if(rs.next())return(String)rs。getObject(l);}catch(SQLExceptione){e。printStackTraceO;}returnnull;}publicbooleaninTable(Stringuser,Stringpa)throwsSQLException{Statementstmt=null;PreparedStatementpstmt=null;ResultSetrs=null;Stringsql=”selectpasswordfromusers"+”whereuser_name='"+user+"'andpassword='”+pa+”'”;rs=connection.prepareStatement(sql).executeQuery();if(rs.next())returntrue;elsereturnfalse;}}2》表格模型的處理:publicclassSqlTableModelextendsDefaultTableModel{privateConnectioncon=null;privateResultSetrs=null;privateResultSetMetaDatarsmd=null;publicSqlTableModel(StringsqlStr,String[]name){con=newConneJdbc().getCon();try{rs=con.prepareStatement(sqlStr)。executeQueryO;rsmd=rs.getMetaData();for(inti=0;i<rsmd。getColumnCount();i++) {addColumn(name[i]);}while(rs.next()){Vectorvdata=newVector();for(inti=1;i<=rsmd.getColumnCount() ;i++){vdata。addElement(rs.getObject(i));}addRow(vdata);}}catch(java。sql.SQLExceptionsql){sql。printStackTrace();}finally{try{con。close();}catch(SQLExceptione){e。printStackTrace();}}}3)Updatabase的一部分代碼:publicclassUpdateDatebaseextendsConneJdbc{privateStatementstmt=null;privatePreparedStatementpstmt=null;privateStringinfoStr=null;privateStringsql;publicUpdateDatebase(){}publicbooleaninsert(DepDatadata)throwsSQLException{Stringsql=”insertintodepartment(depth_name,discription)values('”+data.getDepth_name()+”','”+data。getDiscription()+"')”;pstmt=connection.prepareStatement(sql);pstmt。execute();returntrue;}publicbooleaninsert(StuDatadata)throwsSQLException{sql=”insertintostudentvalues('”+data。getStu_id()+”','”+data。getS_name()+”',+data。getSex()+”','"+data。getBirthday()+"',+data。getScore()+","+data。getDepth_id()+”)”pstmt=connection。prepareStatement(sql);pstmt.execute();returntrue;}publicbooleaninsert(Teadatadata)throwsSQLException{sql=”insertintoteach_jobvalues("+data。getT_id()+”,'”+data.getT_name()+"',+data。getSex()+"','”+data。getBirthday()++data。getDepth_id()+”,'”+data.getJob()+"','+data。getSpeciality()+”','"+data.getDirection()+pstmt=connection。prepareStatement(sql);pstmt.execute();returntrue;}publicbooleaninsert(CourseDatadata)throwsSQLException{sql="insertintocourse(c_name,t_id,credit,period,class_time,"+"class_area,exam_time)values(”+”'"+data。getC_name()+”',”+data.getT_id()+”,"+data.getCredit()+”,"+data.getPeriod()+",'”+data。getClass_time()+"','+data.getClass_area()+”','"+data。getExam_time()+”')"

溫馨提示

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

評論

0/150

提交評論