数据库系统课程设计学生姓名:班学号:指导教师:中国地质大学年月日教务管理系统1、需求分析教务管理系统该教学系统主要提供数据维护、学生选课和教师授课信息查询功能。
其实现的功能(即其包含的查询)有:系统中对教师、学生基本信息的录入;系统中对教师、学生的基本信息查询;查询学生的选课情况;查询教师的授课情况;还包括学生选课功能。
该数据库系统包括学生密码表、学生信息表、教师信息表、教师密码表、学生选课表、课程匹配表,管理员密码表七个关系表,基本情况如下:三张密码表均有相应账户和密码;教师信息表有工作证号、姓名、性别、族别、政治面貌、出生年月、联系方式、所在系、所在学院、职称;学生表有学号、姓名、性别、族别、政治面貌、出生年月、联系方式、班号、所在系、所在学院;课程有课程名、学分、名额、上课时间信息;授课表有课程号、工作证号信息;学生选课表有课程名称、课程号、授课老师、授课时间、授课地点、剩余容量、工作证号、成绩。
课程匹配表则有课程号,学号,学生姓名,班号,所在专业,所在学院,成绩。
每个学生都属于一个班,每个教师也都属于一个系。
一名教师可以教多门课,一门课可以有几位主讲老师,一名同学可以选多门课。
学生、教师都有可以有重名,工作证号、学号可以作为标识。
系统中的实体:①教师:工作证号、姓名、性别、职称、电话等;②学生:学号、姓名、性别、出生年月、职位、电话等;③班级:班号、最低总学分、人数等;④系:系代号、系名、系办公室电话等;⑤课程:课序号、课名、学分、上课时间、名额等。
实体间关系:①每个学生都属于一个班,每个班都属于一个系,每个教师也都属于一个系;②每个班的班主任都由一名教师担任;③一名教师可以教多门课,一门课可以有几位主讲老师,但不同老师讲的同一门课其课序号是不同的(课序号是唯一的);④一名同学可以选多门课,一门课可被若干同学选中;⑤ 一名同学选中的课若已学完,应该记录有相应成绩; ⑥ 本单位学生、教师都有重名,工作证号、学号可以作为标识。
系统的需求:① 教学系统主要提供数据维护、选课和信息查询; ②系统中各对象的基本信息录入与查询; ③指定班、系的学生信息查询; ④学生的成绩、学分情况查询; ⑤教师授课情况和学生选课情况查询。
系统的组成:教务管理系统包括教师管理子系统、学生管理子系统、管理员管理子系统。
其中各个系统中拥有独自的一套查询、添加、删除、更新操作。
系统管理员进行数据维护的操作。
2、概念设计(1)概念模型(E-R 图):① 选课E-R 图① 授课E-R 图学生课程选mn学号年龄性别 所在系 课程号课名学分名额课程号 课名学分名额教师 课程授mn工作证号 姓名 性别 电话① 总E-R 图(2)数据字典:① 数据项编号 实体 数据项名 数据项含义说明 数据类型 长度 与其他数据项的逻辑关系1 教师 工作证号 区别老师的数据项 Bigint 20 决定姓名性别等教师属性2 姓名 允许重名 Char 10 决定性别等教师属性3 性别 老师性别 Char 104 所在系 所在系 Char 105 电话 老师的联系方式 Bigint 206 用户名 登录验证 Char 207 用户密码 登录验证 Char 208 所在学院 所在学院 Char 309 族别 所属民族 Char 30 10 职称 老师的职称 Char 20 11 政治面貌 老师的政治面貌 Char 20 12 学院电话 学院电话 Bigint 20 13 出生年月 老师出生年月 Char 20 14 学生 学号 区别学生的数据项 Bigint 20 决定姓名性别等学生属性 15 学生姓名 允许重名 Char 10 16 学生性别 学生性别 Char 10 17 出生年月 允许重复 Char 18 所在系 允许空值 Char 10 19 班号 学生联系方式 Char 11 20 用户名 登录验证 Char 20 21 用户密码 登录验证 Char 20 22 所在学院 所在学院 Char 30 23 族别 所属民族 Char 30 24 政治面貌 学生的政治面貌 Char 20 25 联系方式 学生联系方式 Bigint 26 课程 课程号 区别课程的数据项 Char 10 决定课名学分等课程属性… m学生 选学姓专课程教师授nmn工作证号课程姓电…②数据流总数据流图录入选课查询评价5.0 更新:②数据结构3、逻辑结构设计①关系的描述根据数据库系统设计的最基本的要求,消除依赖集F中的部分依赖和传递依赖,消除插入异常、删除异常、修改异常,达到第三范式无损链接和保持依赖,从而得到以下关系模型以及其主码:教师(工作证号、姓名、性别、电话、所在系、用户名、用户密码)学生(学号、姓名、性别、年龄、所在系、班号、用户名、用户密码)课程(课程号、课程名、学分、名额、上课时间)选课(课程号、学号)授课(课程号、工作证号)以上加下划线的表示关系模型里面的主码。
②实体间的联系分析教师—班级: 1:1;系—教师: 1:n;系—班级: 1:n;班级—学生: 1:n;课程—教师: m:n;课程—学生: m:n4、物理设计4.1物理存储结构4.1.1数据库我本次课程设计采用了SQL sever平台进行存储建立基本表与信息。
编写关系模式,载入数据。
其存在多种存取方法。
并且首先要运行调试软件的运行恢复部分,确保数据日后的转储与恢复。
4.1.2基本表Student表------------------------------DROP TABLE IF EXISTS `Student`;CREATE TABLE `student` (`学号` bigint() NOT NULL,`姓名` char(30) NOT NULL,性别` char(10) DEFAULT NULL,`族别` char(30) NOT NULL,`政治面貌` char(20) NOT NULL,`出生年月` char(30) NOT NULL,`联系方式` bigint() NOT NULL,`班号`bigint()NOT NULL,`所在专业` char(20) NOT NULL,`所在学院` char(20) NOT NULL,PRIMARY KEY (`学号`),KEY `姓名` (`姓名`)) ENGINE=InnoDB DEFAULT CHARSET=utf8; ------------------------------Teacher表------------------------------DROP TABLE IF EXISTS `Teacher`; CREATE TABLE `Teacher` (`工作证号` bigint() NOT NULL,`姓名` char(30) NOT NULL,性别` char(10) DEFAULT NULL,`族别` char(30) NOT NULL,`政治面貌` char(20) NOT NULL,`出生年月` char(30) NOT NULL,`联系方式` bigint() NOT NULL,`职称`char(20)NOT NULL,`所在专业` char(20) NOT NULL,`所在学院` char(20) NOT NULL,‘学院电话’char(20)NOT NULL,PRIMARY KEY (`工作证号’)) ENGINE=InnoDB DEFAULT CHARSET=utf8;------------------------------选课表------------------------------DROP TABLE IF EXISTS `studentchoose`; CREATE TABLE `studentchoose` (`cNum` varchar(7) NOT NULL,`Name1` varchar(5) NOT NULL,`Unit` varchar(20) NOT NULL,PRIMARY KEY (`cNum`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-------------------------------- studentchoose表------------------------------DROP TABLE IF EXISTS `stock`;CREATE TABLE `stock` (`课程名称` char(30) NOT NULL,`课程号` bigint() NOT NULL,`授课老师` char(30) NOT NULL,`授课时间` char(30) NOT NULL,`剩余容量` char(30) NOT NULL,`工作证号` char(30) NOT NULL,`成绩` bigint() NOT NULL,PRIMARY KEY (`课程号`),) ENGINE=InnoDB DEFAULT CHARSET=utf8;-------------------------------- ATapparier表------------------------------DROP TABLE IF EXISTS `ATapparier`; CREATE TABLE `ATapparier` (`课程号` bigint() NOT NULL,`学号` bigint() NOT NULL,`姓名` char(30) NOT NULL,‘班号’char(20)NOT NULL,`所在专业` char(20) NOT NULL,`所在学院` char(20) NOT NULL,‘成绩’char(20)NOT NULL,PRIMARY KEY (`课程号`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;DROP TABLE IF EXISTS `ATapparier`;CREATE TABLE `ATapparier` (`课程号` bigint() NOT NULL,`学号` bigint() NOT NULL,`姓名` char(30) NOT NULL,‘班号’char(20)NOT NULL,`所在专业` char(20) NOT NULL,`所在学院` char(20) NOT NULL,‘成绩’char(20)NOT NULL,PRIMARY KEY (`课程号`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;4.2索引设计4.2.1存储安排方法选择:教务管理系统是一个多用户共享系统,对同一个关系要建立多条存取路径才能满足多用户的多种应用要求。