數(shù)據(jù)庫實習(xí)報告_第1頁
數(shù)據(jù)庫實習(xí)報告_第2頁
數(shù)據(jù)庫實習(xí)報告_第3頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫系統(tǒng)課程設(shè)計學(xué) 號:學(xué)生:班 號: 指導(dǎo)教師:中國地質(zhì)大學(xué)信息工程學(xué)院2012年3月3日=數(shù)據(jù)庫實習(xí)報告教務(wù)管理系統(tǒng)一、需求分析1、首先要明確各個實體間的屬性:a. 教師:工作證號,職稱,系別;b. 學(xué)生:學(xué)號,性別,班級,系別,出生年月;d. 系別:系代號,系名,系辦,公室;e. 課程:課序號,課名,學(xué)分,上課時間,名額。2、各個實體之間的聯(lián)系:a. 每個學(xué)生都屬于一個班;.每個教師也都屬于一個系,每個班的班主任都由一名教師擔(dān)任;d. 一名教師可以教多門課,一門課可以有幾位主講老師;e. 一名同學(xué)可以選多門課,一門課可被若干同學(xué)選中,一名同學(xué)選中的課若已 學(xué)完,應(yīng)該記錄有相應(yīng)成績。3、

2、總需求:本單位學(xué)生、教師都有重名,工作證號、學(xué)號可以作為標(biāo)識。教學(xué)系統(tǒng)主要提供數(shù)據(jù)維護(hù)、選課和信息查詢。常見的查詢有:系統(tǒng)中各對象的基本信息查詢;查詢指定班、系的學(xué)生信息(、人數(shù)等);查詢學(xué)生的成績、學(xué)分情況;查詢教師授課情況和學(xué)生選課情況等。二、概念設(shè)計1、概念模型(E-R圖):a.授課關(guān)系E-R圖b.選課關(guān)系E-R圖2、數(shù)據(jù)字典:a.數(shù)據(jù)項系名:Dname, char, 20系代號:Dno, char, 3系辦公室:Dtelepho nt,char, 11職稱:Ttitle, char, 20工作證號:Tno, char, 10:Ttelephont, char, 11學(xué)號:Sno, ch

3、ar, 10 性別:Ssex, char, 2 出生年月:Sbirthday, date, :Sname, char, 20 課序號:Cno, char, 10:Tname, char, 20課名稱:Cn ame, char, 20學(xué)分:Credit, float, 2上課時間:Ctime, datetime成績:Grade, i nt名額:Cnumber, intb. 數(shù)據(jù)結(jié)構(gòu)學(xué)生=學(xué)號、性別、出生年月教師=工作證號、教師、職稱、所在系的系號系=系代號、系名、系辦公室 課程=課序號、課名、學(xué)分、上課地點(diǎn)、名額、授課教師的工作證號選課=學(xué)號、課序號、成績c. 數(shù)據(jù)流(說明,數(shù)據(jù)流來源,數(shù)據(jù)流去

4、向)變更系信息=變更系信息,變更信息,系信息 查詢系信息=查詢系信息,系代號,系信息 變更教師信息=變更教師信息,變更信息,教師信息查詢教師信息=查詢教師信息,工作證號,教師信息變更學(xué)生信息=變更學(xué)生信息,變更信息,學(xué)生信息查詢學(xué)生信息=查詢學(xué)生信息,學(xué)號,學(xué)生信息變更課程信息=變更課程信息,變更信息,課程信息 查詢課程信息=查詢課程信息,課序號,課程信息 學(xué)生選課=課程號,學(xué)號查詢選課信息=查詢選課信息,學(xué)號或課序號,選課信息 查詢授課信息=查詢授課信息,工作證號,授課信息 查詢成績=查詢成績, 學(xué)號&課程號,選課信息三、邏輯結(jié)構(gòu)設(shè)計1關(guān)系模型教師(工作證號,職稱,系代號)學(xué)生(學(xué)號

5、,,性別,出生年月)系(系代號,系名,系辦公室)課程(課序號,課名,學(xué)分,上課時間,名額,工作證號)選課(學(xué)號,課序號,成績)2、用戶視圖教師信息視圖(工作證號,教師,職稱,負(fù)責(zé)班級)學(xué)生信息視圖(學(xué)號,性別,出生年月,班號)系信息視圖(系代號,系名,系辦公室)選課信息(課程號,學(xué)號)課程信息(課程號,課程名稱,學(xué)分,上課時間,名額,授課老師)五、系統(tǒng)實施完成數(shù)據(jù)庫的物理設(shè)計之后,設(shè)計人員就要用RDBM提供的數(shù)據(jù)定義語言和其他實用程 序設(shè)計和物理設(shè)計結(jié)果嚴(yán)格的描述出來,成為DMBM可以接受的源代碼,再經(jīng)過調(diào)試產(chǎn)生目標(biāo)模式。然后就可以組織數(shù)據(jù)入庫了,這就是數(shù)據(jù)庫實施階段。數(shù)據(jù)庫實施階段包括兩項重

