數(shù)據(jù)庫實驗報告之教學(xué)管理教案_第1頁
數(shù)據(jù)庫實驗報告之教學(xué)管理教案_第2頁
數(shù)據(jù)庫實驗報告之教學(xué)管理教案_第3頁
數(shù)據(jù)庫實驗報告之教學(xué)管理教案_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、實驗一 一、 實驗?zāi)康恼莆毡砗退饕慕⒎椒ㄒ约氨斫Y(jié)構(gòu)的修改方法,了解表關(guān)系建立的條件和作用,并實踐數(shù)據(jù)庫管理提供的數(shù)據(jù)完整性功能,加深對數(shù)據(jù)完整性的理解。要求建立表、修改表、建立索引、進(jìn)行數(shù)據(jù)完整性描述。二、 實驗環(huán)境SQL2000 、windowXP三、 實驗內(nèi)容利用Microsoft SQL Server2000 Transact-SQL語句在“教學(xué)管理”數(shù)據(jù)庫上創(chuàng)建“課程信息”、“教學(xué)任務(wù)”、“教師檔案”、“學(xué)生檔案”、“學(xué)生成績”共6張表。其中,重點主要放在各張表的邏輯結(jié)構(gòu)設(shè)計上?!罢n程信息”表用來反映課程的基本信息,包括課程名稱、課程類別、學(xué)分、學(xué)時等,“教師檔案”表和“學(xué)生成績”

2、表記錄了教師和學(xué)生的基本情況;“教學(xué)任務(wù)”表可以看出某一課程是由哪位教師講授,以及該門課程的開課年度和學(xué)期,通過這張表可以看出課程和任課老師之間的對應(yīng)關(guān)系;“學(xué)生選課”表給出了學(xué)生和課程之間的關(guān)系,可以看出某一個學(xué)生修了那些課程,某一課程有哪些學(xué)生選修;“學(xué)生成績”表則給出了學(xué)生成績的計算方法,并顯示了最終成績。通過這6張表,可以實現(xiàn)對教學(xué)任務(wù)的簡單管理。四、 實驗步驟1、 在“教學(xué)管理”數(shù)據(jù)庫中創(chuàng)建6張表2、 在已經(jīng)建立的數(shù)據(jù)庫中創(chuàng)建修改表結(jié)構(gòu)3、 用查詢分析器創(chuàng)建表的索引4、 了解表與表之間的邏輯依賴關(guān)系五、 實驗結(jié)果與實驗分析(一)創(chuàng)建表學(xué)生檔案表試驗教程中有,這里不指出其中的錯誤。1.

