数据库管理与编程课程设计说明书.docx

上传人:b****4 文档编号:6993230 上传时间:2023-05-10 格式:DOCX 页数:18 大小:234.82KB
下载 相关 举报
数据库管理与编程课程设计说明书.docx_第1页
第1页 / 共18页
数据库管理与编程课程设计说明书.docx_第2页
第2页 / 共18页
数据库管理与编程课程设计说明书.docx_第3页
第3页 / 共18页
数据库管理与编程课程设计说明书.docx_第4页
第4页 / 共18页
数据库管理与编程课程设计说明书.docx_第5页
第5页 / 共18页
数据库管理与编程课程设计说明书.docx_第6页
第6页 / 共18页
数据库管理与编程课程设计说明书.docx_第7页
第7页 / 共18页
数据库管理与编程课程设计说明书.docx_第8页
第8页 / 共18页
数据库管理与编程课程设计说明书.docx_第9页
第9页 / 共18页
数据库管理与编程课程设计说明书.docx_第10页
第10页 / 共18页
数据库管理与编程课程设计说明书.docx_第11页
第11页 / 共18页
数据库管理与编程课程设计说明书.docx_第12页
第12页 / 共18页
数据库管理与编程课程设计说明书.docx_第13页
第13页 / 共18页
数据库管理与编程课程设计说明书.docx_第14页
第14页 / 共18页
数据库管理与编程课程设计说明书.docx_第15页
第15页 / 共18页
数据库管理与编程课程设计说明书.docx_第16页
第16页 / 共18页
数据库管理与编程课程设计说明书.docx_第17页
第17页 / 共18页
数据库管理与编程课程设计说明书.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库管理与编程课程设计说明书.docx

《数据库管理与编程课程设计说明书.docx》由会员分享,可在线阅读,更多相关《数据库管理与编程课程设计说明书.docx(18页珍藏版)》请在冰点文库上搜索。

数据库管理与编程课程设计说明书.docx

数据库管理与编程课程设计说明书

 

苏州市职业大学

课程设计说明书

名称数据库管理与编程课程设计

2010年1月11日至2010年1月15日共1周

院 系运算机工程系

班级08信息管理1

姓名曹飞飞

系 主 任李金祥

教研室主任叶良

指导教师程媛滕刚

本案例为一个校友录系统。

校友录网站功能共分为两大部份:

用户个人信息功能和班级功能。

用户个人信息功能中包括:

创建新账号(包括用户个人信息)、编辑用户个人信息和上传更新用户个人头像。

班级功能中包括:

搜索班级、创建学校、创建班级、加入班级、班级留言、班级相册、上传相册和相册留言等功能。

该校友录系统的后台系统采用SQLServer2000作为数据库,通过实施该数据库解决方案,学习到网站应用程序架设的全进程,掌握数据库系统的开发、实现和保护。

本次课程设计将依照图中数据库生命周期的各个阶段,慢慢完成整个系统的设计。

一、需求分析和数据库设计

通常,校友录网站的操作流程如下所示:

1.新用户通过注册系统,取得用户登录账号。

同时发送用户账号信息和个人信息到后台数据库相关表进行存储。

2.注册用户可修改登录密码、个人信息及个人头像,并将数据发送到后台数据库相关表进行更新。

3.注册用户可通过搜索功能进行同窗、班级和学校搜索,并可加入搜索到的相关班级,同时将相关数据发送到后台数据库相关表进行更新。

若是没有搜索到学校或班级,则可创建新的学校或班级。

4.用户登录进入校友录后,能够通过数据库的查询列举所加入的所有班级。

5.班级成员可在班级首页的留言板或班级留言板中进行留言,同时发送相关留言信息到后台数据库相关表进行存储。

6.班级成员可在上传照片页面中上传相片到所属的所有班级,同时发送相关留言信息到后台数据库相关表进行存储。

7.班级成员可在班级相册页面内对照片进行评论,同时发送相关评论信息到后台数据库相关表进行存储。

1)按照上述需求分析结果,作出E-R图(可利用MicrosoftOfficeVisio2003工具)。

图1

2)把完成E-R图转换为关系模式(每一实体和多对多联系转换为关系模式)。

用户(登录名,密码)

个人资料(登录名,用户名,性别,诞生日期,注册时刻,电话,住址,E-MAIL,头像)

班级(班级编号,班级名称,创建者,创建日期,所属学校)

学校(学校编号,学校名称)

