课程设计报告课程名称数据库课程设计设计题目课程设计选题与信息查询系统专业数据科学与大数据技术班级学号姓名完成日期2020.1.4课程设计任务书设计题目:课程设计选题与信息查询系统设计内容与要求:对所选题目进行调研、分析和设计,要求:1.完成需求分析,写出功能需求和数据需求描述;2.在需求分析的基础上,完成数据库概念结构设计、逻辑结构设计、物理结构设计和数据库创建;3.完成视图、存储过程设计,要求定义合理。
4.在应用程序中合理运用存储过程,正确运用DML语句。
指导教师:2019年12 月27日课程设计评语成绩:指导教师:_______________2020年1月6日目录1.概述 (1)1.1 设计的背景和意义 (1)1.2 采用数据库开发工具和应用程序开发工具 (1)2.需求分析 (2)2.1功能需求分析 (2)2.2数据需求分析 (2)3.概念结构设计 (3)3.1 E-R图 (3)3.1各实体-属性图 (4)4.逻辑结构设计 (5)4.1关系模型 (5)4.2关系模型优化 (5)5.物理结构设计 (6)5.1数据库建立 (6)6.视图存储过程设计 (10)6.1登录界面设计 (10)6.2详细功能视图存储过程设计 (11)7.功能程序设计 (19)7.1程序结构 (19)7.2jdbc连接 (20)7.3功能设计 (21)8.总结 (27)参考文献........................................................................................... 错误!未定义书签。
1.概述1.1 设计的背景和意义课程设计选题管理是高校必不可缺的组成部分,一直以来,学院教学管理工作人员使用传统人工的方式进行课程设计选题的管理,模式多种多样。
随着大学越来越多,学生在课程设计的选择上工作量越来越大,这都将导致学生和老师浪费更多的时间在选择上面。
就目前的情况来看来各个学校在处理问题时,基本上都是靠人力,收工完成。
这种管理方式存在着许多缺点,如:效率低、容易出错,实时性和互动性不强等,在发挥学生特长、更有效地通过课程设计强化学生知识体系的目标不吻合,也无法实现学分制下教学管理的要求。
所以在此基础上开发一个课程设计选题管理系统是十分有必要的。
项目开发的《课程设计选题管理系统》能够满足不同特点的学生对课题的不同要求,有利于发挥学生的特点,让学生根据自己的实际爱好,按要求自由选择课题,让水平比较高的学生选择难度大一些的课题,水平较高的学生有充分发挥才能的空间,让水平不是特别高的学生选择适合自己的难度适当的题目。
作为计算机应用的一部分,使用计算机对课题信息进行管理,具有人工管理所无法比拟的优点.例如:操作方便,使用简单,自主性强等。
这些优点能够极大地提高学校课程设计课题管理的质量,进一步提高办学水平和办学效率,有利于贯彻“以人为本”的教育原则,适应当今时代对高等教育的客观要求,培养出更多一专多能的学生。
基于网络数据库的学生课程设计选题系统是在网络环境的支持下,开展学生选题和信息查询的一种先进模式,发挥学生选择课题的自主性,提高学校课题管理效率。
网络选题具有其它技术手段无可比拟的优越性,因此世界各国尤其是发达国家无不对此给予高度的重视。
1.2 采用数据库开发工具和应用程序开发工具数据库工具:mysql-5.6.17-winx64应用程序开发工具:exclipseJdbc:用于eclipse平台连接MySQL数据库。
Visio:用于绘制E-R图2.需求分析2.1功能需求分析管理员:可对每个教师、学生进行统计分析与维护教师:教师可录取报名的团队,查看学生的详细信息如学生的基本信息等教师可以查看课程设计题目,人数,及要求可查看报自己的学生人数,基本信息等学生:可浏览教师的课程设计题目及教师的简介等内容可查看自己的个人信息(基本信息)可以创建团队(选题),加入团队等2.2数据需求分析用户基本信息:管理员实体集,其属性有:工号、姓名、性别、联系方式等学生实体集,其属性有:学号、姓名、性别、出生日期、籍贯、民族等教师实体集,其属性有:教师编号、姓名、性别、学位、联系方式、发布题数等班级、专业、学院信息:班级实体集,其属性有:班级编号、班级名称等专业实体集,其属性有:专业编号、专业名称等学院实体集,其属性有:学院编号、学院名称等课题信息、选题信息:题目实体集。
其属性有:题目编号、题目名称、要求、状态、发布老师等选题实体集。
其属性有:题目编号、团队编号等团队实体集。
其属性有:团队编号、团队名称、限选人数、已选人数、题目编号等3.概念结构设计3.1各实体-属性图学生教师学号性别姓名籍贯出生日期民族教师编号姓名性别出生日期班级号所属团队发布题数限制发布题数所属学院学院学院名称学院编号团队团队名指导教师名指导教师号限制人数团队人数团队号课题要求课题名发布老师号课题号班级专业班级号所属专业号班级名称专业号所属学院号专业名称4.逻辑结构设计4.1关系模型由E-R图得到的关系模式:学生(学号、姓名、性别、出生日期、籍贯、民族、班级号、所属团队号)老师(教师编号、姓名、性别、学位、发布题数、联系电话、所属学院)团队(团队号、团队名、指导老师号、团队人数、限制人数)课题(课题号、课题名、要求、状态、发布老师号)班级(班级编号、班级名称、所属专业号)专业(专业编号、专业名称、所属学院号)学院(学院编号、学院名称)登录(登录号、密码)4.2关系模型优化分析学生关系模式:由学生实体转化而来函数依赖:学号→姓名学号→性别学号→出生日期学号→籍贯学号→民族学号→班级号学号→所属团队号候选码为:(学号)依赖因子对决定因子的依赖都是完全函数依赖,没有部分函数依赖和传递函数依赖,因此达到了3范式。
分析教师关系模式:由学生实体转化而来函数依赖:(教师编号)→(姓名、性别、学位、发布题数、联系电话、所属学院)候选码为:(教师编号)依赖因子对决定因子的依赖都是完全函数依赖,没有部分函数依赖和传递函数依赖,因此达到了3范式。
其余的关系模型同学生、教师一样达到了3范式。
5.物理结构设计5.1数据库建立所建的表(1)学生Student表(studentNo,studentName,sex,birthday,native,nation,classNo,teamno)CREATE TABLE student(sno V ARCHAR(20) NOT NULL,sname VARCHAR(10)NOT NULL,sex ENUM('男','女'),sbirth DATE,snative VARCHAR(10),snation V ARCHAR(10),classno V ARCHAR(10),teamno INT(10),PRIMARY KEY(sno),FOREIGN KEY (teamno) REFERENCES team(teamno),FOREIGN KEY (classno) REFERENCES class(classno))ENGINE=INNODB DEFAULT CHARSET=gbk COLLATE=gbk_bin;(2)教师Teacher表(teacherNo,teacherName,sex,degree,fabu_number,academyno)CREATE TABLE teacher(teacherno V ARCHAR(10) NOT NULL,teachername V ARCHAR(10) NOT NULL,sex ENUM('男','女'),degree VARCHAR(20),fabu_number TINYINT(3) UNSIGNED DEFAULT 0,academyno V ARCHAR(10),PRIMARY KEY(teacherno),FOREIGN KEY (academyno) REFERENCES academy(academyno))ENGINE=INNODB DEFAULT CHARSET=gbk COLLATE=gbk_bin;(3)题目topic表(topicno,topicname,demand,state,teacherno)CREATE TABLE topic(topicno V ARCHAR(10) NOT NULL,topicname V ARCHAR(20) NOT NULL,demand TEXT NOT NULL,state ENUM('未选','已选'),teacherno V ARCHAR(10),PRIMARY KEY(topicno),FOREIGN KEY (teacherno) REFERENCES teacher(teacherno))ENGINE=INNODB DEFAULT CHARSET=gbk COLLATE=gbk_bin;(4)团队team表(teamno, teamname, limitcount, countsum, teacherno, topicno)CREATE TABLE team(teamno INT(10) NOT NULL AUTO_INCREMENT,teamname V ARCHAR(20) NOT NULL,limitcount TINYINT(3) UNSIGNED DEFAULT 3,countsum TINYINT(3) UNSIGNED DEFAULT 0,teacherno V ARCHAR(10),topicno V ARCHAR(10),PRIMARY KEY(teamno),FOREIGN KEY (topicno) REFERENCES topic(topicno),FOREIGN KEY (teacherno) REFERENCES teacher(teacherno))ENGINE=INNODB DEFAULT CHARSET=gbk COLLATE=gbk_bin;(5) 班级class表(classno,classname,specialtyno)CREATE TABLE class(classno V ARCHAR(10) NOT NULL,classname V ARCHAR(10) NOT NULL,specialtyno V ARCHAR(10),PRIMARY KEY(classno),FOREIGN KEY (specialtyno) REFERENCES specialty(specialtyno))ENGINE=INNODB DEFAULT CHARSET=gbk COLLATE=gbk_bin;(6) 专业specialty表(specialtyno,specialtyname,academyno)CREATE TABLE specialty(specialtyno V ARCHAR(10) NOT NULL,specialtyname V ARCHAR(10) NOT NULL,academyno V ARCHAR(10) NOT NULL,PRIMARY KEY(specialtyno),FOREIGN KEY (academyno) REFERENCES academy(academyno))ENGINE=INNODB DEFAULT CHARSET=gbk COLLATE=gbk_bin;(7) 学院academy表(academyno,academyname)CREATE TABLE academy(academyno V ARCHAR(10) NOT NULL,academyname V ARCHAR(20) NOT NULL,PRIMARY KEY(academyno))ENGINE=INNODB DEFAULT CHARSET=gbk COLLATE=gbk_bin;(8) 登录login表(lno,passwordno,role)CREATE TABLE login(lno V ARCHAR(10),passwordno V ARCHAR(10),role ENUM('学生','老师'),PRIMARY KEY(lno))ENGINE=INNODB DEFAULT CHARSET=gbk COLLATE=gbk_bin;6.视图存储过程设计6.1登录界面设计功能介绍:根据输入的学号或工号判断你的角色是(学生或教师),然后根据角色的不同进入不同的主界面//登录测试DELIMITER $ $CREATE PROCEDURE login_judge(IN llno V ARCHAR(10),IN passwordnno V ARCHAR(10))BEGINSET @llno=llno;SET @password=passwordnno;IF @llno IN(SELECT lno FROM login ) AND@password IN(SELECT passwordno FROM login WHERE lno=@llno)THEN SELECT 1;ELSE SELECT 0;END IF;END $ $DELIMITER;6.2详细功能视图存储过程设计创建的视图和存储过程学生功能如下:视图:1.功能介绍:查看本校课题,根据教师号进行升序排序CREATE VIEW select_topicAS SELECT*FROM topic ORDER BY teacherno;存储过程:2.功能介绍:先根据学号查找到所属学院再根据教师所属学院不同只查询本学院的老师发布的课题//查看本学院课题--DELIMITER $ $CREATE PROCEDURE select_topic_academy(IN ssno V ARCHAR(10))BEGINSELECT*FROM topic WHERE teachernoIN(SELECT teacherno FROM teacher WHERE academynoIN(SELECT academyno FROM specialty WHERE specialtynoIN(SELECT specialtyno FROM class WHERE classnoIN(SELECT classno FROM student WHERE sno=ssno))));END $ $DELIMITER;//创建团队3.功能介绍:在创建团队时,起一个团队名,,输入你要选择的课题号,自动生成团队号。