《數(shù)據(jù)庫系統(tǒng)原理》課程設(shè)計報告校友網(wǎng)應(yīng)用系統(tǒng)數(shù)據(jù)庫設(shè)計
《《數(shù)據(jù)庫系統(tǒng)原理》課程設(shè)計報告校友網(wǎng)應(yīng)用系統(tǒng)數(shù)據(jù)庫設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)庫系統(tǒng)原理》課程設(shè)計報告校友網(wǎng)應(yīng)用系統(tǒng)數(shù)據(jù)庫設(shè)計(21頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 《數(shù)據(jù)庫系統(tǒng)原理》課程設(shè)計報告 題目: 校友網(wǎng)應(yīng)用系統(tǒng)數(shù)據(jù)庫設(shè)計 專業(yè): 網(wǎng)絡(luò)工程 班級: 0902 學(xué)號: 0930040250 姓名: 指導(dǎo)教師: 完成日期:2011年12月08日 1、 課程設(shè)計目的 1、掌握數(shù)據(jù)庫設(shè)計步驟,結(jié)合給出的應(yīng)用系統(tǒng),完成后臺數(shù)據(jù)庫的設(shè)計。
2、2、掌握數(shù)據(jù)庫設(shè)計輔助工具PowerDesigner或其他輔助工具(Visio、Rational Rose)的使用。 3、了解數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)的一般過程。 二、課程設(shè)計內(nèi)容 課程設(shè)計題目:校友網(wǎng)應(yīng)用系統(tǒng)數(shù)據(jù)庫設(shè)計。 課程設(shè)計內(nèi)容: 1、數(shù)據(jù)庫設(shè)計 系統(tǒng)需求分析、數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(畫出實(shí)體E-R圖)、數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(將E-R圖轉(zhuǎn)換成關(guān)系模型,即根據(jù)實(shí)體E-圖設(shè)計數(shù)據(jù)表結(jié)構(gòu)(主鍵,外鍵,默認(rèn)值,取值范圍等數(shù)據(jù)庫完整性約束))、數(shù)據(jù)庫物理設(shè)計(索引)、數(shù)據(jù)庫實(shí)施(使用SQL Server 2005創(chuàng)建數(shù)據(jù)庫及表,并根據(jù)需要創(chuàng)建視圖(觸發(fā)器,存儲過程))。 2、應(yīng)用系統(tǒng)與數(shù)據(jù)庫的
3、連接。 3、應(yīng)用系統(tǒng)功能需求: 隨著計算機(jī)網(wǎng)的發(fā)展,越來越深刻的改變了人們生活的方方面面,各種在線服務(wù)系統(tǒng),更是深刻的影響了人們的聯(lián)系方式,使得人們可以在遠(yuǎn)隔千里之遙隨時通訊,校友錄作為一種方便同學(xué)之間聯(lián)系的實(shí)用系統(tǒng)便應(yīng)運(yùn)而生,為同學(xué)之間進(jìn)行交流和聯(lián)系提供了一個便捷的平臺。為了加深校友與學(xué)校、校友之間的聯(lián)系,開發(fā)一個校友網(wǎng)。 系統(tǒng)功能目標(biāo): 1)用戶登陸,用戶通過提交用戶ID和用戶密碼進(jìn)行登陸,系統(tǒng)便會根據(jù)這些登陸進(jìn)入個人空間。 2)用戶資料的修改,成功登錄的合法用戶有權(quán)限修改自己的個人資料。 3)查看校友資料,添加好友。 4)相冊,用于實(shí)現(xiàn)照片上傳、瀏覽,同時實(shí)現(xiàn)對照片的動態(tài)管
4、理(刪除、分類)。 5)用戶消息發(fā)布,用戶可以發(fā)表說說,好友可以進(jìn)行回復(fù),用戶對好友的回復(fù)可以進(jìn)行回復(fù),只有好友才能瀏覽說說和回復(fù)。 6)留言板,通過留言板,用戶可以在班級空間上留言,以此作為校友間聯(lián)系的一種手段。 三、課程設(shè)計要求 1、按照給出的題目內(nèi)容 1)完成數(shù)據(jù)庫各階段的設(shè)計,及應(yīng)用系統(tǒng)與數(shù)據(jù)庫的連接調(diào)試。 2)詳細(xì)寫出各階段的設(shè)計結(jié)果(圖表或文字)。 3)至少要做出應(yīng)用系統(tǒng)的幾個界面,實(shí)現(xiàn)測試與數(shù)據(jù)庫的連接情況。(可以B/S模式,也可以C/S模式) 2、寫出課程設(shè)計報告,設(shè)計報告提交形式:電子文檔提交 3、個人獨(dú)立完成。 4、完成時間(2周) 四、課程設(shè)計過程
5、 1、需求分析 經(jīng)過以上對本系統(tǒng)的調(diào)研及可行性分析后,下面將對系統(tǒng)在功能上以及性能上進(jìn)行進(jìn)一步的需求分析。 (1)功能需求 系統(tǒng)功能目標(biāo): 1)用戶登陸,用戶通過提交用戶ID和用戶密碼進(jìn)行登陸,系統(tǒng)便會根據(jù)這些登陸進(jìn)入個人空間。 2)用戶資料的修改,成功登錄的合法用戶有權(quán)限修改自己的個人資料。 3)查看校友資料,添加好友。 4)相冊,用于實(shí)現(xiàn)照片上傳、瀏覽,同時實(shí)現(xiàn)對照片的動態(tài)管理(刪除、分類)。 5)用戶消息發(fā)布,用戶可以發(fā)表說說,好友可以進(jìn)行回復(fù),用戶對好友的回復(fù)可以進(jìn)行回復(fù),只有好友才能瀏覽說說和回復(fù)。 6)留言板,通過留言板,用戶可以在班級空間上留言,以此作為校友間聯(lián)
6、系的一種手段。 (2)性能需求 (1)系統(tǒng)處理能力:同學(xué)錄系統(tǒng)不但涉及到留言功能,班級相冊,說說管理等各個功能,還同時對多個不同用戶的操作進(jìn)行管理和控制,在這個過程中參與的用戶較多,較為復(fù)雜,因此系統(tǒng)要具有較好的大用戶量下的并發(fā)響應(yīng)能力. (2)處理時間:理想狀態(tài)下系統(tǒng)應(yīng)為用戶提供24小時服務(wù). (3)響應(yīng)速度:要求能夠響應(yīng)快速;響應(yīng)速度盡量控制在用戶可忍受等待的時間內(nèi),并給予提示. (4)主要依賴數(shù)據(jù)庫的良好維護(hù)和管理以及對數(shù)據(jù)的保密等措施。所以在數(shù)據(jù)在遇到嚴(yán)重的丟失或損壞后能快速的進(jìn)行恢復(fù)以繼續(xù)維持系統(tǒng)的正常運(yùn)行。所以本系統(tǒng)采用了定時對數(shù)據(jù)庫的備份和數(shù)據(jù)的恢復(fù)措
7、施。并采用了MD5的加密技術(shù)。 2、概念結(jié)構(gòu)設(shè)計 概念模型用于信息世界的建模。概念模型不依賴于某一個數(shù)據(jù)庫管理系統(tǒng)(DBMS),但可以方便的轉(zhuǎn)換為計算機(jī)上某一DBMS所支持的特定的數(shù)據(jù)模型。通過對用戶對數(shù)據(jù)的需求進(jìn)行綜合、歸納與抽象,將形成一個完善的概念模型,可以用E-R(實(shí)體聯(lián)系)圖來表示。E-R圖是對現(xiàn)實(shí)世界的一種抽象,它的主要成份是實(shí)體、屬性和聯(lián)系。 1. 實(shí)體:客觀存在并可以互相區(qū)分的事物稱為實(shí)體,是現(xiàn)實(shí)世界中各種事物的抽象。如本案例中一個班級為一個實(shí)體。一般來說,每個實(shí)體都相當(dāng)于數(shù)據(jù)庫中的一個表。實(shí)體用一個矩形框來表示。 2. 屬性:屬性是實(shí)體所具有的某些特征,通過屬性對實(shí)體
8、進(jìn)行刻畫。實(shí)體是由屬性組成的,如班級有班級名稱、創(chuàng)建人等屬性。一個實(shí)體本身具有許多屬性,能夠唯一標(biāo)識實(shí)體的屬性稱為該實(shí)體的碼。屬性用一個橢圓來表示。 3. 聯(lián)系:現(xiàn)實(shí)世界的事物內(nèi)部或事物之間都有聯(lián)系,這些聯(lián)系在信息世界里反映為實(shí)體內(nèi)部或?qū)嶓w之間的聯(lián)系,如班級屬于某個學(xué)校,那么班級和學(xué)校之間是“屬于”聯(lián)系。聯(lián)系有一對一聯(lián)系,一對多聯(lián)系和多對多聯(lián)系,分別用1:1、1:n和m:n來表示。如一個登錄用戶名只能填寫一份個人資料,那么登錄用戶和個人資料就是一對一聯(lián)系;一個班級只能屬于一個學(xué)校,而一個學(xué)??梢該碛卸鄠€班級,學(xué)校和班級之間就是一對多聯(lián)系;一個班級可以有多張相片,而一張相片也可為多個班級所擁有
9、,所以班級和相片之間是多對多聯(lián)系。聯(lián)系用菱形表示,并用線段聯(lián)接相關(guān)的兩個或多個實(shí)體,在菱形兩端線段上標(biāo)明聯(lián)系的類型。 根據(jù)上節(jié)的需求分析,我們作出一些E-R圖,如圖所示: 管理員表admin的各個屬性以及實(shí)體關(guān)系圖 用戶表users的各個屬性以及實(shí)體關(guān)系圖 班級表class的各個屬性以及實(shí)體關(guān)系圖 班級成員表class_users的各個屬性以及實(shí)體關(guān)系圖 班級留言表table messages的各個屬性以及實(shí)體關(guān)系圖 相冊表photo的各個屬性以及實(shí)體關(guān)系圖 說說發(fā)表表coldcase的各個屬性以及實(shí)體關(guān)系圖 說說回復(fù)表coldcase_rep
10、ly的各個屬性以及實(shí)體關(guān)系圖 校友網(wǎng)分布E-R圖合并圖如下圖所示: 3、 邏輯結(jié)構(gòu)設(shè)計 概念設(shè)計的結(jié)果得到一個與計算機(jī)、軟硬件的具體性能無關(guān)的全局概念模式。數(shù)據(jù)庫邏輯設(shè)計的任務(wù)是將概念結(jié)構(gòu)轉(zhuǎn)換成特定DBMS所支持的數(shù)據(jù)模型(如關(guān)系模型)的過程。本案例中我們將其轉(zhuǎn)換為關(guān)系模型。 將E-R圖轉(zhuǎn)換為關(guān)系模型實(shí)際上就是要將實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式,這種轉(zhuǎn)換一般遵循如下原則: 一個實(shí)體轉(zhuǎn)換為一個關(guān)系模式,實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的關(guān)鍵字就是關(guān)系的關(guān)鍵字。 一個1:1聯(lián)系可以轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,也可以與任意一端實(shí)體所對應(yīng)的關(guān)系合并,在被合并關(guān)系
11、中增加屬性,其新增的屬性為聯(lián)系本身的屬性和與聯(lián)系相關(guān)的另一個實(shí)體的碼。 一個1:n聯(lián)系可以轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,也可以與n端對應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實(shí)體的碼。如果與n端的關(guān)系模式合并則在n端實(shí)體集中增加新屬性,新屬性由聯(lián)系對應(yīng)的1端實(shí)體集的碼和聯(lián)系自身的屬性構(gòu)成,新增屬性后原關(guān)系的碼不變。 一個m:n聯(lián)系轉(zhuǎn)換為一個關(guān)系模式,與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身具有的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為各實(shí)體碼的組合。 (帶下劃線的屬性為主碼,紅色的為外碼) n 實(shí)體:管理員
12、 對應(yīng)關(guān)系模式:管理員表(管理員賬號,密碼) n 實(shí)體:用戶 對應(yīng)關(guān)系模式:用戶表(賬號,用戶名,密碼,真名,性別,年齡,班級,生日,QQ,msn,電話,郵箱,地址,郵編,格言,提示問題,提示問題答案) n 實(shí)體:班級 對應(yīng)關(guān)系模式:班級表(班級編號,班級名字,創(chuàng)建人賬號,創(chuàng)建時間,班級公開欄) n 實(shí)體:班級留言 對應(yīng)關(guān)系模式:班級留言表(留言編號,留言題目,留言內(nèi)容,留言者姓名,班級編號,留言時間) n 實(shí)體:相冊 對應(yīng)關(guān)系模式:相冊表(相片編號,相片名,大小,類型,上傳時間,上傳者姓名,題目,相冊描述,班級編號,相片寬帶,相片高度) n 實(shí)體:說說發(fā)表 對應(yīng)關(guān)系模式
13、:說說發(fā)表表(說說編號,說說內(nèi)容,發(fā)表者姓名,發(fā)表時間) n 實(shí)體:說說回復(fù) 對應(yīng)關(guān)系模式:說說回復(fù)表(說說編號,回復(fù)編號,回復(fù)內(nèi)容,回復(fù)者姓名,回復(fù)時間) n 聯(lián)系:班級成員 所聯(lián)系的實(shí)體及關(guān)鍵字:用戶(賬號),班級(班級編號)。 對應(yīng)關(guān)系模式:班級成員表(賬號,班級編號,身份) 4、 物理設(shè)計 在創(chuàng)建完數(shù)據(jù)庫之后,首先要做的就是在數(shù)據(jù)庫中創(chuàng)建表。通常來說,表的設(shè)計是由開發(fā)人員完成,必須滿足實(shí)際數(shù)據(jù)的內(nèi)容和關(guān)系數(shù)據(jù)庫的要求(比如范式要求),而數(shù)據(jù)庫管理員的任務(wù)是根據(jù)要求向數(shù)據(jù)庫中添加這些表。在邏輯上,數(shù)據(jù)庫由大量的表構(gòu)成,表中包含了由行和列組織起來的數(shù)據(jù);在物理上,表存儲在文件
14、中,表中的數(shù)據(jù)存儲于頁中。 在數(shù)據(jù)庫的開發(fā)和應(yīng)用中,快速地從數(shù)據(jù)庫中查詢到所需的數(shù)據(jù)是十分重要的。但是,隨著數(shù)據(jù)量的不斷增大,查詢所花費(fèi)時間也在大量增加。使用索引可以對查詢速度進(jìn)行優(yōu)化,Oracle使用索引指向數(shù)據(jù)頁上某行的位置,這樣查詢數(shù)據(jù)就不需要查遍表的所有數(shù)據(jù)頁了。 數(shù)據(jù)質(zhì)量對于使用效率和數(shù)據(jù)庫程序運(yùn)行效率起著決定性的作用。如果數(shù)據(jù)庫中存在大量錯誤數(shù)據(jù),那么效率會大大降低。在數(shù)據(jù)庫的使用中,諸如數(shù)據(jù)錄入錯誤和表間關(guān)聯(lián)數(shù)據(jù)的修改等操作都會造成錯誤數(shù)據(jù)的產(chǎn)生。因此,不論從首次輸入還是收集到存儲的整個過程都需保證數(shù)據(jù)的唯一性和一致性。數(shù)據(jù)的唯一性、一致性稱為數(shù)據(jù)完整性。數(shù)據(jù)完整性分為實(shí)體完
15、整性、引用完整性(也稱為參照完整性)和用戶自定義完整性。實(shí)體完整性一般通過設(shè)置主鍵來實(shí)現(xiàn),參照完整性一般通過設(shè)置外鍵實(shí)現(xiàn),而用戶自定義完整性則可通過CHECK約束、DEFAULT約束和UNIQUE約束實(shí)現(xiàn)。 把邏輯設(shè)計得到的關(guān)系模式轉(zhuǎn)換為表,同時為實(shí)現(xiàn)數(shù)據(jù)完整性設(shè)置主、外鍵及各種約束。另外根據(jù)系統(tǒng)的查詢要求在表上建立索引。 建立索引。考慮系統(tǒng)對表的查詢頻率,為查詢次數(shù)較多的表的字段建立索引。例如,進(jìn)入班級留言時,系統(tǒng)會自動檢索出留言信息顯示出來,系統(tǒng)通常是按照發(fā)表評的時間檢索,則可為留言表的留言時間建立聚集索引。(提示:為表設(shè)置主鍵時,數(shù)據(jù)庫會自動為主鍵建立聚集索引,如果要在其他屬性上
16、建立聚集索引,可先將主鍵去除,再使用ALTER TABLE [TABLENAME] ADD CONSTRAINT [PK_TABLEFIELD] PRIMARY KEY NONCLUSTERED)修改主鍵索引為非聚集索引,再在相關(guān)屬性上建立聚集索引) 5、 數(shù)據(jù)庫實(shí)施 6、 應(yīng)用系統(tǒng)測試(系統(tǒng)運(yùn)行結(jié)果截圖) 5、 課程設(shè)計體會 本系統(tǒng)完成了前臺提供用戶使用校友網(wǎng)的各種功能,后臺提供管理員對數(shù)據(jù)庫進(jìn)行維護(hù)的功能。通過這一階段的學(xué)習(xí)和研究,該項目終于完成。當(dāng)然,由于畢業(yè)設(shè)計時間相對較短,加上本人經(jīng)驗不足,技巧不夠純熟,在程序設(shè)計上還存在一些不足,
17、還有不盡人意之處,所以系統(tǒng)的最終成果還不是很成熟,仍需要在實(shí)踐中發(fā)現(xiàn)問題并解決問題,從而逐步改善提高系統(tǒng)功能。 在系統(tǒng)的分析,設(shè)計,實(shí)現(xiàn),調(diào)試過程中,曾遇到許多大大小小的問題,但正是在發(fā)現(xiàn)、解決這些問題的過程中,我深刻體會到耐心、恒心、信心、細(xì)心對于一個系統(tǒng)開發(fā)人員來說是何等重要;并且讓我明白碰到問題要學(xué)會向同學(xué)請教或自己看書上網(wǎng)搜索,這樣才能不斷提高自學(xué)能力。通過對本系統(tǒng)的開發(fā)使我對大學(xué)課程書本上的理論知識有了更深一層的了解,使我學(xué)會了如何利用所學(xué)的知識,把理論結(jié)合于實(shí)踐中,進(jìn)一步掌握了系統(tǒng)開發(fā)的規(guī)律和方法,從而對本專業(yè)有了更深刻的認(rèn)識。此后,我會加倍努力的去研究探索,在熟練的基礎(chǔ)上掌握更
18、多的新型技術(shù),來提高自身的開發(fā)水平。同時,寫的過程中也需要認(rèn)真細(xì)心,正所謂細(xì)節(jié)決定成敗,這些都將有助于培養(yǎng)我日后良好的做事風(fēng)格。 總之,這次課程設(shè)計我學(xué)會了不少知識,更加明白樹立對自己工作能力的信心是多么的重要,相信對今后的學(xué)習(xí)生活有很大的影響。 六、源代碼 創(chuàng)建一個校友網(wǎng)數(shù)據(jù)庫 create database AlumnusNetDB on primary (name=AlumnusNetData, filename=d:\db\AlumnusNetData.mdf, size=3, filegrowth=2) log on (name=AlumnusNetLog,
19、filename=d:\db\AlumnusNetLog.ldf, size=1, maxsize=10, filegrowth=10%) 創(chuàng)建管理員表 use AlumnusNetDB create table admin ( userid varchar(20) primary key, userpwd varchar(20) ); 創(chuàng)建用戶表 create table users ( user_id int primary key, user_name varchar(10), user_pwd varchar(20), user_truename va
20、rchar(10), user_sex char(1) check (user_sex in (男,女)), user_age int, user_class varchar(20), user_birthday datetime, user_qq varchar(20), user_msn varchar(20), user_tel varchar(20), user_email varchar(20) check (user_email like %@%.%), user_add varchar(50), user_postcode varchar(6), user_
21、motto text, user_question text, user_answer text ); 創(chuàng)建班級表 create table class ( class_id int primary key, class_name varchar(20), class_masterID int, class_createtime datetime, class_content text, foreign key (class_masterID) references users(user_id) ); 創(chuàng)建班級成員表 create table class_user
22、s ( user_id int, class_id int, degree varchar(10) check (degree in (創(chuàng)建人,普通學(xué)生,老師)), primary key (user_id,class_id), foreign key (user_id) references users(user_id), foreign key (class_id) references class(class_id) ); 創(chuàng)建班級留言表 create table messages ( message_id int primary key, message_ti
23、tle varchar(20), message_content text, message_name varchar(10), class_id int, message_time datetime, foreign key (class_id) references class(class_id) ); 創(chuàng)建相冊表 create table photo ( photo_id int primary key, photo_name varchar(20), photo_size int, photo_type varchar(10), photo_uptime d
24、atetime, photo_upusername varchar(10), photo_title varchar(20), photo_remark text, class_id int, photo_width int, photo_height int, photo_format varchar(10), foreign key (class_id) references class(class_id) ); 創(chuàng)建說說發(fā)表表 create table coldcase ( coldcase_id int primary key, coldcase_conte
25、nt text, coldcase_name varchar(10), coldcase_time datetime, ); 創(chuàng)建說說回復(fù)表 create table coldcase_reply ( coldcase_id int, reply_id int, reply_content text, reply_name varchar(10), reply_time datetime, primary key (coldcase_id,reply_id), foreign key (coldcase_id) references coldcase(coldcase_id) ); 參考文獻(xiàn) 【1】王珊,薩師煊,數(shù)據(jù)庫系統(tǒng)概論(第四版),高等教育出版社。 【2】錢雪忠.數(shù)據(jù)庫原理及應(yīng)用(第二版).北京:北京郵電大學(xué)出版社,2007 【3】王珊.數(shù)據(jù)庫技術(shù)與聯(lián)機(jī)分析處理.北京:北京科學(xué)出版社,1998
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。