6、要的工作:1. 數(shù)據(jù)的載入:直接在SQL2012中建立 教師,學(xué)生,選課,系,課程六個表。 運(yùn)用ODBC建立mysql的服務(wù)器,關(guān)聯(lián)到 VB中。六、運(yùn)行維護(hù)1 、數(shù)據(jù)庫試運(yùn)行數(shù)庫的試運(yùn)行階段要實際運(yùn)行數(shù)據(jù)庫應(yīng)用程序, 執(zhí)行對數(shù)據(jù)庫的各種操作, 測試應(yīng)用程 序的功能是否滿足設(shè)計要求。如果不滿足,對應(yīng)用程序部分則要修改、 調(diào)整,知道達(dá)到設(shè)計 要求為止。這一階段特別強(qiáng)調(diào)兩點(diǎn),第一 該是分期分批的組織數(shù)據(jù)入庫,先輸入少量數(shù)據(jù) 做調(diào)試用,待試運(yùn)行基本合格后,再大批量的輸入數(shù)據(jù)。第二首先調(diào)試運(yùn)行數(shù)據(jù)庫管理系統(tǒng)的恢復(fù)功能, 做好數(shù)據(jù)庫的轉(zhuǎn)儲和恢復(fù)工作,一旦故障發(fā)生,能使數(shù)據(jù)庫盡快恢復(fù),盡量減少數(shù)據(jù)庫的破壞。

7、2、數(shù)據(jù)庫的維護(hù)數(shù)據(jù)庫的轉(zhuǎn)儲和恢復(fù)試系統(tǒng)正式運(yùn)行后最重要的維護(hù)工作之一。要針對不同的應(yīng)用要求制定不同的轉(zhuǎn)儲計劃, 以保證一旦發(fā)生故障能夠盡快將數(shù)據(jù)庫恢復(fù)到某種一致狀態(tài),并盡可能減少對數(shù)據(jù)庫的破壞。數(shù)據(jù)庫運(yùn)行階段,主要是由數(shù)據(jù)庫管理員完成經(jīng)常性的維護(hù)工作。主要包括:a. 數(shù)據(jù)庫的轉(zhuǎn)儲和恢復(fù);b. 數(shù)據(jù)庫的安全性、完整性控制;c. 數(shù)據(jù)庫性能的監(jiān)督、分析和改造;d. 數(shù)據(jù)庫的重組織與重構(gòu)造。七、小結(jié)兩個周的數(shù)據(jù)庫實習(xí)課程結(jié)束了,雖然數(shù)據(jù)庫的設(shè)計工作完成的并不好,但是在這個過程中還是有些收獲。 首先, 我知道了數(shù)據(jù)庫的設(shè)計工作是有章可循的, 可以按照一定的步 驟、有規(guī)律的進(jìn)行設(shè)計。 數(shù)據(jù)庫可以按階段

