数据库原理课程设计学院计算机学院专业软件工程班级2012 级 4 班学号********** 姓名林炳城指导教师周俭铁(2015 年 1 月)目录数据库原理课程设计 (1)一、课程设计目的 (5)二、背景和可行性分析 (5)三、相关技术介绍 (5)四、需求分析 (6)五、概念结构设计 (11)六、逻辑结构设计 (11)七、物理结构设计 (12)八、数据库实施 (13)九、数据库运行与维护 (15)十、系统安装说明 (21)十一、收获与体会 (21)十二、各模块程序说明附录 (22)一、课程设计目的本次课程设计的目的在掌握数据库系统概论的基础上,了解数据库系统的设计和应用,掌握数据库系统相关设计方法和思想,希望能通过本次的课程设计,达到巩固和综合应用数据库系统概论的原理和知识,本次要突出一个完整的面向应用的数据库的设计和应用的过程,,至于如何实现模块功能细节的则可以省略,通过本次报告的设计撰写情,来达到锻炼的目的。
二、背景和可行性分析1、课程设计选题:因为本次课程设计要选择与数据库联系紧密,并且关于数据库的操作丰富的题目,再根据本人所掌握的知识考虑,由于我学过javaweb的程序开发,所以我选择了做的题目的是——java web 个人博客系统2、题目描述个人博客网站的功能主要是为博客用户设计开发的,用户进入博客网站后,有两种选择,注册新用户、登录。
由于是个人网站所以只支持注册用户查看文章,注册后经由管理员同意即为注册成功,注册成功的用户可以获取自己的博客空间,登陆成功后,用户可以发布、查看、修改和删除自己的博客,也可以浏览别人公开的博客文章,并且对文章进行评论,转载和点赞,也可以修改自己的个人信息,这个题目对于数据库的操作十分丰富,所以作为本次课程是个十分符合要求的题材三、相关技术介绍1、开发环境(1)、系统环境Windows 8.1(2)、数据库系统Mysql Server5.25(3)、软件环境JDK1.7---------------java开发环境Eclipce for j2ee 4.03 ---------------IDETomcat 7.0---------------WEB服务器3、系统机构设计——传统MVC模式项目的分层可细分为视图层(View),控制器层(Controller),业务逻辑层(Service),和数据访问层(DAO),持久化对象层(PO)视图层(V)——由jsp呈现控制器层(C)——由Servlet充当,用于前端后台进行数据交换中间层(M)——业务逻辑层(Service),和数据访问层(DAO),持久化对象层(PO)组成四、需求分析1、系统总体结构2、系统用例图即两种用户:(1)、普通用户、(2)、系统管理员3、系统活动图(1)、普通用户系统(1)、后台管理系统4、数据流图(1)、个人博客管理信息第一层数据流图之一————普通用户系统(2)、个人博客管理信息第一层数据流图之二————后台管理系统5、数据字典关注用户信息表(t_attentionr)五、概念结构设计E-R图六、逻辑结构设计用户表:t_user文章分组表:t_groups文章表:t_article评论表:t_comment关注表:t_attention七、物理结构设计八、数据库实施------------------------------ Table structure for `t_article`------------------------------DROP TABLE IF EXISTS `t_article`;CREATE TABLE `t_article` (`id` varchar(32) NOT NULL,`content` text NOT NULL,`date` datetime NOT NULL,`isPublish` bit(1) NOT NULL,`title` varchar(100) NOT NULL,`groupId` varchar(32) NOT NULL,`praise` int(11) NOT NULL,`userId` varchar(32) NOT NULL,PRIMARY KEY (`id`),UNIQUE KEY `id` (`id`),KEY `FK8FEAC02BD8567870` (`groupId`),CONSTRAINT `FK8FEAC02BD8567870` FOREIGN KEY (`groupId`) REFERENCES `t_groups` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-------------------------------- Table structure for `t_attention`------------------------------DROP TABLE IF EXISTS `t_attention`;CREATE TABLE `t_attention` (`id` varchar(32) NOT NULL,`attentionId` varchar(32) NOT NULL,`userId` varchar(32) DEFAULT NULL,PRIMARY KEY (`id`),UNIQUE KEY `id` (`id`),KEY `FK9C91B13FEE22533` (`userId`),CONSTRAINT `FK9C91B13FEE22533` FOREIGN KEY (`userId`) REFERENCES `t_user` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-------------------------------- Table structure for `t_comment`------------------------------DROP TABLE IF EXISTS `t_comment`;CREATE TABLE `t_comment` (`id` varchar(32) NOT NULL,`content` varchar(255) NOT NULL,`date` datetime NOT NULL,`articleId` varchar(32) DEFAULT NULL,`userId` varchar(32) DEFAULT NULL,PRIMARY KEY (`id`),UNIQUE KEY `id` (`id`),KEY `FKF437E194F87EDB05` (`articleId`),KEY `FKF437E194FEE22533` (`userId`),CONSTRAINT `FKF437E194F87EDB05` FOREIGN KEY (`articleId`) REFERENCES `t_article` (`id`),CONSTRAINT `FKF437E194FEE22533` FOREIGN KEY (`userId`) REFERENCES `t_user` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-------------------------------- Table structure for `t_groups`------------------------------DROP TABLE IF EXISTS `t_groups`;CREATE TABLE `t_groups` (`id` varchar(32) NOT NULL,`groupName` varchar(32) NOT NULL,`userId` varchar(32) DEFAULT NULL,PRIMARY KEY (`id`),UNIQUE KEY `id` (`id`),KEY `FK69B62BFFFEE22533` (`userId`),CONSTRAINT `FK69B62BFFFEE22533` FOREIGN KEY (`userId`) REFERENCES `t_user` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-------------------------------- Table structure for `t_user`------------------------------DROP TABLE IF EXISTS `t_user`;CREATE TABLE `t_user` (`id` varchar(32) NOT NULL,`email` varchar(50) NOT NULL,`imageurl` varchar(50) NOT NULL,`mobile` varchar(32) NOT NULL,`name` varchar(32) NOT NULL,`password` varchar(32) NOT NULL,`sex` varchar(2) NOT NULL,`username` varchar(32) NOT NULL,PRIMARY KEY (`id`),UNIQUE KEY `id` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;九、数据库运行与维护(一)用户登录(二)用户注册填写个人信息(三)用户上传头像(四)登录成功显示个人主页,以及管理博文(五)博客园(六)发布博文(七)查看博文(八)评论博文(九)查看评论十、系统安装说明1、往mysql数据库新建blog数据库2、导入源代码中的sql脚步文件:/Blog/blog.sql3、修改程序中的配置文件:/Blog/src/com/resource/jdbc.mysql.properties修改数据库连接和账号密码4、启动tomcat服务器,程序即启动5、打开浏览器访问:http://localhost:8080/Blog/十一、收获与体会这次的大作业是一个自己写的java web小项目,用了个小的ORM框架MyBatis,由于最近比较忙,所以很多没时间写,是在以前自己写的代码的基础上重构的,虽然经过一年多的的沉淀自己的能力也成长了不少,在系统的设计的和框架的搭建有了很多的改进,但由于时间有限,所以很多设想好的功能都没时间去实现它,我是专业后台,一个人同时是编写前端后台比较吃力,而且由于技术原因,我目前还是在努力学习中,有很多的地方还写得不是很成熟,代码也写得不是很规范,我尽量把精力都放在后台的逻辑代码设计上了,比如网页上很明显有一些还没来得急实现的模块功能,等我技术成熟后我会在以后有时间会尽力完善这些功能。