小型論壇數(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ù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

6、可以對會員發(fā)表的帖子進行轉移、置頂和刪除等操作。3.2數(shù)據(jù)庫邏輯設計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、回復數(shù)量、發(fā)帖表情、標題、正文、發(fā)帖時間、點擊數(shù)、

7、狀態(tài)、最后回復時間實體:跟帖屬性: 帖子編號、主帖ID、板塊ID、回復人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實體關系模式將用戶實體轉換為用戶關系:(用戶編號、用戶名、密碼、郵箱、性別、用戶級別、備注信息、注冊時間、狀態(tài)、用戶積分)。將版塊實體轉換為板塊關系:(板塊編號、板塊名稱、版

8、主、版面簡介、點擊數(shù)、發(fā)帖數(shù))。將主貼轉換為帖子關系:(帖子編號、板塊編號、發(fā)帖人ID、回復數(shù)量、發(fā)帖表情、標題、正文、發(fā)帖時間、點擊數(shù)、狀態(tài)、最后回復時間)。將跟帖實體轉換為帖子回復關系:(帖子編號、主帖ID、板塊ID、回復人ID、回帖表情、正文、回帖時間、點擊率)。3.2.4 數(shù)據(jù)庫中各表設計結果 基于上述數(shù)據(jù)庫邏輯結構設計的結果,現(xià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注冊時間當前值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回復數(shù)量TfaceInt發(fā)帖表情TtopicVarchar(50)標題TcontentsVarchar(50)正文TtimeDatetime發(fā)帖時間為當前日期TclickCountInt點擊數(shù)字段默認值為0TstateInt狀態(tài)Tstat

11、e字段默認值為1TlastReplydatetime最后回復時間字段的默認值為04.bbsReply(bbs回帖表)字段名稱數(shù)據(jù)類型說明約束備注RIDInt identity(1,1)帖子編號P自動增長列RtIDInt主帖IDFbbsTopic表TID字段外碼RuIDInt回帖人IDFbbsUsers表UID字段外碼RfaceInt回帖表情RcontentsVarchar(50)正文RtimeDatetime回帖時間字段默認值為當前日期RclickCountint點擊率3.3數(shù)據(jù)庫物理設計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(版塊表)建立及添加相應約束- 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(回帖)表的內容及各字段的約束-觸發(fā)器與存儲過程設計觸發(fā)器設計1bbsUsers表上的出發(fā)器觸發(fā)器設計 a.名稱:Tri_udelete描述:當一個用戶被管理員刪除,其發(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描述:當用戶的積分增加的一定值后,對應的用戶等級會發(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ā)器設計a.名稱:Tri_sdelete描述:當一個版塊被刪除時,屬于版塊的主帖也被刪除。代碼:Create trigger Tri_sdeleteOn bbsSection After deleteAsDelete from bbsTopic where TsID in(select SID from deleted)存儲過程設計下面是部分存儲過程的描述,包括插入數(shù)據(jù)、更新數(shù)據(jù)與查詢數(shù)據(jù)。這里我們設計了發(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.回復帖子的存儲過程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關系圖3.3.4確定關系模型的存取方法在實際設計中最常用的存取方法是索引法,使用索引可以大大減少數(shù)據(jù)的查詢時間,在建立索引時應遵循:在經(jīng)常需要搜索的列上建立索引;&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論