数据库课程设计
实验报告
论坛管理信息系统
**: ***
学号:**********
班级: 10210301
专业:信息管理与信息系统
日期:2011年11月9日
一、需求分析
随着网络的不断发展,网上论坛信息越来越多,发贴的人也越来越多。
自然而然,回贴的人也越来越多。
因此,我们需要一个论坛管理系统,来统计作者信息、贴子信息和回复信息,来使得论坛信息能够更好的运作。
所以我设计这个论坛管理系统来有效地管理论坛信息,使得它能够更加规范和科学。
模块功能分析:
(1)作者信息模块:用来管理作者信息,包括作者昵称、贴子编号、性别、年龄、职业、爱好等;
(2)贴子信息模块:用来管理贴子信息,包括贴子编号、发贴日期、时间、等级等;
(3)回复日期模块:用来管理回复信息,包括作者昵称、回复时间、贴子编号等;
二、概念结构设计
经分析,本系统的e-r图如下:
各实体间关系的e-r图如下:
关系图:
三、逻辑结构设计
1 作者信息表
昵称贴子编号性别年龄职业爱好
郭海春01 男19 教师游戏
曾宏诚02 男20 科学家吃东西
刘德年03 男21 学生打羽毛球
汪洁04 女18 护士溜冰
熊浩05 男19 医生看书
2 贴子信息表
3 回复信息表
①建库
create database 论坛管理信息系统
②建表
create table 作者信息表
(昵称char(10) ,
编号char(10) ,
性别char(10),
年龄int,
职业char(10),
爱好char(10)
primary key(昵称,编号)
);
create table 贴子信息表
(贴子编号char (10)primary key,
发帖日期char(10),
时间char(10),
等级char(10)
);
create table 回复信息表
(作者昵称char(10),
贴子编号char(10) primary key,
回复时间char(10) ,
);
③添加记录
insert into 作者信息表
values('张三', '06','男',20, '医生', '打球');
insert into 贴子信息表
values('06','2007年', '4月8号', 'B');
insert into 回复信息表
values('王明','8月1号', '03');
四、功能处理
1.索引
①建立索引
create unique index id_ix on 作者(昵称);
create unique index im_in on 贴子(贴子编号);
create unique index ik_il on 回复(回复时间);
②删除索引
drop index 回复.ik_il;
2.视图
①创建视图
create view view_1
as select 作者昵称,性别,年龄,职业,爱好
from 作者信息表
create view view_2
as select 贴子编号,发贴日期,发贴时间,等级
from 贴子信息表
create view view_3
as select 作者昵称,回复时间,贴子编号
from 回复信息表
②视图的撤消
drop view view_1;
③视图的查询
select * from view_3;
select * from view_2;
④视图的更新
insert into view_1
values ('李亮','03','男', 29,'学生','篮球'); 3.存储过程
①创建存储过程
create proc proc_zz
as
select 作者昵称,贴子编号,性别,年龄,职业,爱好
from 作者信息
where 性别='男';
create proc proc_tz
as
select 贴子编号,发贴日期,时间,等级
from 贴子信息
where 贴子编号='02';
②存储过程的查询
exec proc_zz;
exec proc_tz;
③存储过程的修改
alter proc proc_zz
as
select 作者昵称,贴子编号,年龄,职业,爱好
from 作者信息
where 性别='男'
4、触发器
①创建触发器
create trigger z_select on 作者信息
after insert
as
select * from 作者信息
select * from inserted
go
insert into 作者信息(作者昵称,贴子编号,性别,年龄,职业,爱好)
values('徐蕾', '07', '女', 20,'学生', '听歌')
②触发器的删除
drop trigger z_select;
5、数据更新
①插入(前面已插入)
②修改
update 作者信息
set 年龄= 20
where 作者昵称= '熊浩';
③删除
delete from 作者信息
where 姓名='刘德年';
6、数据查询
select *
from 作者信息。