版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、北 京 林 業(yè) 大 學(xué)2009學(xué)年 2009 學(xué)年第 一 學(xué)期 數(shù)據(jù)庫 實習(xí)報告書專 業(yè): 地理信息系統(tǒng) 班 級: 地信07 姓 名: 施敏燕 學(xué) 號: 070134121 實習(xí)地點: 計算機b8機房 輔導(dǎo)教師: 田萱 實習(xí)內(nèi)容: 數(shù)據(jù)庫教學(xué)網(wǎng)站建設(shè) 實習(xí)環(huán)境: sqlserver2000、macromedia dreameweaver8 實習(xí)步驟一、 系統(tǒng)需求分析1.1.教學(xué)網(wǎng)站主要功能模塊有如下。u 電子教案u 實驗指導(dǎo)書u 實習(xí)指導(dǎo)書u 經(jīng)典論文u 教學(xué)軟件u 站內(nèi)資料查詢模塊u 登錄模塊:本模塊設(shè)置有管理員登錄和普通用戶入口,用于分級管理。教學(xué)網(wǎng)站系統(tǒng)分為兩種身份登錄:教師和學(xué)生。登陸
2、時首先選擇身份,然后通過輸入用戶賬號和密碼進(jìn)入相應(yīng)的頁面。不同身份登錄實現(xiàn)不同的功能模塊,主要是讀寫功能占很大區(qū)別。a) 教師空間的功能模塊系統(tǒng)用戶的一種身份是管理員,即教師,能夠進(jìn)行資源的管理,頁面分模塊瀏覽和站內(nèi)資源查詢功能。b) 學(xué)生空間的功能模塊系統(tǒng)用戶的另一種身份是學(xué)生,即普通用戶。學(xué)生登錄網(wǎng)站主要是針對任課教師發(fā)布的資源進(jìn)行瀏覽、查詢(下載)。1.2數(shù)據(jù)流圖頂級數(shù)據(jù)流圖一級數(shù)據(jù)流圖二級數(shù)據(jù)流圖資源上傳:資源查詢: 二、 系統(tǒng)設(shè)計2.1實現(xiàn)編譯平臺和運行平臺介紹vbscript是visual basic script的簡稱,即 visual basic ,是asp動態(tài)網(wǎng)頁默認(rèn)的編程語
3、言,配合asp內(nèi)建對象和ado對象。目前這種語言廣泛應(yīng)用于網(wǎng)頁和asp程序制作,同時還可以直接作為一個可執(zhí)行程序。用于調(diào)試簡單的vb語句非常方便。其優(yōu)點是:由于vbscript由網(wǎng)頁瀏覽器解釋執(zhí)行,不需要增大服務(wù)器的負(fù)擔(dān)。 數(shù)據(jù)庫連接采用的是 adodb 的方式,對于數(shù)據(jù)庫的操作都用編程的方式實現(xiàn)。本系統(tǒng)在操作中運用了事務(wù)處理的方法,對于被意外終止的操作進(jìn)行回滾操作,比如說用戶在刪除數(shù)據(jù)的時候在對數(shù)據(jù)庫的更新過程中遇到障礙,數(shù)據(jù)會被恢復(fù)到?jīng)]提交前的狀態(tài),保持了數(shù)據(jù)庫的完整性。在編程的過程中采用了對數(shù)據(jù)庫進(jìn)行直接操作的形式,增加了程序的靈活性,比方對數(shù)據(jù)庫進(jìn)行更新和查詢的程序采用建立數(shù)據(jù)庫連接對
4、象(connection)和記錄集(recordset)并對其進(jìn)行直接操作的方式。2.2功能模塊圖:2.3 數(shù)據(jù)庫設(shè)計2.3.1數(shù)據(jù)庫的概念設(shè)計e-r圖1)用戶登錄子模塊:2)用戶-資源交互子模塊:2.3.2 數(shù)據(jù)庫的邏輯設(shè)計將e-r圖轉(zhuǎn)換為關(guān)系模式。1)users(sloginname,password,typeid)2)type(type , typeid)類型表:實現(xiàn)資源類別管理,有利于實現(xiàn)資源類型的添加、修改和刪除。3)source(typeid,title,titleid,site,fsize,dateandtimes,downloadtimes,descriptions)資源表:實
5、現(xiàn)資源管理,有利于實現(xiàn)資源的添加、修改和刪除。(單下劃線標(biāo)注的屬性為主碼,雙下劃線加亮顯示部分為外碼)2.3.3數(shù)據(jù)庫的邏輯設(shè)計生成關(guān)系模式圖: 2.3.4數(shù)據(jù)庫中各表結(jié)構(gòu)的設(shè)計,形式如下:users(用戶表)字段名含義數(shù)據(jù)類型長度空值情況主鍵或索引約束條件id用戶編號int4主鍵sloginname用戶名varchar20password密碼varchar20typeid賦予權(quán)限int4可為空 type(資源類型表)字段名含義數(shù)據(jù)類型長度空值情況主鍵或索引約束條件typeid類型編號varchar10主鍵type類型名稱varchar20唯一值source(資源表)字段名含義數(shù)據(jù)類型長度空值
6、情況主鍵或索引約束條件tltleid標(biāo)題編號varchar20主鍵title標(biāo)題varchar80唯一值typeid類型編號varchar10外鍵,引用了type表中的type字段site資源地址varchar100fsize資源大小varchar10缺省值為未知descriptions簡介varchar100缺省值為:無dateandtime上傳時間smalldatetime4缺省值為:getdate()editor作者varchar20缺省值為未知downloadtimes下載次數(shù)int4缺省值為0users表:type表:source表:2.3.5關(guān)系模式的規(guī)范化users表,type表
7、,source表關(guān)系中的沒一個屬性都是不可再分的簡單項,符合第一范式。users表,type表,source表的關(guān)系鍵均為單主屬性,即不存在非主屬性對主關(guān)系鍵的部分函數(shù)依賴,符合第二范式。users表,type表,source表中,每個非主屬性都不傳遞函數(shù)依賴于個表的主關(guān)系鍵,符合第三范式。在users表中,僅存在一個候選鍵即為主鍵sloginname;source表中,在允許重名的情況下,也只有titleid可以作為候選碼;type表中,但由于是但主屬性,也不存在主屬性對將的部分函數(shù)依賴和傳遞函數(shù)依賴。三、 技術(shù)方案 詳細(xì)設(shè)計1)登陸模塊admin.asp(登陸模塊) sadmin.asp(
8、在此登陸模塊)a) 在admin.asp頁面和sadmin.asp頁面中,管理員用戶需要填寫的html表單元素名稱表單元素類型含義最大長度用戶名text管理員登陸名20密碼password管理員密碼20b) 頁面中所涉及到的數(shù)據(jù)庫表信息此頁使用了users表。特別說明的是在教師登陸中,包含了三級檢驗,即用戶名、密碼和權(quán)限。權(quán)限值由表中的typeid賦予,若typeid為空,則不具備權(quán)限。因此在數(shù)據(jù)庫中必須要為管理員的typeid賦值,即賦予了權(quán)限。c) 頁面代碼分析信息匹配部分代碼:if not mm_rsuser.eof or not mm_rsuser.bof then session(m
9、m_username) = mm_valusername if (mm_flduserauthorization ) then session(mm_userauthorization) = cstr(mm_rsuser.fields.item(mm_flduserauthorization).value) else session(mm_userauthorization) = end if if cstr(request.querystring(accessdenied) and false then mm_redirectloginsuccess = request.querystrin
10、g(accessdenied) end if mm_rsuser.close response.redirect(mm_redirectloginsuccess) end if mm_rsuser.close response.redirect(mm_redirectloginfailed)end if首先判斷用戶名對象中包含記錄,進(jìn)行傳值;判斷其是否具有權(quán)限,若無,結(jié)束響應(yīng)。最后匹配成功,跳轉(zhuǎn)至管理員頁面,否則,跳轉(zhuǎn)至再次登陸頁面。2)信息分類顯示index.asp和adindex.aspclass.asp class1.asp class2.asp class3.asp class4.as
11、p class5.aspa) 在這一系列信息顯示分類模塊中,采用了超鏈接方式,無需用戶填寫的html表單元素。b) 頁面中所涉及到的數(shù)據(jù)庫表信息信息顯示分類模塊中用到了type表和source表利用了source表的typeid進(jìn)行了信息的分類顯示,且source表中的typeid必須與type表中的typeid相一致,由type表進(jìn)行資源類型的統(tǒng)一管理。另外利用source表顯示資源的詳細(xì)信息。c) 頁面代碼分析以class1.asp為例利用select語句查詢數(shù)據(jù)庫的相關(guān)信息select titleid, title, dbo.source.typeid, site, fsize, des
12、criptions, dateandtime, editor, downloadtimes, type from dbo.source, dbo.type where dbo.source.typeid=dbo.type.typeid and dbo.source.typeid = 1 order by dateandtime desc在source表中查詢typeid = 1的所有資源的詳細(xì)信息,利用等值連接在type表中查詢出type.typeid=source.typeid的資源的type屬性字段。3)資源查詢index.asp和adindex.aspqueryresult.aspa)
13、在教師首頁和學(xué)生首頁上,分別都有資源查詢模塊,用戶需要填寫的html表單元素名稱表單元素類型含義最大長度namestext要查詢的相關(guān)內(nèi)容50 b) 頁面中所涉及到的數(shù)據(jù)庫表信息在index.asp和adindex.asp頁面上僅是數(shù)據(jù)的輸入和接收,尚未涉及到數(shù)據(jù)庫的操作。在queryresult.asp頁面中,連接數(shù)據(jù)庫中的source表。這里的查詢做的比較簡單,是將輸入的字段與source表中的descriptions字段做比較。查詢出匹配信息。c) 頁面代碼分析queryresult.asp頁面:首先進(jìn)行傳值,將上一個頁面中的表單所接受到的信息賦給變量names,names= reque
14、st.form(names)利用數(shù)據(jù)源的方式連接數(shù)據(jù)庫:set conn = server.createobject(adodb.connection) conn.open db,sa ,sql2000創(chuàng)建記錄集: set rs=server.createobject(adodb.recordset)在source表的descriptions字段進(jìn)行匹配查詢,并保存在記錄集內(nèi): sql = select * from source where descriptions like % & names & % rs.open sql,conn最后輸出相應(yīng)資源的屬性信息。4)資源添加 freeadd
15、.aspadminsave.aspaddnew.aspfreeadd.asp為添加資源的表單,adminsave.asp對freeadd.asp的表單信息進(jìn)行檢查和顯示,由addnew.asp將記錄最后加入數(shù)據(jù)庫中。a) freeadd.asp資源添加頁面中,用戶需要填寫的html表單元素名稱表單元素類型含義最大長度types下拉菜單資源類型typeid下拉菜單類型idtitletext資源標(biāo)題100titleidtext資源編號100sitetext下載地址100editortext作者100fsizetext資源大小100descriptionstext資源簡介100 b) 頁面中所涉及到
16、的數(shù)據(jù)庫表信息在freeadd.asp頁面上僅是數(shù)據(jù)的輸入,尚未涉及到數(shù)據(jù)庫的操作。在adminsave.aspp頁面中,連接數(shù)據(jù)庫中的source表。source表中的主碼為titleid,需要檢驗寫入的編號是否重復(fù),否則無法寫入數(shù)據(jù)庫中。在addnew.asp頁面中,將新增資源寫入數(shù)據(jù)庫中。c) 頁面代碼分析freeadd.asp頁面關(guān)于下拉菜單的設(shè)計其中資源類型沒有傳值作用,僅起修飾作用;以類型編碼的下拉菜單為例,以下即為設(shè)計出的下拉菜單,5個選項依次所傳遞的值為1、2、3、4、5,即傳遞給source表中typeid的值。 (1)電子教案 (2)實驗指導(dǎo)書 (3)實習(xí)指導(dǎo)書 (4)教學(xué)
17、軟件 (5)經(jīng)典論文 adminsave.asp頁面中1、將前一頁面即freeadd.asp頁面中表單提交的值均賦為全局變量傳值,如typeid:session(typeid)=request.form(typeid),其他同理。2、此頁面還需判斷前文字框中輸入的內(nèi)容非空:定義變量,利用founerr賦值的變化連續(xù)判斷各文字框是否為空。dim founerr=false以判斷title為例,其余同理:if trim(request.form(title)= then founderr=true errmsg=errmsg+資源名稱不能為空end if若某個文字框為空,則變量founerrr=t
18、rue,此時: if founderr=true thenresponse.write 由于以下的原因不能保存數(shù)據(jù): response.write errmsg response.endend if輸出錯誤原因后結(jié)束響應(yīng),需用戶重新填寫。3、判斷數(shù)據(jù)庫中titleid是否已存在,避免記錄無法寫入數(shù)據(jù)庫的情況。連接數(shù)據(jù)庫,創(chuàng)建記錄集dim connset conn=server.createobject(adodb.connection)conn.open db,sa ,sql2000set rs=server.createobject(adodb.recordset)利用select語句查詢t
19、itleid,其值現(xiàn)保存在全局變量session(titleid)中,sql=select * from source where titleid = &session(titleid)& rs.open sql,conn,1,1判斷重復(fù)則結(jié)束響應(yīng):if not rs.eof thenresponse.write已使用過的資源編號,請重新輸入資源編號。 set rs=nothingconn.closeset conn=nothingresponse.endend if全部正確則顯示編輯信息等待用戶確認(rèn)。否則返回重新編輯。addnew.asp頁面連接數(shù)據(jù)庫,將全句變量對應(yīng)寫入source表的相關(guān)
20、字段:其中dateandtime自動返回為系統(tǒng)時間。rs(dateandtime)=now()四 結(jié)果1. 實習(xí)程序的使用說明書設(shè)置數(shù)據(jù)源名稱為db,用戶名:sa,密碼:sql2000一、登陸界面:有老師和學(xué)生兩種模式,教師登陸用戶名:teacher,密碼:teacher,權(quán)限由系統(tǒng)自動判別獲取。學(xué)生用戶直接由學(xué)生入口進(jìn)入即可。教師登陸錯誤,則跳轉(zhuǎn)到如下界面重新登陸: 學(xué)生主頁二按類別顯示信息五大內(nèi)容模塊均可查看詳細(xì)資源列表,點擊標(biāo)題欄后的more圖標(biāo):如點擊電子教案后的more圖標(biāo)進(jìn)行查看,詳細(xì)資源列表出顯示主頁所顯示的標(biāo)題,作者,文件大小,上傳時間外,還顯示了更多資源和信息,顯示如下:在該
21、頁邊面上方即可查看其它模塊。在主頁上(另外在分類查看頁面)點擊查看詳細(xì)資源列表,進(jìn)入資源總顯示模塊。 此模塊分頁顯示,可上下翻頁并返回首頁。也可分類查看資源的類別詳細(xì)信息。三、查詢模塊主頁有資源查詢的模塊,可搜索查找資源的關(guān)鍵字,進(jìn)行查詢:如輸入“一”:查詢結(jié)果如下顯示:如輸入“ppt”,則查詢結(jié)果如下:如輸入:“sql”四、教師用戶有資源添加模塊在教師用戶主頁右側(cè)有資源添加模塊,點擊進(jìn)入。輸入相關(guān)信息。若信息沒有填寫完整,出現(xiàn)錯誤提示,需返回重添,如下所示:若輸入的資源編號數(shù)據(jù)庫中已存在,如下所示:修改后,最終提交:出現(xiàn)信息確認(rèn)頁面:檢查無誤后,單擊確認(rèn)提交。如發(fā)現(xiàn)錯誤,則點擊重新添加。添加
22、成功頁面:查看資源總表,可發(fā)現(xiàn)新添加的信息“課程綜述”置頂顯示:返回首頁查看,“課程綜述”的信息也出現(xiàn)在了相應(yīng)的電子教案的類別里。五分析 總結(jié):一周的數(shù)據(jù)庫實習(xí)在忙碌中很快地就結(jié)束了??梢哉f這一周是高強度而又充實有收獲的。從網(wǎng)站功能的設(shè)計到數(shù)據(jù)庫的設(shè)計,再到具體技術(shù)方案的實施,甚至直到最后在寫這篇實驗報告的時候,這一學(xué)習(xí)實踐的過程我都在不斷地對整個方案進(jìn)行著修改和進(jìn)一步完善。在設(shè)計數(shù)據(jù)庫的最初,我在source表中還設(shè)計了與type表中type字段相對應(yīng)的type字段。但在添加文件的技術(shù)方案的具體實施過程中,我發(fā)現(xiàn)了傳值問題,若在添加文件的表單(freeadd.asp)中將值直接傳給數(shù)據(jù)庫so
23、urce表type字段,很難保證與type表中的type字段保持一致。反思一下,從數(shù)據(jù)庫設(shè)計的角度看,這種設(shè)計方案,出現(xiàn)了數(shù)據(jù)冗余,在添加修改刪除數(shù)據(jù)庫數(shù)據(jù)時,也易出現(xiàn)數(shù)據(jù)不一致性的問題。從關(guān)系模式規(guī)范化的思想來看,再source表中,其候選鍵為title或titleid,而在函數(shù)依賴中, typeid函數(shù)決定type字段,但決定因素中不包含候選鍵,不符合bcnf范式,從這個角度也看出了數(shù)據(jù)庫設(shè)計不合理的地方。 因此我最終刪除了source表中的type字段,通過引入外鍵的方式,在source表中引用了type表中的typeid字段,從而保證了數(shù)據(jù)一致性問題??梢哉f整個實習(xí)過程都是理論指導(dǎo)實踐,并且在實踐中不斷反思體會理論的科學(xué)意義。作為初學(xué)者,學(xué)習(xí)實踐之初較為較為重要的是學(xué)習(xí)他人設(shè)計的精華,不僅僅是技術(shù)上的,也包括他人在設(shè)計理念上的一些巧妙之處。比如在網(wǎng)頁頁面中,我學(xué)著建了c
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)藥學(xué)基礎(chǔ)(藥學(xué)基礎(chǔ)理論)試題及答案
- 2025年高職(旅游管理)旅游資源開發(fā)與規(guī)劃試題及答案
- 2025年中職(鐵道工程技術(shù))鐵道工程施工試題及答案
- 2025年高職(導(dǎo)航工程技術(shù))定位系統(tǒng)應(yīng)用試題及答案
- 2025年大學(xué)數(shù)字媒體藝術(shù)(數(shù)字媒體藝術(shù))試題及答案
- 2025年高職(電子信息工程技術(shù))電子系統(tǒng)集成試題及答案
- 2025年高職物業(yè)服務(wù)(設(shè)施設(shè)備維護(hù))試題及答案
- 2025年大學(xué)二年級(財政學(xué))稅收理論基礎(chǔ)試題及答案
- 2025年高職(網(wǎng)絡(luò)工程技術(shù))網(wǎng)絡(luò)安全防護(hù)試題及答案
- 2025年大學(xué)本科(財務(wù)管理)營運資金管理綜合測試題及答案
- 奧林巴斯微單相機E-PL8說明書
- 智能安全帽解決方案-智能安全帽
- 中醫(yī)臨床路徑18脾胃科
- 零星維修合同模板
- 九三學(xué)社申請入社人員簡歷表
- 聚氨酯門窗研究匯報
- 醫(yī)院電子病歷四級建設(shè)需求
- 上海2023屆高三二模數(shù)學(xué)卷匯總(全)
- 《銳角三角函數(shù)》復(fù)習(xí)(公開課)課件
- 計算機視覺PPT完整全套教學(xué)課件
- YC/T 564-2018基于消費體驗的中式卷煙感官評價方法
評論
0/150
提交評論