昆明学院信息技术学院课程设计(大作业)报告201011020120 李婷
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计(大作业)报告
课程名称:SQL数据库原理与技术
设计题目:论坛管理系统
院系:信息技术学院
班级:2010级计算机应用技术班设计者:李婷
学号:201011020120
指导教师:邱莎
设计时间:2012-6-18—2012-6-22
信息技术学院
昆明学院课程设计(大作业)任务书
一、题目分析
1、数据:
·作者(注册号、呢称、性别、年龄、职业、爱好)
·帖子(帖子编号、作者、发帖日期、时间、等级、类别、摘要、内容、点击率)
·回复(编号、帖子、回复者、护肤时间、回复内容)
2、论坛管理规则:
一个作者可以发布多个帖子,一个帖子只能由一个作者发布,但可以有多人回复。可以对各种信息进行增加、修改、删除、和查询,如:更新各种基本信息、查询有关帖子、作者的各种相关信息、各种回复统计等。
二、总体设计
1、系统概述
论坛管理系统:使用SQL数据库实现后台的添加、修改、删除和查询各项基本信息。2、数据流程图
创建数据库
作者表帖子表回复表
添加记录添加记录添加记录
视图:简化用户操作,为重构数据库提供了一定的逻辑独立性,根据帖子编号返回显示回复的所有列或者作者的注册号查看帖子的所有列;
触发器:相关的级联操作,实现插入(insert)、删除(delete)、修改(update),也可以保证数据库的完整性(没有注册号时不可以进行插入与修改);
标量函数:根据呢称返回帖子的点击率,统计回复人数的总人数;
表值函数:根据注册返回帖子的等级;
多值函数:根据注册号查询作者呢称和帖子的点击率;
存储过程:根据注册号返回显示呢称、内容;统计帖子的点击率。
3、逻辑模型设计:
作者(注册号、呢称、性别、年龄、职业、爱好)
帖子(帖子编号、作者、发帖日期、时间、等级、类别、摘要、内容、点击率)
回复(编号、帖子、回复者、护肤时间、回复内容)
4、论坛管理系统E-R图:
三、实验器材
Windows xp
Microsoft SQL server2005
四、设计过程
根据项目主管下达的设计任务和基本信息,制定数据库任务的实施的技术方案,时间是(6月18日下午两点至6月20日上午十一点止)我们组的任务要全部的完成
1、需要分析(6月18日下午两点至6月18日晚上八点结束)
根据题目的信息,知道这个数据库的要求有,一个作者可以发布多个帖子,一个帖子只能有一作者发布,这里是一对多的关系,但可以有多个回复,这里也是一对多的关系,清楚了这一点之后就可以画出E-R图了,而在这个论坛管理系统中,不可以有重复的注册号、帖子标号、回复编号是不可重复的,我们就把它们分别设置为作者、帖子、回复这三张表的主键,而论坛中没有注册的注册号不能发布帖子,论坛中还要有数据的增加,修改,删除和查询,我们这里就要考虑到数据的完整性和安全性,不能由不是论坛的人来随意更改,发布贴子,首先,我们来针对帖子的权限问题,我们要使用触发器来制约它在没有注册的情况下不可以发布信息,之后是数据的增加使用insert语句来插入数据,修改update语句来做,还有不能改变帖子编号使用了触发器,删除用触发器来做,只要删除注册号的同时也会删掉他所发的贴子也可用外键和drop语句来做,查看我们使用了函数和存储过来完成查询。
2、概念设计—画E-R图(6月18日下午两点至6月18日晚上八点结束)
项目主管人员安排我在6月18日下午把图画好,我把题目分析后画出图来交给了项目主管,我从一个作者可以发布多个帖子,一个帖子只能有一作者发布,来确定它们联系,都是为一对多(1:N)的关系,因为一对多的联系可以与N端对应的关系模式合并。根据主键的定义来确定每张表的主键,完成这些后,E-R图就完成了(图在4、论坛管理系统E-R 图)。
3、逻辑结构设计—关系图(6月18日下午两点至6月18日晚上八点结束)
E-R图画出之后把它转换为关系图(图在3、逻辑模型设计)。
4、数据库的关系模式规范化(6月18日下午两点至6月18日晚上八点结束)
进过分析这三张表中的每一个属性都是不可分解的,它们满足第一范式;
三张表中的每一个非主属性都完全函数依赖于主键,它们满足第二范式;
三张表中没有一个非关键字属性是传递函数依赖于候选关键字,就是不能通过其他的字来推出;它们满足第三范式。
5、确定实施环境(6月18日下午两点至6月18日晚上八点结束)
我们主要做的是后台的设计,所以,所有的操作就在Microsoft SQL server2005
里完成。
6、系统模块设置
数据定义
作者表:
帖子表
回复表
7、设计论坛数据库的功能需求(6月18日下午两点至6月18日晚上八点结束)
<1>创建数据库;根据题目所给的信息,来创建一个名为luntan的数据库。
<2>数据库创建好后,创建表作者、帖子、回复这三个表;
<3>在表中插入数据(每张表插入两条记录即可);
<4>创建两个视图分别可以根据帖子编号显示回复的所有列,可以根据作者的注册号查看帖子的所有列;
<5>创建触发器:插入数据信息被限制(没有注册过的作者注册号不能插入信息),删除数据信息(只要删除作者表中的注册号,同时也会删除帖子中的所有内容),保护数据信息不被修改(不能改帖子编号)
<6>创建三量函数:根据呢称显示的点击率,统计回复人数的总人数,显示帖子的点击率高低的显示;
<7>创建表值函数:实现根据注册显示帖子的等级;
<8>创建多值函数:实现根据注册号查询作者呢称和帖子的点击率;
<9>创建存储过程:实现根据注册号显示显示呢称、内容;