留言(留言编号,留言内容,留言人,留言日期,修改日期,所属班级)

相片(相片编号,相片名称,上传人,上传日期,相片路径,相片大小)

评论(评论编号,评论人,评论日期,评论内容,评论相片,所属班级)

用户班级(登录名,班级编号)

相册表(班级编号,相片编号)

二、数据库部署

1)创建数据库SchoolMates,其数据文件名为,置于D:

目录下;日记文件名为,置于根目录下;设置恢复模式为“完整”。

启动“企业管理器”—‘“local”—“数据库”,右击“新建数据库”,进行设置,如下图:

图2

图3

图4

三、表和索引的创建及数据完整性

1)建表。

按照关系模式设计表,为表的各属性选择适合的数据类型和属性可否为空。

A:

利用企业管理器:

启动“企业管理器”—“local”—“数据库—”“SchoolMates”—“表”,右击“新建表”

启动“企业管理器”,右击表名选择“设计表”,选中即将设置为主键的列,点击

图标,设置成功,列明前就会出现

标志,保留即可。

表MessageBoard

图5

B:

SQL语句

表Comment:

CREATETABLEComment(CommentIDintNOTNULL

PRIMARYKEY,

ClassIDintNOTNULL,

CommentDatedatetimeNULLDEFAULT(getdate()),

CommentContentvarchar(200)NOTNULL,

CommentByvarchar(20)NOTNULL,

PhotoIDintNOTNULL

图6

表Photo:

CREATETABLEPhoto(PhotoIDintNOTNULL

PRIMARYKEY,

PhotoNamevarchar(200)NOTNULL,

UploadByvarchar(20)NOTNULL,

UploadDatedatetimeNULLDEFAULT(getdate()),

PhotoPathvarchar(50)NOTNULLUNIQUE,

PhotoSizeIntNOTNULL

表SchoolInfo:

CREATETABLESchoolInfo(SchoolIDintNOTNULL

PRIMARYKEY,

SchoolNamevarchar(200)NOTNULLUNIQUE

表UserInfo:

CREATETABLEUserInfo(UserIDvarchar(20)NOTNULL

PRIMARYKEY,

Passwordvarchar(20)NOTNULL,

Sexchar

(2)CHECK(Sexin('男','女'))NOTNULL,

Namevarchar(20)NOTNULL,

BirthdatetimeNOTNULL,

RegDatedatetimeNULLDEFAULT(getdate()),

Mobilevarchar(20),

Addressvarchar(200),

Emailvarchar(50)NOTNULL,

Imagevarchar(100)

表ClassInfo:

CREATETABLEClassInfo(ClassIDintNOTNULL

PRIMARYKEY,

ClassNamevarchar(50)NOTNULL,

CreateDatedatetimeNULLDEFAULT(getdate()),

SchoolIDintNOTNULL)

2)设置主键,为数据库SchoolMates的每一个表设置主键。

每一个表都应该具有主键,主键的存在就代表着表结构的完整性,表的记录必需得有唯一区分的字段,主键主如果用于与其他表的外键关联,本记录的修改与删除,若是没有主键,这些操作会变的超级麻烦。

(提示:

能够利用自动编号作为主键,就是新建一个ID字段,自动增加)

表Album的主键是(ClassID,PhotoID)

表ClassInfo的主键是ClassID

表Commnet的主键是CommentID

表MessageBoard的主键是MessageID

表Photo的主键是PhotoID

表SchoolInfo的主键是SchoolID

表UserAccount的主键是UserID

表UserClass的主键是UserID

表UserInfo的主键是UserID

3)设置外键。

例如,班级表中的属性所属学校,引用学校表的学校编号,所以应该将班级表的所属学校设置为外键。

例如,表Album的外键是ClassID,不能够为空;表Album的外键是PhotoID,不能够为空。

启动“企业管理器”—“local”—“数据库—”“SchoolMates”—“表”,打开表,右击选择“关系”—“新建”,设置:

图7

4)设置其他约束。

按照系统的实际要求,设置约束。

例如,用户资料中的性别只能为男或女,则可对性别设置CHECK约束;用户注册日期若是为空,就默以为当前时刻,则可设置DEFAULT约束;图片表中的图片若是不允许重复,则可设置UNIQUE约束,等等。

表ClassInfo中的CreateDate默以为系统当前时刻

表Commnet中的CommentDate默以为系统当前时刻

表MessageBoard中的CreateDate和EditDate默以为系统当前时刻

表Photo中的UploadDate默以为系统当前时刻

表Photo中的PhotoPath唯一

表SchoolInfo中的SchoolName字段唯一

表UserInfo中的RegDate默以为系统当前时刻

5)成立索引。

