小型論壇數(shù)據(jù)庫系統(tǒng)_第1頁
小型論壇數(shù)據(jù)庫系統(tǒng)_第2頁
小型論壇數(shù)據(jù)庫系統(tǒng)_第3頁
小型論壇數(shù)據(jù)庫系統(tǒng)_第4頁
小型論壇數(shù)據(jù)庫系統(tǒng)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、成績課程設(shè)計報告題 目 小型論壇數(shù)據(jù)庫系統(tǒng) 課 程 名 稱 數(shù)據(jù)庫應(yīng)用程序設(shè)計課程設(shè)計院 部 名 稱 專 業(yè)班 級 學(xué) 生 姓 名 學(xué) 號 課程設(shè)計地點課程設(shè)計學(xué)時指 導(dǎo) 教 師 金陵科技學(xué)院教務(wù)處制【注:根據(jù)課程設(shè)計大綱第四項具體要求撰寫課程設(shè)計報告】一、課程設(shè)計目的數(shù)據(jù)庫應(yīng)用程序課程設(shè)計旨在使學(xué)生對數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)過程有一個全面的認識和了解,在程序設(shè)計語言課程基本編程訓(xùn)練的基礎(chǔ)上,對數(shù)據(jù)庫應(yīng)用系統(tǒng)的流程和特點有較深入的了解,能夠自覺運用數(shù)據(jù)庫原理的理論知識指導(dǎo)軟件設(shè)計,學(xué)會數(shù)據(jù)庫的設(shè)計,并能對設(shè)計結(jié)果的優(yōu)劣進行正確評價,能夠使用已學(xué)過的程序設(shè)計語言編制具有可讀性和可維護性的良好風(fēng)格的程