8、進(jìn)行設(shè)計,在各個階段有不同的目標(biāo),應(yīng)遵循的原則和方法也各不相同, 還有一些應(yīng)該注意的事項等等。 其中的重點(diǎn)是概念結(jié)構(gòu)的設(shè)計和邏 輯結(jié)構(gòu)的設(shè)計, 這也是整個數(shù)據(jù)庫設(shè)計過程中最重要的兩個環(huán)節(jié)。 人們在評述數(shù)據(jù)庫的特點(diǎn) 時說,“三分技術(shù),七分管理,十二分的基礎(chǔ)數(shù)” ,在數(shù)據(jù)庫建設(shè)中不僅涉及技術(shù),還涉及管 理,要建設(shè)好一個數(shù)據(jù)庫應(yīng)用系統(tǒng), 開發(fā)技術(shù)固然重要, 但是相比之下管理更為重要。 其次, 對數(shù)據(jù)庫設(shè)計的各個階段也有了初步認(rèn)識。 在需求分析階段, 主要的任務(wù)是通過詳細(xì)的調(diào)查 現(xiàn)實世界重要處理的對象, 明確用戶的各種需求, 然后在此基礎(chǔ)上確定新系統(tǒng)的功能, 簡單 地說, 也就是分析用戶的需求, 它是

9、設(shè)計數(shù)據(jù)庫的起點(diǎn), 需求分析的準(zhǔn)確與否直接關(guān)系到后 面各個階段的設(shè)計。 在概念結(jié)構(gòu)設(shè)計階段, 要根據(jù)需求分析的結(jié)果抽象為信息結(jié)構(gòu), 主要就 是通過ER圖來表現(xiàn),不僅要考慮整個數(shù)據(jù)庫的結(jié)構(gòu),還要注意子模式仕途的細(xì)節(jié),它是 整個數(shù)據(jù)庫設(shè)計的關(guān)鍵。 在邏輯結(jié)構(gòu)的設(shè)計階段, 主要任務(wù)就是把概念結(jié)構(gòu)設(shè)計階段設(shè)計好 的基本E-R圖轉(zhuǎn)換為數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu),是獨(dú)立于任何一種數(shù)據(jù)模型的信息結(jié)構(gòu)。 在物理結(jié)構(gòu)設(shè)計階段, 通常分為兩步, 先確定數(shù)據(jù)庫的存取方 法和存儲結(jié)構(gòu), 后對物理結(jié)構(gòu)進(jìn)行評價, 評價重點(diǎn)是在時間和空間效率, 如果評價的結(jié)果滿 足設(shè)計要求,則可進(jìn)入物理實施階段,否

10、則, 就需要重新設(shè)計或修改物理結(jié)構(gòu),有時甚至需 要邏輯設(shè)計階段修改數(shù)據(jù)模型。 完成數(shù)據(jù)庫的物理設(shè)計之后, 就要用數(shù)據(jù)庫管理系統(tǒng)提供的 數(shù)據(jù)定義語言和其他實用程序?qū)?shù)據(jù)庫邏輯設(shè)計和物理設(shè)計結(jié)果嚴(yán)格的表示出來,這是還需要進(jìn)行調(diào)試。 這些都是一些理論方法, 還是需要在實際工作中運(yùn)用這些思想, 遵守設(shè)計原則, 注意各階段工作的細(xì)節(jié), 才能完成好數(shù)據(jù)庫設(shè)計工作。 在以后的學(xué)習(xí)中會更加注意這些細(xì)節(jié) 問題,這樣才會有所提高。八、附錄VB源代碼:1. 登陸界面代碼:Private Sub Command1_Click()Dim rpt As IntegerIf Text1.Text = ""

11、; ThenIf Text2.Text = "123456" ThenIf Text3.Text = Label4.Caption ThenForm5.HideForm1.ShowElserpt = MsgBox(" 驗證碼錯誤 ", vbRetryCancel + vbExclamation, " If rpt = vbRetry ThenText3.Text = ""Text3.SetFocusEnd IfEnd IfElserpt = MsgBox(" 密碼錯誤 ", vbRetryCancel +

12、 vbExclamation, " If rpt = vbRetry ThenText2.Text = ""Text2.SetFocusEnd IfEnd IfElserpt = MsgBox(" 用戶名錯誤 ", vbRetryCancel + vbExclamation, "If rpt = vbRetry ThenText1.Text = ""Text1.SetFocusEnd IfEnd IfEnd Sub驗證碼 ")密碼 ")用戶名 ")Private Sub Command