考虑系统对表的查询频率,为查询次数较多的表的字段成立索引。

例如,进入班级相册时,系统会自动检索出相片的评论信息显示出来,系统一般是依照发表评论的时刻检索,则可为评论表的评论时刻成立聚集索引。

(提示:

为表设置主键时,数据库会自动为主键成立聚集索引,若是要在其他属性上成立聚集索引,可先将主键去除,再利用ALTERTABLE[TABLENAME]ADDCONSTRAINT[PK_TABLEFIELD]PRIMARYKEYNONCLUSTERED)修改主键索引为非聚集索引,再在相关属性上成立聚集索引)

①表Commnet中的主键字段CommentID具有唯一、非聚集索引:

CREATEUNIQUENONCLUSTEREDINDEXcomment

ONComment(CommentID)

②表Commne中的字段CommentDate具有聚集索引:

再对字段CommentDate创建聚集索引前先解除主键再成立聚集索引

CREATECLUSTEREDINDEXcom1

ONComment(CommentDate)

③表Photo的字段PhotoPath具有唯一、非聚集索引:

CREATEUNIQUENONCLUSTEREDINDEXphoto1

ONPhoto(PhotoPath)

四、数据库试运行

1)为班级相册成立视图vClassPhoto,便于查询班级照片信息及照片评论数。

CREATEVIEWvClassPhoto

AS

SELECT,PhotoName,UploadBy,UploadDate,PhotoPath,PhotoSize,COUNT(CommentBy)AS人数

FROMPhoto,Comment

WHERE=

GROUPBY,PhotoName,UploadBy,UploadDate,PhotoPath,PhotoSize

2)为新注册用户成立存储进程CreateUser,用于向表UserAccount和表UserInfo插入一条新用户信息。

CREATEPROCEDURECreateUser(

@useridvarchar(20),

@passwordvarchar(20),

@sexchar

(2),

@namevarchar(20),

@birthdatetime,

@mobilevarchar(20),

@addressvarchar(200),

@emailvarchar(50),

@imagevarchar(100)

AS

IFEXISTS(SELECT*

FROMUserInfo

WHEREUserID=@userid)

RETURN-1

IF@sexNOTIN('男','女')

RETURN-2

INSERTINTOUserInfo

VALUES(@userid,@password,@sex,@name,@birth,getdate(),@mobile,

@address,@email,@image)

RETURN0

调试:

declare@rtint

exec@rt=createuser'1','1','男','1','1981-10-14','1','1','1','1'

select@rt

3)为已注册用户成立存储进程UpdateUser,用于更新表UserAccount和表UserInfo中的一条用户信息。

CREATEPROCEDUREUpdateUser(@addressvarchar(200))

AS

UPDATEUserInfo

SETAddress=@address

WHEREAddressIN('昆山','吴江','观前街','张家港','常熟')

调试:

EXECUpdateUser'苏州'

4)为上传照片者成立存储进程UploadPhoto,用于向Photo表和Album表插入一条记录。

createproceuploadphoto

(@PhotoID,@ClassID,@PhotoName,@UploadBy,

@UploadDate,@PhotoPath,PhotoSize)

AS

begintran

begintry

insertintoAlbumvalues(@PhotoID,@ClassID)

insertintophotovalues(@PhotoID,@PhotoName,@UploadBy,

@UploadDate,@PhotoPath,PhotoSize)

endtry

begincatch

raiserror('插入失败',16,1)

rollbacktran

endcatch

五、数据库的安全性

1)在服务器端为应用程序成立登录名webapp,并设置为SQLServer身份验证,以使前台程序能够访问SQLServer;

启动“企业管理器”—“local”—“安全性”—“登录”,进行设置:

图8

2)在数据库SchoolMates中创建用户webapp,使程序能够访问并只能访问SchoolMates;

启动“企业管理器”—“local”—“数据库”—“SchoolMates”—“用户”右键“新建用户”进行新建:

图9

3)为用户webapp给予适当的权限(对象的查询、插入、删除和更新),避免用户错误或歹意的的访问和修改其他数据库中的数据。

启动“企业管理器”—“local”—“数据库”—“SchoolMates”—“用户”,双击“webapp”,点击“权限”,为用户webapp给予适当的权限:

图10

六、数据库保护

