数据库课程设计 题 目 博客管理管理 专业班级 计算1002 姓 名 周恒 学 号 完成日期 2014-1-19 目录一. 系统概述...................................1二.需求分析....................................11.功能需求.................................12.环境需求.................................1 3.数据字典.................................1三.概念结构设计.................................21.数据流图.................................22.E-R图...................................3 3.系统用例图...............................4四.逻辑结构设计.................................4 1.系统结构图................................42.数据库表.................................4五.物理设计....................................71.IPO表....................................72.存储结构设计.............................8六.数据库实施.................................8 1.程序编码................................10 2.测试....................................13七.触发器......................................14八.心得体会...................................15一.系统概述本系统主要是基于B/S结构的博客系统管理程序,功能:会员注册登陆,站内用户和文章搜索,发表文章,评论等。
二.需求分析1.功能需求·会员基本信息单菜单中的注册,可成为新会员;单击菜单中的登陆,可进入个人信息中心;·会员个人信息中心单击菜单中的查询,可按用户名和文章名进行查询;单击文章管理可进行个人账户的文章列表修改删除管理,单击上传文章可上传自己的文章·个人账户注销单击注销可注销账号,从新登陆新号2.环境需求Microsoft Visual Studio 2008 Oracle 11g名字:搜索中心别名:描述:文章或用户搜索定义:搜索中心=文章搜索+用户搜索名字:用户个人中心别名:描述:用户的可操作行为定义:用户中心=个人文章列表修改删除+文章上传+评论留言管理名字:用户信息别名:描述:用户的资料定义:用户信息=用户名+密码3.数据字典三.概念结构设计1.数据流图源点/终点 存储 处理 数据流注销登录注册用户账户信息数据库用户信 息 D1 账户信息用户基本信息2.E-R图评论 # 文章id *回复id *回复人 *回复内容 *回复时间 帐户*账号*密码 有权限 作用 有权限.. 作用文章 #文章id *用户名 *标题 *文章内容 *发表时间 对象 发起者 (3)系统用例图.四.逻辑结构设计1.系统结构图2.数据库表博客系统中的数据管理形式采用oracle,数据库名为zhouheng,根据系统需要与数据规范化分为用户表(也是管理员账户),访客留言表(留言),文章评论表(评论),文章表(文章)这四个表,表结构分别如下: 该表为管理员登录的信息表,本系统没有包含管理员用户的注册模块,管理员帐号直接在数据库中设计。
表1 账户表(也是管理员)字段名称数据类型字段大小是否主键默认值是否必填备注 用户名文本20是—否用户名密码文本20否—是用户密码表2为访客留言表,记录访客的留言信息,留言模块方便普通用户和版主之间的交流,为他们提供了一个专门的途径表2 留言表字段名称数据类型字段大小是否主键默认值是否必填备注留言id自动编号10是——留言编号留言人文本20否—否博客主人代号用户名文本20否—是留言者姓名留言内容备注—否—是留言内容留言时间日期/时间—否—是留言日期表3评论表,记录文章的所有评论评论也是用户的一种交流方式该模块加强了用户之间的沟通表3 评论表字段名称数据类型字段大小是否主键默认值是否必填备注文章id自动编号10是——评论编号回复id自动编号10外键—否文章代号回复人文本20否—是评论者姓名回复内容备注—否—是评论内容回复时间日期/时间—否—是评论日期表4为文章表,记录用户书写的所有文章,包含了文章的相关属性,用来记录文章信息该模块可以帮助用户了解文章的基本信息比如:文章人气高可能是内容很有意义,方便用户去阅读那些比较好的文章,使管理文章,查看文章都变的非常的方便表4 文章表字段名称数据类型字段大小是否主键默认值是否必填备注文章id自动编号10是——文章编号用户名文本100否—否用户代号文章标题文本50否—是文章标题文章内容备注—否—是文章内容发表时间日期/时间—否—是书写日期五.物理设计IPO表系统:博客管理管理模块:账户基本信息编号:01输入:新账户的资料处理:存储到账户信息数据库输出:显示基本信息界面1.IPO表IPO表系统:博客管理管理模块:用户或文章搜索编号:02输入:用户搜索界面提取输入信息处理:从文章数据库或账户数据库提取信息输出:结果展示界面面IPO表系统:博客管理管理模块:用户操作中心编号:03输入: 用户事件发生处理:从各数据库提取信息输出:2.存储结构设计数据存放路径:D:\app\zhouheng\oradata\orcl\zhouheng六.数据库实施1.程序编码(1)用户注册连接数据库 OracleConnection conn = new OracleConnection(); string strconn; strconn = "Data Source=(DESCRIPTION=" + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))" + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));" + "User Id=zhouheng;Password=zhouheng;"; conn.ConnectionString = strconn; conn.Open(); string sql; sql = "insert into 账户(用户名,密码) values('" + username + "','" + pwd + "')"; OracleCommand cmd = new OracleCommand(sql, conn); int ok1 = cmd.ExecuteNonQuery(); if (ok1 == 1) { Response.Write(""); Response.Redirect("登陆.aspx"); } else{ this.Label3.Text = "用户名已存在"; } conn.Close();(2)文章上传 string title = Request["textfield"].ToString().Trim(); string content = FreeTextBox1.Text; string username; DateTime datetime = DateTime.Now; username = LabUserName.Text.Trim(); OracleConnection conn = new OracleConnection(); string strconn; strconn = "Data Source=(DESCRIPTION=" + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))" + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));" + "User Id=zhouheng;Password=zhouheng;"; conn.ConnectionString = strconn; conn.Open(); string sql; sql = "insert into 文章(用户名,文章标题,文章内容,发表时间) values('" + username + "','" + title + "','" + content + "',to_date('"+datetime+"','yyyy-mm-dd hh24:mi:ss'))"; OracleCommand cmd = new OracleCommand(sql, conn); int ok1 = cmd.ExecuteNonQuery(); if (ok1 == 1) { Response.Write(""); return; } conn.Close();(3) 搜索文章 OracleConnection conn = new OracleConnection(); string strconn; strconn = "Data Source=(DESCRIPTION=" + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))" + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));" + "User Id=zhouheng;Password=zhouheng;"; conn.ConnectionString = strconn; conn.Open(); string key = Request.QueryString["keyword"].ToString().Trim(); string sql; sql = "select * from 文章 where 文章标题 like '%" + key + "%'"; OracleDataAdapter adp = new OracleDataAdapter(sql, conn); DataSet ds = new DataSet(); adp.Fill(ds, "文章"); if (ds.Tables["文章"].Rows.Count > 0) { GridView1.DataSource = ds.Tables["文章"].DefaultView; GridView1.DataBind(); } else { Label2.Text = "没有搜索结果!!"; } conn.Close();(4) 访客留言 string content = FreeTextBox1.Text; string username = ""; DateTime datetime = DateTime.Now; if (Session["username"] != null) username = Session["username"].ToString(); else { username = "游客"; } OracleConnection conn = new OracleConnection(); string strconn; strconn = "Data Source=(DESCRIPTION=" + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))" + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));" + "User Id=zhouheng;Password=zhouheng;"; conn.ConnectionString = strconn; conn.Open(); string mastername = Session["mastername"].ToString().Trim(); string sql; sql = "insert into 留言(用户名,留言人,留言内容,留言时间) values('" + mastername + "','" +username+"','" + content + "',to_date('" + datetime + "','yyyy-mm-dd hh24:mi:ss'))"; OracleCommand cmd = new OracleCommand(sql, conn); int ok1 = cmd.ExecuteNonQuery(); if (ok1 == 1) { pagelist(); Response.Write(""); return; } conn.Close();2.测试(1)文章管理(2) 文章上传七.触发器程序中一共有3个触发器,如下:(1)create or replace trigger tr_lybefore insert on 留言for each rowbeginselect ADDLYID.nextval into :new.留言ID from dual;end;(2)create or replace trigger tr_plbefore insert on 评论for each rowbeginselect ADDPLID.nextval into :new.回复ID from dual;end;;(3)create or replace trigger tr_WZbefore insert on 文章for each rowbeginselect ADDWZID.nextval into :new.文章ID from dual;end;八. 心得体会经过努力,在老师的悉心帮助下,我的系统终于完成了。
在此,我们要深深感谢指导老师的帮助通过此博客网站系统的开发,做到了理论联系实际,将书本上学到的知识与具体实践充分结合起来,既解决了工作中的一些问题,又进一步明确了开发管理信息系统的方法和思想;既加深了对管理信息系统的认识,又进一步巩固了以前所学的计算机软件开发方面的知识,提高了软件开发的水平,从而为今后在实际工作中更好的应用计算机进行信息管理打下了坚实的基础本系统的设计开发基本上实现了博客应有的基本功能,用户通过使用系统可以利用Internet建立自己的博客系统,与互联网上的网友进行交流,并可以与网友们共同分享文章资源由于是基于网络开发的系统,所以本系统具有网络应用系统方便、信息交流及时、系统使用不受地域限制等诸多优点,在世界任何角落,用户都可以通过Internet与其他人联系本系统具有如下特点:(1) 界面美观简洁,程序结构清晰,编码规范 (2) 后台数据库采用的oracle,它功能比较强大,可以处理包含在各种平台上运行的数据库管理系统内核但同时也应该看到,由于时间仓促,最近一直在外地找工作,同学也都不在身边,自己一点一点调试,很困难,上网等都不是太方便,本系统的功能实现还不是太好,还存在需要改进的地方,例如系统的某些设计的完整性可扩展性并不十分理想,总之还是学到了一些东西,对web开发有了进一步的了解,希望在今后可以继续完善本系统设计。