13、2_Click()Form7.ShowForm5.HideEnd SubPrivate Sub Form_Load()Label5.FontSize = 15Label5.ForeColor = vbRed RandomizeDim x As Longx = Int(90000 * Rnd(0) + 10000 Label4.Caption = xEnd Sub2學(xué)生信息界面代碼:Private sqlcon As New ADODB.Connection Private sqlres As New ADODB.Recordset Private sqlcmd As New ADODB.Com

14、mand Dim sqlstr As StringPrivate Sub Command1_Click()MakeSqlStr學(xué)生 where 學(xué)號 =" & sqlstrAdodc1.RecordSource = "select *fromAdodc1.RefreshEnd SubPrivate Sub Command2_Click()ret = MsgBox(" 是否要刪除 " + Adodc1.Recordset(" 學(xué)號 ") + " 號學(xué)生的記錄 ", vbYesNo, " 提示 &qu

15、ot;)If ret = vbYes Thensqlcmd.ActiveConnection = sqlconsqlcmd.CommandText = "delete from 學(xué)生 where 學(xué)號 =" + Adodc1.Recordset(" 學(xué)號 ") sqlcmd.ExecuteAdodc1.RecordSource = "select * from學(xué)生 "Adodc1.RefreshEnd IfEnd SubPrivate Sub Command3_Click()Dim sqlupstr As Stringsqlupstr

16、 = "select * from 學(xué)生 where 學(xué)號 =" & Trim(Text1.Text) sqlres.Open sqlupstr, sqlcon, adOpenDyamic, adLockPessimistic If Not sqlres.EOF ThenElse sqlres.AddNewsqlres(" 學(xué)號") = Text1.Text sqlres("") = Text2.Textsqlres(" 性別") = Text3.Text sqlres(" 出生日期 "

17、) = Text4.Text sqlres(" 系代號 ") = Text5.Text sqlres.UpdateEnd If sqlres.CloseAdodc1.RecordSource = "select * fromAdodc1.RefreshEnd Sub學(xué)生"Private Sub Command4_Click()Dim sqlupstr As Stringsqlupstr = "select *from學(xué)生 where 學(xué)號 =" & Trim(Text1.Text)sqlres.Open sqlupstr, s

18、qlcon, adOpenDyamic, adLockPessimistic If Not sqlres.EOF ThenElse sqlres.AddNew sqlres(" 學(xué)號") = Text1.Text sqlres("") = Text2.Text sqlres(" 性別") = Text3.Text sqlres(" 出生日期 ") = Text4.Text sqlres(" 系代號 ") = Text5.Text sqlres.UpdateEnd Ifsqlres.CloseAd

19、odc1.RecordSource = "select * from學(xué)生 "Adodc1.RefreshEnd SubPrivate Sub Form_Load() sqlcon.Provider = "SQLOLEDB" sqlcon.Open "Server=Y500-X64SQLEXPRESS;DataBase= 教務(wù)管理系統(tǒng) ;UID=sa;PWD=;" End SubPrivate Sub Form_Unload(Cancel As Integer)sqlcon.CloseEnd SubPublic Sub MakeSqlS

20、tr()sqlstr = ""If Trim(Text6.Text) <> "" Thensqlstr = Trim(Text6.Text)End IfIf Trim(Text6.Text) = "" Thensqlstr = Text1.TextEnd IfEnd Sub3. 學(xué)生課程成績代碼:Private sqlcon As New ADODB.ConnectionPrivate sqlres As New ADODB.RecordsetPrivate sqlcmd As New ADODB.CommandDim s

21、qlstr As StringPrivate Sub Command1_Click()MakeSqlStrAdodc1.RecordSource = "select *from選修 , 學(xué)生 where 選修 . 學(xué)號 =" & sqlstrAdodc1.RefreshEnd SubPrivate Sub Form_Load()sqlcon.Provider = "SQLOLEDB"sqlcon.Open "Server=Y500-X64SQLEXPRESS;DataBase= 教務(wù)管理系統(tǒng) ;UID=sa;PWD=;" En

22、d SubPublic Sub MakeSqlStr() sqlstr = ""If Trim(Text5.Text) <> "" Thensqlstr = Trim(Text5.Text)End IfIf Trim(Text5.Text) <> "" Then sqlstr = Text2.TextEnd IfEnd SubPrivate Sub Form_Unload(Cancel As Integer) sqlcon.CloseEnd SubPrivate Sub Image1_Click()Form1.

23、Picture = LoadPicture(picturefile)End Sub4. 教師信息代碼:Private sqlcon As New ADODB.ConnectionPrivate sqlres As New ADODB.RecordsetPrivate sqlcmd As New ADODB.Command Dim sqlstr As StringPrivate Sub Command1_Click()教師 where 工作證號 =" & sqlstrMakeSqlStrAdodc1.RecordSource = "select *fromAdodc1

24、.RefreshEnd SubPrivate Sub Command2_Click()ret = MsgBox(" 是否要刪除 " + Adodc1.Recordset("工作證號 ") + " 號教師的記錄 "vbYesNo, " 提示 ")If ret = vbYes Thensqlcmd.ActiveConnection = sqlconsqlcmd.CommandText = "delete from 教師 where 工作證號 =" + Adodc1.Recordset("

25、工作證號 ") sqlcmd.ExecuteAdodc1.RecordSource = "select * from教師 "Adodc1.RefreshEnd IfEnd SubPrivate Sub Command3_Click()Dim sqlupstr As Stringsqlupstr = "select * from教師 where 工作證號 =" & Trim(Text1.Text)sqlres.Open sqlupstr, sqlcon, adOpenDyamic, adLockPessimisticIf Not sqlr

26、es.EOF ThenElse sqlres.AddNew sqlres(" 工作證號 ") = Text1.Text sqlres("") = Text2.Text sqlres(" 職稱 ") = Text3.Text sqlres("") = Text4.Text sqlres(" 系代號 ") = Text5.Text sqlres.UpdateEnd Ifsqlres.CloseAdodc1.RecordSource = "select * from教師 "Adod

27、c1.RefreshEnd SubPrivate Sub Command4_Click()Dim sqlupstr As Stringsqlupstr = "select *from教師 where 工作證號 =" & Trim(Text1.Text)sqlres.Open sqlupstr, sqlcon, adOpenDyamic, adLockPessimisticIf Not sqlres.EOF ThenElse sqlres.AddNew sqlres(" 工作證號 ") = Text1.Text sqlres(""

28、;) = Text2.Text sqlres(" 職稱 ") = Text3.Text sqlres("") = Text4.Text sqlres(" 系代號 ") = Text5.Textsqlres.UpdateEnd Ifsqlres.CloseAdodc1.RecordSource = "select * from教師 "Adodc1.RefreshEnd SubPrivate Sub Form_Load()sqlcon.Provider = "SQLOLEDB"sqlcon.Open

29、 "Server=Y500-X64SQLEXPRESS;DataBase= 教務(wù)管理系統(tǒng) ;UID=sa;PWD=;" End SubPrivate Sub Form_Unload(Cancel As Integer)sqlcon.CloseEnd SubPublic Sub MakeSqlStr()sqlstr = ""If Trim(Text6.Text) <> "" Thensqlstr = Trim(Text6.Text)End IfIf Trim(Text6.Text) = "" Thensq

30、lstr = Text1.TextEnd IfEnd Sub5. 課程信息代碼:Private sqlcon As New ADODB.ConnectionPrivate sqlres As New ADODB.RecordsetPrivate sqlcmd As New ADODB.CommandDim sqlstr As StringPrivate Sub Command1_Click()MakeSqlStrAdodc1.RecordSource = "select *from選修 where 課程號 &學(xué)號 =" & sqlstrAdodc1.Refr

31、eshEnd SubPrivate Sub Form_Load()sqlcon.Provider = "SQLOLEDB"sqlcon.Open "Server=Y500-X64SQLEXPRESS;DataBase= 教務(wù)管理系統(tǒng) ;UID=sa;PWD=;" End SubPrivate Sub Form_Unload(Cancel As Integer) sqlcon.CloseEnd SubPublic Sub MakeSqlStr()sqlstr = ""If Trim(Text7.Text) <> "

32、" Thensqlstr = Trim(Text7.Text)End IfIf Trim(Text7.Text) = "" Thensqlstr = Text1.TextEnd IfEnd Sub6. 學(xué)生選課:Private sqlcon As New ADODB.ConnectionPrivate sqlres As New ADODB.RecordsetPrivate sqlcmd As New ADODB.Command Dim sqlstr As StringDim sqlupstr As StringPrivate Sub Command2_Click()Form8.HideEnd SubP

溫馨提示

  • 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

提交評論