2、序。培養(yǎng)快速學(xué)習(xí)新知識,并在項目中使用的能力。二、課程設(shè)計要求1.采取分組并分工合作的方式進行課程設(shè)計,獨立編制文檔,態(tài)度認真、工作量飽滿、完成設(shè)計所有要求;2.利用某種程序設(shè)計語言(以學(xué)生學(xué)過的C+、ASP、C#或JAVA為佳),用SQL SERVER 2005進行后臺數(shù)據(jù)庫管理,編寫出某個小型的管理信息系統(tǒng),該系統(tǒng)應(yīng)具備對數(shù)據(jù)進行錄入、查詢、刪除、修改、統(tǒng)計、報表,還包括各用戶界面的屏幕設(shè)計等功能;3.按照數(shù)據(jù)庫設(shè)計的基本步驟完成數(shù)據(jù)庫設(shè)計過程,要求數(shù)據(jù)庫結(jié)構(gòu)合理,符合實際,設(shè)計過程和文檔的編寫遵循軟件工程規(guī)范。要求注重數(shù)據(jù)庫系統(tǒng)的安全管理,包括數(shù)據(jù)備份、權(quán)限設(shè)置等,系統(tǒng)要有兩類登陸用戶:

3、系統(tǒng)用戶、一般用戶;4.軟件運行正確,提交的軟件及課程設(shè)計報告思路正確、撰寫規(guī)范、結(jié)構(gòu)合理;5.按照數(shù)據(jù)庫設(shè)計的六個步驟來撰寫課程設(shè)計報告,即需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫實施、數(shù)據(jù)庫運行維護,還要包括主要參考文獻、課程設(shè)計的體會、用戶的系統(tǒng)使用說明書、附錄(系統(tǒng)的主控源程序代碼)等。三、課程設(shè)計過程描述3.1系統(tǒng)簡易需求描述小型論壇數(shù)據(jù)庫系統(tǒng)(簡稱BBS)網(wǎng)絡(luò)縮小我們的世界,其發(fā)展的迅速帶動了人與人的交流。于是像論壇這種交流平臺便應(yīng)運而生。然而,網(wǎng)絡(luò)的應(yīng)用是離不開底層數(shù)據(jù)庫的支持,一個良好的數(shù)據(jù)庫系統(tǒng)是網(wǎng)絡(luò)高效率運行的堅石。本次課程設(shè)計旨在在設(shè)計一個優(yōu)秀的數(shù)據(jù)庫系

4、統(tǒng)來支持公司論壇系統(tǒng)的數(shù)據(jù)存儲、數(shù)據(jù)管理等功能。 一個基本的BBS論壇,可以大致分為以下流程:用戶登錄進入論壇(初始為游客,可以注冊為會員),就某個話題(帖子的主題)展開討論。通過發(fā)帖功能發(fā)布新的話題;通過回帖功能回復(fù)已有的話題;通過搜索功能查找已有的話題。管理員通過管理功能創(chuàng)建,編輯,刪除論壇的版塊;管理注冊的用戶;管理帖子。這樣的流程決定了BBS論壇系統(tǒng)的需求。(1)會員注冊:提供新會員注冊的功能,包括提供錄入信息的界面,檢查注冊信息的有效性,并將注冊會員信息保存在對應(yīng)數(shù)據(jù)庫的數(shù)據(jù)表中。(2)發(fā)表文章:提供會員發(fā)表文章的功能,未注冊的用戶不允許使用該功能。(3)文章查詢:對注冊會員和未注冊

5、會員提供文章查詢以及閱讀的功能,即提供對應(yīng)文章標(biāo)題信息,以及查看詳細內(nèi)容及回復(fù)文章的超鏈接(4)會員管理:當(dāng)網(wǎng)上論壇的會員完成注冊后,系統(tǒng)會在數(shù)據(jù)庫中加入會員的資料。包括會員名稱會員密碼會員E-mail等相關(guān)信息資料。同時,按照會員的不同身份,將特殊會員設(shè)置為版主,使他具備刪除本討論區(qū)中對應(yīng)文章等特殊操作的權(quán)利。管理者可以依據(jù)數(shù)據(jù)庫中注冊的特殊身份登錄到論壇后臺對會員信息進行管理。(5)論壇分類管理:根據(jù)不同的討論內(nèi)容,管理員將整個討論區(qū)劃分成不同的區(qū)域,會員可以選擇進入不同的討論區(qū),允許管理者對分類的版塊進行調(diào)整,同時提供不同的討論區(qū)中包括文章數(shù)量等的統(tǒng)計功能。(6)帖子管理:管理員和版主都

6、可以對會員發(fā)表的帖子進行轉(zhuǎn)移、置頂和刪除等操作。3.2數(shù)據(jù)庫邏輯設(shè)計3.2.1數(shù)據(jù)字典1 .名詞定義數(shù)據(jù)表描述縮寫定義bbs小型論壇DB數(shù)據(jù)庫數(shù)據(jù)字段類型縮寫定義PPrimary,主鍵UUnique,唯一性約束或唯一性索引FForeign key,外鍵IIndex,索引CCluster,聚簇索引NNull,空值3.2.2 實體及其屬性實體:用戶 屬性:用戶編號、用戶名、密碼、郵箱、性別、用戶級別、備注信息、注冊時間、狀態(tài)、用戶積分實體:板塊 屬性:板塊編號、板塊名稱、版主、版面簡介、點擊數(shù)、發(fā)帖數(shù)實體:主貼屬性:帖子編號、板塊編號、發(fā)帖人ID、回復(fù)數(shù)量、發(fā)帖表情、標(biāo)題、正文、發(fā)帖時間、點擊數(shù)、

7、狀態(tài)、最后回復(fù)時間實體:跟帖屬性: 帖子編號、主帖ID、板塊ID、回復(fù)人ID、回帖表情、正文、回帖時間、點擊率3.2.3 E-R圖1.用戶實體局部E-R圖圖1.用戶實體局部E-R圖2.版塊實體局部E-R圖圖2.版塊實體局部E-R圖3.主帖實體局部E-R圖圖3.主帖實體局部E-R圖4.跟帖實體局部E-R圖圖4.跟帖實體局部E-R圖5.合并局部E-R圖并生成BBS論壇系統(tǒng)總體E-R圖圖5.BBS論壇系統(tǒng)總體E-R 圖3.2.3實體關(guān)系模式將用戶實體轉(zhuǎn)換為用戶關(guān)系:(用戶編號、用戶名、密碼、郵箱、性別、用戶級別、備注信息、注冊時間、狀態(tài)、用戶積分)。將版塊實體轉(zhuǎn)換為板塊關(guān)系:(板塊編號、板塊名稱、版

8、主、版面簡介、點擊數(shù)、發(fā)帖數(shù))。將主貼轉(zhuǎn)換為帖子關(guān)系:(帖子編號、板塊編號、發(fā)帖人ID、回復(fù)數(shù)量、發(fā)帖表情、標(biāo)題、正文、發(fā)帖時間、點擊數(shù)、狀態(tài)、最后回復(fù)時間)。將跟帖實體轉(zhuǎn)換為帖子回復(fù)關(guān)系:(帖子編號、主帖ID、板塊ID、回復(fù)人ID、回帖表情、正文、回帖時間、點擊率)。3.2.4 數(shù)據(jù)庫中各表設(shè)計結(jié)果 基于上述數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計的結(jié)果,現(xiàn)在可以將其轉(zhuǎn)化為給定數(shù)據(jù)庫管理系統(tǒng)所支持的實際數(shù)據(jù)模型。1.bbsUsers(bbs用戶表)字段名稱數(shù)據(jù)類型說明約束備注UIDInt identity(1,1)用戶編號P自動增長列UnameVarchar(50)用戶名U唯一值UpasswordVarchar(

9、50)密碼默認為000000,密碼要大于6位UemailVarchar(50)郵箱形如%.%UsexChar(2)性別男,女UclassInt用戶等級默認為1 UremarkVachar(50)備注信息UregDatedatetime注冊時間當(dāng)前值UstateInt狀態(tài)默認為0(未登入UpointInt用戶積分默認為202.bbsSection(bbs版塊表)字段名稱數(shù)據(jù)類型說明約束備注SIDInt identity(1,1)版塊編號P自動增長列SnameVarchar(50)版塊名稱USmasterInt版主FbbsUsers表UID字段外碼SprofileVarchar(50)版面簡介Sc

10、lickCountInt點擊數(shù)字段默認值為0StopicCountInt發(fā)帖數(shù)字段默認值為03.bbsTopic(bbs主帖表)字段名稱數(shù)據(jù)類型說明約束備注TIDInt identity(1,1)帖子編號P自動增長列TsIDInt版塊編號FbbsSection表SID字段外碼TuIDInt發(fā)帖人IDFbbsUsers表UID字段外碼treplyCountInt回復(fù)數(shù)量TfaceInt發(fā)帖表情TtopicVarchar(50)標(biāo)題TcontentsVarchar(50)正文TtimeDatetime發(fā)帖時間為當(dāng)前日期TclickCountInt點擊數(shù)字段默認值為0TstateInt狀態(tài)Tstat

11、e字段默認值為1TlastReplydatetime最后回復(fù)時間字段的默認值為04.bbsReply(bbs回帖表)字段名稱數(shù)據(jù)類型說明約束備注RIDInt identity(1,1)帖子編號P自動增長列RtIDInt主帖IDFbbsTopic表TID字段外碼RuIDInt回帖人IDFbbsUsers表UID字段外碼RfaceInt回帖表情RcontentsVarchar(50)正文RtimeDatetime回帖時間字段默認值為當(dāng)前日期RclickCountint點擊率3.3數(shù)據(jù)庫物理設(shè)計3.3.1.數(shù)據(jù)庫的實施首先利用Powerdesign軟件自動生成源代碼,然后參照代碼,完善。實施的步驟如

12、下:使用SQL server 2000查詢分析器創(chuàng)建數(shù)據(jù)庫bbsDB,代碼如下:use master-新建數(shù)據(jù)bbsDB的庫- go if exists(select * from sysdatabases where name = 'bbsDB') drop database bbsDB create database bbsDB on ( name = 'bbsDB_MDF',filename = 'C:kcsjbbsDB_MDF.mdf', size = 10mb, filegrowth = 10% ) log on ( name = &#

13、39;bbsDB_LDF', filename = 'F:kcsjbbsDB_LDF.ldf', size = 1mb, maxsize = 20mb, filegrowth = 10% go -以上信息為新建的數(shù)據(jù)庫-創(chuàng)建各個表及其約束,代碼如下:use bbsDB go -新建bbsUsers表(用戶表)- - if exists(select * from sysobjects where name='bbsUsers') drop table bbsUsecreate table bbsUsers ( UID int identity(1,1)

14、not null, Uname varchar(50) not null,Upassword varchar(50) not null, Uemail varchar(50), Usex char(2) not null, Uclass int, Uremark varchar(50),UregDate datetime not null, Ustate int,Upoint int, ) go -為bbsUsers表添加各種約束-alter table bbsUsers add constraint PK_UID primary key(UID) alter table bbsUsers a

15、dd constraint CK_Upassword check(len(Upassword) >= 6) alter table bbsUsers add constraint DF_Upassword default('000000') for Upassword alter table bbsUsers add constraint CK_Uemail check(Uemail like '%') alter table bbsUsers add constraint DF_Usex default('男') for Usex alt

16、er table bbsUsers add constraint CK_Usex check(Usex='男' or Usex='女') alter table bbsUsers add constraint DF_Uclass default(1) for Uclass alter table bbsUsers add constraint DF_UregDate default(getDate() for UregDate alter table bbsUsers add constraint DF_Ustate default(0) for Ustate

17、alter table bbsUsers add constraint DF_Upoint default(20) for Upoint -以上信息為以建立的bbsUser(用戶表)及各種約束-go -新建bbsSection表(版塊表)- if exists(select * from sysobjects where name = 'bbsSection') drop table bbsSection create table bbsSection ( SID int identity(1,1) not null, Sname varchar(50) not null, S

18、masterID int not null, Sprofile varchar(50), SclickCount int,StopicCount int ) go -為表bbsSection(版塊表)添加約束- alter table bbsSection add constraint PK_SID primary key(SID) alter table bbsSection add constraint FK_SmasterID foreign key(SmasterID) references bbsUsers (UID) alter table bbsSection add const

19、raint DF_SclickCount default(0) for SclickCount alter table bbsSection add constraint DF_StopicCount default(0) for StopicCount -以上為表bbsSection(版塊表)建立及添加相應(yīng)約束- go-新建bbsTopic表(主貼表)- if exists(select * from sysobjects where name = 'bbsTopic') drop table bbsTopic create table bbsTopic ( TID int

20、identity(1,1) not null, TsID int not null, TuID int not null,TreplyCount int, Tface int, Ttopic varchar(50) not null, Tcontents varchar(50) not null,Ttime datetime, TclickCount int,Tstate int not null,TlastReply datetime ) go-為bbsTopic(主貼表)表個字段添加約束- alter table bbsTopic add constraint PK_TID primary

21、 key(TID) alter table bbsTopic add constraint FK_TsID foreign key(TsID) references bbsSection (SID) alter table bbsTopic add constraint FK_TuID foreign key(TuID) references bbsUsers (UID) alter table bbsTopic add constraint DF_TreplyCount default(0) for TreplyCount alter table bbsTopic add constrain

22、t CK_Tcontents check(len(Tcontents) >= 6) alter table bbsTopic add constraint DF_Ttime default(getDate() for Ttime alter table bbsTopic add constraint DF_TclickCount default(0) for TclickCountalter table bbsTopic add constraint DF_Tstate default(1) for Tstate alter table bbsTopic add constraint C

23、K_TlastReply check(TlastReply > Ttime) -以上為bbsTopic(主貼表)表建立及各字段的約束- go -新建表bbsReply(回帖表)- if exists(select * from sysobjects where name = 'bbsReply') drop table bbsReply create table bbsReply ( RID int identity(1,1) not null, RtID int not null,RuID int not null, Rface int,Rcontents varcha

24、r(50) not null,Rtime datetime,RclickCount int ) go-為bbsReply(回帖)表各個字段添加約束- alter table bbsReply add constraint PK_RID primary key(RID) alter table bbsReply add constraint FK_RtID foreign key(RtID) references bbsTopic(TID) alter table bbsReply add constraint FK_RuID foreign key(RuID) references bbsUs

25、ers(UID) alter table bbsReply add constraint DF_Rcontents check(len(Rcontents) >= 6) alter table bbsReply add constraint DF_Rtime default(getDate() for Rtime -以上為創(chuàng)建bbsReply(回帖)表的內(nèi)容及各字段的約束-觸發(fā)器與存儲過程設(shè)計觸發(fā)器設(shè)計1bbsUsers表上的出發(fā)器觸發(fā)器設(shè)計 a.名稱:Tri_udelete描述:當(dāng)一個用戶被管理員刪除,其發(fā)表的主帖和跟帖也要被刪除代碼:Use bbsDBGoCreate trigger

26、 Tri_udeleteOn bbsUsers After deleteAs Delete from bbsTopic where TuID in (select UID from deleted) Delete from bbsReply where RuID in (select UID from deleted)b.名稱:Tri_uupdate描述:當(dāng)用戶的積分增加的一定值后,對應(yīng)的用戶等級會發(fā)生變化。代碼:Create trigger Tri_uupdateOn bbsUsers After updateAsUpdate bbsUsers set Uclass=(1+(updated.

27、Upiont)/100) where Upoint in (select Upoint from updated)2. bbsSection表上的觸發(fā)器設(shè)計a.名稱:Tri_sdelete描述:當(dāng)一個版塊被刪除時,屬于版塊的主帖也被刪除。代碼:Create trigger Tri_sdeleteOn bbsSection After deleteAsDelete from bbsTopic where TsID in(select SID from deleted)存儲過程設(shè)計下面是部分存儲過程的描述,包括插入數(shù)據(jù)、更新數(shù)據(jù)與查詢數(shù)據(jù)。這里我們設(shè)計了發(fā)表帖子,查看帖子,回復(fù)帖子,搜索帖子,搜索

28、用戶,資料修改(用戶)6個存儲過程。1.發(fā)表帖子的存儲過程Create procedure Pro_Tpush TsID int,TuID int,Tface int, Ttopic varchar(50) , Tcontents varchar(50) , TlastReply datetime AsInsert Into bbsTopic(TsID,TuID,Tface,Ttopic,Tcontents,TlastReply) values(TsID,TuID,Tface,Ttopic,Tcontents,TlastReply)Go2查看帖子的存儲過程:Create procedure P

29、ro_TscanAs Select * from bbsTopicgo3.回復(fù)帖子的存儲過程Create procedure Pro_TreplyRtID int,RuID int,Rface int,Rcontents varchar(50)As Insert into bbsReply(RtID,RuID,Rface,Rcontents) Values(RtID, RuID, Rface, Rcontents)Go 4. 搜索帖子的存儲過程Create procedure Pro_TserchTID intAs Select * from bbsTopic where TID=TIDgo5

30、. 搜索用戶的存儲過程Create procedure Pro_UserchUID intAs Select *from bbsUsers where UID=UIDGo 6. 資料修改(用戶)的存儲過程Create procedure Pro_UupdateUID int,Uname varchar(50),Upassword varchar(50),Uemail varchar(50),Usex char(2),Uremark varchar(50)As Update bbsUsers set Uname=Uname,Upassword=Upassword,UemailUemail,Usex=Usex,Uremark=Uremark Where UID=UIDGo3.3.3關(guān)系圖3.3.4確定關(guān)系模型的存取方法在實際設(shè)計中最常用的存取方法是索引法,使用索引可以大大減少數(shù)據(jù)的查詢時間,在建立索引時應(yīng)遵循:在經(jīng)常需要搜索的列上建立索引;&

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論