1)计划备份策略。

按照系统数据库的大小,天天获取的数据量进行估算,计划备份策略。

利用完全数据库备份方式:

一、打开企业管理器,右键选择“所有任务”—“备份数据库”,进行设置:

图11

2)成立保护计划,备份用户数据库。

按照计划的备份策略,成立保护计划,实现自动备份数据库。

一、打开企业管理器,右键选择“所有任务”—“保护计划”,进入设置向导:

二、下一步“选择数据库”,如图13:

3、下一步“更新数据优化信息”,下一步“检查数据完整性”。

4、下一步“指定数据库保护计划”,默许的是1周备份一次

五、下一步“指定备份的磁盘目录”,选择指定目录,在D盘新建一个目录,然后在这里选择利用此目录,然后选择删除早于多少天前的备份,一般设定4-7天,这要看个人具体备份要求,备份文件扩展名一般都是BAK。

六、下一步“指定事务日记备份计划”,看你的需要做选择下一步“要生成的报表”,下一步“保护计划历史记录”,用默许的选项,下一步完成,如图14:

7、完成后系统极可能会提示SQLServerAgent服务未启动,先点肯定完成计划设定,然后启动SQL服务。

八、数据库自动备份计划已经设置好,SQL将依照上面的设置进行自动备份。

图12

图13

七、心得体会

遇到的问题:

1建表的时候,对列设置自动增长。

如对表Commnet的CommentID设置自动增量。

2设置外键。

例如,班级表中的属性所属学校,引用学校表的学校编号,所以应该将班级表的所属学校设置为外键。

解决方案:

1在“企业管理器”中打开“设计表”,对“标识”选项设置为“是”即可。

2在“企业管理器”打开“设计表”,右击选择“关系”—“新建”,设置即可。

帮助别人解决的问题:

1建立新表的时候完成对主键的设置

2在服务器端为应用程序建立登录名webapp

3为用户webapp赋予适当的权限

4实现数据库的分离与附加

遗留问题:

①为表设置主键的时候只会用“企业管理器”设置,不知道用SQL语句怎么编写

②数据处理的速度缓慢

系统改进的设想:

将数据分开存放,以提高数据处理速度:

将当天的数据存在一个表中,历史数据存在另一个表中,在更新处理时,再将当天的数据移到历史数据表中

感想和建议

做了一周的课程设计,有很多的心得体会,有关于数据库建立方面的,更多的是关于人与人之间关系方面的。

还记得我和同学一起进行系统分析,对实体,属性,联系的分析,花了大半天的时间结果还是一团糟。

设计E-R图,我们花了很多的时间,当遇到问题时候,向同学和老师请教,经过多次的修改,才完成了E-R图的设计。

我在自己的努力下,在老师同学们的帮助下,终于把整个系统完成了,实现了预定的功能,也使得我对SQL有了更加深刻的了解。

这几天的努力,终于有了头绪,然后又在同学的帮助下,找到了一些参考书,又在这写书的帮助下了解了系统设计的各种方法,在编译过程中常常出现的问题,但也找到了解决的方法。

同学们在一起学习,一同讨论,想着办法解决遇到的各种各样的困难。

在这个时候也有很多人帮助我,让我能够顺利的完成数据库的建立。

一个星期后我们终于完成了对数据库的建立。

在机房调试虽然出现了一些问题,但最终也还是都解决了。

我发现自己对编程也有了一点兴趣,才发现26字母也开始散发着它们的魅力。

近几天的生活虽然有点小累,天天泡在机房里面,对着我们的电脑,一待就是一天,有的时候对着电脑脑袋都晕了,但当我们看到自己完成的数据库的时候,很兴奋,这几天的劳累感顿时消散了,这么几天的辛苦,终于看见成效了。

  在开发的过程中按照软件工程的方法,贯彻结构化的设计思想,运用SQL service2000数据库开发工具进行数据库设计。

同时也了解了校友录的基本运作过程,增加管理经验。

由于我们的水平有限,系统还存在很多需要改善的地方,在今后的学习中我会加强理论与实践的结合,通过不断的摸索来弥补自己的缺陷。

通过了这次课程设计,我不仅大大提高了模型规划、系统设计和软件编程的能力,自身的各方面的素质也得到了提高。

同时也培养了我的合作精神。

这次课程设计不仅充实了我的计算机专业知识,扩大了知识面,增强分析问题和解决问题的能力,也提高自学的能力,为今后的学习打下了坚实的基础。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2