数据库毕业设计选题系统课程设计
1.需求分析
系统需求分析:
随着互联网的发展,计算机的软硬件不断的更新迭代,这时计算机已经可以管理超大规模的数据,文件系统远远不能满足各种应用的需求,数据库使得数据实现了结构化存储,数据更容易被共享。数据库管理系统既便于数据的集中管理,控制冗余,提高数据的利用率和一致性,又利于应用程序的开发和维护。
随着高校学生人数越来越多,课程越来越丰富,学生多老师少,迫切需要一个数据库管理系统来管理、存取大量的信息,则建立一个学生毕业设计选题系统具有非常大的实际应用意义。我们知道计算机具有运算速度快,处理能力强等特点。因此,为了保证学校信息的流畅,工作高效,学生毕业设计选题系统应运而生。这不但能使教务人员从复杂的管理中解脱出来,而且对于推动教学的发展也起到非常重要的作用。
系统功能需求分析:
教师和学生进行双向选择,即学生可选择相应的毕业设计题目,教师也可选择学生。
1)教师:
1.1 教师可以增加毕业设计题目,人数,及要求。
1.2 教师可录取报名的学生,查看学生的详细信息如学生的基本信息等内容。
1.3针对不同的用户,可进行相关的统计、查询可查看报自己的学生人数,基本信息等。
2)学生:
2.1 可浏览教师的毕业设计题目及教师的简介等内容。
2.2 可查看自己的个人信息(基本信息)。
2.3 可以报毕业设计题目,每人限报两个,第一选题志愿和第二选题志愿。
3)管理员
3.1 可对每个教师、学生进行统计分析与维护。
2.概念设计(E-R图)
根据需求分析结果,学生、教师、管理员、题目、班级、专业、学院等可建模为基本实体集。
各基本实体集的属性定义如下:
- 学生(Student)实体集。其属性有:学号(studentNo)、姓名(studentName)、性别(sex)、出生日期(birthday)、籍贯(native)、民族(nation)等。
- 教师(Teacher)实体集。其属性有:教师编号(teacherNo)、姓名(teacherName)、性别(sex)、学位(degree)等。
- 班级(Class)实体集。其属性有:班级编号(classNo)、班级名称(className)等。
- 专业(Speciality)实体集。其属性有:专业编号(specialityNo)、专业名称(specialityName)等。
- 学院(Institute)实体集。其属性有:学院编号(instituteNo)、学院名称(instituteName)等。
- 题目(Title)实体集。其属性有:题目编号(titleNo)、题目名称(titleName)、要求(requirement)、人数(population)等。
- 管理员(Manager)实体集。其属性有:工号(managerNo)、姓名(managerName)、性别(sex)、联系方式(phoneNum)。
定义联系集及属性:
- 选题(SelectTitle)联系集:它是题目实体集与学生实体集的一对多联系集,其描述属性有:题目编号(titleNo)、学号(studentNo)、教师编号(teacherNo)、志愿(wish)、录取情况(admission)等。
- 出题(SetTitle)联系集:它是教师实体集与题目实体集的一对多联系集,没有联系属性。
- 指导(Guidance)联系集:它是教师实体集与学生实体集的一对多联系集,没有联系属性。
- 包含(Include)联系集:它是班级实体集与学生实体集的一对多联系集,没有联系属性。
- 拥有(Hold)联系集:它是专业实体集和班级实体集的一对多联系集,没有联系属性。
- 属于(Belong)联系集:它是学院实体集与教师实体集的一对多联系集,没有联系属性。
- 设置(Establish)联系集:它是学院实体集与专业实体集的一对多联系集,没有联系属性。
权限设置:
(1)用户(User):账号(userNo)、登录密码(password)、姓名(userName)、身份(identity)等。
3.逻辑设计
(下划线加粗代表主码,斜体加粗代表外码 )
(1)学生Student表:由学生关系实体集转化而来。
学生Student(studentNo,studentName,sex,birthday,native,nation,classNo);
属性名称 |
数据类型 |
属性描述 |
studentNo |
char(12) |
学号 |
studentName |
varchar(20) |
姓名 |
sex |
char(2) |
性别 |
birthday |
datetime |
出生日期 |
native |
varchar(20) |
籍贯 |
nation |
varchar(10) |
民族 |
classNo |
char(8) |
班级编号 |
(2)教师Teacher表:由教师实体集转化而来。
教师Teacher(teacherNo,teacherName,sex,degree,instituteNo);
属性名称 |
数据类型 |
属性描述 |
teacherNo |
char(6) |
教师编号 |
teacherName |
varchar(20) |
姓名 |
sex |
char(2) |
性别 |
degree |
varchar(10) |
学位 |
instituteNo |
char(3) |
学院编号 |
(3)班级Class表:由班级实体集转化而来。
班级Class(classNo,className,specialityNo);
属性名称 |
数据类型 |
属性描述 |
classNo |
char(8) |
班级编号 |
className |
varchar(20) |
班级名称 |
specialityNo |
char(5) |
专业编号 |
(4)专业Speciality表:由专业实体集转化而来。
专业Speciality(specialityNo,specialityName,instituteNo);
属性名称 |
数据类型 |
属性描述 |
specialityNo |
char(5) |
专业编号 |
specialityName |
varchar(20) |
专业名称 |
instituteNo |
char(3) |
学院编号 |
(5)学院Institute表:由学院实体集转化而来。
学院Institute(instituteNo,instituteName);
属性名称 |
数据类型 |
属性描述 |
instituteNo |
char(3) |
学院编号 |
instituteName |
varchar(20) |
学院名称 |
(6)题目Title表:由题目实体集转化而来。
题目Title(titleNo,titleName,requirement,population,teacherNo);
属性名称 |
数据类型 |
属性描述 |
titleNo |
char(9) |
题目编号 |
titleName |
varchar(20) |
题目名称 |
requirement |
varchar(100) |
要求 |
population |
int |
人数 |
teacherNo |
char(6) |
教师编号 |
(7)管理员Manager实体集转化的关系模式。
管理员Manager(managerNo,managerName,sex,phoneNum);
属性名称 |
数据类型 |
属性描述 |
managerNo |
char(4) |
工号 |
managerName |
varchar(20) |
姓名 |
sex |
char(2) |
性别 |
phoneNum |
varchar(13) |
联系方式 |
(8)选题SelectTitle联系集转化的关系模式。
选题SelectTitle(titleNo,studentNo,teacherNo,wish,admission);
属性名称 |
数据类型 |
属性描述 |
titleNo |
char(9) |
题目编号 |
studentNo |
char(12) |
学号 |
teacherNo |
char(6) |
教师编号 |
wish |
char(4) |
志愿 |
admission |
char(1) |
录取情况 |
(9)用户User关系模式。
用户User(userNo,password,userName,identity);
属性名称 |
数据类型 |
属性描述 |
userNo |
varchar(12) |
账号 |
password |
varchar(20) |
登录密码 |
userName |
varchar(20) |
姓名 |
identity |
varchar(3) |
身份 |
4.模式求精
(1)学生Student(studentNo,studentName,sex,birthday,native,nation,classNo);
分析Student关系模式得函数依赖关系为:
tudentNo->{studentName,sex,birthday,native,nation,classNo}
满足BCNF范式。
(2)教师Teacher(teacherNo,teacherName,sex,degree,instituteNo);
分析Teacher关系模式得函数依赖关系为:
teacherNo->{teacherName,sex,degree,instituteNo}
满足BCNF范式。
(3)班级Class(classNo,className,specialityNo)
分析Class关系模式得函数依赖关系为:
classNo->{className,specialityNo}
满足BCNF范式。
(4)专业Speciality(specialityNo,specialityName,instituteNo);
分析Speciality关系模式得函数依赖关系为:
specialityNo->{specialityName,instituteNo}
满足BCNF范式。
(5)学院Institute(instituteNo,instituteName);
分析Speciality关系模式得函数依赖关系为:
instituteNo->{instituteName}
满足BCNF范式。
(6)题目Title(titleNo,titleName,requirement,population,teacherNo);
分析Speciality关系模式得函数依赖关系为:
titleNo->{titleName,requirement,population,teacherNo}
满足BCNF范式。
5.表的设计
(1)学生Student表(studentNo,studentName,sex,birthday,native,nation,classNo)
(2)教师Teacher表(teacherNo,teacherName,sex,degree,instituteNo)
(3)班级Class表(classNo,className,specialityNo);
(4)专业Speciality表(specialityNo,specialityName,instituteNo);
(5)学院Institute表(instituteNo,instituteName);
(6)题目Title表(titleNo,titleName,requirement,population,teacherNo);
(7)管理员Manager表(managerNo,managerName,sex,phoneNum);
(8)选题SelectTitle表(titleNo,studentNo,teacherNo,wish,admission);
(9)用户User表(userNo,password,userName,identity);
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for class
-- ----------------------------
DROP TABLE IF EXISTS `class`;
CREATE TABLE `class` (
`classNo` char(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '班级编号',
`className` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '班级名称',
`specialityNo` char(5) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '专业编号',
PRIMARY KEY (`classNo`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
-- ----------------------------
-- Table structure for institute
-- ----------------------------
DROP TABLE IF EXISTS `institute`;
CREATE TABLE `institute` (
`instituteNo` char(3) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '学院编号',
`instituteName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '学院名称',
PRIMARY KEY (`instituteNo`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
-- ----------------------------
-- Table structure for manager
-- ----------------------------
DROP TABLE IF EXISTS `manager`;
CREATE TABLE `manager` (
`managerNo` char(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '管理员编号',
`managerName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '姓名',
`sex` char(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别',
`phoneNum` varchar(13) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '联系方式',
PRIMARY KEY (`managerNo`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
-- ----------------------------
-- Table structure for selecttitle
-- ----------------------------
DROP TABLE IF EXISTS `selecttitle`;
CREATE TABLE `selecttitle` (
`titleNo` char(9) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '题目编号',
`studentNo` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '学号',
`teacherNo` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '教师编号',
`wish` char(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '第一志愿/第二志愿',
`admission` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '是/否',
PRIMARY KEY (`titleNo`, `studentNo`, `teacherNo`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
-- ----------------------------
-- Table structure for speciality
-- ----------------------------
DROP TABLE IF EXISTS `speciality`;
CREATE TABLE `speciality` (
`specialityNo` char(5) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '专业编号',
`specialityName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '专业名称',
`instituteNo` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学院编号',
PRIMARY KEY (`specialityNo`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`studentNo` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '学号',
`studentName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '姓名',
`sex` char(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别,男、女',
`birthday` date NULL DEFAULT NULL COMMENT '出生日期',
`native` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '籍贯',
`nation` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '民族',
`classNo` char(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '班级编号',
PRIMARY KEY (`studentNo`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
-- ----------------------------
-- Table structure for teacher
-- ----------------------------
DROP TABLE IF EXISTS `teacher`;
CREATE TABLE `teacher` (
`teacherNo` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '教师编号',
`teacherName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '姓名',
`sex` char(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别',
`degree` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学位',
`instituteNo` char(3) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学院编号',
PRIMARY KEY (`teacherNo`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
-- ----------------------------
-- Table structure for title
-- ----------------------------
DROP TABLE IF EXISTS `title`;
CREATE TABLE `title` (
`titleNo` char(9) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '题目编号',
`titleName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '题目名称',
`requirement` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '要求',
`population` int(11) NULL DEFAULT NULL COMMENT '人数',
`teacherNo` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '教师编号',
PRIMARY KEY (`titleNo`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`userNo` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '账号',
`password` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码',
`userName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户名称',
`identity` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '身份:学生、教师、管理员',
PRIMARY KEY (`userNo`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
SET FOREIGN_KEY_CHECKS = 1;
6.功能设计
(1)查看某位学生的基本信息
SELECT * FROM student WHERE studentNo=’...’;
查看某位教师的基本信息
SELECT * FROM teacher WHERE teacherNo='...';
(2)学生浏览教师的毕业设计题目
SELECT * FROM title
(3)教师可录取报名的学生
UPDATE selecttitle SET admission='是'
WHERE studentNo='...' AND wish='...';
(4)教师更新题目信息
UPDATE title SET ... WHERE titleNo='...';
(5)教师查看每个题目的选题人数
SELECT titleNo,teacherNo,COUNT(DISTINCT studentNo)
FROM selecttitle GROUP BY titleNo HAVING teacherNo='...';
(6)统计每位教师的出题数
SELECT teacherNo,COUNT(DISTINCT titleNO)FROM title GROUP BY teacherNo;
(7)教师删除某个题目信息(删除)
DELETE FROM title WHERE titleNo=’...’;
(8)删除已被录取的学生的另一个未录取的选题信息
DELETE FROM selecttitle WHERE admission='否' AND studentNo='...';
(9)教师查看报了自己题目的某个学生的信息
SELECT a.studentNo,studentName,sex,birthday,native,nation,classNo
FROM student a,selecttitle b
WHERE a.studentNo=b.studentNo AND b.studentNo='...';
(10)学生查看自己选题的教师的基本信息
SELECT b.teacherNo,teacherName,sex,degree,instituteName
FROM selecttitle a,teacher b,institute c
WHERE a.teacherNo=b.teacherNo AND b.instituteNo=c.instituteNo
AND a.teacherNo='...';
(11)查询学生所在班级,专业
SELECT studentNo,studentName,className,specialityName
FROM student a LEFT JOIN class b ON a.classNo=b.classNo
RIGHT JOIN speciality c ON b.specialityNo=c.specialityNo
WHERE studentNo='...';
(12)查询选了某个题目的学生的信息
SELECT studentNo,studentName,sex,classNo
FROM student
WHERE studentNo IN
(SELECT studentNo FROM selecttitle WHERE titleNo='...');
数据库毕业设计选题系统课程设计相关推荐
- 基于java的毕业设计选题系统的设计与实现
欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye2 基于JSP的毕业设计选题系统的设计与实现 摘 要 伴随着信息化技术在全球范围内的兴起,尤 ...
- 【计算机毕业设计】基于JSP的毕业设计选题系统的设计与实现
分类号:TP315 U D C:D10621-408-(2007) 498-0 密 级:公 开 编 号:2002211105 成都信息工程学院 学位论文 基于JSP的毕业设计选题系统的设计与实现 摘 ...
- 计算机毕业设计、计算机课程设计怎么做?计算机设计1900套来帮你!
计算机毕业设计.计算机课程设计怎么做?计算机设计1900套来帮你! 人生做什么事都有套路,大学毕业设计.课程设计通常比较简单,大多数都是找个项目做参考,有的人随便抄一抄糊弄一下,只要查重,格式别出错就 ...
- 毕业生选题系统 c语言,[内附完整源码和文档] 毕业设计选题系统
摘 要 随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨.以往的毕业设计选题是随堂报名.这种方法虽然直接,但是造成选题的盲目性和教务处处理数据的繁重性.为了减轻教务处工作,以及每个学生更好的 ...
- 毕业设计论文选题系统系统用例图_毕业设计选题系统
毕业设计选题系统 一.系统需求 1. 项目背景 随着教育改革的不断深化,全社会信息化.收集化培植热潮的兴起,建立 - 套能够适 应这些改变的行政管理方案也就显得尤为重要.在高等院校的日常工作 中,每年 ...
- 嵌入式系统课程设计题目
简介:一些嵌入式系统课程设计题目,可以当做对你学习ARM的一个检测. 嵌入式系统课程设计-选题要求及课题 1.嵌入式系统课程设计时长两星期,要求学生分组进行课程设计,每组学生人数为2-3人(可在不超过 ...
- java版DVD影碟片出租赁系统C/S模式 java电影购票系统课程设计
系统采用c/s架构,当然,你可以服务端.客户端都在同一台电脑上运行: 也可以在同一局域网内服务端.客户端在其它不同电脑上运行: 如果你有云服务器,可将Service端代码部署至云服务器上,客户端在任何 ...
- 四六级考试报名系统c语言,四六级考试系统课程设计报告.doc
四六级考试系统课程设计报告 <.NET架构及应用>期末考试 (课程设计总结) 设计名称: 英语四.六级考试报名系统 组 长: 白缔祖 参 加 人: 白缔祖.霍晓文 指导教师: 付向东 班 ...
- 水果售卖系统课程设计(过程由组员记录,此为总文档)
水果售卖系统课程设计 信息科学与工程学院 课程设计报告 学 号 201610411209 姓 名 何星林 学 号 201610411227 姓 名 姚永 ...
最新文章
- [零基础学JAVA]Java SE应用部分-27.Java IO操作(01)
- mysql ignore index,mysql强制索引FORCE INDEX/IGNORE INDEX忽略索引
- 电信运营商x86服务器定制策略
- 基于注释的Spring MVC Web应用程序入门
- 发布react项目到linux服务器,nginx上部署react项目的实例方法
- Vue---淘宝镜像cnpm---安装vue-cli
- 手机python编程文件如何转文档_Python 开发者面向文档编程的正确姿势
- [C++设计模式] proxy 代理模式
- 《Mars说光场》系列文章整理
- win10 SecoClient连接“提示用户与对方建立连接超时,配置错误或网络故障”
- java8 新特性之 -- lamdba 表达式 -- Optional类 --遍历 Map List
- hyperterminal停止工作_hyper terminal超级终端最新下载
- 数字电路基础知识(三) 复位设计-异步复位,同步释放
- 从苹果供应商看2018年全球电子产业链的中国势力变化
- pycharm 配置 interpreter
- 教你怎么学好Java
- 4G LTE 频率表
- shell中和||的用法
- python数据分析与应用第四章课后实训答案_应用回归分析,第4章课后习题参考答案...
- AutoCAD2007下载AutoCAD2007安装教程
热门文章
- 2019.9.6HTML5学习心得02
- nunjucks.js模板渲染
- 聊斋2聂小倩java华语版,[转载]《聊斋志异》2.聂小倩(二)蒲松龄 著 宋德利 译...
- 罗技无线网卡linux,Linux Kernel 5.2将改进对Logitech无线设备的支持
- Python读取tsv文件数据
- 软考-高项-论文-信息系统项目的人力资源管理
- 微信扫码关注公共号生成上下级关系,扫码之后的流程
- 开发电商App哪家好
- 如何打造个人IP品牌?_云媒体软文营销
- 告别“广告依赖症”,知乎视频商业化的路难走?