3、創(chuàng)建“教師檔案”表點擊運行之后,對“教學(xué)管理”數(shù)據(jù)庫進(jìn)行更新之后,發(fā)現(xiàn)數(shù)據(jù)庫的用戶表里面沒有出現(xiàn)“教師檔案”表,又看了下實驗書才知道忘記了在這個地方指定數(shù)據(jù)庫了。2. 創(chuàng)建“課程信息”表原來是我把SQL當(dāng)成是C語言了,將最后一句改成“學(xué)時%8=0”之后,又發(fā)現(xiàn)了新的錯誤:根據(jù)提示,將real后面的“(4)”刪除之后,“課程信息”表創(chuàng)建成功!3.創(chuàng)建的是“教學(xué)任務(wù)”表:看了很久沒看出毛病來,決定跟之前寫過的SQL文件比對一下,終于發(fā)現(xiàn)自己的錯誤了!Check語句不合法。應(yīng)該改成“學(xué)期 int check(學(xué)期 in('1','2')”就OK啦。4. 創(chuàng)建“學(xué)生成績

4、”表:平時成績和期末成績都是要精確到小數(shù)點后一位,而且對于后面“總成績 = 平時成績*0.3 + 期末成績*0.7”我不是很明白要怎么寫。在百度看了一些,發(fā)現(xiàn)有跟我的問題差不多的,遂趕緊借鑒:這里的平時成績、期末成績、總成績都不能按照實驗書里面寫的用real型,因為real型無法在定義中限制其位數(shù),float和decimal型就可以,因此這里三個字段的類型全部應(yīng)用該類型“decimal(3,1)”指有效位4位,小數(shù)點后一位。解決了小數(shù)點的問題之后,在定義的時候不能應(yīng)用另外的一列,那將要怎么來實現(xiàn)“總成績 = 平時成績*0.3 + 期末成績*0.7”呢?翻了下書,查找了關(guān)于完整性的說明,發(fā)現(xiàn)可以

5、利用constraint來解決這個問題!按照書上的說法,修改如下:成功之后,就要建立學(xué)生選課表,在網(wǎng)上查找到有人對“課程ID”定義如下之后,我意識到自己之前做的有關(guān)“課程ID”的表都出現(xiàn)了一些錯誤這里學(xué)生選課的(課程ID)是課程信息表中課程ID的外碼,因為之前在課程信息表建立是這樣子的:造成兩者之間長度不同。我覺得在預(yù)習(xí)實驗教材的時候,有一個地方可以修改表的結(jié)構(gòu)的,于是用企業(yè)管理器找到“課程信息”表中的“課程ID”試圖從這里面進(jìn)行修改:但是修改之后刷新數(shù)據(jù)庫,這個問題仍然存在!百度問問有類似的問題,網(wǎng)友解答如下:因此我只能將原來的表刪除,重新建立新的表可以修改的,只是限于不同的約束不能修改。缺

6、省約束就可以修改,并且不會出現(xiàn)錯誤。主鍵約束、外鍵約束、唯一約束、檢查約束好像不能直接修改最要原因是如果你要修改的這些約束所關(guān)系的表已經(jīng)有數(shù)據(jù),你修改的時候數(shù)據(jù)庫會自動檢索,約束一旦改變表數(shù)據(jù)會出現(xiàn)不符合。在oracle里面你如果直接用modify以上的約束將會出現(xiàn)SQL command not properly ended(SQL命令未正確結(jié)束)。要修改以上的關(guān)系可以在確定數(shù)據(jù)表數(shù)據(jù)符合的情況下使用SQL SERVER的企業(yè)管理器工具修改以上關(guān)系。(2) 、修改表所有的表建立成功之后,接下來的任務(wù)就是修改表了。主要是按照試驗教程一步一步地做。1.修改字段的“學(xué)生檔案”表中“姓名”的數(shù)據(jù)類型v

7、archar(16)成varchar(8);2.為“學(xué)生成績”表添加一個新的字段“總成績”,類型是real,默認(rèn)是NULL:列名重復(fù)了,那么就改成,把問題解決了。3.添加字段的取值范圍(三)、創(chuàng)建索引完全是照搬書上面的例子的,不過由于我的粗心,還是有錯誤:仔細(xì)一看,馬上就發(fā)現(xiàn)了問題了!原是少了“index”?。?) 、創(chuàng)建關(guān)系圖我打開我的關(guān)系圖的窗口,發(fā)現(xiàn)我建立起來的表和教程上面寫的差別很大!例如“學(xué)生選課”表的碼是由“學(xué)號”和“課程ID”組成的,我在創(chuàng)建表的時候沒有注意到,直接將學(xué)號設(shè)為主鍵,同樣的錯誤還出現(xiàn)在“教學(xué)任務(wù)”和“學(xué)生成績”這兩張表上面!而這幾張表又密切聯(lián)系,不是修修補補就能夠解決問題的!于是最后我決定刪除原來的表,重新再創(chuàng)建新表!由于之前創(chuàng)建表的SQL文本我都有保存下來,加上對建表逐漸熟悉,重新建表已不是很難的事情了!幾分鐘就搞定了!最后的關(guān)系圖如下:六、 心得體會1. 創(chuàng)建表很重要,但是更加重要的是要清楚表與表之間的邏輯關(guān)系,只有理清了表的邏輯關(guān)系,才不容

溫馨提示

  • 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

提交評論