《数据库课程设计》
设计选题:论坛管理信息系统
班 级:船海1101班 设 计 人:熊程珂
学 号: u201112220
辅导教师:董敏钦
1
一、 需求分析:
1.1 数据需求:
论坛管理信息系统需要完成功能主要有:
(1)作者信息模块:用来管理作者信息,包括作者昵称、贴子编号、性别、年龄、职业、爱好等;
(2)贴子信息模块:用来管理贴子信息,包括贴子编号、发贴日期、时间、等级等;
(3)回复日期模块:用来管理回复信息,包括作者昵称、回复时间、贴子编号等。
1.2 事物需求:
(1)在作者信息模块部分,要求: a.可以查看作者的个人信息;
b.可以对作者信息进行添加及删除的操作。 (2 )在贴子信息部分,要求: a.可以浏览贴子信息;
b.可以对贴子信息进行维护,包括添加及删除的操作。 (3)在回复日期部分,要求: a.可以查看回复日期;
b.可以对回复日期进行维护操作。
二、数据库设计:
2.1 实体模型:
作者 回复信息 1 n
发帖 回复 m 1
2
贴子 2.2 ER图到关系图的转换:
性别 年龄 职业 昵称 作者 爱好 回复信息 编号 编号 发贴 回复 等级 日期 时间 作者昵称 回复时间 贴子 编号
2.3 数据字典:
author表: ano aname agender aage aoccupation ahobby post表结构: ano pdate ptime pgrade Char(10) Char(10) Char(10) Char(10) 3
Char(10) Char(10) Char(10) smallint Char(10) Char(10) 不允许为空 不允许为空 允许为空 允许为空 允许为空 允许为空 不允许为空 允许为空 允许为空 允许为空 reply表: ano rname rtime Char(10) Char(10) Char(20) 不允许为空 允许为空 允许为空
三、关系图的建立:
四、功能实现:
4.1 创建数据库:
create database xck;
4.2创建数据表:
(1)author表:
create table author (ano char(10), aname char(10), agender char(10), aage smallint, aoccupation char(10), ahobby char(10) primary key(ano,aname) );
4
(2)post表: create table post
(ano char (10) primary key, pdate char(10), ptime char(10), pgrade char(10) );
(3)reply表: create table reply
(ano char(10) primary key, rname char(10), rtime char(20) , );
五、数据操作(插入、查询、删除、修改、添加)
5.1 插入:
(1)向author表插入信息:
insert into author values('01','熊程珂','女',19, '学生', '看书'); insert into author values('02','张武月','男',26, '医生', '做实验'); insert into author values('03','李晶','女',34, '老师', '游泳'); insert into author values('04','王亚彤', '女',32, 'HR', '打球'); insert into author values('05','熊程珂','女',19, '学生', '看书');
(2)向post表插入信息:
insert into post values('01','2007年', '4月8号', 'A'); insert into post values('02','2008年', '4月14号', 'A');
5
insert into post values('03','2011年', '5月18号', 'B'); insert into post values('04','2005年', '11月28号', 'A'); insert into post values('05','2012年', '10月2号', 'C');
(3)向reply表插入信息:
insert into reply values('01','赵硕', '2007年5月21号'); insert into reply values('02','张树新', '2008年7月16号'); insert into reply values('03','王明', '2011年8月1号'); insert into reply values('04','程珂', '2005年12月11号'); insert into reply values('05','郭云', '2012年12月1号');
5.2查询:
(1) 查询年龄在30岁以下的所有作者的名字和编号:
select aname,ano,aage from author where aage<30;
6
(2)查询贴子等级为A的所有贴子编号:
select ano,pgrade from post
where pgrade='A';
(3)查询回帖时间是在2010年以前的回帖者姓名:
select rname,rtime from reply
where rtime like '200%';
(4)查询名字姓“熊”且全名为三个汉字的作者的信息:
select aname,ano,agender,aage,aoccupation,ahobby from author
where aname like '熊__'
7
5.3向表中添加字段:
(1)将author表中年龄的数据类型由整型改为字符型: alter table author alter column aage char(10); (2)像post表中加入作者姓名: alter table post add s_name char(10);
5.4创建视图:
(1)创建视图:
create view view_1 as
select ano,aname,agender,aage,aoccupation,ahobby from author
(2)视图的查询:
select * from view_1;
8
(3)视图的更新:
insert into view_1 values('06','张洋', '男',17,'学生','踢球');
(4)视图的撤消
drop view view_1;
六、个人总结和体会:
经过了这次数据库上机操作,我对数据库以及课外的相关知识了解得更多了,并且动手操作能力也得到了提高。我从选题、需求分析到E-R图设计,再到关系模型设计,最后建立数据库,无一不是深思熟虑。首先是选题,随着网络的不断发展,网上论坛信息越来越多,发贴的人也越来越多。自然而然,回贴的人也越来越多。因此,我们需要一个论坛管理系统,来统计作者信息、贴子信息和回复信息,来使得论坛信息能够更好的运作。所以我设计这个论坛管理系统来有效地管理论坛信息,使得它能够更加规范和科学。其次是,需求分析,包括作者信息、贴子信息、回复日期,三个部分的规划。再就是E-R图和数据字典的制作,中途费了好大的心思,才把他们建立起来。然后就是,在软件中输入代码,得到系统表,实现数据库的功能。在输入代码,实现数据操作包括插入、查询、删除、修改、添加。最后生成关系图。
虽然在设计的过程中出现了诸多错误,但我都及时纠正了,走弯路不怕,就怕走错了路还不改。一分耕耘一分收获,上机操作的过程是很费精力和时间,也需要平时一点一点的积累,不断的努力,中途不会的地方,还找同学指导了我好久,才能完成这个课程设计,但成功之后的喜悦,只有自己实践了才能体会到。想到一句话:不经历风雨,怎么见彩虹;没有
9
人能随随便便成功。我希望我设计的系统,能够得到广泛的应用。最后感谢老师和助教的辛勤教导,让我对数据库的知识又多了一份了解~感谢所有给与我帮助的人~
10
因篇幅问题不能全部显示,请点此查看更多更全内容